René's URL Explorer Experiment


Title: Better I/O systems support for phase plots by murrayrm · Pull Request #1001 · python-control/python-control · GitHub

Open Graph Title: Better I/O systems support for phase plots by murrayrm · Pull Request #1001 · python-control/python-control

X Title: Better I/O systems support for phase plots by murrayrm · Pull Request #1001 · python-control/python-control

Description: This PR provides better I/O systems support for making phase plots: Allow I/O systems with no inputs and/or no outputs to be specified. This is useful when generating phase plots, where you might just have a simple dynamical systems but still want to use the I/O system objects. Improve the error messages in input_output_response when the number of states, inputs, or outputs are incompatible with the system size by telling you which one didn't match. Generate warnings when simulations fail for individual initial conditions and drop individual trace (rather than terminating). This yields much nicer phase plane plots by allowing the system to generate lines when it can and ignoring the rest. Added Jupyter notebook analyzing open and closed loop dynamics of an inverted pendulum, showing off some of the capabilities of the package. Changed the way plot titles are created, using axes.set_title (centers title over axes) instead of fig.suptitle (centers over figure, which is good for multi-axes plots but otherwise looks funny). I'll propagate this same change to time plots and frequency plots in separate PRs. Did some tweaking on arrow placement so that very short lines have zero or one arrows. Could use more work, but this is better than what we had. As an example of the changes, here is the code to produce a phase portrait for the inverted pendulum example in FBS2e, Figure 5.4: from math import pi import control as ct def invpend_update(t, x, u, params): m, l, b, g = params['m'], params['l'], params['b'], params['g'] return [x[1], -b/m * x[1] + (g * l / m) * np.sin(x[0])] invpend = ct.nlsys( invpend_update, states=2, inputs=0, name='invpend', params={'m': 1, 'l': 1, 'b': 0.2, 'g': 1}) ct.phase_plane_plot(invpend, [-2*pi - 1, 2*pi + 1, -2, 2], 10) Before: After: The changes are not major, but if you look at the number and spacing of arrows along the streamlines, you'll see examples of the changes there (some streamlines have no arrows in "before" plot). Also note the change in location of the title.

Open Graph Description: This PR provides better I/O systems support for making phase plots: Allow I/O systems with no inputs and/or no outputs to be specified. This is useful when generating phase plots, where you might...

X Description: This PR provides better I/O systems support for making phase plots: Allow I/O systems with no inputs and/or no outputs to be specified. This is useful when generating phase plots, where you might...

