{"id":1119,"name":"pystorms","description":"Simulation Sandbox for the Design and Evaluation of Stormwater Control Algorithms.","url":"https://github.com/kLabUM/pystorms","last_synced_at":"2026-04-28T09:30:19.254Z","repository":{"id":45104631,"uuid":"212178547","full_name":"kLabUM/pystorms","owner":"kLabUM","description":"Simulation Sandbox for the Design and Evaluation of Stormwater Control Algorithms","archived":false,"fork":false,"pushed_at":"2026-02-19T12:31:19.000Z","size":472829,"stargazers_count":35,"open_issues_count":3,"forks_count":16,"subscribers_count":8,"default_branch":"master","last_synced_at":"2026-04-06T23:02:10.856Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pystorms.netlify.app","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kLabUM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-10-01T19:09:06.000Z","updated_at":"2025-11-17T12:55:11.000Z","dependencies_parsed_at":"2025-04-17T10:30:42.857Z","dependency_job_id":"f8719c83-6d81-4cf4-8ef0-89aceaad8a16","html_url":"https://github.com/kLabUM/pystorms","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/kLabUM/pystorms","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kLabUM","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/sbom","scorecard":{"id":546637,"data":{"date":"2025-08-11","repo":{"name":"github.com/kLabUM/pystorms","commit":"943f1cdfce2b4387805a5e41ed6828f02991f4b8"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.4,"checks":[{"name":"Maintained","score":0,"reason":"1 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 0/26 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/publish-to-test-pypi.yml:1","Warn: no topLevel permission defined: .github/workflows/python-package.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish-to-test-pypi.yml:9: update your workflow using https://app.stepsecurity.io/secureworkflow/kLabUM/pystorms/publish-to-test-pypi.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish-to-test-pypi.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/kLabUM/pystorms/publish-to-test-pypi.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish-to-test-pypi.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/kLabUM/pystorms/publish-to-test-pypi.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-package.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/kLabUM/pystorms/python-package.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-package.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/kLabUM/pystorms/python-package.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/publish-to-test-pypi.yml:16","Warn: pipCommand not pinned by hash: .github/workflows/python-package.yml:30","Warn: pipCommand not pinned by hash: .github/workflows/python-package.yml:31","Warn: pipCommand not pinned by hash: .github/workflows/python-package.yml:32","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   4 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 5 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-20T09:42:33.453Z","repository_id":45104631,"created_at":"2025-08-20T09:42:33.453Z","updated_at":"2025-08-20T09:42:33.453Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31736723,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-12T22:19:12.206Z","status":"online","status_checked_at":"2026-04-13T02:00:06.623Z","response_time":93,"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":"kLabUM","name":"Real-time water systems lab","uuid":"4870591","kind":"organization","description":"","email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/4870591?v=4","repositories_count":28,"last_synced_at":"2024-03-27T07:51:01.086Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kLabUM","funding_links":[],"total_stars":563,"followers":15,"following":0,"created_at":"2022-11-05T16:16:12.286Z","updated_at":"2024-03-27T07:51:17.426Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kLabUM","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kLabUM/repositories"},"packages":[{"id":2884316,"name":"pystorms","ecosystem":"pypi","description":"Simulation sandbox for stormwater control algorithms","homepage":"https://github.com/kLabUM/pystorms","licenses":"GNU Lesser General Public License v3 (LGPLv3)","normalized_licenses":["LGPL-2.1"],"repository_url":"https://github.com/kLabUM/pystorms","keywords_array":[],"namespace":null,"versions_count":11,"first_release_published_at":"2019-11-15T11:24:41.000Z","latest_release_published_at":"2022-04-19T20:52:32.000Z","latest_release_number":"1.0.0","last_synced_at":"2026-04-25T09:37:50.565Z","created_at":"2022-04-10T12:19:13.849Z","updated_at":"2026-04-25T09:37:50.565Z","registry_url":"https://pypi.org/project/pystorms/","install_command":"pip install pystorms --index-url https://pypi.org/simple","documentation_url":"https://pystorms.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)","Operating System :: OS Independent","Programming Language :: Python :: 3"],"normalized_name":"pystorms","project_status":null},"repo_metadata":{"id":45104631,"uuid":"212178547","full_name":"kLabUM/pystorms","owner":"kLabUM","description":"Simulation Sandbox for the Design and Evaluation of Stormwater Control Algorithms","archived":false,"fork":false,"pushed_at":"2023-01-25T18:27:16.000Z","size":34054,"stargazers_count":29,"open_issues_count":4,"forks_count":16,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-10-29T22:31:43.041Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pystorms.netlify.app","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kLabUM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-10-01T19:09:06.000Z","updated_at":"2024-10-14T04:37:40.000Z","dependencies_parsed_at":"2023-02-14T10:17:33.942Z","dependency_job_id":null,"html_url":"https://github.com/kLabUM/pystorms","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kLabUM","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222155735,"owners_count":16940398,"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","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":"kLabUM","name":"Real-time water systems lab","uuid":"4870591","kind":"organization","description":"","email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/4870591?v=4","repositories_count":28,"last_synced_at":"2024-03-27T07:51:01.086Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kLabUM","funding_links":[],"total_stars":563,"followers":15,"following":0,"created_at":"2022-11-05T16:16:12.286Z","updated_at":"2024-03-27T07:51:17.426Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kLabUM","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kLabUM/repositories"},"tags":[{"name":"v1.0.0","sha":"5d25b70bde0943b627fee28c529027ec07b755f5","kind":"tag","published_at":"2022-04-19T20:20:23.000Z","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/v1.0.0","html_url":"https://github.com/kLabUM/pystorms/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v1.0.0/manifests"},{"name":"v0.6.2","sha":"41e8195667ad2c8962381e24f32b45b26ec7cc43","kind":"commit","published_at":"2022-01-08T05:52:13.000Z","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/v0.6.2","html_url":"https://github.com/kLabUM/pystorms/releases/tag/v0.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.6.2/manifests"},{"name":"v0.6.1","sha":"1695f5a2a1b98751676b1675be4c2e855409d591","kind":"commit","published_at":"2022-01-08T05:46:30.000Z","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/v0.6.1","html_url":"https://github.com/kLabUM/pystorms/releases/tag/v0.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.6.1/manifests"},{"name":"v0.6.0","sha":"d09a807ee3801598747f4e28e1aff9179c525c7e","kind":"tag","published_at":"2022-01-08T05:28:46.000Z","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/v0.6.0","html_url":"https://github.com/kLabUM/pystorms/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.6.0/manifests"},{"name":"v0.5.0","sha":"fc3592772f6f09353fcd88cb4a5a1dbbee804f64","kind":"tag","published_at":"2021-07-31T23:07:00.000Z","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/v0.5.0","html_url":"https://github.com/kLabUM/pystorms/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.5.0/manifests"},{"name":"v0.4.0","sha":"c9ecdc99a0af7ca1305f4f2206ab176e42d89062","kind":"tag","published_at":"2020-07-17T11:58:54.000Z","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/v0.4.0","html_url":"https://github.com/kLabUM/pystorms/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.4.0/manifests"},{"name":"v0.3.1","sha":"63fb25aae2a0eecab9b8fc9eedc44b67849c4953","kind":"commit","published_at":"2020-06-05T01:18:42.000Z","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/v0.3.1","html_url":"https://github.com/kLabUM/pystorms/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.3.1/manifests"},{"name":"v0.2.1","sha":"3d12f59ddd13fa760be271d486fea809b5f56c3b","kind":"tag","published_at":"2020-06-05T01:07:43.000Z","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/v0.2.1","html_url":"https://github.com/kLabUM/pystorms/releases/tag/v0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.2.1/manifests"}]},"repo_metadata_updated_at":"2024-10-30T02:59:05.125Z","dependent_packages_count":0,"downloads":91,"downloads_period":"last-month","dependent_repos_count":1,"rankings":{"downloads":36.840067047017016,"dependent_repos_count":22.068010499262627,"dependent_packages_count":7.302737866584258,"stargazers_count":12.269468315216754,"forks_count":9.144143527437516,"docker_downloads_count":null,"average":17.524885451103636},"purl":"pkg:pypi/pystorms","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/pystorms","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/pystorms","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/pystorms/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2024-10-29T21:03:14.490Z","issues_count":22,"pull_requests_count":10,"avg_time_to_close_issue":19555903.5,"avg_time_to_close_pull_request":319383.8,"issues_closed_count":18,"pull_requests_closed_count":10,"pull_request_authors_count":3,"issue_authors_count":3,"avg_comments_per_issue":1.6363636363636365,"avg_comments_per_pull_request":0.3,"merged_pull_requests_count":8,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":2.0,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/issues","maintainers":[{"login":"abhiramm7","count":27,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/abhiramm7"}],"active_maintainers":[{"login":"abhiramm7","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/abhiramm7"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pystorms/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pystorms/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pystorms/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pystorms/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/pystorms/codemeta","maintainers":[{"uuid":"abhiramm","login":"abhiramm","name":null,"email":null,"url":null,"packages_count":3,"html_url":"https://pypi.org/user/abhiramm/","role":null,"created_at":"2023-02-21T16:54:42.608Z","updated_at":"2023-02-21T16:54:42.608Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/abhiramm/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":850909,"maintainers_count":363626,"namespaces_count":0,"keywords_count":271316,"github":"pypi","metadata":{"funded_packages_count":53172},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2026-04-09T05:08:03.587Z","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"}},{"id":11733173,"name":"github.com/kLabUM/pystorms","ecosystem":"go","description":null,"homepage":null,"licenses":"gpl-3.0","normalized_licenses":["GPL-3.0"],"repository_url":"https://github.com/kLabUM/pystorms","keywords_array":[],"namespace":null,"versions_count":8,"first_release_published_at":"2020-06-05T00:59:12.000Z","latest_release_published_at":"2022-04-07T02:50:24.000Z","latest_release_number":"v1.0.0","last_synced_at":"2026-04-25T09:37:51.075Z","created_at":"2025-06-05T11:14:40.791Z","updated_at":"2026-04-25T09:37:51.076Z","registry_url":"https://pkg.go.dev/github.com/kLabUM/pystorms","install_command":"go get github.com/kLabUM/pystorms","documentation_url":"https://pkg.go.dev/github.com/kLabUM/pystorms#section-documentation","metadata":{},"repo_metadata":{"id":45104631,"uuid":"212178547","full_name":"kLabUM/pystorms","owner":"kLabUM","description":"Simulation Sandbox for the Design and Evaluation of Stormwater Control Algorithms","archived":false,"fork":false,"pushed_at":"2025-06-28T20:56:43.000Z","size":450706,"stargazers_count":34,"open_issues_count":3,"forks_count":16,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-08-19T05:22:17.133Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pystorms.netlify.app","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kLabUM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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":"2019-10-01T19:09:06.000Z","updated_at":"2025-08-11T15:43:29.000Z","dependencies_parsed_at":"2025-04-17T10:30:42.857Z","dependency_job_id":"7d3e7877-e8d8-453f-b235-8b9485bae4bf","html_url":"https://github.com/kLabUM/pystorms","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/kLabUM/pystorms","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kLabUM","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/sbom","scorecard":{"id":546637,"data":{"date":"2025-08-11","repo":{"name":"github.com/kLabUM/pystorms","commit":"943f1cdfce2b4387805a5e41ed6828f02991f4b8"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.4,"checks":[{"name":"Maintained","score":0,"reason":"1 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 0/26 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/publish-to-test-pypi.yml:1","Warn: no topLevel permission defined: .github/workflows/python-package.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish-to-test-pypi.yml:9: update your workflow using https://app.stepsecurity.io/secureworkflow/kLabUM/pystorms/publish-to-test-pypi.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish-to-test-pypi.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/kLabUM/pystorms/publish-to-test-pypi.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish-to-test-pypi.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/kLabUM/pystorms/publish-to-test-pypi.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-package.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/kLabUM/pystorms/python-package.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-package.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/kLabUM/pystorms/python-package.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/publish-to-test-pypi.yml:16","Warn: pipCommand not pinned by hash: .github/workflows/python-package.yml:30","Warn: pipCommand not pinned by hash: .github/workflows/python-package.yml:31","Warn: pipCommand not pinned by hash: .github/workflows/python-package.yml:32","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   4 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 5 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-20T09:42:33.453Z","repository_id":45104631,"created_at":"2025-08-20T09:42:33.453Z","updated_at":"2025-08-20T09:42:33.453Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272195208,"owners_count":24890021,"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-26T02:00:07.904Z","response_time":60,"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":"kLabUM","name":"Real-time water systems lab","uuid":"4870591","kind":"organization","description":"","email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/4870591?v=4","repositories_count":28,"last_synced_at":"2024-03-27T07:51:01.086Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kLabUM","funding_links":[],"total_stars":563,"followers":15,"following":0,"created_at":"2022-11-05T16:16:12.286Z","updated_at":"2024-03-27T07:51:17.426Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kLabUM","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kLabUM/repositories"},"tags":[{"name":"v1.0.0","sha":"5d25b70bde0943b627fee28c529027ec07b755f5","kind":"tag","published_at":"2022-04-19T20:20:23.000Z","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/v1.0.0","html_url":"https://github.com/kLabUM/pystorms/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kLabUM/pystorms@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v1.0.0/manifests"},{"name":"v0.6.2","sha":"41e8195667ad2c8962381e24f32b45b26ec7cc43","kind":"commit","published_at":"2022-01-08T05:52:13.000Z","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/v0.6.2","html_url":"https://github.com/kLabUM/pystorms/releases/tag/v0.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kLabUM/pystorms@v0.6.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.6.2/manifests"},{"name":"v0.6.1","sha":"1695f5a2a1b98751676b1675be4c2e855409d591","kind":"commit","published_at":"2022-01-08T05:46:30.000Z","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/v0.6.1","html_url":"https://github.com/kLabUM/pystorms/releases/tag/v0.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kLabUM/pystorms@v0.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.6.1/manifests"},{"name":"v0.6.0","sha":"d09a807ee3801598747f4e28e1aff9179c525c7e","kind":"tag","published_at":"2022-01-08T05:28:46.000Z","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/v0.6.0","html_url":"https://github.com/kLabUM/pystorms/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kLabUM/pystorms@v0.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.6.0/manifests"},{"name":"v0.5.0","sha":"fc3592772f6f09353fcd88cb4a5a1dbbee804f64","kind":"tag","published_at":"2021-07-31T23:07:00.000Z","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/v0.5.0","html_url":"https://github.com/kLabUM/pystorms/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kLabUM/pystorms@v0.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.5.0/manifests"},{"name":"v0.4.0","sha":"c9ecdc99a0af7ca1305f4f2206ab176e42d89062","kind":"tag","published_at":"2020-07-17T11:58:54.000Z","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/v0.4.0","html_url":"https://github.com/kLabUM/pystorms/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kLabUM/pystorms@v0.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.4.0/manifests"},{"name":"v0.3.1","sha":"63fb25aae2a0eecab9b8fc9eedc44b67849c4953","kind":"commit","published_at":"2020-06-05T01:18:42.000Z","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/v0.3.1","html_url":"https://github.com/kLabUM/pystorms/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kLabUM/pystorms@v0.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.3.1/manifests"},{"name":"v0.2.1","sha":"3d12f59ddd13fa760be271d486fea809b5f56c3b","kind":"tag","published_at":"2020-06-05T01:07:43.000Z","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/v0.2.1","html_url":"https://github.com/kLabUM/pystorms/releases/tag/v0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kLabUM/pystorms@v0.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.2.1/manifests"}]},"repo_metadata_updated_at":"2025-08-26T08:59:28.884Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":5.757538697138725,"dependent_packages_count":5.395053785167736,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":5.57629624115323},"purl":"pkg:golang/github.com/k%21lab%21u%21m/pystorms","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/kLabUM/pystorms","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/kLabUM/pystorms","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/kLabUM/pystorms/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-08-26T08:33:25.576Z","issues_count":22,"pull_requests_count":10,"avg_time_to_close_issue":22309048.684210528,"avg_time_to_close_pull_request":319383.8,"issues_closed_count":19,"pull_requests_closed_count":10,"pull_request_authors_count":3,"issue_authors_count":3,"avg_comments_per_issue":1.6363636363636365,"avg_comments_per_pull_request":0.3,"merged_pull_requests_count":8,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":2.0,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/issues","maintainers":[{"login":"abhiramm7","count":27,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/abhiramm7"}],"active_maintainers":[{"login":"abhiramm7","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/abhiramm7"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FkLabUM%2Fpystorms/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FkLabUM%2Fpystorms/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FkLabUM%2Fpystorms/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FkLabUM%2Fpystorms/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FkLabUM%2Fpystorms/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2107875,"maintainers_count":0,"namespaces_count":782439,"keywords_count":112823,"github":"golang","metadata":{"funded_packages_count":53495},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-04-19T05:14:45.920Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}},{"id":11733187,"name":"github.com/klabum/pystorms","ecosystem":"go","description":null,"homepage":null,"licenses":"gpl-3.0","normalized_licenses":["GPL-3.0"],"repository_url":"https://github.com/klabum/pystorms","keywords_array":[],"namespace":null,"versions_count":8,"first_release_published_at":"2020-06-05T00:59:12.000Z","latest_release_published_at":"2022-04-07T02:50:24.000Z","latest_release_number":"v1.0.0","last_synced_at":"2026-04-25T09:37:53.918Z","created_at":"2025-06-05T11:14:42.208Z","updated_at":"2026-04-25T09:37:53.918Z","registry_url":"https://pkg.go.dev/github.com/klabum/pystorms","install_command":"go get github.com/klabum/pystorms","documentation_url":"https://pkg.go.dev/github.com/klabum/pystorms#section-documentation","metadata":{},"repo_metadata":{"id":45104631,"uuid":"212178547","full_name":"kLabUM/pystorms","owner":"kLabUM","description":"Simulation Sandbox for the Design and Evaluation of Stormwater Control Algorithms","archived":false,"fork":false,"pushed_at":"2025-08-22T17:30:45.000Z","size":456747,"stargazers_count":33,"open_issues_count":3,"forks_count":16,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-08-26T08:45:14.405Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pystorms.netlify.app","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kLabUM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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":"2019-10-01T19:09:06.000Z","updated_at":"2025-08-25T16:48:51.000Z","dependencies_parsed_at":"2025-04-17T10:30:42.857Z","dependency_job_id":"7d3e7877-e8d8-453f-b235-8b9485bae4bf","html_url":"https://github.com/kLabUM/pystorms","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/kLabUM/pystorms","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kLabUM","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/sbom","scorecard":{"id":546637,"data":{"date":"2025-08-11","repo":{"name":"github.com/kLabUM/pystorms","commit":"943f1cdfce2b4387805a5e41ed6828f02991f4b8"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.4,"checks":[{"name":"Maintained","score":0,"reason":"1 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 0/26 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/publish-to-test-pypi.yml:1","Warn: no topLevel permission defined: .github/workflows/python-package.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish-to-test-pypi.yml:9: update your workflow using https://app.stepsecurity.io/secureworkflow/kLabUM/pystorms/publish-to-test-pypi.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish-to-test-pypi.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/kLabUM/pystorms/publish-to-test-pypi.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/publish-to-test-pypi.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/kLabUM/pystorms/publish-to-test-pypi.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-package.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/kLabUM/pystorms/python-package.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-package.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/kLabUM/pystorms/python-package.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/publish-to-test-pypi.yml:16","Warn: pipCommand not pinned by hash: .github/workflows/python-package.yml:30","Warn: pipCommand not pinned by hash: .github/workflows/python-package.yml:31","Warn: pipCommand not pinned by hash: .github/workflows/python-package.yml:32","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   4 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 5 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-20T09:42:33.453Z","repository_id":45104631,"created_at":"2025-08-20T09:42:33.453Z","updated_at":"2025-08-20T09:42:33.453Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272200506,"owners_count":24890813,"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-26T02:00:07.904Z","response_time":60,"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":"kLabUM","name":"Real-time water systems lab","uuid":"4870591","kind":"organization","description":"","email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/4870591?v=4","repositories_count":28,"last_synced_at":"2024-03-27T07:51:01.086Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/kLabUM","funding_links":[],"total_stars":563,"followers":15,"following":0,"created_at":"2022-11-05T16:16:12.286Z","updated_at":"2024-03-27T07:51:17.426Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kLabUM","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kLabUM/repositories"},"tags":[{"name":"v1.0.0","sha":"5d25b70bde0943b627fee28c529027ec07b755f5","kind":"tag","published_at":"2022-04-19T20:20:23.000Z","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/v1.0.0","html_url":"https://github.com/kLabUM/pystorms/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kLabUM/pystorms@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v1.0.0/manifests"},{"name":"v0.6.2","sha":"41e8195667ad2c8962381e24f32b45b26ec7cc43","kind":"commit","published_at":"2022-01-08T05:52:13.000Z","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/v0.6.2","html_url":"https://github.com/kLabUM/pystorms/releases/tag/v0.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kLabUM/pystorms@v0.6.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.6.2/manifests"},{"name":"v0.6.1","sha":"1695f5a2a1b98751676b1675be4c2e855409d591","kind":"commit","published_at":"2022-01-08T05:46:30.000Z","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/v0.6.1","html_url":"https://github.com/kLabUM/pystorms/releases/tag/v0.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kLabUM/pystorms@v0.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.6.1/manifests"},{"name":"v0.6.0","sha":"d09a807ee3801598747f4e28e1aff9179c525c7e","kind":"tag","published_at":"2022-01-08T05:28:46.000Z","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/v0.6.0","html_url":"https://github.com/kLabUM/pystorms/releases/tag/v0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kLabUM/pystorms@v0.6.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.6.0/manifests"},{"name":"v0.5.0","sha":"fc3592772f6f09353fcd88cb4a5a1dbbee804f64","kind":"tag","published_at":"2021-07-31T23:07:00.000Z","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/v0.5.0","html_url":"https://github.com/kLabUM/pystorms/releases/tag/v0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kLabUM/pystorms@v0.5.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.5.0/manifests"},{"name":"v0.4.0","sha":"c9ecdc99a0af7ca1305f4f2206ab176e42d89062","kind":"tag","published_at":"2020-07-17T11:58:54.000Z","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/v0.4.0","html_url":"https://github.com/kLabUM/pystorms/releases/tag/v0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kLabUM/pystorms@v0.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.4.0/manifests"},{"name":"v0.3.1","sha":"63fb25aae2a0eecab9b8fc9eedc44b67849c4953","kind":"commit","published_at":"2020-06-05T01:18:42.000Z","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/v0.3.1","html_url":"https://github.com/kLabUM/pystorms/releases/tag/v0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kLabUM/pystorms@v0.3.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.3.1/manifests"},{"name":"v0.2.1","sha":"3d12f59ddd13fa760be271d486fea809b5f56c3b","kind":"tag","published_at":"2020-06-05T01:07:43.000Z","download_url":"https://codeload.github.com/kLabUM/pystorms/tar.gz/v0.2.1","html_url":"https://github.com/kLabUM/pystorms/releases/tag/v0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/kLabUM/pystorms@v0.2.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/tags/v0.2.1/manifests"}]},"repo_metadata_updated_at":"2025-08-26T08:59:28.881Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":5.757538697138725,"dependent_packages_count":5.395053785167736,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":5.57629624115323},"purl":"pkg:golang/github.com/klabum/pystorms","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/klabum/pystorms","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/klabum/pystorms","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/klabum/pystorms/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-08-26T08:33:25.576Z","issues_count":22,"pull_requests_count":10,"avg_time_to_close_issue":22309048.684210528,"avg_time_to_close_pull_request":319383.8,"issues_closed_count":19,"pull_requests_closed_count":10,"pull_request_authors_count":3,"issue_authors_count":3,"avg_comments_per_issue":1.6363636363636365,"avg_comments_per_pull_request":0.3,"merged_pull_requests_count":8,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":2.0,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/issues","maintainers":[{"login":"abhiramm7","count":27,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/abhiramm7"}],"active_maintainers":[{"login":"abhiramm7","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/abhiramm7"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fklabum%2Fpystorms/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fklabum%2Fpystorms/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fklabum%2Fpystorms/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fklabum%2Fpystorms/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fklabum%2Fpystorms/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2107875,"maintainers_count":0,"namespaces_count":782439,"keywords_count":112823,"github":"golang","metadata":{"funded_packages_count":53495},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-04-19T05:14:45.920Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}}],"commits":{"id":641494,"full_name":"kLabUM/pystorms","default_branch":"master","total_commits":164,"total_committers":11,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":14.909090909090908,"dds":0.3902439024390244,"past_year_total_commits":1,"past_year_total_committers":1,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":1.0,"past_year_dds":0.0,"last_synced_at":"2026-04-25T08:02:22.460Z","last_synced_commit":"943f1cdfce2b4387805a5e41ed6828f02991f4b8","created_at":"2023-03-09T08:54:33.636Z","updated_at":"2026-04-25T08:00:40.750Z","committers":[{"name":"Abhiram","email":"abhiramm@umich.edu","login":"abhiramm7","count":100},{"name":"Abhiram Mullapudi","email":"abhirammullapudi@gmail.com","login":null,"count":22},{"name":"srimer","email":"srimer@anl.gov","login":null,"count":13},{"name":"rimersara","email":"sara.p.rimer@gmail.com","login":"rimersara","count":12},{"name":"Sara Troutman","email":"stroutm@umich.edu","login":"stroutm","count":7},{"name":"Sara Rimer","email":"srimer@CSI354041.lan","login":null,"count":3},{"name":"stroutm","email":"sara.troutman@xyleminc.com","login":null,"count":2},{"name":"Sara Rimer","email":"sara-admin@saras-mbp.lan","login":null,"count":2},{"name":"Travis Adrian Dantzer","email":"47285626+dantzert","login":"dantzert","count":1},{"name":"Jeff Sadler","email":"jeffrey.sadler2@gmail.com","login":"jsadler2","count":1},{"name":"Abhiram Mullapudi","email":"pluto@Abhirams-MacBook-Pro-2.local","login":null,"count":1}],"past_year_committers":[{"name":"Travis Adrian Dantzer","email":"47285626+dantzert","login":"dantzert","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-27T00:00:06.983Z","repositories_count":6219733,"commits_count":899558622,"contributors_count":34873966,"owners_count":1146055,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"kLabUM/pystorms","html_url":"https://github.com/kLabUM/pystorms","last_synced_at":"2025-09-24T04:47:18.646Z","status":"error","issues_count":22,"pull_requests_count":10,"avg_time_to_close_issue":22309048.684210528,"avg_time_to_close_pull_request":319383.8,"issues_closed_count":19,"pull_requests_closed_count":10,"pull_request_authors_count":3,"issue_authors_count":3,"avg_comments_per_issue":1.6363636363636365,"avg_comments_per_pull_request":0.3,"merged_pull_requests_count":8,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":2.0,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2023-05-09T10:36:33.101Z","updated_at":"2025-09-24T04:47:18.646Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/kLabUM%2Fpystorms/issues","issue_labels_count":{"enhancement":11,"documentation":3,"bug":2,"clarification":1,"qaqc":1},"pull_request_labels_count":{},"issue_author_associations_count":{"COLLABORATOR":19,"NONE":3},"pull_request_author_associations_count":{"COLLABORATOR":8,"NONE":1,"CONTRIBUTOR":1},"issue_authors":{"abhiramm7":19,"Jiadalee":2,"gregjewi":1},"pull_request_authors":{"abhiramm7":8,"jsadler2":1,"aakin4":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-25T00:00:14.967Z","repositories_count":14385558,"issues_count":34388553,"pull_requests_count":112597245,"authors_count":11244820,"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":{},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{},"past_year_pull_request_authors":{},"maintainers":[{"login":"abhiramm7","count":27,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/abhiramm7"}],"active_maintainers":[]},"events":{"total":{"IssuesEvent":1,"WatchEvent":7,"PushEvent":28,"CreateEvent":1},"last_year":{"WatchEvent":1,"PushEvent":3}},"keywords":[],"dependencies":[{"ecosystem":"pypi","filepath":"setup.py","sha":null,"kind":"manifest","created_at":"2022-09-08T03:40:14.265Z","updated_at":"2022-09-08T03:40:14.265Z","repository_link":"https://github.com/kLabUM/pystorms/blob/master/setup.py","dependencies":[{"id":4156946795,"package_name":"numpy","ecosystem":"pypi","requirements":"\u003e=1.18.4","direct":true,"kind":"runtime","optional":false},{"id":4156946796,"package_name":"pyswmm","ecosystem":"pypi","requirements":"\u003e=1.0.1","direct":true,"kind":"runtime","optional":false},{"id":4156946797,"package_name":"pyyaml","ecosystem":"pypi","requirements":"\u003e=5.3","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/publish-to-test-pypi.yml","sha":null,"kind":"manifest","created_at":"2023-02-14T10:17:33.804Z","updated_at":"2023-02-14T10:17:33.804Z","repository_link":"https://github.com/kLabUM/pystorms/blob/master/.github/workflows/publish-to-test-pypi.yml","dependencies":[{"id":7654970758,"package_name":"actions/checkout","ecosystem":"actions","requirements":"master","direct":true,"kind":"composite","optional":false},{"id":7654970759,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7654970760,"package_name":"pypa/gh-action-pypi-publish","ecosystem":"actions","requirements":"master","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/python-package.yml","sha":null,"kind":"manifest","created_at":"2023-02-14T10:17:33.853Z","updated_at":"2023-02-14T10:17:33.853Z","repository_link":"https://github.com/kLabUM/pystorms/blob/master/.github/workflows/python-package.yml","dependencies":[{"id":7654970779,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7654970780,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2025-04-17T10:30:42.768Z","updated_at":"2025-04-17T10:30:42.768Z","repository_link":"https://github.com/kLabUM/pystorms/blob/master/pyproject.toml","dependencies":[]}],"score":10.568080925678013,"created_at":"2023-09-11T11:54:36.983Z","updated_at":"2026-04-28T09:30:19.255Z","avatar_url":"https://github.com/kLabUM.png","language":"Jupyter Notebook","category":"Natural Resources","sub_category":"Water Supply and Quality","monthly_downloads":91,"total_dependent_repos":1,"total_dependent_packages":0,"readme":"# pystorms: simulation sandbox for the evaluation and design of stormwater control algorithms\n[![pystorms](https://github.com/kLabUM/pystorms/actions/workflows/python-package.yml/badge.svg?branch=master\u0026event=push)](https://github.com/kLabUM/pystorms/actions/workflows/python-package.yml)\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/python/black)\n\n## Overview \n\nThis library has been developed in an effort to systematize quantitative analysis of stormwater control algorithms.\nIt is a natural extension of the Open-Storm's mission to open up and ease access into the technical world of smart stormwater systems.\n Our initial efforts allowed us to develop open source and free tools for anyone to be able to deploy flood sensors, measure green infrastructure, or even control storm or sewer systems.\n Now we have developed a tool to be able to test the performance of algorithms used to coordinate these different sensing and control technologies that have been deployed throughout urban water systems.    \n\nFor the motivation behind this effort, we refer the reader to our manuscript [*pystorms*](https://dl.acm.org/citation.cfm?id=3313336). In general, this repo provides a library of `scenarios` that are built to allow for systematic quantitative evaluation of stormwater control algorithms.\n\n\n## Getting Started \n\n### Installation \n\n**Requirements**\n\n- PyYAML \u003e= 5.3\n- numpy \u003e= 18.4\n- pyswmm \u003c 2.0.0\n\n\n```bash \npip install pystorms\n```\n\nPlease raise an issue on the repository or reach out if you run into any issues installing the package. \n\n### Example \n\nHere is an example implementation on how you would use this library for evaluating the ability of a rule based control in maintaining the flows in a network below a desired threshold. \n\n```python \nimport pystorms \nimport numpy as np\n\n# Define your awesome controller \ndef controller(state):\n\tactions = np.ones(len(state))\n\tfor i in range(0, len(state)):\n\t\tif state[i] \u003e 0.5:\n\t\t\tactions[i] = 1.0\n\treturn actions \n\t\n\nenv = pystorms.scenarios.theta() # Initialize scenario \n\ndone = False\nwhile not done:\n\tstate = env.state()\n\tactions = controller(state)\n\tdone = env.step(actions)\n\nperformance = env.performance()\n\n```\n\nUpdated versions of _theta_, _alpha_, _gamma_, _delta_, and _epsilon_ are accessible via a version keyword in the initialization command.\n\n```python\nenv = pystorms.scenarios.theta(version=version) # \"1\" is the default and original, \"2\" are the updated versions.\n```\n\nSensor noise and actuator faults can also be enabled via the level keyword. The options are 1, 2, and 3 in ascending order of difficulty. Version or level or both can be specified. \n\n```python\nenv = pystorms.scenarios.theta(version=version, level=level) # \"1\" is the ideal, original, and default case. \"2\" is realistic and \"3\" is adverse.\nenv = pystorms.scenarios.theta(level=level) # also valid. This would load version 1 of the model.\n```\nMore details on the updates are accessible at (preprint link). As of June 2025, these updates are only in the \"dev\" branch and have not yet been merged in \"master.\"\n\nDetailed documentation can be found on the [webpage](https://www.pystorms.org)\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["hydrology","swmm5"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/1119","html_url":"https://ost.ecosyste.ms/projects/1119"}