{"id":91629,"name":null,"description":"Smart reproducible analytical pipeline inspection","url":"https://github.com/aeturrell/smartrappy","last_synced_at":"2025-09-09T00:33:31.048Z","repository":{"id":288936221,"uuid":"932453627","full_name":"aeturrell/smartrappy","owner":"aeturrell","description":"Smart reproducible analytical pipeline inspection","archived":false,"fork":false,"pushed_at":"2025-04-21T22:07:33.000Z","size":609,"stargazers_count":17,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-25T10:40:47.770Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://aeturrell.github.io/smartrappy/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aeturrell.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing.qmd","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-13T23:55:08.000Z","updated_at":"2025-05-14T22:38:00.000Z","dependencies_parsed_at":"2025-04-20T15:45:12.120Z","dependency_job_id":null,"html_url":"https://github.com/aeturrell/smartrappy","commit_stats":null,"previous_names":["aeturrell/smartrappy"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aeturrell/smartrappy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aeturrell%2Fsmartrappy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aeturrell%2Fsmartrappy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aeturrell%2Fsmartrappy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aeturrell%2Fsmartrappy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aeturrell","download_url":"https://codeload.github.com/aeturrell/smartrappy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aeturrell%2Fsmartrappy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274231123,"owners_count":25245687,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-08T02:00:09.813Z","response_time":121,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"aeturrell","name":null,"uuid":"11294320","kind":"user","description":"","email":"","website":"www.aeturrell.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/11294320?u=2af6f22a566bf39159224f53785d2c6d540e0e38\u0026v=4","repositories_count":9,"last_synced_at":"2023-03-02T23:40:17.126Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/aeturrell","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-13T13:23:20.982Z","updated_at":"2023-03-02T23:40:17.137Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aeturrell","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aeturrell/repositories"},"packages":[{"id":11568996,"name":"smartrappy","ecosystem":"pypi","description":"Smart reproducible analytical pipeline visualisation.","homepage":null,"licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/aeturrell/smartrappy","keywords_array":[],"namespace":null,"versions_count":4,"first_release_published_at":"2025-04-20T16:55:55.000Z","latest_release_published_at":"2025-04-21T22:06:47.000Z","latest_release_number":"0.0.5","last_synced_at":"2025-08-25T06:47:16.652Z","created_at":"2025-04-20T17:01:44.558Z","updated_at":"2025-08-25T09:53:21.654Z","registry_url":"https://pypi.org/project/smartrappy/","install_command":"pip install smartrappy --index-url https://pypi.org/simple","documentation_url":"https://smartrappy.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 2 - Pre-Alpha","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12"],"normalized_name":"smartrappy","project_status":null},"repo_metadata":{"id":288936221,"uuid":"932453627","full_name":"aeturrell/smartrappy","owner":"aeturrell","description":"Smart reproducible analytical pipeline inspection","archived":false,"fork":false,"pushed_at":"2025-04-21T22:07:33.000Z","size":609,"stargazers_count":17,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-17T05:40:07.714Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://aeturrell.github.io/smartrappy/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aeturrell.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing.qmd","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-13T23:55:08.000Z","updated_at":"2025-05-14T22:38:00.000Z","dependencies_parsed_at":"2025-04-20T15:45:12.120Z","dependency_job_id":null,"html_url":"https://github.com/aeturrell/smartrappy","commit_stats":null,"previous_names":["aeturrell/smartrappy"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aeturrell/smartrappy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aeturrell%2Fsmartrappy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aeturrell%2Fsmartrappy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aeturrell%2Fsmartrappy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aeturrell%2Fsmartrappy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aeturrell","download_url":"https://codeload.github.com/aeturrell/smartrappy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aeturrell%2Fsmartrappy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272041023,"owners_count":24863277,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-25T02:00:12.092Z","response_time":1107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"aeturrell","name":null,"uuid":"11294320","kind":"user","description":"","email":"","website":"www.aeturrell.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/11294320?u=2af6f22a566bf39159224f53785d2c6d540e0e38\u0026v=4","repositories_count":9,"last_synced_at":"2023-03-02T23:40:17.126Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/aeturrell","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-13T13:23:20.982Z","updated_at":"2023-03-02T23:40:17.137Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aeturrell","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aeturrell/repositories"},"tags":[]},"repo_metadata_updated_at":"2025-08-25T09:53:21.653Z","dependent_packages_count":0,"downloads":12,"downloads_period":"last-month","dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":52.19688253464263,"dependent_packages_count":9.26662563956202,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":30.731754087102328},"purl":"pkg:pypi/smartrappy","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/smartrappy","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/smartrappy","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/smartrappy/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/smartrappy/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/smartrappy/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/smartrappy/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/smartrappy/related_packages","maintainers":[{"uuid":"aeturrell","login":"aeturrell","name":null,"email":null,"url":null,"packages_count":5,"html_url":"https://pypi.org/user/aeturrell/","role":"Owner","created_at":"2025-04-20T17:31:24.333Z","updated_at":"2025-04-20T17:31:24.333Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/aeturrell/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":726316,"maintainers_count":308829,"namespaces_count":0,"keywords_count":238245,"github":"pypi","metadata":{"funded_packages_count":50579},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-09-08T05:32:36.857Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}}],"commits":{"message":"Repository syncing started."},"issues_stats":{"full_name":"aeturrell/smartrappy","html_url":"https://github.com/aeturrell/smartrappy","last_synced_at":null,"status":null,"issues_count":null,"pull_requests_count":null,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":null,"issues_closed_count":null,"pull_requests_closed_count":null,"pull_request_authors_count":null,"issue_authors_count":null,"avg_comments_per_issue":null,"avg_comments_per_pull_request":null,"merged_pull_requests_count":null,"bot_issues_count":null,"bot_pull_requests_count":null,"past_year_issues_count":null,"past_year_pull_requests_count":null,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":null,"past_year_pull_requests_closed_count":null,"past_year_pull_request_authors_count":null,"past_year_issue_authors_count":null,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":null,"past_year_bot_pull_requests_count":null,"past_year_merged_pull_requests_count":null,"created_at":"2025-08-29T17:59:27.414Z","updated_at":"2025-08-31T01:59:12.665Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/aeturrell%2Fsmartrappy","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/aeturrell%2Fsmartrappy/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{"OWNER":3,"NONE":1},"pull_request_author_associations_count":{"OWNER":7},"issue_authors":{"aeturrell":3,"mgierdal":1},"pull_request_authors":{"aeturrell":7},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-09T00:00:11.778Z","repositories_count":10174508,"issues_count":31931287,"pull_requests_count":100075476,"authors_count":10734044,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"OWNER":3,"NONE":1},"past_year_pull_request_author_associations_count":{"OWNER":7},"past_year_issue_authors":{"aeturrell":3,"mgierdal":1},"past_year_pull_request_authors":{"aeturrell":7},"maintainers":[{"login":"aeturrell","count":10,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/aeturrell"}],"active_maintainers":[{"login":"aeturrell","count":10,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/aeturrell"}]},"events":{"total":{"CreateEvent":9,"IssuesEvent":5,"ReleaseEvent":4,"WatchEvent":16,"IssueCommentEvent":3,"PublicEvent":1,"PushEvent":30,"PullRequestEvent":14},"last_year":{"CreateEvent":9,"IssuesEvent":5,"ReleaseEvent":4,"WatchEvent":16,"IssueCommentEvent":3,"PublicEvent":1,"PushEvent":30,"PullRequestEvent":14}},"keywords":[],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/labeler.yml","sha":null,"kind":"manifest","created_at":"2025-04-20T15:44:57.431Z","updated_at":"2025-04-20T15:44:57.431Z","repository_link":"https://github.com/aeturrell/smartrappy/blob/main/.github/workflows/labeler.yml","dependencies":[{"id":22773888460,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":22773888461,"package_name":"crazy-max/ghaction-github-labeler","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/release.yml","sha":null,"kind":"manifest","created_at":"2025-04-20T15:44:58.967Z","updated_at":"2025-04-20T15:44:58.967Z","repository_link":"https://github.com/aeturrell/smartrappy/blob/main/.github/workflows/release.yml","dependencies":[{"id":22773891240,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":22773891243,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v5.4.0","direct":true,"kind":"composite","optional":false},{"id":22773893483,"package_name":"astral-sh/setup-uv","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false},{"id":22773893669,"package_name":"salsify/action-detect-and-tag-new-version","ecosystem":"actions","requirements":"v2.0.3","direct":true,"kind":"composite","optional":false},{"id":22773894412,"package_name":"pypa/gh-action-pypi-publish","ecosystem":"actions","requirements":"v1.12.4","direct":true,"kind":"composite","optional":false},{"id":22773894413,"package_name":"release-drafter/release-drafter","ecosystem":"actions","requirements":"v6.1.0","direct":true,"kind":"composite","optional":false},{"id":22773895407,"package_name":"quarto-dev/quarto-actions/setup","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/tests.yml","sha":null,"kind":"manifest","created_at":"2025-04-20T15:45:02.547Z","updated_at":"2025-04-20T15:45:02.547Z","repository_link":"https://github.com/aeturrell/smartrappy/blob/main/.github/workflows/tests.yml","dependencies":[{"id":22773895469,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":22773895470,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v5.4.0","direct":true,"kind":"composite","optional":false},{"id":22773895471,"package_name":"astral-sh/setup-uv","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false},{"id":22773895472,"package_name":"actions/cache","ecosystem":"actions","requirements":"v4.2.0","direct":true,"kind":"composite","optional":false},{"id":22773895473,"package_name":"actions/upload-artifact","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":22773895474,"package_name":"actions/download-artifact","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":22773895475,"package_name":"codecov/codecov-action","ecosystem":"actions","requirements":"v5.3.1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2025-04-20T15:45:02.989Z","updated_at":"2025-04-20T15:45:02.989Z","repository_link":"https://github.com/aeturrell/smartrappy/blob/main/pyproject.toml","dependencies":[{"id":22773895582,"package_name":"graphviz","ecosystem":"pypi","requirements":"\u003e=0.20.3","direct":true,"kind":"runtime","optional":false},{"id":22773895583,"package_name":"matplotlib","ecosystem":"pypi","requirements":"\u003e=3.10.0","direct":true,"kind":"runtime","optional":false},{"id":22773895584,"package_name":"pandas","ecosystem":"pypi","requirements":"\u003e=2.2.3","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"uv.lock","sha":null,"kind":"lockfile","created_at":"2025-04-20T15:45:03.451Z","updated_at":"2025-04-20T15:45:03.451Z","repository_link":"https://github.com/aeturrell/smartrappy/blob/main/uv.lock","dependencies":[{"id":22773896384,"package_name":"annotated-types","ecosystem":"pypi","requirements":"0.7.0","direct":false,"kind":"runtime","optional":false},{"id":22773896385,"package_name":"anyio","ecosystem":"pypi","requirements":"4.8.0","direct":false,"kind":"runtime","optional":false},{"id":22773896386,"package_name":"appnope","ecosystem":"pypi","requirements":"0.1.4","direct":false,"kind":"runtime","optional":false},{"id":22773896387,"package_name":"argcomplete","ecosystem":"pypi","requirements":"3.5.3","direct":false,"kind":"runtime","optional":false},{"id":22773898052,"package_name":"overrides","ecosystem":"pypi","requirements":"7.7.0","direct":false,"kind":"runtime","optional":false},{"id":22773898053,"package_name":"packaging","ecosystem":"pypi","requirements":"24.2","direct":false,"kind":"runtime","optional":false},{"id":22773898054,"package_name":"pandas","ecosystem":"pypi","requirements":"2.2.3","direct":false,"kind":"runtime","optional":false},{"id":22773898055,"package_name":"pandocfilters","ecosystem":"pypi","requirements":"1.5.1","direct":false,"kind":"runtime","optional":false},{"id":22773898056,"package_name":"parso","ecosystem":"pypi","requirements":"0.8.4","direct":false,"kind":"runtime","optional":false},{"id":22773898057,"package_name":"pathspec","ecosystem":"pypi","requirements":"0.12.1","direct":false,"kind":"runtime","optional":false},{"id":22773898058,"package_name":"pexpect","ecosystem":"pypi","requirements":"4.9.0","direct":false,"kind":"runtime","optional":false},{"id":22773898059,"package_name":"pillow","ecosystem":"pypi","requirements":"11.1.0","direct":false,"kind":"runtime","optional":false},{"id":22773898060,"package_name":"platformdirs","ecosystem":"pypi","requirements":"4.3.6","direct":false,"kind":"runtime","optional":false},{"id":22773898061,"package_name":"pluggy","ecosystem":"pypi","requirements":"1.5.0","direct":false,"kind":"runtime","optional":false},{"id":22773898062,"package_name":"plum-dispatch","ecosystem":"pypi","requirements":"2.5.7","direct":false,"kind":"runtime","optional":false},{"id":22773898063,"package_name":"pre-commit","ecosystem":"pypi","requirements":"4.1.0","direct":false,"kind":"runtime","optional":false},{"id":22773898064,"package_name":"pre-commit-hooks","ecosystem":"pypi","requirements":"5.0.0","direct":false,"kind":"runtime","optional":false},{"id":22773898065,"package_name":"prometheus-client","ecosystem":"pypi","requirements":"0.21.1","direct":false,"kind":"runtime","optional":false},{"id":22773898066,"package_name":"prompt-toolkit","ecosystem":"pypi","requirements":"3.0.50","direct":false,"kind":"runtime","optional":false},{"id":22773898067,"package_name":"psutil","ecosystem":"pypi","requirements":"7.0.0","direct":false,"kind":"runtime","optional":false},{"id":22773898068,"package_name":"ptyprocess","ecosystem":"pypi","requirements":"0.7.0","direct":false,"kind":"runtime","optional":false},{"id":22773898069,"package_name":"pure-eval","ecosystem":"pypi","requirements":"0.2.3","direct":false,"kind":"runtime","optional":false},{"id":22773898070,"package_name":"pycodestyle","ecosystem":"pypi","requirements":"2.12.1","direct":false,"kind":"runtime","optional":false},{"id":22773898071,"package_name":"pycparser","ecosystem":"pypi","requirements":"2.22","direct":false,"kind":"runtime","optional":false},{"id":22773898072,"package_name":"pydantic","ecosystem":"pypi","requirements":"2.10.6","direct":false,"kind":"runtime","optional":false},{"id":22773898073,"package_name":"pydantic-core","ecosystem":"pypi","requirements":"2.27.2","direct":false,"kind":"runtime","optional":false},{"id":22773898074,"package_name":"pydoclint","ecosystem":"pypi","requirements":"0.6.0","direct":false,"kind":"runtime","optional":false},{"id":22773898116,"package_name":"pygments","ecosystem":"pypi","requirements":"2.19.1","direct":false,"kind":"runtime","optional":false},{"id":22773898117,"package_name":"pyparsing","ecosystem":"pypi","requirements":"3.2.1","direct":false,"kind":"runtime","optional":false},{"id":22773898118,"package_name":"pytest","ecosystem":"pypi","requirements":"8.3.4","direct":false,"kind":"runtime","optional":false},{"id":22773898119,"package_name":"python-dateutil","ecosystem":"pypi","requirements":"2.9.0.post0","direct":false,"kind":"runtime","optional":false},{"id":22773898120,"package_name":"python-json-logger","ecosystem":"pypi","requirements":"3.2.1","direct":false,"kind":"runtime","optional":false},{"id":22773898121,"package_name":"pytz","ecosystem":"pypi","requirements":"2025.1","direct":false,"kind":"runtime","optional":false},{"id":22773898122,"package_name":"pywin32","ecosystem":"pypi","requirements":"308","direct":false,"kind":"runtime","optional":false},{"id":22773898123,"package_name":"pywinpty","ecosystem":"pypi","requirements":"2.0.15","direct":false,"kind":"runtime","optional":false},{"id":22773898124,"package_name":"pyyaml","ecosystem":"pypi","requirements":"6.0.2","direct":false,"kind":"runtime","optional":false},{"id":22773898125,"package_name":"pyzmq","ecosystem":"pypi","requirements":"26.2.1","direct":false,"kind":"runtime","optional":false},{"id":22773898126,"package_name":"quartodoc","ecosystem":"pypi","requirements":"0.9.1","direct":false,"kind":"runtime","optional":false},{"id":22773898129,"package_name":"referencing","ecosystem":"pypi","requirements":"0.36.2","direct":false,"kind":"runtime","optional":false},{"id":22773898130,"package_name":"requests","ecosystem":"pypi","requirements":"2.32.3","direct":false,"kind":"runtime","optional":false},{"id":22773898131,"package_name":"rfc3339-validator","ecosystem":"pypi","requirements":"0.1.4","direct":false,"kind":"runtime","optional":false},{"id":22773898132,"package_name":"rfc3986-validator","ecosystem":"pypi","requirements":"0.1.1","direct":false,"kind":"runtime","optional":false},{"id":22773898133,"package_name":"rich","ecosystem":"pypi","requirements":"13.9.4","direct":false,"kind":"runtime","optional":false},{"id":22773898134,"package_name":"rpds-py","ecosystem":"pypi","requirements":"0.22.3","direct":false,"kind":"runtime","optional":false},{"id":22773898135,"package_name":"ruamel-yaml","ecosystem":"pypi","requirements":"0.18.10","direct":false,"kind":"runtime","optional":false},{"id":22773898136,"package_name":"ruamel-yaml-clib","ecosystem":"pypi","requirements":"0.2.12","direct":false,"kind":"runtime","optional":false},{"id":22773898137,"package_name":"ruff","ecosystem":"pypi","requirements":"0.9.6","direct":false,"kind":"runtime","optional":false},{"id":22773898138,"package_name":"send2trash","ecosystem":"pypi","requirements":"1.8.3","direct":false,"kind":"runtime","optional":false},{"id":22773898139,"package_name":"setuptools","ecosystem":"pypi","requirements":"75.8.0","direct":false,"kind":"runtime","optional":false},{"id":22773898140,"package_name":"six","ecosystem":"pypi","requirements":"1.17.0","direct":false,"kind":"runtime","optional":false},{"id":22773898141,"package_name":"smartrappy","ecosystem":"pypi","requirements":"0.0.1","direct":false,"kind":"runtime","optional":false},{"id":22773898151,"package_name":"sniffio","ecosystem":"pypi","requirements":"1.3.1","direct":false,"kind":"runtime","optional":false},{"id":22773898152,"package_name":"soupsieve","ecosystem":"pypi","requirements":"2.6","direct":false,"kind":"runtime","optional":false},{"id":22773898153,"package_name":"sphobjinv","ecosystem":"pypi","requirements":"2.3.1.2","direct":false,"kind":"runtime","optional":false},{"id":22773898329,"package_name":"stack-data","ecosystem":"pypi","requirements":"0.6.3","direct":false,"kind":"runtime","optional":false},{"id":22773896388,"package_name":"argon2-cffi","ecosystem":"pypi","requirements":"23.1.0","direct":false,"kind":"runtime","optional":false},{"id":22773896393,"package_name":"argon2-cffi-bindings","ecosystem":"pypi","requirements":"21.2.0","direct":false,"kind":"runtime","optional":false},{"id":22773896395,"package_name":"arrow","ecosystem":"pypi","requirements":"1.3.0","direct":false,"kind":"runtime","optional":false},{"id":22773896397,"package_name":"asttokens","ecosystem":"pypi","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":22773896399,"package_name":"async-lru","ecosystem":"pypi","requirements":"2.0.4","direct":false,"kind":"runtime","optional":false},{"id":22773896401,"package_name":"attrs","ecosystem":"pypi","requirements":"25.1.0","direct":false,"kind":"runtime","optional":false},{"id":22773896403,"package_name":"autopep8","ecosystem":"pypi","requirements":"2.3.2","direct":false,"kind":"runtime","optional":false},{"id":22773896405,"package_name":"babel","ecosystem":"pypi","requirements":"2.17.0","direct":false,"kind":"runtime","optional":false},{"id":22773896407,"package_name":"beartype","ecosystem":"pypi","requirements":"0.19.0","direct":false,"kind":"runtime","optional":false},{"id":22773896409,"package_name":"beautifulsoup4","ecosystem":"pypi","requirements":"4.13.3","direct":false,"kind":"runtime","optional":false},{"id":22773896411,"package_name":"black","ecosystem":"pypi","requirements":"25.1.0","direct":false,"kind":"runtime","optional":false},{"id":22773896414,"package_name":"bleach","ecosystem":"pypi","requirements":"6.2.0","direct":false,"kind":"runtime","optional":false},{"id":22773896416,"package_name":"certifi","ecosystem":"pypi","requirements":"2025.1.31","direct":false,"kind":"runtime","optional":false},{"id":22773896418,"package_name":"cffi","ecosystem":"pypi","requirements":"1.17.1","direct":false,"kind":"runtime","optional":false},{"id":22773896420,"package_name":"cfgv","ecosystem":"pypi","requirements":"3.4.0","direct":false,"kind":"runtime","optional":false},{"id":22773896422,"package_name":"charset-normalizer","ecosystem":"pypi","requirements":"3.4.1","direct":false,"kind":"runtime","optional":false},{"id":22773896424,"package_name":"click","ecosystem":"pypi","requirements":"8.1.8","direct":false,"kind":"runtime","optional":false},{"id":22773896426,"package_name":"colorama","ecosystem":"pypi","requirements":"0.4.6","direct":false,"kind":"runtime","optional":false},{"id":22773896428,"package_name":"colorlog","ecosystem":"pypi","requirements":"6.9.0","direct":false,"kind":"runtime","optional":false},{"id":22773896430,"package_name":"comm","ecosystem":"pypi","requirements":"0.2.2","direct":false,"kind":"runtime","optional":false},{"id":22773896432,"package_name":"contourpy","ecosystem":"pypi","requirements":"1.3.1","direct":false,"kind":"runtime","optional":false},{"id":22773896434,"package_name":"coverage","ecosystem":"pypi","requirements":"7.6.12","direct":false,"kind":"runtime","optional":false},{"id":22773896437,"package_name":"cycler","ecosystem":"pypi","requirements":"0.12.1","direct":false,"kind":"runtime","optional":false},{"id":22773896439,"package_name":"debugpy","ecosystem":"pypi","requirements":"1.8.12","direct":false,"kind":"runtime","optional":false},{"id":22773896441,"package_name":"decorator","ecosystem":"pypi","requirements":"5.1.1","direct":false,"kind":"runtime","optional":false},{"id":22773896442,"package_name":"defusedxml","ecosystem":"pypi","requirements":"0.7.1","direct":false,"kind":"runtime","optional":false},{"id":22773896444,"package_name":"dependency-groups","ecosystem":"pypi","requirements":"1.3.0","direct":false,"kind":"runtime","optional":false},{"id":22773896836,"package_name":"distlib","ecosystem":"pypi","requirements":"0.3.9","direct":false,"kind":"runtime","optional":false},{"id":22773896837,"package_name":"docstring-parser-fork","ecosystem":"pypi","requirements":"0.0.12","direct":false,"kind":"runtime","optional":false},{"id":22773896838,"package_name":"exceptiongroup","ecosystem":"pypi","requirements":"1.2.2","direct":false,"kind":"runtime","optional":false},{"id":22773896839,"package_name":"executing","ecosystem":"pypi","requirements":"2.2.0","direct":false,"kind":"runtime","optional":false},{"id":22773896840,"package_name":"fastjsonschema","ecosystem":"pypi","requirements":"2.21.1","direct":false,"kind":"runtime","optional":false},{"id":22773896841,"package_name":"filelock","ecosystem":"pypi","requirements":"3.17.0","direct":false,"kind":"runtime","optional":false},{"id":22773896842,"package_name":"fonttools","ecosystem":"pypi","requirements":"4.56.0","direct":false,"kind":"runtime","optional":false},{"id":22773896843,"package_name":"fqdn","ecosystem":"pypi","requirements":"1.5.1","direct":false,"kind":"runtime","optional":false},{"id":22773896844,"package_name":"graphviz","ecosystem":"pypi","requirements":"0.20.3","direct":false,"kind":"runtime","optional":false},{"id":22773896845,"package_name":"griffe","ecosystem":"pypi","requirements":"1.5.7","direct":false,"kind":"runtime","optional":false},{"id":22773896846,"package_name":"h11","ecosystem":"pypi","requirements":"0.14.0","direct":false,"kind":"runtime","optional":false},{"id":22773896847,"package_name":"httpcore","ecosystem":"pypi","requirements":"1.0.7","direct":false,"kind":"runtime","optional":false},{"id":22773896848,"package_name":"httpx","ecosystem":"pypi","requirements":"0.28.1","direct":false,"kind":"runtime","optional":false},{"id":22773896849,"package_name":"identify","ecosystem":"pypi","requirements":"2.6.7","direct":false,"kind":"runtime","optional":false},{"id":22773896850,"package_name":"idna","ecosystem":"pypi","requirements":"3.10","direct":false,"kind":"runtime","optional":false},{"id":22773896851,"package_name":"importlib-metadata","ecosystem":"pypi","requirements":"8.6.1","direct":false,"kind":"runtime","optional":false},{"id":22773896852,"package_name":"importlib-resources","ecosystem":"pypi","requirements":"6.5.2","direct":false,"kind":"runtime","optional":false},{"id":22773896853,"package_name":"iniconfig","ecosystem":"pypi","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":22773896854,"package_name":"ipykernel","ecosystem":"pypi","requirements":"6.29.5","direct":false,"kind":"runtime","optional":false},{"id":22773896855,"package_name":"ipython","ecosystem":"pypi","requirements":"8.32.0","direct":false,"kind":"runtime","optional":false},{"id":22773896856,"package_name":"ipywidgets","ecosystem":"pypi","requirements":"8.1.5","direct":false,"kind":"runtime","optional":false},{"id":22773896857,"package_name":"isoduration","ecosystem":"pypi","requirements":"20.11.0","direct":false,"kind":"runtime","optional":false},{"id":22773896858,"package_name":"jedi","ecosystem":"pypi","requirements":"0.19.2","direct":false,"kind":"runtime","optional":false},{"id":22773896859,"package_name":"jinja2","ecosystem":"pypi","requirements":"3.1.5","direct":false,"kind":"runtime","optional":false},{"id":22773896860,"package_name":"json5","ecosystem":"pypi","requirements":"0.10.0","direct":false,"kind":"runtime","optional":false},{"id":22773896861,"package_name":"jsonpointer","ecosystem":"pypi","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":22773896862,"package_name":"jsonschema","ecosystem":"pypi","requirements":"4.23.0","direct":false,"kind":"runtime","optional":false},{"id":22773896863,"package_name":"jsonschema-specifications","ecosystem":"pypi","requirements":"2024.10.1","direct":false,"kind":"runtime","optional":false},{"id":22773896864,"package_name":"jupyter","ecosystem":"pypi","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":22773896865,"package_name":"jupyter-client","ecosystem":"pypi","requirements":"8.6.3","direct":false,"kind":"runtime","optional":false},{"id":22773896866,"package_name":"jupyter-console","ecosystem":"pypi","requirements":"6.6.3","direct":false,"kind":"runtime","optional":false},{"id":22773896867,"package_name":"jupyter-core","ecosystem":"pypi","requirements":"5.7.2","direct":false,"kind":"runtime","optional":false},{"id":22773896868,"package_name":"jupyter-events","ecosystem":"pypi","requirements":"0.12.0","direct":false,"kind":"runtime","optional":false},{"id":22773896869,"package_name":"jupyter-lsp","ecosystem":"pypi","requirements":"2.2.5","direct":false,"kind":"runtime","optional":false},{"id":22773896870,"package_name":"jupyter-server","ecosystem":"pypi","requirements":"2.15.0","direct":false,"kind":"runtime","optional":false},{"id":22773896871,"package_name":"jupyter-server-terminals","ecosystem":"pypi","requirements":"0.5.3","direct":false,"kind":"runtime","optional":false},{"id":22773896872,"package_name":"jupyterlab","ecosystem":"pypi","requirements":"4.3.5","direct":false,"kind":"runtime","optional":false},{"id":22773896873,"package_name":"jupyterlab-pygments","ecosystem":"pypi","requirements":"0.3.0","direct":false,"kind":"runtime","optional":false},{"id":22773896874,"package_name":"jupyterlab-server","ecosystem":"pypi","requirements":"2.27.3","direct":false,"kind":"runtime","optional":false},{"id":22773896875,"package_name":"jupyterlab-widgets","ecosystem":"pypi","requirements":"3.0.13","direct":false,"kind":"runtime","optional":false},{"id":22773898025,"package_name":"kiwisolver","ecosystem":"pypi","requirements":"1.4.8","direct":false,"kind":"runtime","optional":false},{"id":22773898026,"package_name":"markdown-it-py","ecosystem":"pypi","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":22773898027,"package_name":"markupsafe","ecosystem":"pypi","requirements":"3.0.2","direct":false,"kind":"runtime","optional":false},{"id":22773898028,"package_name":"matplotlib","ecosystem":"pypi","requirements":"3.10.0","direct":false,"kind":"runtime","optional":false},{"id":22773898029,"package_name":"matplotlib-inline","ecosystem":"pypi","requirements":"0.1.7","direct":false,"kind":"runtime","optional":false},{"id":22773898030,"package_name":"mdurl","ecosystem":"pypi","requirements":"0.1.2","direct":false,"kind":"runtime","optional":false},{"id":22773898031,"package_name":"mistune","ecosystem":"pypi","requirements":"3.1.1","direct":false,"kind":"runtime","optional":false},{"id":22773898032,"package_name":"mypy-extensions","ecosystem":"pypi","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":22773898033,"package_name":"nbclient","ecosystem":"pypi","requirements":"0.10.2","direct":false,"kind":"runtime","optional":false},{"id":22773898034,"package_name":"nbconvert","ecosystem":"pypi","requirements":"7.16.6","direct":false,"kind":"runtime","optional":false},{"id":22773898035,"package_name":"nbformat","ecosystem":"pypi","requirements":"5.10.4","direct":false,"kind":"runtime","optional":false},{"id":22773898036,"package_name":"nbstripout","ecosystem":"pypi","requirements":"0.8.1","direct":false,"kind":"runtime","optional":false},{"id":22773898037,"package_name":"nest-asyncio","ecosystem":"pypi","requirements":"1.6.0","direct":false,"kind":"runtime","optional":false},{"id":22773898038,"package_name":"nodeenv","ecosystem":"pypi","requirements":"1.9.1","direct":false,"kind":"runtime","optional":false},{"id":22773898039,"package_name":"notebook","ecosystem":"pypi","requirements":"7.3.2","direct":false,"kind":"runtime","optional":false},{"id":22773898040,"package_name":"notebook-shim","ecosystem":"pypi","requirements":"0.2.4","direct":false,"kind":"runtime","optional":false},{"id":22773898041,"package_name":"nox","ecosystem":"pypi","requirements":"2025.2.9","direct":false,"kind":"runtime","optional":false},{"id":22773898051,"package_name":"numpy","ecosystem":"pypi","requirements":"2.2.3","direct":false,"kind":"runtime","optional":false},{"id":22773898330,"package_name":"tabulate","ecosystem":"pypi","requirements":"0.9.0","direct":false,"kind":"runtime","optional":false},{"id":22773898331,"package_name":"terminado","ecosystem":"pypi","requirements":"0.18.1","direct":false,"kind":"runtime","optional":false},{"id":22773898332,"package_name":"tinycss2","ecosystem":"pypi","requirements":"1.4.0","direct":false,"kind":"runtime","optional":false},{"id":22773898333,"package_name":"toml","ecosystem":"pypi","requirements":"0.10.2","direct":false,"kind":"runtime","optional":false},{"id":22773898334,"package_name":"tomli","ecosystem":"pypi","requirements":"2.2.1","direct":false,"kind":"runtime","optional":false},{"id":22773898335,"package_name":"tornado","ecosystem":"pypi","requirements":"6.4.2","direct":false,"kind":"runtime","optional":false},{"id":22773898336,"package_name":"traitlets","ecosystem":"pypi","requirements":"5.14.3","direct":false,"kind":"runtime","optional":false},{"id":22773898337,"package_name":"types-python-dateutil","ecosystem":"pypi","requirements":"2.9.0.20241206","direct":false,"kind":"runtime","optional":false},{"id":22773898338,"package_name":"typing-extensions","ecosystem":"pypi","requirements":"4.12.2","direct":false,"kind":"runtime","optional":false},{"id":22773898339,"package_name":"tzdata","ecosystem":"pypi","requirements":"2025.1","direct":false,"kind":"runtime","optional":false},{"id":22773898340,"package_name":"uri-template","ecosystem":"pypi","requirements":"1.3.0","direct":false,"kind":"runtime","optional":false},{"id":22773898341,"package_name":"urllib3","ecosystem":"pypi","requirements":"2.3.0","direct":false,"kind":"runtime","optional":false},{"id":22773898342,"package_name":"virtualenv","ecosystem":"pypi","requirements":"20.29.2","direct":false,"kind":"runtime","optional":false},{"id":22773898343,"package_name":"watchdog","ecosystem":"pypi","requirements":"6.0.0","direct":false,"kind":"runtime","optional":false},{"id":22773898344,"package_name":"wcwidth","ecosystem":"pypi","requirements":"0.2.13","direct":false,"kind":"runtime","optional":false},{"id":22773898345,"package_name":"webcolors","ecosystem":"pypi","requirements":"24.11.1","direct":false,"kind":"runtime","optional":false},{"id":22773898346,"package_name":"webencodings","ecosystem":"pypi","requirements":"0.5.1","direct":false,"kind":"runtime","optional":false},{"id":22773898347,"package_name":"websocket-client","ecosystem":"pypi","requirements":"1.8.0","direct":false,"kind":"runtime","optional":false},{"id":22773898348,"package_name":"widgetsnbextension","ecosystem":"pypi","requirements":"4.0.13","direct":false,"kind":"runtime","optional":false},{"id":22773898349,"package_name":"xdoctest","ecosystem":"pypi","requirements":"1.2.0","direct":false,"kind":"runtime","optional":false},{"id":22773898548,"package_name":"zipp","ecosystem":"pypi","requirements":"3.21.0","direct":false,"kind":"runtime","optional":false}]}],"score":null,"created_at":"2025-09-08T21:39:03.997Z","updated_at":"2025-10-07T08:29:47.810Z","avatar_url":"https://github.com/aeturrell.png","language":"Python","category":null,"sub_category":null,"monthly_downloads":12,"funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://science.ecosyste.ms/api/v1/projects/91629","html_url":"https://science.ecosyste.ms/projects/91629"}