René's URL Explorer Experiment


Title: I/O system enhancements by murrayrm · Pull Request #1082 · python-control/python-control · GitHub

Open Graph Title: I/O system enhancements by murrayrm · Pull Request #1082 · python-control/python-control

X Title: I/O system enhancements by murrayrm · Pull Request #1082 · python-control/python-control

Description: This PR provides a number of enhancements to I/O systems classes, most of which are internal but a few of which are visible to the user: Updated factory functions to provide consistent functionality in terms of copying signal/system names, overriding system/signal names, and converting between classes. Updated docstrings for all I/O classes and factory functions to provide consistent information and added unit tests to ensure consistency. The main changes were to make sure that all factory function parameters are documented while having the class docstrings focus on the primary parameters + attributes (with a reference to the factory function for more detailed documentation). Updated the tf() factory function to allow a 2D list of SISO transfer functions to be given as a means of creating a MIMO transfer function (use the new combine_tf function). This is redundant with combine_tf, but seemed useful to include in the factory function for the special case of creating a MIMO transfer function via a set of SISO expressions. E.g.: s = ct.tf('s') sys = ct.tf([[1/s, 0], [(s+1)/(s**2 + 2s + 1), 1/(s+1)]]) [8f3615b, 22 Dec '24] Added processing of the params keyword to create_statefbk_iosystem. [e4d373c, 22 Dec '24] Updated interconnect() to combine parameter lists of subsystems if params is not specified. Changed some methods and attributes to be hidden so that they don't get flagged in docstring testing. These are functions that are not needed by the user (eg, FrequencyResponseData._ifunc, which is the internally generated interpolation function if the smooth keyword is used). Changed the internal representation of transfer function numerators and denominators to a 2D array of arrays instead of a 2D nested list of arrays. This allows user of NumPy routines when accessing input/output pairs (eg, sys.num_array[i, j] instead of sys.num_list[i][j]). The nested list representation is still available via the {num,den}_list properties and the num and den attributes retrieve the nested list structure for backward compatibility. (We may want to change that in the future, but it could break user code where someone is accessing the numerator and denominator polynomials directly.) Add the ability for nlsys to create a NonlinearIOSystem representation of a StateSpace system. It's not clear that this is so useful for a user (since StateSpace is a subclass of NonlinearIOSystem), but it is handy for testing since you can quickly create a nonlinear I/O system from a linear system but have it treated as a "pure" NonlinearIOSystem instead of a StateSpace system. Got rid of redundant licensing information at the top of files that were modified (the information is contained in the LICENSE file in the main directory). Note: this PR is likely to conflict with #1081, so the plan is to review/merge #1081 first, then rebase this PR on top of that one.

Open Graph Description: This PR provides a number of enhancements to I/O systems classes, most of which are internal but a few of which are visible to the user: Updated factory functions to provide consistent functionali...

