René's URL Explorer Experiment


Title: Updated documentation by murrayrm · Pull Request #1094 · python-control/python-control · GitHub

Open Graph Title: Updated documentation by murrayrm · Pull Request #1094 · python-control/python-control

X Title: Updated documentation by murrayrm · Pull Request #1094 · python-control/python-control

Description: This (very large) PR contains a restructuring of the Sphinx documentation, including changes to improve uniformity of docstrings along with draft guidelines for developers. This is being posted initially as a draft PR so that people can start to have a look at the changes and provide feedback. High level principles: No documentation has been removed, only shifted around. With a few small exceptions, to fix up inconsistencies, there are no changes to the code base and all previous code will run without change. Because of the large number of files changed, this PR will probably be very difficult to review based on looking at the changes to individual files. It will probably make more sense to look through the updated version of the documentation on ReadTheDocs. Summary of significant changes: Sphinx documentation is now divided into a User Guide, which provides a narrative style description of python-control package, and a Reference Manual, which has a listing of all functions, classes, package configuraton parameters, and other detailed information about the package. Control plots included in the documentation are generated by the code in the documentation, using the Sphinx doctest extension. Figures are created using the make doctest command in the doc/ directory (called automatically when make html is run). Regularized the way that classes, functions, methods, parameters, built-ins, and code samples are annotated and created a custom.css file to control HTML formatting: Classes, functions, methods, and parameters use single backticks, with no additional directives, and are treated using the py:obj directive. For classes, functions, and methods, this will generate a link using bold, code font. For parameters, non-bold text is used (since Sphinx does not yet support links to parameter documentation). Code samples use double backticks and are rendered in non-bold, black, fixed width font (versus the default red color). Python built-ins (True, False, None) are written with no backticks. This was previously very non-uniform, and this style fits what is commonly used in the NumPy documentation. Moved the Control Systems Classes chapter to the Reference Manual and added all classes in the package (previous it was just the I/O system classes). Added a new chapter Package Configuration Parameters to the Reference Manual, with documentation on everything available via ct.config.defaults (and a unit test to make sure nothing is missing). Added a new chapter Developer Notes to the reference manual that describes the various choices that were made in making the package structure and documentation uniform. Sections in the chapter: Package Structure: how the package is organized (directories, files) Naming Conventions: how to name files, classes, functions, etc Documentation Guidelines: how to document various types of objects, including consistent use of backticks (with rationale), as well a description of what goes in the User Guide vs Reference Manual chapters. Utility Functions: a relatively incomplete listing of some of the more common utility functions for developers. Sample Files: template.py and template.rst that implement the guidelines. Got rid of docstring hashes for functions with variable arguments and instead used docstring signatures as a replacement for checking that parameters are documented. Added numpydoc checks in control/tests/docstring_test.py to pick up things like improperly labeled sections (e.g., "See also" instead of "See Also") and other errors. Moved documentation from __init__ docstrings (which is not included in the Sphinx documentation) to class documentation (with details in the factory function, when appropriate). Moved documentation examples files to doc/examples and documentation figures to doc/figures to declutter the doc directory (this accounts for many of the 226 files that have changed). [26 Jan 2025] Added Release Notes providing a (user-oriented) summary of changes in recent releases (with a summary of earlier releases). Release notes are contained in doc/releases. Smaller changes: Added Sphinx unit test (doc/test_sphinx) to make sure all primary functions are documented in the Reference Manual. Updated file header information to be a standard form, shown in examples/template.py. Removed top-level class dependence on object Removed (unused) table in matlab/__init__ and replaced with doc/matlab.rst (part of Reference Manual) Ran isort -m2 on all files to sort imports. Improved consistency checking in control/tests/docstring_test.py unit test checks: All function and parameter summaries now start with a capital letter and end with a period. Added checking docstring format of "Returns" section, in addition to "Parameters". Remove excess spaces throughout the package (since all files were touched). Equations are now centered in Sphinx, instead of left justified. Small code changes: Renamed acker to place_acker (to be consistent with place_varga) and set acker = place_acker. Identified source code lines that were more than 79 characters and reformatted (PEP 8). [25 Jan 2025] The NamedSignal class now has a __repr__ method that evaluates back to a NamedSignal (similar to the InputOutputSystem __repr__ method). Additional changes that are coming: Regularize frequency response arguments/return vals: (fresp, freqpts) Regularize timebase documentation ('dt' format + wording) Make sure all MATLAB functions are documented in Reference Manual Get rid of numbered notes (just use paragraphs) Remove all remaining .. todo::'s Fix additional typos and grammatical inconsistencies

Open Graph Description: This (very large) PR contains a restructuring of the Sphinx documentation, including changes to improve uniformity of docstrings along with draft guidelines for developers. This is being posted in...

