{"id":188032,"name":"python-microgrid","description":"A Python library to generate and simulate a large number of microgrids.","url":"https://github.com/ahalev/python-microgrid","last_synced_at":"2026-04-20T08:30:40.993Z","repository":{"id":151636003,"uuid":"620518460","full_name":"ahalev/python-microgrid","owner":"ahalev","description":"python-microgrid is a python library to generate and simulate a large number of microgrids.","archived":false,"fork":false,"pushed_at":"2025-01-18T04:13:20.000Z","size":54075,"stargazers_count":103,"open_issues_count":11,"forks_count":13,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-04-07T02:03:24.217Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://python-microgrid.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"Total-RD/pymgrid","license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ahalev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-03-28T20:57:51.000Z","updated_at":"2026-03-30T19:20:03.000Z","dependencies_parsed_at":"2024-11-06T07:00:54.081Z","dependency_job_id":"df717286-8a1f-4a83-8691-a346b790276b","html_url":"https://github.com/ahalev/python-microgrid","commit_stats":{"total_commits":1743,"total_committers":10,"mean_commits":174.3,"dds":0.1583476764199656,"last_synced_commit":"8bf531710c8c775e52fc9ffade67ce9c585b8203"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/ahalev/python-microgrid","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ahalev","download_url":"https://codeload.github.com/ahalev/python-microgrid/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31828533,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T18:05:02.291Z","status":"online","status_checked_at":"2026-04-15T02:00:06.175Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"ahalev","name":"Avishai Halev","uuid":"67072238","kind":"user","description":"","email":"","website":"ahalev.github.io","location":"San Francisco, CA","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/67072238?u=5ba4482b89c3d710b68b7a4c0ec64ef641027e2d\u0026v=4","repositories_count":12,"last_synced_at":"2024-06-11T15:58:08.480Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/ahalev","funding_links":[],"total_stars":51,"followers":11,"following":0,"created_at":"2023-04-06T21:58:47.478Z","updated_at":"2024-06-11T15:58:09.636Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ahalev","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ahalev/repositories"},"packages":[{"id":11729192,"name":"github.com/ahalev/python-microgrid","ecosystem":"go","description":null,"homepage":null,"licenses":"lgpl-3.0","normalized_licenses":["LGPL-3.0"],"repository_url":"https://github.com/ahalev/python-microgrid","keywords_array":[],"namespace":null,"versions_count":3,"first_release_published_at":"2023-04-06T17:37:28.000Z","latest_release_published_at":"2024-04-06T01:42:45.000Z","latest_release_number":"v1.4.1","last_synced_at":"2026-04-09T03:01:29.473Z","created_at":"2025-06-04T10:54:21.956Z","updated_at":"2026-04-09T03:01:29.473Z","registry_url":"https://pkg.go.dev/github.com/ahalev/python-microgrid","install_command":"go get github.com/ahalev/python-microgrid","documentation_url":"https://pkg.go.dev/github.com/ahalev/python-microgrid#section-documentation","metadata":{},"repo_metadata":{"id":151636003,"uuid":"620518460","full_name":"ahalev/python-microgrid","owner":"ahalev","description":"python-microgrid is a python library to generate and simulate a large number of microgrids.","archived":false,"fork":false,"pushed_at":"2025-01-18T04:13:20.000Z","size":54075,"stargazers_count":88,"open_issues_count":11,"forks_count":12,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-08T09:08:21.990Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://python-microgrid.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"Total-RD/pymgrid","license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ahalev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-03-28T20:57:51.000Z","updated_at":"2025-09-25T09:43:14.000Z","dependencies_parsed_at":"2024-11-06T07:00:54.081Z","dependency_job_id":"df717286-8a1f-4a83-8691-a346b790276b","html_url":"https://github.com/ahalev/python-microgrid","commit_stats":{"total_commits":1743,"total_committers":10,"mean_commits":174.3,"dds":0.1583476764199656,"last_synced_commit":"8bf531710c8c775e52fc9ffade67ce9c585b8203"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/ahalev/python-microgrid","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ahalev","download_url":"https://codeload.github.com/ahalev/python-microgrid/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002367,"owners_count":26083355,"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-09T02:00:07.460Z","response_time":59,"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":"ahalev","name":"Avishai Halev","uuid":"67072238","kind":"user","description":"","email":"","website":"ahalev.github.io","location":"San Francisco, CA","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/67072238?u=5ba4482b89c3d710b68b7a4c0ec64ef641027e2d\u0026v=4","repositories_count":12,"last_synced_at":"2024-06-11T15:58:08.480Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/ahalev","funding_links":[],"total_stars":51,"followers":11,"following":0,"created_at":"2023-04-06T21:58:47.478Z","updated_at":"2024-06-11T15:58:09.636Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ahalev","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ahalev/repositories"},"tags":[{"name":"v1.4.1","sha":"5b01069e64940d547cb99cc4852fdaa39be63edc","kind":"commit","published_at":"2024-04-06T01:42:45.000Z","download_url":"https://codeload.github.com/ahalev/python-microgrid/tar.gz/v1.4.1","html_url":"https://github.com/ahalev/python-microgrid/releases/tag/v1.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ahalev/python-microgrid@v1.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/tags/v1.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/tags/v1.4.1/manifests"},{"name":"v1.4.0","sha":"cb750d598347e667ac9bc45d75d64b7079de8740","kind":"commit","published_at":"2023-05-26T05:17:02.000Z","download_url":"https://codeload.github.com/ahalev/python-microgrid/tar.gz/v1.4.0","html_url":"https://github.com/ahalev/python-microgrid/releases/tag/v1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ahalev/python-microgrid@v1.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/tags/v1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/tags/v1.4.0/manifests"},{"name":"v1.3.0","sha":"9fdae09f15352199da3d2d10131a460da15358e9","kind":"commit","published_at":"2023-04-06T17:37:28.000Z","download_url":"https://codeload.github.com/ahalev/python-microgrid/tar.gz/v1.3.0","html_url":"https://github.com/ahalev/python-microgrid/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ahalev/python-microgrid@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/tags/v1.3.0/manifests"}]},"repo_metadata_updated_at":"2025-10-10T03:57:58.778Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":5.764254255794306,"dependent_packages_count":5.401293307900869,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":5.582773781847587},"purl":"pkg:golang/github.com/ahalev/python-microgrid","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/ahalev/python-microgrid","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/ahalev/python-microgrid","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/ahalev/python-microgrid/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-08-31T12:00:19.132Z","issues_count":22,"pull_requests_count":98,"avg_time_to_close_issue":2959473.3846153845,"avg_time_to_close_pull_request":448697.6210526316,"issues_closed_count":13,"pull_requests_closed_count":95,"pull_request_authors_count":2,"issue_authors_count":13,"avg_comments_per_issue":0.9090909090909091,"avg_comments_per_pull_request":0.01020408163265306,"merged_pull_requests_count":88,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":6,"past_year_pull_requests_count":6,"past_year_avg_time_to_close_issue":4002099.75,"past_year_avg_time_to_close_pull_request":1567925.3333333333,"past_year_issues_closed_count":4,"past_year_pull_requests_closed_count":6,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":6,"past_year_avg_comments_per_issue":1.3333333333333333,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":4,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/issues","maintainers":[{"login":"ahalev","count":100,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ahalev"}],"active_maintainers":[{"login":"ahalev","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ahalev"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fahalev%2Fpython-microgrid/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fahalev%2Fpython-microgrid/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fahalev%2Fpython-microgrid/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fahalev%2Fpython-microgrid/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Fahalev%2Fpython-microgrid/codemeta","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":2093880,"maintainers_count":0,"namespaces_count":780333,"keywords_count":112764,"github":"golang","metadata":{"funded_packages_count":53458},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2026-04-09T05:03:48.640Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}},{"id":7484071,"name":"python-microgrid","ecosystem":"pypi","description":"A simulator for tertiary control of electrical microgrids","homepage":null,"licenses":"GNU LGPL 3.0","normalized_licenses":["GPL-1.0"],"repository_url":"https://github.com/ahalev/python-microgrid","keywords_array":[],"namespace":null,"versions_count":3,"first_release_published_at":"2023-04-06T17:31:52.000Z","latest_release_published_at":"2024-04-06T01:43:32.000Z","latest_release_number":"1.4.1","last_synced_at":"2026-04-09T03:01:28.097Z","created_at":"2023-04-06T19:46:50.655Z","updated_at":"2026-04-09T03:01:28.097Z","registry_url":"https://pypi.org/project/python-microgrid/","install_command":"pip install python-microgrid --index-url https://pypi.org/simple","documentation_url":"https://python-microgrid.readthedocs.io/","metadata":{"funding":null,"documentation":"https://python-microgrid.readthedocs.io/","classifiers":[],"normalized_name":"python-microgrid","project_status":null},"repo_metadata":{"id":151636003,"uuid":"620518460","full_name":"ahalev/python-microgrid","owner":"ahalev","description":"python-microgrid is a python library to generate and simulate a large number of microgrids.","archived":false,"fork":false,"pushed_at":"2025-01-18T04:13:20.000Z","size":54075,"stargazers_count":102,"open_issues_count":11,"forks_count":13,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-03-29T22:04:14.558Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://python-microgrid.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"Total-RD/pymgrid","license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ahalev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-03-28T20:57:51.000Z","updated_at":"2026-03-27T02:35:54.000Z","dependencies_parsed_at":"2024-11-06T07:00:54.081Z","dependency_job_id":"df717286-8a1f-4a83-8691-a346b790276b","html_url":"https://github.com/ahalev/python-microgrid","commit_stats":{"total_commits":1743,"total_committers":10,"mean_commits":174.3,"dds":0.1583476764199656,"last_synced_commit":"8bf531710c8c775e52fc9ffade67ce9c585b8203"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/ahalev/python-microgrid","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ahalev","download_url":"https://codeload.github.com/ahalev/python-microgrid/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31258770,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-31T18:32:52.363Z","status":"ssl_error","status_checked_at":"2026-03-31T18:32:51.507Z","response_time":111,"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":"ahalev","name":"Avishai Halev","uuid":"67072238","kind":"user","description":"","email":"","website":"ahalev.github.io","location":"San Francisco, CA","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/67072238?u=5ba4482b89c3d710b68b7a4c0ec64ef641027e2d\u0026v=4","repositories_count":12,"last_synced_at":"2024-06-11T15:58:08.480Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/ahalev","funding_links":[],"total_stars":51,"followers":11,"following":0,"created_at":"2023-04-06T21:58:47.478Z","updated_at":"2024-06-11T15:58:09.636Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ahalev","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ahalev/repositories"},"tags":[{"name":"v1.4.1","sha":"5b01069e64940d547cb99cc4852fdaa39be63edc","kind":"commit","published_at":"2024-04-06T01:42:45.000Z","download_url":"https://codeload.github.com/ahalev/python-microgrid/tar.gz/v1.4.1","html_url":"https://github.com/ahalev/python-microgrid/releases/tag/v1.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ahalev/python-microgrid@v1.4.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/tags/v1.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/tags/v1.4.1/manifests"},{"name":"v1.4.0","sha":"cb750d598347e667ac9bc45d75d64b7079de8740","kind":"commit","published_at":"2023-05-26T05:17:02.000Z","download_url":"https://codeload.github.com/ahalev/python-microgrid/tar.gz/v1.4.0","html_url":"https://github.com/ahalev/python-microgrid/releases/tag/v1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ahalev/python-microgrid@v1.4.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/tags/v1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/tags/v1.4.0/manifests"},{"name":"v1.3.0","sha":"9fdae09f15352199da3d2d10131a460da15358e9","kind":"commit","published_at":"2023-04-06T17:37:28.000Z","download_url":"https://codeload.github.com/ahalev/python-microgrid/tar.gz/v1.3.0","html_url":"https://github.com/ahalev/python-microgrid/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ahalev/python-microgrid@v1.3.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/tags/v1.3.0/manifests"}]},"repo_metadata_updated_at":"2026-04-07T02:03:43.139Z","dependent_packages_count":0,"downloads":68,"downloads_period":"last-month","dependent_repos_count":1,"rankings":{"downloads":33.006765570046404,"dependent_repos_count":21.559058535118407,"dependent_packages_count":10.108852264313626,"stargazers_count":10.712374728415584,"forks_count":15.368540057212353,"docker_downloads_count":null,"average":18.151118231021275},"purl":"pkg:pypi/python-microgrid","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/python-microgrid","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/python-microgrid","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/python-microgrid/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-10-28T10:50:25.399Z","issues_count":20,"pull_requests_count":96,"avg_time_to_close_issue":2234971.3076923075,"avg_time_to_close_pull_request":413707.2417582418,"issues_closed_count":13,"pull_requests_closed_count":91,"pull_request_authors_count":2,"issue_authors_count":13,"avg_comments_per_issue":0.95,"avg_comments_per_pull_request":0.010416666666666666,"merged_pull_requests_count":85,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":5,"past_year_pull_requests_count":6,"past_year_avg_time_to_close_issue":1647468.0,"past_year_avg_time_to_close_pull_request":1175959.75,"past_year_issues_closed_count":4,"past_year_pull_requests_closed_count":4,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":5,"past_year_avg_comments_per_issue":1.6,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/issues","maintainers":[{"login":"ahalev","count":100,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ahalev"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/python-microgrid/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/python-microgrid/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/python-microgrid/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/python-microgrid/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/python-microgrid/codemeta","maintainers":[{"uuid":"ahalev","login":"ahalev","name":null,"email":null,"url":null,"packages_count":4,"html_url":"https://pypi.org/user/ahalev/","role":null,"created_at":"2023-04-06T19:59:59.746Z","updated_at":"2023-04-06T19:59:59.746Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/ahalev/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":837461,"maintainers_count":357672,"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":1498996,"full_name":"ahalev/python-microgrid","default_branch":"master","total_commits":1751,"total_committers":10,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":175.1,"dds":0.15762421473443744,"past_year_total_commits":0,"past_year_total_committers":0,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":0.0,"past_year_dds":0.0,"last_synced_at":"2026-04-11T04:03:47.292Z","last_synced_commit":"09089ccfaab3e95becfda1b26fbce6f9c6195f6a","created_at":"2024-02-18T00:03:01.082Z","updated_at":"2026-04-11T04:03:19.230Z","committers":[{"name":"ahalev","email":"avishaihalev@gmail.com","login":"ahalev","count":1475},{"name":"Gonzague Henri","email":"gonzague.henri@total.com","login":null,"count":149},{"name":"Gonzague Henri","email":"gonzague.henri@gmail.com","login":"GonzagueHenri","count":107},{"name":"Tanguy","email":"tlevent02@gmail.com","login":"TanguyLevent","count":9},{"name":"Reda ALAMI","email":"37814001+Ralami1859","login":"Ralami1859","count":4},{"name":"Yann BERTHERLOT","email":"yann.berthelot@capgemini.com","login":"YannBerthelotCap","count":3},{"name":"pochelu","email":"pierrick.pochelu@total.com","login":"Pierrick-Pochelu","count":1},{"name":"RoKe2017","email":"126553966+RoKe2017","login":"RoKe2017","count":1},{"name":"Alexis de Talhouët","email":"adetalhouet89@gmail.com","login":"adetalhouet","count":1},{"name":"Bipin Paudel","email":"bipinpaudel@jardine-wireless-2-101.reshall.ksu.edu","login":null,"count":1}],"past_year_committers":[],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-13T00:00:06.408Z","repositories_count":6212947,"commits_count":904028664,"contributors_count":34944292,"owners_count":1143996,"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":"ahalev/python-microgrid","html_url":"https://github.com/ahalev/python-microgrid","last_synced_at":"2025-10-28T10:50:25.399Z","status":"active","issues_count":20,"pull_requests_count":96,"avg_time_to_close_issue":2234971.3076923075,"avg_time_to_close_pull_request":413707.2417582418,"issues_closed_count":13,"pull_requests_closed_count":91,"pull_request_authors_count":2,"issue_authors_count":13,"avg_comments_per_issue":0.95,"avg_comments_per_pull_request":0.010416666666666666,"merged_pull_requests_count":85,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":5,"past_year_pull_requests_count":6,"past_year_avg_time_to_close_issue":1647468.0,"past_year_avg_time_to_close_pull_request":1175959.75,"past_year_issues_closed_count":4,"past_year_pull_requests_closed_count":4,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":5,"past_year_avg_comments_per_issue":1.6,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2,"created_at":"2023-05-15T09:49:27.116Z","updated_at":"2025-10-28T10:50:25.399Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahalev%2Fpython-microgrid/issues","issue_labels_count":{"enhancement":2,"good first issue":1,"bug":1},"pull_request_labels_count":{},"issue_author_associations_count":{"NONE":14,"OWNER":6},"pull_request_author_associations_count":{"OWNER":94,"NONE":2},"issue_authors":{"ahalev":6,"Alfonso00MA":3,"logicbai":1,"BZ03SL":1,"WDzhd":1,"akinar1990":1,"TEKaal":1,"fusion-research":1,"Shezeenaqureshi":1,"Micoft":1,"ferro-gianluca-29":1,"AndelBenjamin":1,"RafaelGoncalvesUA":1},"pull_request_authors":{"ahalev":94,"simonmpa":2},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-13T00:00:15.727Z","repositories_count":14239565,"issues_count":34625991,"pull_requests_count":113099059,"authors_count":11233246,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"NONE":2},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{"ferro-gianluca-29":1,"Micoft":1},"past_year_pull_request_authors":{},"maintainers":[{"login":"ahalev","count":100,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ahalev"}],"active_maintainers":[]},"events":{"total":{"DeleteEvent":2,"PullRequestEvent":6,"ForkEvent":5,"IssuesEvent":12,"WatchEvent":32,"IssueCommentEvent":9,"PushEvent":3,"CreateEvent":2},"last_year":{"ForkEvent":2,"IssuesEvent":2,"WatchEvent":14,"IssueCommentEvent":2}},"keywords":[],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/build.yml","sha":null,"kind":"manifest","created_at":"2023-07-15T18:01:06.852Z","updated_at":"2023-07-15T18:01:06.852Z","repository_link":"https://github.com/ahalev/python-microgrid/blob/master/.github/workflows/build.yml","dependencies":[{"id":11522134569,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":11522134570,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/documentation-links.yaml","sha":null,"kind":"manifest","created_at":"2023-07-15T18:01:07.096Z","updated_at":"2023-07-15T18:01:07.096Z","repository_link":"https://github.com/ahalev/python-microgrid/blob/master/.github/workflows/documentation-links.yaml","dependencies":[{"id":11522134572,"package_name":"readthedocs/actions/preview","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/garage-compat.yml","sha":null,"kind":"manifest","created_at":"2023-07-15T18:01:07.921Z","updated_at":"2023-07-15T18:01:07.921Z","repository_link":"https://github.com/ahalev/python-microgrid/blob/master/.github/workflows/garage-compat.yml","dependencies":[{"id":11522135679,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":11522135680,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":11522135681,"package_name":"wei/wget","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"docs/requirements.txt","sha":null,"kind":"manifest","created_at":"2023-07-15T18:01:09.649Z","updated_at":"2023-07-15T18:01:09.649Z","repository_link":"https://github.com/ahalev/python-microgrid/blob/master/docs/requirements.txt","dependencies":[{"id":11522136210,"package_name":"nbsphinx","ecosystem":"pypi","requirements":"==0.8.10","direct":true,"kind":"runtime","optional":false},{"id":11522136211,"package_name":"nbsphinx-link","ecosystem":"pypi","requirements":"==1.3.0","direct":true,"kind":"runtime","optional":false},{"id":11522136212,"package_name":"numpydoc","ecosystem":"pypi","requirements":"==1.5.0","direct":true,"kind":"runtime","optional":false},{"id":11522136213,"package_name":"pydata_sphinx_theme","ecosystem":"pypi","requirements":"==0.12.0","direct":true,"kind":"runtime","optional":false},{"id":11522136214,"package_name":"Sphinx","ecosystem":"pypi","requirements":"==5.3.0","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"requirements.txt","sha":null,"kind":"manifest","created_at":"2023-07-15T18:01:10.167Z","updated_at":"2023-07-15T18:01:10.167Z","repository_link":"https://github.com/ahalev/python-microgrid/blob/master/requirements.txt","dependencies":[{"id":11522136221,"package_name":"cufflinks","ecosystem":"pypi","requirements":"\u003e=0.17.3","direct":true,"kind":"runtime","optional":false},{"id":11522136222,"package_name":"cvxpy","ecosystem":"pypi","requirements":"\u003e=1.1.4","direct":true,"kind":"runtime","optional":false},{"id":11522136223,"package_name":"gym","ecosystem":"pypi","requirements":"\u003e=0.15.7","direct":true,"kind":"runtime","optional":false},{"id":11522136224,"package_name":"matplotlib","ecosystem":"pypi","requirements":"\u003e=3.1.1","direct":true,"kind":"runtime","optional":false},{"id":11522136225,"package_name":"numpy","ecosystem":"pypi","requirements":"\u003e=1.19.5","direct":true,"kind":"runtime","optional":false},{"id":11522136226,"package_name":"pandas","ecosystem":"pypi","requirements":"\u003e=1.0.3","direct":true,"kind":"runtime","optional":false},{"id":11522136227,"package_name":"plotly","ecosystem":"pypi","requirements":"\u003e=4.9.0","direct":true,"kind":"runtime","optional":false},{"id":11522136228,"package_name":"scipy","ecosystem":"pypi","requirements":"\u003e=1.5.3","direct":true,"kind":"runtime","optional":false},{"id":11522136229,"package_name":"statsmodels","ecosystem":"pypi","requirements":"\u003e=0.11.1","direct":true,"kind":"runtime","optional":false},{"id":11522136230,"package_name":"tqdm","ecosystem":"pypi","requirements":"\u003e=4.1.0","direct":true,"kind":"runtime","optional":false},{"id":11522136231,"package_name":"pyyaml","ecosystem":"pypi","requirements":"\u003e=1.5","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"setup.py","sha":null,"kind":"manifest","created_at":"2023-07-15T18:01:10.319Z","updated_at":"2023-07-15T18:01:10.319Z","repository_link":"https://github.com/ahalev/python-microgrid/blob/master/setup.py","dependencies":[{"id":11522136236,"package_name":"pandas","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11522136237,"package_name":"numpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11522136238,"package_name":"cvxpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11522136239,"package_name":"statsmodels","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11522136240,"package_name":"matplotlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11522136241,"package_name":"plotly","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11522136242,"package_name":"cufflinks","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11522136243,"package_name":"gym","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11522136244,"package_name":"tqdm","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11522136245,"package_name":"pyyaml","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2023-09-30T08:58:47.457Z","updated_at":"2023-09-30T08:58:47.457Z","repository_link":"https://github.com/ahalev/python-microgrid/blob/master/pyproject.toml","dependencies":[]}],"score":11.287278783437902,"created_at":"2024-02-18T00:02:46.370Z","updated_at":"2026-04-20T08:30:41.002Z","avatar_url":"https://github.com/ahalev.png","language":"Python","category":"Energy Systems","sub_category":"Grid Management and Microgrid","monthly_downloads":68,"total_dependent_repos":1,"total_dependent_packages":0,"readme":"# python-microgrid\n\n![Build](https://github.com/ahalev/python-microgrid/workflows/build/badge.svg?dummy=unused)\n\n*python-microgrid* is a python library to generate and simulate a large number of microgrids. It is an extension of TotalEnergies' [*pymgrid*](https://github.com/Total-RD/pymgrid).\n\nFor more context, please see the [presentation](https://www.climatechange.ai/papers/neurips2020/3) done at Climate Change AI\nand the [documentation](https://python-microgrid.readthedocs.io/).\n\n## Installation\n\nThe easiest way to install python-microgrid is with pip:\n\n`pip install -U python-microgrid`\n\nAlternatively, you can install from source. First clone the repo:\n \n```bash\ngit clone https://github.com/ahalev/python-microgrid.git\n``` \nThen navigate to the root directory of python-microgrid and call\n\n```bash\npip install .\n```\n## Getting Started\n\nMicrogrids are straightforward to generate from scratch. Simply define some modules and pass them\nto a microgrid:\n```python\nimport numpy as np\nfrom pymgrid import Microgrid\nfrom pymgrid.modules import GensetModule, BatteryModule, LoadModule, RenewableModule\n\n\ngenset = GensetModule(running_min_production=10,\n                      running_max_production=50,\n                      genset_cost=0.5)\n\nbattery = BatteryModule(min_capacity=0,\n                        max_capacity=100,\n                        max_charge=50,\n                        max_discharge=50,\n                        efficiency=1.0,\n                        init_soc=0.5)\n\n# Using random data\nrenewable = RenewableModule(time_series=50*np.random.rand(100))\n\nload = LoadModule(time_series=60*np.random.rand(100),\n                  loss_load_cost=10)\n\nmicrogrid = Microgrid([genset, battery, (\"pv\", renewable), load])\n```\n\nThis creates a microgrid with the modules defined above, as well as an unbalanced energy module -- \nwhich reconciles situations when energy demand cannot be matched to supply.\n\nPrinting the microgrid gives us its architecture:\n\n```python\n\u003e\u003e microgrid\n\nMicrogrid([genset x 1, load x 1, battery x 1, pv x 1, balancing x 1])\n```\n\nA microgrid is contained of fixed modules and flex modules. Some modules can be both -- `GridModule`, for example\n-- but not at the same time.\n\n\nA *fixed* module has requires a request of a certain amount of energy ahead of time, and then attempts to \nproduce or consume said amount. `LoadModule` is an example of this; you must tell it to consume a certain amount of energy\nand it will then do so.\n\n A *flex* module, on the other hand, is able to adapt to meet demand. `RenewableModule` is an example of this as\n it allows for curtailment of any excess renewable produced.\n \n A microgrid will tell you which modules are which:\n \n ```python\n\u003e\u003e microgrid.fixed_modules\n\n{\n  \"genset\": \"[GensetModule(running_min_production=10, running_max_production=50, genset_cost=0.5, co2_per_unit=0, cost_per_unit_co2=0, start_up_time=0, wind_down_time=0, allow_abortion=True, init_start_up=True, raise_errors=False, provided_energy_name=genset_production)]\",\n  \"load\": \"[LoadModule(time_series=\u003cclass 'numpy.ndarray'\u003e, loss_load_cost=10, forecaster=NoForecaster, forecast_horizon=0, forecaster_increase_uncertainty=False, raise_errors=False)]\",\n  \"battery\": \"[BatteryModule(min_capacity=0, max_capacity=100, max_charge=50, max_discharge=50, efficiency=1.0, battery_cost_cycle=0.0, battery_transition_model=None, init_charge=None, init_soc=0.5, raise_errors=False)]\"\n}\n\n\u003e\u003emicrogrid.flex_modules\n\n{\n  \"pv\": \"[RenewableModule(time_series=\u003cclass 'numpy.ndarray'\u003e, raise_errors=False, forecaster=NoForecaster, forecast_horizon=0, forecaster_increase_uncertainty=False, provided_energy_name=renewable_used)]\",\n  \"balancing\": \"[UnbalancedEnergyModule(raise_errors=False, loss_load_cost=10, overgeneration_cost=2)]\"\n}\n\n```\n\n\nRunning the microgrid is straightforward. Simply pass an action for each fixed module to `microgrid.run`. The microgrid\ncan also provide you a random action by calling `microgrid.sample_action.` Once the microgrid has been run for a\ncertain number of steps, results can be viewed by calling microgrid.get_log.\n\n```python\n\u003e\u003e for j in range(10):\n\u003e\u003e    action = microgrid.sample_action(strict_bound=True)\n\u003e\u003e    microgrid.step(action)\n\n\u003e\u003e microgrid.get_log(drop_singleton_key=True)\n\n      genset  ...                     balance\n      reward  ... fixed_absorbed_by_microgrid\n0  -5.000000  ...                   10.672095\n1 -14.344353  ...                   50.626726\n2  -5.000000  ...                   17.538018\n3  -0.000000  ...                   15.492778\n4  -0.000000  ...                   35.748724\n5  -0.000000  ...                   30.302300\n6  -5.000000  ...                   36.451662\n7  -0.000000  ...                   66.533872\n8  -0.000000  ...                   20.645077\n9  -0.000000  ...                   10.632957\n```\n\n## Benchmarking\n\n`pymgrid` also comes pre-packaged with a set of 25 microgrids for benchmarking.\nThe config files for these microgrids are available in `data/scenario/pymgrid25`.\nSimply deserialize one of the yaml files to load one of the saved microgrids; for example,\nto load the zeroth microgrid:\n\n```python\nimport yaml\nfrom pymgrid import PROJECT_PATH\n\nyaml_file = PROJECT_PATH / 'data/scenario/pymgrid25/microgrid_0/microgrid_0.yaml'\nmicrogrid = yaml.safe_load(yaml_file.open('r'))\n```\n\nAlternatively, `Microgrid.load(yaml_file.open('r'))` will perform the same deserialization.\n\n\n## Citation\n\nIf you use this package for your research, please cite the following paper:\n\n@misc{henri2020pymgrid,\n      title={pymgrid: An Open-Source Python Microgrid Simulator for Applied Artificial Intelligence Research}, \n      author={Gonzague Henri, Tanguy Levent, Avishai Halev, Reda Alami and Philippe Cordier},\n      year={2020},\n      eprint={2011.08004},\n      archivePrefix={arXiv},\n      primaryClass={cs.AI}\n}\n\nYou can find it on Arxiv here: https://arxiv.org/abs/2011.08004\n\n## Data\n\nData in pymgrid are based on TMY3 (data based on representative weather). The PV data comes from DOE/NREL/ALLIANCE (https://nsrdb.nrel.gov/about/tmy.html) and the load data comes from OpenEI (https://openei.org/doe-opendata/dataset/commercial-and-residential-hourly-load-profiles-for-all-tmy3-locations-in-the-united-states)\n\nThe CO2 data is from Jacque de Chalendar and his gridemissions API.\n\n## Contributing\nPull requests are welcome for bug fixes. For new features, please open an issue first to discuss what you would like to add.\n\nPlease make sure to update tests as appropriate.\n\n## License\n\nThis repo is under a GNU LGPL 3.0 (https://github.com/total-sa/pymgrid/edit/master/LICENSE)\n\n## Contact\n\nFor any questions or bugs, please [open an issue](https://github.com/ahalev/python-microgrid/issues/new) in the [Issues tab](https://github.com/ahalev/python-microgrid/issues).\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["control","energy-management-systems","microgrid","microgrid-model"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/188032","html_url":"https://ost.ecosyste.ms/projects/188032"}