{"id":106852,"name":"SunPeek","description":"Implements a dynamic, in situ test methodology for large solar thermal plants.","url":"https://gitlab.com/sunpeek/sunpeek","last_synced_at":"2026-04-06T06:00:21.857Z","repository":{"id":65791555,"uuid":"43333900","full_name":"sunpeek/sunpeek","owner":"sunpeek","description":"Please see the README for an overview of the project, or here for software documentation: https://docs.sunpeek.org","archived":false,"fork":false,"pushed_at":null,"size":null,"stargazers_count":5,"open_issues_count":135,"forks_count":5,"subscribers_count":null,"default_branch":"main","last_synced_at":"2026-01-04T07:56:43.650Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0+","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://gitlab.com/uploads/-/system/project/avatar/43333900/favicon.png","metadata":{},"created_at":"2021-11-10T14:30:08.000Z","updated_at":"2025-12-30T15:56:24.876Z","dependencies_parsed_at":"2023-04-21T00:07:53.386Z","dependency_job_id":null,"html_url":"https://gitlab.com/sunpeek/sunpeek","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:gitlab/sunpeek/sunpeek","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/sunpeek%2Fsunpeek","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/sunpeek%2Fsunpeek/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/sunpeek%2Fsunpeek/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/sunpeek%2Fsunpeek/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners/sunpeek","download_url":"https://gitlab.com/sunpeek/sunpeek/-/archive/main/sunpeek-main.zip","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/sunpeek%2Fsunpeek/sbom","scorecard":null,"host":{"name":"gitlab.com","url":"https://gitlab.com","kind":"gitlab","repositories_count":4521539,"owners_count":7348,"icon_url":"https://github.com/gitlab.png","version":null,"created_at":"2022-05-30T11:31:42.605Z","updated_at":"2026-01-12T22:45:04.389Z","status":"online","status_checked_at":"2026-03-21T02:00:08.716Z","response_time":260,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.382Z","robots_txt_url":"https://gitlab.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners"}},"owner":{"login":"sunpeek","name":"SunPeek","uuid":"organization-63588217","kind":"organization","description":"","email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://gitlab.com/uploads/-/system/group/avatar/63588217/Icon_Blue.png","repositories_count":7,"last_synced_at":"2023-08-05T08:10:23.198Z","metadata":{},"html_url":"https://gitlab.com/sunpeek","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2023-02-22T13:41:54.127Z","updated_at":"2023-08-05T08:10:23.318Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners/sunpeek","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners/sunpeek/repositories"},"packages":[{"id":6301777,"name":"sunpeek","ecosystem":"pypi","description":"Large Solar Thermal Monitoring Tool. Implements the Power Check Method of ISO 24194","homepage":"https://gitlab.com/sunpeek/sunpeek","licenses":"gpl-3.0+","normalized_licenses":["GPL-3.0+"],"repository_url":"https://gitlab.com/sunpeek/sunpeek","keywords_array":["solarthermal","solar","energy","monitoring"],"namespace":null,"versions_count":215,"first_release_published_at":"2023-02-10T11:09:31.000Z","latest_release_published_at":"2026-03-16T18:39:53.000Z","latest_release_number":"0.7.11","last_synced_at":"2026-04-04T05:02:13.670Z","created_at":"2023-02-10T11:57:18.604Z","updated_at":"2026-04-04T05:17:57.098Z","registry_url":"https://pypi.org/project/sunpeek/","install_command":"pip install sunpeek --index-url https://pypi.org/simple","documentation_url":"https://docs.sunpeek.org","metadata":{"funding":null,"documentation":"https://docs.sunpeek.org","classifiers":["Development Status :: 4 - Beta","Programming Language :: Python :: 3","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Topic :: Scientific/Engineering"],"normalized_name":"sunpeek","project_status":null},"repo_metadata":{"id":65791555,"uuid":"43333900","full_name":"sunpeek/sunpeek","owner":"sunpeek","description":"Please see the README for an overview of the project, or here for software documentation: https://docs.sunpeek.org","archived":false,"fork":false,"pushed_at":null,"size":null,"stargazers_count":5,"open_issues_count":135,"forks_count":5,"subscribers_count":null,"default_branch":"main","last_synced_at":"2026-01-04T07:56:43.650Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0+","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://gitlab.com/uploads/-/system/project/avatar/43333900/favicon.png","metadata":{},"created_at":"2021-11-10T14:30:08.000Z","updated_at":"2025-12-30T15:56:24.876Z","dependencies_parsed_at":"2023-04-21T00:07:53.386Z","dependency_job_id":null,"html_url":"https://gitlab.com/sunpeek/sunpeek","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:gitlab/sunpeek/sunpeek","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/sunpeek%2Fsunpeek","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/sunpeek%2Fsunpeek/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/sunpeek%2Fsunpeek/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/sunpeek%2Fsunpeek/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners/sunpeek","download_url":"https://gitlab.com/sunpeek/sunpeek/-/archive/main/sunpeek-main.zip","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/sunpeek%2Fsunpeek/sbom","scorecard":null,"host":{"name":"gitlab.com","url":"https://gitlab.com","kind":"gitlab","repositories_count":4521539,"owners_count":7348,"icon_url":"https://github.com/gitlab.png","version":null,"created_at":"2022-05-30T11:31:42.605Z","updated_at":"2026-01-12T22:45:04.389Z","status":"online","status_checked_at":"2026-03-21T02:00:08.716Z","response_time":260,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.382Z","robots_txt_url":"https://gitlab.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners"},"owner_record":{"login":"sunpeek","name":"SunPeek","uuid":"organization-63588217","kind":"organization","description":"","email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://gitlab.com/uploads/-/system/group/avatar/63588217/Icon_Blue.png","repositories_count":7,"last_synced_at":"2023-08-05T08:10:23.198Z","metadata":{},"html_url":"https://gitlab.com/sunpeek","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2023-02-22T13:41:54.127Z","updated_at":"2023-08-05T08:10:23.318Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners/sunpeek","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners/sunpeek/repositories"},"tags":[]},"repo_metadata_updated_at":"2026-04-04T05:17:57.098Z","dependent_packages_count":1,"downloads":1721,"downloads_period":"last-month","dependent_repos_count":1,"rankings":{"downloads":5.239698754986998,"dependent_repos_count":22.077396024530657,"dependent_packages_count":3.241858663024378,"stargazers_count":25.120832501692636,"forks_count":15.413892090427542,"docker_downloads_count":null,"average":14.21873560693244},"purl":"pkg:pypi/sunpeek","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/sunpeek","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/sunpeek","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/sunpeek/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2026-03-27T01:00:28.997Z","issues_count":null,"pull_requests_count":null,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":null,"issues_closed_count":null,"pull_requests_closed_count":null,"pull_request_authors_count":null,"issue_authors_count":null,"avg_comments_per_issue":null,"avg_comments_per_pull_request":null,"merged_pull_requests_count":null,"bot_issues_count":null,"bot_pull_requests_count":null,"past_year_issues_count":null,"past_year_pull_requests_count":null,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":null,"past_year_pull_requests_closed_count":null,"past_year_pull_request_authors_count":null,"past_year_issue_authors_count":null,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":null,"past_year_bot_pull_requests_count":null,"past_year_merged_pull_requests_count":null,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/sunpeek%2Fsunpeek/issues","maintainers":[],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sunpeek/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sunpeek/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sunpeek/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sunpeek/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/sunpeek/codemeta","maintainers":[{"uuid":"mhamiltonj","login":"mhamiltonj","name":null,"email":null,"url":null,"packages_count":4,"html_url":"https://pypi.org/user/mhamiltonj/","role":null,"created_at":"2023-02-10T15:30:18.497Z","updated_at":"2023-02-10T15:30:18.497Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/mhamiltonj/packages"},{"uuid":"philip.ohnewein","login":"philip.ohnewein","name":null,"email":null,"url":null,"packages_count":3,"html_url":"https://pypi.org/user/philip.ohnewein/","role":null,"created_at":"2023-02-13T16:46:30.653Z","updated_at":"2023-02-13T16:46:30.653Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/philip.ohnewein/packages"},{"uuid":"Lukas_Feierl","login":"Lukas_Feierl","name":null,"email":null,"url":null,"packages_count":3,"html_url":"https://pypi.org/user/Lukas_Feierl/","role":null,"created_at":"2023-02-17T13:29:36.248Z","updated_at":"2023-02-17T13:29:36.248Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/Lukas_Feierl/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":833443,"maintainers_count":355815,"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":8134420,"full_name":"sunpeek/sunpeek","default_branch":"main","total_commits":260,"total_committers":7,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":37.142857142857146,"dds":0.573076923076923,"past_year_total_commits":66,"past_year_total_committers":7,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":9.428571428571429,"past_year_dds":0.4696969696969697,"last_synced_at":"2026-04-04T05:00:31.765Z","last_synced_commit":"b599e3ae089976d3755eed8b703c810a343ff760","created_at":"2025-01-04T00:30:24.804Z","updated_at":"2026-04-04T05:00:30.741Z","committers":[{"name":"Philip Ohnewein","email":"philip.ohnewein@gmail.com","login":null,"count":111},{"name":"Lukas Feierl","email":"l.feierl@solid.at","login":null,"count":59},{"name":"Marnoch Hamilton-Jones","email":"dev@mlhj.eu","login":null,"count":58},{"name":"Philip Ohnewein","email":"p.ohnewein@aee.at","login":null,"count":15},{"name":"Peter Zauner","email":"p.zauner@aee.at","login":null,"count":8},{"name":"m.hamilton-jones","email":"m.hamilton-jones@aee.at","login":null,"count":7},{"name":"Léo Bonal","email":"leo.bonal@v-research.at","login":null,"count":2}],"past_year_committers":[{"name":"Philip Ohnewein","email":"philip.ohnewein@gmail.com","login":null,"count":35},{"name":"Lukas Emberger","email":"l.feierl@solid.at","login":null,"count":11},{"name":"Marnoch Hamilton-Jones","email":"dev@mlhj.eu","login":null,"count":10},{"name":"Marnoch Hamilton-Jones","email":"m.hamilton-jones@aee.at","login":null,"count":3},{"name":"Philip Ohnewein","email":"p.ohnewein@aee.at","login":null,"count":3},{"name":"Léo Bonal","email":"leo.bonal@v-research.at","login":null,"count":2},{"name":"Peter Zauner","email":"p.zauner@aee.at","login":null,"count":2}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/sunpeek%2Fsunpeek/commits","host":{"name":"gitlab.com","url":"https://gitlab.com","kind":"gitlab","last_synced_at":"2026-04-06T00:00:08.929Z","repositories_count":23875,"commits_count":4130298,"contributors_count":113997,"owners_count":12291,"icon_url":"https://github.com/gitlab.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/gitlab.com","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/gitlab.com/repositories"}},"issues_stats":{"full_name":"sunpeek/sunpeek","html_url":"https://gitlab.com/sunpeek/sunpeek","last_synced_at":"2026-04-04T05:00:45.291Z","status":"error","issues_count":null,"pull_requests_count":null,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":null,"issues_closed_count":null,"pull_requests_closed_count":null,"pull_request_authors_count":null,"issue_authors_count":null,"avg_comments_per_issue":null,"avg_comments_per_pull_request":null,"merged_pull_requests_count":null,"bot_issues_count":null,"bot_pull_requests_count":null,"past_year_issues_count":null,"past_year_pull_requests_count":null,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":null,"past_year_pull_requests_closed_count":null,"past_year_pull_request_authors_count":null,"past_year_issue_authors_count":null,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":null,"past_year_bot_pull_requests_count":null,"past_year_merged_pull_requests_count":null,"created_at":"2025-01-04T00:30:35.628Z","updated_at":"2026-04-04T05:00:45.291Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/sunpeek%2Fsunpeek","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/sunpeek%2Fsunpeek/issues","issue_labels_count":{"Implementation":111,"Definition/Discussion":60,"Data":36,"PC method":34,"Bug":33,"Future":22,"Virtual Sensors":17,"Documentation":16,"Overview":12,"Minor":11,"D-CAT":9,"API":9,"Critical":7,"Visualization":4,"python-package":4,"software meeting":3,"Fluid":3,"unclear":2,"Plants":2,"Major":1,"Blocking":1},"pull_request_labels_count":{},"issue_author_associations_count":{},"pull_request_author_associations_count":{},"issue_authors":{"p.ohnewein":134,"mhamiltonj":125,"LukasFeierl":59,"d.tschopp":31,"p.z":6,"h.poier":1,"MariaMoser":1},"pull_request_authors":{},"host":{"name":"gitlab.com","url":"https://gitlab.com","kind":"gitlab","last_synced_at":"2026-04-04T00:00:10.574Z","repositories_count":0,"issues_count":0,"pull_requests_count":0,"authors_count":61892,"icon_url":"https://github.com/gitlab.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/gitlab.com","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/gitlab.com/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/gitlab.com/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/gitlab.com/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":{},"past_year_issue_authors":{},"past_year_pull_request_authors":{},"maintainers":[],"active_maintainers":[]},"events":null,"keywords":[],"dependencies":[{"ecosystem":"docker","filepath":"Dockerfile","sha":null,"kind":"manifest","created_at":"2023-04-21T00:07:52.637Z","updated_at":"2023-04-21T00:07:52.637Z","repository_link":"https://gitlab.com/sunpeek/sunpeek/blob/main/Dockerfile","dependencies":[{"id":9118231775,"package_name":"sunpeek/poetry","ecosystem":"docker","requirements":"py3.8-slim","direct":true,"kind":"build","optional":false},{"id":9118231776,"package_name":"python","ecosystem":"docker","requirements":"3.8-slim","direct":true,"kind":"build","optional":false}]},{"ecosystem":"docker","filepath":"deploy/docker-compose.yml","sha":null,"kind":"manifest","created_at":"2023-04-21T00:07:52.711Z","updated_at":"2023-04-21T00:07:52.711Z","repository_link":"https://gitlab.com/sunpeek/sunpeek/blob/main/deploy/docker-compose.yml","dependencies":[{"id":9118231837,"package_name":"timescale/timescaledb","ecosystem":"docker","requirements":"latest-pg14","direct":true,"kind":"runtime","optional":false},{"id":9118231838,"package_name":"sunpeek/sunpeek","ecosystem":"docker","requirements":"latest","direct":true,"kind":"runtime","optional":false},{"id":9118231839,"package_name":"sunpeek/web-ui","ecosystem":"docker","requirements":"latest","direct":true,"kind":"runtime","optional":false},{"id":9118231840,"package_name":"traefik","ecosystem":"docker","requirements":"v2.8","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"docker","filepath":"dev-utils/docker-compose.yml","sha":null,"kind":"manifest","created_at":"2023-04-21T00:07:52.751Z","updated_at":"2023-04-21T00:07:52.751Z","repository_link":"https://gitlab.com/sunpeek/sunpeek/blob/main/dev-utils/docker-compose.yml","dependencies":[{"id":9118231855,"package_name":"timescale/timescaledb","ecosystem":"docker","requirements":"latest-pg14","direct":true,"kind":"runtime","optional":false},{"id":9118231856,"package_name":"sunpeek/web-ui","ecosystem":"docker","requirements":"latest","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"docker","filepath":"tests/docker-compose.yml","sha":null,"kind":"manifest","created_at":"2023-04-21T00:07:52.838Z","updated_at":"2023-04-21T00:07:52.838Z","repository_link":"https://gitlab.com/sunpeek/sunpeek/blob/main/tests/docker-compose.yml","dependencies":[{"id":9118232169,"package_name":"timescale/timescaledb","ecosystem":"docker","requirements":"latest-pg14","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"poetry.lock","sha":null,"kind":"lockfile","created_at":"2023-04-21T00:07:52.959Z","updated_at":"2023-04-21T00:07:52.959Z","repository_link":"https://gitlab.com/sunpeek/sunpeek/blob/main/poetry.lock","dependencies":[{"id":9118232195,"package_name":"accessible-pygments","ecosystem":"pypi","requirements":"0.0.4","direct":false,"kind":"develop","optional":false},{"id":9118232196,"package_name":"alabaster","ecosystem":"pypi","requirements":"0.7.13","direct":false,"kind":"develop","optional":false},{"id":9118232197,"package_name":"altgraph","ecosystem":"pypi","requirements":"0.17.3","direct":false,"kind":"develop","optional":false},{"id":9118232198,"package_name":"anyio","ecosystem":"pypi","requirements":"3.6.2","direct":false,"kind":"runtime","optional":false},{"id":9118232199,"package_name":"appnope","ecosystem":"pypi","requirements":"0.1.3","direct":false,"kind":"develop","optional":false},{"id":9118232200,"package_name":"arrow","ecosystem":"pypi","requirements":"1.2.3","direct":false,"kind":"runtime","optional":false},{"id":9118232201,"package_name":"asgiref","ecosystem":"pypi","requirements":"3.6.0","direct":false,"kind":"runtime","optional":false},{"id":9118232202,"package_name":"asttokens","ecosystem":"pypi","requirements":"2.2.1","direct":false,"kind":"develop","optional":false},{"id":9118232203,"package_name":"async-generator","ecosystem":"pypi","requirements":"1.10","direct":false,"kind":"runtime","optional":false},{"id":9118232204,"package_name":"attrs","ecosystem":"pypi","requirements":"22.2.0","direct":false,"kind":"runtime","optional":false},{"id":9118232205,"package_name":"autopep8","ecosystem":"pypi","requirements":"2.0.2","direct":false,"kind":"develop","optional":false},{"id":9118232206,"package_name":"babel","ecosystem":"pypi","requirements":"2.12.1","direct":false,"kind":"develop","optional":false},{"id":9118232207,"package_name":"backcall","ecosystem":"pypi","requirements":"0.2.0","direct":false,"kind":"develop","optional":false},{"id":9118232208,"package_name":"beautifulsoup4","ecosystem":"pypi","requirements":"4.12.1","direct":false,"kind":"develop","optional":false},{"id":9118232209,"package_name":"certifi","ecosystem":"pypi","requirements":"2022.12.7","direct":false,"kind":"runtime","optional":false},{"id":9118232210,"package_name":"cffi","ecosystem":"pypi","requirements":"1.15.1","direct":false,"kind":"runtime","optional":false},{"id":9118232211,"package_name":"charset-normalizer","ecosystem":"pypi","requirements":"3.1.0","direct":false,"kind":"runtime","optional":false},{"id":9118232212,"package_name":"click","ecosystem":"pypi","requirements":"8.1.3","direct":false,"kind":"runtime","optional":false},{"id":9118232213,"package_name":"colorama","ecosystem":"pypi","requirements":"0.4.6","direct":false,"kind":"runtime","optional":false},{"id":9118232214,"package_name":"coloredlogs","ecosystem":"pypi","requirements":"15.0.1","direct":false,"kind":"runtime","optional":false},{"id":9118232215,"package_name":"contourpy","ecosystem":"pypi","requirements":"1.0.7","direct":false,"kind":"runtime","optional":false},{"id":9118232216,"package_name":"coolprop","ecosystem":"pypi","requirements":"6.4.3.post1","direct":false,"kind":"runtime","optional":false},{"id":9118232217,"package_name":"coverage","ecosystem":"pypi","requirements":"7.2.2","direct":false,"kind":"develop","optional":false},{"id":9118232218,"package_name":"cycler","ecosystem":"pypi","requirements":"0.11.0","direct":false,"kind":"runtime","optional":false},{"id":9118232219,"package_name":"decorator","ecosystem":"pypi","requirements":"5.1.1","direct":false,"kind":"develop","optional":false},{"id":9118232220,"package_name":"docutils","ecosystem":"pypi","requirements":"0.19","direct":false,"kind":"develop","optional":false},{"id":9118232221,"package_name":"ephem","ecosystem":"pypi","requirements":"4.1.4","direct":false,"kind":"runtime","optional":false},{"id":9118232222,"package_name":"exceptiongroup","ecosystem":"pypi","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":9118232223,"package_name":"execnet","ecosystem":"pypi","requirements":"1.9.0","direct":false,"kind":"develop","optional":false},{"id":9118232224,"package_name":"executing","ecosystem":"pypi","requirements":"1.2.0","direct":false,"kind":"develop","optional":false},{"id":9118232225,"package_name":"fastapi","ecosystem":"pypi","requirements":"0.95.0","direct":false,"kind":"runtime","optional":false},{"id":9118232226,"package_name":"filelock","ecosystem":"pypi","requirements":"3.10.7","direct":false,"kind":"develop","optional":false},{"id":9118232227,"package_name":"flatbuffers","ecosystem":"pypi","requirements":"23.3.3","direct":false,"kind":"runtime","optional":false},{"id":9118232228,"package_name":"fonttools","ecosystem":"pypi","requirements":"4.39.3","direct":false,"kind":"runtime","optional":false},{"id":9118232229,"package_name":"geographiclib","ecosystem":"pypi","requirements":"2.0","direct":false,"kind":"develop","optional":false},{"id":9118232230,"package_name":"geopy","ecosystem":"pypi","requirements":"2.3.0","direct":false,"kind":"develop","optional":false},{"id":9118232231,"package_name":"gprof2dot","ecosystem":"pypi","requirements":"2022.7.29","direct":false,"kind":"develop","optional":false},{"id":9118232232,"package_name":"greenlet","ecosystem":"pypi","requirements":"2.0.2","direct":false,"kind":"runtime","optional":false},{"id":9118232233,"package_name":"h11","ecosystem":"pypi","requirements":"0.14.0","direct":false,"kind":"runtime","optional":false},{"id":9118232234,"package_name":"h3","ecosystem":"pypi","requirements":"3.7.6","direct":false,"kind":"runtime","optional":false},{"id":9118232235,"package_name":"h5py","ecosystem":"pypi","requirements":"3.8.0","direct":false,"kind":"runtime","optional":false},{"id":9118232236,"package_name":"httpcore","ecosystem":"pypi","requirements":"0.16.3","direct":false,"kind":"runtime","optional":false},{"id":9118232237,"package_name":"httptools","ecosystem":"pypi","requirements":"0.5.0","direct":false,"kind":"runtime","optional":false},{"id":9118232238,"package_name":"httpx","ecosystem":"pypi","requirements":"0.23.3","direct":false,"kind":"runtime","optional":false},{"id":9118232239,"package_name":"humanfriendly","ecosystem":"pypi","requirements":"10.0","direct":false,"kind":"runtime","optional":false},{"id":9118232240,"package_name":"idna","ecosystem":"pypi","requirements":"3.4","direct":false,"kind":"runtime","optional":false},{"id":9118232241,"package_name":"imagesize","ecosystem":"pypi","requirements":"1.4.1","direct":false,"kind":"develop","optional":false},{"id":9118232242,"package_name":"importlib-metadata","ecosystem":"pypi","requirements":"6.1.0","direct":false,"kind":"develop","optional":false},{"id":9118232243,"package_name":"importlib-resources","ecosystem":"pypi","requirements":"5.12.0","direct":false,"kind":"runtime","optional":false},{"id":9118232244,"package_name":"iniconfig","ecosystem":"pypi","requirements":"2.0.0","direct":false,"kind":"develop","optional":false},{"id":9118232245,"package_name":"ipython","ecosystem":"pypi","requirements":"8.12.0","direct":false,"kind":"develop","optional":false},{"id":9118232246,"package_name":"jedi","ecosystem":"pypi","requirements":"0.18.2","direct":false,"kind":"develop","optional":false},{"id":9118232247,"package_name":"jinja2","ecosystem":"pypi","requirements":"3.1.2","direct":false,"kind":"develop","optional":false},{"id":9118232248,"package_name":"joblib","ecosystem":"pypi","requirements":"1.2.0","direct":false,"kind":"runtime","optional":false},{"id":9118232249,"package_name":"jsonschema","ecosystem":"pypi","requirements":"4.17.3","direct":false,"kind":"develop","optional":false},{"id":9118232250,"package_name":"kaleido","ecosystem":"pypi","requirements":"0.2.1","direct":false,"kind":"runtime","optional":false},{"id":9118232251,"package_name":"kiwisolver","ecosystem":"pypi","requirements":"1.4.4","direct":false,"kind":"runtime","optional":false},{"id":9118232253,"package_name":"lxml","ecosystem":"pypi","requirements":"4.9.2","direct":false,"kind":"runtime","optional":false},{"id":9118232254,"package_name":"macholib","ecosystem":"pypi","requirements":"1.16.2","direct":false,"kind":"develop","optional":false},{"id":9118232255,"package_name":"markdown-it-py","ecosystem":"pypi","requirements":"2.2.0","direct":false,"kind":"develop","optional":false},{"id":9118232256,"package_name":"markupsafe","ecosystem":"pypi","requirements":"2.1.2","direct":false,"kind":"develop","optional":false},{"id":9118232257,"package_name":"matplotlib","ecosystem":"pypi","requirements":"3.7.1","direct":false,"kind":"runtime","optional":false},{"id":9118232258,"package_name":"matplotlib-inline","ecosystem":"pypi","requirements":"0.1.6","direct":false,"kind":"develop","optional":false},{"id":9118232259,"package_name":"mdit-py-plugins","ecosystem":"pypi","requirements":"0.3.5","direct":false,"kind":"develop","optional":false},{"id":9118232260,"package_name":"mdurl","ecosystem":"pypi","requirements":"0.1.2","direct":false,"kind":"develop","optional":false},{"id":9118232261,"package_name":"metpy","ecosystem":"pypi","requirements":"1.4.1","direct":false,"kind":"runtime","optional":false},{"id":9118232263,"package_name":"mpmath","ecosystem":"pypi","requirements":"1.3.0","direct":false,"kind":"runtime","optional":false},{"id":9118232264,"package_name":"myst-parser","ecosystem":"pypi","requirements":"1.0.0","direct":false,"kind":"develop","optional":false},{"id":9118232265,"package_name":"numpy","ecosystem":"pypi","requirements":"1.24.2","direct":false,"kind":"runtime","optional":false},{"id":9118232266,"package_name":"numpydoc","ecosystem":"pypi","requirements":"1.5.0","direct":false,"kind":"develop","optional":false},{"id":9118232267,"package_name":"objprint","ecosystem":"pypi","requirements":"0.2.2","direct":false,"kind":"develop","optional":false},{"id":9118232268,"package_name":"onnx","ecosystem":"pypi","requirements":"1.13.1","direct":false,"kind":"runtime","optional":false},{"id":9118232269,"package_name":"onnxconverter-common","ecosystem":"pypi","requirements":"1.13.0","direct":false,"kind":"runtime","optional":false},{"id":9118232270,"package_name":"onnxruntime","ecosystem":"pypi","requirements":"1.14.1","direct":false,"kind":"runtime","optional":false},{"id":9118232271,"package_name":"outcome","ecosystem":"pypi","requirements":"1.2.0","direct":false,"kind":"runtime","optional":false},{"id":9118232272,"package_name":"packaging","ecosystem":"pypi","requirements":"23.0","direct":false,"kind":"runtime","optional":false},{"id":9118232273,"package_name":"pandas","ecosystem":"pypi","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":9118232274,"package_name":"parso","ecosystem":"pypi","requirements":"0.8.3","direct":false,"kind":"develop","optional":false},{"id":9118232275,"package_name":"patsy","ecosystem":"pypi","requirements":"0.5.3","direct":false,"kind":"runtime","optional":false},{"id":9118232276,"package_name":"pefile","ecosystem":"pypi","requirements":"2023.2.7","direct":false,"kind":"develop","optional":false},{"id":9118232277,"package_name":"pexpect","ecosystem":"pypi","requirements":"4.8.0","direct":false,"kind":"develop","optional":false},{"id":9118232278,"package_name":"pickleshare","ecosystem":"pypi","requirements":"0.7.5","direct":false,"kind":"develop","optional":false},{"id":9118232279,"package_name":"pillow","ecosystem":"pypi","requirements":"9.5.0","direct":false,"kind":"runtime","optional":false},{"id":9118232280,"package_name":"pint","ecosystem":"pypi","requirements":"0.20.1","direct":false,"kind":"runtime","optional":false},{"id":9118232281,"package_name":"pint-pandas","ecosystem":"pypi","requirements":"0.3","direct":false,"kind":"runtime","optional":false},{"id":9118232282,"package_name":"pip-licenses","ecosystem":"pypi","requirements":"4.1.0","direct":false,"kind":"develop","optional":false},{"id":9118232283,"package_name":"pkgutil-resolve-name","ecosystem":"pypi","requirements":"1.3.10","direct":false,"kind":"develop","optional":false},{"id":9118232284,"package_name":"platformdirs","ecosystem":"pypi","requirements":"3.2.0","direct":false,"kind":"runtime","optional":false},{"id":9118232285,"package_name":"plotly","ecosystem":"pypi","requirements":"5.14.1","direct":false,"kind":"develop","optional":false},{"id":9118232286,"package_name":"pluggy","ecosystem":"pypi","requirements":"1.0.0","direct":false,"kind":"develop","optional":false},{"id":9118232287,"package_name":"pooch","ecosystem":"pypi","requirements":"1.7.0","direct":false,"kind":"runtime","optional":false},{"id":9118232288,"package_name":"prettytable","ecosystem":"pypi","requirements":"3.6.0","direct":false,"kind":"develop","optional":false},{"id":9118232289,"package_name":"prompt-toolkit","ecosystem":"pypi","requirements":"3.0.38","direct":false,"kind":"develop","optional":false},{"id":9118232290,"package_name":"protobuf","ecosystem":"pypi","requirements":"3.20.3","direct":false,"kind":"runtime","optional":false},{"id":9118232291,"package_name":"psycopg2-binary","ecosystem":"pypi","requirements":"2.9.6","direct":false,"kind":"runtime","optional":false},{"id":9118232292,"package_name":"ptyprocess","ecosystem":"pypi","requirements":"0.7.0","direct":false,"kind":"develop","optional":false},{"id":9118232293,"package_name":"pure-eval","ecosystem":"pypi","requirements":"0.2.2","direct":false,"kind":"develop","optional":false},{"id":9118232328,"package_name":"pvlib","ecosystem":"pypi","requirements":"0.9.5","direct":false,"kind":"runtime","optional":false},{"id":9118232352,"package_name":"pycobertura","ecosystem":"pypi","requirements":"3.0.0","direct":false,"kind":"develop","optional":false},{"id":9118232353,"package_name":"pycodestyle","ecosystem":"pypi","requirements":"2.10.0","direct":false,"kind":"develop","optional":false},{"id":9118232354,"package_name":"pycparser","ecosystem":"pypi","requirements":"2.21","direct":false,"kind":"runtime","optional":false},{"id":9118232355,"package_name":"pydantic","ecosystem":"pypi","requirements":"1.10.7","direct":false,"kind":"runtime","optional":false},{"id":9118232356,"package_name":"pydata-sphinx-theme","ecosystem":"pypi","requirements":"0.13.3","direct":false,"kind":"develop","optional":false},{"id":9118232357,"package_name":"pydeps","ecosystem":"pypi","requirements":"1.11.2","direct":false,"kind":"develop","optional":false},{"id":9118232358,"package_name":"pyephem","ecosystem":"pypi","requirements":"9.99","direct":false,"kind":"runtime","optional":false},{"id":9118232359,"package_name":"pygments","ecosystem":"pypi","requirements":"2.14.0","direct":false,"kind":"develop","optional":false},{"id":9118232360,"package_name":"pyinstaller","ecosystem":"pypi","requirements":"5.9.0","direct":false,"kind":"develop","optional":false},{"id":9118232361,"package_name":"pyinstaller-hooks-contrib","ecosystem":"pypi","requirements":"2023.1","direct":false,"kind":"develop","optional":false},{"id":9118232362,"package_name":"pyparsing","ecosystem":"pypi","requirements":"3.0.9","direct":false,"kind":"runtime","optional":false},{"id":9118232363,"package_name":"pyproj","ecosystem":"pypi","requirements":"3.4.1","direct":false,"kind":"runtime","optional":false},{"id":9118232364,"package_name":"pyreadline3","ecosystem":"pypi","requirements":"3.4.1","direct":false,"kind":"runtime","optional":false},{"id":9118232365,"package_name":"pyrsistent","ecosystem":"pypi","requirements":"0.19.3","direct":false,"kind":"develop","optional":false},{"id":9118232366,"package_name":"pytest","ecosystem":"pypi","requirements":"7.2.2","direct":false,"kind":"develop","optional":false},{"id":9118232367,"package_name":"pytest-cov","ecosystem":"pypi","requirements":"4.0.0","direct":false,"kind":"develop","optional":false},{"id":9118232368,"package_name":"pytest-docker","ecosystem":"pypi","requirements":"1.0.1","direct":false,"kind":"develop","optional":false},{"id":9118232369,"package_name":"pytest-env","ecosystem":"pypi","requirements":"0.8.1","direct":false,"kind":"develop","optional":false},{"id":9118232370,"package_name":"pytest-profiling","ecosystem":"pypi","requirements":"1.7.0","direct":false,"kind":"develop","optional":false},{"id":9118232371,"package_name":"pytest-xdist","ecosystem":"pypi","requirements":"3.2.1","direct":false,"kind":"develop","optional":false},{"id":9118232372,"package_name":"python-dateutil","ecosystem":"pypi","requirements":"2.8.2","direct":false,"kind":"runtime","optional":false},{"id":9118232373,"package_name":"python-dotenv","ecosystem":"pypi","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":9118232374,"package_name":"python-multipart","ecosystem":"pypi","requirements":"0.0.6","direct":false,"kind":"runtime","optional":false},{"id":9118232375,"package_name":"pytz","ecosystem":"pypi","requirements":"2023.3","direct":false,"kind":"runtime","optional":false},{"id":9118232376,"package_name":"pywin32-ctypes","ecosystem":"pypi","requirements":"0.2.0","direct":false,"kind":"develop","optional":false},{"id":9118232377,"package_name":"pyyaml","ecosystem":"pypi","requirements":"6.0","direct":false,"kind":"runtime","optional":false},{"id":9118232378,"package_name":"requests","ecosystem":"pypi","requirements":"2.28.2","direct":false,"kind":"runtime","optional":false},{"id":9118232379,"package_name":"rfc3986","ecosystem":"pypi","requirements":"1.5.0","direct":false,"kind":"runtime","optional":false},{"id":9118232380,"package_name":"ruamel-yaml","ecosystem":"pypi","requirements":"0.17.21","direct":false,"kind":"develop","optional":false},{"id":9118232381,"package_name":"ruamel-yaml-clib","ecosystem":"pypi","requirements":"0.2.7","direct":false,"kind":"develop","optional":false},{"id":9118232382,"package_name":"scikit-learn","ecosystem":"pypi","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":9118232383,"package_name":"scipy","ecosystem":"pypi","requirements":"1.10.1","direct":false,"kind":"runtime","optional":false},{"id":9118232384,"package_name":"setuptools","ecosystem":"pypi","requirements":"67.6.1","direct":false,"kind":"runtime","optional":false},{"id":9118232385,"package_name":"six","ecosystem":"pypi","requirements":"1.16.0","direct":false,"kind":"runtime","optional":false},{"id":9118232386,"package_name":"skl2onnx","ecosystem":"pypi","requirements":"1.13","direct":false,"kind":"runtime","optional":false},{"id":9118232387,"package_name":"sniffio","ecosystem":"pypi","requirements":"1.3.0","direct":false,"kind":"runtime","optional":false},{"id":9118232388,"package_name":"snowballstemmer","ecosystem":"pypi","requirements":"2.2.0","direct":false,"kind":"develop","optional":false},{"id":9118232389,"package_name":"sortedcontainers","ecosystem":"pypi","requirements":"2.4.0","direct":false,"kind":"runtime","optional":false},{"id":9118232390,"package_name":"soupsieve","ecosystem":"pypi","requirements":"2.4","direct":false,"kind":"develop","optional":false},{"id":9118232391,"package_name":"sphinx","ecosystem":"pypi","requirements":"6.1.3","direct":false,"kind":"develop","optional":false},{"id":9118232392,"package_name":"sphinx-autodoc-typehints","ecosystem":"pypi","requirements":"1.22","direct":false,"kind":"develop","optional":false},{"id":9118232393,"package_name":"sphinxcontrib-applehelp","ecosystem":"pypi","requirements":"1.0.4","direct":false,"kind":"develop","optional":false},{"id":9118232394,"package_name":"sphinxcontrib-devhelp","ecosystem":"pypi","requirements":"1.0.2","direct":false,"kind":"develop","optional":false},{"id":9118232395,"package_name":"sphinxcontrib-htmlhelp","ecosystem":"pypi","requirements":"2.0.1","direct":false,"kind":"develop","optional":false},{"id":9118232396,"package_name":"sphinxcontrib-jsmath","ecosystem":"pypi","requirements":"1.0.1","direct":false,"kind":"develop","optional":false},{"id":9118232397,"package_name":"sphinxcontrib-qthelp","ecosystem":"pypi","requirements":"1.0.3","direct":false,"kind":"develop","optional":false},{"id":9118232398,"package_name":"sphinxcontrib-redoc","ecosystem":"pypi","requirements":"1.6.0","direct":false,"kind":"develop","optional":false},{"id":9118232399,"package_name":"sphinxcontrib-serializinghtml","ecosystem":"pypi","requirements":"1.1.5","direct":false,"kind":"develop","optional":false},{"id":9118232400,"package_name":"sqlalchemy","ecosystem":"pypi","requirements":"1.4.47","direct":false,"kind":"runtime","optional":false},{"id":9118232401,"package_name":"sqlalchemy-utils","ecosystem":"pypi","requirements":"0.40.0","direct":false,"kind":"runtime","optional":false},{"id":9118232402,"package_name":"stack-data","ecosystem":"pypi","requirements":"0.6.2","direct":false,"kind":"develop","optional":false},{"id":9118232403,"package_name":"starlette","ecosystem":"pypi","requirements":"0.26.1","direct":false,"kind":"runtime","optional":false},{"id":9118232404,"package_name":"statsmodels","ecosystem":"pypi","requirements":"0.13.2","direct":false,"kind":"runtime","optional":false},{"id":9118232405,"package_name":"statsmodels","ecosystem":"pypi","requirements":"0.13.3","direct":false,"kind":"runtime","optional":false},{"id":9118232407,"package_name":"statsmodels","ecosystem":"pypi","requirements":"0.13.4","direct":false,"kind":"runtime","optional":false},{"id":9118232409,"package_name":"statsmodels","ecosystem":"pypi","requirements":"0.13.5","direct":false,"kind":"runtime","optional":false},{"id":9118232411,"package_name":"stdlib-list","ecosystem":"pypi","requirements":"0.8.0","direct":false,"kind":"develop","optional":false},{"id":9118232413,"package_name":"sunpeek-exampledata","ecosystem":"pypi","requirements":"0.1.0","direct":false,"kind":"runtime","optional":false},{"id":9118232416,"package_name":"sympy","ecosystem":"pypi","requirements":"1.11.1","direct":false,"kind":"runtime","optional":false},{"id":9118232418,"package_name":"tabulate","ecosystem":"pypi","requirements":"0.9.0","direct":false,"kind":"develop","optional":false},{"id":9118232419,"package_name":"tenacity","ecosystem":"pypi","requirements":"8.2.2","direct":false,"kind":"develop","optional":false},{"id":9118232421,"package_name":"threadpoolctl","ecosystem":"pypi","requirements":"3.1.0","direct":false,"kind":"runtime","optional":false},{"id":9118232428,"package_name":"times","ecosystem":"pypi","requirements":"0.7","direct":false,"kind":"runtime","optional":false},{"id":9118232430,"package_name":"timezonefinder","ecosystem":"pypi","requirements":"6.2.0","direct":false,"kind":"runtime","optional":false},{"id":9118232431,"package_name":"tomli","ecosystem":"pypi","requirements":"2.0.1","direct":false,"kind":"runtime","optional":false},{"id":9118232432,"package_name":"traitlets","ecosystem":"pypi","requirements":"5.9.0","direct":false,"kind":"runtime","optional":false},{"id":9118232433,"package_name":"trio","ecosystem":"pypi","requirements":"0.22.0","direct":false,"kind":"runtime","optional":false},{"id":9118232434,"package_name":"typing-extensions","ecosystem":"pypi","requirements":"4.5.0","direct":false,"kind":"runtime","optional":false},{"id":9118232435,"package_name":"tzdata","ecosystem":"pypi","requirements":"2023.3","direct":false,"kind":"runtime","optional":false},{"id":9118232436,"package_name":"urllib3","ecosystem":"pypi","requirements":"1.26.15","direct":false,"kind":"runtime","optional":false},{"id":9118232437,"package_name":"uvicorn","ecosystem":"pypi","requirements":"0.17.6","direct":false,"kind":"runtime","optional":false},{"id":9118232438,"package_name":"uvloop","ecosystem":"pypi","requirements":"0.17.0","direct":false,"kind":"runtime","optional":false},{"id":9118232439,"package_name":"watchgod","ecosystem":"pypi","requirements":"0.8.2","direct":false,"kind":"runtime","optional":false},{"id":9118232440,"package_name":"watchpoints","ecosystem":"pypi","requirements":"0.2.5","direct":false,"kind":"develop","optional":false},{"id":9118232441,"package_name":"wcwidth","ecosystem":"pypi","requirements":"0.2.6","direct":false,"kind":"develop","optional":false},{"id":9118232450,"package_name":"websockets","ecosystem":"pypi","requirements":"11.0.1","direct":false,"kind":"runtime","optional":false},{"id":9118232451,"package_name":"xarray","ecosystem":"pypi","requirements":"2023.1.0","direct":false,"kind":"runtime","optional":false},{"id":9118232452,"package_name":"yamlloader","ecosystem":"pypi","requirements":"1.2.2","direct":false,"kind":"runtime","optional":false},{"id":9118232455,"package_name":"zipp","ecosystem":"pypi","requirements":"3.15.0","direct":false,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2023-04-21T00:07:53.232Z","updated_at":"2023-04-21T00:07:53.232Z","repository_link":"https://gitlab.com/sunpeek/sunpeek/blob/main/pyproject.toml","dependencies":[{"id":9118232612,"package_name":"python","ecosystem":"pypi","requirements":"~3.8","direct":true,"kind":"runtime","optional":false},{"id":9118232613,"package_name":"fastapi","ecosystem":"pypi","requirements":"\u003e=0.92","direct":true,"kind":"runtime","optional":false},{"id":9118232614,"package_name":"sqlalchemy","ecosystem":"pypi","requirements":"^1.4","direct":true,"kind":"runtime","optional":false},{"id":9118232615,"package_name":"psycopg2-binary","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":9118232616,"package_name":"yamlloader","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":9118232617,"package_name":"uvicorn","ecosystem":"pypi","requirements":"\u003c0.18","direct":true,"kind":"runtime","optional":false},{"id":9118232618,"package_name":"python-multipart","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":9118232619,"package_name":"httpx","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":9118232620,"package_name":"trio","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":9118232621,"package_name":"kaleido","ecosystem":"pypi","requirements":"0.2.1","direct":true,"kind":"runtime","optional":false},{"id":9118232622,"package_name":"pandas","ecosystem":"pypi","requirements":"^2","direct":true,"kind":"runtime","optional":false},{"id":9118232623,"package_name":"pint","ecosystem":"pypi","requirements":"\u003e=0.19.2","direct":true,"kind":"runtime","optional":false},{"id":9118232624,"package_name":"pint-pandas","ecosystem":"pypi","requirements":"\u003e=0.2","direct":true,"kind":"runtime","optional":false},{"id":9118232625,"package_name":"numpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":9118232626,"package_name":"pvlib","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":9118232627,"package_name":"metpy","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":9118232628,"package_name":"statsmodels","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":9118232629,"package_name":"pyephem","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":9118232630,"package_name":"times","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":9118232631,"package_name":"timezonefinder","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":9118232632,"package_name":"protobuf","ecosystem":"pypi","requirements":"\u003c4","direct":true,"kind":"runtime","optional":false},{"id":9118232633,"package_name":"coolprop","ecosystem":"pypi","requirements":"~6.4","direct":true,"kind":"runtime","optional":false},{"id":9118232634,"package_name":"scikit-learn","ecosystem":"pypi","requirements":"\u003c1.2","direct":true,"kind":"runtime","optional":false},{"id":9118232635,"package_name":"skl2onnx","ecosystem":"pypi","requirements":"1.13","direct":true,"kind":"runtime","optional":false},{"id":9118232636,"package_name":"onnxruntime","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":9118232637,"package_name":"lxml","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":9118232638,"package_name":"sqlalchemy-utils","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":9118232639,"package_name":"pyproj","ecosystem":"pypi","requirements":"\u003c3.5.0","direct":true,"kind":"runtime","optional":false},{"id":9118232640,"package_name":"scipy","ecosystem":"pypi","requirements":"\u003e=1.10","direct":true,"kind":"runtime","optional":false},{"id":9118232641,"package_name":"tomli","ecosystem":"pypi","requirements":"^2.0.1","direct":true,"kind":"runtime","optional":false},{"id":9118232642,"package_name":"sunpeek-exampledata","ecosystem":"pypi","requirements":"\u003e=0.1.0","direct":true,"kind":"runtime","optional":false},{"id":9118232643,"package_name":"python-dotenv","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":9118232644,"package_name":"pydantic","ecosystem":"pypi","requirements":"^1.10.5","direct":true,"kind":"runtime","optional":false}]}],"score":14.34111444330799,"created_at":"2023-10-01T00:04:01.876Z","updated_at":"2026-04-06T06:00:21.885Z","avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/43333900/favicon.png","language":null,"category":"Renewable Energy","sub_category":"Photovoltaics and Solar Energy","monthly_downloads":1721,"total_dependent_repos":1,"total_dependent_packages":1,"readme":"![Logo_Transparent_wide.svg](https://gitlab.com/sunpeek/sunpeek/-/raw/main/sunpeek/static_assets/logos/svg/SunPeek_Logo_dark.svg?inline=false)\n\n# About SunPeek\n\n![Supported Python](https://img.shields.io/pypi/pyversions/sunpeek)\n[![Docker Image Version (latest semver)](https://img.shields.io/docker/v/sunpeek/sunpeek?label=image\u0026logo=docker\u0026sort=semver)](https://hub.docker.com/r/sunpeek/sunpeek)\n[![PyPI](https://img.shields.io/pypi/v/sunpeek?logo=PyPi\u0026logoColor=yellow)](https://pypi.org/project/sunpeek/)\n\nSunPeek implements a dynamic, in situ test methodology for large solar thermal plants, packaged as an open source software application and Python library. It includes the first open source implementation of the ISO 24194 Power Check procedure for verifying the performance of solar thermal collector fields.\n\n## What SunPeek is Used For\n\nSunPeek can be applied to solar thermal plants *in operation* when measurement data is available. The following use cases are supported:\n\n- **Performance Assessment**:\n  SunPeek estimates the expected power output of solar thermal collector fields based on certified collector parameters (ISO 9806) and measured operating conditions. The estimated power in certain valid intervals (criteria defined in ISO 24194) is compared with measured power to assess whether the plant works as expected. This can be used for quality assurance, performance guarantees, or acceptance testing.\n\n- **Performance Monitoring**:\n  By continuously computing the ratio of measured versus estimated power over time, SunPeek enables identification of performance degradation, anomalies, and maintenance needs. This is particularly valuable for detecting the effects of collector soiling and verifying the impact of cleaning operations.\n\nFor detailed information about the Power Check methodology and workflow, see the [Power Check FAQs](https://docs.sunpeek.org/quick_start/overview/power_check_faq.html).\n\n## Who SunPeek is For\n\nSunPeek is designed for solar thermal plant operators, performance engineers, researchers, and equipment manufacturers. Serving as the reference software implementation of ISO 24194, it makes professional-grade solar thermal testing accessible, transparent, and auditable for everyone—from large commercial installations to smaller systems and developing markets.\n\n## Handling Real-World Conditions\n\nUnlike idealized lab testing, SunPeek handles real-world operational challenges including data gaps, sensor failures, diverse collector configurations, varying measurement setups, and complex plant hydraulics. The software implements comprehensive data validation, automated quality checks, and flexible sensor mapping to work with the data you actually have.\n\n## Flexible Deployment\n\nSunPeek is available in two complementary forms:\n\n- **Web Application**, the [SunPeek WebUI](https://gitlab.com/sunpeek/web-ui): A complete, containerized web interface that makes configuration and ongoing monitoring of one or several solar thermal plants simple and intuitive. Designed for plant operators and engineers who need a ready-to-use solution accessible from any browser, with guided plant configuration, interactive data visualization, and automated report generation.\n\n- **Python Library**, in this repository: Direct programmatic access to all SunPeek functionality for researchers, automation workflows, and integration into other tools. Enables custom analysis, algorithm development, and flexible data processing pipelines.\n\nBoth modes use the same underlying calculation engine, ensuring consistent and reproducible results across deployment types.\n\n## Resources\n\n| Resource                         | Link                                                                                          |\n|----------------------------------|-----------------------------------------------------------------------------------------------|\n| **Documentation \u0026 Installation** | [docs.sunpeek.org](https://docs.sunpeek.org)                                                  |\n| **Website**                      | [sunpeek.org](https://sunpeek.org)                                                            |\n| **SunPeek FAQs**                 | [SunPeek Overview](https://docs.sunpeek.org/quick_start/overview/sunpeek_faq.html)           |\n| **Publications**                 | [Zenodo community](https://zenodo.org/communities/sunpeek)                                    |\n\n\n## License and Copyright\n\nExcept where specifically noted otherwise, SunPeek is made available under the GNU Lesser General Public License. This means\nthat you can use the software, copy it, redistribute it and include it in other software, including commercial, proprietary\nsoftware, for free, as long as you abide by the terms of the GNU GPL, with the exceptions provided by the LGPL. In particular,\nif you redistribute a modified version of the software, you must make the source code of your modifications available, and\nif you include the software in another piece of software or physical product, you must give users notice that SunPeek is\nused, and inform them where to obtain a copy of the SunPeek source code and license.\n\nNote that the [SunPeek WebUI](https://gitlab.com/sunpeek/web-ui) is covered by a separate license, the BSD-3-Clause, see:\n[BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)\n\nFor copyright and license information, see:\n* [AUTHORS.md](AUTHORS.md) - Copyright holders\n* [NOTICES.md](NOTICES.md) - License notices and third-party attributions\n* [COPYING.LESSER](COPYING.LESSER) and [COPYING](COPYING) - License text\n\n## Contributing\n\nContributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for developer setup instructions.\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/106852","html_url":"https://ost.ecosyste.ms/projects/106852"}