Opengraph URL: https://github.com/python-control/python-control/pull/1001

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:c0a3bcec-2122-4bba-a5ee-08065072d4fb
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idAABC:16E225:254BF08:3290D1C:6979AB61
html-safe-nonce14d573397c2e3bb4a32f57f16a256537b3e43383c75a365846bbf8282b7e21c2
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBQUJDOjE2RTIyNToyNTRCRjA4OjMyOTBEMUM6Njk3OUFCNjEiLCJ2aXNpdG9yX2lkIjoiMTkyMTE1NDIwNjMwMzYyODEyOSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac5eb2f30b57453a6c2571fc3746146a0526a14e25697f30cc4ba25219d811d0a7
hovercard-subject-tagpull_request:1865027136
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/python-control/python-control/pull/1001/files
twitter:imagehttps://avatars.githubusercontent.com/u/293362?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/293362?s=400&v=4
og:image:altThis PR provides better I/O systems support for making phase plots: Allow I/O systems with no inputs and/or no outputs to be specified. This is useful when generating phase plots, where you might...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Nonec049b65ec7e54cbf2521f5a560b6527714c612b0bd169188e2ea6e16f83bd5f4
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/python-control/python-control git https://github.com/python-control/python-control.git
octolytics-dimension-user_id2285872
octolytics-dimension-user_loginpython-control
octolytics-dimension-repository_id22791752
octolytics-dimension-repository_nwopython-control/python-control
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id22791752
octolytics-dimension-repository_network_root_nwopython-control/python-control
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release87b137883e35e2766c3d0f6a257c4044f6390b83
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/python-control/python-control/pull/1001/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython-control%2Fpython-control%2Fpull%2F1001%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython-control%2Fpython-control%2Fpull%2F1001%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=python-control%2Fpython-control
Reloadhttps://github.com/python-control/python-control/pull/1001/files
Reloadhttps://github.com/python-control/python-control/pull/1001/files
Reloadhttps://github.com/python-control/python-control/pull/1001/files
python-control https://github.com/python-control
python-controlhttps://github.com/python-control/python-control
Notifications https://github.com/login?return_to=%2Fpython-control%2Fpython-control
Fork 447 https://github.com/login?return_to=%2Fpython-control%2Fpython-control
Star 2k https://github.com/login?return_to=%2Fpython-control%2Fpython-control
Code https://github.com/python-control/python-control
Issues 87 https://github.com/python-control/python-control/issues
Pull requests 8 https://github.com/python-control/python-control/pulls
Discussions https://github.com/python-control/python-control/discussions
Actions https://github.com/python-control/python-control/actions
Projects 0 https://github.com/python-control/python-control/projects
Wiki https://github.com/python-control/python-control/wiki
Security 0 https://github.com/python-control/python-control/security
Insights https://github.com/python-control/python-control/pulse
Code https://github.com/python-control/python-control
Issues https://github.com/python-control/python-control/issues
Pull requests https://github.com/python-control/python-control/pulls
Discussions https://github.com/python-control/python-control/discussions
Actions https://github.com/python-control/python-control/actions
Projects https://github.com/python-control/python-control/projects
Wiki https://github.com/python-control/python-control/wiki
Security https://github.com/python-control/python-control/security
Insights https://github.com/python-control/python-control/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fpython-control%2Fpython-control%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fpython-control%2Fpython-control%2Fissues%2Fnew%2Fchoose
murrayrmhttps://github.com/murrayrm
python-control:mainhttps://github.com/python-control/python-control/tree/main
murrayrm:phaseplot_improvements-16Apr2024https://github.com/murrayrm/python-control/tree/phaseplot_improvements-16Apr2024
Conversation 6 https://github.com/python-control/python-control/pull/1001
Commits 13 https://github.com/python-control/python-control/pull/1001/commits
Checks 0 https://github.com/python-control/python-control/pull/1001/checks
Files changed https://github.com/python-control/python-control/pull/1001/files
Please reload this pagehttps://github.com/python-control/python-control/pull/1001/files
Better I/O systems support for phase plots https://github.com/python-control/python-control/pull/1001/files#top
Show all changes 13 commits https://github.com/python-control/python-control/pull/1001/files
ff2fe8d add better check for find_eqpt with mixed specifications murrayrm Apr 20, 2024 https://github.com/python-control/python-control/pull/1001/commits/ff2fe8d5166b5990cdd7fec8e16a1d5af42ee1de
df2436f fix nlsys conversion of float, array to dt=None murrayrm May 11, 2024 https://github.com/python-control/python-control/pull/1001/commits/df2436f64cb7471f34c59de3f15f9b8c3e354447
f6f88f8 add support for nlsys w/out inputs or outputs murrayrm May 11, 2024 https://github.com/python-control/python-control/pull/1001/commits/f6f88f8e39112a51a78c491795c083dd18735bc2
d44a577 allow solve_ivp errors and improve arrow placement murrayrm Jun 5, 2024 https://github.com/python-control/python-control/pull/1001/commits/d44a5771e4b71a34b7ec5334b1ed11765d10cd99
1b71fa0 add warning messages on trajectory errors (+ ability to suppress) murrayrm Jun 5, 2024 https://github.com/python-control/python-control/pull/1001/commits/1b71fa00ebca08af89f6f96074f89b9b1e4b96b4
ab3b498 tweak arrow placement in _add_arrows_to_line2D murrayrm Jun 6, 2024 https://github.com/python-control/python-control/pull/1001/commits/ab3b4984a68ddc08d3742e9715c6283fa57ccff1
44ccafb add invpend example from Caltech CDS 110 murrayrm Jun 8, 2024 https://github.com/python-control/python-control/pull/1001/commits/44ccafbcd24574f92baa4aa165c3f58d1a798d8a
5d0450b change phase_plane_plot to use axes.set_title instead of fig.suptitle murrayrm Jun 8, 2024 https://github.com/python-control/python-control/pull/1001/commits/5d0450b246e7e1ad7067ece88c20da28f061230b
57e3e4e fix bug in the way dir=-1 arrows are handled at endpoint murrayrm Jun 8, 2024 https://github.com/python-control/python-control/pull/1001/commits/57e3e4efc8e1c7c676a642dc484352fc6b67a0ea
b34f72e using hanging indent for import (isort -m2) murrayrm Jun 8, 2024 https://github.com/python-control/python-control/pull/1001/commits/b34f72e5b4fb57af4f339f4005d7e099f76b2f02
d6432ca revert unneeded change on find_eqpt checks for arg lengths murrayrm Jun 8, 2024 https://github.com/python-control/python-control/pull/1001/commits/d6432ca74be0340bb98ffb461b09b33ff1fbce86
c72fa91 final tweaks of arrow code murrayrm Jun 8, 2024 https://github.com/python-control/python-control/pull/1001/commits/c72fa915408591197dd49cd1696a1ea42513722a
951e171 updates to address @slivingston review comments murrayrm Jun 26, 2024 https://github.com/python-control/python-control/pull/1001/commits/951e17126e589fd1744a4dd77243fb5189109ade
Clear filters https://github.com/python-control/python-control/pull/1001/files
Please reload this pagehttps://github.com/python-control/python-control/pull/1001/files
Please reload this pagehttps://github.com/python-control/python-control/pull/1001/files
freqplot.py https://github.com/python-control/python-control/pull/1001/files#diff-a751fe1009e7b656d19357a39abb58dd88b89052c9d9259c3393a4648b697a16
nlsys.py https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
phaseplot.py https://github.com/python-control/python-control/pull/1001/files#diff-8d327fabc85bcbf149275af55909717ddc918f5330f0b02956ce9791bf32312b
nlsys_test.py https://github.com/python-control/python-control/pull/1001/files#diff-9bbebd2d7d1971bd874d605b2a384e956157bdba7b55363919c6b3dd76c17697
phaseplot_test.py https://github.com/python-control/python-control/pull/1001/files#diff-a2bdd2ed855b1b0f2a32ae01f58ca1f8a87b3331bc31e637889939fd3efd5eb6
timebase_test.py https://github.com/python-control/python-control/pull/1001/files#diff-612d6b19662d8e7789b877186aaaaf795d2a276b5b22f62c8c2f29f1bc72af8e
type_conversion_test.py https://github.com/python-control/python-control/pull/1001/files#diff-702bae0932c693fc46b5a03a053d53fa49a386cfcf2768ac89b249657d9c2462
timeresp.py https://github.com/python-control/python-control/pull/1001/files#diff-3200453f1cf62f183f04dbf39d1129d91245c53a9f74675cee6bd384351c45b4
cds110_invpend-dynamics.ipynb https://github.com/python-control/python-control/pull/1001/files#diff-be4fb485fd8206499618eca82abc66226161f3d09521297e4addbfb370b0cf69
pvtol-nested.py https://github.com/python-control/python-control/pull/1001/files#diff-55bfc27c487190ed179e75f929514449bdd575d21e264a77be5c618104539d8c
control/freqplot.pyhttps://github.com/python-control/python-control/pull/1001/files#diff-a751fe1009e7b656d19357a39abb58dd88b89052c9d9259c3393a4648b697a16
View file https://github.com/murrayrm/python-control/blob/951e17126e589fd1744a4dd77243fb5189109ade/control/freqplot.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python-control/python-control/pull/1001/{{ revealButtonHref }}
https://github.com/python-control/python-control/pull/1001/files#diff-a751fe1009e7b656d19357a39abb58dd88b89052c9d9259c3393a4648b697a16
https://github.com/python-control/python-control/pull/1001/files#diff-a751fe1009e7b656d19357a39abb58dd88b89052c9d9259c3393a4648b697a16
https://github.com/python-control/python-control/pull/1001/files#diff-a751fe1009e7b656d19357a39abb58dd88b89052c9d9259c3393a4648b697a16
https://github.com/python-control/python-control/pull/1001/files#diff-a751fe1009e7b656d19357a39abb58dd88b89052c9d9259c3393a4648b697a16
https://github.com/python-control/python-control/pull/1001/files#diff-a751fe1009e7b656d19357a39abb58dd88b89052c9d9259c3393a4648b697a16
control/nlsys.pyhttps://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
View file https://github.com/murrayrm/python-control/blob/951e17126e589fd1744a4dd77243fb5189109ade/control/nlsys.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python-control/python-control/pull/1001/{{ revealButtonHref }}
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
https://github.com/python-control/python-control/pull/1001/files#diff-5ae9b973ef43076c51927f314e400ffc76cef00009ba1f343c83c53bd12a9d99
Please reload this pagehttps://github.com/python-control/python-control/pull/1001/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.