{"id":20009,"name":"Gym-ANM","description":"Design Reinforcement Learning environments that model Active Network Management tasks in electricity distribution networks.","url":"https://github.com/robinhenry/gym-anm","last_synced_at":"2026-04-06T14:00:21.507Z","repository":{"id":49295446,"uuid":"197476036","full_name":"robinhenry/gym-anm","owner":"robinhenry","description":"A framework to design Reinforcement Learning environments that model Active Network Management (ANM) tasks in electricity distribution networks.","archived":false,"fork":false,"pushed_at":"2024-11-14T09:43:59.000Z","size":7336,"stargazers_count":167,"open_issues_count":0,"forks_count":35,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-03-09T02:53:21.637Z","etag":null,"topics":["active-network-management","control","electricity-networks","gym-environments","reinforcement-learning"],"latest_commit_sha":null,"homepage":"https://gym-anm.readthedocs.io/en/latest/","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/robinhenry.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-07-17T23:19:13.000Z","updated_at":"2025-12-26T09:35:31.000Z","dependencies_parsed_at":"2023-09-21T19:19:01.682Z","dependency_job_id":"8b70a5d3-3da9-48a9-b07a-c0846469958b","html_url":"https://github.com/robinhenry/gym-anm","commit_stats":{"total_commits":227,"total_committers":3,"mean_commits":75.66666666666667,"dds":"0.022026431718061623","last_synced_commit":"0e02c33df990fab2ec263dfaf6945703b05a4903"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/robinhenry/gym-anm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robinhenry","download_url":"https://codeload.github.com/robinhenry/gym-anm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm/sbom","scorecard":{"id":780699,"data":{"date":"2025-08-11","repo":{"name":"github.com/robinhenry/gym-anm","commit":"a2e57df598643975382d74d4933130c29a4b53fa"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.2,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci_checks.yml:1","Warn: no topLevel permission defined: .github/workflows/ci_release.yml:1","Warn: no topLevel permission defined: .github/workflows/stale_issues.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci_checks.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/robinhenry/gym-anm/ci_checks.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci_checks.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/robinhenry/gym-anm/ci_checks.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci_checks.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/robinhenry/gym-anm/ci_checks.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci_checks.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/robinhenry/gym-anm/ci_checks.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci_release.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/robinhenry/gym-anm/ci_release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci_release.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/robinhenry/gym-anm/ci_release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci_release.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/robinhenry/gym-anm/ci_release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci_release.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/robinhenry/gym-anm/ci_release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/stale_issues.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/robinhenry/gym-anm/stale_issues.yml/main?enable=pin","Info:   0 out of   5 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Info: FSF or OSI recognized license: MIT License: LICENSE.md:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/ci_release.yml:8"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":3,"reason":"7 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2024-48 / GHSA-fj7x-q9j7-g6q6","Warn: Project is vulnerable to: GHSA-cpwx-vrp4-4pq7","Warn: Project is vulnerable to: GHSA-gmj6-6f8f-6699","Warn: Project is vulnerable to: GHSA-q2x7-8rv6-6q7h","Warn: Project is vulnerable to: GHSA-9hjg-9r4m-mvj7","Warn: Project is vulnerable to: GHSA-48p4-8xcf-vxj5","Warn: Project is vulnerable to: GHSA-pq67-6m6q-mj2v"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 7 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-23T04:50:17.370Z","repository_id":49295446,"created_at":"2025-08-23T04:50:17.370Z","updated_at":"2025-08-23T04:50:17.370Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30608886,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-16T23:44:20.790Z","status":"online","status_checked_at":"2026-03-17T02:00:07.764Z","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":{"login":"robinhenry","name":"Robin Henry","uuid":"33941047","kind":"user","description":"Research engineer interested in disruptive technology. Currently Data Scientist @ Habitat Energy.","email":"","website":null,"location":"Oxford, UK","twitter":null,"company":"Habitat Energy","icon_url":"https://avatars.githubusercontent.com/u/33941047?u=8fbd17ad448b250c5ee1c6f2a4042dd9cdf12778\u0026v=4","repositories_count":13,"last_synced_at":"2024-06-11T15:44:03.643Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/robinhenry","funding_links":[],"total_stars":140,"followers":25,"following":16,"created_at":"2023-03-05T15:08:09.026Z","updated_at":"2024-06-11T15:44:04.597Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robinhenry","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robinhenry/repositories"},"packages":[{"id":2754795,"name":"gym-anm","ecosystem":"pypi","description":"A framework to build Reinforcement Learning environments for Active Network Management tasks in electricity networks.","homepage":"https://github.com/robinhenry/gym-anm","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/robinhenry/gym-anm","keywords_array":[],"namespace":null,"versions_count":11,"first_release_published_at":"2021-03-10T14:16:49.000Z","latest_release_published_at":"2024-11-14T09:32:22.000Z","latest_release_number":"2.0.1","last_synced_at":"2026-04-02T12:00:55.979Z","created_at":"2022-04-10T11:12:37.851Z","updated_at":"2026-04-02T12:00:55.980Z","registry_url":"https://pypi.org/project/gym-anm/","install_command":"pip install gym-anm --index-url https://pypi.org/simple","documentation_url":"https://gym-anm.readthedocs.io/en/latest/","metadata":{"funding":null,"documentation":"https://gym-anm.readthedocs.io/en/latest/","classifiers":["License :: OSI Approved :: MIT License","Programming Language :: Python :: 3","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13"],"normalized_name":"gym-anm","project_status":null},"repo_metadata":{"id":49295446,"uuid":"197476036","full_name":"robinhenry/gym-anm","owner":"robinhenry","description":"Design Reinforcement Learning environments that model Active Network Management (ANM) tasks in electricity distribution networks.","archived":false,"fork":false,"pushed_at":"2023-06-18T12:25:28.000Z","size":7260,"stargazers_count":130,"open_issues_count":0,"forks_count":31,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-06-11T17:49:46.433Z","etag":null,"topics":["electricity-networks","gym-environments","reinforcement-learning"],"latest_commit_sha":null,"homepage":"https://gym-anm.readthedocs.io/en/latest/","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/robinhenry.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-07-17T23:19:13.000Z","updated_at":"2024-06-03T12:13:04.000Z","dependencies_parsed_at":"2023-09-21T19:19:01.682Z","dependency_job_id":"8b70a5d3-3da9-48a9-b07a-c0846469958b","html_url":"https://github.com/robinhenry/gym-anm","commit_stats":{"total_commits":227,"total_committers":3,"mean_commits":75.66666666666667,"dds":"0.022026431718061623","last_synced_commit":"0e02c33df990fab2ec263dfaf6945703b05a4903"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robinhenry","download_url":"https://codeload.github.com/robinhenry/gym-anm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":216752986,"owners_count":16074552,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"robinhenry","name":"Robin Henry","uuid":"33941047","kind":"user","description":"Research engineer interested in disruptive technology. Currently Data Scientist @ Habitat Energy.","email":"","website":null,"location":"Oxford, UK","twitter":null,"company":"Habitat Energy","icon_url":"https://avatars.githubusercontent.com/u/33941047?u=8fbd17ad448b250c5ee1c6f2a4042dd9cdf12778\u0026v=4","repositories_count":13,"last_synced_at":"2024-06-11T15:44:03.643Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/robinhenry","funding_links":[],"total_stars":140,"followers":25,"following":16,"created_at":"2023-03-05T15:08:09.026Z","updated_at":"2024-06-11T15:44:04.597Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robinhenry","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robinhenry/repositories"},"tags":[{"name":"1.1.6","sha":"632ae4a475f3622861b4bdb5453de4a67c623e5b","kind":"commit","published_at":"2023-04-14T19:53:38.000Z","download_url":"https://codeload.github.com/robinhenry/gym-anm/tar.gz/1.1.6","html_url":"https://github.com/robinhenry/gym-anm/releases/tag/1.1.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm/tags/1.1.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm/tags/1.1.6/manifests"},{"name":"1.1.5","sha":"7d2ff6741bdea64e0b1040dff2edaf0c7a4a9683","kind":"commit","published_at":"2023-04-14T19:11:23.000Z","download_url":"https://codeload.github.com/robinhenry/gym-anm/tar.gz/1.1.5","html_url":"https://github.com/robinhenry/gym-anm/releases/tag/1.1.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm/tags/1.1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm/tags/1.1.5/manifests"},{"name":"1.1.4","sha":"5b5e1698d625bc68a8feb2246f1fbd25811f52e4","kind":"commit","published_at":"2022-11-27T02:24:16.000Z","download_url":"https://codeload.github.com/robinhenry/gym-anm/tar.gz/1.1.4","html_url":"https://github.com/robinhenry/gym-anm/releases/tag/1.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm/tags/1.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm/tags/1.1.4/manifests"},{"name":"1.1.3","sha":"101463b403ae9c6ec2cbb92b344bce28d768e7ac","kind":"commit","published_at":"2022-11-27T02:07:43.000Z","download_url":"https://codeload.github.com/robinhenry/gym-anm/tar.gz/1.1.3","html_url":"https://github.com/robinhenry/gym-anm/releases/tag/1.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm/tags/1.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm/tags/1.1.3/manifests"},{"name":"1.1.2","sha":"5f6267e51be8c6930efbfb7377652254d12896d3","kind":"commit","published_at":"2022-11-27T01:42:00.000Z","download_url":"https://codeload.github.com/robinhenry/gym-anm/tar.gz/1.1.2","html_url":"https://github.com/robinhenry/gym-anm/releases/tag/1.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm/tags/1.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm/tags/1.1.2/manifests"},{"name":"1.1.1","sha":"2c6acef2fb0edf7f19e12b1f76fe6ffa064054dc","kind":"commit","published_at":"2022-11-27T01:35:26.000Z","download_url":"https://codeload.github.com/robinhenry/gym-anm/tar.gz/1.1.1","html_url":"https://github.com/robinhenry/gym-anm/releases/tag/1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm/tags/1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm/tags/1.1.1/manifests"},{"name":"1.1.0","sha":"9c0b23707decf11069eb4f8accf413417d911454","kind":"commit","published_at":"2022-11-27T01:25:12.000Z","download_url":"https://codeload.github.com/robinhenry/gym-anm/tar.gz/1.1.0","html_url":"https://github.com/robinhenry/gym-anm/releases/tag/1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm/tags/1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm/tags/1.1.0/manifests"},{"name":"1.0.2","sha":"231097eb0fe00d26a55b6324581b875533916c94","kind":"commit","published_at":"2021-10-22T19:45:31.000Z","download_url":"https://codeload.github.com/robinhenry/gym-anm/tar.gz/1.0.2","html_url":"https://github.com/robinhenry/gym-anm/releases/tag/1.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm/tags/1.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm/tags/1.0.2/manifests"}]},"repo_metadata_updated_at":"2024-09-07T19:53:21.495Z","dependent_packages_count":1,"downloads":251,"downloads_period":"last-month","dependent_repos_count":3,"rankings":{"downloads":3.0860355228800387,"dependent_repos_count":9.143324777740581,"dependent_packages_count":3.2435152210473146,"stargazers_count":6.513351460233379,"forks_count":7.394819788954365,"docker_downloads_count":null,"average":5.876209354171136},"purl":"pkg:pypi/gym-anm","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/gym-anm","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/gym-anm","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/gym-anm/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2024-09-07T18:32:13.784Z","issues_count":10,"pull_requests_count":9,"avg_time_to_close_issue":7339328.4,"avg_time_to_close_pull_request":116986.0,"issues_closed_count":10,"pull_requests_closed_count":9,"pull_request_authors_count":2,"issue_authors_count":7,"avg_comments_per_issue":1.5,"avg_comments_per_pull_request":0.0,"merged_pull_requests_count":9,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm/issues","maintainers":[{"login":"robinhenry","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/robinhenry"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/gym-anm/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/gym-anm/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/gym-anm/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/gym-anm/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/gym-anm/codemeta","maintainers":[{"uuid":"robinhenry","login":"robinhenry","name":null,"email":null,"url":null,"packages_count":2,"html_url":"https://pypi.org/user/robinhenry/","role":null,"created_at":"2022-11-27T06:37:00.143Z","updated_at":"2022-11-27T06:37:00.143Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/robinhenry/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":833440,"maintainers_count":355816,"namespaces_count":0,"keywords_count":270194,"github":"pypi","metadata":{"funded_packages_count":53084},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2026-04-05T05:05:39.368Z","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":590667,"full_name":"robinhenry/gym-anm","default_branch":"main","total_commits":235,"total_committers":3,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":78.33333333333333,"dds":0.021276595744680882,"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-02T12:02:32.906Z","last_synced_commit":"a2e57df598643975382d74d4933130c29a4b53fa","created_at":"2023-03-09T06:19:38.584Z","updated_at":"2026-04-02T12:02:18.643Z","committers":[{"name":"Robin Henry","email":"robin.henry012@gmail.com","login":"robinhenry","count":230},{"name":"robin henry","email":"rhenry@vega.ulg.ac.be","login":null,"count":4},{"name":"Satya Prakash Dash","email":"sprakashdash@gmail.com","login":"sprakashdash","count":1}],"past_year_committers":[],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-06T00:00:08.903Z","repositories_count":6211229,"commits_count":921932100,"contributors_count":35687158,"owners_count":1143388,"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":"robinhenry/gym-anm","html_url":"https://github.com/robinhenry/gym-anm","last_synced_at":"2025-09-01T03:05:36.354Z","status":"error","issues_count":10,"pull_requests_count":11,"avg_time_to_close_issue":7339328.4,"avg_time_to_close_pull_request":188557.81818181818,"issues_closed_count":10,"pull_requests_closed_count":11,"pull_request_authors_count":2,"issue_authors_count":7,"avg_comments_per_issue":1.5,"avg_comments_per_pull_request":0.0,"merged_pull_requests_count":10,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":2,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":510631.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":2,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"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":1,"created_at":"2023-05-09T10:36:49.494Z","updated_at":"2025-09-02T19:16:17.680Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinhenry%2Fgym-anm/issues","issue_labels_count":{"stale":2,"enhancement":1,"bug":1},"pull_request_labels_count":{},"issue_author_associations_count":{"NONE":7,"OWNER":1,"CONTRIBUTOR":1},"pull_request_author_associations_count":{"OWNER":12,"NONE":1,"CONTRIBUTOR":1},"issue_authors":{"Kim-369":2,"sifatron":2,"sprakashdash":1,"robinhenry":1,"pablo-ta":1,"diegofz":1,"lordmuck2020":1},"pull_request_authors":{"robinhenry":12,"sprakashdash":1,"halduaij":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-06T00:00:09.270Z","repositories_count":14106272,"issues_count":34454647,"pull_requests_count":112472246,"authors_count":11227558,"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":{},"past_year_pull_request_author_associations_count":{"NONE":1},"past_year_issue_authors":{},"past_year_pull_request_authors":{"halduaij":1},"maintainers":[{"login":"robinhenry","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/robinhenry"}],"active_maintainers":[]},"events":{"total":{"ReleaseEvent":1,"DeleteEvent":1,"PullRequestEvent":5,"ForkEvent":3,"WatchEvent":29,"PushEvent":21,"CreateEvent":4},"last_year":{"PullRequestEvent":2,"ForkEvent":2,"WatchEvent":12}},"keywords":["active-network-management","control","electricity-networks","gym-environments","reinforcement-learning"],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/ci_checks.yml","sha":null,"kind":"manifest","created_at":"2023-01-24T03:01:48.811Z","updated_at":"2023-01-24T03:01:48.811Z","repository_link":"https://github.com/robinhenry/gym-anm/blob/main/.github/workflows/ci_checks.yml","dependencies":[{"id":7132739854,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7132739855,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":7132739856,"package_name":"abatilo/actions-poetry","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":7132739857,"package_name":"codecov/codecov-action","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/ci_release.yml","sha":null,"kind":"manifest","created_at":"2023-01-24T03:01:48.818Z","updated_at":"2023-01-24T03:01:48.818Z","repository_link":"https://github.com/robinhenry/gym-anm/blob/main/.github/workflows/ci_release.yml","dependencies":[{"id":7132739858,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":7132739859,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":7132739860,"package_name":"abatilo/actions-poetry","ecosystem":"actions","requirements":"v2.0.0","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"poetry.lock","sha":null,"kind":"lockfile","created_at":"2023-01-24T03:01:48.824Z","updated_at":"2023-01-24T03:01:48.824Z","repository_link":"https://github.com/robinhenry/gym-anm/blob/main/poetry.lock","dependencies":[{"id":7132739861,"package_name":"attrs","ecosystem":"pypi","requirements":"22.1.0","direct":false,"kind":"develop","optional":false},{"id":7132739862,"package_name":"black","ecosystem":"pypi","requirements":"22.10.0","direct":false,"kind":"develop","optional":false},{"id":7132739863,"package_name":"certifi","ecosystem":"pypi","requirements":"2022.9.24","direct":false,"kind":"runtime","optional":false},{"id":7132739864,"package_name":"charset-normalizer","ecosystem":"pypi","requirements":"2.1.1","direct":false,"kind":"runtime","optional":false},{"id":7132739865,"package_name":"click","ecosystem":"pypi","requirements":"8.1.3","direct":false,"kind":"develop","optional":false},{"id":7132739866,"package_name":"cloudpickle","ecosystem":"pypi","requirements":"2.2.0","direct":false,"kind":"runtime","optional":false},{"id":7132739867,"package_name":"colorama","ecosystem":"pypi","requirements":"0.4.6","direct":false,"kind":"develop","optional":false},{"id":7132739868,"package_name":"coverage","ecosystem":"pypi","requirements":"6.5.0","direct":false,"kind":"develop","optional":false},{"id":7132739869,"package_name":"cvxpy","ecosystem":"pypi","requirements":"1.2.2","direct":false,"kind":"runtime","optional":false},{"id":7132739870,"package_name":"ecos","ecosystem":"pypi","requirements":"2.0.10","direct":false,"kind":"runtime","optional":false},{"id":7132739871,"package_name":"exceptiongroup","ecosystem":"pypi","requirements":"1.0.4","direct":false,"kind":"develop","optional":false},{"id":7132739872,"package_name":"gym","ecosystem":"pypi","requirements":"0.26.2","direct":false,"kind":"runtime","optional":false},{"id":7132739873,"package_name":"gym-notices","ecosystem":"pypi","requirements":"0.0.8","direct":false,"kind":"runtime","optional":false},{"id":7132739874,"package_name":"idna","ecosystem":"pypi","requirements":"3.4","direct":false,"kind":"runtime","optional":false},{"id":7132739875,"package_name":"importlib-metadata","ecosystem":"pypi","requirements":"5.1.0","direct":false,"kind":"runtime","optional":false},{"id":7132739876,"package_name":"iniconfig","ecosystem":"pypi","requirements":"1.1.1","direct":false,"kind":"develop","optional":false},{"id":7132739877,"package_name":"mypy","ecosystem":"pypi","requirements":"0.981","direct":false,"kind":"develop","optional":false},{"id":7132739878,"package_name":"mypy-extensions","ecosystem":"pypi","requirements":"0.4.3","direct":false,"kind":"develop","optional":false},{"id":7132739879,"package_name":"numpy","ecosystem":"pypi","requirements":"1.23.5","direct":false,"kind":"runtime","optional":false},{"id":7132739880,"package_name":"osqp","ecosystem":"pypi","requirements":"0.6.2.post8","direct":false,"kind":"runtime","optional":false},{"id":7132739881,"package_name":"packaging","ecosystem":"pypi","requirements":"21.3","direct":false,"kind":"develop","optional":false},{"id":7132739882,"package_name":"pandas","ecosystem":"pypi","requirements":"1.5.2","direct":false,"kind":"runtime","optional":false},{"id":7132739883,"package_name":"pathspec","ecosystem":"pypi","requirements":"0.10.2","direct":false,"kind":"develop","optional":false},{"id":7132739884,"package_name":"platformdirs","ecosystem":"pypi","requirements":"2.5.4","direct":false,"kind":"develop","optional":false},{"id":7132739885,"package_name":"pluggy","ecosystem":"pypi","requirements":"1.0.0","direct":false,"kind":"develop","optional":false},{"id":7132739886,"package_name":"pyparsing","ecosystem":"pypi","requirements":"3.0.9","direct":false,"kind":"develop","optional":false},{"id":7132739887,"package_name":"pytest","ecosystem":"pypi","requirements":"7.2.0","direct":false,"kind":"develop","optional":false},{"id":7132739888,"package_name":"pytest-cov","ecosystem":"pypi","requirements":"3.0.0","direct":false,"kind":"develop","optional":false},{"id":7132739889,"package_name":"python-dateutil","ecosystem":"pypi","requirements":"2.8.2","direct":false,"kind":"runtime","optional":false},{"id":7132739890,"package_name":"pytz","ecosystem":"pypi","requirements":"2022.6","direct":false,"kind":"runtime","optional":false},{"id":7132739891,"package_name":"qdldl","ecosystem":"pypi","requirements":"0.1.5.post2","direct":false,"kind":"runtime","optional":false},{"id":7132739892,"package_name":"requests","ecosystem":"pypi","requirements":"2.28.1","direct":false,"kind":"runtime","optional":false},{"id":7132739893,"package_name":"scipy","ecosystem":"pypi","requirements":"1.9.3","direct":false,"kind":"runtime","optional":false},{"id":7132739894,"package_name":"scs","ecosystem":"pypi","requirements":"3.2.2","direct":false,"kind":"runtime","optional":false},{"id":7132739895,"package_name":"six","ecosystem":"pypi","requirements":"1.16.0","direct":false,"kind":"runtime","optional":false},{"id":7132739896,"package_name":"tomli","ecosystem":"pypi","requirements":"2.0.1","direct":false,"kind":"develop","optional":false},{"id":7132739897,"package_name":"typing-extensions","ecosystem":"pypi","requirements":"4.4.0","direct":false,"kind":"develop","optional":false},{"id":7132739898,"package_name":"urllib3","ecosystem":"pypi","requirements":"1.26.13","direct":false,"kind":"runtime","optional":false},{"id":7132739899,"package_name":"websocket-client","ecosystem":"pypi","requirements":"0.56.0","direct":false,"kind":"runtime","optional":false},{"id":7132739900,"package_name":"websocket-server","ecosystem":"pypi","requirements":"0.4","direct":false,"kind":"runtime","optional":false},{"id":7132739901,"package_name":"zipp","ecosystem":"pypi","requirements":"3.11.0","direct":false,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2023-01-24T03:01:48.839Z","updated_at":"2023-01-24T03:01:48.839Z","repository_link":"https://github.com/robinhenry/gym-anm/blob/main/pyproject.toml","dependencies":[{"id":7132739902,"package_name":"python","ecosystem":"pypi","requirements":"^3.8","direct":true,"kind":"runtime","optional":false},{"id":7132739903,"package_name":"numpy","ecosystem":"pypi","requirements":"^1.23.5","direct":true,"kind":"runtime","optional":false},{"id":7132739904,"package_name":"pandas","ecosystem":"pypi","requirements":"^1.5.2","direct":true,"kind":"runtime","optional":false},{"id":7132739905,"package_name":"cvxpy","ecosystem":"pypi","requirements":"^1.2.2","direct":true,"kind":"runtime","optional":false},{"id":7132739906,"package_name":"gym","ecosystem":"pypi","requirements":"^0.26.2","direct":true,"kind":"runtime","optional":false},{"id":7132739907,"package_name":"websocket-client","ecosystem":"pypi","requirements":"0.56.0","direct":true,"kind":"runtime","optional":false},{"id":7132739908,"package_name":"websocket-server","ecosystem":"pypi","requirements":"0.4","direct":true,"kind":"runtime","optional":false},{"id":7132739909,"package_name":"requests","ecosystem":"pypi","requirements":"^2.28.1","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/stale_issues.yml","sha":null,"kind":"manifest","created_at":"2023-09-21T19:18:58.449Z","updated_at":"2023-09-21T19:18:58.449Z","repository_link":"https://github.com/robinhenry/gym-anm/blob/main/.github/workflows/stale_issues.yml","dependencies":[{"id":13856580550,"package_name":"actions/stale","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"docs/requirements.txt","sha":null,"kind":"manifest","created_at":"2023-09-21T19:18:58.835Z","updated_at":"2023-09-21T19:18:58.835Z","repository_link":"https://github.com/robinhenry/gym-anm/blob/main/docs/requirements.txt","dependencies":[{"id":13856581412,"package_name":"gym","ecosystem":"pypi","requirements":"==0.26.2","direct":true,"kind":"runtime","optional":false}]}],"score":11.761783545564427,"created_at":"2023-09-11T14:52:08.965Z","updated_at":"2026-04-06T14:00:21.561Z","avatar_url":"https://github.com/robinhenry.png","language":"Python","category":"Energy Systems","sub_category":"Grid Management and Microgrid","monthly_downloads":251,"total_dependent_repos":3,"total_dependent_packages":1,"readme":"# Gym-ANM\n[![Downloads](https://pepy.tech/badge/gym-anm)](https://pepy.tech/project/gym-anm)\n[![Documentation Status](https://readthedocs.org/projects/ansicolortags/badge/?version=latest)](https://gym-anm.readthedocs.io/)\n[![codecov](https://codecov.io/gh/robinhenry/gym-anm/branch/master/graph/badge.svg?token=7JSMJPPIQ7)](https://codecov.io/gh/robinhenry/gym-anm)\n[![Checks](https://github.com/robinhenry/gym-anm/actions/workflows/ci_checks.yml/badge.svg?branch=main)](https://github.com/robinhenry/gym-anm/actions/workflows/ci_checks.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n`gym-anm` is a framework for designing reinforcement learning (RL) environments that model Active Network\nManagement (ANM) tasks in electricity distribution networks. It is built on top of the\n[Gymnasium](https://github.com/Farama-Foundation/Gymnasium) toolkit.\n\nThe `gym-anm` framework was designed with one goal in mind: **bridge the gap between research in RL and in\nthe management of power systems**. We attempt to do this by providing RL researchers with an easy-to-work-with\nlibrary of environments that model decision-making tasks in power grids.\n\n**Papers:**\n*  [Gym-ANM: Reinforcement Learning Environments for Active Network Management Tasks in Electricity Distribution Systems](https://doi.org/10.1016/j.egyai.2021.100092)\n*  [Gym-ANM: Open-source software to leverage reinforcement learning for power system management in research and education](https://doi.org/10.1016/j.simpa.2021.100092)\n\n## Key features\n*  Very little background in electricity systems modelling it required. This makes `gym-anm` an ideal starting point\n   for RL students and researchers looking to enter the field.\n*  The environments (tasks) generated by `gym-anm` follow the [Gymnasium](https://github.com/Farama-Foundation/Gymnasium)\n   framework, with which a large part of the RL community is already familiar.\n*  The flexibility of `gym-anm`, with its different customizable components, makes it a suitable framework\n   to model a wide range of ANM tasks, from simple ones that can be used for educational purposes, to complex ones\n   designed to conduct advanced research.\n\n## Documentation\nDocumentation is provided online at [https://gym-anm.readthedocs.io/en/latest/](https://gym-anm.readthedocs.io/en/latest/).\n\n## Installation\n\n### Requirements\n`gym-anm` requires Python 3.10+ and can run on Linux, MaxOS, and Windows. Some rendering features may not work properly\non Windows (not tested).\n\nIf you need Python 3.8 or 3.9, you can use `gym-anm \u003c 2.0`.\n\nWe recommend installing `gym-anm` in a Python environment (e.g., [virtualenv](https://virtualenv.pypa.io/en/latest/)\nor [conda](https://conda.io/en/latest/#)).\n\n### Using pip\nUsing pip (preferably after activating your virtual environment):\n```\npip install gym-anm\n```\n\n### Building from source\nAlternatively, you can build `gym-anm` directly from source:\n```\ngit clone https://github.com/robinhenry/gym-anm.git\ncd gym-anm\npip install -e .\n```\n\n## Example\nThe following code snippet illustrates how `gym-anm` environments can be used. In this example,\nactions are randomly sampled from the action space of the environment `ANM6Easy-v0`. For more information\nabout the agent-environment interface, see the official [Gymnasium documentation](https://github.com/Farama-Foundation/Gymnasium).\n```\nimport gymnasium as gym\nimport time\n\ndef run():\n   env = gym.make('gym_anm:ANM6Easy-v0')\n   o = env.reset()\n\n   for i in range(100):\n       a = env.action_space.sample()\n       o, r, done, info = env.step(a)\n       env.render()\n       time.sleep(0.5)  # otherwise the rendering is too fast for the human eye.\n\n   env.close()\n\nif __name__ == '__main__':\n    run()\n```\nThe above code would render the environment in your default web browser as shown in the image below:\n![alt text](https://github.com/robinhenry/gym-anm/blob/main/docs/source/images/anm6-easy-example.png?raw=true)\n\nAdditional example scripts can be found in [examples/](examples).\n\n## Testing the installation\nAll unit tests in `gym-anm` can be ran from the project root directory with:\n```\npython -m pytest tests\n```\n\n## Contributing\nContributions are always welcome! Please read the [contribution guidelines](CONTRIBUTING.md) first.\n\n## Citing the project\nAll publications derived from the use of `gym-anm` should cite the following two 2021 papers:\n```\n@article{HENRY2021100092,\n    title = {Gym-ANM: Reinforcement learning environments for active network management tasks in electricity distribution systems},\n    journal = {Energy and AI},\n    volume = {5},\n    pages = {100092},\n    year = {2021},\n    issn = {2666-5468},\n    doi = {https://doi.org/10.1016/j.egyai.2021.100092},\n    author = {Robin Henry and Damien Ernst},\n}\n```\n```\n@article{HENRY2021100092,\n    title = {Gym-ANM: Open-source software to leverage reinforcement learning for power system management in research and education},\n    journal = {Software Impacts},\n    volume = {9},\n    pages = {100092},\n    year = {2021},\n    issn = {2665-9638},\n    doi = {https://doi.org/10.1016/j.simpa.2021.100092},\n    author = {Robin Henry and Damien Ernst}\n}\n```\n\n## Maintainers\n`gym-anm` is currently maintained by [Robin Henry](https://github.com/robinhenry).\n\n## License\nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details.\n","funding_links":[],"readme_doi_urls":["https://doi.org/10.1016/j.egyai.2021.100092","https://doi.org/10.1016/j.simpa.2021.100092"],"works":{"https://doi.org/10.1016/j.egyai.2021.100092":{"id":"https://openalex.org/W3137465606","doi":"https://doi.org/10.1016/j.egyai.2021.100092","title":"Gym-ANM: Reinforcement learning environments for active network management tasks in electricity distribution systems","display_name":"Gym-ANM: Reinforcement learning environments for active network management tasks in electricity distribution systems","publication_year":2021,"publication_date":"2021-09-01","ids":{"openalex":"https://openalex.org/W3137465606","doi":"https://doi.org/10.1016/j.egyai.2021.100092","mag":"3137465606"},"language":"en","primary_location":{"is_oa":true,"landing_page_url":"https://doi.org/10.1016/j.egyai.2021.100092","pdf_url":null,"source":{"id":"https://openalex.org/S4210241048","display_name":"Energy and AI","issn_l":"2666-5468","issn":["2666-5468"],"is_oa":true,"is_in_doaj":true,"host_organization":"https://openalex.org/P4310320990","host_organization_name":"Elsevier BV","host_organization_lineage":["https://openalex.org/P4310320990"],"host_organization_lineage_names":["Elsevier BV"],"type":"journal"},"license":"cc-by","version":"publishedVersion","is_accepted":true,"is_published":true},"type":"article","type_crossref":"journal-article","open_access":{"is_oa":true,"oa_status":"gold","oa_url":"https://doi.org/10.1016/j.egyai.2021.100092","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5015178373","display_name":"R D Henry","orcid":null},"institutions":[{"id":"https://openalex.org/I98677209","display_name":"University of Edinburgh","ror":"https://ror.org/01nrxwf90","country_code":"GB","type":"education","lineage":["https://openalex.org/I98677209"]}],"countries":["GB"],"is_corresponding":true,"raw_author_name":"Robin Henry","raw_affiliation_string":"School of Engineering, Sanderson Building, The University of Edinburgh, Edinburgh, EH9 3FB, UK","raw_affiliation_strings":["School of Engineering, Sanderson Building, The University of Edinburgh, Edinburgh, EH9 3FB, UK"]},{"author_position":"last","author":{"id":"https://openalex.org/A5077011518","display_name":"Damien Ernst","orcid":null},"institutions":[{"id":"https://openalex.org/I157674565","display_name":"University of Liège","ror":"https://ror.org/00afp2z80","country_code":"BE","type":"education","lineage":["https://openalex.org/I157674565"]}],"countries":["BE"],"is_corresponding":false,"raw_author_name":"Damien Ernst","raw_affiliation_string":"Department of Electrical Engineering and Computer Science, Montefiore Institute, University of Liége, Liége B-4000, Belgium","raw_affiliation_strings":["Department of Electrical Engineering and Computer Science, Montefiore Institute, University of Liége, Liége B-4000, Belgium"]}],"countries_distinct_count":2,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5015178373"],"corresponding_institution_ids":["https://openalex.org/I98677209"],"apc_list":{"value":3000,"currency":"USD","value_usd":3000,"provenance":"doaj"},"apc_paid":{"value":2090,"currency":"EUR","value_usd":2254,"provenance":"openapc"},"has_fulltext":true,"fulltext_origin":"pdf","cited_by_count":10,"cited_by_percentile_year":{"min":92,"max":93},"biblio":{"volume":"5","issue":null,"first_page":"100092","last_page":"100092"},"is_retracted":false,"is_paratext":false,"keywords":[{"keyword":"active network management tasks","score":0.5353},{"keyword":"reinforcement","score":0.4005},{"keyword":"gym-anm","score":0.25}],"concepts":[{"id":"https://openalex.org/C97541855","wikidata":"https://www.wikidata.org/wiki/Q830687","display_name":"Reinforcement learning","level":2,"score":0.84386945},{"id":"https://openalex.org/C8642999","wikidata":"https://www.wikidata.org/wiki/Q4171168","display_name":"Hyperparameter","level":2,"score":0.8281305},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.73588324},{"id":"https://openalex.org/C206658404","wikidata":"https://www.wikidata.org/wiki/Q12725","display_name":"Electricity","level":2,"score":0.56835335},{"id":"https://openalex.org/C72434380","wikidata":"https://www.wikidata.org/wiki/Q230930","display_name":"State space","level":2,"score":0.50926554},{"id":"https://openalex.org/C120314980","wikidata":"https://www.wikidata.org/wiki/Q180634","display_name":"Distributed computing","level":1,"score":0.50574756},{"id":"https://openalex.org/C2778572836","wikidata":"https://www.wikidata.org/wiki/Q380933","display_name":"Space (punctuation)","level":2,"score":0.47781208},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.46598166},{"id":"https://openalex.org/C188573790","wikidata":"https://www.wikidata.org/wiki/Q12705","display_name":"Renewable energy","level":2,"score":0.44899175},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.38549483},{"id":"https://openalex.org/C119857082","wikidata":"https://www.wikidata.org/wiki/Q2539","display_name":"Machine learning","level":1,"score":0.35443243},{"id":"https://openalex.org/C13736549","wikidata":"https://www.wikidata.org/wiki/Q4489420","display_name":"Industrial engineering","level":1,"score":0.34117144},{"id":"https://openalex.org/C127413603","wikidata":"https://www.wikidata.org/wiki/Q11023","display_name":"Engineering","level":0,"score":0.1438396},{"id":"https://openalex.org/C105795698","wikidata":"https://www.wikidata.org/wiki/Q12483","display_name":"Statistics","level":1,"score":0.0},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.0},{"id":"https://openalex.org/C119599485","wikidata":"https://www.wikidata.org/wiki/Q43035","display_name":"Electrical engineering","level":1,"score":0.0},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.0},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.0}],"mesh":[],"locations_count":5,"locations":[{"is_oa":true,"landing_page_url":"https://doi.org/10.1016/j.egyai.2021.100092","pdf_url":null,"source":{"id":"https://openalex.org/S4210241048","display_name":"Energy and AI","issn_l":"2666-5468","issn":["2666-5468"],"is_oa":true,"is_in_doaj":true,"host_organization":"https://openalex.org/P4310320990","host_organization_name":"Elsevier BV","host_organization_lineage":["https://openalex.org/P4310320990"],"host_organization_lineage_names":["Elsevier BV"],"type":"journal"},"license":"cc-by","version":"publishedVersion","is_accepted":true,"is_published":true},{"is_oa":false,"landing_page_url":"https://doaj.org/article/fa79d88f44664022b9499af8d9a96bbc","pdf_url":null,"source":{"id":"https://openalex.org/S4306401280","display_name":"DOAJ (DOAJ: Directory of Open Access Journals)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":null,"version":null,"is_accepted":false,"is_published":false},{"is_oa":true,"landing_page_url":"http://arxiv.org/abs/2103.07932","pdf_url":"http://arxiv.org/pdf/2103.07932","source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":["Cornell University"],"type":"repository"},"license":null,"version":"submittedVersion","is_accepted":false,"is_published":false},{"is_oa":true,"landing_page_url":"https://orbi.uliege.be/handle/2268/257972","pdf_url":"https://orbi.uliege.be/bitstream/2268/257972/8/henry-ernst-Gym-ANM.pdf","source":{"id":"https://openalex.org/S4306401300","display_name":"ORBi (University of Liège)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"host_organization":"https://openalex.org/I157674565","host_organization_name":"University of Liège","host_organization_lineage":["https://openalex.org/I157674565"],"host_organization_lineage_names":["University of Liège"],"type":"repository"},"license":"cc-by","version":"publishedVersion","is_accepted":true,"is_published":true},{"is_oa":true,"landing_page_url":"https://arxiv.org/abs/2103.07932","pdf_url":"https://arxiv.org/pdf/2103.07932","source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":["Cornell University"],"type":"repository"},"license":null,"version":"submittedVersion","is_accepted":false,"is_published":false}],"best_oa_location":{"is_oa":true,"landing_page_url":"https://doi.org/10.1016/j.egyai.2021.100092","pdf_url":null,"source":{"id":"https://openalex.org/S4210241048","display_name":"Energy and AI","issn_l":"2666-5468","issn":["2666-5468"],"is_oa":true,"is_in_doaj":true,"host_organization":"https://openalex.org/P4310320990","host_organization_name":"Elsevier BV","host_organization_lineage":["https://openalex.org/P4310320990"],"host_organization_lineage_names":["Elsevier BV"],"type":"journal"},"license":"cc-by","version":"publishedVersion","is_accepted":true,"is_published":true},"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/7","display_name":"Affordable and clean energy","score":0.8},{"id":"https://metadata.un.org/sdg/12","display_name":"Responsible consumption and production","score":0.11},{"id":"https://metadata.un.org/sdg/9","display_name":"Industry, innovation and infrastructure","score":0.11}],"grants":[],"referenced_works_count":21,"referenced_works":["https://openalex.org/W1940496428","https://openalex.org/W1977655452","https://openalex.org/W1978378863","https://openalex.org/W1989500638","https://openalex.org/W2008668719","https://openalex.org/W2035837781","https://openalex.org/W2106424475","https://openalex.org/W2117082743","https://openalex.org/W2124267516","https://openalex.org/W2135330272","https://openalex.org/W2145339207","https://openalex.org/W2146943217","https://openalex.org/W2165700398","https://openalex.org/W2231846456","https://openalex.org/W2257979135","https://openalex.org/W2481683546","https://openalex.org/W2591980212","https://openalex.org/W2939569248","https://openalex.org/W2963966702","https://openalex.org/W2982316857","https://openalex.org/W3100944043"],"related_works":["https://openalex.org/W4281847915","https://openalex.org/W2911962197","https://openalex.org/W4225571923","https://openalex.org/W3212257828","https://openalex.org/W2999580272","https://openalex.org/W4297873223","https://openalex.org/W2350784623","https://openalex.org/W2126211886","https://openalex.org/W3009457412","https://openalex.org/W2992629954"],"ngrams_url":"https://api.openalex.org/works/W3137465606/ngrams","abstract_inverted_index":{"Active":[0],"network":[1,142],"management":[2,64],"(ANM)":[3],"of":[4,65,75,79,91,138,153,165],"electricity":[5,51,66],"distribution":[6,52,141],"networks":[7,67],"include":[8],"many":[9],"complex":[10],"stochastic":[11,155],"sequential":[12],"optimization":[13],"problems.":[14],"These":[15,54],"problems":[16],"need":[17],"to":[18,97,130],"be":[19,173],"solved":[20],"for":[21,40,59],"integrating":[22],"renewable":[23],"energies":[24],"and":[25,144,161],"distributed":[26],"storage":[27],"into":[28],"future":[29],"electrical":[30],"grids.":[31],"In":[32],"this":[33,84],"work,":[34,85],"we":[35,86,127],"introduce":[36],"Gym-ANM,":[37],"a":[38,120,163],"framework":[39],"designing":[41],"reinforcement":[42],"learning":[43],"(RL)":[44],"environments":[45,55,134],"that":[46,68,106],"model":[47,121],"ANM":[48],"tasks":[49],"in":[50,62,101,136,158],"networks.":[53],"provide":[56,128],"new":[57,132],"playgrounds":[58],"RL":[60,108],"research":[61],"the":[63,76,140,147,151,154,159,168],"do":[69],"not":[70],"require":[71],"an":[72,89,92],"extensive":[73],"knowledge":[74],"underlying":[77],"dynamics":[78],"such":[80],"systems.":[81],"Along":[82],"with":[83],"are":[87],"releasing":[88],"implementation":[90],"introductory":[93],"toy-environment,":[94],"ANM6-Easy,":[95],"designed":[96],"emphasize":[98],"common":[99],"challenges":[100],"ANM.":[102],"We":[103],"also":[104],"show":[105],"state-of-the-art":[107],"algorithms":[109],"can":[110,172],"already":[111],"achieve":[112],"good":[113],"performance":[114],"on":[115],"ANM6-Easy":[116],"when":[117],"compared":[118],"against":[119],"predictive":[122],"control":[123],"(MPC)":[124],"approach.":[125],"Finally,":[126],"guidelines":[129],"create":[131],"Gym-ANM":[133,171],"differing":[135],"terms":[137],"(a)":[139],"topology":[143],"parameters,":[145],"(b)":[146],"observation":[148],"space,":[149],"(c)":[150],"modeling":[152],"processes":[156],"present":[157],"system,":[160],"(d)":[162],"set":[164],"hyperparameters":[166],"influencing":[167],"reward":[169],"signal.":[170],"downloaded":[174],"at":[175],"https://github.com/robinhenry/gym-anm.":[176]},"cited_by_api_url":"https://api.openalex.org/works?filter=cites:W3137465606","counts_by_year":[{"year":2023,"cited_by_count":2},{"year":2022,"cited_by_count":6},{"year":2021,"cited_by_count":1}],"updated_date":"2023-12-12T08:29:30.260383","created_date":"2021-03-29"},"https://doi.org/10.1016/j.simpa.2021.100092":{"id":"https://openalex.org/W3160501851","doi":"https://doi.org/10.1016/j.simpa.2021.100092","title":"Gym-ANM: Open-source software to leverage reinforcement learning for power system management in research and education","display_name":"Gym-ANM: Open-source software to leverage reinforcement learning for power system management in research and education","publication_year":2021,"publication_date":"2021-08-01","ids":{"openalex":"https://openalex.org/W3160501851","doi":"https://doi.org/10.1016/j.simpa.2021.100092","mag":"3160501851"},"language":"en","primary_location":{"is_oa":true,"landing_page_url":"https://doi.org/10.1016/j.simpa.2021.100092","pdf_url":"http://www.softwareimpacts.com/article/S2665963821000348/pdf","source":{"id":"https://openalex.org/S4210180398","display_name":"Software Impacts","issn_l":"2665-9638","issn":["2665-9638"],"is_oa":true,"is_in_doaj":false,"host_organization":"https://openalex.org/P4310320990","host_organization_name":"Elsevier BV","host_organization_lineage":["https://openalex.org/P4310320990"],"host_organization_lineage_names":["Elsevier BV"],"type":"journal"},"license":null,"version":"publishedVersion","is_accepted":true,"is_published":true},"type":"article","type_crossref":"journal-article","open_access":{"is_oa":true,"oa_status":"gold","oa_url":"http://www.softwareimpacts.com/article/S2665963821000348/pdf","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5015178373","display_name":"R D Henry","orcid":null},"institutions":[{"id":"https://openalex.org/I98677209","display_name":"University of Edinburgh","ror":"https://ror.org/01nrxwf90","country_code":"GB","type":"education","lineage":["https://openalex.org/I98677209"]}],"countries":["GB"],"is_corresponding":true,"raw_author_name":"Robin Henry","raw_affiliation_string":"School of Engineering, Sanderson Building, The University of Edinburgh, Edinburgh, EH9 3FB, UK","raw_affiliation_strings":["School of Engineering, Sanderson Building, The University of Edinburgh, Edinburgh, EH9 3FB, UK"]},{"author_position":"last","author":{"id":"https://openalex.org/A5077446320","display_name":"Damien Ernst","orcid":"https://orcid.org/0000-0002-3035-8260"},"institutions":[{"id":"https://openalex.org/I157674565","display_name":"University of Liège","ror":"https://ror.org/00afp2z80","country_code":"BE","type":"education","lineage":["https://openalex.org/I157674565"]}],"countries":["BE"],"is_corresponding":true,"raw_author_name":"Damien Ernst","raw_affiliation_string":"Department of Electrical Engineering and Computer Science, Montefiore Institute, University of Liège, B-4000 Liège, Belgium","raw_affiliation_strings":["Department of Electrical Engineering and Computer Science, Montefiore Institute, University of Liège, B-4000 Liège, Belgium"]}],"countries_distinct_count":2,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5015178373","https://openalex.org/A5077446320"],"corresponding_institution_ids":["https://openalex.org/I98677209","https://openalex.org/I157674565"],"apc_list":{"value":450,"currency":"USD","value_usd":450,"provenance":"doaj"},"apc_paid":{"value":450,"currency":"USD","value_usd":450,"provenance":"doaj"},"has_fulltext":true,"fulltext_origin":"pdf","cited_by_count":4,"cited_by_percentile_year":{"min":83,"max":86},"biblio":{"volume":"9","issue":null,"first_page":"100092","last_page":"100092"},"is_retracted":false,"is_paratext":false,"keywords":[{"keyword":"power system management","score":0.5072},{"keyword":"reinforcement learning","score":0.4531},{"keyword":"power system","score":0.3979},{"keyword":"open-source open-source software","score":0.3689},{"keyword":"gym-anm","score":0.25}],"concepts":[{"id":"https://openalex.org/C97541855","wikidata":"https://www.wikidata.org/wiki/Q830687","display_name":"Reinforcement learning","level":2,"score":0.754563},{"id":"https://openalex.org/C519991488","wikidata":"https://www.wikidata.org/wiki/Q28865","display_name":"Python (programming language)","level":2,"score":0.7157805},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.6965259},{"id":"https://openalex.org/C153083717","wikidata":"https://www.wikidata.org/wiki/Q6535263","display_name":"Leverage (statistics)","level":2,"score":0.6258259},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.43188673},{"id":"https://openalex.org/C206658404","wikidata":"https://www.wikidata.org/wiki/Q12725","display_name":"Electricity","level":2,"score":0.43128172},{"id":"https://openalex.org/C67203356","wikidata":"https://www.wikidata.org/wiki/Q1321905","display_name":"Reinforcement","level":2,"score":0.42333347},{"id":"https://openalex.org/C3020440742","wikidata":"https://www.wikidata.org/wiki/Q1176855","display_name":"Software package","level":3,"score":0.42148486},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.41873404},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.22352335},{"id":"https://openalex.org/C127413603","wikidata":"https://www.wikidata.org/wiki/Q11023","display_name":"Engineering","level":0,"score":0.17671728},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.13586685},{"id":"https://openalex.org/C119599485","wikidata":"https://www.wikidata.org/wiki/Q43035","display_name":"Electrical engineering","level":1,"score":0.094184935},{"id":"https://openalex.org/C66938386","wikidata":"https://www.wikidata.org/wiki/Q633538","display_name":"Structural engineering","level":1,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"is_oa":true,"landing_page_url":"https://doi.org/10.1016/j.simpa.2021.100092","pdf_url":"http://www.softwareimpacts.com/article/S2665963821000348/pdf","source":{"id":"https://openalex.org/S4210180398","display_name":"Software Impacts","issn_l":"2665-9638","issn":["2665-9638"],"is_oa":true,"is_in_doaj":false,"host_organization":"https://openalex.org/P4310320990","host_organization_name":"Elsevier BV","host_organization_lineage":["https://openalex.org/P4310320990"],"host_organization_lineage_names":["Elsevier BV"],"type":"journal"},"license":null,"version":"publishedVersion","is_accepted":true,"is_published":true},{"is_oa":true,"landing_page_url":"http://arxiv.org/abs/2105.08846","pdf_url":"http://arxiv.org/pdf/2105.08846","source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":["Cornell University"],"type":"repository"},"license":null,"version":"submittedVersion","is_accepted":false,"is_published":false}],"best_oa_location":{"is_oa":true,"landing_page_url":"https://doi.org/10.1016/j.simpa.2021.100092","pdf_url":"http://www.softwareimpacts.com/article/S2665963821000348/pdf","source":{"id":"https://openalex.org/S4210180398","display_name":"Software Impacts","issn_l":"2665-9638","issn":["2665-9638"],"is_oa":true,"is_in_doaj":false,"host_organization":"https://openalex.org/P4310320990","host_organization_name":"Elsevier BV","host_organization_lineage":["https://openalex.org/P4310320990"],"host_organization_lineage_names":["Elsevier BV"],"type":"journal"},"license":null,"version":"publishedVersion","is_accepted":true,"is_published":true},"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/7","display_name":"Affordable and clean energy","score":0.66},{"id":"https://metadata.un.org/sdg/9","display_name":"Industry, innovation and infrastructure","score":0.12}],"grants":[{"funder":"https://openalex.org/F4320323329","funder_display_name":"Université de Liège","award_id":null}],"referenced_works_count":13,"referenced_works":["https://openalex.org/W1977655452","https://openalex.org/W1989500638","https://openalex.org/W2064038783","https://openalex.org/W2106424475","https://openalex.org/W2124267516","https://openalex.org/W2145339207","https://openalex.org/W2257979135","https://openalex.org/W2757615817","https://openalex.org/W2764452474","https://openalex.org/W2939569248","https://openalex.org/W2982316857","https://openalex.org/W3100944043","https://openalex.org/W4376595632"],"related_works":["https://openalex.org/W3093909299","https://openalex.org/W2114055146","https://openalex.org/W2908246766","https://openalex.org/W2791355014","https://openalex.org/W3043824029","https://openalex.org/W2949155616","https://openalex.org/W2529681551","https://openalex.org/W3088315509","https://openalex.org/W2923653485","https://openalex.org/W3159163876"],"ngrams_url":"https://api.openalex.org/works/W3160501851/ngrams","abstract_inverted_index":{"Gym-ANM":[0,64],"is":[1],"a":[2],"Python":[3],"package":[4,79],"that":[5,14],"facilitates":[6],"the":[7,60,66,84,91],"design":[8],"of":[9,47,63,72],"reinforcement":[10],"learning":[11],"(RL)":[12],"environments":[13,31],"model":[15],"active":[16],"network":[17],"management":[18],"(ANM)":[19],"tasks":[20],"in":[21,70,90],"electricity":[22],"networks.":[23],"Here,":[24],"we":[25,58],"describe":[26],"how":[27,33],"to":[28,34,37,52,95],"implement":[29],"new":[30],"and":[32,74,87],"write":[35],"code":[36],"interact":[38],"with":[39],"pre-existing":[40],"ones.":[41],"We":[42,76],"also":[43],"provide":[44],"an":[45,49],"overview":[46],"ANM6-Easy,":[48],"environment":[50],"designed":[51],"highlight":[53],"common":[54],"ANM":[55],"challenges.":[56],"Finally,":[57],"discuss":[59],"potential":[61],"impact":[62],"on":[65],"scientific":[67],"community,":[68],"both":[69],"terms":[71],"research":[73],"education.":[75],"hope":[77],"this":[78],"will":[80],"facilitate":[81],"collaboration":[82],"between":[83],"power":[85],"system":[86],"RL":[88],"communities":[89],"search":[92],"for":[93],"algorithms":[94],"control":[96],"future":[97],"energy":[98],"systems.":[99]},"cited_by_api_url":"https://api.openalex.org/works?filter=cites:W3160501851","counts_by_year":[{"year":2023,"cited_by_count":1},{"year":2022,"cited_by_count":2},{"year":2021,"cited_by_count":1}],"updated_date":"2023-12-14T20:20:56.845802","created_date":"2021-05-24"}},"citation_counts":{"https://doi.org/10.1016/j.egyai.2021.100092":9,"https://doi.org/10.1016/j.simpa.2021.100092":4},"total_citations":13,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/20009","html_url":"https://ost.ecosyste.ms/projects/20009"}