X Description: This (very large) PR contains a restructuring of the Sphinx documentation, including changes to improve uniformity of docstrings along with draft guidelines for developers. This is being posted in...

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

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/checks(.:format)
route-controllerpull_requests
route-actionchecks
fetch-noncev2:8e022ca1-39fb-3396-68ca-865e0bf640d6
current-catalog-service-hash87dc3bc62d9b466312751bfd5f889726f4f1337bdff4e8be7da7c93d6c00a25a
request-id9628:191A63:201E2AC:2B0D379:697AB4EA
html-safe-nonce6421d548f789763e8940af4aa3e91d47d4e907b2a81a2c36390868170114381b
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5NjI4OjE5MUE2MzoyMDFFMkFDOjJCMEQzNzk6Njk3QUI0RUEiLCJ2aXNpdG9yX2lkIjoiMjgyMTA3MjI2MTM4MzYzMjEwNiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmace516516bb7eea1b76887fa5f774ba53e95688b4aa755db6ee60c84d67ae88e4a
hovercard-subject-tagpull_request:2273043075
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,checks,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/checks
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/python-control/python-control/pull/1094/checks
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 (very large) PR contains a restructuring of the Sphinx documentation, including changes to improve uniformity of docstrings along with draft guidelines for developers. This is being posted in...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None33acda8ebf71b04c9d33b494d2b6e0db48193ec89eb3ad92a9539d491fa9a3da
turbo-cache-controlno-cache
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 full-width-p-0
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release4f714a84d3384e467839505ed65f968fc01aedf1
ui-targetcanary-2
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/python-control/python-control/pull/1094/checks#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython-control%2Fpython-control%2Fpull%2F1094%2Fchecks
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%2F1094%2Fchecks
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%2Fchecks&source=header-repo&source_repo=python-control%2Fpython-control
Reloadhttps://github.com/python-control/python-control/pull/1094/checks
Reloadhttps://github.com/python-control/python-control/pull/1094/checks
Reloadhttps://github.com/python-control/python-control/pull/1094/checks
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:userguide-22Dec2024https://github.com/murrayrm/python-control/tree/userguide-22Dec2024
Conversation 55 https://github.com/python-control/python-control/pull/1094
Commits 93 https://github.com/python-control/python-control/pull/1094/commits
Checks 40 https://github.com/python-control/python-control/pull/1094/checks
Files changed https://github.com/python-control/python-control/pull/1094/files
Please reload this pagehttps://github.com/python-control/python-control/pull/1094/checks
Please reload this pagehttps://github.com/python-control/python-control/pull/1094/checks
Sign in for the full log viewhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython-control%2Fpython-control%2Fpull%2F1094%2Fchecks
Updated documentation https://github.com/python-control/python-control/pull/1094/checks#top
Please reload this pagehttps://github.com/python-control/python-control/pull/1094/checks
Doctest on: pull_request https://github.com/python-control/python-control/actions/runs/13107250758
doctest-linux https://github.com/python-control/python-control/actions/runs/13107250758/job/36564020134?pr=1094
OS/BLAS test matrix on: pull_request https://github.com/python-control/python-control/actions/runs/13107250760
Build pip Py3.10, ubuntu, unset BLA_VENDOR https://github.com/python-control/python-control/actions/runs/13107250760/job/36565174462?pr=1094
Build pip Py3.12, ubuntu, unset BLA_VENDOR https://github.com/python-control/python-control/actions/runs/13107250760/job/36565174781?pr=1094
Build pip Py3.10, macos, unset BLA_VENDOR https://github.com/python-control/python-control/actions/runs/13107250760/job/36565175095?pr=1094
Build pip Py3.12, macos, unset BLA_VENDOR https://github.com/python-control/python-control/actions/runs/13107250760/job/36565175259?pr=1094
Build pip Py3.12, ubuntu, Generic BLA_VENDOR https://github.com/python-control/python-control/actions/runs/13107250760/job/36565175423?pr=1094
Build pip Py3.12, ubuntu, OpenBLAS BLA_VENDOR https://github.com/python-control/python-control/actions/runs/13107250760/job/36565175547?pr=1094
Build pip Py3.12, macos, Apple BLA_VENDOR https://github.com/python-control/python-control/actions/runs/13107250760/job/36565175678?pr=1094
Build pip Py3.12, macos, Generic BLA_VENDOR https://github.com/python-control/python-control/actions/runs/13107250760/job/36565175853?pr=1094
Build pip Py3.12, macos, OpenBLAS BLA_VENDOR https://github.com/python-control/python-control/actions/runs/13107250760/job/36565175994?pr=1094
Build conda Py3.11, ubuntu https://github.com/python-control/python-control/actions/runs/13107250760/job/36565174217?pr=1094
Build conda Py3.11, macos https://github.com/python-control/python-control/actions/runs/13107250760/job/36565174600?pr=1094
Build conda Py3.11, windows https://github.com/python-control/python-control/actions/runs/13107250760/job/36565174935?pr=1094
Create wheel test matrix https://github.com/python-control/python-control/actions/runs/13107250760/job/36565321650?pr=1094
Create conda test matrix https://github.com/python-control/python-control/actions/runs/13107250760/job/36565517379?pr=1094
Test wheel macos-3.12-Generic, Generic BLAS lib https://github.com/python-control/python-control/actions/runs/13107250760/job/36565329226?pr=1094
Test wheel macos-3.12-Generic, OpenBLAS BLAS lib https://github.com/python-control/python-control/actions/runs/13107250760/job/36565329515?pr=1094
Test wheel macos-3.12-Generic, Apple BLAS lib https://github.com/python-control/python-control/actions/runs/13107250760/job/36565329715?pr=1094
Test wheel ubuntu-3.12-OpenBLAS, OpenBLAS BLAS lib https://github.com/python-control/python-control/actions/runs/13107250760/job/36565329867?pr=1094
Test wheel ubuntu-3.12-Generic, Generic BLAS lib https://github.com/python-control/python-control/actions/runs/13107250760/job/36565330015?pr=1094
Test wheel ubuntu-3.12-Generic, OpenBLAS BLAS lib https://github.com/python-control/python-control/actions/runs/13107250760/job/36565330182?pr=1094
Test wheel macos-3.12-unset, unset BLAS lib https://github.com/python-control/python-control/actions/runs/13107250760/job/36565330338?pr=1094
Test wheel ubuntu-3.10-unset, unset BLAS lib https://github.com/python-control/python-control/actions/runs/13107250760/job/36565330481?pr=1094
Test wheel macos-3.12-Apple, Apple BLAS lib https://github.com/python-control/python-control/actions/runs/13107250760/job/36565330671?pr=1094
Test wheel ubuntu-3.12-unset, unset BLAS lib https://github.com/python-control/python-control/actions/runs/13107250760/job/36565330835?pr=1094
Test wheel macos-3.10-unset, unset BLAS lib https://github.com/python-control/python-control/actions/runs/13107250760/job/36565330968?pr=1094
Test wheel macos-3.12-OpenBLAS, OpenBLAS BLAS lib https://github.com/python-control/python-control/actions/runs/13107250760/job/36565331119?pr=1094
Setup, Examples, Notebooks on: pull_request https://github.com/python-control/python-control/actions/runs/13107250762
install-examples https://github.com/python-control/python-control/actions/runs/13107250762/job/36564020104?pr=1094
Slycot from source on: pull_request https://github.com/python-control/python-control/actions/runs/13107250764
build-linux https://github.com/python-control/python-control/actions/runs/13107250764/job/36564020111?pr=1094
Conda-based pytest on: pull_request https://github.com/python-control/python-control/actions/runs/13107250765
Py3.10; no Slycot; no Pandas; no CVXOPT https://github.com/python-control/python-control/actions/runs/13107250765/job/36564450489?pr=1094
Py3.10; no Slycot; no Pandas; conda CVXOPT https://github.com/python-control/python-control/actions/runs/13107250765/job/36564450750?pr=1094
Py3.10; conda Slycot; no Pandas; no CVXOPT https://github.com/python-control/python-control/actions/runs/13107250765/job/36564451016?pr=1094
Py3.10; conda Slycot; no Pandas; conda CVXOPT https://github.com/python-control/python-control/actions/runs/13107250765/job/36564451217?pr=1094
Py3.12; no Slycot; no Pandas; no CVXOPT https://github.com/python-control/python-control/actions/runs/13107250765/job/36564451468?pr=1094
Py3.12; no Slycot; no Pandas; conda CVXOPT https://github.com/python-control/python-control/actions/runs/13107250765/job/36564451694?pr=1094
Py3.12; conda Slycot; no Pandas; no CVXOPT https://github.com/python-control/python-control/actions/runs/13107250765/job/36564451909?pr=1094
Py3.12; conda Slycot; no Pandas; conda CVXOPT https://github.com/python-control/python-control/actions/runs/13107250765/job/36564452212?pr=1094
Py3.12; conda Slycot; conda Pandas; conda CVXOPT ; QtAgg https://github.com/python-control/python-control/actions/runs/13107250765/job/36564452568?pr=1094
Finalize parallel coveralls https://github.com/python-control/python-control/actions/runs/13107250765/job/36564683729?pr=1094
ruff-check on: pull_request https://github.com/python-control/python-control/actions/runs/13107250771
ruff-check-linux https://github.com/python-control/python-control/actions/runs/13107250771/job/36564020196?pr=1094
https://github.com/python-control/python-control/pull/1094/checks#annotation:3:340
https://github.com/python-control/python-control/pull/1094/checks#annotation:3:359
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.