X Description: This PR provides a number of enhancements to I/O systems classes, most of which are internal but a few of which are visible to the user: Updated factory functions to provide consistent functionali...

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

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/checks(.:format)
route-controllerpull_requests
route-actionchecks
fetch-noncev2:37de2d8a-fb45-6c1d-58e5-20eafdcbc06f
current-catalog-service-hash87dc3bc62d9b466312751bfd5f889726f4f1337bdff4e8be7da7c93d6c00a25a
request-idC578:36C84C:1143C1D:117CB9E:697A898E
html-safe-noncefc087c777cad8600e7248c6049b0104cf714d79ece07c71a014adb3a7e1857d1
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDNTc4OjM2Qzg0QzoxMTQzQzFEOjExN0NCOUU6Njk3QTg5OEUiLCJ2aXNpdG9yX2lkIjoiNjQ0NDQ1ODc2NTY3MTEwNjk1OCIsInJlZ2lvbl9lZGdlIjoic2VhIiwicmVnaW9uX3JlbmRlciI6InNlYSJ9
visitor-hmac94e407a8469f6c067cc08b7ef28cc9a6189412d88d852dc7236bacf7e06517f1
hovercard-subject-tagpull_request:2247379441
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/1082/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 PR provides a number of enhancements to I/O systems classes, most of which are internal but a few of which are visible to the user: Updated factory functions to provide consistent functionali...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None8bc3ff3881e539acc2eac7cfa104664bc0f8d972a0dfc38dd3cbffce0d16af91
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
released1026e9b6076007917cf27102f0d94ead41f7c24
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/python-control/python-control/pull/1082/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%2F1082%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%2F1082%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/1082/checks
Reloadhttps://github.com/python-control/python-control/pull/1082/checks
Reloadhttps://github.com/python-control/python-control/pull/1082/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:iosys_enhance-07Dec2024https://github.com/murrayrm/python-control/tree/iosys_enhance-07Dec2024
Conversation 27 https://github.com/python-control/python-control/pull/1082
Commits 16 https://github.com/python-control/python-control/pull/1082/commits
Checks 13 https://github.com/python-control/python-control/pull/1082/checks
Files changed https://github.com/python-control/python-control/pull/1082/files
Please reload this pagehttps://github.com/python-control/python-control/pull/1082/checks
Please reload this pagehttps://github.com/python-control/python-control/pull/1082/checks
Sign in for the full log viewhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython-control%2Fpython-control%2Fpull%2F1082%2Fchecks
I/O system enhancements https://github.com/python-control/python-control/pull/1082/checks#top
Please reload this pagehttps://github.com/python-control/python-control/pull/1082/checks
Slycot from source on: pull_request https://github.com/python-control/python-control/actions/runs/12612880045
build-linux https://github.com/python-control/python-control/actions/runs/12612880045/job/35150079957?pr=1082
Doctest on: pull_request https://github.com/python-control/python-control/actions/runs/12612880044
doctest-linux https://github.com/python-control/python-control/actions/runs/12612880044/job/35150080076?pr=1082
Conda-based pytest on: pull_request https://github.com/python-control/python-control/actions/runs/12612880046
Py3.10; no Slycot; no Pandas; no CVXOPT https://github.com/python-control/python-control/actions/runs/12612880046/job/35150079970?pr=1082
Py3.10; no Slycot; no Pandas; conda CVXOPT https://github.com/python-control/python-control/actions/runs/12612880046/job/35150080079?pr=1082
Py3.10; conda Slycot; no Pandas; no CVXOPT https://github.com/python-control/python-control/actions/runs/12612880046/job/35150080160?pr=1082
Py3.10; conda Slycot; no Pandas; conda CVXOPT https://github.com/python-control/python-control/actions/runs/12612880046/job/35150080260?pr=1082
Py3.12; no Slycot; no Pandas; no CVXOPT https://github.com/python-control/python-control/actions/runs/12612880046/job/35150080335?pr=1082
Py3.12; no Slycot; no Pandas; conda CVXOPT https://github.com/python-control/python-control/actions/runs/12612880046/job/35150080417?pr=1082
Py3.12; conda Slycot; no Pandas; no CVXOPT https://github.com/python-control/python-control/actions/runs/12612880046/job/35150080495?pr=1082
Py3.12; conda Slycot; no Pandas; conda CVXOPT https://github.com/python-control/python-control/actions/runs/12612880046/job/35150080579?pr=1082
Py3.12; conda Slycot; conda Pandas; conda CVXOPT ; QtAgg https://github.com/python-control/python-control/actions/runs/12612880046/job/35150080678?pr=1082
Finalize parallel coveralls https://github.com/python-control/python-control/actions/runs/12612880046/job/35150228542?pr=1082
Setup, Examples, Notebooks on: pull_request https://github.com/python-control/python-control/actions/runs/12612880052
install-examples https://github.com/python-control/python-control/actions/runs/12612880052/job/35150079968?pr=1082
https://github.com/python-control/python-control/actions/runs/12612880045/job/35150079957
https://github.com/actions/runner-images/issues/10636https://github.com/actions/runner-images/issues/10636
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.