From c9157ecdfd18dedd66faef66e12eae354ea2cbf8 Mon Sep 17 00:00:00 2001 From: James Wood Date: Fri, 1 Mar 2024 09:56:38 -0800 Subject: [PATCH] Release/0.8.0 (#102) * Feature/update add collection test (#94) * update add collection test to get the url for json history * update changelog * /version 0.7.0a24 * Update uat_associations.txt with new collections * Update uat_associations.txt with new collections * Update uat_associations.txt with new collections * Feature/update add collection test (#95) * update add collection test to get the url for json history * update changelog * update test to test for nan * Update uat_associations.txt with new collections * Update uat_associations.txt with new collections * Update uat_associations.txt with new collections * Update uat_associations.txt with new collections * Update ops_associations.txt with new collections * Update ops_associations.txt with new collections * Update ops_associations.txt with new collections * Update ops_associations.txt with new collections * Update ops_associations.txt with new collections * Update ops_associations.txt with new collections * Update ops_associations.txt with new collections * Update ops_associations.txt with new collections * Update uat_associations.txt with new collections * Update ops_associations.txt with new collections * Update uat_associations.txt with new collections * Update ops_associations.txt with new collections * Update uat_associations.txt with new collections * Update ops_associations.txt with new collections * Update ops_associations.txt with new collections * Update ops_associations.txt with new collections * Update ops_associations.txt with new collections * Update uat_associations.txt with new collections * Update uat_associations.txt with new collections * Update ops_associations.txt with new collections * Update uat_associations.txt with new collections * Update ops_associations.txt with new collections * Update uat_associations.txt with new collections * Update uat_associations.txt with new collections * Bump jinja2 from 3.1.2 to 3.1.3 (#99) Bumps [jinja2](https://github.com/pallets/jinja) from 3.1.2 to 3.1.3. - [Release notes](https://github.com/pallets/jinja/releases) - [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/jinja/compare/3.1.2...3.1.3) --- updated-dependencies: - dependency-name: jinja2 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Using cmr-umm-updater default branch (develop) * use develop * Update CONTRIBUTING.md * Update uat_associations.txt with new collections * Update uat_associations.txt with new collections * Update uat_associations.txt with new collections * Update uat_associations.txt with new collections * Update uat_associations.txt with new collections * Update uat_associations.txt with new collections * Update uat_associations.txt with new collections * Update uat_associations.txt with new collections * Update uat_associations.txt with new collections * Update uat_associations.txt with new collections * Update uat_associations.txt with new collections * Update uat_associations.txt with new collections * Update uat_associations.txt with new collections * Update uat_associations.txt with new collections * Update uat_associations.txt with new collections * Update uat_associations.txt with new collections * Update uat_associations.txt with new collections * Update uat_associations.txt with new collections * Update ops_associations.txt with new collections * Update ops_associations.txt with new collections * Update ops_associations.txt with new collections * Update ops_associations.txt with new collections * Update uat_associations.txt with new collections * Update uat_associations.txt with new collections * Update uat_associations.txt with new collections * Update uat_associations.txt with new collections * Update ops_associations.txt with new collections * Update ops_associations.txt with new collections * Update ops_associations.txt with new collections * Update ops_associations.txt with new collections * Update ops_associations.txt with new collections * Update ops_associations.txt with new collections * Update ops_associations.txt with new collections * Update ops_associations.txt with new collections * Update ops_associations.txt with new collections * Issue #96: ensure the created dimension is sorted (#101) * implement sorting of the output queue according to the order of the input queue to satisfy issue #96 * Update CHANGELOG.md with issue-96 fix * release 0.8.0 --------- Signed-off-by: dependabot[bot] Co-authored-by: sliu008 <69875423+sliu008@users.noreply.github.com> Co-authored-by: concise bot Co-authored-by: jonathansmolenski Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Frank Greguska <89428916+frankinspace@users.noreply.github.com> Co-authored-by: ank1m <154441323+ank1m@users.noreply.github.com> Co-authored-by: James Wood --- .github/workflows/add-collection-test.yml | 2 +- .github/workflows/build-pipeline.yml | 4 +- CHANGELOG.md | 16 +++- CONTRIBUTING.md | 10 +- add_collection_test.py | 45 ++++----- cmr/ops_associations.txt | 29 ++++++ cmr/uat_associations.txt | 37 ++++++++ podaac/merger/harmony/download_worker.py | 10 +- poetry.lock | 108 ++++------------------ pyproject.toml | 2 +- 10 files changed, 124 insertions(+), 139 deletions(-) diff --git a/.github/workflows/add-collection-test.yml b/.github/workflows/add-collection-test.yml index a156eb6b..9cd69436 100644 --- a/.github/workflows/add-collection-test.yml +++ b/.github/workflows/add-collection-test.yml @@ -46,7 +46,7 @@ jobs: pip3 install netCDF4 pip3 install git+https://github.com/nasa/harmony-py.git pip3 install git+https://github.com/podaac/cmr-umm-updater.git - pip3 install git+https://github.com/podaac/cmr-association-diff.git@6193079a14e36f4c9526aa426015c2b6be41f0e2 + pip3 install git+https://github.com/podaac/cmr-association-diff.git pip3 install python-dateutil --upgrade - name: Run CMR Association diff scripts run: | diff --git a/.github/workflows/build-pipeline.yml b/.github/workflows/build-pipeline.yml index 5994d5ce..bfe739fb 100644 --- a/.github/workflows/build-pipeline.yml +++ b/.github/workflows/build-pipeline.yml @@ -141,7 +141,7 @@ jobs: git tag -a "${{ env.software_version }}" -m "Version ${{ env.software_version }}" git push origin "${{ env.software_version }}" - name: Publish UMM-S with new version - uses: podaac/cmr-umm-updater@feature/umm_version + uses: podaac/cmr-umm-updater@develop if: | github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release') @@ -160,7 +160,7 @@ jobs: LAUNCHPAD_TOKEN_UAT: ${{secrets.LAUNCHPAD_TOKEN_UAT}} LAUNCHPAD_TOKEN_OPS: ${{secrets.LAUNCHPAD_TOKEN_OPS}} - name: Publish L2ss Concise Chain UMM-S with new version - uses: podaac/cmr-umm-updater@feature/umm_version + uses: podaac/cmr-umm-updater@develop if: | github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release') diff --git a/CHANGELOG.md b/CHANGELOG.md index ee4d007f..11fe38a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added ### Changed -### Deprecated +### Deprecated +### Removed +### Fixed + + +## [0.8.0] + +### Added +### Changed + - [issues/96](https://github.com/podaac/concise/issues/96): + - Preserve the order of the input files so the output file matches order +### Deprecated ### Removed ### Fixed @@ -24,7 +35,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Updated jupyter notebook - Update notebook test to use python code directly instead of using jupyter notebook - Updated python libraries - - Update history json to have url in history + - Update history json to have url in history + - Update add collection test to use url in json history ### Deprecated ### Removed ### Fixed diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a0245d33..d81412c1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -77,14 +77,6 @@ If any performance improvements are being made, include graphs and charts. - `feature/issue-#` - Work for enhancements and new features should be done in a branch with this naming convention - The issue number should match the associated Github issue number -- `bugfix/issue-#` - - Work for bug fixes should be done in a branch with this naming convention - - The issue number should match the associated Github issue number -- `hotfix/issue-#` or `hotfix/short-fix-description` - - Rare/special case to address a special anomaly. - - The issue number should match the associated Github issue number, - unless no such issue exists. If not, use a short description of the - issue e.g. `hotfix/fix-request-url` ### Changelog @@ -200,4 +192,4 @@ All functions should contain a docstring, though short or trivial function may contain a 1-line docstring. If adding a new module, ensure it has been added to [index.rst](docs/index.rst) -for inclusion in auto-generated Sphinx docs. \ No newline at end of file +for inclusion in auto-generated Sphinx docs. diff --git a/add_collection_test.py b/add_collection_test.py index cd960de1..a3bc1db4 100644 --- a/add_collection_test.py +++ b/add_collection_test.py @@ -6,6 +6,7 @@ import numpy as np import netCDF4 as nc import requests +import json from harmony import BBox, Client, Collection, Request, Environment import argparse from utils import FileHandler @@ -135,14 +136,21 @@ def verify_variables(merged_group, origin_group, subset_index, both_merged): merged_data = np.resize(merged_var[subset_index], origin_var.shape) origin_data = origin_var + equal_nan = True + if merged_data.dtype.kind == 'S': + equal_nan = False + # verify variable data if isinstance(origin_data, str): unittest.TestCase().assertEqual(merged_data, origin_data) else: - unittest.TestCase().assertTrue(np.array_equal(merged_data, origin_data, equal_nan=True)) + unittest.TestCase().assertTrue(np.array_equal(merged_data, origin_data, equal_nan=equal_nan)) + +def verify_groups(merged_group, origin_group, subset_index, file=None, both_merged=False): + if file: + print("verifying groups ....." + file) -def verify_groups(merged_group, origin_group, subset_index, both_merged=False): verify_dims(merged_group, origin_group, both_merged) verify_attrs(merged_group, origin_group, both_merged) verify_variables(merged_group, origin_group, subset_index, both_merged) @@ -150,7 +158,7 @@ def verify_groups(merged_group, origin_group, subset_index, both_merged=False): for child_group in origin_group.groups: merged_subgroup = merged_group[child_group] origin_subgroup = origin_group[child_group] - verify_groups(merged_subgroup, origin_subgroup, subset_index, both_merged) + verify_groups(merged_subgroup, origin_subgroup, subset_index, both_merged=both_merged) # GET TOKEN FROM CMR @@ -173,7 +181,7 @@ def download_file(url, local_path, headers): with open(local_path, 'wb') as file: for chunk in response.iter_content(chunk_size=8192): file.write(chunk) - print("Original File downloaded successfully.") + print("Original File downloaded successfully. " + local_path) else: print(f"Failed to download the file. Status code: {response.status_code}") @@ -217,6 +225,7 @@ def test(collection_id, venue): print('\nDone downloading.') filename = file_names[0] + # Handle time dimension and variables dropping merge_dataset = nc.Dataset(filename, 'r') @@ -233,34 +242,16 @@ def test(collection_id, venue): } original_files = merge_dataset.variables['subset_files'] + history_json = json.loads(merge_dataset.history_json) assert len(original_files) == max_results - for file in original_files: - - # if the file name end in an alphabet so we know there is some extension - if file[-1].isalpha(): - file_name = file.rsplit(".", 1)[0] - else: - file_name = file - - print(file_name) - cmr_query = f"{cmr_base_url}{file_name}&collection_concept_id={collection_id}" - print(cmr_query) - - response = requests.get(cmr_query, headers=headers) - - result = response.json() - links = result.get('items')[0].get('umm').get('RelatedUrls') - for link in links: - if link.get('Type') == 'GET DATA': - data_url = link.get('URL') - parsed_url = urlparse(data_url) - local_file_name = os.path.basename(parsed_url.path) - download_file(data_url, local_file_name, headers) + for url in history_json[0].get("derived_from"): + local_file_name = os.path.basename(url) + download_file(url, local_file_name, headers) for i, file in enumerate(original_files): origin_dataset = nc.Dataset(file) - verify_groups(merge_dataset, origin_dataset, i) + verify_groups(merge_dataset, origin_dataset, i, file=file) def run(): diff --git a/cmr/ops_associations.txt b/cmr/ops_associations.txt index 0d8b7c33..3ff0104d 100644 --- a/cmr/ops_associations.txt +++ b/cmr/ops_associations.txt @@ -70,3 +70,32 @@ C2274919541-POCLOUD C2205620319-POCLOUD C2183155461-POCLOUD C2208421887-POCLOUD +C2628595723-POCLOUD +C2746966926-POCLOUD +C2628600898-POCLOUD +C2746966928-POCLOUD +C2746966927-POCLOUD +C2754895884-POCLOUD +C2746966657-POCLOUD +C2628598809-POCLOUD +C2799465529-POCLOUD +C2799465526-POCLOUD +C2799465507-POCLOUD +C2799465497-POCLOUD +C2799465538-POCLOUD +C2799465544-POCLOUD +C2799465542-POCLOUD +C2799465428-POCLOUD +C2799438350-POCLOUD +C2799438351-POCLOUD +C2799438353-POCLOUD +C2296989388-POCLOUD +C2205553958-POCLOUD +C2706513160-POCLOUD +C2147480877-POCLOUD +C2147478146-POCLOUD +C2730520815-POCLOUD +C2799465509-POCLOUD +C2799465518-POCLOUD +C2799465522-POCLOUD +C2068529568-POCLOUD diff --git a/cmr/uat_associations.txt b/cmr/uat_associations.txt index 5f124ae7..4f408724 100644 --- a/cmr/uat_associations.txt +++ b/cmr/uat_associations.txt @@ -80,3 +80,40 @@ C1238621102-POCLOUD C1240739713-POCLOUD C1243175554-POCLOUD C1245295750-POCLOUD +C1256783381-POCLOUD +C1259115177-POCLOUD +C1256783388-POCLOUD +C1259115167-POCLOUD +C1259115178-POCLOUD +C1256783382-POCLOUD +C1259115166-POCLOUD +C1261072655-POCLOUD +C1261072658-POCLOUD +C1261072648-POCLOUD +C1261072646-POCLOUD +C1261072656-POCLOUD +C1261072645-POCLOUD +C1261072659-POCLOUD +C1261072654-POCLOUD +C1254854453-LARC_CLOUD +C1254855648-LARC_CLOUD +C1254854962-LARC_CLOUD +C1247485682-LARC_CLOUD +C1247485690-LARC_CLOUD +C1247485685-LARC_CLOUD +C1242274079-POCLOUD +C1240739526-POCLOUD +C1261072651-POCLOUD +C1261072650-POCLOUD +C1242274070-POCLOUD +C1240739691-POCLOUD +C1257081729-POCLOUD +C1261072661-POCLOUD +C1261072652-POCLOUD +C1261072662-POCLOUD +C1261072660-POCLOUD +C1261645986-LARC_CLOUD +C1258237266-POCLOUD +C1259966654-POCLOUD +C1258237267-POCLOUD +C1240739686-POCLOUD diff --git a/podaac/merger/harmony/download_worker.py b/podaac/merger/harmony/download_worker.py index 465b46ed..f4f3e2c9 100644 --- a/podaac/merger/harmony/download_worker.py +++ b/podaac/merger/harmony/download_worker.py @@ -44,8 +44,8 @@ def multi_core_download(urls, destination_dir, access_token, cfg, process_count= url_queue = manager.Queue(len(urls)) path_list = manager.list() - for url in urls: - url_queue.put(url) + for iurl, url in enumerate(urls): + url_queue.put((iurl, url)) # Spawn worker processes processes = [] @@ -64,7 +64,7 @@ def multi_core_download(urls, destination_dir, access_token, cfg, process_count= path_list = deepcopy(path_list) # ensure GC can cleanup multiprocessing - return [Path(path) for path in path_list] + return [Path(path) for ipath, path in sorted(path_list)] def _download_worker(url_queue, path_list, destination_dir, access_token, cfg): @@ -91,7 +91,7 @@ def _download_worker(url_queue, path_list, destination_dir, access_token, cfg): while not url_queue.empty(): try: - url = url_queue.get_nowait() + iurl, url = url_queue.get_nowait() except queue.Empty: break @@ -105,4 +105,4 @@ def _download_worker(url_queue, path_list, destination_dir, access_token, cfg): else: logger.warning('Origin filename could not be assertained - %s', url) - path_list.append(str(path)) + path_list.append((iurl, str(path))) diff --git a/poetry.lock b/poetry.lock index 364ec580..9eeb2f8c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,10 +1,9 @@ -# This file is automatically @generated by Poetry and should not be changed by hand. +# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. [[package]] name = "alabaster" version = "0.7.13" description = "A configurable sidebar-enabled Sphinx theme" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -16,7 +15,6 @@ files = [ name = "ansiwrap" version = "0.8.4" description = "textwrap, but savvy to ANSI colors and styles" -category = "dev" optional = false python-versions = "*" files = [ @@ -31,7 +29,6 @@ textwrap3 = ">=0.9.2" name = "astroid" version = "2.15.8" description = "An abstract syntax tree for Python with inference support." -category = "dev" optional = false python-versions = ">=3.7.2" files = [ @@ -51,7 +48,6 @@ wrapt = [ name = "attrs" version = "23.1.0" description = "Classes Without Boilerplate" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -70,7 +66,6 @@ tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pyte name = "babel" version = "2.13.1" description = "Internationalization utilities" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -88,7 +83,6 @@ dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] name = "boto3" version = "1.28.73" description = "The AWS SDK for Python" -category = "main" optional = false python-versions = ">= 3.7" files = [ @@ -108,7 +102,6 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] name = "botocore" version = "1.31.73" description = "Low-level, data-driven core of boto 3." -category = "main" optional = false python-versions = ">= 3.7" files = [ @@ -131,7 +124,6 @@ crt = ["awscrt (==0.16.26)"] name = "certifi" version = "2023.7.22" description = "Python package for providing Mozilla's CA Bundle." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -143,7 +135,6 @@ files = [ name = "cffi" version = "1.16.0" description = "Foreign Function Interface for Python calling C code." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -208,7 +199,6 @@ pycparser = "*" name = "cftime" version = "1.6.2" description = "Time-handling functionality from netcdf4-python" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -242,7 +232,6 @@ numpy = ">1.13.3" name = "cftime" version = "1.6.3" description = "Time-handling functionality from netcdf4-python" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -276,7 +265,6 @@ numpy = {version = ">1.13.3", markers = "python_version < \"3.12.0.rc1\""} name = "charset-normalizer" version = "3.3.1" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -376,7 +364,6 @@ files = [ name = "click" version = "8.1.7" description = "Composable command line interface toolkit" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -391,7 +378,6 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." -category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ @@ -403,7 +389,6 @@ files = [ name = "coverage" version = "7.3.2" description = "Code coverage measurement for Python" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -471,7 +456,6 @@ toml = ["tomli"] name = "deprecation" version = "2.1.0" description = "A library to handle automated deprecations" -category = "main" optional = false python-versions = "*" files = [ @@ -486,7 +470,6 @@ packaging = "*" name = "dill" version = "0.3.7" description = "serialize all of Python" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -501,7 +484,6 @@ graph = ["objgraph (>=1.7.2)"] name = "docutils" version = "0.17.1" description = "Docutils -- Python Documentation Utilities" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -513,7 +495,6 @@ files = [ name = "entrypoints" version = "0.4" description = "Discover and load entry points from installed packages." -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -525,7 +506,6 @@ files = [ name = "exceptiongroup" version = "1.1.3" description = "Backport of PEP 654 (exception groups)" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -540,7 +520,6 @@ test = ["pytest (>=6)"] name = "fastjsonschema" version = "2.18.1" description = "Fastest Python implementation of JSON schema" -category = "dev" optional = false python-versions = "*" files = [ @@ -555,7 +534,6 @@ devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benc name = "flake8" version = "6.1.0" description = "the modular source code checker: pep8 pyflakes and co" -category = "dev" optional = false python-versions = ">=3.8.1" files = [ @@ -572,7 +550,6 @@ pyflakes = ">=3.1.0,<3.2.0" name = "harmony-service-lib" version = "1.0.23" description = "A library for Python-based Harmony services to parse incoming messages, fetch data, stage data, and call back to Harmony" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -593,7 +570,6 @@ urllib3 = ">=1.26.9,<1.27.0" name = "idna" version = "3.4" description = "Internationalized Domain Names in Applications (IDNA)" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -605,7 +581,6 @@ files = [ name = "imagesize" version = "1.4.1" description = "Getting image size from png/jpeg/jpeg2000/gif file" -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -617,7 +592,6 @@ files = [ name = "importlib-metadata" version = "6.8.0" description = "Read metadata from Python packages" -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -637,7 +611,6 @@ testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs name = "iniconfig" version = "2.0.0" description = "brain-dead simple config-ini parsing" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -649,7 +622,6 @@ files = [ name = "isort" version = "5.12.0" description = "A Python utility / library to sort Python imports." -category = "dev" optional = false python-versions = ">=3.8.0" files = [ @@ -665,14 +637,13 @@ requirements-deprecated-finder = ["pip-api", "pipreqs"] [[package]] name = "jinja2" -version = "3.1.2" +version = "3.1.3" description = "A very fast and expressive template engine." -category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, - {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, + {file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"}, + {file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"}, ] [package.dependencies] @@ -685,7 +656,6 @@ i18n = ["Babel (>=2.7)"] name = "jmespath" version = "1.0.1" description = "JSON Matching Expressions" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -697,7 +667,6 @@ files = [ name = "jsonschema" version = "4.19.1" description = "An implementation of JSON Schema validation for Python" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -719,7 +688,6 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- name = "jsonschema-specifications" version = "2023.7.1" description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -734,7 +702,6 @@ referencing = ">=0.28.0" name = "jupyter-client" version = "8.5.0" description = "Jupyter protocol implementation and client libraries" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -744,7 +711,7 @@ files = [ [package.dependencies] importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} -jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" python-dateutil = ">=2.8.2" pyzmq = ">=23.0" tornado = ">=6.2" @@ -758,7 +725,6 @@ test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pyt name = "jupyter-core" version = "5.4.0" description = "Jupyter core package. A base package on which Jupyter projects rely." -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -779,7 +745,6 @@ test = ["ipykernel", "pre-commit", "pytest", "pytest-cov", "pytest-timeout"] name = "lazy-object-proxy" version = "1.9.0" description = "A fast and thorough lazy object proxy." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -825,7 +790,6 @@ files = [ name = "markupsafe" version = "2.1.3" description = "Safely add untrusted strings to HTML/XML markup." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -849,6 +813,16 @@ files = [ {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, @@ -885,7 +859,6 @@ files = [ name = "mccabe" version = "0.7.0" description = "McCabe checker, plugin for flake8" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -897,7 +870,6 @@ files = [ name = "nbclient" version = "0.8.0" description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." -category = "dev" optional = false python-versions = ">=3.8.0" files = [ @@ -907,7 +879,7 @@ files = [ [package.dependencies] jupyter-client = ">=6.1.12" -jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" nbformat = ">=5.1" traitlets = ">=5.4" @@ -920,7 +892,6 @@ test = ["flaky", "ipykernel (>=6.19.3)", "ipython", "ipywidgets", "nbconvert (>= name = "nbformat" version = "5.9.2" description = "The Jupyter Notebook format" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -942,7 +913,6 @@ test = ["pep440", "pre-commit", "pytest", "testpath"] name = "netcdf4" version = "1.6.5" description = "Provides an object-oriented python interface to the netCDF version 4 library" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -987,7 +957,6 @@ tests = ["Cython", "packaging", "pytest"] name = "numpy" version = "1.25.2" description = "Fundamental package for array computing in Python" -category = "main" optional = false python-versions = ">=3.9" files = [ @@ -1022,7 +991,6 @@ files = [ name = "packaging" version = "23.2" description = "Core utilities for Python packages" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1034,7 +1002,6 @@ files = [ name = "papermill" version = "2.4.0" description = "Parametrize and run Jupyter and nteract Notebooks" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1068,7 +1035,6 @@ test = ["attrs (>=17.4.0)", "azure-datalake-store (>=0.0.30)", "azure-storage-bl name = "platformdirs" version = "3.11.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1084,7 +1050,6 @@ test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-co name = "pluggy" version = "1.3.0" description = "plugin and hook calling mechanisms for python" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1100,7 +1065,6 @@ testing = ["pytest", "pytest-benchmark"] name = "pycodestyle" version = "2.11.1" description = "Python style guide checker" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1112,7 +1076,6 @@ files = [ name = "pycparser" version = "2.21" description = "C parser in Python" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1124,7 +1087,6 @@ files = [ name = "pyflakes" version = "3.1.0" description = "passive checker of Python programs" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1136,7 +1098,6 @@ files = [ name = "pygments" version = "2.16.1" description = "Pygments is a syntax highlighting package written in Python." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1151,7 +1112,6 @@ plugins = ["importlib-metadata"] name = "pylint" version = "2.17.7" description = "python code static checker" -category = "dev" optional = false python-versions = ">=3.7.2" files = [ @@ -1181,7 +1141,6 @@ testutils = ["gitpython (>3)"] name = "pynacl" version = "1.5.0" description = "Python binding to the Networking and Cryptography (NaCl) library" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1208,7 +1167,6 @@ tests = ["hypothesis (>=3.27.0)", "pytest (>=3.2.1,!=3.3.0)"] name = "pystac" version = "0.5.6" description = "Python library for working with Spatiotemporal Asset Catalog (STAC)." -category = "main" optional = false python-versions = "*" files = [ @@ -1226,7 +1184,6 @@ validation = ["jsonschema (==3.2.0)"] name = "pytest" version = "7.4.3" description = "pytest: simple powerful testing with Python" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1249,7 +1206,6 @@ testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "no name = "pytest-cov" version = "4.1.0" description = "Pytest plugin for measuring coverage." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1268,7 +1224,6 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtuale name = "python-dateutil" version = "2.8.2" description = "Extensions to the standard Python datetime module" -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ @@ -1283,7 +1238,6 @@ six = ">=1.5" name = "python-json-logger" version = "2.0.7" description = "A python library adding a json log formatter" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1295,7 +1249,6 @@ files = [ name = "pywin32" version = "306" description = "Python for Window Extensions" -category = "dev" optional = false python-versions = "*" files = [ @@ -1319,7 +1272,6 @@ files = [ name = "pyyaml" version = "6.0.1" description = "YAML parser and emitter for Python" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1379,7 +1331,6 @@ files = [ name = "pyzmq" version = "25.1.1" description = "Python bindings for 0MQ" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1485,7 +1436,6 @@ cffi = {version = "*", markers = "implementation_name == \"pypy\""} name = "referencing" version = "0.30.2" description = "JSON Referencing + Python" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1501,7 +1451,6 @@ rpds-py = ">=0.7.0" name = "requests" version = "2.31.0" description = "Python HTTP for Humans." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1523,7 +1472,6 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "rpds-py" version = "0.10.6" description = "Python bindings to Rust's persistent data structures (rpds)" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1632,7 +1580,6 @@ files = [ name = "s3transfer" version = "0.7.0" description = "An Amazon S3 Transfer Manager" -category = "main" optional = false python-versions = ">= 3.7" files = [ @@ -1650,7 +1597,6 @@ crt = ["botocore[crt] (>=1.20.29,<2.0a.0)"] name = "setuptools" version = "66.1.1" description = "Easily download, build, install, upgrade, and uninstall Python packages" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1667,7 +1613,6 @@ testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs ( name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -1679,7 +1624,6 @@ files = [ name = "snowballstemmer" version = "2.2.0" description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." -category = "dev" optional = false python-versions = "*" files = [ @@ -1691,7 +1635,6 @@ files = [ name = "sphinx" version = "4.5.0" description = "Python documentation generator" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1727,7 +1670,6 @@ test = ["cython", "html5lib", "pytest", "pytest-cov", "typed-ast"] name = "sphinx-rtd-theme" version = "1.3.0" description = "Read the Docs theme for Sphinx" -category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -1747,7 +1689,6 @@ dev = ["bump2version", "sphinxcontrib-httpdomain", "transifex-client", "wheel"] name = "sphinxcontrib-applehelp" version = "1.0.4" description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1763,7 +1704,6 @@ test = ["pytest"] name = "sphinxcontrib-devhelp" version = "1.0.2" description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -1779,7 +1719,6 @@ test = ["pytest"] name = "sphinxcontrib-htmlhelp" version = "2.0.1" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1795,7 +1734,6 @@ test = ["html5lib", "pytest"] name = "sphinxcontrib-jquery" version = "4.1" description = "Extension to include jQuery on newer Sphinx releases" -category = "dev" optional = false python-versions = ">=2.7" files = [ @@ -1810,7 +1748,6 @@ Sphinx = ">=1.8" name = "sphinxcontrib-jsmath" version = "1.0.1" description = "A sphinx extension which renders display math in HTML via JavaScript" -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -1825,7 +1762,6 @@ test = ["flake8", "mypy", "pytest"] name = "sphinxcontrib-qthelp" version = "1.0.3" description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -1841,7 +1777,6 @@ test = ["pytest"] name = "sphinxcontrib-serializinghtml" version = "1.1.5" description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -1857,7 +1792,6 @@ test = ["pytest"] name = "tenacity" version = "8.2.3" description = "Retry code until it succeeds" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1872,7 +1806,6 @@ doc = ["reno", "sphinx", "tornado (>=4.5)"] name = "textwrap3" version = "0.9.2" description = "textwrap from Python 3.6 backport (plus a few tweaks)" -category = "dev" optional = false python-versions = "*" files = [ @@ -1884,7 +1817,6 @@ files = [ name = "tomli" version = "2.0.1" description = "A lil' TOML parser" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1896,7 +1828,6 @@ files = [ name = "tomlkit" version = "0.12.1" description = "Style preserving TOML library" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1908,7 +1839,6 @@ files = [ name = "tornado" version = "6.3.3" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." -category = "dev" optional = false python-versions = ">= 3.8" files = [ @@ -1929,7 +1859,6 @@ files = [ name = "tqdm" version = "4.66.1" description = "Fast, Extensible Progress Meter" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1950,7 +1879,6 @@ telegram = ["requests"] name = "traitlets" version = "5.12.0" description = "Traitlets Python configuration system" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1966,7 +1894,6 @@ test = ["argcomplete (>=3.0.3)", "mypy (>=1.6.0)", "pre-commit", "pytest (>=7.0, name = "typing-extensions" version = "4.8.0" description = "Backported and Experimental Type Hints for Python 3.8+" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1978,7 +1905,6 @@ files = [ name = "urllib3" version = "1.26.18" description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ @@ -1995,7 +1921,6 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] name = "wrapt" version = "1.15.0" description = "Module for decorators, wrappers and monkey patching." -category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -2080,7 +2005,6 @@ files = [ name = "zipp" version = "3.17.0" description = "Backport of pathlib-compatible object wrapper for zip files" -category = "main" optional = false python-versions = ">=3.8" files = [ diff --git a/pyproject.toml b/pyproject.toml index 87bac96e..531aea03 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "podaac-concise" -version = "0.7.0" +version = "0.8.0rc1" description = "Harmony service that merges granules" authors = ["podaac-tva "] license = "Apache-2.0"