{"id":46176,"name":"SynopticPy","description":"Gives you access to real-time and historical surface-based weather and environmental observations for thousands of stations.","url":"https://github.com/blaylockbk/SynopticPy","last_synced_at":"2026-04-21T06:00:50.731Z","repository":{"id":47006583,"uuid":"288617886","full_name":"blaylockbk/SynopticPy","owner":"blaylockbk","description":"Retrieve mesonet weather data as Polars DataFrames from Synoptic's Weather API.","archived":false,"fork":false,"pushed_at":"2026-03-20T13:57:10.000Z","size":36116,"stargazers_count":72,"open_issues_count":6,"forks_count":7,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-04-15T03:04:35.887Z","etag":null,"topics":["mesonet","mesowest","polars","python","synoptic-api","weather"],"latest_commit_sha":null,"homepage":"https://synopticpy.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/blaylockbk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-08-19T02:52:50.000Z","updated_at":"2026-03-20T13:57:14.000Z","dependencies_parsed_at":"2025-09-28T01:24:49.985Z","dependency_job_id":null,"html_url":"https://github.com/blaylockbk/SynopticPy","commit_stats":{"total_commits":353,"total_committers":9,"mean_commits":39.22222222222222,"dds":0.2974504249291785,"last_synced_commit":"378b3e1a0cc4b7170034cb0e1386c19a2f354eb1"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/blaylockbk/SynopticPy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blaylockbk%2FSynopticPy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blaylockbk%2FSynopticPy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blaylockbk%2FSynopticPy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blaylockbk%2FSynopticPy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blaylockbk","download_url":"https://codeload.github.com/blaylockbk/SynopticPy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blaylockbk%2FSynopticPy/sbom","scorecard":{"id":242907,"data":{"date":"2025-08-11","repo":{"name":"github.com/blaylockbk/SynopticPy","commit":"be8d588f3331d55126f32a299682ca9ecad09d94"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.1,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 0/22 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/release_to_pypi.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/static.yml:14","Warn: no topLevel permission defined: .github/workflows/tests-python.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":2,"reason":"dependency not pinned by hash detected -- score normalized to 2","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release_to_pypi.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/blaylockbk/SynopticPy/release_to_pypi.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release_to_pypi.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/blaylockbk/SynopticPy/release_to_pypi.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release_to_pypi.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/blaylockbk/SynopticPy/release_to_pypi.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/static.yml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/blaylockbk/SynopticPy/static.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/static.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/blaylockbk/SynopticPy/static.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/static.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/blaylockbk/SynopticPy/static.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/static.yml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/blaylockbk/SynopticPy/static.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/static.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/blaylockbk/SynopticPy/static.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests-python.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/blaylockbk/SynopticPy/tests-python.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests-python.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/blaylockbk/SynopticPy/tests-python.yml/main?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/release_to_pypi.yml:27","Info:   0 out of   9 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   1 pipCommand dependencies pinned","Info:   1 out of   1 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/release_to_pypi.yml:9"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 11 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":1,"reason":"9 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-ghr5-ch3p-vcr6","Warn: Project is vulnerable to: GHSA-pfq8-rq6v-vf5m","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-9wv6-86v2-598j","Warn: Project is vulnerable to: GHSA-3965-hpx2-q597","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-17T06:57:56.014Z","repository_id":47006583,"created_at":"2025-08-17T06:57:56.014Z","updated_at":"2025-08-17T06:57:56.014Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31848218,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"ssl_error","status_checked_at":"2026-04-15T15:24:39.138Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"blaylockbk","name":"Brian Blaylock","uuid":"6249613","kind":"user","description":"Meteorologist","email":"","website":"http://home.chpc.utah.edu/~u0553130/Brian_Blaylock/home.html","location":"Monterey, CA","twitter":"blaylockbk","company":null,"icon_url":"https://avatars.githubusercontent.com/u/6249613?u=83e593317387e0cfacc6d86df40f6d2ee2f13676\u0026v=4","repositories_count":45,"last_synced_at":"2024-03-15T18:11:46.924Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/blaylockbk","funding_links":[],"total_stars":840,"followers":null,"following":null,"created_at":"2022-11-08T19:48:01.083Z","updated_at":"2024-03-15T18:11:58.822Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blaylockbk","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blaylockbk/repositories"},"packages":[{"id":2938029,"name":"synopticpy","ecosystem":"pypi","description":"Retrieve mesonet weather data as Polars DataFrames from Synoptic's Weather API.","homepage":"https://github.com/blaylockbk/SynopticPy","licenses":"MIT License\n        \n        Copyright (c) 2019-2024 Brian Blaylock\n        \n        Permission is hereby granted, free of charge, to any person obtaining a copy\n        of this software and associated documentation files (the \"Software\"), to deal\n        in the Software without restriction, including without limitation the rights\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n        copies of the Software, and to permit persons to whom the Software is\n        furnished to do so, subject to the following conditions:\n        \n        The above copyright notice and this permission notice shall be included in all\n        copies or substantial portions of the Software.\n        \n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n        SOFTWARE.","normalized_licenses":["Other"],"repository_url":"https://github.com/blaylockbk/SynopticPy","keywords_array":["atmosphere","mesonet","meteorology","weather"],"namespace":null,"versions_count":10,"first_release_published_at":"2020-09-20T00:55:21.000Z","latest_release_published_at":"2025-09-06T06:21:52.000Z","latest_release_number":"2025.9.0","last_synced_at":"2026-04-19T05:02:19.142Z","created_at":"2022-04-10T12:45:58.710Z","updated_at":"2026-04-19T05:02:19.143Z","registry_url":"https://pypi.org/project/synopticpy/","install_command":"pip install synopticpy --index-url https://pypi.org/simple","documentation_url":"https://synopticpy.readthedocs.io/","metadata":{"funding":null,"documentation":"https://synopticpy.readthedocs.io/","classifiers":["Development Status :: 4 - Beta","Intended Audience :: Science/Research","License :: OSI Approved :: MIT License","Operating System :: MacOS","Operating System :: Microsoft :: Windows","Operating System :: POSIX :: Linux","Programming Language :: Python :: 3","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Topic :: Scientific/Engineering :: Atmospheric Science"],"normalized_name":"synopticpy","project_status":null},"repo_metadata":{"id":47006583,"uuid":"288617886","full_name":"blaylockbk/SynopticPy","owner":"blaylockbk","description":"Retrieve data from thousands of mesonet stations as Polars DataFrames from Synoptic's Weather API. ","archived":false,"fork":false,"pushed_at":"2024-10-19T06:15:38.000Z","size":27210,"stargazers_count":48,"open_issues_count":9,"forks_count":6,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-10-29T21:01:19.676Z","etag":null,"topics":["mesonet","mesowest","polars","python","synoptic-api","weather"],"latest_commit_sha":null,"homepage":"https://synopticpy.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/blaylockbk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2020-08-19T02:52:50.000Z","updated_at":"2024-10-13T02:57:13.000Z","dependencies_parsed_at":"2024-03-17T04:42:06.934Z","dependency_job_id":null,"html_url":"https://github.com/blaylockbk/SynopticPy","commit_stats":{"total_commits":353,"total_committers":9,"mean_commits":39.22222222222222,"dds":0.2974504249291785,"last_synced_commit":"378b3e1a0cc4b7170034cb0e1386c19a2f354eb1"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blaylockbk%2FSynopticPy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blaylockbk%2FSynopticPy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blaylockbk%2FSynopticPy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blaylockbk%2FSynopticPy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blaylockbk","download_url":"https://codeload.github.com/blaylockbk/SynopticPy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222132498,"owners_count":16936606,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"blaylockbk","name":"Brian Blaylock","uuid":"6249613","kind":"user","description":"Meteorologist","email":"","website":"http://home.chpc.utah.edu/~u0553130/Brian_Blaylock/home.html","location":"Monterey, CA","twitter":"blaylockbk","company":null,"icon_url":"https://avatars.githubusercontent.com/u/6249613?u=83e593317387e0cfacc6d86df40f6d2ee2f13676\u0026v=4","repositories_count":45,"last_synced_at":"2024-03-15T18:11:46.924Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/blaylockbk","funding_links":[],"total_stars":840,"followers":null,"following":null,"created_at":"2022-11-08T19:48:01.083Z","updated_at":"2024-03-15T18:11:58.822Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blaylockbk","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blaylockbk/repositories"},"tags":[{"name":"2023.3.0","sha":"75ebfd086053c15d4998e438b74915b3a1fae6df","kind":"commit","published_at":"2023-03-29T15:26:22.000Z","download_url":"https://codeload.github.com/blaylockbk/SynopticPy/tar.gz/2023.3.0","html_url":"https://github.com/blaylockbk/SynopticPy/releases/tag/2023.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blaylockbk%2FSynopticPy/tags/2023.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blaylockbk%2FSynopticPy/tags/2023.3.0/manifests"},{"name":"0.0.7","sha":"d01883f982f71733da3316d5aac4ac0323b37d52","kind":"commit","published_at":"2021-12-04T14:09:27.000Z","download_url":"https://codeload.github.com/blaylockbk/SynopticPy/tar.gz/0.0.7","html_url":"https://github.com/blaylockbk/SynopticPy/releases/tag/0.0.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blaylockbk%2FSynopticPy/tags/0.0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blaylockbk%2FSynopticPy/tags/0.0.7/manifests"},{"name":"0.0.6","sha":"05d1c1d5b69f0efa22d87a3e2c3e1896c2c37ca6","kind":"commit","published_at":"2021-08-11T18:50:35.000Z","download_url":"https://codeload.github.com/blaylockbk/SynopticPy/tar.gz/0.0.6","html_url":"https://github.com/blaylockbk/SynopticPy/releases/tag/0.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blaylockbk%2FSynopticPy/tags/0.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blaylockbk%2FSynopticPy/tags/0.0.6/manifests"},{"name":"0.0.5","sha":"d2c63efdab45cd45d41504ffc14b86837bb6c7b5","kind":"commit","published_at":"2021-02-23T21:19:56.000Z","download_url":"https://codeload.github.com/blaylockbk/SynopticPy/tar.gz/0.0.5","html_url":"https://github.com/blaylockbk/SynopticPy/releases/tag/0.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blaylockbk%2FSynopticPy/tags/0.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blaylockbk%2FSynopticPy/tags/0.0.5/manifests"}]},"repo_metadata_updated_at":"2024-10-29T23:40:24.134Z","dependent_packages_count":0,"downloads":6571,"downloads_period":"last-month","dependent_repos_count":1,"rankings":{"downloads":28.40809198534781,"dependent_repos_count":22.087784936889527,"dependent_packages_count":7.31012528119255,"stargazers_count":10.92316216274421,"forks_count":11.986444182099037,"docker_downloads_count":null,"average":16.14312170965463},"purl":"pkg:pypi/synopticpy","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/synopticpy","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/synopticpy","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/synopticpy/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2024-10-29T20:02:40.366Z","issues_count":32,"pull_requests_count":14,"avg_time_to_close_issue":11493611.869565217,"avg_time_to_close_pull_request":33698.07692307692,"issues_closed_count":23,"pull_requests_closed_count":13,"pull_request_authors_count":4,"issue_authors_count":9,"avg_comments_per_issue":1.09375,"avg_comments_per_pull_request":1.0,"merged_pull_requests_count":12,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":8,"past_year_pull_requests_count":2,"past_year_avg_time_to_close_issue":6785118.333333333,"past_year_avg_time_to_close_pull_request":176.0,"past_year_issues_closed_count":3,"past_year_pull_requests_closed_count":1,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":4,"past_year_avg_comments_per_issue":1.125,"past_year_avg_comments_per_pull_request":1.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":1,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/blaylockbk%2FSynopticPy/issues","maintainers":[{"login":"blaylockbk","count":31,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/blaylockbk"},{"login":"ngblaylock","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ngblaylock"}],"active_maintainers":[{"login":"blaylockbk","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/blaylockbk"}]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/synopticpy/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/synopticpy/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/synopticpy/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/synopticpy/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/synopticpy/codemeta","maintainers":[{"uuid":"blaylockbk","login":"blaylockbk","name":null,"email":null,"url":null,"packages_count":6,"html_url":"https://pypi.org/user/blaylockbk/","role":null,"created_at":"2022-11-25T21:41:03.014Z","updated_at":"2022-11-25T21:41:03.014Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/blaylockbk/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":845461,"maintainers_count":361340,"namespaces_count":0,"keywords_count":271316,"github":"pypi","metadata":{"funded_packages_count":53172},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2026-04-09T05:08:03.587Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}}],"commits":{"id":668078,"full_name":"blaylockbk/SynopticPy","default_branch":"main","total_commits":534,"total_committers":6,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":89.0,"dds":0.0898876404494382,"past_year_total_commits":12,"past_year_total_committers":1,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":12.0,"past_year_dds":0.0,"last_synced_at":"2026-04-18T10:43:00.522Z","last_synced_commit":"18303db0750db1487f4875aa7f1e496712b846a6","created_at":"2023-03-09T10:21:14.955Z","updated_at":"2026-04-18T10:42:58.654Z","committers":[{"name":"Brian Blaylock","email":"blaylockbk@gmail.com","login":"blaylockbk","count":486},{"name":"Brian Blaylock","email":"brian.blaylock.ctr@nrlmry.navy.mil","login":null,"count":20},{"name":"Nathan Blaylock","email":"ngblaylock@gmail.com","login":"ngblaylock","count":14},{"name":"Weidav","email":"david.weissensteiner@gmail.com","login":"Weidav","count":11},{"name":"Brian","email":"=","login":null,"count":2},{"name":"The Gitter Badger","email":"badger@gitter.im","login":"gitter-badger","count":1}],"past_year_committers":[{"name":"Brian Blaylock","email":"blaylockbk@gmail.com","login":"blaylockbk","count":12}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/blaylockbk%2FSynopticPy/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-21T00:00:07.949Z","repositories_count":6215319,"commits_count":899434825,"contributors_count":34906545,"owners_count":1143788,"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":"blaylockbk/SynopticPy","html_url":"https://github.com/blaylockbk/SynopticPy","last_synced_at":"2026-04-21T06:00:44.604Z","status":"error","issues_count":37,"pull_requests_count":24,"avg_time_to_close_issue":16347931.935483871,"avg_time_to_close_pull_request":445431.14285714284,"issues_closed_count":31,"pull_requests_closed_count":21,"pull_request_authors_count":4,"issue_authors_count":10,"avg_comments_per_issue":1.1621621621621623,"avg_comments_per_pull_request":0.4583333333333333,"merged_pull_requests_count":20,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":9,"past_year_pull_requests_count":13,"past_year_avg_time_to_close_issue":518094.75,"past_year_avg_time_to_close_pull_request":907284.1,"past_year_issues_closed_count":4,"past_year_pull_requests_closed_count":10,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":2,"past_year_avg_comments_per_issue":0.5555555555555556,"past_year_avg_comments_per_pull_request":0.23076923076923078,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":10,"created_at":"2023-05-15T01:02:23.943Z","updated_at":"2026-04-21T06:00:44.604Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/blaylockbk%2FSynopticPy","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/blaylockbk%2FSynopticPy/issues","issue_labels_count":{"web app":6,"bug":3,"help wanted":2,"pyscript":1,"🛑 BLOCKED":1,"enhancement":1},"pull_request_labels_count":{"🛑 BLOCKED":1,"web app":1},"issue_author_associations_count":{"OWNER":27,"NONE":9,"COLLABORATOR":1},"pull_request_author_associations_count":{"OWNER":20,"CONTRIBUTOR":3,"COLLABORATOR":1},"issue_authors":{"blaylockbk":27,"jh-206":2,"ngblaylock":1,"hayesfj":1,"mysterefrank":1,"j0nes2k":1,"nick-dawson":1,"vandam60":1,"dsjstc":1,"charliephillips4201":1},"pull_request_authors":{"blaylockbk":20,"Weidav":2,"gitter-badger":1,"ngblaylock":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-21T00:00:07.919Z","repositories_count":14344727,"issues_count":34452480,"pull_requests_count":112761677,"authors_count":11241515,"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":{"🛑 BLOCKED":1},"past_year_pull_request_labels_count":{"🛑 BLOCKED":1},"past_year_issue_author_associations_count":{"OWNER":2},"past_year_pull_request_author_associations_count":{"OWNER":3},"past_year_issue_authors":{"blaylockbk":2},"past_year_pull_request_authors":{"blaylockbk":3},"maintainers":[{"login":"blaylockbk","count":47,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/blaylockbk"},{"login":"ngblaylock","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ngblaylock"}],"active_maintainers":[{"login":"blaylockbk","count":5,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/blaylockbk"}]},"events":{"total":{"ReleaseEvent":3,"DeleteEvent":1,"PullRequestEvent":10,"ForkEvent":1,"IssuesEvent":24,"WatchEvent":21,"IssueCommentEvent":13,"PushEvent":87,"CreateEvent":7},"last_year":{"ReleaseEvent":1,"PullRequestEvent":2,"ForkEvent":1,"IssuesEvent":2,"WatchEvent":8,"PushEvent":8,"CreateEvent":2}},"keywords":["mesonet","mesowest","polars","python","synoptic-api","weather"],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/static.yml","sha":null,"kind":"manifest","created_at":"2023-09-21T19:59:00.788Z","updated_at":"2023-09-21T19:59:00.788Z","repository_link":"https://github.com/blaylockbk/SynopticPy/blob/main/.github/workflows/static.yml","dependencies":[{"id":13857068862,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13857068863,"package_name":"actions/setup-node","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13857068864,"package_name":"actions/configure-pages","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13857068865,"package_name":"actions/upload-pages-artifact","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":13857068866,"package_name":"actions/deploy-pages","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"npm","filepath":"11ty-site/package-lock.json","sha":null,"kind":"lockfile","created_at":"2023-09-21T19:59:01.266Z","updated_at":"2023-09-21T19:59:01.266Z","repository_link":"https://github.com/blaylockbk/SynopticPy/blob/main/11ty-site/package-lock.json","dependencies":[{"id":13857070287,"package_name":"@11ty/dependency-tree","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"development","optional":false},{"id":13857070288,"package_name":"@11ty/eleventy","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"development","optional":false},{"id":13857070289,"package_name":"@11ty/eleventy-dev-server","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"development","optional":false},{"id":13857070290,"package_name":"@11ty/eleventy-utils","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":13857070291,"package_name":"@11ty/lodash-custom","ecosystem":"npm","requirements":"4.17.21","direct":false,"kind":"development","optional":false},{"id":13857070292,"package_name":"@babel/helper-string-parser","ecosystem":"npm","requirements":"7.22.5","direct":false,"kind":"development","optional":false},{"id":13857070293,"package_name":"@babel/helper-validator-identifier","ecosystem":"npm","requirements":"7.22.5","direct":false,"kind":"development","optional":false},{"id":13857070294,"package_name":"@babel/parser","ecosystem":"npm","requirements":"7.22.5","direct":false,"kind":"development","optional":false},{"id":13857070295,"package_name":"@babel/types","ecosystem":"npm","requirements":"7.22.5","direct":false,"kind":"development","optional":false},{"id":13857070296,"package_name":"@iarna/toml","ecosystem":"npm","requirements":"2.2.5","direct":false,"kind":"development","optional":false},{"id":13857070297,"package_name":"@isaacs/cliui","ecosystem":"npm","requirements":"8.0.2","direct":false,"kind":"development","optional":false},{"id":13857070298,"package_name":"@nodelib/fs.scandir","ecosystem":"npm","requirements":"2.1.5","direct":false,"kind":"development","optional":false},{"id":13857070299,"package_name":"@nodelib/fs.stat","ecosystem":"npm","requirements":"2.0.5","direct":false,"kind":"development","optional":false},{"id":13857070300,"package_name":"@nodelib/fs.walk","ecosystem":"npm","requirements":"1.2.8","direct":false,"kind":"development","optional":false},{"id":13857070301,"package_name":"@pkgjs/parseargs","ecosystem":"npm","requirements":"0.11.0","direct":false,"kind":"development","optional":false},{"id":13857070302,"package_name":"@sherby/eleventy-plugin-files-minifier","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"development","optional":false},{"id":13857070341,"package_name":"@sindresorhus/slugify","ecosystem":"npm","requirements":"1.1.2","direct":false,"kind":"development","optional":false},{"id":13857070342,"package_name":"@sindresorhus/transliterate","ecosystem":"npm","requirements":"0.1.2","direct":false,"kind":"development","optional":false},{"id":13857070343,"package_name":"escape-string-regexp","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":13857070344,"package_name":"@types/minimatch","ecosystem":"npm","requirements":"3.0.5","direct":false,"kind":"development","optional":false},{"id":13857070345,"package_name":"a-sync-waterfall","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":13857070346,"package_name":"acorn","ecosystem":"npm","requirements":"7.4.1","direct":false,"kind":"development","optional":false},{"id":13857070347,"package_name":"ansi-regex","ecosystem":"npm","requirements":"6.0.1","direct":false,"kind":"development","optional":false},{"id":13857070348,"package_name":"ansi-styles","ecosystem":"npm","requirements":"4.3.0","direct":false,"kind":"development","optional":false},{"id":13857070349,"package_name":"any-promise","ecosystem":"npm","requirements":"0.1.0","direct":false,"kind":"development","optional":false},{"id":13857070350,"package_name":"anymatch","ecosystem":"npm","requirements":"3.1.3","direct":false,"kind":"development","optional":false},{"id":13857070351,"package_name":"argparse","ecosystem":"npm","requirements":"1.0.10","direct":false,"kind":"development","optional":false},{"id":13857070352,"package_name":"array-differ","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":13857070353,"package_name":"array-union","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"development","optional":false},{"id":13857070354,"package_name":"array-uniq","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"development","optional":false},{"id":13857070355,"package_name":"arrify","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"development","optional":false},{"id":13857070356,"package_name":"asap","ecosystem":"npm","requirements":"2.0.6","direct":false,"kind":"development","optional":false},{"id":13857070357,"package_name":"assert-never","ecosystem":"npm","requirements":"1.2.1","direct":false,"kind":"development","optional":false},{"id":13857070358,"package_name":"async","ecosystem":"npm","requirements":"3.2.4","direct":false,"kind":"development","optional":false},{"id":13857070359,"package_name":"babel-walk","ecosystem":"npm","requirements":"3.0.0-canary-5","direct":false,"kind":"development","optional":false},{"id":13857070360,"package_name":"balanced-match","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":13857070361,"package_name":"bcp-47","ecosystem":"npm","requirements":"1.0.8","direct":false,"kind":"development","optional":false},{"id":13857070362,"package_name":"bcp-47-match","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"development","optional":false},{"id":13857070363,"package_name":"bcp-47-normalize","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"development","optional":false},{"id":13857070364,"package_name":"binary-extensions","ecosystem":"npm","requirements":"2.2.0","direct":false,"kind":"development","optional":false},{"id":13857070365,"package_name":"brace-expansion","ecosystem":"npm","requirements":"1.1.11","direct":false,"kind":"development","optional":false},{"id":13857070366,"package_name":"braces","ecosystem":"npm","requirements":"3.0.2","direct":false,"kind":"development","optional":false},{"id":13857070367,"package_name":"call-bind","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":13857070368,"package_name":"camel-case","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":13857070369,"package_name":"chalk","ecosystem":"npm","requirements":"4.1.2","direct":false,"kind":"development","optional":false},{"id":13857070370,"package_name":"character-parser","ecosystem":"npm","requirements":"2.2.0","direct":false,"kind":"development","optional":false},{"id":13857070371,"package_name":"chokidar","ecosystem":"npm","requirements":"3.5.3","direct":false,"kind":"development","optional":false},{"id":13857070372,"package_name":"clean-css","ecosystem":"npm","requirements":"4.2.4","direct":false,"kind":"development","optional":false},{"id":13857070373,"package_name":"color-convert","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"development","optional":false},{"id":13857070374,"package_name":"color-name","ecosystem":"npm","requirements":"1.1.4","direct":false,"kind":"development","optional":false},{"id":13857070375,"package_name":"commander","ecosystem":"npm","requirements":"10.0.1","direct":false,"kind":"development","optional":false},{"id":13857070376,"package_name":"concat-map","ecosystem":"npm","requirements":"0.0.1","direct":false,"kind":"development","optional":false},{"id":13857070377,"package_name":"constantinople","ecosystem":"npm","requirements":"4.0.1","direct":false,"kind":"development","optional":false},{"id":13857070378,"package_name":"cross-env","ecosystem":"npm","requirements":"7.0.3","direct":false,"kind":"development","optional":false},{"id":13857070379,"package_name":"cross-spawn","ecosystem":"npm","requirements":"7.0.3","direct":false,"kind":"development","optional":false},{"id":13857070380,"package_name":"debug","ecosystem":"npm","requirements":"4.3.4","direct":false,"kind":"development","optional":false},{"id":13857070381,"package_name":"dependency-graph","ecosystem":"npm","requirements":"0.11.0","direct":false,"kind":"development","optional":false},{"id":13857070382,"package_name":"dev-ip","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":13857070383,"package_name":"doctypes","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"development","optional":false},{"id":13857070384,"package_name":"dom-serializer","ecosystem":"npm","requirements":"1.4.1","direct":false,"kind":"development","optional":false},{"id":13857070385,"package_name":"entities","ecosystem":"npm","requirements":"2.2.0","direct":false,"kind":"development","optional":false},{"id":13857070386,"package_name":"domelementtype","ecosystem":"npm","requirements":"2.3.0","direct":false,"kind":"development","optional":false},{"id":13857070387,"package_name":"domhandler","ecosystem":"npm","requirements":"4.3.1","direct":false,"kind":"development","optional":false},{"id":13857070388,"package_name":"domutils","ecosystem":"npm","requirements":"2.8.0","direct":false,"kind":"development","optional":false},{"id":13857070389,"package_name":"eastasianwidth","ecosystem":"npm","requirements":"0.2.0","direct":false,"kind":"development","optional":false},{"id":13857070390,"package_name":"ee-first","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"development","optional":false},{"id":13857070391,"package_name":"ejs","ecosystem":"npm","requirements":"3.1.9","direct":false,"kind":"development","optional":false},{"id":13857070392,"package_name":"emoji-regex","ecosystem":"npm","requirements":"9.2.2","direct":false,"kind":"development","optional":false},{"id":13857070393,"package_name":"encodeurl","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":13857070394,"package_name":"entities","ecosystem":"npm","requirements":"3.0.1","direct":false,"kind":"development","optional":false},{"id":13857070395,"package_name":"errno","ecosystem":"npm","requirements":"0.1.8","direct":false,"kind":"development","optional":false},{"id":13857070396,"package_name":"escape-html","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"development","optional":false},{"id":13857070397,"package_name":"escape-string-regexp","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":13857070398,"package_name":"esprima","ecosystem":"npm","requirements":"4.0.1","direct":false,"kind":"development","optional":false},{"id":13857070399,"package_name":"extend-shallow","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"development","optional":false},{"id":13857070400,"package_name":"fast-glob","ecosystem":"npm","requirements":"3.3.0","direct":false,"kind":"development","optional":false},{"id":13857070401,"package_name":"fastq","ecosystem":"npm","requirements":"1.15.0","direct":false,"kind":"development","optional":false},{"id":13857070402,"package_name":"filelist","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"development","optional":false},{"id":13857070403,"package_name":"brace-expansion","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"development","optional":false},{"id":13857070404,"package_name":"minimatch","ecosystem":"npm","requirements":"5.1.6","direct":false,"kind":"development","optional":false},{"id":13857070405,"package_name":"fill-range","ecosystem":"npm","requirements":"7.0.1","direct":false,"kind":"development","optional":false},{"id":13857070406,"package_name":"finalhandler","ecosystem":"npm","requirements":"1.2.0","direct":false,"kind":"development","optional":false},{"id":13857070407,"package_name":"debug","ecosystem":"npm","requirements":"2.6.9","direct":false,"kind":"development","optional":false},{"id":13857070408,"package_name":"ms","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":13857070409,"package_name":"foreground-child","ecosystem":"npm","requirements":"3.1.1","direct":false,"kind":"development","optional":false},{"id":13857070410,"package_name":"fs.realpath","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":13857070411,"package_name":"fsevents","ecosystem":"npm","requirements":"2.3.2","direct":false,"kind":"development","optional":false},{"id":13857070412,"package_name":"function-bind","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"development","optional":false},{"id":13857070413,"package_name":"get-intrinsic","ecosystem":"npm","requirements":"1.2.1","direct":false,"kind":"development","optional":false},{"id":13857070414,"package_name":"glob","ecosystem":"npm","requirements":"10.3.1","direct":false,"kind":"development","optional":false},{"id":13857070415,"package_name":"glob-parent","ecosystem":"npm","requirements":"5.1.2","direct":false,"kind":"development","optional":false},{"id":13857070416,"package_name":"minimatch","ecosystem":"npm","requirements":"9.0.2","direct":false,"kind":"development","optional":false},{"id":13857070417,"package_name":"minipass","ecosystem":"npm","requirements":"6.0.2","direct":false,"kind":"development","optional":false},{"id":13857070418,"package_name":"graceful-fs","ecosystem":"npm","requirements":"4.2.11","direct":false,"kind":"development","optional":false},{"id":13857070419,"package_name":"gray-matter","ecosystem":"npm","requirements":"4.0.3","direct":false,"kind":"development","optional":false},{"id":13857070420,"package_name":"hamljs","ecosystem":"npm","requirements":"0.6.2","direct":false,"kind":"development","optional":false},{"id":13857070421,"package_name":"handlebars","ecosystem":"npm","requirements":"4.7.7","direct":false,"kind":"development","optional":false},{"id":13857070422,"package_name":"has","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"development","optional":false},{"id":13857070423,"package_name":"has-flag","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":13857070424,"package_name":"has-proto","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":13857070425,"package_name":"has-symbols","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"development","optional":false},{"id":13857070426,"package_name":"has-tostringtag","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":13857070427,"package_name":"he","ecosystem":"npm","requirements":"1.2.0","direct":false,"kind":"development","optional":false},{"id":13857070428,"package_name":"html-minifier","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":13857070429,"package_name":"commander","ecosystem":"npm","requirements":"2.20.3","direct":false,"kind":"development","optional":false},{"id":13857070430,"package_name":"htmlparser2","ecosystem":"npm","requirements":"7.2.0","direct":false,"kind":"development","optional":false},{"id":13857070431,"package_name":"http-equiv-refresh","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":13857070432,"package_name":"inflight","ecosystem":"npm","requirements":"1.0.6","direct":false,"kind":"development","optional":false},{"id":13857070433,"package_name":"inherits","ecosystem":"npm","requirements":"2.0.4","direct":false,"kind":"development","optional":false},{"id":13857070434,"package_name":"is-alphabetical","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"development","optional":false},{"id":13857070435,"package_name":"is-alphanumerical","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"development","optional":false},{"id":13857070436,"package_name":"is-binary-path","ecosystem":"npm","requirements":"2.1.0","direct":false,"kind":"development","optional":false},{"id":13857070437,"package_name":"is-core-module","ecosystem":"npm","requirements":"2.12.1","direct":false,"kind":"development","optional":false},{"id":13857070438,"package_name":"is-decimal","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"development","optional":false},{"id":13857070439,"package_name":"is-expression","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":13857070440,"package_name":"is-extendable","ecosystem":"npm","requirements":"0.1.1","direct":false,"kind":"development","optional":false},{"id":13857070441,"package_name":"is-extglob","ecosystem":"npm","requirements":"2.1.1","direct":false,"kind":"development","optional":false},{"id":13857070442,"package_name":"is-fullwidth-code-point","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":13857070443,"package_name":"is-glob","ecosystem":"npm","requirements":"4.0.3","direct":false,"kind":"development","optional":false},{"id":13857070444,"package_name":"is-json","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"development","optional":false},{"id":13857070445,"package_name":"is-number","ecosystem":"npm","requirements":"7.0.0","direct":false,"kind":"development","optional":false},{"id":13857070446,"package_name":"is-promise","ecosystem":"npm","requirements":"2.2.2","direct":false,"kind":"development","optional":false},{"id":13857070447,"package_name":"is-regex","ecosystem":"npm","requirements":"1.1.4","direct":false,"kind":"development","optional":false},{"id":13857070448,"package_name":"isexe","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":13857070449,"package_name":"iso-639-1","ecosystem":"npm","requirements":"2.1.15","direct":false,"kind":"development","optional":false},{"id":13857070450,"package_name":"jackspeak","ecosystem":"npm","requirements":"2.2.1","direct":false,"kind":"development","optional":false},{"id":13857070451,"package_name":"jake","ecosystem":"npm","requirements":"10.8.7","direct":false,"kind":"development","optional":false},{"id":13857070452,"package_name":"js-stringify","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":13857070453,"package_name":"js-yaml","ecosystem":"npm","requirements":"3.14.1","direct":false,"kind":"development","optional":false},{"id":13857070454,"package_name":"jstransformer","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":13857070455,"package_name":"junk","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"development","optional":false},{"id":13857070456,"package_name":"kind-of","ecosystem":"npm","requirements":"6.0.3","direct":false,"kind":"development","optional":false},{"id":13857070457,"package_name":"kleur","ecosystem":"npm","requirements":"4.1.5","direct":false,"kind":"development","optional":false},{"id":13857070458,"package_name":"linkify-it","ecosystem":"npm","requirements":"4.0.1","direct":false,"kind":"development","optional":false},{"id":13857070459,"package_name":"liquidjs","ecosystem":"npm","requirements":"10.8.3","direct":false,"kind":"development","optional":false},{"id":13857070460,"package_name":"list-to-array","ecosystem":"npm","requirements":"1.1.0","direct":false,"kind":"development","optional":false},{"id":13857070461,"package_name":"lodash.deburr","ecosystem":"npm","requirements":"4.1.0","direct":false,"kind":"development","optional":false},{"id":13857070462,"package_name":"lower-case","ecosystem":"npm","requirements":"1.1.4","direct":false,"kind":"development","optional":false},{"id":13857070463,"package_name":"lru-cache","ecosystem":"npm","requirements":"6.0.0","direct":false,"kind":"development","optional":false},{"id":13857070464,"package_name":"luxon","ecosystem":"npm","requirements":"3.3.0","direct":false,"kind":"development","optional":false},{"id":13857070465,"package_name":"markdown-it","ecosystem":"npm","requirements":"13.0.1","direct":false,"kind":"development","optional":false},{"id":13857070466,"package_name":"argparse","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"development","optional":false},{"id":13857070467,"package_name":"maximatch","ecosystem":"npm","requirements":"0.1.0","direct":false,"kind":"development","optional":false},{"id":13857070468,"package_name":"array-differ","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":13857070469,"package_name":"array-union","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":13857070470,"package_name":"arrify","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":13857070471,"package_name":"mdurl","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":13857070472,"package_name":"merge2","ecosystem":"npm","requirements":"1.4.1","direct":false,"kind":"development","optional":false},{"id":13857070473,"package_name":"micromatch","ecosystem":"npm","requirements":"4.0.5","direct":false,"kind":"development","optional":false},{"id":13857070474,"package_name":"mime","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":13857070475,"package_name":"minimatch","ecosystem":"npm","requirements":"3.1.2","direct":false,"kind":"development","optional":false},{"id":13857070476,"package_name":"minimist","ecosystem":"npm","requirements":"1.2.8","direct":false,"kind":"development","optional":false},{"id":13857070477,"package_name":"minipass","ecosystem":"npm","requirements":"3.3.6","direct":false,"kind":"development","optional":false},{"id":13857070478,"package_name":"mkdirp","ecosystem":"npm","requirements":"0.5.6","direct":false,"kind":"development","optional":false},{"id":13857070479,"package_name":"moo","ecosystem":"npm","requirements":"0.5.2","direct":false,"kind":"development","optional":false},{"id":13857070480,"package_name":"morphdom","ecosystem":"npm","requirements":"2.7.0","direct":false,"kind":"development","optional":false},{"id":13857070481,"package_name":"ms","ecosystem":"npm","requirements":"2.1.2","direct":false,"kind":"development","optional":false},{"id":13857070482,"package_name":"multimatch","ecosystem":"npm","requirements":"5.0.0","direct":false,"kind":"development","optional":false},{"id":13857070483,"package_name":"mustache","ecosystem":"npm","requirements":"4.2.0","direct":false,"kind":"development","optional":false},{"id":13857070484,"package_name":"neo-async","ecosystem":"npm","requirements":"2.6.2","direct":false,"kind":"development","optional":false},{"id":13857070485,"package_name":"no-case","ecosystem":"npm","requirements":"2.3.2","direct":false,"kind":"development","optional":false},{"id":13857070486,"package_name":"normalize-path","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":13857070487,"package_name":"nunjucks","ecosystem":"npm","requirements":"3.2.4","direct":false,"kind":"development","optional":false},{"id":13857070488,"package_name":"commander","ecosystem":"npm","requirements":"5.1.0","direct":false,"kind":"development","optional":false},{"id":13857070489,"package_name":"object-assign","ecosystem":"npm","requirements":"4.1.1","direct":false,"kind":"development","optional":false},{"id":13857070490,"package_name":"on-finished","ecosystem":"npm","requirements":"2.4.1","direct":false,"kind":"development","optional":false},{"id":13857070491,"package_name":"once","ecosystem":"npm","requirements":"1.4.0","direct":false,"kind":"development","optional":false},{"id":13857070492,"package_name":"param-case","ecosystem":"npm","requirements":"2.1.1","direct":false,"kind":"development","optional":false},{"id":13857070493,"package_name":"parse-srcset","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":13857070495,"package_name":"parseurl","ecosystem":"npm","requirements":"1.3.3","direct":false,"kind":"development","optional":false},{"id":13857070496,"package_name":"path-is-absolute","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":13857070498,"package_name":"path-key","ecosystem":"npm","requirements":"3.1.1","direct":false,"kind":"development","optional":false},{"id":13857070499,"package_name":"path-parse","ecosystem":"npm","requirements":"1.0.7","direct":false,"kind":"development","optional":false},{"id":13857070501,"package_name":"path-scurry","ecosystem":"npm","requirements":"1.10.0","direct":false,"kind":"development","optional":false},{"id":13857070502,"package_name":"lru-cache","ecosystem":"npm","requirements":"10.0.0","direct":false,"kind":"development","optional":false},{"id":13857070504,"package_name":"path-to-regexp","ecosystem":"npm","requirements":"6.2.1","direct":false,"kind":"development","optional":false},{"id":13857070505,"package_name":"picomatch","ecosystem":"npm","requirements":"2.3.1","direct":false,"kind":"development","optional":false},{"id":13857070507,"package_name":"pify","ecosystem":"npm","requirements":"2.3.0","direct":false,"kind":"development","optional":false},{"id":13857070508,"package_name":"please-upgrade-node","ecosystem":"npm","requirements":"3.2.0","direct":false,"kind":"development","optional":false},{"id":13857070510,"package_name":"posthtml","ecosystem":"npm","requirements":"0.16.6","direct":false,"kind":"development","optional":false},{"id":13857070512,"package_name":"posthtml-parser","ecosystem":"npm","requirements":"0.11.0","direct":false,"kind":"development","optional":false},{"id":13857070513,"package_name":"posthtml-render","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":13857070515,"package_name":"posthtml-urls","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":13857070517,"package_name":"pretty-data","ecosystem":"npm","requirements":"0.40.0","direct":false,"kind":"development","optional":false},{"id":13857070518,"package_name":"promise","ecosystem":"npm","requirements":"7.3.1","direct":false,"kind":"development","optional":false},{"id":13857070520,"package_name":"promise-each","ecosystem":"npm","requirements":"2.2.0","direct":false,"kind":"development","optional":false},{"id":13857070522,"package_name":"prr","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"development","optional":false},{"id":13857070523,"package_name":"pug","ecosystem":"npm","requirements":"3.0.2","direct":false,"kind":"development","optional":false},{"id":13857070525,"package_name":"pug-attrs","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":13857070527,"package_name":"pug-code-gen","ecosystem":"npm","requirements":"3.0.2","direct":false,"kind":"development","optional":false},{"id":13857070529,"package_name":"pug-error","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":13857070530,"package_name":"pug-filters","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":13857070532,"package_name":"pug-lexer","ecosystem":"npm","requirements":"5.0.1","direct":false,"kind":"development","optional":false},{"id":13857070534,"package_name":"pug-linker","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false},{"id":13857070536,"package_name":"pug-load","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":13857070537,"package_name":"pug-parser","ecosystem":"npm","requirements":"6.0.0","direct":false,"kind":"development","optional":false},{"id":13857070539,"package_name":"pug-runtime","ecosystem":"npm","requirements":"3.0.1","direct":false,"kind":"development","optional":false},{"id":13857070541,"package_name":"pug-strip-comments","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":13857070543,"package_name":"pug-walk","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":13857070545,"package_name":"queue-microtask","ecosystem":"npm","requirements":"1.2.3","direct":false,"kind":"development","optional":false},{"id":13857070546,"package_name":"readdirp","ecosystem":"npm","requirements":"3.6.0","direct":false,"kind":"development","optional":false},{"id":13857070548,"package_name":"recursive-copy","ecosystem":"npm","requirements":"2.0.14","direct":false,"kind":"development","optional":false},{"id":13857070550,"package_name":"glob","ecosystem":"npm","requirements":"7.2.3","direct":false,"kind":"development","optional":false},{"id":13857070551,"package_name":"rimraf","ecosystem":"npm","requirements":"2.7.1","direct":false,"kind":"development","optional":false},{"id":13857070553,"package_name":"relateurl","ecosystem":"npm","requirements":"0.2.7","direct":false,"kind":"development","optional":false},{"id":13857070555,"package_name":"resolve","ecosystem":"npm","requirements":"1.22.2","direct":false,"kind":"development","optional":false},{"id":13857070557,"package_name":"reusify","ecosystem":"npm","requirements":"1.0.4","direct":false,"kind":"development","optional":false},{"id":13857070559,"package_name":"rimraf","ecosystem":"npm","requirements":"5.0.1","direct":false,"kind":"development","optional":false},{"id":13857070560,"package_name":"run-parallel","ecosystem":"npm","requirements":"1.2.0","direct":false,"kind":"development","optional":false},{"id":13857070563,"package_name":"section-matter","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":13857070564,"package_name":"semver","ecosystem":"npm","requirements":"7.5.3","direct":false,"kind":"development","optional":false},{"id":13857070566,"package_name":"semver-compare","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":13857070568,"package_name":"shebang-command","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":13857070569,"package_name":"shebang-regex","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"development","optional":false},{"id":13857070571,"package_name":"signal-exit","ecosystem":"npm","requirements":"4.0.2","direct":false,"kind":"development","optional":false},{"id":13857070572,"package_name":"slash","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":13857070574,"package_name":"slugify","ecosystem":"npm","requirements":"1.6.6","direct":false,"kind":"development","optional":false},{"id":13857070575,"package_name":"source-map","ecosystem":"npm","requirements":"0.6.1","direct":false,"kind":"development","optional":false},{"id":13857070577,"package_name":"sprintf-js","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"development","optional":false},{"id":13857070578,"package_name":"ssri","ecosystem":"npm","requirements":"8.0.1","direct":false,"kind":"development","optional":false},{"id":13857070579,"package_name":"statuses","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"development","optional":false},{"id":13857070581,"package_name":"string-width","ecosystem":"npm","requirements":"5.1.2","direct":false,"kind":"development","optional":false},{"id":13857070582,"package_name":"string-width-cjs","ecosystem":"npm","requirements":"4.2.3","direct":false,"kind":"development","optional":false},{"id":13857070584,"package_name":"ansi-regex","ecosystem":"npm","requirements":"5.0.1","direct":false,"kind":"development","optional":false},{"id":13857070586,"package_name":"emoji-regex","ecosystem":"npm","requirements":"8.0.0","direct":false,"kind":"development","optional":false},{"id":13857070587,"package_name":"strip-ansi","ecosystem":"npm","requirements":"6.0.1","direct":false,"kind":"development","optional":false},{"id":13857070589,"package_name":"strip-ansi","ecosystem":"npm","requirements":"7.1.0","direct":false,"kind":"development","optional":false},{"id":13857070590,"package_name":"strip-ansi-cjs","ecosystem":"npm","requirements":"6.0.1","direct":false,"kind":"development","optional":false},{"id":13857070592,"package_name":"strip-bom-string","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":13857070594,"package_name":"supports-color","ecosystem":"npm","requirements":"7.2.0","direct":false,"kind":"development","optional":false},{"id":13857070595,"package_name":"supports-preserve-symlinks-flag","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":13857070597,"package_name":"to-fast-properties","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"development","optional":false},{"id":13857070599,"package_name":"to-regex-range","ecosystem":"npm","requirements":"5.0.1","direct":false,"kind":"development","optional":false},{"id":13857070601,"package_name":"token-stream","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":13857070603,"package_name":"uc.micro","ecosystem":"npm","requirements":"1.0.6","direct":false,"kind":"development","optional":false},{"id":13857070605,"package_name":"uglify-js","ecosystem":"npm","requirements":"3.17.4","direct":false,"kind":"development","optional":false},{"id":13857070606,"package_name":"unpipe","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":13857070608,"package_name":"upper-case","ecosystem":"npm","requirements":"1.1.3","direct":false,"kind":"development","optional":false},{"id":13857070609,"package_name":"void-elements","ecosystem":"npm","requirements":"3.1.0","direct":false,"kind":"development","optional":false},{"id":13857070611,"package_name":"which","ecosystem":"npm","requirements":"2.0.2","direct":false,"kind":"development","optional":false},{"id":13857070613,"package_name":"with","ecosystem":"npm","requirements":"7.0.2","direct":false,"kind":"development","optional":false},{"id":13857070614,"package_name":"wordwrap","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"development","optional":false},{"id":13857070616,"package_name":"wrap-ansi","ecosystem":"npm","requirements":"8.1.0","direct":false,"kind":"development","optional":false},{"id":13857070618,"package_name":"wrap-ansi-cjs","ecosystem":"npm","requirements":"7.0.0","direct":false,"kind":"development","optional":false},{"id":13857070620,"package_name":"string-width","ecosystem":"npm","requirements":"4.2.3","direct":false,"kind":"development","optional":false},{"id":13857070622,"package_name":"ansi-styles","ecosystem":"npm","requirements":"6.2.1","direct":false,"kind":"development","optional":false},{"id":13857070624,"package_name":"wrappy","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"development","optional":false},{"id":13857070626,"package_name":"ws","ecosystem":"npm","requirements":"8.13.0","direct":false,"kind":"development","optional":false},{"id":13857070627,"package_name":"yallist","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"development","optional":false}]},{"ecosystem":"npm","filepath":"11ty-site/package.json","sha":null,"kind":"manifest","created_at":"2023-09-21T19:59:02.157Z","updated_at":"2023-09-21T19:59:02.157Z","repository_link":"https://github.com/blaylockbk/SynopticPy/blob/main/11ty-site/package.json","dependencies":[{"id":13857070697,"package_name":"@11ty/eleventy","ecosystem":"npm","requirements":"^2.0.1","direct":true,"kind":"development","optional":false},{"id":13857070698,"package_name":"@sherby/eleventy-plugin-files-minifier","ecosystem":"npm","requirements":"^1.1.1","direct":true,"kind":"development","optional":false},{"id":13857070699,"package_name":"cross-env","ecosystem":"npm","requirements":"^7.0.3","direct":true,"kind":"development","optional":false},{"id":13857070700,"package_name":"rimraf","ecosystem":"npm","requirements":"^5.0.1","direct":true,"kind":"development","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2023-09-21T19:59:02.770Z","updated_at":"2023-09-21T19:59:02.770Z","repository_link":"https://github.com/blaylockbk/SynopticPy/blob/main/pyproject.toml","dependencies":[]},{"ecosystem":"actions","filepath":".github/workflows/release_to_pypi.yml","sha":null,"kind":"manifest","created_at":"2024-01-08T01:07:41.165Z","updated_at":"2024-01-08T01:07:41.165Z","repository_link":"https://github.com/blaylockbk/SynopticPy/blob/main/.github/workflows/release_to_pypi.yml","dependencies":[{"id":15488409599,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":15488409600,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false},{"id":15488409601,"package_name":"pypa/gh-action-pypi-publish","ecosystem":"actions","requirements":"release/v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/tests-python.yml","sha":null,"kind":"manifest","created_at":"2024-01-08T01:07:41.292Z","updated_at":"2024-01-08T01:07:41.292Z","repository_link":"https://github.com/blaylockbk/SynopticPy/blob/main/.github/workflows/tests-python.yml","dependencies":[{"id":15488410440,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":15488410441,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"requirements-test.txt","sha":null,"kind":"manifest","created_at":"2024-01-08T01:07:55.657Z","updated_at":"2024-01-08T01:07:55.657Z","repository_link":"https://github.com/blaylockbk/SynopticPy/blob/main/requirements-test.txt","dependencies":[{"id":15488433432,"package_name":"pytest","ecosystem":"pypi","requirements":"\u003c8","direct":true,"kind":"test","optional":false}]},{"ecosystem":"pypi","filepath":"environment.yml","sha":null,"kind":"manifest","created_at":"2025-09-28T01:24:31.609Z","updated_at":"2025-09-28T01:24:31.609Z","repository_link":"https://github.com/blaylockbk/SynopticPy/blob/main/environment.yml","dependencies":[]},{"ecosystem":"pypi","filepath":"uv.lock","sha":null,"kind":"lockfile","created_at":"2025-09-28T01:24:31.709Z","updated_at":"2025-09-28T01:24:31.709Z","repository_link":"https://github.com/blaylockbk/SynopticPy/blob/main/uv.lock","dependencies":[{"id":25354320606,"package_name":"accessible-pygments","ecosystem":"pypi","requirements":"0.0.5","direct":false,"kind":"runtime","optional":false},{"id":25354321362,"package_name":"alabaster","ecosystem":"pypi","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":25354321363,"package_name":"altair","ecosystem":"pypi","requirements":"5.5.0","direct":false,"kind":"runtime","optional":false},{"id":25354321364,"package_name":"appnope","ecosystem":"pypi","requirements":"0.1.4","direct":false,"kind":"runtime","optional":false},{"id":25354321365,"package_name":"asttokens","ecosystem":"pypi","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":25354321366,"package_name":"attrs","ecosystem":"pypi","requirements":"25.3.0","direct":false,"kind":"runtime","optional":false},{"id":25354321367,"package_name":"autodocsumm","ecosystem":"pypi","requirements":"0.2.14","direct":false,"kind":"runtime","optional":false},{"id":25354321420,"package_name":"babel","ecosystem":"pypi","requirements":"2.17.0","direct":false,"kind":"runtime","optional":false},{"id":25354321421,"package_name":"beautifulsoup4","ecosystem":"pypi","requirements":"4.13.5","direct":false,"kind":"runtime","optional":false},{"id":25354321422,"package_name":"bleach","ecosystem":"pypi","requirements":"6.2.0","direct":false,"kind":"runtime","optional":false},{"id":25354321423,"package_name":"cartopy","ecosystem":"pypi","requirements":"0.25.0","direct":false,"kind":"runtime","optional":false},{"id":25354321424,"package_name":"cattrs","ecosystem":"pypi","requirements":"25.2.0","direct":false,"kind":"runtime","optional":false},{"id":25354321425,"package_name":"certifi","ecosystem":"pypi","requirements":"2025.8.3","direct":false,"kind":"runtime","optional":false},{"id":25354321426,"package_name":"cffi","ecosystem":"pypi","requirements":"1.17.1","direct":false,"kind":"runtime","optional":false},{"id":25354321427,"package_name":"cfgrib","ecosystem":"pypi","requirements":"0.9.15.0","direct":false,"kind":"runtime","optional":false},{"id":25354321515,"package_name":"charset-normalizer","ecosystem":"pypi","requirements":"3.4.3","direct":false,"kind":"runtime","optional":false},{"id":25354321516,"package_name":"click","ecosystem":"pypi","requirements":"8.2.1","direct":false,"kind":"runtime","optional":false},{"id":25354321517,"package_name":"colorama","ecosystem":"pypi","requirements":"0.4.6","direct":false,"kind":"runtime","optional":false},{"id":25354321518,"package_name":"comm","ecosystem":"pypi","requirements":"0.2.3","direct":false,"kind":"runtime","optional":false},{"id":25354321519,"package_name":"commonmark","ecosystem":"pypi","requirements":"0.9.1","direct":false,"kind":"runtime","optional":false},{"id":25354321718,"package_name":"contourpy","ecosystem":"pypi","requirements":"1.3.3","direct":false,"kind":"runtime","optional":false},{"id":25354321719,"package_name":"coverage","ecosystem":"pypi","requirements":"7.10.6","direct":false,"kind":"runtime","optional":false},{"id":25354321720,"package_name":"cycler","ecosystem":"pypi","requirements":"0.12.1","direct":false,"kind":"runtime","optional":false},{"id":25354321721,"package_name":"debugpy","ecosystem":"pypi","requirements":"1.8.16","direct":false,"kind":"runtime","optional":false},{"id":25354321722,"package_name":"decorator","ecosystem":"pypi","requirements":"5.2.1","direct":false,"kind":"runtime","optional":false},{"id":25354321723,"package_name":"defusedxml","ecosystem":"pypi","requirements":"0.7.1","direct":false,"kind":"runtime","optional":false},{"id":25354321724,"package_name":"docutils","ecosystem":"pypi","requirements":"0.21.2","direct":false,"kind":"runtime","optional":false},{"id":25354321725,"package_name":"eccodes","ecosystem":"pypi","requirements":"2.43.0","direct":false,"kind":"runtime","optional":false},{"id":25354321915,"package_name":"eccodeslib","ecosystem":"pypi","requirements":"2.43.0","direct":false,"kind":"runtime","optional":false},{"id":25354321916,"package_name":"eckitlib","ecosystem":"pypi","requirements":"1.31.4","direct":false,"kind":"runtime","optional":false},{"id":25354322239,"package_name":"esbonio","ecosystem":"pypi","requirements":"0.16.5","direct":false,"kind":"runtime","optional":false},{"id":25354322388,"package_name":"executing","ecosystem":"pypi","requirements":"2.2.1","direct":false,"kind":"runtime","optional":false},{"id":25354322389,"package_name":"faicons","ecosystem":"pypi","requirements":"0.2.2","direct":false,"kind":"runtime","optional":false},{"id":25354322511,"package_name":"fastjsonschema","ecosystem":"pypi","requirements":"2.21.2","direct":false,"kind":"runtime","optional":false},{"id":25354322512,"package_name":"fckitlib","ecosystem":"pypi","requirements":"0.14.0","direct":false,"kind":"runtime","optional":false},{"id":25354322776,"package_name":"findlibs","ecosystem":"pypi","requirements":"0.1.2","direct":false,"kind":"runtime","optional":false},{"id":25354322795,"package_name":"fonttools","ecosystem":"pypi","requirements":"4.59.2","direct":false,"kind":"runtime","optional":false},{"id":25354322796,"package_name":"great-tables","ecosystem":"pypi","requirements":"0.18.0","direct":false,"kind":"runtime","optional":false},{"id":25354322850,"package_name":"herbie-data","ecosystem":"pypi","requirements":"2025.7.0","direct":false,"kind":"runtime","optional":false},{"id":25354322955,"package_name":"htmltools","ecosystem":"pypi","requirements":"0.6.0","direct":false,"kind":"runtime","optional":false},{"id":25354323758,"package_name":"idna","ecosystem":"pypi","requirements":"3.10","direct":false,"kind":"runtime","optional":false},{"id":25354323762,"package_name":"imagesize","ecosystem":"pypi","requirements":"1.4.1","direct":false,"kind":"runtime","optional":false},{"id":25354323767,"package_name":"importlib-metadata","ecosystem":"pypi","requirements":"8.7.0","direct":false,"kind":"runtime","optional":false},{"id":25354323771,"package_name":"importlib-resources","ecosystem":"pypi","requirements":"6.5.2","direct":false,"kind":"runtime","optional":false},{"id":25354323774,"package_name":"iniconfig","ecosystem":"pypi","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":25354323776,"package_name":"ipykernel","ecosystem":"pypi","requirements":"6.30.1","direct":false,"kind":"runtime","optional":false},{"id":25354323779,"package_name":"ipython","ecosystem":"pypi","requirements":"9.5.0","direct":false,"kind":"runtime","optional":false},{"id":25354323782,"package_name":"ipython-pygments-lexers","ecosystem":"pypi","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":25354323786,"package_name":"jedi","ecosystem":"pypi","requirements":"0.19.2","direct":false,"kind":"runtime","optional":false},{"id":25354323788,"package_name":"jinja2","ecosystem":"pypi","requirements":"3.1.6","direct":false,"kind":"runtime","optional":false},{"id":25354323791,"package_name":"jsonschema","ecosystem":"pypi","requirements":"4.25.1","direct":false,"kind":"runtime","optional":false},{"id":25354323795,"package_name":"jsonschema-specifications","ecosystem":"pypi","requirements":"2025.4.1","direct":false,"kind":"runtime","optional":false},{"id":25354323798,"package_name":"jupyter-client","ecosystem":"pypi","requirements":"8.6.3","direct":false,"kind":"runtime","optional":false},{"id":25354323802,"package_name":"jupyter-core","ecosystem":"pypi","requirements":"5.8.1","direct":false,"kind":"runtime","optional":false},{"id":25354323805,"package_name":"jupyterlab-pygments","ecosystem":"pypi","requirements":"0.3.0","direct":false,"kind":"runtime","optional":false},{"id":25354323810,"package_name":"kiwisolver","ecosystem":"pypi","requirements":"1.4.9","direct":false,"kind":"runtime","optional":false},{"id":25354323813,"package_name":"linkify-it-py","ecosystem":"pypi","requirements":"2.0.3","direct":false,"kind":"runtime","optional":false},{"id":25354323816,"package_name":"lsprotocol","ecosystem":"pypi","requirements":"2023.0.1","direct":false,"kind":"runtime","optional":false},{"id":25354324087,"package_name":"markdown","ecosystem":"pypi","requirements":"3.9","direct":false,"kind":"runtime","optional":false},{"id":25354324088,"package_name":"markdown-it-py","ecosystem":"pypi","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":25354324089,"package_name":"markupsafe","ecosystem":"pypi","requirements":"3.0.2","direct":false,"kind":"runtime","optional":false},{"id":25354324090,"package_name":"matplotlib","ecosystem":"pypi","requirements":"3.10.6","direct":false,"kind":"runtime","optional":false},{"id":25354324091,"package_name":"matplotlib-inline","ecosystem":"pypi","requirements":"0.1.7","direct":false,"kind":"runtime","optional":false},{"id":25354324092,"package_name":"mdit-py-plugins","ecosystem":"pypi","requirements":"0.5.0","direct":false,"kind":"runtime","optional":false},{"id":25354324093,"package_name":"mdurl","ecosystem":"pypi","requirements":"0.1.2","direct":false,"kind":"runtime","optional":false},{"id":25354324094,"package_name":"mistune","ecosystem":"pypi","requirements":"3.1.4","direct":false,"kind":"runtime","optional":false},{"id":25354324095,"package_name":"myst-parser","ecosystem":"pypi","requirements":"4.0.1","direct":false,"kind":"runtime","optional":false},{"id":25354324096,"package_name":"narwhals","ecosystem":"pypi","requirements":"2.3.0","direct":false,"kind":"runtime","optional":false},{"id":25354324097,"package_name":"nbclient","ecosystem":"pypi","requirements":"0.10.2","direct":false,"kind":"runtime","optional":false},{"id":25354324098,"package_name":"nbconvert","ecosystem":"pypi","requirements":"7.16.6","direct":false,"kind":"runtime","optional":false},{"id":25354324099,"package_name":"nbformat","ecosystem":"pypi","requirements":"5.10.4","direct":false,"kind":"runtime","optional":false},{"id":25354324100,"package_name":"nbsphinx","ecosystem":"pypi","requirements":"0.9.7","direct":false,"kind":"runtime","optional":false},{"id":25354324217,"package_name":"nest-asyncio","ecosystem":"pypi","requirements":"1.6.0","direct":false,"kind":"runtime","optional":false},{"id":25354324218,"package_name":"numpy","ecosystem":"pypi","requirements":"2.3.2","direct":false,"kind":"runtime","optional":false},{"id":25354324219,"package_name":"packaging","ecosystem":"pypi","requirements":"25.0","direct":false,"kind":"runtime","optional":false},{"id":25354324220,"package_name":"pandas","ecosystem":"pypi","requirements":"2.3.2","direct":false,"kind":"runtime","optional":false},{"id":25354324221,"package_name":"pandocfilters","ecosystem":"pypi","requirements":"1.5.1","direct":false,"kind":"runtime","optional":false},{"id":25354324222,"package_name":"parso","ecosystem":"pypi","requirements":"0.8.5","direct":false,"kind":"runtime","optional":false},{"id":25354324223,"package_name":"pexpect","ecosystem":"pypi","requirements":"4.9.0","direct":false,"kind":"runtime","optional":false},{"id":25354324224,"package_name":"pillow","ecosystem":"pypi","requirements":"11.3.0","direct":false,"kind":"runtime","optional":false},{"id":25354324225,"package_name":"platformdirs","ecosystem":"pypi","requirements":"4.4.0","direct":false,"kind":"runtime","optional":false},{"id":25354324226,"package_name":"pluggy","ecosystem":"pypi","requirements":"1.6.0","direct":false,"kind":"runtime","optional":false},{"id":25354324227,"package_name":"polars","ecosystem":"pypi","requirements":"1.33.0","direct":false,"kind":"runtime","optional":false},{"id":25354324228,"package_name":"prompt-toolkit","ecosystem":"pypi","requirements":"3.0.52","direct":false,"kind":"runtime","optional":false},{"id":25354324229,"package_name":"psutil","ecosystem":"pypi","requirements":"7.0.0","direct":false,"kind":"runtime","optional":false},{"id":25354324230,"package_name":"ptyprocess","ecosystem":"pypi","requirements":"0.7.0","direct":false,"kind":"runtime","optional":false},{"id":25354324231,"package_name":"pure-eval","ecosystem":"pypi","requirements":"0.2.3","direct":false,"kind":"runtime","optional":false},{"id":25354324232,"package_name":"pyarrow","ecosystem":"pypi","requirements":"21.0.0","direct":false,"kind":"runtime","optional":false},{"id":25354324233,"package_name":"pycparser","ecosystem":"pypi","requirements":"2.22","direct":false,"kind":"runtime","optional":false},{"id":25354324234,"package_name":"pydata-sphinx-theme","ecosystem":"pypi","requirements":"0.16.1","direct":false,"kind":"runtime","optional":false},{"id":25354324240,"package_name":"pygls","ecosystem":"pypi","requirements":"1.3.1","direct":false,"kind":"runtime","optional":false},{"id":25354324350,"package_name":"pygments","ecosystem":"pypi","requirements":"2.19.2","direct":false,"kind":"runtime","optional":false},{"id":25354324351,"package_name":"pyparsing","ecosystem":"pypi","requirements":"3.2.3","direct":false,"kind":"runtime","optional":false},{"id":25354324352,"package_name":"pyproj","ecosystem":"pypi","requirements":"3.7.2","direct":false,"kind":"runtime","optional":false},{"id":25354324353,"package_name":"pyshp","ecosystem":"pypi","requirements":"2.3.1","direct":false,"kind":"runtime","optional":false},{"id":25354324354,"package_name":"pyspellchecker","ecosystem":"pypi","requirements":"0.8.3","direct":false,"kind":"runtime","optional":false},{"id":25354324378,"package_name":"pytest","ecosystem":"pypi","requirements":"8.4.2","direct":false,"kind":"runtime","optional":false},{"id":25354324379,"package_name":"pytest-cov","ecosystem":"pypi","requirements":"6.2.1","direct":false,"kind":"runtime","optional":false},{"id":25354324380,"package_name":"python-dateutil","ecosystem":"pypi","requirements":"2.9.0.post0","direct":false,"kind":"runtime","optional":false},{"id":25354324381,"package_name":"pytz","ecosystem":"pypi","requirements":"2025.2","direct":false,"kind":"runtime","optional":false},{"id":25354324382,"package_name":"pywin32","ecosystem":"pypi","requirements":"311","direct":false,"kind":"runtime","optional":false},{"id":25354324383,"package_name":"pyyaml","ecosystem":"pypi","requirements":"6.0.2","direct":false,"kind":"runtime","optional":false},{"id":25354324384,"package_name":"pyzmq","ecosystem":"pypi","requirements":"27.0.2","direct":false,"kind":"runtime","optional":false},{"id":25354324385,"package_name":"recommonmark","ecosystem":"pypi","requirements":"0.7.1","direct":false,"kind":"runtime","optional":false},{"id":25354324386,"package_name":"referencing","ecosystem":"pypi","requirements":"0.36.2","direct":false,"kind":"runtime","optional":false},{"id":25354324387,"package_name":"requests","ecosystem":"pypi","requirements":"2.32.5","direct":false,"kind":"runtime","optional":false},{"id":25354324388,"package_name":"rpds-py","ecosystem":"pypi","requirements":"0.27.1","direct":false,"kind":"runtime","optional":false},{"id":25354324389,"package_name":"ruff","ecosystem":"pypi","requirements":"0.12.12","direct":false,"kind":"runtime","optional":false},{"id":25354324390,"package_name":"seaborn","ecosystem":"pypi","requirements":"0.13.2","direct":false,"kind":"runtime","optional":false},{"id":25354324391,"package_name":"shapely","ecosystem":"pypi","requirements":"2.1.1","direct":false,"kind":"runtime","optional":false},{"id":25354324392,"package_name":"six","ecosystem":"pypi","requirements":"1.17.0","direct":false,"kind":"runtime","optional":false},{"id":25354324393,"package_name":"snowballstemmer","ecosystem":"pypi","requirements":"3.0.1","direct":false,"kind":"runtime","optional":false},{"id":25354324394,"package_name":"soupsieve","ecosystem":"pypi","requirements":"2.8","direct":false,"kind":"runtime","optional":false},{"id":25354324395,"package_name":"sphinx","ecosystem":"pypi","requirements":"8.1.3","direct":false,"kind":"runtime","optional":false},{"id":25354324396,"package_name":"sphinx-autosummary-accessors","ecosystem":"pypi","requirements":"2025.3.1","direct":false,"kind":"runtime","optional":false},{"id":25354324403,"package_name":"sphinx-copybutton","ecosystem":"pypi","requirements":"0.5.2","direct":false,"kind":"runtime","optional":false},{"id":25354324404,"package_name":"sphinx-design","ecosystem":"pypi","requirements":"0.6.1","direct":false,"kind":"runtime","optional":false},{"id":25354324405,"package_name":"sphinx-markdown-tables","ecosystem":"pypi","requirements":"0.0.17","direct":false,"kind":"runtime","optional":false},{"id":25354324406,"package_name":"sphinxcontrib-applehelp","ecosystem":"pypi","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25354324407,"package_name":"sphinxcontrib-devhelp","ecosystem":"pypi","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25354324408,"package_name":"sphinxcontrib-htmlhelp","ecosystem":"pypi","requirements":"2.1.0","direct":false,"kind":"runtime","optional":false},{"id":25354324409,"package_name":"sphinxcontrib-jsmath","ecosystem":"pypi","requirements":"1.0.1","direct":false,"kind":"runtime","optional":false},{"id":25354324410,"package_name":"sphinxcontrib-mermaid","ecosystem":"pypi","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":25354324411,"package_name":"sphinxcontrib-qthelp","ecosystem":"pypi","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25354324412,"package_name":"sphinxcontrib-serializinghtml","ecosystem":"pypi","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":25354324413,"package_name":"stack-data","ecosystem":"pypi","requirements":"0.6.3","direct":false,"kind":"runtime","optional":false},{"id":25354324414,"package_name":"synopticpy","ecosystem":"pypi","requirements":"*","direct":false,"kind":"runtime","optional":false},{"id":25354324793,"package_name":"tinycss2","ecosystem":"pypi","requirements":"1.4.0","direct":false,"kind":"runtime","optional":false},{"id":25354324794,"package_name":"toml","ecosystem":"pypi","requirements":"0.10.2","direct":false,"kind":"runtime","optional":false},{"id":25354324795,"package_name":"tomli","ecosystem":"pypi","requirements":"2.2.1","direct":false,"kind":"runtime","optional":false},{"id":25354324796,"package_name":"tornado","ecosystem":"pypi","requirements":"6.5.2","direct":false,"kind":"runtime","optional":false},{"id":25354324797,"package_name":"traitlets","ecosystem":"pypi","requirements":"5.14.3","direct":false,"kind":"runtime","optional":false},{"id":25354324798,"package_name":"typing-extensions","ecosystem":"pypi","requirements":"4.15.0","direct":false,"kind":"runtime","optional":false},{"id":25354324799,"package_name":"tzdata","ecosystem":"pypi","requirements":"2025.2","direct":false,"kind":"runtime","optional":false},{"id":25354324800,"package_name":"uc-micro-py","ecosystem":"pypi","requirements":"1.0.3","direct":false,"kind":"runtime","optional":false},{"id":25354324801,"package_name":"urllib3","ecosystem":"pypi","requirements":"2.5.0","direct":false,"kind":"runtime","optional":false},{"id":25354324802,"package_name":"wcwidth","ecosystem":"pypi","requirements":"0.2.13","direct":false,"kind":"runtime","optional":false},{"id":25354324803,"package_name":"webencodings","ecosystem":"pypi","requirements":"0.5.1","direct":false,"kind":"runtime","optional":false},{"id":25354324804,"package_name":"xarray","ecosystem":"pypi","requirements":"2025.9.0","direct":false,"kind":"runtime","optional":false},{"id":25354324805,"package_name":"zipp","ecosystem":"pypi","requirements":"3.23.0","direct":false,"kind":"runtime","optional":false}]}],"score":14.939193924181223,"created_at":"2023-09-13T08:45:21.604Z","updated_at":"2026-04-21T06:00:50.734Z","avatar_url":"https://github.com/blaylockbk.png","language":"Python","category":"Sustainable Development","sub_category":"Data Catalogs and Interfaces","monthly_downloads":6571,"total_dependent_repos":1,"total_dependent_packages":0,"readme":"\u003cdiv\n    align='center'\n\u003e\n\n\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/blaylockbk/SynopticPy/refs/heads/56-rewrite-using-polars/docs/_static/SynopticPy_white.svg\"\u003e\n  \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://raw.githubusercontent.com/blaylockbk/SynopticPy/refs/heads/56-rewrite-using-polars/docs/_static/SynopticPy_blue.svg\"\u003e\n  \u003cimg alt=\"Shows a black logo in light color mode and a white one in dark color mode.\" src=\"https://raw.githubusercontent.com/blaylockbk/SynopticPy/refs/heads/56-rewrite-using-polars/docs/_static/SynopticPy_blue.svg\" width=300\u003e\n\u003c/picture\u003e\n\n## Synoptic API for Python\n\n\u003c!-- Badges --\u003e\n\n[![PyPI](https://img.shields.io/pypi/v/SynopticPy)](https://pypi.python.org/pypi/SynopticPy/)\n[![Conda Version](https://img.shields.io/conda/vn/conda-forge/synopticpy.svg)](https://anaconda.org/conda-forge/synopticpy)\n[![DOI](https://zenodo.org/badge/288617886.svg)](https://zenodo.org/badge/latestdoi/288617886)\n\n![License](https://img.shields.io/github/license/blaylockbk/SynopticPy)\n[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n[![Tests (Python)](https://github.com/blaylockbk/SynopticPy/actions/workflows/tests-python.yml/badge.svg)](https://github.com/blaylockbk/SynopticPy/actions/workflows/tests-python.yml)\n[![Documentation Status](https://readthedocs.org/projects/synopticpy/badge/?version=latest)](https://synopticpy.readthedocs.io/?badge=latest)\n[![Python](https://img.shields.io/pypi/pyversions/SynopticPy.svg)](https://pypi.org/project/SynopticPy/)\n[![Conda Recipe](https://img.shields.io/badge/recipe-synopticpy-green.svg)](https://anaconda.org/conda-forge/synopticpy)\n[![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/synopticpy.svg)](https://anaconda.org/conda-forge/synopticpy)\n\n\u003c!-- (Badges) --\u003e\n\n## 📘 [Documentation](https://synopticpy.readthedocs.io/) | [💬 Discussions](https://github.com/blaylockbk/SynopticPy/discussions) | [🚑 Issues](https://github.com/blaylockbk/SynopticPy/issues)\n\n\u003c/div\u003e\n\n[Synoptic's Weather API](https://synopticdata.com/weatherapi/) provides real-time and historical surface-based weather and environmental observations for thousands of mesonet stations, and the [open-access data](https://synopticdata.com/pricing/open-access-pricing/) is _free_. More data and enhanced services may be purchased (from Synoptic, not me).\n\nI'm a Synoptic user. I wrote this package to conveniently request data from Synoptic in a Pythonic way and convert its returned JSON to a **[Polars DataFrame](https://docs.pola.rs/user-guide/getting-started/)**.\n\n```python\nfrom datetime import timedelta\nfrom synoptic import TimeSeries\n\ndf = TimeSeries(\n    stid=\"wbb\",\n    recent=timedelta(minutes=30)\n).df()\n```\n\n![alt text](docs/_static/json_to_polars.png)\n\nI'm sharing this package to improve my skills with Polars and gain more experience in building and maintaining open-source Python packages. If you came across this package, I hope you find it valuable.\n\n**Best of Luck 🍀**  \n-Brian\n\n# 🐍 Install\n\n```bash\npip install SynopticPy\n```\n\n```bash\nconda install -c conda-forge synopticpy\n```\n\n## Configure Token\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e ## 🎟️ To use SynopticPy you need a [Synoptic API token](https://customer.synopticdata.com/).\n\nThere are three ways you can configure your Synoptic API token:\n\n1. Set an environment variable `SYNOPTIC_TOKEN` with your token. For example, in bash:\n   ```bash\n   export SYNOPTIC_TOKEN=\"yourTokenHere123456789\"\n   ```\n1. Create a file `~/.config/SynopticPy/config.toml` with the following\n   ```toml\n   token = \"yourTokenHere123456789\"\n   ```\n1. Pass your token whenever you use one of SynopticPy's classes.\n   ```python\n   TimeSeries(\n       stid=\"wbb\",\n       recent=30,\n       token=\"yourTokenHere123456789\"\n   )\n   ```\n\n# How to Cite and Acknowledge\n\nIf SynopticPy played an important role in your work, please [tell me about it](https://github.com/blaylockbk/SynopticPY/discussions/categories/show-and-tell)! Also, consider including a citation or acknowledgement in your article or product.\n\n**_Suggested Citation_**\n\n\u003e Blaylock, B. K. (YEAR). SynopticPy: Synoptic API for Python (Version 20??.?.?) [Computer software]. https://github.com/blaylockbk/SynopticPy\n\n**_Suggested Acknowledgment_**\n\n\u003e A portion of this work used code generously provided by Brian Blaylock's SynopticPy Python package (https://github.com/blaylockbk/SynopticPy)\n\n\u003cbr\u003e\n\u003chr\u003e\n\n\u003e [!TIP]\n\u003e\n\u003e ### 📈 See also my [SynopticPy Web App](https://blaylockbk.github.io/SynopticPy) which lets you plot station data in your browser powered by [pyscript](https://pyscript.net/)!\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["big-data-program","cfgrib","ecmwf-data","gfs","grib","grib2","hrrr","noaa-data","nomads","numerical-weather-prediction"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/46176","html_url":"https://ost.ecosyste.ms/projects/46176"}