CMIP7-data-request-api 1.5__tar.gz → 1.5.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. cmip7_data_request_api-1.5.1/.DS_Store +0 -0
  2. cmip7_data_request_api-1.5.1/.github/.DS_Store +0 -0
  3. cmip7_data_request_api-1.5.1/.github/workflows/pip_install.yml +50 -0
  4. cmip7_data_request_api-1.5.1/.github/workflows/publish2pypi.yml +127 -0
  5. cmip7_data_request_api-1.5.1/.github/workflows/updates.yml +47 -0
  6. cmip7_data_request_api-1.5.1/.gitignore +184 -0
  7. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/PKG-INFO +1 -1
  8. cmip7_data_request_api-1.5.1/binder/environment.yml +13 -0
  9. cmip7_data_request_api-1.5.1/binder/postBuild +3 -0
  10. cmip7_data_request_api-1.5.1/data_request_api/.DS_Store +0 -0
  11. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/CMIP7_data_request_api.egg-info/PKG-INFO +1 -1
  12. cmip7_data_request_api-1.5.1/data_request_api/CMIP7_data_request_api.egg-info/SOURCES.txt +159 -0
  13. cmip7_data_request_api-1.5.1/data_request_api/CMIP7_data_request_api.egg-info/scm_file_list.json +155 -0
  14. cmip7_data_request_api-1.5.1/data_request_api/data_request_api/content/README.MD +106 -0
  15. cmip7_data_request_api-1.5.1/data_request_api/data_request_api/content/transform.json +339 -0
  16. cmip7_data_request_api-1.5.1/data_request_api/data_request_api/query/filtering.json +24 -0
  17. cmip7_data_request_api-1.5.1/data_request_api/data_request_api/tests/test_datasets/DR_raw_not-consolidate_content.json +424 -0
  18. cmip7_data_request_api-1.5.1/data_request_api/data_request_api/tests/test_datasets/DR_release_not-consolidate_content.json +424 -0
  19. cmip7_data_request_api-1.5.1/data_request_api/data_request_api/tests/test_datasets/DR_release_not-consolidate_content_dump.txt +263 -0
  20. cmip7_data_request_api-1.5.1/data_request_api/data_request_api/tests/test_datasets/VS_raw_not-consolidate_content.json +7725 -0
  21. cmip7_data_request_api-1.5.1/data_request_api/data_request_api/tests/test_datasets/VS_release_not-consolidate_content.json +7120 -0
  22. cmip7_data_request_api-1.5.1/data_request_api/data_request_api/tests/test_datasets/dreq_raw_export.json +37495 -0
  23. cmip7_data_request_api-1.5.1/data_request_api/data_request_api/tests/test_datasets/dreq_release_export.json +25218 -0
  24. cmip7_data_request_api-1.5.1/data_request_api/data_request_api/tests/test_datasets/raw_not-consolidate_output_format.json +37495 -0
  25. cmip7_data_request_api-1.5.1/data_request_api/data_request_api/tests/test_datasets/raw_not-consolidate_output_transform.json +8098 -0
  26. cmip7_data_request_api-1.5.1/data_request_api/data_request_api/tests/test_datasets/release_not-consolidate_output_format.json +25218 -0
  27. cmip7_data_request_api-1.5.1/data_request_api/data_request_api/tests/test_datasets/release_not-consolidate_output_transform.json +7493 -0
  28. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/version.py +2 -2
  29. cmip7_data_request_api-1.5.1/docs/data_request_api/command_line/compare_variables.html +388 -0
  30. cmip7_data_request_api-1.5.1/docs/data_request_api/command_line/config.html +132 -0
  31. cmip7_data_request_api-1.5.1/docs/data_request_api/command_line/estimate_dreq_volume.html +555 -0
  32. cmip7_data_request_api-1.5.1/docs/data_request_api/command_line/export_dreq_lists_json.html +296 -0
  33. cmip7_data_request_api-1.5.1/docs/data_request_api/command_line/get_variables_metadata.html +192 -0
  34. cmip7_data_request_api-1.5.1/docs/data_request_api/command_line/index.html +98 -0
  35. cmip7_data_request_api-1.5.1/docs/data_request_api/content/consolidate_export.html +537 -0
  36. cmip7_data_request_api-1.5.1/docs/data_request_api/content/dreq_content.html +754 -0
  37. cmip7_data_request_api-1.5.1/docs/data_request_api/content/dump_transformation.html +814 -0
  38. cmip7_data_request_api-1.5.1/docs/data_request_api/content/index.html +98 -0
  39. cmip7_data_request_api-1.5.1/docs/data_request_api/content/mapping_table.html +151 -0
  40. cmip7_data_request_api-1.5.1/docs/data_request_api/content/utils.html +66 -0
  41. cmip7_data_request_api-1.5.1/docs/data_request_api/index.html +98 -0
  42. cmip7_data_request_api-1.5.1/docs/data_request_api/query/data_request.html +3320 -0
  43. cmip7_data_request_api-1.5.1/docs/data_request_api/query/dreq_classes.html +991 -0
  44. cmip7_data_request_api-1.5.1/docs/data_request_api/query/dreq_query.html +1746 -0
  45. cmip7_data_request_api-1.5.1/docs/data_request_api/query/index.html +95 -0
  46. cmip7_data_request_api-1.5.1/docs/data_request_api/query/vocabulary_server.html +639 -0
  47. cmip7_data_request_api-1.5.1/docs/data_request_api/stable/content/consolidate_export.html +492 -0
  48. cmip7_data_request_api-1.5.1/docs/data_request_api/stable/content/dreq_content.html +619 -0
  49. cmip7_data_request_api-1.5.1/docs/data_request_api/stable/content/dump_transformation.html +676 -0
  50. cmip7_data_request_api-1.5.1/docs/data_request_api/stable/content/index.html +93 -0
  51. cmip7_data_request_api-1.5.1/docs/data_request_api/stable/content/mapping_table.html +130 -0
  52. cmip7_data_request_api-1.5.1/docs/data_request_api/stable/index.html +88 -0
  53. cmip7_data_request_api-1.5.1/docs/data_request_api/stable/query/data_request.html +3114 -0
  54. cmip7_data_request_api-1.5.1/docs/data_request_api/stable/query/dreq_classes.html +785 -0
  55. cmip7_data_request_api-1.5.1/docs/data_request_api/stable/query/dreq_query.html +1385 -0
  56. cmip7_data_request_api-1.5.1/docs/data_request_api/stable/query/index.html +95 -0
  57. cmip7_data_request_api-1.5.1/docs/data_request_api/stable/query/vocabulary_server.html +630 -0
  58. cmip7_data_request_api-1.5.1/docs/data_request_api/stable/utilities/config.html +214 -0
  59. cmip7_data_request_api-1.5.1/docs/data_request_api/stable/utilities/decorators.html +122 -0
  60. cmip7_data_request_api-1.5.1/docs/data_request_api/stable/utilities/index.html +98 -0
  61. cmip7_data_request_api-1.5.1/docs/data_request_api/stable/utilities/logger.html +179 -0
  62. cmip7_data_request_api-1.5.1/docs/data_request_api/stable/utilities/parser.html +91 -0
  63. cmip7_data_request_api-1.5.1/docs/data_request_api/stable/utilities/tools.html +150 -0
  64. cmip7_data_request_api-1.5.1/docs/data_request_api/tests/index.html +152 -0
  65. cmip7_data_request_api-1.5.1/docs/data_request_api/tests/test_cli.html +1562 -0
  66. cmip7_data_request_api-1.5.1/docs/data_request_api/tests/test_config.html +384 -0
  67. cmip7_data_request_api-1.5.1/docs/data_request_api/tests/test_config_cli.html +365 -0
  68. cmip7_data_request_api-1.5.1/docs/data_request_api/tests/test_consolidation.html +244 -0
  69. cmip7_data_request_api-1.5.1/docs/data_request_api/tests/test_data_request.html +3920 -0
  70. cmip7_data_request_api-1.5.1/docs/data_request_api/tests/test_decorator.html +219 -0
  71. cmip7_data_request_api-1.5.1/docs/data_request_api/tests/test_dreq_content.html +790 -0
  72. cmip7_data_request_api-1.5.1/docs/data_request_api/tests/test_dreq_query.html +313 -0
  73. cmip7_data_request_api-1.5.1/docs/data_request_api/tests/test_dump_transformation.html +626 -0
  74. cmip7_data_request_api-1.5.1/docs/data_request_api/tests/test_optimize.html +485 -0
  75. cmip7_data_request_api-1.5.1/docs/data_request_api/tests/test_vocabulary_server.html +608 -0
  76. cmip7_data_request_api-1.5.1/docs/data_request_api/utilities/config.html +267 -0
  77. cmip7_data_request_api-1.5.1/docs/data_request_api/utilities/decorators.html +128 -0
  78. cmip7_data_request_api-1.5.1/docs/data_request_api/utilities/index.html +98 -0
  79. cmip7_data_request_api-1.5.1/docs/data_request_api/utilities/logger.html +179 -0
  80. cmip7_data_request_api-1.5.1/docs/data_request_api/utilities/parser.html +121 -0
  81. cmip7_data_request_api-1.5.1/docs/data_request_api/utilities/tools.html +150 -0
  82. cmip7_data_request_api-1.5.1/docs/data_request_api/version.html +66 -0
  83. cmip7_data_request_api-1.5.1/docs/static/3boxes_schema.png +0 -0
  84. cmip7_data_request_api-1.5.1/env.yml +11 -0
  85. cmip7_data_request_api-1.5.1/launch_test_with_coverage.sh +49 -0
  86. cmip7_data_request_api-1.5.1/notebooks/HowTo-00_Install_the_DR_Software.ipynb +191 -0
  87. cmip7_data_request_api-1.5.1/notebooks/HowTo-01_Import_and_Load_the_DR.ipynb +349 -0
  88. cmip7_data_request_api-1.5.1/notebooks/HowTo-02_Discover_What_is_in_DR.ipynb +378 -0
  89. cmip7_data_request_api-1.5.1/notebooks/HowTo-03a_Find_Experiments_and_Variables_for_given_Opportunities.ipynb +251 -0
  90. cmip7_data_request_api-1.5.1/notebooks/HowTo-03b_Find_Experiments_and_Variables_for_given_Opportunities.ipynb +168 -0
  91. cmip7_data_request_api-1.5.1/notebooks/HowTo-04a_View_Attributes_of_Experiments_and_Variables.ipynb +158 -0
  92. cmip7_data_request_api-1.5.1/notebooks/HowTo-04b_View_Attributes_of_Variables.ipynb +189 -0
  93. cmip7_data_request_api-1.5.1/notebooks/HowTo-05_Apply_Various_Search_Critria.ipynb +314 -0
  94. cmip7_data_request_api-1.5.1/notebooks/README.md +1 -0
  95. cmip7_data_request_api-1.5.1/notebooks/outdir/.gitkeep +0 -0
  96. cmip7_data_request_api-1.5.1/requirements.txt +8 -0
  97. cmip7_data_request_api-1.5.1/scripts/branding/README.md +33 -0
  98. cmip7_data_request_api-1.5.1/scripts/branding/branded_variable_attributes.yaml +17 -0
  99. cmip7_data_request_api-1.5.1/scripts/branding/compare_branded_variables.py +269 -0
  100. cmip7_data_request_api-1.5.1/scripts/branding/generate_branded_names.py +118 -0
  101. cmip7_data_request_api-1.5.1/scripts/check_consolidation.py +113 -0
  102. cmip7_data_request_api-1.5.1/scripts/check_consolidation2.py +559 -0
  103. cmip7_data_request_api-1.5.1/scripts/check_consolidation2_list-all-diffs.py +569 -0
  104. cmip7_data_request_api-1.5.1/scripts/check_consolidation_and_transformation.py +627 -0
  105. cmip7_data_request_api-1.5.1/scripts/check_expected_data.py +50 -0
  106. cmip7_data_request_api-1.5.1/scripts/check_variables_attributes.py +103 -0
  107. cmip7_data_request_api-1.5.1/scripts/database_transformation.py +60 -0
  108. cmip7_data_request_api-1.5.1/scripts/examples/requested_v1.2.2.5_cmip6names.json +96786 -0
  109. cmip7_data_request_api-1.5.1/scripts/examples/requested_v1.2.2.5_cmip7names.json +96786 -0
  110. cmip7_data_request_api-1.5.1/scripts/examples/variables_v1.2.2.5_cmip6names.json +51182 -0
  111. cmip7_data_request_api-1.5.1/scripts/examples/variables_v1.2.2.5_cmip7names.json +51182 -0
  112. cmip7_data_request_api-1.5.1/scripts/sandbox/create_brand_name.py +216 -0
  113. cmip7_data_request_api-1.5.1/scripts/tidy_config.json +507 -0
  114. cmip7_data_request_api-1.5.1/scripts/tidy_test_base_content.py +202 -0
  115. cmip7_data_request_api-1.5.1/scripts/validate_DR_terms.py +185 -0
  116. cmip7_data_request_api-1.5.1/scripts/workflow_example.py +67 -0
  117. cmip7_data_request_api-1.5.1/scripts/workflow_example_2.py +152 -0
  118. cmip7_data_request_api-1.5/data_request_api/CMIP7_data_request_api.egg-info/SOURCES.txt +0 -46
  119. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/LICENSE +0 -0
  120. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/README.md +0 -0
  121. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/CMIP7_data_request_api.egg-info/dependency_links.txt +0 -0
  122. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/CMIP7_data_request_api.egg-info/entry_points.txt +0 -0
  123. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/CMIP7_data_request_api.egg-info/requires.txt +0 -0
  124. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/CMIP7_data_request_api.egg-info/top_level.txt +0 -0
  125. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/__init__.py +0 -0
  126. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/command_line/__init__.py +0 -0
  127. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/command_line/compare_variables.py +0 -0
  128. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/command_line/config.py +0 -0
  129. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/command_line/estimate_dreq_volume.py +0 -0
  130. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/command_line/export_dreq_lists_json.py +0 -0
  131. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/command_line/get_variables_metadata.py +0 -0
  132. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/content/__init__.py +0 -0
  133. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/content/consolidate_export.py +0 -0
  134. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/content/dreq_content.py +0 -0
  135. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/content/dump_transformation.py +0 -0
  136. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/content/mapping_table.py +0 -0
  137. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/content/utils.py +0 -0
  138. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/query/__init__.py +0 -0
  139. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/query/data_request.py +0 -0
  140. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/query/dreq_classes.py +0 -0
  141. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/query/dreq_query.py +0 -0
  142. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/query/vocabulary_server.py +0 -0
  143. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/tests/__init__.py +0 -0
  144. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/tests/test_cli.py +0 -0
  145. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/tests/test_config.py +0 -0
  146. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/tests/test_config_cli.py +0 -0
  147. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/tests/test_consolidation.py +0 -0
  148. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/tests/test_data_request.py +0 -0
  149. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/tests/test_decorator.py +0 -0
  150. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/tests/test_dreq_content.py +0 -0
  151. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/tests/test_dreq_query.py +0 -0
  152. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/tests/test_dump_transformation.py +0 -0
  153. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/tests/test_optimize.py +0 -0
  154. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/tests/test_vocabulary_server.py +0 -0
  155. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/utilities/__init__.py +0 -0
  156. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/utilities/config.py +0 -0
  157. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/utilities/decorators.py +0 -0
  158. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/utilities/logger.py +0 -0
  159. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/utilities/parser.py +0 -0
  160. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/data_request_api/data_request_api/utilities/tools.py +0 -0
  161. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/pyproject.toml +0 -0
  162. {cmip7_data_request_api-1.5 → cmip7_data_request_api-1.5.1}/setup.cfg +0 -0
