{"id":324897,"name":"GridFM","description":"Train, finetune and interact with a foundation model for the electric power grid.","url":"https://github.com/gridfm/gridfm-graphkit","last_synced_at":"2026-09-05T05:32:58.683Z","repository":{"id":300833485,"uuid":"1007159095","full_name":"gridfm/gridfm-graphkit","owner":"gridfm","description":"Train, finetune and interact with a foundation model for the electric power grid.","archived":false,"fork":false,"pushed_at":"2026-08-28T10:18:00.000Z","size":150944,"stargazers_count":99,"open_issues_count":22,"forks_count":34,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-09-03T04:36:04.589Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://gridfm.github.io/gridfm-graphkit/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gridfm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":"SUPPORT.md","governance":"GOVERNANCE.md","roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2025-06-23T14:51:29.000Z","updated_at":"2026-09-03T03:28:32.000Z","dependencies_parsed_at":"2026-09-03T04:35:11.282Z","dependency_job_id":"6d435fd2-2112-47c6-8244-50527eec4539","html_url":"https://github.com/gridfm/gridfm-graphkit","commit_stats":null,"previous_names":["gridfm/gridfm-graphkit"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/gridfm/gridfm-graphkit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gridfm","download_url":"https://codeload.github.com/gridfm/gridfm-graphkit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":37020126,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-22T15:14:58.755Z","status":"online","status_checked_at":"2026-09-04T02:00:06.169Z","response_time":115,"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":"gridfm","name":"gridfm","uuid":"12138362","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/12138362?v=4","repositories_count":1,"last_synced_at":"2023-03-01T14:30:36.533Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/gridfm","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-12T11:38:04.530Z","updated_at":"2023-03-01T14:30:36.556Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gridfm","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gridfm/repositories"},"packages":[{"id":11833386,"name":"gridfm-graphkit","ecosystem":"pypi","description":"Grid Foundation Model","homepage":null,"licenses":"Apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/gridfm/gridfm-graphkit","keywords_array":["electric power grid","foundational model","graph neural networks"],"namespace":null,"versions_count":14,"first_release_published_at":"2025-06-24T12:09:24.000Z","latest_release_published_at":"2026-08-28T10:19:23.000Z","latest_release_number":"0.9.0","last_synced_at":"2026-09-04T05:03:26.992Z","created_at":"2025-06-24T12:16:06.786Z","updated_at":"2026-09-04T05:03:26.992Z","registry_url":"https://pypi.org/project/gridfm-graphkit/","install_command":"pip install gridfm-graphkit --index-url https://pypi.org/simple","documentation_url":"https://gridfm-graphkit.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 2 - Pre-Alpha","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Topic :: Scientific/Engineering :: Artificial Intelligence"],"normalized_name":"gridfm-graphkit","project_status":null},"repo_metadata":{"id":300833485,"uuid":"1007159095","full_name":"gridfm/gridfm-graphkit","owner":"gridfm","description":"Train, finetune and interact with a foundation model for the electric power grid.","archived":false,"fork":false,"pushed_at":"2026-08-19T13:11:00.000Z","size":150845,"stargazers_count":92,"open_issues_count":25,"forks_count":32,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-08-19T21:34:18.995Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://gridfm.github.io/gridfm-graphkit/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gridfm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":"SUPPORT.md","governance":"GOVERNANCE.md","roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2025-06-23T14:51:29.000Z","updated_at":"2026-08-19T13:16:41.000Z","dependencies_parsed_at":"2026-08-19T21:43:04.920Z","dependency_job_id":null,"html_url":"https://github.com/gridfm/gridfm-graphkit","commit_stats":null,"previous_names":["gridfm/gridfm-graphkit"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/gridfm/gridfm-graphkit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gridfm","download_url":"https://codeload.github.com/gridfm/gridfm-graphkit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36793907,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-20T02:00:06.210Z","response_time":54,"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":"gridfm","name":"gridfm","uuid":"12138362","kind":"organization","description":null,"email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/12138362?v=4","repositories_count":1,"last_synced_at":"2023-03-01T14:30:36.533Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/gridfm","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-12T11:38:04.530Z","updated_at":"2023-03-01T14:30:36.556Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gridfm","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gridfm/repositories"},"tags":[{"name":"v0.8.1","sha":"b3d663b62179222c1ebec00ee29f67ea50e68c0b","kind":"tag","published_at":"2026-07-13T14:29:22.000Z","download_url":"https://codeload.github.com/gridfm/gridfm-graphkit/tar.gz/v0.8.1","html_url":"https://github.com/gridfm/gridfm-graphkit/releases/tag/v0.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/gridfm/gridfm-graphkit@v0.8.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/tags/v0.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/tags/v0.8.1/manifests"},{"name":"v0.8.0","sha":"fddbf271870c5682d019d87b917ed0345454750d","kind":"commit","published_at":"2026-07-13T09:49:03.000Z","download_url":"https://codeload.github.com/gridfm/gridfm-graphkit/tar.gz/v0.8.0","html_url":"https://github.com/gridfm/gridfm-graphkit/releases/tag/v0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/gridfm/gridfm-graphkit@v0.8.0","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/tags/v0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/tags/v0.8.0/manifests"},{"name":"v0.0.7","sha":"94640cccf1018f5a22b842b3ac12f1065a250a89","kind":"commit","published_at":"2026-06-12T14:16:05.000Z","download_url":"https://codeload.github.com/gridfm/gridfm-graphkit/tar.gz/v0.0.7","html_url":"https://github.com/gridfm/gridfm-graphkit/releases/tag/v0.0.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/gridfm/gridfm-graphkit@v0.0.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/tags/v0.0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/tags/v0.0.7/manifests"},{"name":"v0.0.7rc1","sha":"29b2827dd506924cfc4b800b434c4d74254310aa","kind":"commit","published_at":"2026-06-12T14:08:25.000Z","download_url":"https://codeload.github.com/gridfm/gridfm-graphkit/tar.gz/v0.0.7rc1","html_url":"https://github.com/gridfm/gridfm-graphkit/releases/tag/v0.0.7rc1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/gridfm/gridfm-graphkit@v0.0.7rc1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/tags/v0.0.7rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/tags/v0.0.7rc1/manifests"},{"name":"v0.0.6","sha":"e1a6b765af37bcafce6f0fb3e68a99972b3f1737","kind":"commit","published_at":"2025-09-03T11:28:22.000Z","download_url":"https://codeload.github.com/gridfm/gridfm-graphkit/tar.gz/v0.0.6","html_url":"https://github.com/gridfm/gridfm-graphkit/releases/tag/v0.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/gridfm/gridfm-graphkit@v0.0.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/tags/v0.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/tags/v0.0.6/manifests"},{"name":"v0.0.5","sha":"386c94f9dd8d77b970901fdb9d5536545b23e0ab","kind":"commit","published_at":"2025-09-01T07:15:39.000Z","download_url":"https://codeload.github.com/gridfm/gridfm-graphkit/tar.gz/v0.0.5","html_url":"https://github.com/gridfm/gridfm-graphkit/releases/tag/v0.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/gridfm/gridfm-graphkit@v0.0.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/tags/v0.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/tags/v0.0.5/manifests"},{"name":"v0.0.4","sha":"7e83e22bb426691972ba7c00c6489ec9b977e091","kind":"commit","published_at":"2025-08-22T11:14:25.000Z","download_url":"https://codeload.github.com/gridfm/gridfm-graphkit/tar.gz/v0.0.4","html_url":"https://github.com/gridfm/gridfm-graphkit/releases/tag/v0.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/gridfm/gridfm-graphkit@v0.0.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/tags/v0.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/tags/v0.0.4/manifests"},{"name":"v0.0.3","sha":"18b20896c663576d0731eadd5039f522f6ae3de1","kind":"commit","published_at":"2025-08-05T07:50:10.000Z","download_url":"https://codeload.github.com/gridfm/gridfm-graphkit/tar.gz/v0.0.3","html_url":"https://github.com/gridfm/gridfm-graphkit/releases/tag/v0.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/gridfm/gridfm-graphkit@v0.0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/tags/v0.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/tags/v0.0.3/manifests"},{"name":"v0.0.2","sha":"1c6833baa2b677718fc76e3df68d95439f72f9c9","kind":"commit","published_at":"2025-06-24T18:06:31.000Z","download_url":"https://codeload.github.com/gridfm/gridfm-graphkit/tar.gz/v0.0.2","html_url":"https://github.com/gridfm/gridfm-graphkit/releases/tag/v0.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/gridfm/gridfm-graphkit@v0.0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/tags/v0.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/tags/v0.0.2/manifests"},{"name":"v0.0.2a","sha":"1fb7720523581478a4c2092b922bf77764b17295","kind":"commit","published_at":"2025-06-24T14:26:30.000Z","download_url":"https://codeload.github.com/gridfm/gridfm-graphkit/tar.gz/v0.0.2a","html_url":"https://github.com/gridfm/gridfm-graphkit/releases/tag/v0.0.2a","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/gridfm/gridfm-graphkit@v0.0.2a","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/tags/v0.0.2a","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/tags/v0.0.2a/manifests"},{"name":"v0.0.1","sha":"e0a1689014eaabcd798aaf43a62a9250f36a9f3e","kind":"commit","published_at":"2025-06-24T11:51:21.000Z","download_url":"https://codeload.github.com/gridfm/gridfm-graphkit/tar.gz/v0.0.1","html_url":"https://github.com/gridfm/gridfm-graphkit/releases/tag/v0.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/gridfm/gridfm-graphkit@v0.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/tags/v0.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/tags/v0.0.1/manifests"}]},"repo_metadata_updated_at":"2026-08-26T14:52:50.235Z","dependent_packages_count":0,"downloads":298,"downloads_period":"last-month","dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":50.39929142460118,"dependent_packages_count":8.944185332087297,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":29.671738378344237},"purl":"pkg:pypi/gridfm-graphkit","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/gridfm-graphkit","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/gridfm-graphkit","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/gridfm-graphkit/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-08-26T00:38:54.597Z","issues_count":19,"pull_requests_count":76,"avg_time_to_close_issue":4411506.5,"avg_time_to_close_pull_request":1895680.2985074627,"issues_closed_count":2,"pull_requests_closed_count":67,"pull_request_authors_count":16,"issue_authors_count":7,"avg_comments_per_issue":0.42105263157894735,"avg_comments_per_pull_request":1.2236842105263157,"merged_pull_requests_count":52,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":18,"past_year_pull_requests_count":70,"past_year_avg_time_to_close_issue":3743862.0,"past_year_avg_time_to_close_pull_request":2007426.634920635,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":63,"past_year_pull_request_authors_count":15,"past_year_issue_authors_count":6,"past_year_avg_comments_per_issue":0.4444444444444444,"past_year_avg_comments_per_pull_request":1.3285714285714285,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":48,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/issues","maintainers":[{"login":"romeokienzler","count":32,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/romeokienzler"},{"login":"albanpuech","count":19,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/albanpuech"},{"login":"naomi-simumba","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/naomi-simumba"},{"login":"MatteoMazzonelli","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/MatteoMazzonelli"},{"login":"frmir","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/frmir"},{"login":"Mangaliso-M","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Mangaliso-M"},{"login":"ttolhurst","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ttolhurst"},{"login":"p-grontas","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/p-grontas"}],"active_maintainers":[{"login":"romeokienzler","count":32,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/romeokienzler"},{"login":"albanpuech","count":19,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/albanpuech"},{"login":"naomi-simumba","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/naomi-simumba"},{"login":"frmir","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/frmir"},{"login":"MatteoMazzonelli","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/MatteoMazzonelli"},{"login":"ttolhurst","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ttolhurst"},{"login":"Mangaliso-M","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Mangaliso-M"},{"login":"p-grontas","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/p-grontas"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/gridfm-graphkit/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/gridfm-graphkit/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/gridfm-graphkit/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/gridfm-graphkit/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/gridfm-graphkit/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/gridfm-graphkit/codemeta","maintainers":[{"uuid":"romeokienzler","login":"romeokienzler","name":null,"email":null,"url":null,"packages_count":16,"html_url":"https://pypi.org/user/romeokienzler/","role":"Owner","created_at":"2026-06-08T14:08:55.389Z","updated_at":"2026-06-08T14:08:55.389Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/romeokienzler/packages"},{"uuid":"ccintas","login":"ccintas","name":null,"email":null,"url":null,"packages_count":2,"html_url":"https://pypi.org/user/ccintas/","role":"Owner","created_at":"2025-06-24T13:02:54.452Z","updated_at":"2025-06-24T13:02:54.452Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/ccintas/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":933217,"maintainers_count":401094,"namespaces_count":0,"keywords_count":313756,"github":"pypi","metadata":{"funded_packages_count":59307,"rate_limit":2},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2026-09-05T05:02:05.769Z","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":10886130,"full_name":"gridfm/gridfm-graphkit","default_branch":"master","total_commits":483,"total_committers":22,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":21.954545454545453,"dds":0.6418219461697723,"past_year_total_commits":408,"past_year_total_committers":16,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":25.5,"past_year_dds":0.5759803921568627,"last_synced_at":"2026-09-04T09:29:49.859Z","last_synced_commit":"6be23bdb750c17ab49bb47540addb35dddab8f57","created_at":"2025-09-03T21:14:55.385Z","updated_at":"2026-09-04T09:29:49.809Z","committers":[{"name":"Romeo Kienzler","email":"romeo.kienzler1@ibm.com","login":"romeokienzler","count":173},{"name":"Thomas Tolhurst","email":"99353435+ttolhurst","login":"ttolhurst","count":99},{"name":"Alban Puech","email":"nabla.hceup@gmail.com","login":"albanpuech","count":58},{"name":"MatteoMazzonelli","email":"matteo.mazzonelli1@ibm.com","login":"MatteoMazzonelli","count":53},{"name":"Mangaliso Mngomomezulu","email":"65779966+Mangaliso-M","login":"Mangaliso-M","count":20},{"name":"Matteo Mazzonelli","email":"Matteo.Mazzonelli@ibm.com","login":null,"count":12},{"name":"Naomi Simumba","email":"7224231+naomi-simumba","login":"naomi-simumba","count":10},{"name":"Mangaliso Mngomezulu","email":"mangalisomngomezulu@Mangalisos-MacBook-Pro.local","login":null,"count":10},{"name":"Celia Cintas","email":"celia.cintas@ibm.com","login":"celiacintas","count":9},{"name":"François Mirallès","email":"4765639+frmir","login":"frmir","count":9},{"name":"Mangaliso Mngomezulu","email":"mangalisomngomezulu@macbookpro.witsjuta.za.ibm.com","login":null,"count":6},{"name":"Hector Maeso Garcia","email":"hector.maeso.garcia@ibm.com","login":null,"count":6},{"name":"Alban Puech","email":"Alban.Puech1@ibm.com","login":null,"count":6},{"name":"“Mangaliso-M”","email":"“mangalisommngomezulu@gmail.com”","login":null,"count":4},{"name":"Antonio Alcántara","email":"101471028+antonioalcantaramata","login":"antonioalcantaramata","count":1},{"name":"Etienne Eben Vos","email":"Etienne.Vos@ibm.com","login":"etienne-v","count":1},{"name":"Jonas Weiss","email":"JWE@zurich.ibm.com","login":"jonasweiss","count":1},{"name":"Panagiotis Grontas","email":"72163196+p-grontas","login":"p-grontas","count":1},{"name":"Rosie","email":"rosielickorish@gmail.com","login":"rosielickorish","count":1},{"name":"cs5807","email":"miralles.francois@ireq.ca","login":"mifrqc","count":1},{"name":"Hector Maeso Garcia","email":"Hector.Maeso.Garcia@ibm.com","login":null,"count":1},{"name":"imgendk","email":"177513756+imgendk","login":"imgendk","count":1}],"past_year_committers":[{"name":"Romeo Kienzler","email":"romeo.kienzler1@ibm.com","login":"romeokienzler","count":173},{"name":"Thomas Tolhurst","email":"99353435+ttolhurst","login":"ttolhurst","count":99},{"name":"Alban Puech","email":"nabla.hceup@gmail.com","login":"albanpuech","count":58},{"name":"Matteo-Mazzonelli1","email":"matteo.mazzonelli1@ibm.com","login":"MatteoMazzonelli","count":21},{"name":"Naomi Simumba","email":"7224231+naomi-simumba","login":"naomi-simumba","count":10},{"name":"Mangaliso Mngomomezulu","email":"65779966+Mangaliso-M","login":"Mangaliso-M","count":10},{"name":"Mangaliso Mngomezulu","email":"mangalisomngomezulu@Mangalisos-MacBook-Pro.local","login":null,"count":10},{"name":"François Mirallès","email":"4765639+frmir","login":"frmir","count":9},{"name":"Mangaliso Mngomezulu","email":"mangalisomngomezulu@macbookpro.witsjuta.za.ibm.com","login":null,"count":6},{"name":"Hector Maeso Garcia","email":"hector.maeso.garcia@ibm.com","login":null,"count":6},{"name":"imgendk","email":"177513756+imgendk","login":"imgendk","count":1},{"name":"cs5807","email":"miralles.francois@ireq.ca","login":"mifrqc","count":1},{"name":"Rosie","email":"rosielickorish@gmail.com","login":"rosielickorish","count":1},{"name":"Panagiotis Grontas","email":"72163196+p-grontas","login":"p-grontas","count":1},{"name":"Antonio Alcántara","email":"101471028+antonioalcantaramata","login":"antonioalcantaramata","count":1},{"name":"Hector Maeso Garcia","email":"Hector.Maeso.Garcia@ibm.com","login":null,"count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-09-05T00:00:07.083Z","repositories_count":7043007,"commits_count":1023199883,"contributors_count":44172185,"owners_count":1405896,"committers_count":3429924,"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":"gridfm/gridfm-graphkit","html_url":"https://github.com/gridfm/gridfm-graphkit","last_synced_at":"2026-09-04T05:03:19.324Z","status":null,"issues_count":19,"pull_requests_count":79,"avg_time_to_close_issue":4411506.5,"avg_time_to_close_pull_request":1936331.5416666667,"issues_closed_count":2,"pull_requests_closed_count":72,"pull_request_authors_count":16,"issue_authors_count":7,"avg_comments_per_issue":0.42105263157894735,"avg_comments_per_pull_request":1.4936708860759493,"merged_pull_requests_count":56,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":18,"past_year_pull_requests_count":71,"past_year_avg_time_to_close_issue":3743862.0,"past_year_avg_time_to_close_pull_request":2104091.757575758,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":66,"past_year_pull_request_authors_count":15,"past_year_issue_authors_count":6,"past_year_avg_comments_per_issue":0.4444444444444444,"past_year_avg_comments_per_pull_request":1.6619718309859155,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":50,"created_at":"2025-07-16T12:24:34.309Z","updated_at":"2026-09-04T05:03:19.324Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridfm%2Fgridfm-graphkit/issues","issue_labels_count":{"enhancement":4,"bug":2,"documentation":1},"pull_request_labels_count":{"documentation":7,"enhancement":4},"issue_author_associations_count":{"COLLABORATOR":11,"MEMBER":4,"NONE":4},"pull_request_author_associations_count":{"COLLABORATOR":55,"MEMBER":12,"NONE":6,"CONTRIBUTOR":6},"issue_authors":{"albanpuech":6,"romeokienzler":5,"naomi-simumba":4,"rosielickorish":1,"TavoIREQ":1,"janu000":1,"mellson":1},"pull_request_authors":{"romeokienzler":30,"albanpuech":13,"MatteoMazzonelli":9,"naomi-simumba":5,"frmir":4,"mkisuule":3,"Mangaliso-M":3,"ttolhurst":3,"rosielickorish":2,"celiacintas":1,"guangzhao27":1,"antonioalcantaramata":1,"Tamaragov":1,"emmanuelbadmus":1,"p-grontas":1,"imgendk":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-09-05T00:00:07.076Z","repositories_count":16827743,"issues_count":44434221,"pull_requests_count":140808073,"authors_count":11629329,"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":{"enhancement":4,"bug":1,"documentation":1},"past_year_pull_request_labels_count":{"documentation":5},"past_year_issue_author_associations_count":{"COLLABORATOR":11,"MEMBER":4,"NONE":3},"past_year_pull_request_author_associations_count":{"COLLABORATOR":48,"MEMBER":12,"NONE":6,"CONTRIBUTOR":5},"past_year_issue_authors":{"albanpuech":6,"romeokienzler":5,"naomi-simumba":4,"janu000":1,"mellson":1,"rosielickorish":1},"past_year_pull_request_authors":{"romeokienzler":30,"albanpuech":13,"naomi-simumba":5,"frmir":4,"MatteoMazzonelli":3,"mkisuule":3,"ttolhurst":3,"Mangaliso-M":2,"rosielickorish":2,"antonioalcantaramata":1,"emmanuelbadmus":1,"guangzhao27":1,"imgendk":1,"p-grontas":1,"Tamaragov":1},"maintainers":[{"login":"romeokienzler","count":35,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/romeokienzler"},{"login":"albanpuech","count":19,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/albanpuech"},{"login":"naomi-simumba","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/naomi-simumba"},{"login":"MatteoMazzonelli","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/MatteoMazzonelli"},{"login":"frmir","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/frmir"},{"login":"Mangaliso-M","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Mangaliso-M"},{"login":"ttolhurst","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ttolhurst"},{"login":"p-grontas","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/p-grontas"}],"active_maintainers":[{"login":"romeokienzler","count":35,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/romeokienzler"},{"login":"albanpuech","count":19,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/albanpuech"},{"login":"naomi-simumba","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/naomi-simumba"},{"login":"frmir","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/frmir"},{"login":"ttolhurst","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ttolhurst"},{"login":"Mangaliso-M","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Mangaliso-M"},{"login":"MatteoMazzonelli","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/MatteoMazzonelli"},{"login":"p-grontas","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/p-grontas"}]},"events":{"total":{"CreateEvent":41,"DeleteEvent":14,"ForkEvent":4,"IssueCommentEvent":2,"IssuesEvent":5,"MemberEvent":3,"PullRequestEvent":24,"PullRequestReviewCommentEvent":13,"PullRequestReviewEvent":13,"PushEvent":153,"ReleaseEvent":4,"WatchEvent":27},"last_year":{"CreateEvent":27,"DeleteEvent":10,"ForkEvent":2,"IssueCommentEvent":2,"IssuesEvent":4,"MemberEvent":1,"PullRequestEvent":14,"PullRequestReviewCommentEvent":10,"PullRequestReviewEvent":8,"PushEvent":127,"WatchEvent":16}},"keywords":[],"dependencies":[{"ecosystem":"docker","filepath":"Dockerfile","sha":null,"kind":"manifest","created_at":"2026-08-05T13:32:06.124Z","updated_at":"2026-08-05T13:32:06.124Z","repository_link":"https://github.com/gridfm/gridfm-graphkit/blob/main/Dockerfile","dependencies":[{"id":25886792439,"package_name":"docker.io/nvidia/cuda","ecosystem":"docker","requirements":"12.8.1-cudnn-devel-ubuntu22.04","direct":true,"kind":"build","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/scorecard.yml","sha":null,"kind":"manifest","created_at":"2026-08-05T13:32:04.604Z","updated_at":"2026-08-05T13:32:04.604Z","repository_link":"https://github.com/gridfm/gridfm-graphkit/blob/main/.github/workflows/scorecard.yml","dependencies":[{"id":25886791911,"package_name":"actions/checkout","ecosystem":"actions","requirements":"11bd71901bbe5b1630ceea73d27597364c9af683","direct":true,"kind":"composite","optional":false},{"id":25886791912,"package_name":"ossf/scorecard-action","ecosystem":"actions","requirements":"f49aabe0b5af0936a0987cfb85d86b75731b0186","direct":true,"kind":"composite","optional":false},{"id":25886791913,"package_name":"actions/upload-artifact","ecosystem":"actions","requirements":"4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1","direct":true,"kind":"composite","optional":false},{"id":25886791914,"package_name":"github/codeql-action/upload-sarif","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"uv.lock","sha":null,"kind":"lockfile","created_at":"2026-09-03T04:35:10.081Z","updated_at":"2026-09-03T04:35:10.081Z","repository_link":"https://github.com/gridfm/gridfm-graphkit/blob/main/uv.lock","dependencies":[{"id":26362529063,"package_name":"aiohappyeyeballs","ecosystem":"pypi","requirements":"2.7.1","direct":false,"kind":"runtime","optional":false},{"id":26362529064,"package_name":"aiohttp","ecosystem":"pypi","requirements":"3.14.3","direct":false,"kind":"runtime","optional":false},{"id":26362529065,"package_name":"aiosignal","ecosystem":"pypi","requirements":"1.4.0","direct":false,"kind":"runtime","optional":false},{"id":26362529066,"package_name":"alembic","ecosystem":"pypi","requirements":"1.19.0","direct":false,"kind":"runtime","optional":false},{"id":26362529067,"package_name":"annotated-doc","ecosystem":"pypi","requirements":"0.0.5","direct":false,"kind":"runtime","optional":false},{"id":26362529068,"package_name":"annotated-types","ecosystem":"pypi","requirements":"0.8.0","direct":false,"kind":"runtime","optional":false},{"id":26362529069,"package_name":"anyio","ecosystem":"pypi","requirements":"4.14.2","direct":false,"kind":"runtime","optional":false},{"id":26362529070,"package_name":"appnope","ecosystem":"pypi","requirements":"0.1.4","direct":false,"kind":"runtime","optional":false},{"id":26362529071,"package_name":"asttokens","ecosystem":"pypi","requirements":"3.0.2","direct":false,"kind":"runtime","optional":false},{"id":26362529072,"package_name":"async-timeout","ecosystem":"pypi","requirements":"5.0.1","direct":false,"kind":"runtime","optional":false},{"id":26362529073,"package_name":"attrs","ecosystem":"pypi","requirements":"26.1.0","direct":false,"kind":"runtime","optional":false},{"id":26362529074,"package_name":"babel","ecosystem":"pypi","requirements":"2.18.0","direct":false,"kind":"runtime","optional":false},{"id":26362529075,"package_name":"backrefs","ecosystem":"pypi","requirements":"8.0","direct":false,"kind":"runtime","optional":false},{"id":26362529076,"package_name":"bandit","ecosystem":"pypi","requirements":"1.9.4","direct":false,"kind":"runtime","optional":false},{"id":26362529077,"package_name":"beautifulsoup4","ecosystem":"pypi","requirements":"4.15.0","direct":false,"kind":"runtime","optional":false},{"id":26362529078,"package_name":"blinker","ecosystem":"pypi","requirements":"1.9.0","direct":false,"kind":"runtime","optional":false},{"id":26362529079,"package_name":"build","ecosystem":"pypi","requirements":"1.5.0","direct":false,"kind":"runtime","optional":false},{"id":26362529080,"package_name":"cachetools","ecosystem":"pypi","requirements":"7.1.7","direct":false,"kind":"runtime","optional":false},{"id":26362529081,"package_name":"certifi","ecosystem":"pypi","requirements":"2026.7.22","direct":false,"kind":"runtime","optional":false},{"id":26362529082,"package_name":"cffi","ecosystem":"pypi","requirements":"2.1.1","direct":false,"kind":"runtime","optional":false},{"id":26362529083,"package_name":"cfgv","ecosystem":"pypi","requirements":"3.5.0","direct":false,"kind":"runtime","optional":false},{"id":26362529084,"package_name":"charset-normalizer","ecosystem":"pypi","requirements":"3.4.9","direct":false,"kind":"runtime","optional":false},{"id":26362529085,"package_name":"click","ecosystem":"pypi","requirements":"8.4.2","direct":false,"kind":"runtime","optional":false},{"id":26362529086,"package_name":"cloudpickle","ecosystem":"pypi","requirements":"3.1.2","direct":false,"kind":"runtime","optional":false},{"id":26362529087,"package_name":"colorama","ecosystem":"pypi","requirements":"0.4.6","direct":false,"kind":"runtime","optional":false},{"id":26362529088,"package_name":"comm","ecosystem":"pypi","requirements":"0.2.3","direct":false,"kind":"runtime","optional":false},{"id":26362529089,"package_name":"contourpy","ecosystem":"pypi","requirements":"1.3.2","direct":false,"kind":"runtime","optional":false},{"id":26362529090,"package_name":"contourpy","ecosystem":"pypi","requirements":"1.3.3","direct":false,"kind":"runtime","optional":false},{"id":26362529091,"package_name":"coverage","ecosystem":"pypi","requirements":"7.15.3","direct":false,"kind":"runtime","optional":false},{"id":26362529092,"package_name":"cryptography","ecosystem":"pypi","requirements":"49.0.0","direct":false,"kind":"runtime","optional":false},{"id":26362529093,"package_name":"cuda-bindings","ecosystem":"pypi","requirements":"13.3.1","direct":false,"kind":"runtime","optional":false},{"id":26362529094,"package_name":"cuda-pathfinder","ecosystem":"pypi","requirements":"1.6.0","direct":false,"kind":"runtime","optional":false},{"id":26362529095,"package_name":"cuda-toolkit","ecosystem":"pypi","requirements":"13.0.2","direct":false,"kind":"runtime","optional":false},{"id":26362529096,"package_name":"cycler","ecosystem":"pypi","requirements":"0.12.1","direct":false,"kind":"runtime","optional":false},{"id":26362529097,"package_name":"databricks-sdk","ecosystem":"pypi","requirements":"0.123.0","direct":false,"kind":"runtime","optional":false},{"id":26362529098,"package_name":"debugpy","ecosystem":"pypi","requirements":"1.8.21","direct":false,"kind":"runtime","optional":false},{"id":26362529099,"package_name":"decorator","ecosystem":"pypi","requirements":"5.3.1","direct":false,"kind":"runtime","optional":false},{"id":26362529100,"package_name":"distlib","ecosystem":"pypi","requirements":"0.4.3","direct":false,"kind":"runtime","optional":false},{"id":26362529101,"package_name":"docker","ecosystem":"pypi","requirements":"7.2.0","direct":false,"kind":"runtime","optional":false},{"id":26362529102,"package_name":"exceptiongroup","ecosystem":"pypi","requirements":"1.3.1","direct":false,"kind":"runtime","optional":false},{"id":26362529103,"package_name":"executing","ecosystem":"pypi","requirements":"2.2.1","direct":false,"kind":"runtime","optional":false},{"id":26362529104,"package_name":"fastapi","ecosystem":"pypi","requirements":"0.141.1","direct":false,"kind":"runtime","optional":false},{"id":26362529105,"package_name":"fastjsonschema","ecosystem":"pypi","requirements":"2.22.1","direct":false,"kind":"runtime","optional":false},{"id":26362529106,"package_name":"filelock","ecosystem":"pypi","requirements":"3.32.2","direct":false,"kind":"runtime","optional":false},{"id":26362529107,"package_name":"flask","ecosystem":"pypi","requirements":"3.1.3","direct":false,"kind":"runtime","optional":false},{"id":26362529108,"package_name":"flask-cors","ecosystem":"pypi","requirements":"6.0.5","direct":false,"kind":"runtime","optional":false},{"id":26362529109,"package_name":"fonttools","ecosystem":"pypi","requirements":"4.63.0","direct":false,"kind":"runtime","optional":false},{"id":26362529110,"package_name":"frozenlist","ecosystem":"pypi","requirements":"1.8.0","direct":false,"kind":"runtime","optional":false},{"id":26362529111,"package_name":"fsspec","ecosystem":"pypi","requirements":"2026.7.0","direct":false,"kind":"runtime","optional":false},{"id":26362529112,"package_name":"gdown","ecosystem":"pypi","requirements":"6.1.0","direct":false,"kind":"runtime","optional":false},{"id":26362529113,"package_name":"ghp-import","ecosystem":"pypi","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":26362529114,"package_name":"gitdb","ecosystem":"pypi","requirements":"4.0.12","direct":false,"kind":"runtime","optional":false},{"id":26362529115,"package_name":"gitpython","ecosystem":"pypi","requirements":"3.1.58","direct":false,"kind":"runtime","optional":false},{"id":26362529116,"package_name":"google-auth","ecosystem":"pypi","requirements":"2.56.2","direct":false,"kind":"runtime","optional":false},{"id":26362529117,"package_name":"graphene","ecosystem":"pypi","requirements":"3.4.3","direct":false,"kind":"runtime","optional":false},{"id":26362529118,"package_name":"graphql-core","ecosystem":"pypi","requirements":"3.2.11","direct":false,"kind":"runtime","optional":false},{"id":26362529119,"package_name":"graphql-relay","ecosystem":"pypi","requirements":"3.2.0","direct":false,"kind":"runtime","optional":false},{"id":26362529120,"package_name":"greenlet","ecosystem":"pypi","requirements":"3.5.4","direct":false,"kind":"runtime","optional":false},{"id":26362529121,"package_name":"gridfm-datakit","ecosystem":"pypi","requirements":"1.1.0","direct":false,"kind":"runtime","optional":false},{"id":26362529122,"package_name":"gridfm-graphkit","ecosystem":"pypi","requirements":"0.9.0","direct":false,"kind":"runtime","optional":false},{"id":26362529123,"package_name":"griffelib","ecosystem":"pypi","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":26362529124,"package_name":"gunicorn","ecosystem":"pypi","requirements":"26.0.0","direct":false,"kind":"runtime","optional":false},{"id":26362529125,"package_name":"h11","ecosystem":"pypi","requirements":"0.16.0","direct":false,"kind":"runtime","optional":false},{"id":26362529126,"package_name":"huey","ecosystem":"pypi","requirements":"3.3.3","direct":false,"kind":"runtime","optional":false},{"id":26362529127,"package_name":"identify","ecosystem":"pypi","requirements":"2.6.19","direct":false,"kind":"runtime","optional":false},{"id":26362529128,"package_name":"idna","ecosystem":"pypi","requirements":"3.18","direct":false,"kind":"runtime","optional":false},{"id":26362529129,"package_name":"importlib-metadata","ecosystem":"pypi","requirements":"9.0.0","direct":false,"kind":"runtime","optional":false},{"id":26362529130,"package_name":"iniconfig","ecosystem":"pypi","requirements":"2.3.0","direct":false,"kind":"runtime","optional":false},{"id":26362529131,"package_name":"ipyfilechooser","ecosystem":"pypi","requirements":"0.6.0","direct":false,"kind":"runtime","optional":false},{"id":26362529132,"package_name":"ipykernel","ecosystem":"pypi","requirements":"7.3.0","direct":false,"kind":"runtime","optional":false},{"id":26362529133,"package_name":"ipython","ecosystem":"pypi","requirements":"8.39.0","direct":false,"kind":"runtime","optional":false},{"id":26362529134,"package_name":"ipython","ecosystem":"pypi","requirements":"9.16.1","direct":false,"kind":"runtime","optional":false},{"id":26362529135,"package_name":"ipython-pygments-lexers","ecosystem":"pypi","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":26362529136,"package_name":"ipywidgets","ecosystem":"pypi","requirements":"8.1.8","direct":false,"kind":"runtime","optional":false},{"id":26362529137,"package_name":"itsdangerous","ecosystem":"pypi","requirements":"2.2.0","direct":false,"kind":"runtime","optional":false},{"id":26362529138,"package_name":"jedi","ecosystem":"pypi","requirements":"0.20.0","direct":false,"kind":"runtime","optional":false},{"id":26362529139,"package_name":"jinja2","ecosystem":"pypi","requirements":"3.1.6","direct":false,"kind":"runtime","optional":false},{"id":26362529140,"package_name":"joblib","ecosystem":"pypi","requirements":"1.5.3","direct":false,"kind":"runtime","optional":false},{"id":26362529141,"package_name":"jsonschema","ecosystem":"pypi","requirements":"4.26.0","direct":false,"kind":"runtime","optional":false},{"id":26362529142,"package_name":"jsonschema-specifications","ecosystem":"pypi","requirements":"2025.9.1","direct":false,"kind":"runtime","optional":false},{"id":26362529143,"package_name":"juliacall","ecosystem":"pypi","requirements":"0.9.35","direct":false,"kind":"runtime","optional":false},{"id":26362529144,"package_name":"juliapkg","ecosystem":"pypi","requirements":"0.1.24","direct":false,"kind":"runtime","optional":false},{"id":26362529145,"package_name":"jupyter-client","ecosystem":"pypi","requirements":"8.9.1","direct":false,"kind":"runtime","optional":false},{"id":26362529146,"package_name":"jupyter-core","ecosystem":"pypi","requirements":"5.9.1","direct":false,"kind":"runtime","optional":false},{"id":26362529147,"package_name":"jupyterlab-widgets","ecosystem":"pypi","requirements":"3.0.16","direct":false,"kind":"runtime","optional":false},{"id":26362529148,"package_name":"kiwisolver","ecosystem":"pypi","requirements":"1.5.0","direct":false,"kind":"runtime","optional":false},{"id":26362529149,"package_name":"lightning","ecosystem":"pypi","requirements":"2.6.5","direct":false,"kind":"runtime","optional":false},{"id":26362529150,"package_name":"lightning-utilities","ecosystem":"pypi","requirements":"0.15.3","direct":false,"kind":"runtime","optional":false},{"id":26362529151,"package_name":"llvmlite","ecosystem":"pypi","requirements":"0.48.0","direct":false,"kind":"runtime","optional":false},{"id":26362529152,"package_name":"mako","ecosystem":"pypi","requirements":"1.4.1","direct":false,"kind":"runtime","optional":false},{"id":26362529153,"package_name":"markdown","ecosystem":"pypi","requirements":"3.10.3","direct":false,"kind":"runtime","optional":false},{"id":26362529154,"package_name":"markdown-it-py","ecosystem":"pypi","requirements":"4.2.0","direct":false,"kind":"runtime","optional":false},{"id":26362529155,"package_name":"markupsafe","ecosystem":"pypi","requirements":"3.0.3","direct":false,"kind":"runtime","optional":false},{"id":26362529156,"package_name":"matplotlib","ecosystem":"pypi","requirements":"3.10.9","direct":false,"kind":"runtime","optional":false},{"id":26362529157,"package_name":"matplotlib","ecosystem":"pypi","requirements":"3.11.1","direct":false,"kind":"runtime","optional":false},{"id":26362529158,"package_name":"matplotlib-inline","ecosystem":"pypi","requirements":"0.2.2","direct":false,"kind":"runtime","optional":false},{"id":26362529159,"package_name":"matpowercaseframes","ecosystem":"pypi","requirements":"2.1.1","direct":false,"kind":"runtime","optional":false},{"id":26362529160,"package_name":"mdurl","ecosystem":"pypi","requirements":"0.1.2","direct":false,"kind":"runtime","optional":false},{"id":26362529161,"package_name":"mergedeep","ecosystem":"pypi","requirements":"1.3.4","direct":false,"kind":"runtime","optional":false},{"id":26362529162,"package_name":"mkdocs","ecosystem":"pypi","requirements":"1.6.1","direct":false,"kind":"runtime","optional":false},{"id":26362529163,"package_name":"mkdocs-autorefs","ecosystem":"pypi","requirements":"1.4.4","direct":false,"kind":"runtime","optional":false},{"id":26362529164,"package_name":"mkdocs-get-deps","ecosystem":"pypi","requirements":"0.2.2","direct":false,"kind":"runtime","optional":false},{"id":26362529165,"package_name":"mkdocs-material","ecosystem":"pypi","requirements":"9.7.7","direct":false,"kind":"runtime","optional":false},{"id":26362529166,"package_name":"mkdocs-material-extensions","ecosystem":"pypi","requirements":"1.3.1","direct":false,"kind":"runtime","optional":false},{"id":26362529167,"package_name":"mkdocstrings","ecosystem":"pypi","requirements":"1.0.6","direct":false,"kind":"runtime","optional":false},{"id":26362529168,"package_name":"mkdocstrings-python","ecosystem":"pypi","requirements":"2.0.5","direct":false,"kind":"runtime","optional":false},{"id":26362529169,"package_name":"mlflow","ecosystem":"pypi","requirements":"3.15.1","direct":false,"kind":"runtime","optional":false},{"id":26362529170,"package_name":"mlflow-skinny","ecosystem":"pypi","requirements":"3.15.1","direct":false,"kind":"runtime","optional":false},{"id":26362529171,"package_name":"mlflow-tracing","ecosystem":"pypi","requirements":"3.15.1","direct":false,"kind":"runtime","optional":false},{"id":26362529172,"package_name":"mpmath","ecosystem":"pypi","requirements":"1.3.0","direct":false,"kind":"runtime","optional":false},{"id":26362529173,"package_name":"multidict","ecosystem":"pypi","requirements":"6.7.1","direct":false,"kind":"runtime","optional":false},{"id":26362529174,"package_name":"narwhals","ecosystem":"pypi","requirements":"2.24.0","direct":false,"kind":"runtime","optional":false},{"id":26362529175,"package_name":"nbformat","ecosystem":"pypi","requirements":"5.10.4","direct":false,"kind":"runtime","optional":false},{"id":26362529176,"package_name":"nest-asyncio2","ecosystem":"pypi","requirements":"1.7.2","direct":false,"kind":"runtime","optional":false},{"id":26362529177,"package_name":"networkx","ecosystem":"pypi","requirements":"3.4.2","direct":false,"kind":"runtime","optional":false},{"id":26362529178,"package_name":"networkx","ecosystem":"pypi","requirements":"3.6.1","direct":false,"kind":"runtime","optional":false},{"id":26362529179,"package_name":"nodeenv","ecosystem":"pypi","requirements":"1.10.0","direct":false,"kind":"runtime","optional":false},{"id":26362529180,"package_name":"numba","ecosystem":"pypi","requirements":"0.66.0","direct":false,"kind":"runtime","optional":false},{"id":26362529181,"package_name":"numpy","ecosystem":"pypi","requirements":"2.2.6","direct":false,"kind":"runtime","optional":false},{"id":26362529182,"package_name":"numpy","ecosystem":"pypi","requirements":"2.4.6","direct":false,"kind":"runtime","optional":false},{"id":26362529183,"package_name":"nvidia-cublas","ecosystem":"pypi","requirements":"13.1.1.3","direct":false,"kind":"runtime","optional":false},{"id":26362529184,"package_name":"nvidia-cuda-cupti","ecosystem":"pypi","requirements":"13.0.85","direct":false,"kind":"runtime","optional":false},{"id":26362529185,"package_name":"nvidia-cuda-nvrtc","ecosystem":"pypi","requirements":"13.0.88","direct":false,"kind":"runtime","optional":false},{"id":26362529186,"package_name":"nvidia-cuda-runtime","ecosystem":"pypi","requirements":"13.0.96","direct":false,"kind":"runtime","optional":false},{"id":26362529187,"package_name":"nvidia-cudnn-cu13","ecosystem":"pypi","requirements":"9.20.0.48","direct":false,"kind":"runtime","optional":false},{"id":26362529188,"package_name":"nvidia-cufft","ecosystem":"pypi","requirements":"12.0.0.61","direct":false,"kind":"runtime","optional":false},{"id":26362529189,"package_name":"nvidia-cufile","ecosystem":"pypi","requirements":"1.15.1.6","direct":false,"kind":"runtime","optional":false},{"id":26362529190,"package_name":"nvidia-curand","ecosystem":"pypi","requirements":"10.4.0.35","direct":false,"kind":"runtime","optional":false},{"id":26362529191,"package_name":"nvidia-cusolver","ecosystem":"pypi","requirements":"12.0.4.66","direct":false,"kind":"runtime","optional":false},{"id":26362529192,"package_name":"nvidia-cusparse","ecosystem":"pypi","requirements":"12.6.3.3","direct":false,"kind":"runtime","optional":false},{"id":26362529193,"package_name":"nvidia-cusparselt-cu13","ecosystem":"pypi","requirements":"0.8.1","direct":false,"kind":"runtime","optional":false},{"id":26362529194,"package_name":"nvidia-nccl-cu13","ecosystem":"pypi","requirements":"2.29.7","direct":false,"kind":"runtime","optional":false},{"id":26362529195,"package_name":"nvidia-nvjitlink","ecosystem":"pypi","requirements":"13.0.88","direct":false,"kind":"runtime","optional":false},{"id":26362529196,"package_name":"nvidia-nvshmem-cu13","ecosystem":"pypi","requirements":"3.4.5","direct":false,"kind":"runtime","optional":false},{"id":26362529197,"package_name":"nvidia-nvtx","ecosystem":"pypi","requirements":"13.0.85","direct":false,"kind":"runtime","optional":false},{"id":26362529198,"package_name":"opentelemetry-api","ecosystem":"pypi","requirements":"1.44.0","direct":false,"kind":"runtime","optional":false},{"id":26362529199,"package_name":"opentelemetry-proto","ecosystem":"pypi","requirements":"1.44.0","direct":false,"kind":"runtime","optional":false},{"id":26362529200,"package_name":"opentelemetry-sdk","ecosystem":"pypi","requirements":"1.44.0","direct":false,"kind":"runtime","optional":false},{"id":26362529201,"package_name":"opentelemetry-semantic-conventions","ecosystem":"pypi","requirements":"0.65b0","direct":false,"kind":"runtime","optional":false},{"id":26362529202,"package_name":"opt-einsum","ecosystem":"pypi","requirements":"3.4.0","direct":false,"kind":"runtime","optional":false},{"id":26362529203,"package_name":"packaging","ecosystem":"pypi","requirements":"26.3","direct":false,"kind":"runtime","optional":false},{"id":26362529204,"package_name":"paginate","ecosystem":"pypi","requirements":"0.5.7","direct":false,"kind":"runtime","optional":false},{"id":26362529205,"package_name":"pandas","ecosystem":"pypi","requirements":"2.3.3","direct":false,"kind":"runtime","optional":false},{"id":26362529206,"package_name":"parso","ecosystem":"pypi","requirements":"0.8.7","direct":false,"kind":"runtime","optional":false},{"id":26362529207,"package_name":"pathlib","ecosystem":"pypi","requirements":"1.0.1","direct":false,"kind":"runtime","optional":false},{"id":26362529208,"package_name":"pathspec","ecosystem":"pypi","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":26362529209,"package_name":"pexpect","ecosystem":"pypi","requirements":"4.9.0","direct":false,"kind":"runtime","optional":false},{"id":26362529210,"package_name":"pillow","ecosystem":"pypi","requirements":"12.3.0","direct":false,"kind":"runtime","optional":false},{"id":26362529211,"package_name":"platformdirs","ecosystem":"pypi","requirements":"4.11.0","direct":false,"kind":"runtime","optional":false},{"id":26362529212,"package_name":"plotly","ecosystem":"pypi","requirements":"6.9.0","direct":false,"kind":"runtime","optional":false},{"id":26362529213,"package_name":"pluggy","ecosystem":"pypi","requirements":"1.6.0","direct":false,"kind":"runtime","optional":false},{"id":26362529214,"package_name":"pre-commit","ecosystem":"pypi","requirements":"4.6.1","direct":false,"kind":"runtime","optional":false},{"id":26362529215,"package_name":"prettytable","ecosystem":"pypi","requirements":"3.18.0","direct":false,"kind":"runtime","optional":false},{"id":26362529216,"package_name":"prompt-toolkit","ecosystem":"pypi","requirements":"3.0.53","direct":false,"kind":"runtime","optional":false},{"id":26362529217,"package_name":"propcache","ecosystem":"pypi","requirements":"0.5.2","direct":false,"kind":"runtime","optional":false},{"id":26362529218,"package_name":"protobuf","ecosystem":"pypi","requirements":"6.33.6","direct":false,"kind":"runtime","optional":false},{"id":26362529219,"package_name":"psutil","ecosystem":"pypi","requirements":"7.2.2","direct":false,"kind":"runtime","optional":false},{"id":26362529220,"package_name":"ptyprocess","ecosystem":"pypi","requirements":"0.7.0","direct":false,"kind":"runtime","optional":false},{"id":26362529221,"package_name":"pure-eval","ecosystem":"pypi","requirements":"0.2.3","direct":false,"kind":"runtime","optional":false},{"id":26362529222,"package_name":"pyaml","ecosystem":"pypi","requirements":"26.7.0","direct":false,"kind":"runtime","optional":false},{"id":26362529223,"package_name":"pyarrow","ecosystem":"pypi","requirements":"25.0.0","direct":false,"kind":"runtime","optional":false},{"id":26362529224,"package_name":"pyasn1","ecosystem":"pypi","requirements":"0.6.4","direct":false,"kind":"runtime","optional":false},{"id":26362529225,"package_name":"pyasn1-modules","ecosystem":"pypi","requirements":"0.4.2","direct":false,"kind":"runtime","optional":false},{"id":26362529226,"package_name":"pycparser","ecosystem":"pypi","requirements":"3.0","direct":false,"kind":"runtime","optional":false},{"id":26362529227,"package_name":"pydantic","ecosystem":"pypi","requirements":"2.13.4","direct":false,"kind":"runtime","optional":false},{"id":26362529228,"package_name":"pydantic-core","ecosystem":"pypi","requirements":"2.46.4","direct":false,"kind":"runtime","optional":false},{"id":26362529229,"package_name":"pygments","ecosystem":"pypi","requirements":"2.20.0","direct":false,"kind":"runtime","optional":false},{"id":26362529230,"package_name":"pymdown-extensions","ecosystem":"pypi","requirements":"11.0.1","direct":false,"kind":"runtime","optional":false},{"id":26362529231,"package_name":"pyparsing","ecosystem":"pypi","requirements":"3.3.2","direct":false,"kind":"runtime","optional":false},{"id":26362529232,"package_name":"pyproject-hooks","ecosystem":"pypi","requirements":"1.2.0","direct":false,"kind":"runtime","optional":false},{"id":26362529233,"package_name":"pysocks","ecosystem":"pypi","requirements":"1.7.1","direct":false,"kind":"runtime","optional":false},{"id":26362529234,"package_name":"pytest","ecosystem":"pypi","requirements":"9.1.1","direct":false,"kind":"runtime","optional":false},{"id":26362529235,"package_name":"pytest-cov","ecosystem":"pypi","requirements":"7.1.0","direct":false,"kind":"runtime","optional":false},{"id":26362529236,"package_name":"python-dateutil","ecosystem":"pypi","requirements":"2.9.0.post0","direct":false,"kind":"runtime","optional":false},{"id":26362529237,"package_name":"python-discovery","ecosystem":"pypi","requirements":"1.5.1","direct":false,"kind":"runtime","optional":false},{"id":26362529238,"package_name":"python-dotenv","ecosystem":"pypi","requirements":"1.2.2","direct":false,"kind":"runtime","optional":false},{"id":26362529239,"package_name":"pytorch-lightning","ecosystem":"pypi","requirements":"2.6.5","direct":false,"kind":"runtime","optional":false},{"id":26362529240,"package_name":"pytz","ecosystem":"pypi","requirements":"2026.3.post1","direct":false,"kind":"runtime","optional":false},{"id":26362529241,"package_name":"pywin32","ecosystem":"pypi","requirements":"312","direct":false,"kind":"runtime","optional":false},{"id":26362529242,"package_name":"pyyaml","ecosystem":"pypi","requirements":"6.0.3","direct":false,"kind":"runtime","optional":false},{"id":26362529243,"package_name":"pyyaml-env-tag","ecosystem":"pypi","requirements":"1.1","direct":false,"kind":"runtime","optional":false},{"id":26362529244,"package_name":"pyzmq","ecosystem":"pypi","requirements":"27.1.0","direct":false,"kind":"runtime","optional":false},{"id":26362529245,"package_name":"referencing","ecosystem":"pypi","requirements":"0.37.0","direct":false,"kind":"runtime","optional":false},{"id":26362529246,"package_name":"requests","ecosystem":"pypi","requirements":"2.34.2","direct":false,"kind":"runtime","optional":false},{"id":26362529247,"package_name":"rich","ecosystem":"pypi","requirements":"15.0.0","direct":false,"kind":"runtime","optional":false},{"id":26362529248,"package_name":"rpds-py","ecosystem":"pypi","requirements":"0.30.0","direct":false,"kind":"runtime","optional":false},{"id":26362529249,"package_name":"rpds-py","ecosystem":"pypi","requirements":"2026.6.3","direct":false,"kind":"runtime","optional":false},{"id":26362529250,"package_name":"scikit-learn","ecosystem":"pypi","requirements":"1.7.2","direct":false,"kind":"runtime","optional":false},{"id":26362529251,"package_name":"scikit-learn","ecosystem":"pypi","requirements":"1.9.0","direct":false,"kind":"runtime","optional":false},{"id":26362529252,"package_name":"scipy","ecosystem":"pypi","requirements":"1.15.3","direct":false,"kind":"runtime","optional":false},{"id":26362529253,"package_name":"scipy","ecosystem":"pypi","requirements":"1.17.1","direct":false,"kind":"runtime","optional":false},{"id":26362529254,"package_name":"scipy","ecosystem":"pypi","requirements":"1.18.0","direct":false,"kind":"runtime","optional":false},{"id":26362529255,"package_name":"seaborn","ecosystem":"pypi","requirements":"0.13.2","direct":false,"kind":"runtime","optional":false},{"id":26362529256,"package_name":"semver","ecosystem":"pypi","requirements":"3.0.4","direct":false,"kind":"runtime","optional":false},{"id":26362529257,"package_name":"setuptools","ecosystem":"pypi","requirements":"81.0.0","direct":false,"kind":"runtime","optional":false},{"id":26362529258,"package_name":"six","ecosystem":"pypi","requirements":"1.17.0","direct":false,"kind":"runtime","optional":false},{"id":26362529259,"package_name":"skops","ecosystem":"pypi","requirements":"0.14.0","direct":false,"kind":"runtime","optional":false},{"id":26362529260,"package_name":"smmap","ecosystem":"pypi","requirements":"5.0.3","direct":false,"kind":"runtime","optional":false},{"id":26362529261,"package_name":"soupsieve","ecosystem":"pypi","requirements":"2.9.1","direct":false,"kind":"runtime","optional":false},{"id":26362529262,"package_name":"sqlalchemy","ecosystem":"pypi","requirements":"2.0.51","direct":false,"kind":"runtime","optional":false},{"id":26362529263,"package_name":"sqlparse","ecosystem":"pypi","requirements":"0.5.5","direct":false,"kind":"runtime","optional":false},{"id":26362529264,"package_name":"stack-data","ecosystem":"pypi","requirements":"0.6.3","direct":false,"kind":"runtime","optional":false},{"id":26362529265,"package_name":"starlette","ecosystem":"pypi","requirements":"1.4.0","direct":false,"kind":"runtime","optional":false},{"id":26362529266,"package_name":"stevedore","ecosystem":"pypi","requirements":"5.8.0","direct":false,"kind":"runtime","optional":false},{"id":26362529267,"package_name":"stevedore","ecosystem":"pypi","requirements":"5.9.0","direct":false,"kind":"runtime","optional":false},{"id":26362529268,"package_name":"sympy","ecosystem":"pypi","requirements":"1.14.0","direct":false,"kind":"runtime","optional":false},{"id":26362529269,"package_name":"threadpoolctl","ecosystem":"pypi","requirements":"3.6.0","direct":false,"kind":"runtime","optional":false},{"id":26362529270,"package_name":"tomli","ecosystem":"pypi","requirements":"2.4.1","direct":false,"kind":"runtime","optional":false},{"id":26362529271,"package_name":"tomlkit","ecosystem":"pypi","requirements":"0.15.1","direct":false,"kind":"runtime","optional":false},{"id":26362529272,"package_name":"torch","ecosystem":"pypi","requirements":"2.12.1","direct":false,"kind":"runtime","optional":false},{"id":26362529273,"package_name":"torch-geometric","ecosystem":"pypi","requirements":"2.8.0.post1","direct":false,"kind":"runtime","optional":false},{"id":26362529274,"package_name":"torch-scatter","ecosystem":"pypi","requirements":"2.1.2","direct":false,"kind":"runtime","optional":false},{"id":26362529275,"package_name":"torchaudio","ecosystem":"pypi","requirements":"2.11.0","direct":false,"kind":"runtime","optional":false},{"id":26362529276,"package_name":"torchmetrics","ecosystem":"pypi","requirements":"1.9.0","direct":false,"kind":"runtime","optional":false},{"id":26362529277,"package_name":"torchvision","ecosystem":"pypi","requirements":"0.27.1","direct":false,"kind":"runtime","optional":false},{"id":26362529278,"package_name":"tornado","ecosystem":"pypi","requirements":"6.5.7","direct":false,"kind":"runtime","optional":false},{"id":26362529279,"package_name":"tqdm","ecosystem":"pypi","requirements":"4.70.0","direct":false,"kind":"runtime","optional":false},{"id":26362529280,"package_name":"traitlets","ecosystem":"pypi","requirements":"5.16.1","direct":false,"kind":"runtime","optional":false},{"id":26362529281,"package_name":"triton","ecosystem":"pypi","requirements":"3.7.1","direct":false,"kind":"runtime","optional":false},{"id":26362529282,"package_name":"typing-extensions","ecosystem":"pypi","requirements":"4.16.0","direct":false,"kind":"runtime","optional":false},{"id":26362529283,"package_name":"typing-inspection","ecosystem":"pypi","requirements":"0.4.2","direct":false,"kind":"runtime","optional":false},{"id":26362529284,"package_name":"tzdata","ecosystem":"pypi","requirements":"2026.3","direct":false,"kind":"runtime","optional":false},{"id":26362529285,"package_name":"urllib3","ecosystem":"pypi","requirements":"2.7.0","direct":false,"kind":"runtime","optional":false},{"id":26362529286,"package_name":"uvicorn","ecosystem":"pypi","requirements":"0.52.1","direct":false,"kind":"runtime","optional":false},{"id":26362529287,"package_name":"virtualenv","ecosystem":"pypi","requirements":"21.7.1","direct":false,"kind":"runtime","optional":false},{"id":26362529288,"package_name":"waitress","ecosystem":"pypi","requirements":"3.0.2","direct":false,"kind":"runtime","optional":false},{"id":26362529289,"package_name":"watchdog","ecosystem":"pypi","requirements":"6.0.0","direct":false,"kind":"runtime","optional":false},{"id":26362529290,"package_name":"wcwidth","ecosystem":"pypi","requirements":"0.8.2","direct":false,"kind":"runtime","optional":false},{"id":26362529291,"package_name":"werkzeug","ecosystem":"pypi","requirements":"3.1.8","direct":false,"kind":"runtime","optional":false},{"id":26362529292,"package_name":"widgetsnbextension","ecosystem":"pypi","requirements":"4.0.15","direct":false,"kind":"runtime","optional":false},{"id":26362529293,"package_name":"xxhash","ecosystem":"pypi","requirements":"3.8.1","direct":false,"kind":"runtime","optional":false},{"id":26362529294,"package_name":"yarl","ecosystem":"pypi","requirements":"1.24.5","direct":false,"kind":"runtime","optional":false},{"id":26362529295,"package_name":"zipp","ecosystem":"pypi","requirements":"4.1.0","direct":false,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/ci-build.yaml","sha":null,"kind":"manifest","created_at":"2025-06-23T21:44:20.693Z","updated_at":"2025-06-23T21:44:20.693Z","repository_link":"https://github.com/gridfm/gridfm-graphkit/blob/main/.github/workflows/ci-build.yaml","dependencies":[{"id":23780851846,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":23780851847,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/deploy_docs.yaml","sha":null,"kind":"manifest","created_at":"2025-06-23T21:44:20.766Z","updated_at":"2025-06-23T21:44:20.766Z","repository_link":"https://github.com/gridfm/gridfm-graphkit/blob/main/.github/workflows/deploy_docs.yaml","dependencies":[{"id":23780852014,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":23780852015,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":23780852016,"package_name":"actions/cache","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2025-06-23T21:44:20.861Z","updated_at":"2025-06-23T21:44:20.861Z","repository_link":"https://github.com/gridfm/gridfm-graphkit/blob/main/pyproject.toml","dependencies":[{"id":23780852017,"package_name":"mlflow","ecosystem":"pypi","requirements":"\u003e=3.1.0","direct":true,"kind":"runtime","optional":false},{"id":23780852018,"package_name":"nbformat","ecosystem":"pypi","requirements":"\u003e=5.10.4","direct":true,"kind":"runtime","optional":false},{"id":23780852019,"package_name":"networkx","ecosystem":"pypi","requirements":"\u003e=3.4.2","direct":true,"kind":"runtime","optional":false},{"id":23780852020,"package_name":"numpy","ecosystem":"pypi","requirements":"\u003e=2.2.6","direct":true,"kind":"runtime","optional":false},{"id":23780852021,"package_name":"pandas","ecosystem":"pypi","requirements":"\u003e=2.3.0","direct":true,"kind":"runtime","optional":false},{"id":23780852022,"package_name":"plotly","ecosystem":"pypi","requirements":"\u003e=6.1.2","direct":true,"kind":"runtime","optional":false},{"id":23780852023,"package_name":"pyyaml","ecosystem":"pypi","requirements":"\u003e=6.0.2","direct":true,"kind":"runtime","optional":false},{"id":23780852024,"package_name":"torch","ecosystem":"pypi","requirements":"\u003e=2.7.1","direct":true,"kind":"runtime","optional":false},{"id":23780852025,"package_name":"torch-geometric","ecosystem":"pypi","requirements":"\u003e=2.6.1","direct":true,"kind":"runtime","optional":false},{"id":23780852026,"package_name":"torchaudio","ecosystem":"pypi","requirements":"\u003e=2.7.1","direct":true,"kind":"runtime","optional":false},{"id":23780852027,"package_name":"torchvision","ecosystem":"pypi","requirements":"\u003e=0.22.1","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/release.yaml","sha":null,"kind":"manifest","created_at":"2025-07-29T14:42:16.864Z","updated_at":"2025-07-29T14:42:16.864Z","repository_link":"https://github.com/gridfm/gridfm-graphkit/blob/main/.github/workflows/release.yaml","dependencies":[{"id":24398986602,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":24398986603,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":24398986604,"package_name":"pypa/gh-action-pypi-publish","ecosystem":"actions","requirements":"release/v1","direct":true,"kind":"composite","optional":false}]}],"score":13.590615473611258,"created_at":"2025-09-19T00:06:02.092Z","updated_at":"2026-09-05T05:32:58.684Z","avatar_url":"https://github.com/gridfm.png","language":"Python","category":"Energy Systems","sub_category":"Grid Analysis and Planning","monthly_downloads":298,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/gridfm/gridfm-graphkit/refs/heads/main/docs/figs/KIT.png\" alt=\"GridFM logo\" style=\"width: 40%; height: auto;\"/\u003e\n  \u003cbr/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\" style=\"font-size: 25px;\"\u003e\n    \u003cb\u003egridfm-graphkit\u003c/b\u003e\n\u003c/p\u003e\n\n\n[![DOI](https://zenodo.org/badge/1007159095.svg)](https://doi.org/10.5281/zenodo.17016737)\n[![Docs](https://img.shields.io/badge/docs-available-brightgreen)](https://gridfm.github.io/gridfm-graphkit/)\n![Coverage](https://img.shields.io/badge/coverage-83%25-yellowgreen)\n[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/12802/badge)](https://www.bestpractices.dev/projects/12802)\n[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/gridfm/gridfm-graphkit/badge)](https://scorecard.dev/viewer/?uri=github.com/gridfm/gridfm-graphkit)\n![Python](https://img.shields.io/badge/python-3.10%20%E2%80%93%203.12-blue)\n![License](https://img.shields.io/badge/license-Apache%202.0-blue)\n\nThis library is brought to you by the GridFM team to train, finetune and interact with a foundation model for the electric power grid.\n\n---\n\n# Installation\n\nCreate and activate a virtual environment (make sure you use the right python version = 3.10, 3.11 or 3.12. I highly recommend 3.12)\n```bash\npython -m venv venv\nsource venv/bin/activate\n```\n\nInstall gridfm-graphkit from PyPI\n```bash\npip install gridfm-graphkit\n```\n\n**`torch-scatter` is a required dependency.** It cannot be bundled in `pyproject.toml` because the correct wheel depends on your PyTorch and CUDA versions, so it must be installed separately.\n\nGet PyTorch + CUDA version for torch-scatter\n```bash\nTORCH_CUDA_VERSION=$(python -c \"import torch; print(torch.__version__ + ('+cpu' if torch.version.cuda is None else ''))\")\n```\n\nInstall the correct torch-scatter wheel\n```bash\npip install torch-scatter -f https://data.pyg.org/whl/torch-${TORCH_CUDA_VERSION}.html\npip install torch-sparse -f https://data.pyg.org/whl/torch-${TORCH_CUDA_VERSION}.html\n```\n\nIf `data.pyg.org` has no prebuilt wheel for your PyTorch version, build from source instead (this\ncompiles against your installed torch, so it works with any version):\n```bash\npip install torch-scatter torch-sparse --no-build-isolation\n```\nBuilding from source requires a C++ compiler (and a matching CUDA toolkit with\n`nvcc` for GPU builds).\n\n\nFor documentation generation and unit testing, install with the optional `dev` and `test` extras:\n\n```bash\npip install \"gridfm-graphkit[dev,test]\"\n```\n\n\n# CLI commands\n\nInterface to train, fine-tune, evaluate, and run inference on GridFM models using YAML configs and MLflow tracking.\n\n```bash\ngridfm_graphkit \u003ccommand\u003e [OPTIONS]\n```\n\nAvailable commands:\n\n* `train` - Train a new model from scratch\n* `finetune` - Fine-tune an existing pre-trained model\n* `evaluate` - Evaluate model performance on a dataset\n* `predict` - Run inference and save predictions\n\n---\n\n## Training Models\n\n```bash\ngridfm_graphkit train --config path/to/config.yaml\n```\n\n### Arguments\n\n| Argument | Type | Description | Default |\n| -------- | ---- | ----------- | ------- |\n| `--config` | `str` | **Required**. Path to the training configuration YAML file. | `None` |\n| `--exp_name` | `str` | MLflow experiment name. | `timestamp` |\n| `--run_name` | `str` | MLflow run name. | `run` |\n| `--log_dir` | `str` | MLflow tracking/logging directory. | `mlruns` |\n| `--data_path` | `str` | Root dataset directory. | `data` |\n| `--compile [MODE]` | `str` | Enable `torch.compile` mode. Valid values: `default`, `reduce-overhead`, `max-autotune`, `max-autotune-no-cudagraphs`. If flag is passed without a value, mode is `default`. | `None` |\n| `--bfloat16` | `flag` | Cast model to `torch.bfloat16` (`model.to(torch.bfloat16)`). | `False` |\n| `--tf32` | `flag` | Enable TF32 on Ampere+ GPUs via `torch.set_float32_matmul_precision(\"high\")`. | `False` |\n| `--dataset_wrapper` | `str` | Registered dataset wrapper name (see `DATASET_WRAPPER_REGISTRY`), e.g. `SharedMemoryCacheDataset`. | `None` |\n| `--plugins` | `list[str]` | Python packages to import for plugin registration, e.g. `gridfm_graphkit_ee`. | `[]` |\n| `--num_workers` | `int` | Override `data.workers` from YAML. Use `0` to debug worker crashes. | `None` |\n| `--dataset_wrapper_cache_dir` | `str` | Disk cache directory for dataset wrapper; cache is loaded from here when present and saved after first population. | `None` |\n| `--profiler` | `str` | Enable Lightning profiler (`simple`, `advanced`, `pytorch`). | `None` |\n| `--compute_dc_ac_metrics` | `flag` | Compute ground-truth AC/DC power balance metrics on the test split. | `False` |\n| `--mp_context` | `str` | DataLoader multiprocessing start method (`spawn`, `fork`, `forkserver`). Defaults to PyTorch's automatic choice. On Linux, `spawn` is recommended for safety (CUDA + fork is unsafe); other choices emit a warning. | `None` |\n### Examples\n\n**Standard Training:**\n\n```bash\ngridfm_graphkit train --config examples/config/case30_ieee_base.yaml --data_path examples/data\n```\n\n---\n\n## Fine-Tuning Models\n\n```bash\ngridfm_graphkit finetune --config path/to/config.yaml --model_path path/to/model.pt\n```\n\n### Arguments\n\n| Argument | Type | Description | Default |\n| -------- | ---- | ----------- | ------- |\n| `--config` | `str` | **Required**. Fine-tuning configuration file. | `None` |\n| `--model_path` | `str` | **Required**. Path to a pre-trained model state dict. | `None` |\n| `--exp_name` | `str` | MLflow experiment name. | `timestamp` |\n| `--run_name` | `str` | MLflow run name. | `run` |\n| `--log_dir` | `str` | MLflow logging directory. | `mlruns` |\n| `--data_path` | `str` | Root dataset directory. | `data` |\n| `--compile [MODE]` | `str` | Enable `torch.compile` mode. Valid values: `default`, `reduce-overhead`, `max-autotune`, `max-autotune-no-cudagraphs`. If flag is passed without a value, mode is `default`. | `None` |\n| `--bfloat16` | `flag` | Cast model to `torch.bfloat16` (`model.to(torch.bfloat16)`). | `False` |\n| `--tf32` | `flag` | Enable TF32 on Ampere+ GPUs via `torch.set_float32_matmul_precision(\"high\")`. | `False` |\n| `--dataset_wrapper` | `str` | Registered dataset wrapper name (see `DATASET_WRAPPER_REGISTRY`), e.g. `SharedMemoryCacheDataset`. | `None` |\n| `--plugins` | `list[str]` | Python packages to import for plugin registration, e.g. `gridfm_graphkit_ee`. | `[]` |\n| `--num_workers` | `int` | Override `data.workers` from YAML. Use `0` to debug worker crashes. | `None` |\n| `--dataset_wrapper_cache_dir` | `str` | Disk cache directory for dataset wrapper; cache is loaded from here when present and saved after first population. | `None` |\n| `--profiler` | `str` | Enable Lightning profiler (`simple`, `advanced`, `pytorch`). | `None` |\n| `--compute_dc_ac_metrics` | `flag` | Compute ground-truth AC/DC power balance metrics on the test split. | `False` |\n| `--mp_context` | `str` | DataLoader multiprocessing start method (`spawn`, `fork`, `forkserver`). Defaults to PyTorch's automatic choice. On Linux, `spawn` is recommended for safety (CUDA + fork is unsafe); other choices emit a warning. | `None` |\n\n---\n\n## Evaluating Models\n\n```bash\ngridfm_graphkit evaluate --config path/to/eval.yaml --model_path path/to/model.pt\n```\n\n### Arguments\n\n| Argument | Type | Description | Default |\n| -------- | ---- | ----------- | ------- |\n| `--config` | `str` | **Required**. Path to evaluation config. | `None` |\n| `--model_path` | `str` | Path to the trained model state dict. | `None` |\n| `--normalizer_stats` | `str` | Path to `normalizer_stats.pt` from a training run. Restores `fit_on_train` normalizers from saved statistics instead of re-fitting on current split. | `None` |\n| `--exp_name` | `str` | MLflow experiment name. | `timestamp` |\n| `--run_name` | `str` | MLflow run name. | `run` |\n| `--log_dir` | `str` | MLflow logging directory. | `mlruns` |\n| `--data_path` | `str` | Dataset directory. | `data` |\n| `--compile [MODE]` | `str` | Enable `torch.compile` mode. Valid values: `default`, `reduce-overhead`, `max-autotune`, `max-autotune-no-cudagraphs`. If flag is passed without a value, mode is `default`. | `None` |\n| `--bfloat16` | `flag` | Cast model to `torch.bfloat16` (`model.to(torch.bfloat16)`). | `False` |\n| `--tf32` | `flag` | Enable TF32 on Ampere+ GPUs via `torch.set_float32_matmul_precision(\"high\")`. | `False` |\n| `--dataset_wrapper` | `str` | Registered dataset wrapper name (see `DATASET_WRAPPER_REGISTRY`), e.g. `SharedMemoryCacheDataset`. | `None` |\n| `--plugins` | `list[str]` | Python packages to import for plugin registration, e.g. `gridfm_graphkit_ee`. | `[]` |\n| `--num_workers` | `int` | Override `data.workers` from YAML. Use `0` to debug worker crashes. | `None` |\n| `--dataset_wrapper_cache_dir` | `str` | Disk cache directory for dataset wrapper; cache is loaded from here when present and saved after first population. | `None` |\n| `--profiler` | `str` | Enable Lightning profiler (`simple`, `advanced`, `pytorch`). | `None` |\n| `--compute_dc_ac_metrics` | `flag` | Compute ground-truth AC/DC power balance metrics on the test split. | `False` |\n| `--save_output` | `flag` | Save predictions as `\u003cgrid_name\u003e_predictions.parquet` under MLflow artifacts (`.../artifacts/test`). | `False` |\n| `--mp_context` | `str` | DataLoader multiprocessing start method (`spawn`, `fork`, `forkserver`). Defaults to PyTorch's automatic choice. On Linux, `spawn` is recommended for safety (CUDA + fork is unsafe); other choices emit a warning. | `None` |\n\n### Example with saved normalizer stats\n\nWhen evaluating a model on a dataset, you can pass the normalizer statistics from the original training run to ensure the same normalization parameters are used:\n\n```bash\ngridfm_graphkit evaluate \\\n  --config examples/config/HGNS_PF_datakit_case118.yaml \\\n  --model_path mlruns/\u003cexperiment_id\u003e/\u003crun_id\u003e/artifacts/model/best_model_state_dict.pt \\\n  --normalizer_stats mlruns/\u003cexperiment_id\u003e/\u003crun_id\u003e/artifacts/stats/normalizer_stats.pt \\\n  --data_path data\n```\n\n\u003e **Note:** The `--normalizer_stats` flag only affects normalizers with `fit_strategy = \"fit_on_train\"` (e.g. `HeteroDataMVANormalizer`). Per-sample normalizers (`HeteroDataPerSampleMVANormalizer`) always recompute their statistics from the current dataset regardless of this flag.\n\n---\n\n## Running Predictions\n\n```bash\ngridfm_graphkit predict --config path/to/config.yaml --model_path path/to/model.pt\n```\n\n### Arguments\n\n| Argument | Type | Description | Default |\n| -------- | ---- | ----------- | ------- |\n| `--config` | `str` | **Required**. Path to prediction config file. | `None` |\n| `--model_path` | `str` | Path to trained model state dict. Optional; may be defined in config. | `None` |\n| `--normalizer_stats` | `str` | Path to `normalizer_stats.pt` from a training run. Restores `fit_on_train` normalizers from saved statistics. | `None` |\n| `--exp_name` | `str` | MLflow experiment name. | `timestamp` |\n| `--run_name` | `str` | MLflow run name. | `run` |\n| `--log_dir` | `str` | MLflow logging directory. | `mlruns` |\n| `--data_path` | `str` | Dataset directory. | `data` |\n| `--dataset_wrapper` | `str` | Registered dataset wrapper name (see `DATASET_WRAPPER_REGISTRY`), e.g. `SharedMemoryCacheDataset`. | `None` |\n| `--plugins` | `list[str]` | Python packages to import for plugin registration, e.g. `gridfm_graphkit_ee`. | `[]` |\n| `--num_workers` | `int` | Override `data.workers` from YAML. Use `0` to debug worker crashes. | `None` |\n| `--dataset_wrapper_cache_dir` | `str` | Disk cache directory for dataset wrapper; cache is loaded from here when present and saved after first population. | `None` |\n| `--output_path` | `str` | Directory where predictions are saved as `\u003cgrid_name\u003e_predictions.parquet`. | `data` |\n| `--compile [MODE]` | `str` | Enable `torch.compile` mode. Valid values: `default`, `reduce-overhead`, `max-autotune`, `max-autotune-no-cudagraphs`. If flag is passed without a value, mode is `default`. | `None` |\n| `--bfloat16` | `flag` | Cast model to `torch.bfloat16` (`model.to(torch.bfloat16)`). | `False` |\n| `--tf32` | `flag` | Enable TF32 on Ampere+ GPUs via `torch.set_float32_matmul_precision(\"high\")`. | `False` |\n| `--profiler` | `str` | Enable Lightning profiler (`simple`, `advanced`, `pytorch`). | `None` |\n| `--mp_context` | `str` | DataLoader multiprocessing start method (`spawn`, `fork`, `forkserver`). Defaults to PyTorch's automatic choice. On Linux, `spawn` is recommended for safety (CUDA + fork is unsafe); other choices emit a warning. | `None` |\n\n---\n\n## Benchmarking Dataloader Throughput\n\n```bash\ngridfm_graphkit benchmark --config path/to/config.yaml\n```\n\n### Arguments\n\n| Argument | Type | Description | Default |\n| -------- | ---- | ----------- | ------- |\n| `--config` | `str` | **Required**. Path to configuration YAML file. | `None` |\n| `--data_path` | `str` | Root dataset directory. | `data` |\n| `--epochs` | `int` | Number of epochs to iterate through the train dataloader. | `3` |\n| `--dataset_wrapper` | `str` | Registered dataset wrapper name (see `DATASET_WRAPPER_REGISTRY`), e.g. `SharedMemoryCacheDataset`. | `None` |\n| `--dataset_wrapper_cache_dir` | `str` | Directory for dataset wrapper disk cache. | `None` |\n| `--num_workers` | `int` | Override `data.workers` from YAML. | `None` |\n| `--plugins` | `list[str]` | Python packages to import for plugin registration. | `[]` |\n| `--mp_context` | `str` | DataLoader multiprocessing start method (`spawn`, `fork`, `forkserver`). Defaults to PyTorch's automatic choice. On Linux, `spawn` is recommended for safety (CUDA + fork is unsafe); other choices emit a warning. | `None` |\n\nUse built-in help for full command details:\n\n```bash\ngridfm_graphkit --help\ngridfm_graphkit \u003ccommand\u003e --help\n```\n\n---\n\n## Running Tests\n\n### Unit and Integration Tests\n\nInstall the test dependencies first (if not already done):\n\n```bash\npip install -e .[dev,test]\n```\n\nRun the full unit test suite:\n\n```bash\npytest ./tests\n```\n\nRun the base set integration tests:\n\n```bash\npytest ./integrationtests/test_base_set.py\n```\n\n### Running Base Set Tests on an LSF Cluster (GPU)\n\nTo submit the base set integration tests as an interactive LSF job with GPU access, use `bsub`. Adjust the paths to match your environment:\n\n```bash\nbsub -gpu \"num=1\" \\\n     -n 16 \\\n     -R \"rusage[mem=32GB] span[hosts=1]\" \\\n     -Is \\\n     -J gridfm_base_set_tests \\\n     /bin/bash -c \"\n       cd /path/to/gridfm-graphkit \u0026\u0026 \\\n       export PATH=/path/to/cuda/bin:\\$PATH \\\n               CUDA_HOME=/path/to/cuda \\\n               LD_LIBRARY_PATH=/path/to/cuda/lib64:\\$LD_LIBRARY_PATH \u0026\u0026 \\\n       source /path/to/venv/bin/activate \u0026\u0026 \\\n       pytest ./integrationtests/test_base_set.py\n     \"\n```\n\nKey `bsub` options used above:\n\n| Option | Description |\n| ------ | ----------- |\n| `-gpu \"num=1\"` | Request 1 GPU |\n| `-n 16` | Request 16 CPU slots |\n| `-R \"rusage[mem=32GB] span[hosts=1]\"` | Reserve 32 GB of memory on a single host |\n| `-Is` | Run as an interactive shell session |\n| `-J \u003cjob_name\u003e` | Assign a name to the job |\n\n**Concrete example** (adapt paths to your cluster setup):\n\n```bash\nbsub -gpu \"num=1\" -n 16 -R \"rusage[mem=32GB] span[hosts=1]\" -Is -J hpo_trial_190 /bin/bash -c \"cd /dccstor/terratorch/users/rkie/gitco/gridfm-graphkit \u0026\u0026 export PATH=/opt/share/cuda-12.8.1/bin:\\$PATH CUDA_HOME=/opt/share/cuda-12.8.1 LD_LIBRARY_PATH=/opt/share/cuda-12.8.1/lib64:\\$LD_LIBRARY_PATH \u0026\u0026 source /u/rkie/venvs/venv_gridfm-graphkit/bin/activate \u0026\u0026 pytest ./integrationtests/test_base_set.py\"\n```\n\n---\n","funding_links":[],"readme_doi_urls":["https://doi.org/10.5281/zenodo.17016737"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/324897","html_url":"https://ost.ecosyste.ms/projects/324897"}