{"id":19949,"name":"energy-py","description":"Reinforcement learning for energy systems.","url":"https://github.com/ADGEfficiency/energy-py","last_synced_at":"2026-04-08T15:01:22.595Z","repository":{"id":39740275,"uuid":"87061522","full_name":"ADGEfficiency/energy-py","owner":"ADGEfficiency","description":"Reinforcement learning for energy systems","archived":false,"fork":false,"pushed_at":"2025-05-19T14:11:26.000Z","size":275,"stargazers_count":185,"open_issues_count":1,"forks_count":35,"subscribers_count":8,"default_branch":"main","last_synced_at":"2026-02-14T19:44:29.486Z","etag":null,"topics":["energy","reinforcement-learning"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ADGEfficiency.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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}},"created_at":"2017-04-03T10:14:01.000Z","updated_at":"2026-02-02T14:17:03.000Z","dependencies_parsed_at":"2025-04-17T08:56:33.054Z","dependency_job_id":"5a219cd3-7eb1-473d-9b53-15097b4885a9","html_url":"https://github.com/ADGEfficiency/energy-py","commit_stats":{"total_commits":14,"total_committers":2,"mean_commits":7.0,"dds":0.2142857142857143,"last_synced_commit":"ac4b2dbcfb2e9d1200373213e2d3cdbe15780278"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ADGEfficiency/energy-py","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADGEfficiency%2Fenergy-py","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADGEfficiency%2Fenergy-py/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADGEfficiency%2Fenergy-py/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADGEfficiency%2Fenergy-py/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ADGEfficiency","download_url":"https://codeload.github.com/ADGEfficiency/energy-py/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADGEfficiency%2Fenergy-py/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29719266,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-22T15:10:41.462Z","status":"ssl_error","status_checked_at":"2026-02-22T15:10:04.636Z","response_time":110,"last_error":"SSL_read: 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":"ADGEfficiency","name":"Adam Green","uuid":"24447881","kind":"user","description":"","email":"","website":"adgefficiency.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/24447881?u=e53b8b16b3d12af8f359c7fc4707da0c027e0fe3\u0026v=4","repositories_count":78,"last_synced_at":"2024-06-11T15:43:25.030Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/ADGEfficiency","funding_links":[],"total_stars":750,"followers":191,"following":6,"created_at":"2022-11-14T08:20:51.889Z","updated_at":"2024-06-11T15:43:26.680Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ADGEfficiency","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ADGEfficiency/repositories"},"packages":[],"commits":{"id":1254007,"full_name":"ADGEfficiency/energy-py","default_branch":"main","total_commits":18,"total_committers":2,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":9.0,"dds":0.16666666666666663,"past_year_total_commits":4,"past_year_total_committers":1,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":4.0,"past_year_dds":0.0,"last_synced_at":"2026-03-03T17:24:32.167Z","last_synced_commit":"d0ed2476ec545d9604831569470c498bd6010296","created_at":"2023-03-27T10:50:16.330Z","updated_at":"2026-03-03T17:24:20.075Z","committers":[{"name":"Adam Green","email":"adam.green@adgefficiency.com","login":"ADGEfficiency","count":15},{"name":"Adam Green","email":"ubuntu@ip-172-31-22-172.ap-southeast-2.compute.internal","login":null,"count":3}],"past_year_committers":[{"name":"Adam Green","email":"adam.green@adgefficiency.com","login":"ADGEfficiency","count":4}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADGEfficiency%2Fenergy-py/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-03-06T00:00:38.640Z","repositories_count":6187302,"commits_count":931614423,"contributors_count":36074985,"owners_count":1147484,"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":"ADGEfficiency/energy-py","html_url":"https://github.com/ADGEfficiency/energy-py","last_synced_at":"2025-09-01T03:33:10.683Z","status":"error","issues_count":46,"pull_requests_count":29,"avg_time_to_close_issue":34059475.97826087,"avg_time_to_close_pull_request":8767118.035714285,"issues_closed_count":46,"pull_requests_closed_count":28,"pull_request_authors_count":7,"issue_authors_count":10,"avg_comments_per_issue":1.326086956521739,"avg_comments_per_pull_request":0.5172413793103449,"merged_pull_requests_count":13,"bot_issues_count":0,"bot_pull_requests_count":12,"past_year_issues_count":5,"past_year_pull_requests_count":5,"past_year_avg_time_to_close_issue":1525598.2,"past_year_avg_time_to_close_pull_request":167176.5,"past_year_issues_closed_count":5,"past_year_pull_requests_closed_count":4,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":2,"past_year_avg_comments_per_issue":1.2,"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,"created_at":"2023-05-09T10:58:55.006Z","updated_at":"2025-09-01T03:33:10.683Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADGEfficiency%2Fenergy-py","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADGEfficiency%2Fenergy-py/issues","issue_labels_count":{},"pull_request_labels_count":{"dependencies":13},"issue_author_associations_count":{"OWNER":37,"NONE":9},"pull_request_author_associations_count":{"NONE":23,"OWNER":12},"issue_authors":{"ADGEfficiency":37,"fokx":1,"KeirSimmons":1,"Sudococommunity":1,"LucaNicoliYT88":1,"bollegijscoding":1,"satishravindran":1,"ghost":1,"adityauser":1,"IanQS":1},"pull_request_authors":{"dependabot[bot]":13,"ADGEfficiency":12,"tomharvey":3,"hassaku":3,"KeirSimmons":2,"nhoening":1,"ghost":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-03-06T00:00:12.726Z","repositories_count":13604369,"issues_count":34899955,"pull_requests_count":113819887,"authors_count":11185219,"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":{"OWNER":4,"NONE":1},"past_year_pull_request_author_associations_count":{"OWNER":9},"past_year_issue_authors":{"ADGEfficiency":4,"Sudococommunity":1},"past_year_pull_request_authors":{"ADGEfficiency":9},"maintainers":[{"login":"ADGEfficiency","count":49,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ADGEfficiency"}],"active_maintainers":[{"login":"ADGEfficiency","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ADGEfficiency"}]},"events":{"total":{"DeleteEvent":5,"PullRequestEvent":11,"ForkEvent":1,"IssuesEvent":13,"WatchEvent":9,"IssueCommentEvent":12,"PushEvent":85,"CreateEvent":4},"last_year":{"DeleteEvent":5,"PullRequestEvent":11,"ForkEvent":1,"IssuesEvent":13,"WatchEvent":5,"IssueCommentEvent":12,"PushEvent":85,"CreateEvent":4}},"keywords":["energy","reinforcement-learning"],"dependencies":[{"ecosystem":"pypi","filepath":"requirements.txt","sha":null,"kind":"manifest","created_at":"2022-08-29T02:40:28.967Z","updated_at":"2022-08-29T02:40:28.967Z","repository_link":"https://github.com/ADGEfficiency/energy-py/blob/main/requirements.txt","dependencies":[{"id":3089244724,"package_name":"tensorflow","ecosystem":"pypi","requirements":"==2.5.0","direct":true,"kind":"runtime","optional":false},{"id":3089244725,"package_name":"tensorflow-estimator","ecosystem":"pypi","requirements":"==2.5.0","direct":true,"kind":"runtime","optional":false},{"id":3089244726,"package_name":"tensorflow-probability","ecosystem":"pypi","requirements":"==0.13.0","direct":true,"kind":"runtime","optional":false},{"id":3089244727,"package_name":"pytest","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":3089244728,"package_name":"click","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":3089244729,"package_name":"imageio","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":3089244730,"package_name":"gym","ecosystem":"pypi","requirements":"==0.18.0","direct":true,"kind":"runtime","optional":false},{"id":3089244731,"package_name":"pandas","ecosystem":"pypi","requirements":"==1.2.3","direct":true,"kind":"runtime","optional":false},{"id":3089244732,"package_name":"tdqm","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"setup.py","sha":null,"kind":"manifest","created_at":"2022-08-29T02:40:29.073Z","updated_at":"2022-08-29T02:40:29.073Z","repository_link":"https://github.com/ADGEfficiency/energy-py/blob/main/setup.py","dependencies":[{"id":3089244770,"package_name":"Click","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/test.yml","sha":null,"kind":"manifest","created_at":"2023-09-21T19:15:12.708Z","updated_at":"2023-09-21T19:15:12.708Z","repository_link":"https://github.com/ADGEfficiency/energy-py/blob/main/.github/workflows/test.yml","dependencies":[{"id":13856556646,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":13856556647,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]}],"score":5.918893854273147,"created_at":"2023-09-11T14:52:08.422Z","updated_at":"2026-04-08T15:01:22.597Z","avatar_url":"https://github.com/ADGEfficiency.png","language":"Python","category":"Energy Systems","sub_category":"Energy System Modeling Frameworks","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# energypy\n\n![Tests](https://github.com/ADGEfficiency/energy-py/actions/workflows/test.yml/badge.svg?branch=main)\n\nA framework for running reinforcement learning experiments on energy environments - starting with electric battery storage.\n\n## Features\n\n- Electric battery storage environment for energy arbitrage\n- Integration with [Gymnasium](https://gymnasium.farama.org/) as a custom Gymnasium environment\n- Integration with [Stable Baselines 3](https://stable-baselines3.readthedocs.io/) for reinforcement learning agents\n- Historical electricity price data for realistic training scenarios\n- Experiment framework for training and evaluation on separate datasets\n- Tensorboard logging for experiment tracking\n\n## Setup\n\n```shell-session\n$ make setup\n```\n\n## Examples\n\n```shell-session\n$ uv run examples/battery.py\n```\n\nOr run a more extensive experiment with real electricity price data:\n\n```shell-session\n$ uv run examples/battery_arbitrage_experiments.py\n```\n\n## Test\n\n```shell-session\n$ make test\n```\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/19949","html_url":"https://ost.ecosyste.ms/projects/19949"}