{"id":19916,"name":"Temoa","description":"Tools for Energy Model Optimization and Analysis (Temoa) is an open source modeling framework for conducting energy system analysis.","url":"https://github.com/TemoaProject/temoa","last_synced_at":"2026-05-12T18:05:17.996Z","repository":{"id":25632711,"uuid":"29068024","full_name":"TemoaProject/temoa","owner":"TemoaProject","description":"Tools for Energy Model Optimization and Analysis","archived":false,"fork":false,"pushed_at":"2026-04-28T03:25:39.000Z","size":45941,"stargazers_count":104,"open_issues_count":2,"forks_count":65,"subscribers_count":14,"default_branch":"main","last_synced_at":"2026-04-30T12:05:05.668Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://docs.temoaproject.org/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"hunteke/temoa","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TemoaProject.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","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":"2015-01-10T19:22:06.000Z","updated_at":"2026-04-28T18:21:31.000Z","dependencies_parsed_at":"2026-02-20T02:03:47.030Z","dependency_job_id":null,"html_url":"https://github.com/TemoaProject/temoa","commit_stats":{"total_commits":849,"total_committers":25,"mean_commits":33.96,"dds":0.7467608951707891,"last_synced_commit":"d500c1fc2890edb0f8433b173c22bcc10394fd5c"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/TemoaProject/temoa","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TemoaProject%2Ftemoa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TemoaProject%2Ftemoa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TemoaProject%2Ftemoa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TemoaProject%2Ftemoa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TemoaProject","download_url":"https://codeload.github.com/TemoaProject/temoa/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TemoaProject%2Ftemoa/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32699302,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T08:33:17.875Z","status":"ssl_error","status_checked_at":"2026-05-06T08:33:17.221Z","response_time":117,"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":"TemoaProject","name":"An open source energy system model","uuid":"10479169","kind":"user","description":null,"email":"","website":"http://temoaproject.org","location":"Raleigh, NC","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/10479169?u=d02dfcc3f3ab7a2d8b7ba671b9e0ffd7511c786f\u0026v=4","repositories_count":5,"last_synced_at":"2024-06-11T15:59:18.499Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/TemoaProject","funding_links":[],"total_stars":129,"followers":56,"following":0,"created_at":"2022-11-10T23:58:08.410Z","updated_at":"2024-06-11T15:59:19.760Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TemoaProject","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TemoaProject/repositories"},"packages":[{"id":12672006,"name":"temoa","ecosystem":"pypi","description":"Tools for Energy Model Optimization and Analysis","homepage":"https://temoaproject.org","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/TemoaProject/temoa","keywords_array":[],"namespace":null,"versions_count":13,"first_release_published_at":"2026-01-07T19:54:18.000Z","latest_release_published_at":"2026-04-13T14:15:50.000Z","latest_release_number":"4.0.0","last_synced_at":"2026-05-06T15:13:41.899Z","created_at":"2026-01-10T20:11:05.728Z","updated_at":"2026-05-06T15:39:08.486Z","registry_url":"https://pypi.org/project/temoa/","install_command":"pip install temoa --index-url https://pypi.org/simple","documentation_url":"https://temoaproject.github.io/temoa","metadata":{"funding":null,"documentation":"https://temoaproject.github.io/temoa","classifiers":[],"normalized_name":"temoa","project_status":null},"repo_metadata":{"id":25632711,"uuid":"29068024","full_name":"TemoaProject/temoa","owner":"TemoaProject","description":"Tools for Energy Model Optimization and Analysis","archived":false,"fork":false,"pushed_at":"2026-04-28T03:25:39.000Z","size":45941,"stargazers_count":104,"open_issues_count":2,"forks_count":65,"subscribers_count":14,"default_branch":"main","last_synced_at":"2026-04-30T12:05:05.668Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://docs.temoaproject.org/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"hunteke/temoa","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TemoaProject.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","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":"2015-01-10T19:22:06.000Z","updated_at":"2026-04-28T18:21:31.000Z","dependencies_parsed_at":"2026-02-20T02:03:47.030Z","dependency_job_id":null,"html_url":"https://github.com/TemoaProject/temoa","commit_stats":{"total_commits":849,"total_committers":25,"mean_commits":33.96,"dds":0.7467608951707891,"last_synced_commit":"d500c1fc2890edb0f8433b173c22bcc10394fd5c"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/TemoaProject/temoa","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TemoaProject%2Ftemoa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TemoaProject%2Ftemoa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TemoaProject%2Ftemoa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TemoaProject%2Ftemoa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TemoaProject","download_url":"https://codeload.github.com/TemoaProject/temoa/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TemoaProject%2Ftemoa/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32699302,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T08:33:17.875Z","status":"ssl_error","status_checked_at":"2026-05-06T08:33:17.221Z","response_time":117,"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_record":{"login":"TemoaProject","name":"An open source energy system model","uuid":"10479169","kind":"user","description":null,"email":"","website":"http://temoaproject.org","location":"Raleigh, NC","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/10479169?u=d02dfcc3f3ab7a2d8b7ba671b9e0ffd7511c786f\u0026v=4","repositories_count":5,"last_synced_at":"2024-06-11T15:59:18.499Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/TemoaProject","funding_links":[],"total_stars":129,"followers":56,"following":0,"created_at":"2022-11-10T23:58:08.410Z","updated_at":"2024-06-11T15:59:19.760Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TemoaProject","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TemoaProject/repositories"},"tags":[]},"repo_metadata_updated_at":"2026-05-06T15:39:08.485Z","dependent_packages_count":0,"downloads":562,"downloads_period":"last-month","dependent_repos_count":0,"rankings":{"downloads":18.223507503450044,"dependent_repos_count":44.289547737052864,"dependent_packages_count":7.833515199535896,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":23.448856813346268},"purl":"pkg:pypi/temoa","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/temoa","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/temoa","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/temoa/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-04-30T12:02:52.303Z","issues_count":23,"pull_requests_count":248,"avg_time_to_close_issue":39373175.722222224,"avg_time_to_close_pull_request":2216563.3670212766,"issues_closed_count":18,"pull_requests_closed_count":188,"pull_request_authors_count":20,"issue_authors_count":14,"avg_comments_per_issue":2.130434782608696,"avg_comments_per_pull_request":0.6854838709677419,"merged_pull_requests_count":153,"bot_issues_count":1,"bot_pull_requests_count":5,"past_year_issues_count":7,"past_year_pull_requests_count":140,"past_year_avg_time_to_close_issue":4122169.0,"past_year_avg_time_to_close_pull_request":878775.8181818182,"past_year_issues_closed_count":3,"past_year_pull_requests_closed_count":88,"past_year_pull_request_authors_count":9,"past_year_issue_authors_count":4,"past_year_avg_comments_per_issue":3.142857142857143,"past_year_avg_comments_per_pull_request":0.9928571428571429,"past_year_bot_issues_count":1,"past_year_bot_pull_requests_count":5,"past_year_merged_pull_requests_count":82,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/TemoaProject%2Ftemoa/issues","maintainers":[{"login":"ParticularlyPythonicBS","count":40,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ParticularlyPythonicBS"},{"login":"SutubraResearch","count":29,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/SutubraResearch"},{"login":"idelder","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/idelder"},{"login":"jdecarolis","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jdecarolis"},{"login":"TemoaProject","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/TemoaProject"},{"login":"iankurgarg","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/iankurgarg"}],"active_maintainers":[{"login":"ParticularlyPythonicBS","count":40,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ParticularlyPythonicBS"},{"login":"SutubraResearch","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/SutubraResearch"},{"login":"idelder","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/idelder"},{"login":"jdecarolis","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jdecarolis"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/temoa/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/temoa/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/temoa/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/temoa/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/temoa/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/temoa/codemeta","maintainers":[{"uuid":"particularlypythonicbs","login":"particularlypythonicbs","name":null,"email":null,"url":null,"packages_count":3,"html_url":"https://pypi.org/user/particularlypythonicbs/","role":"Maintainer","created_at":"2026-04-01T22:03:08.333Z","updated_at":"2026-04-01T22:03:08.333Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/particularlypythonicbs/packages"},{"uuid":"jfdecarolis","login":"jfdecarolis","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://pypi.org/user/jfdecarolis/","role":"Owner","created_at":"2026-02-20T02:01:57.748Z","updated_at":"2026-02-20T02:01:57.748Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/jfdecarolis/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":860642,"maintainers_count":367603,"namespaces_count":0,"keywords_count":271316,"github":"pypi","metadata":{"funded_packages_count":53172},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2026-04-09T05:08:03.587Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}},{"id":4148548,"name":"github.com/temoaproject/temoa","ecosystem":"go","description":"","homepage":null,"licenses":"gpl-2.0","normalized_licenses":["GPL-2.0"],"repository_url":"https://github.com/temoaproject/temoa","keywords_array":[],"namespace":"github.com/temoaproject","versions_count":9,"first_release_published_at":"2018-01-09T03:07:05.000Z","latest_release_published_at":"2026-04-13T14:13:37.000Z","latest_release_number":"v4.0.0+incompatible","last_synced_at":"2026-05-06T15:13:42.758Z","created_at":"2022-04-12T16:55:25.110Z","updated_at":"2026-05-06T15:13:42.758Z","registry_url":"https://pkg.go.dev/github.com/temoaproject/temoa","install_command":"go get github.com/temoaproject/temoa","documentation_url":"https://pkg.go.dev/github.com/temoaproject/temoa#section-documentation","metadata":{},"repo_metadata":{"id":25632711,"uuid":"29068024","full_name":"TemoaProject/temoa","owner":"TemoaProject","description":"Tools for Energy Model Optimization and Analysis","archived":false,"fork":false,"pushed_at":"2025-10-15T14:42:52.000Z","size":57385,"stargazers_count":92,"open_issues_count":3,"forks_count":61,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-10-16T01:10:13.083Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://temoacloud.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"hunteke/temoa","license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TemoaProject.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","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":"2015-01-10T19:22:06.000Z","updated_at":"2025-10-13T13:35:29.000Z","dependencies_parsed_at":"2023-09-21T19:15:12.660Z","dependency_job_id":"3ecb33c9-b3ed-46ab-93ca-a6c90ba073cc","html_url":"https://github.com/TemoaProject/temoa","commit_stats":{"total_commits":849,"total_committers":25,"mean_commits":33.96,"dds":0.7467608951707891,"last_synced_commit":"d500c1fc2890edb0f8433b173c22bcc10394fd5c"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/TemoaProject/temoa","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TemoaProject%2Ftemoa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TemoaProject%2Ftemoa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TemoaProject%2Ftemoa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TemoaProject%2Ftemoa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TemoaProject","download_url":"https://codeload.github.com/TemoaProject/temoa/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TemoaProject%2Ftemoa/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279420992,"owners_count":26167181,"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-10-17T02:00:07.504Z","response_time":56,"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":"TemoaProject","name":"An open source energy system model","uuid":"10479169","kind":"user","description":null,"email":"","website":"http://temoaproject.org","location":"Raleigh, NC","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/10479169?u=d02dfcc3f3ab7a2d8b7ba671b9e0ffd7511c786f\u0026v=4","repositories_count":5,"last_synced_at":"2024-06-11T15:59:18.499Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/TemoaProject","funding_links":[],"total_stars":129,"followers":56,"following":0,"created_at":"2022-11-10T23:58:08.410Z","updated_at":"2024-06-11T15:59:19.760Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TemoaProject","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TemoaProject/repositories"},"tags":[]},"repo_metadata_updated_at":"2025-11-07T23:09:52.374Z","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/temoaproject/temoa","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/temoaproject/temoa","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/temoaproject/temoa","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/temoaproject/temoa/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-10-17T21:00:19.528Z","issues_count":18,"pull_requests_count":194,"avg_time_to_close_issue":43522222.9375,"avg_time_to_close_pull_request":2544001.8051948054,"issues_closed_count":16,"pull_requests_closed_count":154,"pull_request_authors_count":15,"issue_authors_count":12,"avg_comments_per_issue":1.5555555555555556,"avg_comments_per_pull_request":0.4639175257731959,"merged_pull_requests_count":125,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":3,"past_year_pull_requests_count":98,"past_year_avg_time_to_close_issue":4911.0,"past_year_avg_time_to_close_pull_request":1629446.375,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":64,"past_year_pull_request_authors_count":4,"past_year_issue_authors_count":3,"past_year_avg_comments_per_issue":0.3333333333333333,"past_year_avg_comments_per_pull_request":0.6632653061224489,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":62,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/TemoaProject%2Ftemoa/issues","maintainers":[{"login":"SutubraResearch","count":23,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/SutubraResearch"},{"login":"ParticularlyPythonicBS","count":15,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ParticularlyPythonicBS"},{"login":"TemoaProject","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/TemoaProject"},{"login":"iankurgarg","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/iankurgarg"}],"active_maintainers":[{"login":"ParticularlyPythonicBS","count":15,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ParticularlyPythonicBS"},{"login":"SutubraResearch","count":7,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/SutubraResearch"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Ftemoaproject%2Ftemoa/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Ftemoaproject%2Ftemoa/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Ftemoaproject%2Ftemoa/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Ftemoaproject%2Ftemoa/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Ftemoaproject%2Ftemoa/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Ftemoaproject%2Ftemoa/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2132762,"maintainers_count":0,"namespaces_count":782439,"keywords_count":112823,"github":"golang","metadata":{"funded_packages_count":53495},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-04-19T05:14:45.920Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}}],"commits":{"id":1253986,"full_name":"TemoaProject/temoa","default_branch":"main","total_commits":1901,"total_committers":32,"total_bot_commits":4,"total_bot_committers":1,"mean_commits":59.40625,"dds":0.8022093634928985,"past_year_total_commits":595,"past_year_total_committers":7,"past_year_total_bot_commits":4,"past_year_total_bot_committers":1,"past_year_mean_commits":85.0,"past_year_dds":0.5109243697478991,"last_synced_at":"2026-05-12T10:13:07.150Z","last_synced_commit":"b1b1bbe2a34e679f63be60036e0f772bd0987958","created_at":"2023-03-27T10:49:36.191Z","updated_at":"2026-05-12T10:12:46.677Z","committers":[{"name":"Jeff H","email":"jeff@westernspark.us","login":"jeff-ws","count":376},{"name":"Davey Elder","email":"iandavidelder@gmail.com","login":"idelder","count":297},{"name":"ParticularlyPythonicBS","email":"anil@anilr.dev","login":"ParticularlyPythonicBS","count":270},{"name":"Kevin Hunter","email":"hunteke@earlham.edu","login":null,"count":215},{"name":"jdecarolis","email":"jdecarolis@gmail.com","login":"jdecarolis","count":202},{"name":"kevin","email":"kevin@3acdfd15-2c5e-48eb-ba72-2386a29e86c2","login":null,"count":144},{"name":"Aranya Venkatesh","email":"40495316+aranyavenkatesh","login":"aranyavenkatesh","count":82},{"name":"Cameron Wade","email":"cameron@sutubra.ca","login":"SutubraResearch","count":80},{"name":"binghui89","email":"bli6@ncsu.edu","login":"binghui89","count":40},{"name":"Ankur Garg","email":"contactankurgarg@gmail.com","login":"iankurgarg","count":37},{"name":"spkanung","email":"suyashkanungo@gmail.com","login":"spkanung","count":35},{"name":"Hadi Eshraghi","email":"heshrag@ncsu.edu","login":"hadieshraghi","count":31},{"name":"Hadi Eshraghi","email":"EnergyMan@Hadis-MacBook-Pro-2.local","login":null,"count":28},{"name":"Joseph Decarolis","email":"jdecarolis@l-jfdecaro-1.local","login":null,"count":8},{"name":"An open source energy system model","email":"jdecarolis@ncsu.edu","login":"TemoaProject","count":7},{"name":"Katie Jordan","email":"55712134+kathjordan","login":"kathjordan","count":7},{"name":"spkanung","email":"spkanung@ncsu.edu","login":null,"count":6},{"name":"Davey Elder","email":"ian.elder@mail.utoronto.ca","login":null,"count":6},{"name":"Daniel Huppmann","email":"dh@dergelbesalon.at","login":"danielhuppmann","count":5},{"name":"pre-commit-ci[bot]","email":"66853113+pre-commit-ci[bot]","login":"pre-commit-ci[bot]","count":4},{"name":"Anderson Rodrigo de Queiroz","email":"arqueiroz@Andersons-MacBook-Pro.local","login":null,"count":4},{"name":"CANOE-main","email":"canoe.mainbranch@gmail.com","login":null,"count":3},{"name":"root","email":"contactankurgarg@mgmail.com","login":null,"count":2},{"name":"jdecarolis","email":"jdecarolis@3acdfd15-2c5e-48eb-ba72-2386a29e86c2","login":null,"count":2},{"name":"Suyash","email":"suyash@Samudras-iMac.local","login":null,"count":2},{"name":"Joseph Decarolis","email":"jdecarolis@l-jfdecaro-01.ce.ncsu.edu","login":null,"count":2},{"name":"mikeblackhurst","email":"156846042+mikeblackhurst","login":"mikeblackhurst","count":1},{"name":"A. Rodrigo de Queiroz","email":"ar_queiroz@Rodrigo-MacBook-Pro.local","login":null,"count":1},{"name":"Binghui Li","email":"bli@Binghuis-MacBook-Pro.local","login":null,"count":1},{"name":"Jeff Thomas","email":"jtthoma3@ccee-hpc.ce.ncsu.edu","login":null,"count":1},{"name":"tesadmin","email":"tesadmin@test.temoacloud.com","login":null,"count":1},{"name":"Yash Pal","email":"yash@samitsolutions.com","login":"yashsamit","count":1}],"past_year_committers":[{"name":"Davey Elder","email":"iandavidelder@gmail.com","login":"idelder","count":291},{"name":"ParticularlyPythonicBS","email":"anil@anilr.dev","login":"ParticularlyPythonicBS","count":270},{"name":"SutubraResearch","email":"cameron@sutubra.ca","login":"SutubraResearch","count":18},{"name":"Joe DeCarolis","email":"jdecarolis@gmail.com","login":"jdecarolis","count":10},{"name":"pre-commit-ci[bot]","email":"66853113+pre-commit-ci[bot]","login":"pre-commit-ci[bot]","count":4},{"name":"Jeff","email":"143133373+jeff-ws","login":"jeff-ws","count":1},{"name":"CANOE-main","email":"canoe.mainbranch@gmail.com","login":null,"count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/TemoaProject%2Ftemoa/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-12T00:00:09.062Z","repositories_count":6233285,"commits_count":894908122,"contributors_count":34900462,"owners_count":1151809,"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":"TemoaProject/temoa","html_url":"https://github.com/TemoaProject/temoa","last_synced_at":"2026-05-06T15:04:15.041Z","status":"error","issues_count":23,"pull_requests_count":248,"avg_time_to_close_issue":39373175.722222224,"avg_time_to_close_pull_request":2216563.3670212766,"issues_closed_count":18,"pull_requests_closed_count":188,"pull_request_authors_count":20,"issue_authors_count":14,"avg_comments_per_issue":2.130434782608696,"avg_comments_per_pull_request":0.6854838709677419,"merged_pull_requests_count":153,"bot_issues_count":1,"bot_pull_requests_count":5,"past_year_issues_count":7,"past_year_pull_requests_count":140,"past_year_avg_time_to_close_issue":4122169.0,"past_year_avg_time_to_close_pull_request":878775.8181818182,"past_year_issues_closed_count":3,"past_year_pull_requests_closed_count":88,"past_year_pull_request_authors_count":9,"past_year_issue_authors_count":4,"past_year_avg_comments_per_issue":3.142857142857143,"past_year_avg_comments_per_pull_request":0.9928571428571429,"past_year_bot_issues_count":1,"past_year_bot_pull_requests_count":5,"past_year_merged_pull_requests_count":82,"created_at":"2023-05-09T10:38:50.289Z","updated_at":"2026-05-06T15:04:15.041Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/TemoaProject%2Ftemoa","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/TemoaProject%2Ftemoa/issues","issue_labels_count":{"bug":1,"Maintenance":1},"pull_request_labels_count":{"Maintenance":15,"bugfix":8,"Feature":8,"docs":7,"refactor":5,"enhancement":5,"type-safety":4,"dependencies":3,"database-schema":3,"automated-pr":3,"Infra":2,"model_changes":2,"bug":1,"LICENSE":1},"issue_author_associations_count":{"NONE":14,"COLLABORATOR":5,"MEMBER":2,"OWNER":2},"pull_request_author_associations_count":{"NONE":170,"COLLABORATOR":42,"MEMBER":31,"CONTRIBUTOR":4,"OWNER":1},"issue_authors":{"idelder":3,"gschivley":3,"samgdotson":3,"TemoaProject":2,"ParticularlyPythonicBS":2,"SutubraResearch":2,"coderabbitai[bot]":1,"christiancodes":1,"Riccardo-sus":1,"EnergyModels":1,"DJDIAA":1,"AaronHolm":1,"codeyash":1,"jdecarolis":1},"pull_request_authors":{"idelder":82,"jeff-ws":63,"ParticularlyPythonicBS":43,"SutubraResearch":27,"kathjordan":5,"aranyavenkatesh":5,"jdecarolis":3,"matteo-nicoli":3,"github-actions[bot]":3,"pre-commit-ci[bot]":2,"PatwaUmang":2,"danielhuppmann":2,"kerodkibatu":1,"iankurgarg":1,"TemoaProject":1,"yashsamit":1,"samgdotson":1,"kathjordan17":1,"gschivley":1,"hadieshraghi":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-12T00:00:09.018Z","repositories_count":14586085,"issues_count":34346722,"pull_requests_count":112451771,"authors_count":11260090,"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":{"bug":1,"Maintenance":1},"past_year_pull_request_labels_count":{"Maintenance":15,"bugfix":8,"Feature":8,"docs":7,"enhancement":5,"refactor":5,"type-safety":4,"database-schema":3,"dependencies":3,"automated-pr":3,"model_changes":2,"Infra":2,"bug":1,"LICENSE":1},"past_year_issue_author_associations_count":{"COLLABORATOR":3,"MEMBER":2,"NONE":2},"past_year_pull_request_author_associations_count":{"NONE":83,"MEMBER":31,"COLLABORATOR":22,"CONTRIBUTOR":4},"past_year_issue_authors":{"idelder":3,"ParticularlyPythonicBS":2,"coderabbitai[bot]":1,"jdecarolis":1},"past_year_pull_request_authors":{"idelder":80,"ParticularlyPythonicBS":40,"SutubraResearch":8,"github-actions[bot]":3,"jdecarolis":3,"jeff-ws":2,"pre-commit-ci[bot]":2,"kathjordan17":1,"kerodkibatu":1},"maintainers":[{"login":"ParticularlyPythonicBS","count":40,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ParticularlyPythonicBS"},{"login":"SutubraResearch","count":29,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/SutubraResearch"},{"login":"idelder","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/idelder"},{"login":"jdecarolis","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jdecarolis"},{"login":"TemoaProject","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/TemoaProject"},{"login":"iankurgarg","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/iankurgarg"}],"active_maintainers":[{"login":"ParticularlyPythonicBS","count":40,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ParticularlyPythonicBS"},{"login":"SutubraResearch","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/SutubraResearch"},{"login":"idelder","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/idelder"},{"login":"jdecarolis","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jdecarolis"}]},"events":{"total":{"ReleaseEvent":1,"DeleteEvent":56,"MemberEvent":1,"PullRequestEvent":181,"ForkEvent":8,"IssuesEvent":27,"WatchEvent":16,"IssueCommentEvent":87,"PushEvent":274,"PullRequestReviewEvent":203,"PullRequestReviewCommentEvent":400,"CreateEvent":54},"last_year":{"DeleteEvent":56,"MemberEvent":1,"PullRequestEvent":172,"ForkEvent":6,"IssuesEvent":26,"WatchEvent":9,"IssueCommentEvent":84,"PushEvent":270,"PullRequestReviewEvent":203,"PullRequestReviewCommentEvent":400,"CreateEvent":52}},"keywords":[],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/deploy-nightly.yml","sha":null,"kind":"manifest","created_at":"2026-02-20T02:02:03.216Z","updated_at":"2026-02-20T02:02:03.216Z","repository_link":"https://github.com/TemoaProject/temoa/blob/main/.github/workflows/deploy-nightly.yml","dependencies":[]},{"ecosystem":"conda","filepath":"environment.yml","sha":null,"kind":"manifest","created_at":"2026-02-20T02:02:03.313Z","updated_at":"2026-02-20T02:02:03.313Z","repository_link":"https://github.com/TemoaProject/temoa/blob/main/environment.yml","dependencies":[{"id":25822158319,"package_name":"python","ecosystem":"conda","requirements":"3.12","direct":true,"kind":"runtime","optional":false},{"id":25822158320,"package_name":"pyomo","ecosystem":"conda","requirements":"6.7","direct":true,"kind":"runtime","optional":false},{"id":25822158321,"package_name":"xlwt","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158384,"package_name":"ipython","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158395,"package_name":"matplotlib","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158400,"package_name":"pandas","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158405,"package_name":"numpy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158408,"package_name":"scipy","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158410,"package_name":"joblib","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158411,"package_name":"salib","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158412,"package_name":"pydoe","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158413,"package_name":"pyutilib","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158415,"package_name":"python-graphviz","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158417,"package_name":"ipykernel","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158423,"package_name":"jupyter","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158424,"package_name":"jupyter_contrib_nbextensions","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158425,"package_name":"seaborn","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158426,"package_name":"tabulate","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158428,"package_name":"xlsxwriter","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158429,"package_name":"plotly","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158438,"package_name":"pyam","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158440,"package_name":"pytest","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158441,"package_name":"deprecated","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158442,"package_name":"openpyxl","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158444,"package_name":"networkx","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158445,"package_name":"gravis","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158449,"package_name":"gurobi","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158456,"package_name":"sphinx","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158457,"package_name":"sphinx_rtd_theme","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158458,"package_name":"sphinxcontrib-htmlhelp","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158459,"package_name":"sphinxcontrib-serializinghtml","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false},{"id":25822158460,"package_name":"sphinxcontrib-bibtex","ecosystem":"conda","requirements":"","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2026-02-20T02:03:19.661Z","updated_at":"2026-02-20T02:03:19.661Z","repository_link":"https://github.com/TemoaProject/temoa/blob/main/pyproject.toml","dependencies":[]},{"ecosystem":"pypi","filepath":"requirements.in","sha":null,"kind":"manifest","created_at":"2026-02-20T02:03:30.828Z","updated_at":"2026-02-20T02:03:30.828Z","repository_link":"https://github.com/TemoaProject/temoa/blob/main/requirements.in","dependencies":[{"id":25822163831,"package_name":"pyomo","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822163846,"package_name":"ipython","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822163847,"package_name":"matplotlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822163848,"package_name":"pandas","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822163849,"package_name":"numpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822163850,"package_name":"joblib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822163851,"package_name":"salib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822163863,"package_name":"pydoe","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822163890,"package_name":"pyutilib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822163905,"package_name":"graphviz","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822163929,"package_name":"ipykernel","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822163934,"package_name":"jupyter","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822163935,"package_name":"jupyter_contrib_nbextensions","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822163960,"package_name":"seaborn","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822163964,"package_name":"tabulate","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822163987,"package_name":"xlsxwriter","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822163999,"package_name":"plotly","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822164000,"package_name":"pyam-iamc","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822164044,"package_name":"sphinx","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822164045,"package_name":"sphinx-rtd-theme","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822164091,"package_name":"sphinxcontrib-htmlhelp","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822164092,"package_name":"sphinxcontrib-serializinghtml","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822164093,"package_name":"sphinxcontrib-bibtex","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822164105,"package_name":"pytest","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822164106,"package_name":"Deprecated","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822164165,"package_name":"openpyxl","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822164182,"package_name":"networkx","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822164183,"package_name":"gravis","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822164184,"package_name":"highspy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822164281,"package_name":"scipy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25822164302,"package_name":"gurobipy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"requirements.txt","sha":null,"kind":"lockfile","created_at":"2026-02-20T02:03:34.936Z","updated_at":"2026-02-20T02:03:34.936Z","repository_link":"https://github.com/TemoaProject/temoa/blob/main/requirements.txt","dependencies":[{"id":25822164572,"package_name":"flexcache","ecosystem":"pypi","requirements":"==0.3","direct":false,"kind":"runtime","optional":false},{"id":25822164574,"package_name":"flexparser","ecosystem":"pypi","requirements":"==0.3.1","direct":false,"kind":"runtime","optional":false},{"id":25822164584,"package_name":"fonttools","ecosystem":"pypi","requirements":"==4.53.1","direct":false,"kind":"runtime","optional":false},{"id":25822164586,"package_name":"fqdn","ecosystem":"pypi","requirements":"==1.5.1","direct":false,"kind":"runtime","optional":false},{"id":25822164587,"package_name":"graphviz","ecosystem":"pypi","requirements":"==0.20.3","direct":false,"kind":"runtime","optional":false},{"id":25822164588,"package_name":"gravis","ecosystem":"pypi","requirements":"==0.1.0","direct":false,"kind":"runtime","optional":false},{"id":25822164589,"package_name":"gurobipy","ecosystem":"pypi","requirements":"==11.0.3","direct":false,"kind":"runtime","optional":false},{"id":25822164590,"package_name":"h11","ecosystem":"pypi","requirements":"==0.14.0","direct":false,"kind":"runtime","optional":false},{"id":25822164591,"package_name":"h2","ecosystem":"pypi","requirements":"==4.1.0","direct":false,"kind":"runtime","optional":false},{"id":25822164619,"package_name":"highspy","ecosystem":"pypi","requirements":"==1.7.2","direct":false,"kind":"runtime","optional":false},{"id":25822164620,"package_name":"hpack","ecosystem":"pypi","requirements":"==4.0.0","direct":false,"kind":"runtime","optional":false},{"id":25822164642,"package_name":"httpcore","ecosystem":"pypi","requirements":"==1.0.5","direct":false,"kind":"runtime","optional":false},{"id":25822164643,"package_name":"httpx","ecosystem":"pypi","requirements":"==0.27.2","direct":false,"kind":"runtime","optional":false},{"id":25822164644,"package_name":"hyperframe","ecosystem":"pypi","requirements":"==6.0.1","direct":false,"kind":"runtime","optional":false},{"id":25822164645,"package_name":"iam-units","ecosystem":"pypi","requirements":"==2023.9.12","direct":false,"kind":"runtime","optional":false},{"id":25822164646,"package_name":"idna","ecosystem":"pypi","requirements":"==3.8","direct":false,"kind":"runtime","optional":false},{"id":25822164647,"package_name":"imagesize","ecosystem":"pypi","requirements":"==1.4.1","direct":false,"kind":"runtime","optional":false},{"id":25822164648,"package_name":"iniconfig","ecosystem":"pypi","requirements":"==2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25822164649,"package_name":"ipykernel","ecosystem":"pypi","requirements":"==6.29.5","direct":false,"kind":"runtime","optional":false},{"id":25822164650,"package_name":"ipython","ecosystem":"pypi","requirements":"==8.26.0","direct":false,"kind":"runtime","optional":false},{"id":25822164651,"package_name":"ipython-genutils","ecosystem":"pypi","requirements":"==0.2.0","direct":false,"kind":"runtime","optional":false},{"id":25822164694,"package_name":"ipywidgets","ecosystem":"pypi","requirements":"==8.1.5","direct":false,"kind":"runtime","optional":false},{"id":25822164695,"package_name":"isoduration","ecosystem":"pypi","requirements":"==20.11.0","direct":false,"kind":"runtime","optional":false},{"id":25822164698,"package_name":"ixmp4","ecosystem":"pypi","requirements":"==0.9.2","direct":false,"kind":"runtime","optional":false},{"id":25822164699,"package_name":"jedi","ecosystem":"pypi","requirements":"==0.19.1","direct":false,"kind":"runtime","optional":false},{"id":25822164709,"package_name":"jinja2","ecosystem":"pypi","requirements":"==3.1.4","direct":false,"kind":"runtime","optional":false},{"id":25822164710,"package_name":"joblib","ecosystem":"pypi","requirements":"==1.4.2","direct":false,"kind":"runtime","optional":false},{"id":25822164711,"package_name":"json5","ecosystem":"pypi","requirements":"==0.9.25","direct":false,"kind":"runtime","optional":false},{"id":25822164712,"package_name":"jsonpointer","ecosystem":"pypi","requirements":"==3.0.0","direct":false,"kind":"runtime","optional":false},{"id":25822164713,"package_name":"jsonschema","ecosystem":"pypi","requirements":"==4.23.0","direct":false,"kind":"runtime","optional":false},{"id":25822164714,"package_name":"jsonschema-specifications","ecosystem":"pypi","requirements":"==2023.12.1","direct":false,"kind":"runtime","optional":false},{"id":25822164715,"package_name":"jupyter","ecosystem":"pypi","requirements":"==1.1.0","direct":false,"kind":"runtime","optional":false},{"id":25822164716,"package_name":"jupyter-client","ecosystem":"pypi","requirements":"==8.6.2","direct":false,"kind":"runtime","optional":false},{"id":25822164724,"package_name":"jupyter-console","ecosystem":"pypi","requirements":"==6.6.3","direct":false,"kind":"runtime","optional":false},{"id":25822164732,"package_name":"jupyter-contrib-core","ecosystem":"pypi","requirements":"==0.4.2","direct":false,"kind":"runtime","optional":false},{"id":25822164745,"package_name":"jupyter-contrib-nbextensions","ecosystem":"pypi","requirements":"==0.7.0","direct":false,"kind":"runtime","optional":false},{"id":25822164763,"package_name":"jupyter-core","ecosystem":"pypi","requirements":"==5.7.2","direct":false,"kind":"runtime","optional":false},{"id":25822164797,"package_name":"jupyter-events","ecosystem":"pypi","requirements":"==0.10.0","direct":false,"kind":"runtime","optional":false},{"id":25822164819,"package_name":"jupyter-highlight-selected-word","ecosystem":"pypi","requirements":"==0.2.0","direct":false,"kind":"runtime","optional":false},{"id":25822164834,"package_name":"jupyter-lsp","ecosystem":"pypi","requirements":"==2.2.5","direct":false,"kind":"runtime","optional":false},{"id":25822164847,"package_name":"jupyter-nbextensions-configurator","ecosystem":"pypi","requirements":"==0.6.4","direct":false,"kind":"runtime","optional":false},{"id":25822164855,"package_name":"jupyter-server","ecosystem":"pypi","requirements":"==2.14.2","direct":false,"kind":"runtime","optional":false},{"id":25822164343,"package_name":"alabaster","ecosystem":"pypi","requirements":"==0.7.16","direct":false,"kind":"runtime","optional":false},{"id":25822164344,"package_name":"alembic","ecosystem":"pypi","requirements":"==1.13.2","direct":false,"kind":"runtime","optional":false},{"id":25822164345,"package_name":"annotated-types","ecosystem":"pypi","requirements":"==0.7.0","direct":false,"kind":"runtime","optional":false},{"id":25822164346,"package_name":"anyio","ecosystem":"pypi","requirements":"==4.4.0","direct":false,"kind":"runtime","optional":false},{"id":25822164347,"package_name":"appdirs","ecosystem":"pypi","requirements":"==1.4.4","direct":false,"kind":"runtime","optional":false},{"id":25822164352,"package_name":"appnope","ecosystem":"pypi","requirements":"==0.1.4","direct":false,"kind":"runtime","optional":false},{"id":25822164371,"package_name":"argon2-cffi","ecosystem":"pypi","requirements":"==23.1.0","direct":false,"kind":"runtime","optional":false},{"id":25822164372,"package_name":"argon2-cffi-bindings","ecosystem":"pypi","requirements":"==21.2.0","direct":false,"kind":"runtime","optional":false},{"id":25822164373,"package_name":"arrow","ecosystem":"pypi","requirements":"==1.3.0","direct":false,"kind":"runtime","optional":false},{"id":25822164405,"package_name":"asttokens","ecosystem":"pypi","requirements":"==2.4.1","direct":false,"kind":"runtime","optional":false},{"id":25822164430,"package_name":"async-lru","ecosystem":"pypi","requirements":"==2.0.4","direct":false,"kind":"runtime","optional":false},{"id":25822164432,"package_name":"attrs","ecosystem":"pypi","requirements":"==24.2.0","direct":false,"kind":"runtime","optional":false},{"id":25822164433,"package_name":"babel","ecosystem":"pypi","requirements":"==2.16.0","direct":false,"kind":"runtime","optional":false},{"id":25822164434,"package_name":"beautifulsoup4","ecosystem":"pypi","requirements":"==4.12.3","direct":false,"kind":"runtime","optional":false},{"id":25822164435,"package_name":"bleach","ecosystem":"pypi","requirements":"==6.1.0","direct":false,"kind":"runtime","optional":false},{"id":25822164462,"package_name":"certifi","ecosystem":"pypi","requirements":"==2024.8.30","direct":false,"kind":"runtime","optional":false},{"id":25822164463,"package_name":"cffi","ecosystem":"pypi","requirements":"==1.17.0","direct":false,"kind":"runtime","optional":false},{"id":25822164464,"package_name":"charset-normalizer","ecosystem":"pypi","requirements":"==3.3.2","direct":false,"kind":"runtime","optional":false},{"id":25822164465,"package_name":"click","ecosystem":"pypi","requirements":"==8.1.7","direct":false,"kind":"runtime","optional":false},{"id":25822164466,"package_name":"comm","ecosystem":"pypi","requirements":"==0.2.2","direct":false,"kind":"runtime","optional":false},{"id":25822164475,"package_name":"contourpy","ecosystem":"pypi","requirements":"==1.3.0","direct":false,"kind":"runtime","optional":false},{"id":25822164476,"package_name":"cycler","ecosystem":"pypi","requirements":"==0.12.1","direct":false,"kind":"runtime","optional":false},{"id":25822164477,"package_name":"debugpy","ecosystem":"pypi","requirements":"==1.8.5","direct":false,"kind":"runtime","optional":false},{"id":25822164502,"package_name":"decorator","ecosystem":"pypi","requirements":"==5.1.1","direct":false,"kind":"runtime","optional":false},{"id":25822164516,"package_name":"defusedxml","ecosystem":"pypi","requirements":"==0.7.1","direct":false,"kind":"runtime","optional":false},{"id":25822164517,"package_name":"deprecated","ecosystem":"pypi","requirements":"==1.2.14","direct":false,"kind":"runtime","optional":false},{"id":25822164518,"package_name":"dill","ecosystem":"pypi","requirements":"==0.3.8","direct":false,"kind":"runtime","optional":false},{"id":25822164519,"package_name":"docutils","ecosystem":"pypi","requirements":"==0.20.1","direct":false,"kind":"runtime","optional":false},{"id":25822164520,"package_name":"et-xmlfile","ecosystem":"pypi","requirements":"==1.1.0","direct":false,"kind":"runtime","optional":false},{"id":25822164521,"package_name":"executing","ecosystem":"pypi","requirements":"==2.0.1","direct":false,"kind":"runtime","optional":false},{"id":25822164538,"package_name":"fastapi","ecosystem":"pypi","requirements":"==0.112.2","direct":false,"kind":"runtime","optional":false},{"id":25822164539,"package_name":"fastjsonschema","ecosystem":"pypi","requirements":"==2.20.0","direct":false,"kind":"runtime","optional":false},{"id":25822164898,"package_name":"jupyterlab-pygments","ecosystem":"pypi","requirements":"==0.3.0","direct":false,"kind":"runtime","optional":false},{"id":25822164913,"package_name":"jupyterlab-server","ecosystem":"pypi","requirements":"==2.27.3","direct":false,"kind":"runtime","optional":false},{"id":25822164886,"package_name":"jupyter-server-terminals","ecosystem":"pypi","requirements":"==0.5.3","direct":false,"kind":"runtime","optional":false},{"id":25822164891,"package_name":"jupyterlab","ecosystem":"pypi","requirements":"==4.2.5","direct":false,"kind":"runtime","optional":false},{"id":25822165156,"package_name":"psycopg","ecosystem":"pypi","requirements":"==3.2.1","direct":false,"kind":"runtime","optional":false},{"id":25822165158,"package_name":"psycopg-binary","ecosystem":"pypi","requirements":"==3.2.1","direct":false,"kind":"runtime","optional":false},{"id":25822165164,"package_name":"ptyprocess","ecosystem":"pypi","requirements":"==0.7.0","direct":false,"kind":"runtime","optional":false},{"id":25822165166,"package_name":"pure-eval","ecosystem":"pypi","requirements":"==0.2.3","direct":false,"kind":"runtime","optional":false},{"id":25822165167,"package_name":"pyam-iamc","ecosystem":"pypi","requirements":"==2.2.4","direct":false,"kind":"runtime","optional":false},{"id":25822165168,"package_name":"pybtex","ecosystem":"pypi","requirements":"==0.24.0","direct":false,"kind":"runtime","optional":false},{"id":25822165174,"package_name":"pybtex-docutils","ecosystem":"pypi","requirements":"==1.0.3","direct":false,"kind":"runtime","optional":false},{"id":25822165183,"package_name":"pycparser","ecosystem":"pypi","requirements":"==2.22","direct":false,"kind":"runtime","optional":false},{"id":25822165184,"package_name":"pydantic","ecosystem":"pypi","requirements":"==2.8.2","direct":false,"kind":"runtime","optional":false},{"id":25822165185,"package_name":"pydantic-core","ecosystem":"pypi","requirements":"==2.20.1","direct":false,"kind":"runtime","optional":false},{"id":25822165186,"package_name":"pydantic-settings","ecosystem":"pypi","requirements":"==2.4.0","direct":false,"kind":"runtime","optional":false},{"id":25822165187,"package_name":"pydoe","ecosystem":"pypi","requirements":"==0.3.8","direct":false,"kind":"runtime","optional":false},{"id":25822165188,"package_name":"pygments","ecosystem":"pypi","requirements":"==2.18.0","direct":false,"kind":"runtime","optional":false},{"id":25822165189,"package_name":"pyjwt","ecosystem":"pypi","requirements":"==2.9.0","direct":false,"kind":"runtime","optional":false},{"id":25822165190,"package_name":"pyomo","ecosystem":"pypi","requirements":"==6.8.0","direct":false,"kind":"runtime","optional":false},{"id":25822165191,"package_name":"pyparsing","ecosystem":"pypi","requirements":"==3.1.4","direct":false,"kind":"runtime","optional":false},{"id":25822164943,"package_name":"jupyterlab-widgets","ecosystem":"pypi","requirements":"==3.0.13","direct":false,"kind":"runtime","optional":false},{"id":25822164987,"package_name":"kiwisolver","ecosystem":"pypi","requirements":"==1.4.5","direct":false,"kind":"runtime","optional":false},{"id":25822164988,"package_name":"latexcodec","ecosystem":"pypi","requirements":"==3.0.0","direct":false,"kind":"runtime","optional":false},{"id":25822165027,"package_name":"lxml","ecosystem":"pypi","requirements":"==5.3.0","direct":false,"kind":"runtime","optional":false},{"id":25822165028,"package_name":"mako","ecosystem":"pypi","requirements":"==1.3.5","direct":false,"kind":"runtime","optional":false},{"id":25822165029,"package_name":"markdown-it-py","ecosystem":"pypi","requirements":"==3.0.0","direct":false,"kind":"runtime","optional":false},{"id":25822165030,"package_name":"markupsafe","ecosystem":"pypi","requirements":"==2.1.5","direct":false,"kind":"runtime","optional":false},{"id":25822165031,"package_name":"matplotlib","ecosystem":"pypi","requirements":"==3.9.2","direct":false,"kind":"runtime","optional":false},{"id":25822165032,"package_name":"matplotlib-inline","ecosystem":"pypi","requirements":"==0.1.7","direct":false,"kind":"runtime","optional":false},{"id":25822165040,"package_name":"mdurl","ecosystem":"pypi","requirements":"==0.1.2","direct":false,"kind":"runtime","optional":false},{"id":25822165041,"package_name":"mistune","ecosystem":"pypi","requirements":"==3.0.2","direct":false,"kind":"runtime","optional":false},{"id":25822165042,"package_name":"multimethod","ecosystem":"pypi","requirements":"==1.10","direct":false,"kind":"runtime","optional":false},{"id":25822165066,"package_name":"multiprocess","ecosystem":"pypi","requirements":"==0.70.16","direct":false,"kind":"runtime","optional":false},{"id":25822165093,"package_name":"mypy","ecosystem":"pypi","requirements":"==1.11.2","direct":false,"kind":"runtime","optional":false},{"id":25822165094,"package_name":"mypy-extensions","ecosystem":"pypi","requirements":"==1.0.0","direct":false,"kind":"runtime","optional":false},{"id":25822165095,"package_name":"nbclient","ecosystem":"pypi","requirements":"==0.10.0","direct":false,"kind":"runtime","optional":false},{"id":25822165096,"package_name":"nbconvert","ecosystem":"pypi","requirements":"==7.16.4","direct":false,"kind":"runtime","optional":false},{"id":25822165116,"package_name":"nbformat","ecosystem":"pypi","requirements":"==5.10.4","direct":false,"kind":"runtime","optional":false},{"id":25822165123,"package_name":"nest-asyncio","ecosystem":"pypi","requirements":"==1.6.0","direct":false,"kind":"runtime","optional":false},{"id":25822165126,"package_name":"networkx","ecosystem":"pypi","requirements":"==3.3","direct":false,"kind":"runtime","optional":false},{"id":25822165128,"package_name":"nose","ecosystem":"pypi","requirements":"==1.3.7","direct":false,"kind":"runtime","optional":false},{"id":25822165129,"package_name":"notebook","ecosystem":"pypi","requirements":"==7.2.2","direct":false,"kind":"runtime","optional":false},{"id":25822165135,"package_name":"notebook-shim","ecosystem":"pypi","requirements":"==0.2.4","direct":false,"kind":"runtime","optional":false},{"id":25822165137,"package_name":"numpy","ecosystem":"pypi","requirements":"==2.1.0","direct":false,"kind":"runtime","optional":false},{"id":25822165138,"package_name":"openpyxl","ecosystem":"pypi","requirements":"==3.1.5","direct":false,"kind":"runtime","optional":false},{"id":25822165139,"package_name":"overrides","ecosystem":"pypi","requirements":"==7.7.0","direct":false,"kind":"runtime","optional":false},{"id":25822165140,"package_name":"packaging","ecosystem":"pypi","requirements":"==24.1","direct":false,"kind":"runtime","optional":false},{"id":25822165141,"package_name":"pandas","ecosystem":"pypi","requirements":"==2.2.2","direct":false,"kind":"runtime","optional":false},{"id":25822165142,"package_name":"pandera","ecosystem":"pypi","requirements":"==0.20.3","direct":false,"kind":"runtime","optional":false},{"id":25822165143,"package_name":"pandocfilters","ecosystem":"pypi","requirements":"==1.5.1","direct":false,"kind":"runtime","optional":false},{"id":25822165144,"package_name":"parso","ecosystem":"pypi","requirements":"==0.8.4","direct":false,"kind":"runtime","optional":false},{"id":25822165145,"package_name":"pexpect","ecosystem":"pypi","requirements":"==4.9.0","direct":false,"kind":"runtime","optional":false},{"id":25822165146,"package_name":"pillow","ecosystem":"pypi","requirements":"==10.4.0","direct":false,"kind":"runtime","optional":false},{"id":25822165147,"package_name":"pint","ecosystem":"pypi","requirements":"==0.24.3","direct":false,"kind":"runtime","optional":false},{"id":25822165148,"package_name":"platformdirs","ecosystem":"pypi","requirements":"==4.2.2","direct":false,"kind":"runtime","optional":false},{"id":25822165149,"package_name":"plotly","ecosystem":"pypi","requirements":"==5.24.0","direct":false,"kind":"runtime","optional":false},{"id":25822165150,"package_name":"pluggy","ecosystem":"pypi","requirements":"==1.5.0","direct":false,"kind":"runtime","optional":false},{"id":25822165151,"package_name":"ply","ecosystem":"pypi","requirements":"==3.11","direct":false,"kind":"runtime","optional":false},{"id":25822165152,"package_name":"prometheus-client","ecosystem":"pypi","requirements":"==0.20.0","direct":false,"kind":"runtime","optional":false},{"id":25822165154,"package_name":"prompt-toolkit","ecosystem":"pypi","requirements":"==3.0.47","direct":false,"kind":"runtime","optional":false},{"id":25822165155,"package_name":"psutil","ecosystem":"pypi","requirements":"==6.0.0","direct":false,"kind":"runtime","optional":false},{"id":25822165258,"package_name":"shellingham","ecosystem":"pypi","requirements":"==1.5.4","direct":false,"kind":"runtime","optional":false},{"id":25822165259,"package_name":"six","ecosystem":"pypi","requirements":"==1.16.0","direct":false,"kind":"runtime","optional":false},{"id":25822165260,"package_name":"sniffio","ecosystem":"pypi","requirements":"==1.3.1","direct":false,"kind":"runtime","optional":false},{"id":25822165261,"package_name":"snowballstemmer","ecosystem":"pypi","requirements":"==2.2.0","direct":false,"kind":"runtime","optional":false},{"id":25822165262,"package_name":"soupsieve","ecosystem":"pypi","requirements":"==2.6","direct":false,"kind":"runtime","optional":false},{"id":25822165263,"package_name":"sphinx","ecosystem":"pypi","requirements":"==7.4.7","direct":false,"kind":"runtime","optional":false},{"id":25822165264,"package_name":"sphinx-rtd-theme","ecosystem":"pypi","requirements":"==2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25822165265,"package_name":"sphinxcontrib-applehelp","ecosystem":"pypi","requirements":"==2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25822165266,"package_name":"sphinxcontrib-bibtex","ecosystem":"pypi","requirements":"==2.6.2","direct":false,"kind":"runtime","optional":false},{"id":25822165267,"package_name":"sphinxcontrib-devhelp","ecosystem":"pypi","requirements":"==2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25822165268,"package_name":"sphinxcontrib-htmlhelp","ecosystem":"pypi","requirements":"==2.1.0","direct":false,"kind":"runtime","optional":false},{"id":25822165269,"package_name":"sphinxcontrib-jquery","ecosystem":"pypi","requirements":"==4.1","direct":false,"kind":"runtime","optional":false},{"id":25822165276,"package_name":"sphinxcontrib-jsmath","ecosystem":"pypi","requirements":"==1.0.1","direct":false,"kind":"runtime","optional":false},{"id":25822165277,"package_name":"sphinxcontrib-qthelp","ecosystem":"pypi","requirements":"==2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25822165278,"package_name":"sphinxcontrib-serializinghtml","ecosystem":"pypi","requirements":"==2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25822165279,"package_name":"sqlalchemy","ecosystem":"pypi","requirements":"==2.0.32","direct":false,"kind":"runtime","optional":false},{"id":25822165280,"package_name":"sqlalchemy-utils","ecosystem":"pypi","requirements":"==0.41.2","direct":false,"kind":"runtime","optional":false},{"id":25822165195,"package_name":"pytest","ecosystem":"pypi","requirements":"==8.3.2","direct":false,"kind":"runtime","optional":false},{"id":25822165198,"package_name":"python-dateutil","ecosystem":"pypi","requirements":"==2.9.0.post0","direct":false,"kind":"runtime","optional":false},{"id":25822165199,"package_name":"python-dotenv","ecosystem":"pypi","requirements":"==1.0.1","direct":false,"kind":"runtime","optional":false},{"id":25822165200,"package_name":"python-json-logger","ecosystem":"pypi","requirements":"==2.0.7","direct":false,"kind":"runtime","optional":false},{"id":25822165206,"package_name":"pytz","ecosystem":"pypi","requirements":"==2024.1","direct":false,"kind":"runtime","optional":false},{"id":25822165207,"package_name":"pyutilib","ecosystem":"pypi","requirements":"==6.0.0","direct":false,"kind":"runtime","optional":false},{"id":25822165208,"package_name":"pyyaml","ecosystem":"pypi","requirements":"==6.0.2","direct":false,"kind":"runtime","optional":false},{"id":25822165209,"package_name":"pyzmq","ecosystem":"pypi","requirements":"==26.2.0","direct":false,"kind":"runtime","optional":false},{"id":25822165210,"package_name":"referencing","ecosystem":"pypi","requirements":"==0.35.1","direct":false,"kind":"runtime","optional":false},{"id":25822165211,"package_name":"requests","ecosystem":"pypi","requirements":"==2.32.3","direct":false,"kind":"runtime","optional":false},{"id":25822165212,"package_name":"rfc3339-validator","ecosystem":"pypi","requirements":"==0.1.4","direct":false,"kind":"runtime","optional":false},{"id":25822165217,"package_name":"rfc3986-validator","ecosystem":"pypi","requirements":"==0.1.1","direct":false,"kind":"runtime","optional":false},{"id":25822165219,"package_name":"rich","ecosystem":"pypi","requirements":"==13.8.0","direct":false,"kind":"runtime","optional":false},{"id":25822165220,"package_name":"rpds-py","ecosystem":"pypi","requirements":"==0.20.0","direct":false,"kind":"runtime","optional":false},{"id":25822165221,"package_name":"salib","ecosystem":"pypi","requirements":"==1.5.1","direct":false,"kind":"runtime","optional":false},{"id":25822165222,"package_name":"scipy","ecosystem":"pypi","requirements":"==1.14.1","direct":false,"kind":"runtime","optional":false},{"id":25822165223,"package_name":"seaborn","ecosystem":"pypi","requirements":"==0.13.2","direct":false,"kind":"runtime","optional":false},{"id":25822165224,"package_name":"send2trash","ecosystem":"pypi","requirements":"==1.8.3","direct":false,"kind":"runtime","optional":false},{"id":25822165296,"package_name":"stack-data","ecosystem":"pypi","requirements":"==0.6.3","direct":false,"kind":"runtime","optional":false},{"id":25822165306,"package_name":"starlette","ecosystem":"pypi","requirements":"==0.38.2","direct":false,"kind":"runtime","optional":false},{"id":25822165309,"package_name":"tabulate","ecosystem":"pypi","requirements":"==0.9.0","direct":false,"kind":"runtime","optional":false},{"id":25822165310,"package_name":"tenacity","ecosystem":"pypi","requirements":"==9.0.0","direct":false,"kind":"runtime","optional":false},{"id":25822165311,"package_name":"terminado","ecosystem":"pypi","requirements":"==0.18.1","direct":false,"kind":"runtime","optional":false},{"id":25822165312,"package_name":"tinycss2","ecosystem":"pypi","requirements":"==1.3.0","direct":false,"kind":"runtime","optional":false},{"id":25822165329,"package_name":"toml","ecosystem":"pypi","requirements":"==0.10.2","direct":false,"kind":"runtime","optional":false},{"id":25822165331,"package_name":"tornado","ecosystem":"pypi","requirements":"==6.4.1","direct":false,"kind":"runtime","optional":false},{"id":25822165334,"package_name":"traitlets","ecosystem":"pypi","requirements":"==5.14.3","direct":false,"kind":"runtime","optional":false},{"id":25822165335,"package_name":"typeguard","ecosystem":"pypi","requirements":"==4.3.0","direct":false,"kind":"runtime","optional":false},{"id":25822165336,"package_name":"typer","ecosystem":"pypi","requirements":"==0.12.5","direct":false,"kind":"runtime","optional":false},{"id":25822165337,"package_name":"types-python-dateutil","ecosystem":"pypi","requirements":"==2.9.0.20240821","direct":false,"kind":"runtime","optional":false},{"id":25822165344,"package_name":"typing-extensions","ecosystem":"pypi","requirements":"==4.12.2","direct":false,"kind":"runtime","optional":false},{"id":25822165345,"package_name":"typing-inspect","ecosystem":"pypi","requirements":"==0.9.0","direct":false,"kind":"runtime","optional":false},{"id":25822165352,"package_name":"tzdata","ecosystem":"pypi","requirements":"==2024.1","direct":false,"kind":"runtime","optional":false},{"id":25822165354,"package_name":"uri-template","ecosystem":"pypi","requirements":"==1.3.0","direct":false,"kind":"runtime","optional":false},{"id":25822165358,"package_name":"urllib3","ecosystem":"pypi","requirements":"==2.2.2","direct":false,"kind":"runtime","optional":false},{"id":25822165359,"package_name":"wcwidth","ecosystem":"pypi","requirements":"==0.2.13","direct":false,"kind":"runtime","optional":false},{"id":25822165360,"package_name":"webcolors","ecosystem":"pypi","requirements":"==24.8.0","direct":false,"kind":"runtime","optional":false},{"id":25822165364,"package_name":"webencodings","ecosystem":"pypi","requirements":"==0.5.1","direct":false,"kind":"runtime","optional":false},{"id":25822165365,"package_name":"websocket-client","ecosystem":"pypi","requirements":"==1.8.0","direct":false,"kind":"runtime","optional":false},{"id":25822165369,"package_name":"widgetsnbextension","ecosystem":"pypi","requirements":"==4.0.13","direct":false,"kind":"runtime","optional":false},{"id":25822165370,"package_name":"wquantiles","ecosystem":"pypi","requirements":"==0.6","direct":false,"kind":"runtime","optional":false},{"id":25822165375,"package_name":"wrapt","ecosystem":"pypi","requirements":"==1.16.0","direct":false,"kind":"runtime","optional":false},{"id":25822165376,"package_name":"xlsxwriter","ecosystem":"pypi","requirements":"==3.2.0","direct":false,"kind":"runtime","optional":false}]}],"score":14.464229248409852,"created_at":"2023-09-11T14:52:08.092Z","updated_at":"2026-05-12T18:05:18.026Z","avatar_url":"https://github.com/TemoaProject.png","language":"Python","category":"Energy Systems","sub_category":"Energy System Modeling Frameworks","monthly_downloads":562,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# TEMOA\n\n[![PyPI](https://img.shields.io/pypi/v/temoa?label=pypi%20package)](https://pypi.org/project/temoa/)\n[![CI](https://github.com/TemoaProject/temoa/actions/workflows/ci.yml/badge.svg?branch=unstable)](https://github.com/TemoaProject/temoa/actions/workflows/ci.yml)\n[![codecov](https://codecov.io/gh/TemoaProject/temoa/graph/badge.svg?token=ZAXU1VM8YN)](https://codecov.io/gh/TemoaProject/temoa)\n[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/TemoaProject/temoa/main.svg)](https://results.pre-commit.ci/latest/github/TemoaProject/temoa/main)\n[![Documentation Status](https://readthedocs.org/projects/temoa/badge/?version=latest)](https://temoa.readthedocs.io/en/latest/?badge=latest)\n[![Python 3.12+](https://img.shields.io/badge/python-3.12%2B-blue)](https://pyreadiness.org/3.12/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Type Checked with mypy](https://img.shields.io/badge/type--checked-mypy-blue?style=flat-square\u0026logo=python)](https://img.shields.io/badge/type--checked-mypy-blue?style=flat-square\u0026logo=python)\n[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n[![uv](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv)\n\n## Overview\n\nTEMOA (Tools for Energy Model Optimization and Analysis) is a sophisticated energy systems optimization framework that supports various modeling approaches including perfect foresight, myopic planning, uncertainty analysis, and alternative generation.\n\n## Quick Start\n\n### Standard Installation\n\n```bash\n# Install from PyPI in a virtual environment\npython -m venv .venv\n\n# Activate virtual environment\n# On Linux/Mac:\nsource .venv/bin/activate\n# On Windows:\n.venv\\Scripts\\activate\n\n# Install temoa\npip install temoa\n```\n\n### Get Started in 30 Seconds\n\nIn a virtual env with temoa installed, run:\n\n```bash\n# Create tutorial files in the current directory\n# Creates tutorial_config.toml and tutorial_database.sqlite\ntemoa tutorial\n\n# Run the model\ntemoa run tutorial_config.toml\n```\n\n## Package Structure\n\nThe Temoa package is organized into clear modules:\n\n- **`temoa.core`** - Public API for end users (TemoaModel, TemoaConfig, TemoaMode)\n- **`temoa.cli`** - Command-line interface and utilities\n- **`temoa.components`** - Model components and constraints\n- **`temoa.data_io`** - Data loading and validation\n- **`temoa.extensions`** - Optional extensions for different modeling approaches\n  - `modeling_to_generate_alternatives` - MGA analysis\n  - `method_of_morris` - Sensitivity analysis\n  - `monte_carlo` - Uncertainty quantification\n  - `myopic` - Sequential decision making\n- **`temoa.model_checking`** - Model validation and integrity checking\n- **`temoa.data_processing`** - Output analysis and visualization\n- **`temoa.utilities`** - Helper scripts and migration tools\n\n## Installation \u0026 Setup\n\n### Development Installation\n\nFor users who want to contribute to or modify Temoa should install in development mode using `uv`:\n\n```bash\n# Install uv if you haven't already\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n\n```\n\n```bash\n# Clone repository\ngit clone https://github.com/TemoaProject/temoa.git\ncd temoa\n\n# Setup development environment with uv\nuv sync --all-extras --dev\n\n# Install pre-commit hooks\nuv run pre-commit install\n\n# Run tests\nuv run pytest\n\n# Run type checking\nuv run mypy\n```\n\n## Command Line Interface\n\nTemoa provides a modern, user-friendly CLI built with Typer:\n\n### Basic Commands\n\n**Run a model:**\n\n```bash\ntemoa run tutorial_config.toml\ntemoa run tutorial_config.toml --output results/\ntemoa run tutorial_config.toml --build-only  # Build without solving\n```\n\n**Validate configuration:**\n\n```bash\ntemoa validate tutorial_config.toml\ntemoa validate tutorial_config.toml --debug\n```\n\n**Database migration:**\n\n```bash\ntemoa migrate old_database.sql --output new_database.sql\ntemoa migrate old_database.db --type db\ntemoa migrate old_database.sqlite --output migrated_v4.sqlite\n```\n\n**Generate tutorial files:**\n\n```bash\ntemoa tutorial                    # Creates tutorial_config.toml and tutorial_database.sqlite\ntemoa tutorial my_model my_db     # Custom names\n```\n\n### Global Options\n\n```bash\ntemoa --version                   # Show version information\ntemoa --how-to-cite              # Show citation information\ntemoa --help                     # Full help\n```\n\n### Using with uv\n\nWhen working with the source code, use `uv run` to ensure you're using the correct dependencies:\n\n```bash\nuv run temoa run tutorial_config.toml      # Run with project dependencies\nuv run temoa validate tutorial_config.toml # Validate configuration\nuv run temoa tutorial             # Create tutorial files\n```\n\n## Programmatic Usage\n\nYou can use Temoa as a Python library:\n\n```python\nimport temoa\nfrom pathlib import Path\nfrom temoa import TemoaModel, TemoaConfig, TemoaMode\n\n# Create configuration\nconfig = TemoaConfig(\n    scenario=\"my_scenario\",\n    scenario_mode=TemoaMode.PERFECT_FORESIGHT,\n    input_database=Path(\"path/to/input.db\"),\n    output_database=Path(\"path/to/output.db\"),\n    output_path=Path(\"path/to/output\"),\n    solver_name=\"appsi_highs\"\n)\n\n# Build and solve model\nmodel = TemoaModel(config)\nresult = model.run()  # Equivalent to: temoa run tutorial_config.toml\n\n# Check if run was successful\nif result:\n    print(\"Model solved successfully!\")\nelse:\n    print(\"Model failed to solve\")\n```\n\n## Database Setup\n\n### Quick Setup with Tutorial\n\nThe fastest way to get started:\n\n```bash\ntemoa tutorial\n```\n\nThis creates:\n\n- `tutorial_config.toml` - Configuration file with example settings\n- `tutorial_database.sqlite` - Sample database for learning\n\n**Migration from older versions:**\n\n```bash\n# Migrate from v3.1 to v4\ntemoa migrate old_database_v3.1.sql --output new_database_v4.sql\n\n# or for SQLite databases\ntemoa migrate old_database_v4.sqlite --output new_database_v4.sqlite\n```\n\n## Configuration Files\n\nA configuration file is required to run the model. The tutorial command creates a complete example:\n\n```toml\nscenario = \"tutorial\"\nscenario_mode = \"perfect_foresight\"\ninput_database = \"tutorial_database.sqlite\"\noutput_database = \"tutorial_database.sqlite\"\nsolver_name = \"appsi_highs\"\n```\n\n### Configuration Options\n\n| Field | Notes |\n|-------|-------|\n| Scenario Name | Name used in output tables (cannot contain '-' symbol) |\n| Temoa Mode | Execution mode (PERFECT_FORESIGHT, MYOPIC, MGA, etc.) |\n| Input/Output DB | Source and output database paths |\n| Price Checking | Run pricing analysis on built model |\n| Source Tracing | Verify commodity flow network integrity |\n| Plot Network | Generate HTML network visualizations |\n| Solver | Solver executable name (appsi_highs, cbc, gurobi, cplex, etc.) |\n| Save Excel | Export core output to Excel files |\n| Save LP | Save LP model files for external solving |\n\n## Supported Modes\n\n### Perfect Foresight\n\nSolves the entire model at once. Most common mode for optimization.\n\n### Myopic\n\nSequential solving through iterative builds. Required for stepwise decision analysis.\n\n### MGA (Modeling to Generate Alternatives)\n\nExplores near cost-optimal solutions for robustness analysis.\n\n### SVMGA (Single Vector MGA)\n\nTwo-solve process focusing on specific variables in the objective.\n\n### Method of Morris\n\nLimited sensitivity analysis of user-selected variables.\n\n### Build Only\n\nBuilds model without solving. Useful for validation and troubleshooting.\n\n## Typical Workflow\n\n1. **Setup**: Create configuration and database files:\n\n   ```bash\n   temoa tutorial\n   ```\n\n2. **Configure**: Edit the configuration file to match your scenario\n\n3. **Validate**: Check configuration before running:\n\n   ```bash\n   temoa validate tutorial_config.toml\n   ```\n\n4. **Run**: Execute the model:\n\n   ```bash\n   temoa run tutorial_config.toml\n   ```\n\n5. **Review**: Check results in `output_files/YYYY-MM-DD_HHMMSS/`\n\n6. **Iterate**: Modify configuration and run again\n\n## Advanced Features\n\n### Extensions\n\nTemoa includes optional extensions for advanced analysis:\n\n- **Monte Carlo**: Uncertainty quantification\n- **Stochastic Programming**: Scenario-based optimization\n- **Method of Morris**: Sensitivity analysis\n\n### Data Processing\n\n- Excel output generation\n- Graphviz network visualization\n- Interactive network diagrams\n\n### Model Validation\n\n- Built-in validation checks\n- Commodity flow verification\n- Price consistency analysis\n\n### Solver Dependencies\n\nTEMOA requires at least one optimization solver:\n\n- **Free**: [HiGHS](https://ergo-code.github.io/HiGHS/)\n  - Included via the `highspy` Python package (automatically installed with Temoa)\n  - Default solver for tutorial and testing\n\n- **Free**: [CBC](https://github.com/coin-or/Cbc)\n  - Requires separate installation (see [CBC documentation](https://github.com/coin-or/Cbc))\n  - Alternative free solver option\n\n- **Commercial**: Gurobi, CPLEX, or Xpress\n  - Requires separate license and installation\n  - See individual solver documentation\n\n## Troubleshooting\n\n### Solver Issues\n\nIf you encounter solver errors:\n\n```bash\n# For commercial solvers (Gurobi, CPLEX)\npip install \".[solver]\"  # Include specific solver packages\n\n# For free solver\ntemoa run tutorial_config.toml --debug  # Get detailed error information\n```\n\n## Documentation \u0026 Support\n\n- **Full Documentation**: Built by following docs/README.md\n- **API Reference**: See `temoa.core` module for public API\n- **GitHub Issues**: Report bugs and request features\n- **Tutorials**: Run `temoa tutorial` for guided examples\n\n## Code Style \u0026 Quality\n\nFor contributors:\n\n- **Ruff**: Code formatting and linting\n- **mypy**: Type checking\n- **pytest**: Testing framework\n- **Pre-commit**: Automated quality checks\n\nSee CONTRIBUTING.md for detailed development guidelines.\n\n## Citation\n\nIf you use Temoa in your research, please cite:\n\n```bibtex\n@article{hunter2013modeling,\n  title={Modeling for insight using Tools for Energy Model Optimization and Analysis (Temoa)},\n  journal={Energy Economics},\n  volume={40},\n  pages={339--349},\n  year={2013},\n  doi={10.1016/j.eneco.2013.07.014}\n}\n```\n\nOr use: `temoa --how-to-cite`\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["energy-system-model","scenario-analysis","temoa"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/19916","html_url":"https://ost.ecosyste.ms/projects/19916"}