{"id":75672,"name":"qsdsan","description":"Quantitative Sustainable Design (QSD) of sanitation and resource recovery systems.","url":"https://github.com/qsd-group/qsdsan","last_synced_at":"2025-09-08T16:42:28.320Z","repository":{"id":39159008,"uuid":"299665841","full_name":"QSD-Group/QSDsan","owner":"QSD-Group","description":"Quantitative Sustainable Design (QSD) of sanitation and resource recovery systems.","archived":false,"fork":false,"pushed_at":"2025-08-30T22:21:37.000Z","size":61914,"stargazers_count":33,"open_issues_count":3,"forks_count":17,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-09-01T20:49:06.887Z","etag":null,"topics":["dynamic-simulations","life-cycle-assessment","process-modeling","quantitative-sustainable-design","resource-recovery","sanitation","sustainability-analysis","techno-economic-analysis"],"latest_commit_sha":null,"homepage":"https://qsdsan.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/QSD-Group.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2020-09-29T15:53:46.000Z","updated_at":"2025-07-23T17:39:23.000Z","dependencies_parsed_at":"2023-12-18T18:03:07.741Z","dependency_job_id":"a8d5bc52-759e-4b77-ba44-f819c31e28fc","html_url":"https://github.com/QSD-Group/QSDsan","commit_stats":{"total_commits":1879,"total_committers":13,"mean_commits":"144.53846153846155","dds":"0.46993081426290584","last_synced_commit":"fee7d007318d99c8efa35c605293f417bb91e46b"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/QSD-Group/QSDsan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QSD-Group","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/sbom","scorecard":{"id":115507,"data":{"date":"2025-08-11","repo":{"name":"github.com/QSD-Group/QSDsan","commit":"e9a46fea302570493a1963540c61dacdc9315f4f"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.2,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/17 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":"Maintained","score":4,"reason":"3 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/build-coverage.yml:1","Warn: no topLevel permission defined: .github/workflows/build-dev.yml:1","Warn: no topLevel permission defined: .github/workflows/build-only.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":"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":"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/build-coverage.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/QSD-Group/QSDsan/build-coverage.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-coverage.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/QSD-Group/QSDsan/build-coverage.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build-coverage.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/QSD-Group/QSDsan/build-coverage.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-dev.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/QSD-Group/QSDsan/build-dev.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-dev.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/QSD-Group/QSDsan/build-dev.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-only.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/QSD-Group/QSDsan/build-only.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-only.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/QSD-Group/QSDsan/build-only.yml/main?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/build-coverage.yml:29","Warn: pipCommand not pinned by hash: .github/workflows/build-coverage.yml:30","Warn: pipCommand not pinned by hash: .github/workflows/build-coverage.yml:31","Warn: pipCommand not pinned by hash: .github/workflows/build-coverage.yml:32","Warn: pipCommand not pinned by hash: .github/workflows/build-coverage.yml:33","Warn: pipCommand not pinned by hash: .github/workflows/build-coverage.yml:34","Warn: pipCommand not pinned by hash: .github/workflows/build-dev.yml:29","Warn: pipCommand not pinned by hash: .github/workflows/build-dev.yml:30","Warn: pipCommand not pinned by hash: .github/workflows/build-dev.yml:31","Warn: pipCommand not pinned by hash: .github/workflows/build-dev.yml:32","Warn: pipCommand not pinned by hash: .github/workflows/build-dev.yml:33","Warn: pipCommand not pinned by hash: .github/workflows/build-dev.yml:34","Warn: pipCommand not pinned by hash: .github/workflows/build-only.yml:29","Warn: pipCommand not pinned by hash: .github/workflows/build-only.yml:30","Warn: pipCommand not pinned by hash: .github/workflows/build-only.yml:31","Warn: pipCommand not pinned by hash: .github/workflows/build-only.yml:32","Warn: pipCommand not pinned by hash: .github/workflows/build-only.yml:33","Warn: pipCommand not pinned by hash: .github/workflows/build-only.yml:34","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of  18 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":"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":"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":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Warn: project license file does not contain an FSF or OSI license."],"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":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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 14 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-16T01:09:37.167Z","repository_id":39159008,"created_at":"2025-08-16T01:09:37.168Z","updated_at":"2025-08-16T01:09:37.168Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274215895,"owners_count":25243021,"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":"QSD-Group","name":"Quantitative Sustainable Design (QSD) Group","uuid":"68925850","kind":"organization","description":"Tools for quantitative sustainable design (QSD) to guide the research, development, and deployment of technologies and inform decision-making.","email":"quantitative.sustainable.design@gmail.com","website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/68925850?v=4","repositories_count":5,"last_synced_at":"2023-03-08T04:29:41.725Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/QSD-Group","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-17T22:12:49.647Z","updated_at":"2023-03-08T04:29:41.819Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QSD-Group","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QSD-Group/repositories"},"packages":[{"id":2894240,"name":"qsdsan","ecosystem":"pypi","description":"Quantitative Sustainable Design for sanitation and resource recovery systems","homepage":"https://github.com/QSD-Group/QSDsan","licenses":"UIUC","normalized_licenses":["Other"],"repository_url":"https://github.com/QSD-Group/QSDsan","keywords_array":["quantitative sustainable design","sanitation","resource recovery","techno-economic analysis","life cycle assessment"],"namespace":null,"versions_count":62,"first_release_published_at":"2020-12-23T18:40:02.000Z","latest_release_published_at":"2025-05-09T16:37:33.000Z","latest_release_number":"1.4.2","last_synced_at":"2025-09-07T23:33:43.547Z","created_at":"2022-04-10T12:24:11.487Z","updated_at":"2025-09-07T23:33:43.547Z","registry_url":"https://pypi.org/project/qsdsan/","install_command":"pip install qsdsan --index-url https://pypi.org/simple","documentation_url":"https://qsdsan.readthedocs.io","metadata":{"funding":null,"documentation":"https://qsdsan.readthedocs.io","classifiers":["Environment :: Console","Intended Audience :: Developers","Intended Audience :: Education","Intended Audience :: Manufacturing","Intended Audience :: Science/Research","License :: OSI Approved :: University of Illinois/NCSA Open Source License","Natural Language :: English","Operating System :: OS Independent","Programming Language :: Python :: 3.12","Topic :: Education","Topic :: Scientific/Engineering","Topic :: Scientific/Engineering :: Chemistry","Topic :: Scientific/Engineering :: Mathematics"],"normalized_name":"qsdsan","project_status":null},"repo_metadata":{"id":39159008,"uuid":"299665841","full_name":"QSD-Group/QSDsan","owner":"QSD-Group","description":"Quantitative Sustainable Design (QSD) of sanitation and resource recovery systems.","archived":false,"fork":false,"pushed_at":"2024-06-10T23:32:16.000Z","size":50762,"stargazers_count":29,"open_issues_count":6,"forks_count":11,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-06-11T19:31:04.846Z","etag":null,"topics":["dynamic-simulations","life-cycle-assessment","process-modeling","quantitative-sustainable-design","resource-recovery","sanitation","sustainability-analysis","techno-economic-analysis"],"latest_commit_sha":null,"homepage":"https://qsdsan.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/QSD-Group.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2020-09-29T15:53:46.000Z","updated_at":"2024-06-12T23:45:04.048Z","dependencies_parsed_at":"2023-12-18T18:03:07.741Z","dependency_job_id":"a8d5bc52-759e-4b77-ba44-f819c31e28fc","html_url":"https://github.com/QSD-Group/QSDsan","commit_stats":{"total_commits":1433,"total_committers":11,"mean_commits":"130.27272727272728","dds":"0.32100488485694345","last_synced_commit":"ea32b82f9c8e4b33a767e583c4f0ddf8e3cbbb31"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QSD-Group","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":215572989,"owners_count":15899310,"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":"QSD-Group","name":"Quantitative Sustainable Design (QSD) Group","uuid":"68925850","kind":"organization","description":"Tools for quantitative sustainable design (QSD) to guide the research, development, and deployment of technologies and inform decision-making.","email":"quantitative.sustainable.design@gmail.com","website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/68925850?v=4","repositories_count":5,"last_synced_at":"2023-03-08T04:29:41.725Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/QSD-Group","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-17T22:12:49.647Z","updated_at":"2023-03-08T04:29:41.819Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QSD-Group","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QSD-Group/repositories"},"tags":[{"name":"archive/bsm2_2024_01_18","sha":"223519ba28d7d06e0f150737ebaafcc2b9394329","kind":"commit","published_at":"2024-01-18T16:46:46.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/bsm2_2024_01_18","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/bsm2_2024_01_18","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fbsm2_2024_01_18","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fbsm2_2024_01_18/manifests"},{"name":"archive/trial_2023_10_21","sha":"a40b3e68e7497ca144c60b6d473dcd007bfaba13","kind":"commit","published_at":"2023-10-22T01:33:54.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/trial_2023_10_21","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/trial_2023_10_21","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Ftrial_2023_10_21","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Ftrial_2023_10_21/manifests"},{"name":"v1.3.0","sha":"7d1b75a05e146c3d4ee1e28d900cd3aadfb5ffee","kind":"commit","published_at":"2023-06-30T20:29:34.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/v1.3.0","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"a47f539cd5989ef23ae97a3a924e4c2289651832","kind":"commit","published_at":"2022-08-14T13:34:49.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/v1.2.0","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.2.0/manifests"},{"name":"archive/gates_2022_08_01","sha":"00d469e96f1cc29a968e100ec78024cd6cf1f377","kind":"commit","published_at":"2022-08-01T15:34:30.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/gates_2022_08_01","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/gates_2022_08_01","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fgates_2022_08_01","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fgates_2022_08_01/manifests"},{"name":"archive/reclaimer","sha":"84b4b894bbf4dd9411e3b765b505e637eff3bca4","kind":"commit","published_at":"2022-04-25T20:57:44.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/reclaimer","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/reclaimer","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Freclaimer","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Freclaimer/manifests"},{"name":"v1.1.0","sha":"9061ae5529963cf057487f8a66d9231b129bec4d","kind":"commit","published_at":"2022-03-03T02:02:57.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/v1.1.0","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.1.0/manifests"},{"name":"archive/BR_OmniProcessor","sha":"e9fdbf1e6ed25685ce31093f5a58eced6c5eabc7","kind":"commit","published_at":"2022-02-01T22:51:31.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/BR_OmniProcessor","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/BR_OmniProcessor","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2FBR_OmniProcessor","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2FBR_OmniProcessor/manifests"},{"name":"archive/dyn_expt","sha":"67b09a08a570bbf237b0dbf1de38c8447c23df1a","kind":"commit","published_at":"2022-01-09T23:02:48.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/dyn_expt","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/dyn_expt","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fdyn_expt","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fdyn_expt/manifests"},{"name":"archive/init_state","sha":"4f87003dfb79c16d7a11a41d8a7c9d6fecfb8883","kind":"commit","published_at":"2022-01-08T15:35:54.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/init_state","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/init_state","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Finit_state","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Finit_state/manifests"},{"name":"v1.0.0","sha":"559a0e43428411b23319ffd087e04c5d08f46d4a","kind":"commit","published_at":"2021-11-30T16:50:17.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/v1.0.0","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.0.0/manifests"},{"name":"archive/dyn","sha":"de8556c1df4e41e96b528e2250ff2e5ebbaa8a72","kind":"commit","published_at":"2021-10-08T02:32:54.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/dyn","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/dyn","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fdyn","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fdyn/manifests"},{"name":"v0.3.0","sha":"3c19aebd5503433120217228c3388533cee4bd30","kind":"commit","published_at":"2021-08-05T19:01:43.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/v0.3.0","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v0.3.0/manifests"},{"name":"v0.2.0","sha":"286943eb206ebd89f58e50b9fdd1bed486e894ae","kind":"tag","published_at":"2021-03-17T16:17:44.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/v0.2.0","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v0.2.0/manifests"},{"name":"v0.1.0","sha":"1c3d11d9f72421c8b5dbdf6b537775ca35ec65c0","kind":"tag","published_at":"2021-03-17T16:11:54.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/v0.1.0","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v0.1.0/manifests"}]},"repo_metadata_updated_at":"2024-10-29T16:13:39.949Z","dependent_packages_count":1,"downloads":405,"downloads_period":"last-month","dependent_repos_count":1,"rankings":{"downloads":13.489842556668153,"dependent_repos_count":22.23250655214879,"dependent_packages_count":3.2713415717121803,"stargazers_count":11.712748403192824,"forks_count":10.956760585891793,"docker_downloads_count":null,"average":12.332639933922747},"purl":"pkg:pypi/qsdsan","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/qsdsan","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/qsdsan","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/qsdsan/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2024-10-29T14:30:34.283Z","issues_count":59,"pull_requests_count":67,"avg_time_to_close_issue":4657414.759259259,"avg_time_to_close_pull_request":660473.5522388059,"issues_closed_count":54,"pull_requests_closed_count":67,"pull_request_authors_count":8,"issue_authors_count":10,"avg_comments_per_issue":2.745762711864407,"avg_comments_per_pull_request":1.119402985074627,"merged_pull_requests_count":61,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":8,"past_year_pull_requests_count":6,"past_year_avg_time_to_close_issue":6580174.2,"past_year_avg_time_to_close_pull_request":46138.0,"past_year_issues_closed_count":5,"past_year_pull_requests_closed_count":6,"past_year_pull_request_authors_count":4,"past_year_issue_authors_count":4,"past_year_avg_comments_per_issue":2.125,"past_year_avg_comments_per_pull_request":2.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":6,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/issues","maintainers":[{"login":"yalinli2","count":91,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/yalinli2"},{"login":"joyxyz1994","count":11,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/joyxyz1994"},{"login":"GaYeongKim","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/GaYeongKim"},{"login":"vlmorgan93","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/vlmorgan93"}],"active_maintainers":[{"login":"yalinli2","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/yalinli2"},{"login":"GaYeongKim","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/GaYeongKim"},{"login":"joyxyz1994","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/joyxyz1994"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/qsdsan/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/qsdsan/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/qsdsan/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/qsdsan/related_packages","maintainers":[{"uuid":"yalinli2","login":"yalinli2","name":null,"email":null,"url":null,"packages_count":4,"html_url":"https://pypi.org/user/yalinli2/","role":null,"created_at":"2023-02-25T07:16:50.153Z","updated_at":"2023-02-25T07:16:50.153Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/yalinli2/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":726211,"maintainers_count":308809,"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"}},{"id":4139515,"name":"github.com/qsd-group/qsdsan","ecosystem":"go","description":"","homepage":null,"licenses":"other","normalized_licenses":["GPL-1.0+"],"repository_url":"https://github.com/qsd-group/qsdsan","keywords_array":[],"namespace":"github.com/qsd-group","versions_count":9,"first_release_published_at":"2021-02-14T23:37:04.000Z","latest_release_published_at":"2025-05-09T16:27:24.000Z","latest_release_number":"v1.4.2","last_synced_at":"2025-09-07T23:33:44.107Z","created_at":"2022-04-12T16:31:40.575Z","updated_at":"2025-09-07T23:33:44.107Z","registry_url":"https://pkg.go.dev/github.com/qsd-group/qsdsan","install_command":"go get github.com/qsd-group/qsdsan","documentation_url":"https://pkg.go.dev/github.com/qsd-group/qsdsan#section-documentation","metadata":{},"repo_metadata":{"id":39159008,"uuid":"299665841","full_name":"QSD-Group/QSDsan","owner":"QSD-Group","description":"Quantitative Sustainable Design (QSD) of sanitation and resource recovery systems.","archived":false,"fork":false,"pushed_at":"2025-08-25T15:09:50.000Z","size":61902,"stargazers_count":33,"open_issues_count":3,"forks_count":17,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-08-25T17:01:42.584Z","etag":null,"topics":["dynamic-simulations","life-cycle-assessment","process-modeling","quantitative-sustainable-design","resource-recovery","sanitation","sustainability-analysis","techno-economic-analysis"],"latest_commit_sha":null,"homepage":"https://qsdsan.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/QSD-Group.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2020-09-29T15:53:46.000Z","updated_at":"2025-07-23T17:39:23.000Z","dependencies_parsed_at":"2023-12-18T18:03:07.741Z","dependency_job_id":"a8d5bc52-759e-4b77-ba44-f819c31e28fc","html_url":"https://github.com/QSD-Group/QSDsan","commit_stats":{"total_commits":1879,"total_committers":13,"mean_commits":"144.53846153846155","dds":"0.46993081426290584","last_synced_commit":"fee7d007318d99c8efa35c605293f417bb91e46b"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/QSD-Group/QSDsan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QSD-Group","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/sbom","scorecard":{"id":115507,"data":{"date":"2025-08-11","repo":{"name":"github.com/QSD-Group/QSDsan","commit":"e9a46fea302570493a1963540c61dacdc9315f4f"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.2,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/17 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":"Maintained","score":4,"reason":"3 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/build-coverage.yml:1","Warn: no topLevel permission defined: .github/workflows/build-dev.yml:1","Warn: no topLevel permission defined: .github/workflows/build-only.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":"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":"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/build-coverage.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/QSD-Group/QSDsan/build-coverage.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-coverage.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/QSD-Group/QSDsan/build-coverage.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build-coverage.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/QSD-Group/QSDsan/build-coverage.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-dev.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/QSD-Group/QSDsan/build-dev.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-dev.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/QSD-Group/QSDsan/build-dev.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-only.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/QSD-Group/QSDsan/build-only.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-only.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/QSD-Group/QSDsan/build-only.yml/main?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/build-coverage.yml:29","Warn: pipCommand not pinned by hash: .github/workflows/build-coverage.yml:30","Warn: pipCommand not pinned by hash: .github/workflows/build-coverage.yml:31","Warn: pipCommand not pinned by hash: .github/workflows/build-coverage.yml:32","Warn: pipCommand not pinned by hash: .github/workflows/build-coverage.yml:33","Warn: pipCommand not pinned by hash: .github/workflows/build-coverage.yml:34","Warn: pipCommand not pinned by hash: .github/workflows/build-dev.yml:29","Warn: pipCommand not pinned by hash: .github/workflows/build-dev.yml:30","Warn: pipCommand not pinned by hash: .github/workflows/build-dev.yml:31","Warn: pipCommand not pinned by hash: .github/workflows/build-dev.yml:32","Warn: pipCommand not pinned by hash: .github/workflows/build-dev.yml:33","Warn: pipCommand not pinned by hash: .github/workflows/build-dev.yml:34","Warn: pipCommand not pinned by hash: .github/workflows/build-only.yml:29","Warn: pipCommand not pinned by hash: .github/workflows/build-only.yml:30","Warn: pipCommand not pinned by hash: .github/workflows/build-only.yml:31","Warn: pipCommand not pinned by hash: .github/workflows/build-only.yml:32","Warn: pipCommand not pinned by hash: .github/workflows/build-only.yml:33","Warn: pipCommand not pinned by hash: .github/workflows/build-only.yml:34","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of  18 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":"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":"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":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Warn: project license file does not contain an FSF or OSI license."],"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":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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 14 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-16T01:09:37.167Z","repository_id":39159008,"created_at":"2025-08-16T01:09:37.168Z","updated_at":"2025-08-16T01:09:37.168Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273185591,"owners_count":25060310,"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-01T02:00:09.058Z","response_time":120,"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":"QSD-Group","name":"Quantitative Sustainable Design (QSD) Group","uuid":"68925850","kind":"organization","description":"Tools for quantitative sustainable design (QSD) to guide the research, development, and deployment of technologies and inform decision-making.","email":"quantitative.sustainable.design@gmail.com","website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/68925850?v=4","repositories_count":5,"last_synced_at":"2023-03-08T04:29:41.725Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/QSD-Group","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-17T22:12:49.647Z","updated_at":"2023-03-08T04:29:41.819Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QSD-Group","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QSD-Group/repositories"},"tags":[{"name":"v1.4.2","sha":"a76468b1b8f6dc5e1759ad89d9e5a60cd4188d8e","kind":"commit","published_at":"2025-05-09T16:27:24.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/v1.4.2","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/v1.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@v1.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.4.2/manifests"},{"name":"archive/enviroloo","sha":"83d77382f309e50ec9da3d92f0043b19c5dd8151","kind":"commit","published_at":"2025-03-24T20:52:26.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/enviroloo","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/enviroloo","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@archive%2Fenviroloo","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fenviroloo","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fenviroloo/manifests"},{"name":"v1.4.0","sha":"9b531df5137bb3f33761ffe73edbf2356cd864bd","kind":"commit","published_at":"2024-10-16T03:18:12.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/v1.4.0","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/v1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@v1.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.4.0/manifests"},{"name":"archive/metro","sha":"3db40feeaf537385dd40f558fc8ef794ec15232b","kind":"commit","published_at":"2024-06-05T14:44:38.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/metro","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/metro","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@archive%2Fmetro","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fmetro","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fmetro/manifests"},{"name":"archive/bsm2_2024_01_18","sha":"223519ba28d7d06e0f150737ebaafcc2b9394329","kind":"commit","published_at":"2024-01-18T16:46:46.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/bsm2_2024_01_18","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/bsm2_2024_01_18","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@archive%2Fbsm2_2024_01_18","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fbsm2_2024_01_18","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fbsm2_2024_01_18/manifests"},{"name":"archive/trial_2023_10_21","sha":"a40b3e68e7497ca144c60b6d473dcd007bfaba13","kind":"commit","published_at":"2023-10-22T01:33:54.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/trial_2023_10_21","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/trial_2023_10_21","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@archive%2Ftrial_2023_10_21","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Ftrial_2023_10_21","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Ftrial_2023_10_21/manifests"},{"name":"v1.3.0","sha":"7d1b75a05e146c3d4ee1e28d900cd3aadfb5ffee","kind":"commit","published_at":"2023-06-30T20:29:34.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/v1.3.0","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"a47f539cd5989ef23ae97a3a924e4c2289651832","kind":"commit","published_at":"2022-08-14T13:34:49.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/v1.2.0","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.2.0/manifests"},{"name":"archive/gates_2022_08_01","sha":"00d469e96f1cc29a968e100ec78024cd6cf1f377","kind":"commit","published_at":"2022-08-01T15:34:30.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/gates_2022_08_01","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/gates_2022_08_01","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@archive%2Fgates_2022_08_01","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fgates_2022_08_01","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fgates_2022_08_01/manifests"},{"name":"archive/reclaimer","sha":"84b4b894bbf4dd9411e3b765b505e637eff3bca4","kind":"commit","published_at":"2022-04-25T20:57:44.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/reclaimer","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/reclaimer","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@archive%2Freclaimer","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Freclaimer","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Freclaimer/manifests"},{"name":"v1.1.0","sha":"9061ae5529963cf057487f8a66d9231b129bec4d","kind":"commit","published_at":"2022-03-03T02:02:57.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/v1.1.0","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.1.0/manifests"},{"name":"archive/BR_OmniProcessor","sha":"e9fdbf1e6ed25685ce31093f5a58eced6c5eabc7","kind":"commit","published_at":"2022-02-01T22:51:31.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/BR_OmniProcessor","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/BR_OmniProcessor","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@archive%2FBR_OmniProcessor","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2FBR_OmniProcessor","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2FBR_OmniProcessor/manifests"},{"name":"archive/dyn_expt","sha":"67b09a08a570bbf237b0dbf1de38c8447c23df1a","kind":"commit","published_at":"2022-01-09T23:02:48.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/dyn_expt","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/dyn_expt","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@archive%2Fdyn_expt","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fdyn_expt","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fdyn_expt/manifests"},{"name":"archive/init_state","sha":"4f87003dfb79c16d7a11a41d8a7c9d6fecfb8883","kind":"commit","published_at":"2022-01-08T15:35:54.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/init_state","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/init_state","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@archive%2Finit_state","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Finit_state","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Finit_state/manifests"},{"name":"v1.0.0","sha":"559a0e43428411b23319ffd087e04c5d08f46d4a","kind":"commit","published_at":"2021-11-30T16:50:17.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/v1.0.0","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.0.0/manifests"},{"name":"archive/dyn","sha":"de8556c1df4e41e96b528e2250ff2e5ebbaa8a72","kind":"commit","published_at":"2021-10-08T02:32:54.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/dyn","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/dyn","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@archive%2Fdyn","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fdyn","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fdyn/manifests"},{"name":"v0.3.0","sha":"3c19aebd5503433120217228c3388533cee4bd30","kind":"commit","published_at":"2021-08-05T19:01:43.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/v0.3.0","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v0.3.0/manifests"},{"name":"v0.2.0","sha":"286943eb206ebd89f58e50b9fdd1bed486e894ae","kind":"tag","published_at":"2021-03-17T16:17:44.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/v0.2.0","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v0.2.0/manifests"},{"name":"v0.1.0","sha":"1c3d11d9f72421c8b5dbdf6b537775ca35ec65c0","kind":"tag","published_at":"2021-03-17T16:11:54.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/v0.1.0","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@v0.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v0.1.0/manifests"}]},"repo_metadata_updated_at":"2025-09-01T21:23:14.028Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":9.345852080216646,"dependent_packages_count":6.999148183520997,"stargazers_count":null,"forks_count":null,"average":8.172500131868823},"purl":"pkg:golang/github.com/qsd-group/qsdsan","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/qsd-group/qsdsan","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/qsd-group/qsdsan","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/qsd-group/qsdsan/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-08-31T13:24:19.858Z","issues_count":60,"pull_requests_count":71,"avg_time_to_close_issue":6639910.0,"avg_time_to_close_pull_request":642145.4225352113,"issues_closed_count":55,"pull_requests_closed_count":71,"pull_request_authors_count":9,"issue_authors_count":12,"avg_comments_per_issue":2.9,"avg_comments_per_pull_request":1.3943661971830985,"merged_pull_requests_count":65,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":4,"past_year_pull_requests_count":5,"past_year_avg_time_to_close_issue":1549352.0,"past_year_avg_time_to_close_pull_request":272660.0,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":5,"past_year_pull_request_authors_count":3,"past_year_issue_authors_count":4,"past_year_avg_comments_per_issue":2.5,"past_year_avg_comments_per_pull_request":5.2,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":5,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/issues","maintainers":[{"login":"yalinli2","count":91,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/yalinli2"},{"login":"joyxyz1994","count":12,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/joyxyz1994"},{"login":"GaYeongKim","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/GaYeongKim"},{"login":"vlmorgan93","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/vlmorgan93"}],"active_maintainers":[{"login":"yalinli2","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/yalinli2"},{"login":"joyxyz1994","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/joyxyz1994"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fqsd-group%2Fqsdsan/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fqsd-group%2Fqsdsan/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fqsd-group%2Fqsdsan/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fqsd-group%2Fqsdsan/related_packages","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":1954234,"maintainers_count":0,"namespaces_count":741771,"keywords_count":109320,"github":"golang","metadata":{"funded_packages_count":49342},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2025-09-08T05:47:38.872Z","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":4134395,"name":"github.com/QSD-Group/QSDsan","ecosystem":"go","description":"","homepage":null,"licenses":"other","normalized_licenses":["GPL-1.0+"],"repository_url":"https://github.com/QSD-Group/QSDsan","keywords_array":[],"namespace":"github.com/QSD-Group","versions_count":9,"first_release_published_at":"2021-02-14T23:37:04.000Z","latest_release_published_at":"2025-05-09T16:27:24.000Z","latest_release_number":"v1.4.2","last_synced_at":"2025-09-07T23:33:49.162Z","created_at":"2022-04-12T16:06:45.359Z","updated_at":"2025-09-07T23:33:49.162Z","registry_url":"https://pkg.go.dev/github.com/QSD-Group/QSDsan","install_command":"go get github.com/QSD-Group/QSDsan","documentation_url":"https://pkg.go.dev/github.com/QSD-Group/QSDsan#section-documentation","metadata":{},"repo_metadata":{"id":39159008,"uuid":"299665841","full_name":"QSD-Group/QSDsan","owner":"QSD-Group","description":"Quantitative Sustainable Design (QSD) of sanitation and resource recovery systems.","archived":false,"fork":false,"pushed_at":"2025-08-25T15:09:50.000Z","size":61902,"stargazers_count":33,"open_issues_count":3,"forks_count":17,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-08-25T17:01:42.584Z","etag":null,"topics":["dynamic-simulations","life-cycle-assessment","process-modeling","quantitative-sustainable-design","resource-recovery","sanitation","sustainability-analysis","techno-economic-analysis"],"latest_commit_sha":null,"homepage":"https://qsdsan.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/QSD-Group.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2020-09-29T15:53:46.000Z","updated_at":"2025-07-23T17:39:23.000Z","dependencies_parsed_at":"2023-12-18T18:03:07.741Z","dependency_job_id":"a8d5bc52-759e-4b77-ba44-f819c31e28fc","html_url":"https://github.com/QSD-Group/QSDsan","commit_stats":{"total_commits":1879,"total_committers":13,"mean_commits":"144.53846153846155","dds":"0.46993081426290584","last_synced_commit":"fee7d007318d99c8efa35c605293f417bb91e46b"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/QSD-Group/QSDsan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QSD-Group","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/sbom","scorecard":{"id":115507,"data":{"date":"2025-08-11","repo":{"name":"github.com/QSD-Group/QSDsan","commit":"e9a46fea302570493a1963540c61dacdc9315f4f"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.2,"checks":[{"name":"Code-Review","score":0,"reason":"Found 1/17 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":"Maintained","score":4,"reason":"3 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/build-coverage.yml:1","Warn: no topLevel permission defined: .github/workflows/build-dev.yml:1","Warn: no topLevel permission defined: .github/workflows/build-only.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":"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":"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/build-coverage.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/QSD-Group/QSDsan/build-coverage.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-coverage.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/QSD-Group/QSDsan/build-coverage.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build-coverage.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/QSD-Group/QSDsan/build-coverage.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-dev.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/QSD-Group/QSDsan/build-dev.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-dev.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/QSD-Group/QSDsan/build-dev.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-only.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/QSD-Group/QSDsan/build-only.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-only.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/QSD-Group/QSDsan/build-only.yml/main?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/build-coverage.yml:29","Warn: pipCommand not pinned by hash: .github/workflows/build-coverage.yml:30","Warn: pipCommand not pinned by hash: .github/workflows/build-coverage.yml:31","Warn: pipCommand not pinned by hash: .github/workflows/build-coverage.yml:32","Warn: pipCommand not pinned by hash: .github/workflows/build-coverage.yml:33","Warn: pipCommand not pinned by hash: .github/workflows/build-coverage.yml:34","Warn: pipCommand not pinned by hash: .github/workflows/build-dev.yml:29","Warn: pipCommand not pinned by hash: .github/workflows/build-dev.yml:30","Warn: pipCommand not pinned by hash: .github/workflows/build-dev.yml:31","Warn: pipCommand not pinned by hash: .github/workflows/build-dev.yml:32","Warn: pipCommand not pinned by hash: .github/workflows/build-dev.yml:33","Warn: pipCommand not pinned by hash: .github/workflows/build-dev.yml:34","Warn: pipCommand not pinned by hash: .github/workflows/build-only.yml:29","Warn: pipCommand not pinned by hash: .github/workflows/build-only.yml:30","Warn: pipCommand not pinned by hash: .github/workflows/build-only.yml:31","Warn: pipCommand not pinned by hash: .github/workflows/build-only.yml:32","Warn: pipCommand not pinned by hash: .github/workflows/build-only.yml:33","Warn: pipCommand not pinned by hash: .github/workflows/build-only.yml:34","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of  18 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":"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":"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":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Warn: project license file does not contain an FSF or OSI license."],"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":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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 14 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-16T01:09:37.167Z","repository_id":39159008,"created_at":"2025-08-16T01:09:37.168Z","updated_at":"2025-08-16T01:09:37.168Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273186927,"owners_count":25060542,"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-01T02:00:09.058Z","response_time":120,"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":"QSD-Group","name":"Quantitative Sustainable Design (QSD) Group","uuid":"68925850","kind":"organization","description":"Tools for quantitative sustainable design (QSD) to guide the research, development, and deployment of technologies and inform decision-making.","email":"quantitative.sustainable.design@gmail.com","website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/68925850?v=4","repositories_count":5,"last_synced_at":"2023-03-08T04:29:41.725Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/QSD-Group","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-17T22:12:49.647Z","updated_at":"2023-03-08T04:29:41.819Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QSD-Group","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QSD-Group/repositories"},"tags":[{"name":"v1.4.2","sha":"a76468b1b8f6dc5e1759ad89d9e5a60cd4188d8e","kind":"commit","published_at":"2025-05-09T16:27:24.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/v1.4.2","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/v1.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@v1.4.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.4.2/manifests"},{"name":"archive/enviroloo","sha":"83d77382f309e50ec9da3d92f0043b19c5dd8151","kind":"commit","published_at":"2025-03-24T20:52:26.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/enviroloo","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/enviroloo","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@archive%2Fenviroloo","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fenviroloo","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fenviroloo/manifests"},{"name":"v1.4.0","sha":"9b531df5137bb3f33761ffe73edbf2356cd864bd","kind":"commit","published_at":"2024-10-16T03:18:12.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/v1.4.0","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/v1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@v1.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.4.0/manifests"},{"name":"archive/metro","sha":"3db40feeaf537385dd40f558fc8ef794ec15232b","kind":"commit","published_at":"2024-06-05T14:44:38.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/metro","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/metro","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@archive%2Fmetro","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fmetro","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fmetro/manifests"},{"name":"archive/bsm2_2024_01_18","sha":"223519ba28d7d06e0f150737ebaafcc2b9394329","kind":"commit","published_at":"2024-01-18T16:46:46.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/bsm2_2024_01_18","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/bsm2_2024_01_18","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@archive%2Fbsm2_2024_01_18","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fbsm2_2024_01_18","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fbsm2_2024_01_18/manifests"},{"name":"archive/trial_2023_10_21","sha":"a40b3e68e7497ca144c60b6d473dcd007bfaba13","kind":"commit","published_at":"2023-10-22T01:33:54.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/trial_2023_10_21","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/trial_2023_10_21","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@archive%2Ftrial_2023_10_21","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Ftrial_2023_10_21","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Ftrial_2023_10_21/manifests"},{"name":"v1.3.0","sha":"7d1b75a05e146c3d4ee1e28d900cd3aadfb5ffee","kind":"commit","published_at":"2023-06-30T20:29:34.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/v1.3.0","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"a47f539cd5989ef23ae97a3a924e4c2289651832","kind":"commit","published_at":"2022-08-14T13:34:49.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/v1.2.0","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@v1.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.2.0/manifests"},{"name":"archive/gates_2022_08_01","sha":"00d469e96f1cc29a968e100ec78024cd6cf1f377","kind":"commit","published_at":"2022-08-01T15:34:30.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/gates_2022_08_01","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/gates_2022_08_01","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@archive%2Fgates_2022_08_01","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fgates_2022_08_01","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fgates_2022_08_01/manifests"},{"name":"archive/reclaimer","sha":"84b4b894bbf4dd9411e3b765b505e637eff3bca4","kind":"commit","published_at":"2022-04-25T20:57:44.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/reclaimer","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/reclaimer","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@archive%2Freclaimer","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Freclaimer","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Freclaimer/manifests"},{"name":"v1.1.0","sha":"9061ae5529963cf057487f8a66d9231b129bec4d","kind":"commit","published_at":"2022-03-03T02:02:57.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/v1.1.0","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@v1.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.1.0/manifests"},{"name":"archive/BR_OmniProcessor","sha":"e9fdbf1e6ed25685ce31093f5a58eced6c5eabc7","kind":"commit","published_at":"2022-02-01T22:51:31.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/BR_OmniProcessor","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/BR_OmniProcessor","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@archive%2FBR_OmniProcessor","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2FBR_OmniProcessor","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2FBR_OmniProcessor/manifests"},{"name":"archive/dyn_expt","sha":"67b09a08a570bbf237b0dbf1de38c8447c23df1a","kind":"commit","published_at":"2022-01-09T23:02:48.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/dyn_expt","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/dyn_expt","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@archive%2Fdyn_expt","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fdyn_expt","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fdyn_expt/manifests"},{"name":"archive/init_state","sha":"4f87003dfb79c16d7a11a41d8a7c9d6fecfb8883","kind":"commit","published_at":"2022-01-08T15:35:54.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/init_state","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/init_state","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@archive%2Finit_state","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Finit_state","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Finit_state/manifests"},{"name":"v1.0.0","sha":"559a0e43428411b23319ffd087e04c5d08f46d4a","kind":"commit","published_at":"2021-11-30T16:50:17.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/v1.0.0","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@v1.0.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v1.0.0/manifests"},{"name":"archive/dyn","sha":"de8556c1df4e41e96b528e2250ff2e5ebbaa8a72","kind":"commit","published_at":"2021-10-08T02:32:54.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/archive/dyn","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/archive/dyn","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@archive%2Fdyn","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fdyn","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/archive%2Fdyn/manifests"},{"name":"v0.3.0","sha":"3c19aebd5503433120217228c3388533cee4bd30","kind":"commit","published_at":"2021-08-05T19:01:43.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/v0.3.0","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/v0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@v0.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v0.3.0/manifests"},{"name":"v0.2.0","sha":"286943eb206ebd89f58e50b9fdd1bed486e894ae","kind":"tag","published_at":"2021-03-17T16:17:44.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/v0.2.0","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@v0.2.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v0.2.0/manifests"},{"name":"v0.1.0","sha":"1c3d11d9f72421c8b5dbdf6b537775ca35ec65c0","kind":"tag","published_at":"2021-03-17T16:11:54.000Z","download_url":"https://codeload.github.com/QSD-Group/QSDsan/tar.gz/v0.1.0","html_url":"https://github.com/QSD-Group/QSDsan/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/QSD-Group/QSDsan@v0.1.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/tags/v0.1.0/manifests"}]},"repo_metadata_updated_at":"2025-09-01T21:23:14.033Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":9.345852080216646,"dependent_packages_count":6.999148183520997,"stargazers_count":null,"forks_count":null,"average":8.172500131868823},"purl":"pkg:golang/github.com/%21q%21s%21d-%21group/%21q%21s%21dsan","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/QSD-Group/QSDsan","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/QSD-Group/QSDsan","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/QSD-Group/QSDsan/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-08-31T13:24:19.858Z","issues_count":60,"pull_requests_count":71,"avg_time_to_close_issue":6639910.0,"avg_time_to_close_pull_request":642145.4225352113,"issues_closed_count":55,"pull_requests_closed_count":71,"pull_request_authors_count":9,"issue_authors_count":12,"avg_comments_per_issue":2.9,"avg_comments_per_pull_request":1.3943661971830985,"merged_pull_requests_count":65,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":4,"past_year_pull_requests_count":5,"past_year_avg_time_to_close_issue":1549352.0,"past_year_avg_time_to_close_pull_request":272660.0,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":5,"past_year_pull_request_authors_count":3,"past_year_issue_authors_count":4,"past_year_avg_comments_per_issue":2.5,"past_year_avg_comments_per_pull_request":5.2,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":5,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/issues","maintainers":[{"login":"yalinli2","count":91,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/yalinli2"},{"login":"joyxyz1994","count":12,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/joyxyz1994"},{"login":"GaYeongKim","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/GaYeongKim"},{"login":"vlmorgan93","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/vlmorgan93"}],"active_maintainers":[{"login":"yalinli2","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/yalinli2"},{"login":"joyxyz1994","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/joyxyz1994"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FQSD-Group%2FQSDsan/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FQSD-Group%2FQSDsan/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FQSD-Group%2FQSDsan/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FQSD-Group%2FQSDsan/related_packages","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":1954234,"maintainers_count":0,"namespaces_count":741771,"keywords_count":109320,"github":"golang","metadata":{"funded_packages_count":49342},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2025-09-08T05:47:38.872Z","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":646531,"full_name":"QSD-Group/QSDsan","default_branch":"main","committers":[{"name":"Yalin","email":"zoe.yalin.li@gmail.com","login":"yalinli2","count":1035},{"name":"Joy Cheung","email":"joycheung1994@gmail.com","login":"joyxyz1994","count":490},{"name":"RaiSaumitra","email":"85169426+RaiSaumitra","login":"RaiSaumitra","count":286},{"name":"Smiti Mittal","email":"59079754+smitimittal","login":"smitimittal","count":33},{"name":"Victoria Morgan","email":"vlmorgan@illinois.edu","login":"vlmorgan93","count":28},{"name":"Ga-Yeong Kim","email":"gayeong1225@gmail.com","login":"GaYeongKim","count":28},{"name":"Jianan Feng","email":"jiananf2@illinois.edu","login":"jiananf2","count":21},{"name":"haclohman","email":"68960449+haclohman","login":"haclohman","count":16},{"name":"lane-to","email":"91288288+lane-to","login":"lane-to","count":6},{"name":"Steiner","email":"philipp.steiner@eawag.ch","login":"philAteawag","count":4},{"name":"BenGillen1998","email":"benjamingillen98@gmail.com","login":"BenGillen1998","count":2},{"name":"Yoel","email":"yoelcortes@gmail.com","login":"yoelcortes","count":2},{"name":"lsrowles","email":"stetsonsc@gmail.com","login":"lsrowles","count":1}],"total_commits":1952,"total_committers":13,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":150.15384615384616,"dds":0.4697745901639344,"past_year_committers":[{"name":"Joy Zhang","email":"joycheung1994@gmail.com","login":"joyxyz1994","count":66},{"name":"Yalin","email":"mailto.yalin.li@gmail.com","login":"yalinli2","count":44},{"name":"BenGillen1998","email":"benjamingillen98@gmail.com","login":"BenGillen1998","count":2},{"name":"Ga-Yeong Kim","email":"gayeong1225@gmail.com","login":"GaYeongKim","count":1}],"past_year_total_commits":113,"past_year_total_committers":4,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":28.25,"past_year_dds":0.415929203539823,"last_synced_at":"2025-08-06T07:32:19.269Z","last_synced_commit":"e9a46fea302570493a1963540c61dacdc9315f4f","created_at":"2023-03-09T09:10:49.649Z","updated_at":"2025-08-06T07:32:19.269Z","commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-08-21T00:00:20.603Z","repositories_count":5479765,"commits_count":853308131,"contributors_count":31095153,"owners_count":906558,"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":"QSD-Group/QSDsan","html_url":"https://github.com/QSD-Group/QSDsan","last_synced_at":"2025-08-31T13:24:19.858Z","status":null,"issues_count":60,"pull_requests_count":71,"avg_time_to_close_issue":6639910.0,"avg_time_to_close_pull_request":642145.4225352113,"issues_closed_count":55,"pull_requests_closed_count":71,"pull_request_authors_count":9,"issue_authors_count":12,"avg_comments_per_issue":2.9,"avg_comments_per_pull_request":1.3943661971830985,"merged_pull_requests_count":65,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":4,"past_year_pull_requests_count":5,"past_year_avg_time_to_close_issue":1549352.0,"past_year_avg_time_to_close_pull_request":272660.0,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":5,"past_year_pull_request_authors_count":3,"past_year_issue_authors_count":4,"past_year_avg_comments_per_issue":2.5,"past_year_avg_comments_per_pull_request":5.2,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":5,"created_at":"2023-05-09T10:34:59.304Z","updated_at":"2025-09-03T05:59:32.261Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/QSD-Group%2FQSDsan/issues","issue_labels_count":{"enhancement":5,"documentation":3,"task list":3,"good first issue":1},"pull_request_labels_count":{},"issue_author_associations_count":{"MEMBER":50,"NONE":6,"CONTRIBUTOR":2},"pull_request_author_associations_count":{"MEMBER":60,"CONTRIBUTOR":12,"NONE":3},"issue_authors":{"yalinli2":47,"yoelcortes":2,"vlmorgan93":1,"hccroll":1,"aiical":1,"joyxyz1994":1,"jbolorinos":1,"pengxiao01":1,"GaYeongKim":1,"Clubiy":1,"mckfarm":1},"pull_request_authors":{"yalinli2":46,"joyxyz1994":12,"jiananf2":6,"yoelcortes":4,"GaYeongKim":2,"BenGillen1998":2,"philthestone":1,"stetsonrowles":1,"smitimittal":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-03T00:00:08.273Z","repositories_count":10070672,"issues_count":31254518,"pull_requests_count":95427059,"authors_count":10689179,"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":{"NONE":3,"MEMBER":1},"past_year_pull_request_author_associations_count":{"MEMBER":5,"NONE":1,"CONTRIBUTOR":1},"past_year_issue_authors":{"aiical":1,"Clubiy":1,"pengxiao01":1,"yalinli2":1},"past_year_pull_request_authors":{"yalinli2":3,"BenGillen1998":2,"joyxyz1994":2},"maintainers":[{"login":"yalinli2","count":93,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/yalinli2"},{"login":"joyxyz1994","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/joyxyz1994"},{"login":"GaYeongKim","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/GaYeongKim"},{"login":"vlmorgan93","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/vlmorgan93"}],"active_maintainers":[{"login":"yalinli2","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/yalinli2"},{"login":"joyxyz1994","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/joyxyz1994"}]},"events":{"total":{"CreateEvent":9,"CommitCommentEvent":7,"IssuesEvent":7,"WatchEvent":4,"DeleteEvent":3,"IssueCommentEvent":55,"PushEvent":299,"PullRequestReviewEvent":1,"PullRequestEvent":8,"ForkEvent":3},"last_year":{"CreateEvent":9,"CommitCommentEvent":7,"IssuesEvent":7,"WatchEvent":4,"DeleteEvent":3,"IssueCommentEvent":55,"PushEvent":299,"PullRequestReviewEvent":1,"PullRequestEvent":8,"ForkEvent":3}},"keywords":["dynamic-simulations","life-cycle-assessment","process-modeling","quantitative-sustainable-design","resource-recovery","sanitation","sustainability-analysis","techno-economic-analysis"],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/build-coverage.yml","sha":null,"kind":"manifest","created_at":"2023-02-17T00:01:33.848Z","updated_at":"2023-02-17T00:01:33.848Z","repository_link":"https://github.com/QSD-Group/QSDsan/blob/main/.github/workflows/build-coverage.yml","dependencies":[{"id":7728507504,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7728507505,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":7728507506,"package_name":"codecov/codecov-action","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/build-only.yml","sha":null,"kind":"manifest","created_at":"2023-02-17T00:01:34.066Z","updated_at":"2023-02-17T00:01:34.066Z","repository_link":"https://github.com/QSD-Group/QSDsan/blob/main/.github/workflows/build-only.yml","dependencies":[{"id":7728507541,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7728507542,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"requirements.txt","sha":null,"kind":"manifest","created_at":"2023-02-17T00:01:34.153Z","updated_at":"2023-02-17T00:01:34.153Z","repository_link":"https://github.com/QSD-Group/QSDsan/blob/main/requirements.txt","dependencies":[{"id":7728507588,"package_name":"SALib","ecosystem":"pypi","requirements":"\u003e=1.4.5","direct":true,"kind":"runtime","optional":false},{"id":7728507593,"package_name":"seaborn","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7728507594,"package_name":"sympy","ecosystem":"pypi","requirements":"\u003e=1.8","direct":true,"kind":"runtime","optional":false},{"id":7728507595,"package_name":"matplotlib","ecosystem":"pypi","requirements":"\u003c=3.6.0","direct":true,"kind":"runtime","optional":false},{"id":7728507596,"package_name":"sphinx","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7728507597,"package_name":"sphinx-copybutton","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7728507598,"package_name":"sphinx-design","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7728507599,"package_name":"furo","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7728507600,"package_name":"nbsphinx","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7728507601,"package_name":"pandoc","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7728507602,"package_name":"ipywidgets","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7728507603,"package_name":"jupyterlab-widgets","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7728507604,"package_name":"widgetsnbextension","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"setup.py","sha":null,"kind":"manifest","created_at":"2023-02-17T00:01:34.290Z","updated_at":"2023-02-17T00:01:34.290Z","repository_link":"https://github.com/QSD-Group/QSDsan/blob/main/setup.py","dependencies":[{"id":7728507623,"package_name":"biosteam","ecosystem":"pypi","requirements":"\u003e=2.36.1","direct":true,"kind":"runtime","optional":false},{"id":7728507625,"package_name":"thermosteam","ecosystem":"pypi","requirements":"\u003e=0.32.0","direct":true,"kind":"runtime","optional":false},{"id":7728507626,"package_name":"matplotlib","ecosystem":"pypi","requirements":"\u003e=3.3.2","direct":true,"kind":"runtime","optional":false},{"id":7728507627,"package_name":"pandas","ecosystem":"pypi","requirements":"\u003e=1.3.2","direct":true,"kind":"runtime","optional":false},{"id":7728507628,"package_name":"SALib","ecosystem":"pypi","requirements":"\u003e=1.4.5","direct":true,"kind":"runtime","optional":false},{"id":7728507629,"package_name":"scikit-learn","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7728507630,"package_name":"scipy","ecosystem":"pypi","requirements":"\u003e=1.7.1","direct":true,"kind":"runtime","optional":false},{"id":7728507631,"package_name":"seaborn","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":7728507632,"package_name":"sympy","ecosystem":"pypi","requirements":"\u003e=1.8","direct":true,"kind":"runtime","optional":false}]}],"score":12.159735470321808,"created_at":"2025-09-08T15:39:08.097Z","updated_at":"2025-10-07T08:27:18.182Z","avatar_url":"https://github.com/QSD-Group.png","language":"Python","category":null,"sub_category":null,"monthly_downloads":405,"funding_links":[],"readme_doi_urls":["https://doi.org/10.1039/d2ew00455k","https://doi.org/10.1039/D2EW00431C","https://doi.org/10.1021/acssuschemeng.9b07040"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://science.ecosyste.ms/api/v1/projects/75672","html_url":"https://science.ecosyste.ms/projects/75672"}