{"id":335107,"name":"flodym","description":"The Flexibe Open Dynamic Material Systems Model library provides key functionality for building material flow analysis models.","url":"https://github.com/pik-piam/flodym","last_synced_at":"2026-05-14T13:08:11.755Z","repository":{"id":251060937,"uuid":"836235212","full_name":"pik-piam/flodym","owner":"pik-piam","description":"library for material flow analysis models","archived":false,"fork":false,"pushed_at":"2026-04-27T15:58:09.000Z","size":19004,"stargazers_count":26,"open_issues_count":16,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-05-05T17:49:26.597Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://flodym.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pik-piam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-07-31T12:30:43.000Z","updated_at":"2026-04-27T15:32:40.000Z","dependencies_parsed_at":"2025-01-10T19:22:56.587Z","dependency_job_id":"3eaa609a-a5e4-47d6-961a-12da1e509d14","html_url":"https://github.com/pik-piam/flodym","commit_stats":null,"previous_names":["jakobbd/sodym","pik-piam/sodym","pik-piam/flodym"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/pik-piam/flodym","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pik-piam%2Fflodym","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pik-piam%2Fflodym/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pik-piam%2Fflodym/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pik-piam%2Fflodym/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pik-piam","download_url":"https://codeload.github.com/pik-piam/flodym/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pik-piam%2Fflodym/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32938003,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-12T09:19:52.626Z","status":"ssl_error","status_checked_at":"2026-05-12T09:17:33.438Z","response_time":102,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":"pik-piam","name":"Potsdam Integrated Assessment Modelling (PIAM)","uuid":"29039634","kind":"organization","description":"Tools developed for use with data and models related to PIK's research.","email":null,"website":"https://www.pik-potsdam.de/","location":"Potsdam Institute for Climate Impact Research (PIK), Germany","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/29039634?v=4","repositories_count":50,"last_synced_at":"2023-02-27T11:50:27.848Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/pik-piam","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-10T20:11:55.333Z","updated_at":"2023-02-27T11:50:27.863Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pik-piam","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pik-piam/repositories"},"packages":[{"id":11269087,"name":"flodym","ecosystem":"pypi","description":null,"homepage":null,"licenses":"mit","normalized_licenses":["MIT"],"repository_url":"https://github.com/pik-piam/flodym","keywords_array":[],"namespace":null,"versions_count":16,"first_release_published_at":"2025-01-15T17:42:05.000Z","latest_release_published_at":"2026-04-27T15:58:45.000Z","latest_release_number":"0.8.1","last_synced_at":"2026-04-30T06:03:39.389Z","created_at":"2025-01-15T17:45:20.347Z","updated_at":"2026-04-30T06:03:39.390Z","registry_url":"https://pypi.org/project/flodym/","install_command":"pip install flodym --index-url https://pypi.org/simple","documentation_url":"https://flodym.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":[],"normalized_name":"flodym","project_status":null},"repo_metadata":{"id":251060937,"uuid":"836235212","full_name":"pik-piam/flodym","owner":"pik-piam","description":"library for material flow analysis models","archived":false,"fork":false,"pushed_at":"2026-03-17T14:54:05.000Z","size":18962,"stargazers_count":23,"open_issues_count":19,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-03-27T04:25:13.939Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://flodym.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pik-piam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-07-31T12:30:43.000Z","updated_at":"2026-03-17T10:45:17.000Z","dependencies_parsed_at":"2025-01-10T19:22:56.587Z","dependency_job_id":"3eaa609a-a5e4-47d6-961a-12da1e509d14","html_url":"https://github.com/pik-piam/flodym","commit_stats":null,"previous_names":["jakobbd/sodym","pik-piam/sodym","pik-piam/flodym"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/pik-piam/flodym","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pik-piam%2Fflodym","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pik-piam%2Fflodym/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pik-piam%2Fflodym/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pik-piam%2Fflodym/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pik-piam","download_url":"https://codeload.github.com/pik-piam/flodym/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pik-piam%2Fflodym/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31102536,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-28T13:41:34.766Z","status":"ssl_error","status_checked_at":"2026-03-28T13:41:05.465Z","response_time":79,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":"pik-piam","name":"Potsdam Integrated Assessment Modelling (PIAM)","uuid":"29039634","kind":"organization","description":"Tools developed for use with data and models related to PIK's research.","email":null,"website":"https://www.pik-potsdam.de/","location":"Potsdam Institute for Climate Impact Research (PIK), Germany","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/29039634?v=4","repositories_count":50,"last_synced_at":"2023-02-27T11:50:27.848Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/pik-piam","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-10T20:11:55.333Z","updated_at":"2023-02-27T11:50:27.863Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pik-piam","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pik-piam/repositories"},"tags":[]},"repo_metadata_updated_at":"2026-03-28T14:04:37.323Z","dependent_packages_count":0,"downloads":319,"downloads_period":"last-month","dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":54.945816847798866,"dependent_packages_count":9.760949316372013,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":32.35338308208544},"purl":"pkg:pypi/flodym","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/flodym","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/flodym","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/flodym/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-03-04T02:01:25.047Z","issues_count":8,"pull_requests_count":54,"avg_time_to_close_issue":13746343.666666666,"avg_time_to_close_pull_request":506490.2368421053,"issues_closed_count":3,"pull_requests_closed_count":38,"pull_request_authors_count":7,"issue_authors_count":3,"avg_comments_per_issue":0.75,"avg_comments_per_pull_request":0.2037037037037037,"merged_pull_requests_count":38,"bot_issues_count":0,"bot_pull_requests_count":10,"past_year_issues_count":4,"past_year_pull_requests_count":39,"past_year_avg_time_to_close_issue":17343157.0,"past_year_avg_time_to_close_pull_request":761354.3333333334,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":24,"past_year_pull_request_authors_count":6,"past_year_issue_authors_count":2,"past_year_avg_comments_per_issue":0.75,"past_year_avg_comments_per_pull_request":0.28205128205128205,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":9,"past_year_merged_pull_requests_count":24,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/pik-piam%2Fflodym/issues","maintainers":[{"login":"JakobBD","count":39,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/JakobBD"},{"login":"bennet21","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bennet21"}],"active_maintainers":[{"login":"JakobBD","count":24,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/JakobBD"},{"login":"bennet21","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bennet21"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/flodym/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/flodym/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/flodym/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/flodym/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/flodym/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/flodym/codemeta","maintainers":[{"uuid":"JakobBD","login":"JakobBD","name":null,"email":null,"url":null,"packages_count":2,"html_url":"https://pypi.org/user/JakobBD/","role":null,"created_at":"2025-01-15T17:49:31.878Z","updated_at":"2025-01-15T17:49:31.878Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/JakobBD/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":861831,"maintainers_count":368203,"namespaces_count":0,"keywords_count":271316,"github":"pypi","metadata":{"funded_packages_count":53172},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2026-04-09T05:08:03.587Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}}],"commits":{"id":11310856,"full_name":"pik-piam/flodym","default_branch":"master","total_commits":395,"total_committers":10,"total_bot_commits":109,"total_bot_committers":2,"mean_commits":39.5,"dds":0.549367088607595,"past_year_total_commits":133,"past_year_total_committers":6,"past_year_total_bot_commits":44,"past_year_total_bot_committers":2,"past_year_mean_commits":22.166666666666668,"past_year_dds":0.5037593984962406,"last_synced_at":"2026-05-08T10:38:12.195Z","last_synced_commit":"63fad9be444bbb875e9a8fd0116ce2e426d91d6e","created_at":"2025-09-22T23:55:33.159Z","updated_at":"2026-05-08T10:37:08.539Z","committers":[{"name":"Jakob Duerrwaechter","email":"jakob.duerrwaechter@pik-potsdam.de","login":"JakobBD","count":178},{"name":"pre-commit-ci[bot]","email":"66853113+pre-commit-ci[bot]","login":"pre-commit-ci[bot]","count":96},{"name":"Sally Dacie","email":"sallyda@pik-potsdam.de","login":null,"count":51},{"name":"Bennet Weiss","email":"bennet.weiss@pik-potsdam.de","login":"bennet21","count":34},{"name":"Merjo","email":"m.hosak@pilos.de","login":"Merjo","count":15},{"name":"copilot-swe-agent[bot]","email":"198982749+Copilot","login":"Copilot","count":13},{"name":"Sally Dacie","email":"sallyda@LT1189.pik-potsdam.de","login":null,"count":4},{"name":"Gergo Suto","email":"gergosuto@proton.me","login":null,"count":2},{"name":"SallyDa","email":"sallydacie@gmail.com","login":"SallyDa","count":1},{"name":"Leonie Schweiger","email":"leonie.schweiger@pik-potsdam.de","login":"leonieschweiger","count":1}],"past_year_committers":[{"name":"Jakob Duerrwaechter","email":"jakob.duerrwaechter@pik-potsdam.de","login":"JakobBD","count":66},{"name":"pre-commit-ci[bot]","email":"66853113+pre-commit-ci[bot]","login":"pre-commit-ci[bot]","count":31},{"name":"Bennet Weiss","email":"bennet.weiss@pik-potsdam.de","login":"bennet21","count":20},{"name":"copilot-swe-agent[bot]","email":"198982749+Copilot","login":"Copilot","count":13},{"name":"Gergo Suto","email":"gergosuto@proton.me","login":null,"count":2},{"name":"Leonie Schweiger","email":"leonie.schweiger@pik-potsdam.de","login":"leonieschweiger","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/pik-piam%2Fflodym/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-12T00:00:09.062Z","repositories_count":6233304,"commits_count":894841676,"contributors_count":34898849,"owners_count":1151822,"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":"pik-piam/flodym","html_url":"https://github.com/pik-piam/flodym","last_synced_at":"2026-04-30T06:03:25.135Z","status":"active","issues_count":9,"pull_requests_count":56,"avg_time_to_close_issue":13746343.666666666,"avg_time_to_close_pull_request":522312.4871794872,"issues_closed_count":3,"pull_requests_closed_count":39,"pull_request_authors_count":7,"issue_authors_count":4,"avg_comments_per_issue":0.6666666666666666,"avg_comments_per_pull_request":0.21428571428571427,"merged_pull_requests_count":39,"bot_issues_count":0,"bot_pull_requests_count":10,"past_year_issues_count":4,"past_year_pull_requests_count":29,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":948261.4117647059,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":17,"past_year_pull_request_authors_count":6,"past_year_issue_authors_count":3,"past_year_avg_comments_per_issue":0.25,"past_year_avg_comments_per_pull_request":0.3793103448275862,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":5,"past_year_merged_pull_requests_count":17,"created_at":"2025-08-29T19:35:38.396Z","updated_at":"2026-04-30T06:03:25.135Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/pik-piam%2Fflodym","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/pik-piam%2Fflodym/issues","issue_labels_count":{"discussion":2,"enhancement":2},"pull_request_labels_count":{},"issue_author_associations_count":{"COLLABORATOR":6,"NONE":3},"pull_request_author_associations_count":{"COLLABORATOR":41,"CONTRIBUTOR":13,"NONE":2},"issue_authors":{"JakobBD":4,"bennet21":2,"TimoDiepers":2,"MagnusBoKarlsson":1},"pull_request_authors":{"JakobBD":36,"pre-commit-ci[bot]":10,"bennet21":6,"Copilot":1,"Merjo":1,"gergosuto":1,"leonieschweiger":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-12T00:00:09.018Z","repositories_count":14586219,"issues_count":34345838,"pull_requests_count":112445996,"authors_count":11260016,"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":{"discussion":1,"enhancement":1},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"NONE":3,"COLLABORATOR":1},"past_year_pull_request_author_associations_count":{"COLLABORATOR":21,"CONTRIBUTOR":7,"NONE":1},"past_year_issue_authors":{"TimoDiepers":2,"bennet21":1,"MagnusBoKarlsson":1},"past_year_pull_request_authors":{"JakobBD":18,"pre-commit-ci[bot]":5,"bennet21":3,"Copilot":1,"gergosuto":1,"leonieschweiger":1},"maintainers":[{"login":"JakobBD","count":40,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/JakobBD"},{"login":"bennet21","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bennet21"}],"active_maintainers":[{"login":"JakobBD","count":18,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/JakobBD"},{"login":"bennet21","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/bennet21"}]},"events":{"total":{"ReleaseEvent":6,"DeleteEvent":7,"PullRequestEvent":62,"ForkEvent":3,"IssuesEvent":11,"WatchEvent":12,"IssueCommentEvent":8,"PushEvent":82,"PullRequestReviewCommentEvent":6,"GollumEvent":1,"PullRequestReviewEvent":34,"CreateEvent":13},"last_year":{"ReleaseEvent":1,"DeleteEvent":5,"PullRequestEvent":13,"ForkEvent":1,"WatchEvent":11,"IssueCommentEvent":4,"PushEvent":32,"PullRequestReviewCommentEvent":3,"PullRequestReviewEvent":12,"CreateEvent":5}},"keywords":[],"dependencies":[{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2024-07-31T17:52:14.542Z","updated_at":"2024-07-31T17:52:14.542Z","repository_link":"https://github.com/pik-piam/flodym/blob/main/pyproject.toml","dependencies":[{"id":19437065479,"package_name":"python","ecosystem":"pypi","requirements":"\u003e=3.10,\u003c3.13","direct":true,"kind":"runtime","optional":false},{"id":19437065480,"package_name":"matplotlib","ecosystem":"pypi","requirements":"^3.7.1","direct":true,"kind":"runtime","optional":false},{"id":19437065481,"package_name":"numpy","ecosystem":"pypi","requirements":"^1.25.0","direct":true,"kind":"runtime","optional":false},{"id":19437065482,"package_name":"scipy","ecosystem":"pypi","requirements":"^1.11.0","direct":true,"kind":"runtime","optional":false},{"id":19437065483,"package_name":"PyYAML","ecosystem":"pypi","requirements":"^6.0","direct":true,"kind":"runtime","optional":false},{"id":19437065484,"package_name":"pandas","ecosystem":"pypi","requirements":"^2.0.2","direct":true,"kind":"runtime","optional":false},{"id":19437065485,"package_name":"pickle4","ecosystem":"pypi","requirements":"^0.0.1","direct":true,"kind":"runtime","optional":false},{"id":19437065486,"package_name":"plotly","ecosystem":"pypi","requirements":"^5.18.0","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/main_actions.yml","sha":null,"kind":"manifest","created_at":"2025-01-10T19:22:54.368Z","updated_at":"2025-01-10T19:22:54.368Z","repository_link":"https://github.com/pik-piam/flodym/blob/main/.github/workflows/main_actions.yml","dependencies":[{"id":21436093248,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":21436093250,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"requirements.txt","sha":null,"kind":"manifest","created_at":"2025-01-10T19:22:54.641Z","updated_at":"2025-01-10T19:22:54.641Z","repository_link":"https://github.com/pik-piam/flodym/blob/main/requirements.txt","dependencies":[{"id":21436093277,"package_name":"annotated-types","ecosystem":"pypi","requirements":"==0.7.0","direct":true,"kind":"runtime","optional":false},{"id":21436093278,"package_name":"attrs","ecosystem":"pypi","requirements":"==24.2.0","direct":true,"kind":"runtime","optional":false},{"id":21436093279,"package_name":"charset-normalizer","ecosystem":"pypi","requirements":"==3.4.0","direct":true,"kind":"runtime","optional":false},{"id":21436093280,"package_name":"colorama","ecosystem":"pypi","requirements":"==0.4.6","direct":true,"kind":"runtime","optional":false},{"id":21436093281,"package_name":"contourpy","ecosystem":"pypi","requirements":"==1.3.0","direct":true,"kind":"runtime","optional":false},{"id":21436093282,"package_name":"cycler","ecosystem":"pypi","requirements":"==0.12.1","direct":true,"kind":"runtime","optional":false},{"id":21436093283,"package_name":"docformatter","ecosystem":"pypi","requirements":"==1.7.5","direct":true,"kind":"runtime","optional":false},{"id":21436093428,"package_name":"et-xmlfile","ecosystem":"pypi","requirements":"==1.1.0","direct":true,"kind":"runtime","optional":false},{"id":21436093432,"package_name":"Faker","ecosystem":"pypi","requirements":"==30.8.0","direct":true,"kind":"runtime","optional":false},{"id":21436093434,"package_name":"fastjsonschema","ecosystem":"pypi","requirements":"==2.20.0","direct":true,"kind":"runtime","optional":false},{"id":21436093436,"package_name":"fonttools","ecosystem":"pypi","requirements":"==4.54.1","direct":true,"kind":"runtime","optional":false},{"id":21436093439,"package_name":"iniconfig","ecosystem":"pypi","requirements":"==2.0.0","direct":true,"kind":"runtime","optional":false},{"id":21436093441,"package_name":"jsonschema","ecosystem":"pypi","requirements":"==4.23.0","direct":true,"kind":"runtime","optional":false},{"id":21436093443,"package_name":"jsonschema-specifications","ecosystem":"pypi","requirements":"==2024.10.1","direct":true,"kind":"runtime","optional":false},{"id":21436093445,"package_name":"jupyter_core","ecosystem":"pypi","requirements":"==5.7.2","direct":true,"kind":"runtime","optional":false},{"id":21436093447,"package_name":"kiwisolver","ecosystem":"pypi","requirements":"==1.4.7","direct":true,"kind":"runtime","optional":false},{"id":21436093449,"package_name":"matplotlib","ecosystem":"pypi","requirements":"==3.9.2","direct":true,"kind":"runtime","optional":false},{"id":21436093452,"package_name":"nbformat","ecosystem":"pypi","requirements":"==5.10.4","direct":true,"kind":"runtime","optional":false},{"id":21436093455,"package_name":"numpy","ecosystem":"pypi","requirements":"==2.1.2","direct":true,"kind":"runtime","optional":false},{"id":21436093457,"package_name":"openpyxl","ecosystem":"pypi","requirements":"==3.1.5","direct":true,"kind":"runtime","optional":false},{"id":21436093460,"package_name":"packaging","ecosystem":"pypi","requirements":"==24.1","direct":true,"kind":"runtime","optional":false},{"id":21436093462,"package_name":"pandas","ecosystem":"pypi","requirements":"==2.2.3","direct":true,"kind":"runtime","optional":false},{"id":21436093464,"package_name":"pickle4","ecosystem":"pypi","requirements":"==0.0.1","direct":true,"kind":"runtime","optional":false},{"id":21436093543,"package_name":"pillow","ecosystem":"pypi","requirements":"==11.0.0","direct":true,"kind":"runtime","optional":false},{"id":21436093544,"package_name":"platformdirs","ecosystem":"pypi","requirements":"==4.3.6","direct":true,"kind":"runtime","optional":false},{"id":21436093545,"package_name":"plotly","ecosystem":"pypi","requirements":"==5.24.1","direct":true,"kind":"runtime","optional":false},{"id":21436093546,"package_name":"pluggy","ecosystem":"pypi","requirements":"==1.5.0","direct":true,"kind":"runtime","optional":false},{"id":21436093547,"package_name":"polyfactory","ecosystem":"pypi","requirements":"==2.17.0","direct":true,"kind":"runtime","optional":false},{"id":21436093561,"package_name":"pydantic","ecosystem":"pypi","requirements":"==2.9.2","direct":true,"kind":"runtime","optional":false},{"id":21436093562,"package_name":"pydantic_core","ecosystem":"pypi","requirements":"==2.23.4","direct":true,"kind":"runtime","optional":false},{"id":21436093563,"package_name":"pyparsing","ecosystem":"pypi","requirements":"==3.2.0","direct":true,"kind":"runtime","optional":false},{"id":21436093564,"package_name":"pytest","ecosystem":"pypi","requirements":"==8.3.3","direct":true,"kind":"runtime","optional":false},{"id":21436093565,"package_name":"python-dateutil","ecosystem":"pypi","requirements":"==2.9.0.post0","direct":true,"kind":"runtime","optional":false},{"id":21436093566,"package_name":"pytz","ecosystem":"pypi","requirements":"==2024.2","direct":true,"kind":"runtime","optional":false},{"id":21436093567,"package_name":"pywin32","ecosystem":"pypi","requirements":"==308","direct":true,"kind":"runtime","optional":false},{"id":21436093568,"package_name":"PyYAML","ecosystem":"pypi","requirements":"==6.0.2","direct":true,"kind":"runtime","optional":false},{"id":21436093569,"package_name":"referencing","ecosystem":"pypi","requirements":"==0.35.1","direct":true,"kind":"runtime","optional":false},{"id":21436093570,"package_name":"rpds-py","ecosystem":"pypi","requirements":"==0.20.0","direct":true,"kind":"runtime","optional":false},{"id":21436093571,"package_name":"scipy","ecosystem":"pypi","requirements":"==1.14.1","direct":true,"kind":"runtime","optional":false},{"id":21436093572,"package_name":"setuptools","ecosystem":"pypi","requirements":"==75.2.0","direct":true,"kind":"runtime","optional":false},{"id":21436093573,"package_name":"six","ecosystem":"pypi","requirements":"==1.16.0","direct":true,"kind":"runtime","optional":false},{"id":21436093574,"package_name":"tenacity","ecosystem":"pypi","requirements":"==9.0.0","direct":true,"kind":"runtime","optional":false},{"id":21436093575,"package_name":"traitlets","ecosystem":"pypi","requirements":"==5.14.3","direct":true,"kind":"runtime","optional":false},{"id":21436093576,"package_name":"typing_extensions","ecosystem":"pypi","requirements":"==4.12.2","direct":true,"kind":"runtime","optional":false},{"id":21436093577,"package_name":"tzdata","ecosystem":"pypi","requirements":"==2024.2","direct":true,"kind":"runtime","optional":false},{"id":21436093578,"package_name":"untokenize","ecosystem":"pypi","requirements":"==0.1.1","direct":true,"kind":"runtime","optional":false}]}],"score":11.808575707071187,"created_at":"2025-11-18T00:15:01.770Z","updated_at":"2026-05-14T13:08:11.757Z","avatar_url":"https://github.com/pik-piam.png","language":"Python","category":"Industrial Ecology","sub_category":"Life Cycle Assessment","monthly_downloads":319,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# flodym\n\n![PyPI - Version](https://img.shields.io/pypi/v/flodym)\n[![flodym.tests](https://github.com/pik-piam/flodym/actions/workflows/main_actions.yml/badge.svg)](https://github.com/pik-piam/flodym/actions/workflows/main_actions.yml)\n![docs](https://app.readthedocs.org/projects/flodym/badge/?version=latest)\n[![status](https://joss.theoj.org/papers/92b6faa2d82b8694f4ad5d394053ef32/status.svg)](https://joss.theoj.org/papers/92b6faa2d82b8694f4ad5d394053ef32)\n\nThe flodym (Flexibe Open Dynamic Material Systems Model) library provides key functionality for building material flow analysis models, including\n- the class `MFASystem` acting as a template (parent class) for users to create their own material flow models\n- the class `FlodymArray` handling mathematical operations between multi-dimensional arrays\n- different classes representing stocks accumulation, in- and outflows based on age cohort tracking and lifetime distributions. Those can be integrated in the `MFASystem`.\n- different options for data input and export, as well as visualization\n\n# Thanks\n\nflodym (flexible ODYM) is an adaptation of:\n\nODYM\u003cbr\u003e\nCopyright (c) 2018 Industrial Ecology\u003cbr\u003e\nauthor: Stefan Pauliuk, Uni Freiburg, Germany\u003cbr\u003e\nhttps://github.com/IndEcol/ODYM\u003cbr\u003e\n\nWe gratefully acknowledge funding from the TRANSIENCE project, grant number 101137606, funded by the European Commission within the Horizon Europe Research and Innovation Programme, from the Kopernikus-Projekt Ariadne through the German Federal Ministry of Education and Research (grant no. 03SFK5A0-2), and from the PRISMA project funded by the European Commission within the Horizon Europe Research and Innovation Programme under grant agreement No. 101081604 (PRISMA).\n\n# Installation\n\nflodym dependencies are managed with [pip](https://pypi.org/project/pip/).\n\nTo install as a user: run `python -m pip install flodym`\n\nTo install as a developer:\n\n1. Clone the flodym repository using git.\n2. From the project main directory, run `pip install -e \".[tests,docs,examples]\"` to obtain all the necessary\ndependencies, including those for running the tests, making the documentation, and running the examples.\n\nNote that it is advisable to do this within a virtual environment.\n\n# Why choose flodym?\n\nMFA models mainly consist on mathematical operations on different multi-dimensional arrays.\n\nFor example, the generation of different waste types `waste` might be a 3D-array defined over the dimensions time $t$, region $r$ and waste type $w$, and might be calculated from multiplying `end_of_life_products` (defined over time, region, and product type $p$) with a `waste_share` mapping from product type to waste type.\nIn numpy, the according matrix multiplication can be carried out nicely with the `einsum` function, were an index string indicates the involved dimensions:\n\n```\nwaste = np.einsum('trp,pw-\u003etrw', end_of_life_products, waste_share)\n```\n\nflodym uses this function under the hood, but wraps it in a data type `FlodymArray`, which stores the dimensions of the array and internally manages the dimensions of different arrays involved in mathematical operations.\n\nWith this, the above example reduces to\n\n```\nwaste[...] = end_of_life_products * waste_share\n```\n\nThis gives a flodym-based MFA models the following properties:\n\n- **Flexibility:** When changing the dimensionality of any array in your code, you only have to apply the change once, where the array is defined, instead of adapting every operation involving it. This also allows, for example, to add or remove an entire dimension from your model with minimal effort.\n- **Simplicity:** Since dimensions are automatically managed by the library, coding array operations becomes much easier. No knowledge about the einsum function, about the dimensions of each involved array or their order are required.\n- **Versatility:** We offer different levels of flodym use: Users can choose to use the standard methods implemented for data read-in, system setup and visualization, or only use only some of the data types like `FlodymArray`, and custom methods for the rest.\n- **Robustness:** Through the use of [Pydantic](https://docs.pydantic.dev/latest/), the setup of the system is type-checked, highlighting errors early-on. The data read-in performs extensive checks on data sorting and completeness.\n- **Performance:** The use of numpy ndarrays ensures low model runtimes compared with dimension matching through pandas dataframes.\n\n# How to cite\n\nIf you use this software in publications, please cite our [article in the Journal of Open Source Software](https://doi.org/10.21105/joss.10105):\n\n```\n@article{\n    Duerrwaechter2026,\n    author = {Dürrwächter, Jakob and Hosak, Merlin and Weiss, Bennet and Ueckerdt, Falko},\n    title = {flodym: A Python package for dynamic material flow analysis},\n    journal = {Journal of Open Source Software},\n    year = {2026},\n    doi = {10.21105/joss.10105},\n    url = {https://doi.org/10.21105/joss.10105},\n    publisher = {The Open Journal},\n    volume = {11},\n    number = {119},\n    pages = {10105}\n}\n```\n\n# How to contribute\n\nIf you'd like to contribute, the [issues page](https://github.com/pik-piam/flodym/issues) lists possible extensions and improvements.\nIf you wish to contribute your own, just create a fork and open a PR!\n\nTo run the tests locally, install the package with test dependencies (`pip install -e \".[tests]\"`) and run:\n\n```\npytest\n```\n\n# How to report problems and get support\n\nIf you encounter a bug or unexpected behaviour, please [open an issue](https://github.com/pik-piam/flodym/issues/new) on GitHub.\n\nFor questions and general support, use [GitHub Discussions](https://github.com/pik-piam/flodym/discussions) or contact jakob\\[dot\\]duerrwaechter\\[at\\]pik-potsdam.de.\n\n \u003c!-- stop parsing here on readthedocs --\u003e\n# Documentation\n\nSee our [readthedocs](https://flodym.readthedocs.io/en/latest/) page for documentation!\n\nThe notebooks in the [examples](examples) folder provide usage examples of the code.\n","funding_links":[],"readme_doi_urls":["https://doi.org/10.21105/joss.10105"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/335107","html_url":"https://ost.ecosyste.ms/projects/335107"}