Binary file
@@ -0,0 +1,50 @@
1
+ name: Python Package Installation Test Matrix
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - '*'
7
+ pull_request:
8
+ branches:
9
+ - '*'
10
+
11
+ jobs:
12
+ test-install:
13
+ strategy:
14
+ matrix:
15
+ os: [ubuntu-22.04, macos-latest, windows-latest]
16
+ python-version: ["3.10", "3.11", "3.12", "3.13"]
17
+
18
+ runs-on: ${{ matrix.os }}
19
+
20
+ steps:
21
+ - name: Checkout code
22
+ uses: actions/checkout@v2
23
+
24
+ - name: Set up Python ${{ matrix.python-version }}
25
+ uses: actions/setup-python@v4
26
+ with:
27
+ python-version: ${{ matrix.python-version }}
28
+
29
+ - name: Install dependencies
30
+ run: |
31
+ python -m pip install --upgrade pip
32
+ pip install -r requirements.txt
33
+ pip install .
34
+ continue-on-error: false # Allow the job to continue even if installation fails
35
+
36
+ - name: Run tests
37
+ run: |
38
+ pytest --maxfail=1 --disable-warnings -q || exit 1 # Fail this step if tests fail
39
+ continue-on-error: false # Allow the job to continue even if tests fail
40
+
41
+ - name: Output result
42
+ run: |
43
+ echo "Install test completed for Python ${{ matrix.python-version }} on OS ${{ matrix.os }}."
44
+
45
+ - name: Add annotations for installation and testing failures
46
+ if: failure() # This step only runs if any previous step fails
47
+ run: |
48
+ echo "Installation or test failed for Python ${{ matrix.python-version }} on OS ${{ matrix.os }}."
49
+ echo "::error file=install_test_report.txt,line=1::Installation or test failed for Python ${{ matrix.python-version }} on OS ${{ matrix.os }}"
50
+
@@ -0,0 +1,127 @@
1
+ name: DREQ to PyPI and TestPyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+
8
+ jobs:
9
+ build:
10
+ name: Build distribution 📦 on ${{ matrix.os }}
11
+ runs-on: ${{ matrix.os }}
12
+ strategy:
13
+ matrix:
14
+ os: [ubuntu-latest, macos-latest, windows-latest]
15
+ fail-fast: false # Ensures that one failure doesn't cancel other builds
16
+
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ with:
20
+ persist-credentials: false
21
+
22
+ - name: Set up Python
23
+ uses: actions/setup-python@v5
24
+ with:
25
+ python-version: "3.x"
26
+
27
+ - name: Install pypa/build
28
+ run: python -m pip install --upgrade build twine
29
+
30
+ # - name: Build a binary wheel and a source tarball
31
+ # run: python -m build
32
+ - name: Build a binary wheel and a source tarball
33
+ run: |
34
+ echo "${{ github.ref_name }}"
35
+ SETUPTOOLS_SCM_PRETEND_VERSION=${{ github.ref_name }} python -m build
36
+ env:
37
+ SETUPTOOLS_SCM_PRETEND_VERSION: ${{ github.ref_name }}
38
+
39
+ - name: Store the distribution packages
40
+ uses: actions/upload-artifact@v4
41
+ with:
42
+ name: python-package-distributions-${{ matrix.os }}
43
+ path: dist/
44
+
45
+ continue-on-error: true # Allows the workflow to continue even if one OS fails
46
+
47
+ publish-to-pypi:
48
+ name: Publish Python 🐍 distribution 📦 to PyPI
49
+ if: startsWith(github.ref, 'refs/tags/') # Only publish on tag pushes
50
+ needs: build
51
+ runs-on: ubuntu-latest
52
+ environment:
53
+ name: pypi
54
+ url: https://pypi.org/p/CMIP7_data_request_api
55
+
56
+ permissions:
57
+ id-token: write # Mandatory for trusted publishing
58
+
59
+ steps:
60
+ - name: Download all the dists
61
+ uses: actions/download-artifact@v4
62
+ with:
63
+ pattern: python-package-distributions-* # Download all successful builds
64
+ merge-multiple: true
65
+ path: dist/
66
+
67
+ - name: Publish distribution 📦 to PyPI
68
+ uses: pypa/gh-action-pypi-publish@release/v1
69
+
70
+ github-release:
71
+ name: Sign the Python 🐍 distribution 📦 with Sigstore and upload to GitHub Release
72
+ needs: publish-to-pypi
73
+ runs-on: ubuntu-latest
74
+
75
+ permissions:
76
+ contents: write # Mandatory for GitHub Releases
77
+ id-token: write # Mandatory for sigstore
78
+
79
+ steps:
80
+ - name: Download all the dists
81
+ uses: actions/download-artifact@v4
82
+ with:
83
+ pattern: python-package-distributions-*
84
+ merge-multiple: true
85
+ path: dist/
86
+
87
+ - name: Sign the dists with Sigstore
88
+ uses: sigstore/gh-action-sigstore-python@v3.0.0
89
+ with:
90
+ inputs: >-
91
+ ./dist/*.tar.gz
92
+ ./dist/*.whl
93
+
94
+ - name: Create GitHub Release
95
+ env:
96
+ GITHUB_TOKEN: ${{ github.token }}
97
+ run: gh release create "$GITHUB_REF_NAME" --repo "$GITHUB_REPOSITORY" --notes ""
98
+
99
+ - name: Upload artifact signatures to GitHub Release
100
+ env:
101
+ GITHUB_TOKEN: ${{ github.token }}
102
+ run: gh release upload "$GITHUB_REF_NAME" dist/** --repo "$GITHUB_REPOSITORY"
103
+
104
+ # publish-to-testpypi:
105
+ # name: Publish Python 🐍 distribution 📦 to TestPyPI
106
+ # needs: build
107
+ # runs-on: ubuntu-latest
108
+
109
+ # environment:
110
+ # name: testpypi
111
+ # url: https://test.pypi.org/p/CMIP7_data_request_api
112
+
113
+ # permissions:
114
+ # id-token: write # Mandatory for trusted publishing
115
+
116
+ # steps:
117
+ # - name: Download all the dists
118
+ # uses: actions/download-artifact@v4
119
+ # with:
120
+ # pattern: python-package-distributions-*
121
+ # merge-multiple: true
122
+ # path: dist/
123
+
124
+ # - name: Publish distribution 📦 to TestPyPI
125
+ # uses: pypa/gh-action-pypi-publish@release/v1
126
+ # with:
127
+ # repository-url: https://test.pypi.org/legacy/
@@ -0,0 +1,47 @@
1
+ name: Update Content
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ - docs_II
8
+
9
+ jobs:
10
+ update-content:
11
+ runs-on: ubuntu-latest
12
+
13
+ steps:
14
+ - name: Checkout code
15
+ uses: actions/checkout@v4
16
+ with:
17
+ persist-credentials: false
18
+
19
+ - name: Set up Python
20
+ uses: actions/setup-python@v5
21
+ with:
22
+ python-version: '3.11'
23
+
24
+ - name: Install dependencies
25
+ run: |
26
+ pip install pdoc3 autopep8 pytest
27
+ pip install .
28
+
29
+ - name: Pep8ify
30
+ run: |
31
+ autopep8 data_request_api --aggressive --max-line-length=240 --experimental --recursive --in-place --pep8-passes 4000 --verbose
32
+
33
+ - name: Tech documentation generation
34
+ run: |
35
+ pdoc --html data_request_api/ --output-dir docs/ --force
36
+
37
+ - name: Commit All
38
+ uses: WCRP-CMIP/CMIP-LD/actions/commit-all@main
39
+ with:
40
+ message: "Automated Content Update"
41
+ env:
42
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
43
+
44
+ - name: Push Changes
45
+ run: |
46
+ git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/CMIP-Data-Request/CMIP7_DReq_Software.git
47
+ git push
@@ -0,0 +1,184 @@
1
+ data_request_api/data_request_api/version.py
2
+
3
+ # Byte-compiled / optimized / DLL files
4
+ __pycache__/
5
+ *.py[cod]
6
+ *$py.class
7
+
8
+ # C extensions
9
+ *.so
10
+
11
+ # Distribution / packaging
12
+ .Python
13
+ build/
14
+ develop-eggs/
15
+ dist/
16
+ downloads/
17
+ eggs/
18
+ .eggs/
19
+ lib/
20
+ lib64/
21
+ parts/
22
+ sdist/
23
+ var/
24
+ wheels/
25
+ share/python-wheels/
26
+ *.egg-info/
27
+ .installed.cfg
28
+ *.egg
29
+ MANIFEST
30
+
31
+ # PyInstaller
32
+ # Usually these files are written by a python script from a template
33
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
34
+ *.manifest
35
+ *.spec
36
+
37
+ # Installer logs
38
+ pip-log.txt
39
+ pip-delete-this-directory.txt
40
+
41
+ # Unit test / coverage reports
42
+ htmlcov/
43
+ .tox/
44
+ .nox/
45
+ .coverage
46
+ .coverage.*
47
+ .cache
48
+ nosetests.xml
49
+ coverage.xml
50
+ *.cover
51
+ *.py,cover
52
+ .hypothesis/
53
+ .pytest_cache/
54
+ cover/
55
+
56
+ # Translations
57
+ *.mo
58
+ *.pot
59
+
60
+ # Django stuff:
61
+ *.log
62
+ local_settings.py
63
+ db.sqlite3
64
+ db.sqlite3-journal
65
+
66
+ # Flask stuff:
67
+ instance/
68
+ .webassets-cache
69
+
70
+ # Scrapy stuff:
71
+ .scrapy
72
+
73
+ # Sphinx documentation
74
+ docs/_build/
75
+
76
+ # PyBuilder
77
+ .pybuilder/
78
+ target/
79
+
80
+ # Jupyter Notebook
81
+ .ipynb_checkpoints
82
+
83
+ # IPython
84
+ profile_default/
85
+ ipython_config.py
86
+
87
+ # pyenv
88
+ # For a library or package, you might want to ignore these files since the code is
89
+ # intended to run in multiple environments; otherwise, check them in:
90
+ # .python-version
91
+
92
+ # pipenv
93
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
94
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
95
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
96
+ # install all needed dependencies.
97
+ #Pipfile.lock
98
+
99
+ # poetry
100
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
101
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
102
+ # commonly ignored for libraries.
103
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
104
+ #poetry.lock
105
+
106
+ # pdm
107
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
108
+ #pdm.lock
109
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
110
+ # in version control.
111
+ # https://pdm.fming.dev/latest/usage/project/#working-with-version-control
112
+ .pdm.toml
113
+ .pdm-python
114
+ .pdm-build/
115
+
116
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
117
+ __pypackages__/
118
+
119
+ # Celery stuff
120
+ celerybeat-schedule
121
+ celerybeat.pid
122
+
123
+ # SageMath parsed files
124
+ *.sage.py
125
+
126
+ # Environments
127
+ .env
128
+ .venv
129
+ env/
130
+ venv/
131
+ ENV/
132
+ env.bak/
133
+ venv.bak/
134
+
135
+ # Spyder project settings
136
+ .spyderproject
137
+ .spyproject
138
+
139
+ # Rope project settings
140
+ .ropeproject
141
+
142
+ # mkdocs documentation
143
+ /site
144
+
145
+ # mypy
146
+ .mypy_cache/
147
+ .dmypy.json
148
+ dmypy.json
149
+
150
+ # Pyre type checker
151
+ .pyre/
152
+
153
+ # pytype static type analyzer
154
+ .pytype/
155
+
156
+ # Cython debug symbols
157
+ cython_debug/
158
+
159
+ # PyCharm
160
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
161
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
162
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
163
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
164
+ .idea/
165
+
166
+ # dir used by MS dreq_content.py to store locally cached dreq content
167
+ dreq_res
168
+
169
+ # assume json files contain dreq content, which we don't want stored in this repo
170
+ *.json
171
+ # except for these:
172
+ !all_var_info.json
173
+ !requested_v1.0beta_all_opportunities.json
174
+ !data_request_api/tests/test_datasets/*.json
175
+ !data_request_api/query/filtering.json
176
+ !data_request_api/content/transform.json
177
+ # assume spreadsheets are also content of some kind, which we don't want in this repo
178
+ *.xlsx
179
+ *.csv
180
+
181
+ cmip6-cmor-tables
182
+ attributes.yaml
183
+
184
+ *profiling*
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: CMIP7_data_request_api
3
- Version: 1.5
3
+ Version: 1.5.1
4
4
  Summary: A programmatic interface to the CMIP7 Data Request
5
5
  Author: James Anstey, Gaëlle Rigoudy, Martin Schupfner, Matthew Mizielinski, Daniel Ellis, Elisabeth Dingley, Marie-Pierre Moine
6
6
  License: MIT License
@@ -0,0 +1,13 @@
1
+ channels:
2
+ - conda-forge
3
+ - nodefaults
4
+ dependencies:
5
+ - bs4
6
+ - coverage
7
+ - openpyxl
8
+ - pooch
9
+ - pytest
10
+ - pyyaml
11
+ - requests
12
+ - pip:
13
+ - CMIP7-data-request-api
@@ -0,0 +1,3 @@
1
+ set -e
2
+
3
+ pip install --upgrade CMIP7-data-request-api
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: CMIP7_data_request_api
3
- Version: 1.5
3
+ Version: 1.5.1
4
4
  Summary: A programmatic interface to the CMIP7 Data Request
5
5
  Author: James Anstey, Gaëlle Rigoudy, Martin Schupfner, Matthew Mizielinski, Daniel Ellis, Elisabeth Dingley, Marie-Pierre Moine
6
6
  License: MIT License
@@ -0,0 +1,159 @@
1
+ .DS_Store
2
+ .gitignore
3
+ LICENSE
4
+ README.md
5
+ env.yml
6
+ launch_test_with_coverage.sh
7
+ pyproject.toml
8
+ requirements.txt
9
+ .github/.DS_Store
10
+ .github/workflows/pip_install.yml
11
+ .github/workflows/publish2pypi.yml
12
+ .github/workflows/updates.yml
13
+ binder/environment.yml
14
+ binder/postBuild
15
+ data_request_api/.DS_Store
16
+ data_request_api/CMIP7_data_request_api.egg-info/PKG-INFO
17
+ data_request_api/CMIP7_data_request_api.egg-info/SOURCES.txt
18
+ data_request_api/CMIP7_data_request_api.egg-info/dependency_links.txt
19
+ data_request_api/CMIP7_data_request_api.egg-info/entry_points.txt
20
+ data_request_api/CMIP7_data_request_api.egg-info/requires.txt
21
+ data_request_api/CMIP7_data_request_api.egg-info/scm_file_list.json
22
+ data_request_api/CMIP7_data_request_api.egg-info/top_level.txt
23
+ data_request_api/data_request_api/__init__.py
24
+ data_request_api/data_request_api/version.py
25
+ data_request_api/data_request_api/command_line/__init__.py
26
+ data_request_api/data_request_api/command_line/compare_variables.py
27
+ data_request_api/data_request_api/command_line/config.py
28
+ data_request_api/data_request_api/command_line/estimate_dreq_volume.py
29
+ data_request_api/data_request_api/command_line/export_dreq_lists_json.py
30
+ data_request_api/data_request_api/command_line/get_variables_metadata.py
31
+ data_request_api/data_request_api/content/README.MD
32
+ data_request_api/data_request_api/content/__init__.py
33
+ data_request_api/data_request_api/content/consolidate_export.py
34
+ data_request_api/data_request_api/content/dreq_content.py
35
+ data_request_api/data_request_api/content/dump_transformation.py
36
+ data_request_api/data_request_api/content/mapping_table.py
37
+ data_request_api/data_request_api/content/transform.json
38
+ data_request_api/data_request_api/content/utils.py
39
+ data_request_api/data_request_api/query/__init__.py
40
+ data_request_api/data_request_api/query/data_request.py
41
+ data_request_api/data_request_api/query/dreq_classes.py
42
+ data_request_api/data_request_api/query/dreq_query.py
43
+ data_request_api/data_request_api/query/filtering.json
44
+ data_request_api/data_request_api/query/vocabulary_server.py
45
+ data_request_api/data_request_api/tests/__init__.py
46
+ data_request_api/data_request_api/tests/test_cli.py
47
+ data_request_api/data_request_api/tests/test_config.py
48
+ data_request_api/data_request_api/tests/test_config_cli.py
49
+ data_request_api/data_request_api/tests/test_consolidation.py
50
+ data_request_api/data_request_api/tests/test_data_request.py
51
+ data_request_api/data_request_api/tests/test_decorator.py
52
+ data_request_api/data_request_api/tests/test_dreq_content.py
53
+ data_request_api/data_request_api/tests/test_dreq_query.py
54
+ data_request_api/data_request_api/tests/test_dump_transformation.py
55
+ data_request_api/data_request_api/tests/test_optimize.py
56
+ data_request_api/data_request_api/tests/test_vocabulary_server.py
57
+ data_request_api/data_request_api/tests/test_datasets/DR_raw_not-consolidate_content.json
58
+ data_request_api/data_request_api/tests/test_datasets/DR_release_not-consolidate_content.json
59
+ data_request_api/data_request_api/tests/test_datasets/DR_release_not-consolidate_content_dump.txt
60
+ data_request_api/data_request_api/tests/test_datasets/VS_raw_not-consolidate_content.json
61
+ data_request_api/data_request_api/tests/test_datasets/VS_release_not-consolidate_content.json
62
+ data_request_api/data_request_api/tests/test_datasets/dreq_raw_export.json
63
+ data_request_api/data_request_api/tests/test_datasets/dreq_release_export.json
64
+ data_request_api/data_request_api/tests/test_datasets/raw_not-consolidate_output_format.json
65
+ data_request_api/data_request_api/tests/test_datasets/raw_not-consolidate_output_transform.json
66
+ data_request_api/data_request_api/tests/test_datasets/release_not-consolidate_output_format.json
67
+ data_request_api/data_request_api/tests/test_datasets/release_not-consolidate_output_transform.json
68
+ data_request_api/data_request_api/utilities/__init__.py
69
+ data_request_api/data_request_api/utilities/config.py
70
+ data_request_api/data_request_api/utilities/decorators.py
71
+ data_request_api/data_request_api/utilities/logger.py
72
+ data_request_api/data_request_api/utilities/parser.py
73
+ data_request_api/data_request_api/utilities/tools.py
74
+ docs/data_request_api/index.html
75
+ docs/data_request_api/version.html
76
+ docs/data_request_api/command_line/compare_variables.html
77
+ docs/data_request_api/command_line/config.html
78
+ docs/data_request_api/command_line/estimate_dreq_volume.html
79
+ docs/data_request_api/command_line/export_dreq_lists_json.html
80
+ docs/data_request_api/command_line/get_variables_metadata.html
81
+ docs/data_request_api/command_line/index.html
82
+ docs/data_request_api/content/consolidate_export.html
83
+ docs/data_request_api/content/dreq_content.html
84
+ docs/data_request_api/content/dump_transformation.html
85
+ docs/data_request_api/content/index.html
86
+ docs/data_request_api/content/mapping_table.html
87
+ docs/data_request_api/content/utils.html
88
+ docs/data_request_api/query/data_request.html
89
+ docs/data_request_api/query/dreq_classes.html
90
+ docs/data_request_api/query/dreq_query.html
91
+ docs/data_request_api/query/index.html
92
+ docs/data_request_api/query/vocabulary_server.html
93
+ docs/data_request_api/stable/index.html
94
+ docs/data_request_api/stable/content/consolidate_export.html
95
+ docs/data_request_api/stable/content/dreq_content.html
96
+ docs/data_request_api/stable/content/dump_transformation.html
97
+ docs/data_request_api/stable/content/index.html
98
+ docs/data_request_api/stable/content/mapping_table.html
99
+ docs/data_request_api/stable/query/data_request.html
100
+ docs/data_request_api/stable/query/dreq_classes.html
101
+ docs/data_request_api/stable/query/dreq_query.html
102
+ docs/data_request_api/stable/query/index.html
103
+ docs/data_request_api/stable/query/vocabulary_server.html
104
+ docs/data_request_api/stable/utilities/config.html
105
+ docs/data_request_api/stable/utilities/decorators.html
106
+ docs/data_request_api/stable/utilities/index.html
107
+ docs/data_request_api/stable/utilities/logger.html
108
+ docs/data_request_api/stable/utilities/parser.html
109
+ docs/data_request_api/stable/utilities/tools.html
110
+ docs/data_request_api/tests/index.html
111
+ docs/data_request_api/tests/test_cli.html
112
+ docs/data_request_api/tests/test_config.html
113
+ docs/data_request_api/tests/test_config_cli.html
114
+ docs/data_request_api/tests/test_consolidation.html
115
+ docs/data_request_api/tests/test_data_request.html
116
+ docs/data_request_api/tests/test_decorator.html
117
+ docs/data_request_api/tests/test_dreq_content.html
118
+ docs/data_request_api/tests/test_dreq_query.html
119
+ docs/data_request_api/tests/test_dump_transformation.html
120
+ docs/data_request_api/tests/test_optimize.html
121
+ docs/data_request_api/tests/test_vocabulary_server.html
122
+ docs/data_request_api/utilities/config.html
123
+ docs/data_request_api/utilities/decorators.html
124
+ docs/data_request_api/utilities/index.html
125
+ docs/data_request_api/utilities/logger.html
126
+ docs/data_request_api/utilities/parser.html
127
+ docs/data_request_api/utilities/tools.html
128
+ docs/static/3boxes_schema.png
129
+ notebooks/HowTo-00_Install_the_DR_Software.ipynb
130
+ notebooks/HowTo-01_Import_and_Load_the_DR.ipynb
131
+ notebooks/HowTo-02_Discover_What_is_in_DR.ipynb
132
+ notebooks/HowTo-03a_Find_Experiments_and_Variables_for_given_Opportunities.ipynb
133
+ notebooks/HowTo-03b_Find_Experiments_and_Variables_for_given_Opportunities.ipynb
134
+ notebooks/HowTo-04a_View_Attributes_of_Experiments_and_Variables.ipynb
135
+ notebooks/HowTo-04b_View_Attributes_of_Variables.ipynb
136
+ notebooks/HowTo-05_Apply_Various_Search_Critria.ipynb
137
+ notebooks/README.md
138
+ notebooks/outdir/.gitkeep
139
+ scripts/check_consolidation.py
140
+ scripts/check_consolidation2.py
141
+ scripts/check_consolidation2_list-all-diffs.py
142
+ scripts/check_consolidation_and_transformation.py
143
+ scripts/check_expected_data.py
144
+ scripts/check_variables_attributes.py
145
+ scripts/database_transformation.py
146
+ scripts/tidy_config.json
147
+ scripts/tidy_test_base_content.py
148
+ scripts/validate_DR_terms.py
149
+ scripts/workflow_example.py
150
+ scripts/workflow_example_2.py
151
+ scripts/branding/README.md
152
+ scripts/branding/branded_variable_attributes.yaml
153
+ scripts/branding/compare_branded_variables.py
154
+ scripts/branding/generate_branded_names.py
155
+ scripts/examples/requested_v1.2.2.5_cmip6names.json
156
+ scripts/examples/requested_v1.2.2.5_cmip7names.json
157
+ scripts/examples/variables_v1.2.2.5_cmip6names.json
158
+ scripts/examples/variables_v1.2.2.5_cmip7names.json
159
+ scripts/sandbox/create_brand_name.py