esgvoc 0.3.0__tar.gz → 1.0.0__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.

Potentially problematic release.


This version of esgvoc might be problematic. Click here for more details.

Files changed (196) hide show
  1. esgvoc-1.0.0/.flake8 +3 -0
  2. {esgvoc-0.3.0 → esgvoc-1.0.0}/.github/workflows/docs.yml +9 -7
  3. {esgvoc-0.3.0 → esgvoc-1.0.0}/.github/workflows/pypi-publish.yml +10 -9
  4. esgvoc-1.0.0/.github/workflows/unit_tests.yml +34 -0
  5. {esgvoc-0.3.0 → esgvoc-1.0.0}/.gitignore +2 -0
  6. esgvoc-1.0.0/.pre-commit-config.yaml +36 -0
  7. {esgvoc-0.3.0 → esgvoc-1.0.0}/PKG-INFO +7 -20
  8. {esgvoc-0.3.0 → esgvoc-1.0.0}/README.md +5 -18
  9. esgvoc-1.0.0/docs/source/_static/Jup_one_term.png +0 -0
  10. esgvoc-1.0.0/docs/source/_static/Jup_one_term_from_one_CV.png +0 -0
  11. esgvoc-1.0.0/docs/source/api_documentation/jsg.md +7 -0
  12. esgvoc-1.0.0/docs/source/api_documentation/miscellaneous.md +18 -0
  13. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/api_documentation/projects.md +0 -13
  14. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/guides/basics_esgvoc.ipynb +229 -32
  15. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/how_to/get.rst +5 -5
  16. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/index.md +3 -1
  17. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/user/api.md +20 -7
  18. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/user/introduction.md +3 -3
  19. {esgvoc-0.3.0 → esgvoc-1.0.0}/pyproject.toml +38 -20
  20. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/__init__.py +1 -1
  21. esgvoc-1.0.0/src/esgvoc/api/__init__.py +97 -0
  22. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/api/data_descriptors/__init__.py +50 -28
  23. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/api/data_descriptors/activity.py +3 -3
  24. esgvoc-1.0.0/src/esgvoc/api/data_descriptors/area_label.py +21 -0
  25. esgvoc-1.0.0/src/esgvoc/api/data_descriptors/branded_suffix.py +25 -0
  26. esgvoc-1.0.0/src/esgvoc/api/data_descriptors/branded_variable.py +17 -0
  27. esgvoc-1.0.0/src/esgvoc/api/data_descriptors/consortium.py +27 -0
  28. esgvoc-0.3.0/src/esgvoc/api/data_descriptors/vertical_label.py → esgvoc-1.0.0/src/esgvoc/api/data_descriptors/contact.py +1 -1
  29. esgvoc-0.3.0/src/esgvoc/api/data_descriptors/area_label.py → esgvoc-1.0.0/src/esgvoc/api/data_descriptors/conventions.py +2 -2
  30. esgvoc-1.0.0/src/esgvoc/api/data_descriptors/creation_date.py +5 -0
  31. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/api/data_descriptors/data_descriptor.py +14 -9
  32. esgvoc-1.0.0/src/esgvoc/api/data_descriptors/data_specs_version.py +5 -0
  33. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/api/data_descriptors/date.py +1 -1
  34. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/api/data_descriptors/directory_date.py +1 -1
  35. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/api/data_descriptors/experiment.py +13 -11
  36. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/api/data_descriptors/forcing_index.py +1 -1
  37. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/api/data_descriptors/frequency.py +3 -3
  38. esgvoc-1.0.0/src/esgvoc/api/data_descriptors/further_info_url.py +5 -0
  39. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/api/data_descriptors/grid_label.py +2 -2
  40. esgvoc-1.0.0/src/esgvoc/api/data_descriptors/horizontal_label.py +20 -0
  41. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/api/data_descriptors/initialisation_index.py +1 -1
  42. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/api/data_descriptors/institution.py +8 -5
  43. esgvoc-1.0.0/src/esgvoc/api/data_descriptors/known_branded_variable.py +23 -0
  44. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/api/data_descriptors/license.py +3 -3
  45. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/api/data_descriptors/mip_era.py +1 -1
  46. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/api/data_descriptors/model_component.py +1 -1
  47. esgvoc-0.3.0/src/esgvoc/api/data_descriptors/temporal_label.py → esgvoc-1.0.0/src/esgvoc/api/data_descriptors/obs_type.py +1 -2
  48. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/api/data_descriptors/organisation.py +1 -1
  49. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/api/data_descriptors/physic_index.py +1 -1
  50. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/api/data_descriptors/product.py +2 -2
  51. esgvoc-1.0.0/src/esgvoc/api/data_descriptors/publication_status.py +5 -0
  52. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/api/data_descriptors/realisation_index.py +1 -1
  53. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/api/data_descriptors/realm.py +1 -1
  54. esgvoc-1.0.0/src/esgvoc/api/data_descriptors/region.py +5 -0
  55. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/api/data_descriptors/resolution.py +3 -3
  56. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/api/data_descriptors/source.py +9 -5
  57. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/api/data_descriptors/source_type.py +1 -1
  58. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/api/data_descriptors/table.py +3 -2
  59. esgvoc-1.0.0/src/esgvoc/api/data_descriptors/temporal_label.py +20 -0
  60. esgvoc-1.0.0/src/esgvoc/api/data_descriptors/time_range.py +5 -0
  61. esgvoc-1.0.0/src/esgvoc/api/data_descriptors/title.py +5 -0
  62. esgvoc-1.0.0/src/esgvoc/api/data_descriptors/tracking_id.py +5 -0
  63. esgvoc-1.0.0/src/esgvoc/api/data_descriptors/variable.py +32 -0
  64. esgvoc-1.0.0/src/esgvoc/api/data_descriptors/variant_label.py +5 -0
  65. esgvoc-1.0.0/src/esgvoc/api/data_descriptors/vertical_label.py +19 -0
  66. esgvoc-1.0.0/src/esgvoc/api/project_specs.py +198 -0
  67. esgvoc-1.0.0/src/esgvoc/api/projects.py +1128 -0
  68. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/api/report.py +12 -8
  69. esgvoc-1.0.0/src/esgvoc/api/search.py +182 -0
  70. esgvoc-1.0.0/src/esgvoc/api/universe.py +438 -0
  71. esgvoc-1.0.0/src/esgvoc/apps/drs/constants.py +2 -0
  72. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/apps/drs/generator.py +51 -69
  73. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/apps/drs/report.py +60 -15
  74. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/apps/drs/validator.py +60 -71
  75. esgvoc-1.0.0/src/esgvoc/apps/jsg/cmip6_template.json +74 -0
  76. esgvoc-1.0.0/src/esgvoc/apps/jsg/cmip6plus_template.json +74 -0
  77. esgvoc-1.0.0/src/esgvoc/apps/jsg/json_schema_generator.py +185 -0
  78. esgvoc-1.0.0/src/esgvoc/apps/py.typed +0 -0
  79. esgvoc-1.0.0/src/esgvoc/cli/config.py +500 -0
  80. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/cli/drs.py +3 -2
  81. esgvoc-1.0.0/src/esgvoc/cli/find.py +138 -0
  82. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/cli/get.py +46 -38
  83. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/cli/main.py +10 -3
  84. esgvoc-1.0.0/src/esgvoc/cli/status.py +47 -0
  85. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/cli/valid.py +10 -15
  86. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/core/constants.py +1 -1
  87. esgvoc-1.0.0/src/esgvoc/core/convert.py +0 -0
  88. esgvoc-1.0.0/src/esgvoc/core/db/__init__.py +3 -0
  89. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/core/db/connection.py +5 -3
  90. esgvoc-1.0.0/src/esgvoc/core/db/models/project.py +102 -0
  91. esgvoc-1.0.0/src/esgvoc/core/db/models/universe.py +98 -0
  92. esgvoc-1.0.0/src/esgvoc/core/db/project_ingestion.py +169 -0
  93. esgvoc-1.0.0/src/esgvoc/core/db/universe_ingestion.py +152 -0
  94. esgvoc-1.0.0/src/esgvoc/core/exceptions.py +33 -0
  95. esgvoc-1.0.0/src/esgvoc/core/logging_handler.py +26 -0
  96. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/core/repo_fetcher.py +61 -59
  97. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/core/service/data_merger.py +47 -34
  98. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/core/service/state.py +107 -83
  99. {esgvoc-0.3.0 → esgvoc-1.0.0}/tests/Dockerfile +2 -2
  100. esgvoc-1.0.0/tests/__init__.py +0 -0
  101. esgvoc-1.0.0/tests/api_inputs.py +1034 -0
  102. esgvoc-1.0.0/tests/conftest.py +37 -0
  103. esgvoc-1.0.0/tests/test_api_project.py +209 -0
  104. esgvoc-1.0.0/tests/test_api_universe.py +88 -0
  105. esgvoc-1.0.0/tests/test_cli_drs.py +75 -0
  106. esgvoc-1.0.0/tests/test_config.py +98 -0
  107. {esgvoc-0.3.0 → esgvoc-1.0.0}/tests/test_data_handler.py +1 -1
  108. esgvoc-1.0.0/tests/test_drs_generator.py +239 -0
  109. esgvoc-1.0.0/tests/test_drs_validator.py +111 -0
  110. esgvoc-1.0.0/tests/test_js_generator.py +92 -0
  111. esgvoc-0.3.0/.pre-commit-config.yaml +0 -24
  112. esgvoc-0.3.0/docs/source/_static/Jup_one_term.png +0 -0
  113. esgvoc-0.3.0/docs/source/_static/Jup_one_term_from_one_CV.png +0 -0
  114. esgvoc-0.3.0/src/esgvoc/api/__init__.py +0 -62
  115. esgvoc-0.3.0/src/esgvoc/api/_utils.py +0 -53
  116. esgvoc-0.3.0/src/esgvoc/api/data_descriptors/branded_suffix.py +0 -5
  117. esgvoc-0.3.0/src/esgvoc/api/data_descriptors/branded_variable.py +0 -5
  118. esgvoc-0.3.0/src/esgvoc/api/data_descriptors/consortium.py +0 -26
  119. esgvoc-0.3.0/src/esgvoc/api/data_descriptors/horizontal_label.py +0 -6
  120. esgvoc-0.3.0/src/esgvoc/api/data_descriptors/time_range.py +0 -4
  121. esgvoc-0.3.0/src/esgvoc/api/data_descriptors/variable.py +0 -19
  122. esgvoc-0.3.0/src/esgvoc/api/data_descriptors/variant_label.py +0 -5
  123. esgvoc-0.3.0/src/esgvoc/api/project_specs.py +0 -82
  124. esgvoc-0.3.0/src/esgvoc/api/projects.py +0 -900
  125. esgvoc-0.3.0/src/esgvoc/api/search.py +0 -112
  126. esgvoc-0.3.0/src/esgvoc/api/universe.py +0 -227
  127. esgvoc-0.3.0/src/esgvoc/apps/drs/constants.py +0 -2
  128. esgvoc-0.3.0/src/esgvoc/cli/status.py +0 -38
  129. esgvoc-0.3.0/src/esgvoc/core/db/__init__.py +0 -5
  130. esgvoc-0.3.0/src/esgvoc/core/db/models/project.py +0 -60
  131. esgvoc-0.3.0/src/esgvoc/core/db/models/universe.py +0 -59
  132. esgvoc-0.3.0/src/esgvoc/core/db/project_ingestion.py +0 -155
  133. esgvoc-0.3.0/src/esgvoc/core/db/universe_ingestion.py +0 -121
  134. esgvoc-0.3.0/src/esgvoc/core/logging.conf +0 -21
  135. esgvoc-0.3.0/src/esgvoc/core/logging_handler.py +0 -4
  136. esgvoc-0.3.0/tests/test_api_project.py +0 -178
  137. esgvoc-0.3.0/tests/test_api_universe.py +0 -68
  138. esgvoc-0.3.0/tests/test_cli_drs.py +0 -32
  139. esgvoc-0.3.0/tests/test_config.py +0 -54
  140. esgvoc-0.3.0/tests/test_drs_generator.py +0 -294
  141. esgvoc-0.3.0/tests/test_drs_validator.py +0 -624
  142. {esgvoc-0.3.0 → esgvoc-1.0.0}/LICENSE.txt +0 -0
  143. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/Makefile +0 -0
  144. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/build.sh +0 -0
  145. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/_static/API_Valid_Term.png +0 -0
  146. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/_static/API_Valid_all_project.png +0 -0
  147. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/_static/API_Valid_collection.png +0 -0
  148. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/_static/API_Valid_project.png +0 -0
  149. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/_static/API_drsgen_frombag.png +0 -0
  150. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/_static/API_drsgen_map.png +0 -0
  151. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/_static/API_drsvalid_one.png +0 -0
  152. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/_static/CLI_Valid_all_project.png +0 -0
  153. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/_static/CLI_Valid_collection.png +0 -0
  154. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/_static/CLI_Valid_project.png +0 -0
  155. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/_static/CLI_Valid_term.png +0 -0
  156. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/_static/CLI_drsgen_frombag.png +0 -0
  157. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/_static/CLI_drsvalid_one.png +0 -0
  158. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/_static/Jup_terms_from_one_collection.png +0 -0
  159. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/_static/Jup_terms_from_one_dd.png +0 -0
  160. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/_static/all_collection.png +0 -0
  161. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/_static/all_term_from_one_collection.png +0 -0
  162. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/_static/install.png +0 -0
  163. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/_static/one_term.png +0 -0
  164. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/_static/one_term_from_one_cv.png +0 -0
  165. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/_static/status_after_install.png +0 -0
  166. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/_static/status_before_install.png +0 -0
  167. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/api_documentation/data_descriptors.md +0 -0
  168. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/api_documentation/drs.md +0 -0
  169. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/api_documentation/project_specs.md +0 -0
  170. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/api_documentation/universe.md +0 -0
  171. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/conf.py +0 -0
  172. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/guides/basics_drs.ipynb +0 -0
  173. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/guides/status_install.png +0 -0
  174. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/how_to/generate_drs.rst +0 -0
  175. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/how_to/valid.rst +0 -0
  176. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/how_to/validate_drs.rst +0 -0
  177. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/user/cached_database.md +0 -0
  178. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/user/cli.md +0 -0
  179. {esgvoc-0.3.0 → esgvoc-1.0.0}/docs/source/user/terms.md +0 -0
  180. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/api/data_descriptors/sub_experiment.py +0 -0
  181. /esgvoc-0.3.0/src/esgvoc/apps/drs/__init__.py → /esgvoc-1.0.0/src/esgvoc/api/py.typed +0 -0
  182. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/apps/__init__.py +0 -0
  183. /esgvoc-0.3.0/src/esgvoc/core/convert.py → /esgvoc-1.0.0/src/esgvoc/apps/drs/__init__.py +0 -0
  184. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/cli/install.py +0 -0
  185. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/core/data_handler.py +0 -0
  186. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/core/db/models/mixins.py +0 -0
  187. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/core/service/__init__.py +0 -0
  188. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/core/service/configuration/config_manager.py +0 -0
  189. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/core/service/configuration/setting.py +0 -0
  190. {esgvoc-0.3.0 → esgvoc-1.0.0}/src/esgvoc/core/service/esg_voc.py +0 -0
  191. {esgvoc-0.3.0 → esgvoc-1.0.0}/tests/cli_input_drsgen.txt +0 -0
  192. {esgvoc-0.3.0 → esgvoc-1.0.0}/tests/cli_input_drsvalid.txt +0 -0
  193. {esgvoc-0.3.0 → esgvoc-1.0.0}/tests/integration/test_scenario_basic.py +0 -0
  194. {esgvoc-0.3.0 → esgvoc-1.0.0}/tests/test_cli_config.py +0 -0
  195. {esgvoc-0.3.0 → esgvoc-1.0.0}/tests/test_data_merger.py +0 -0
  196. {esgvoc-0.3.0 → esgvoc-1.0.0}/tests/test_repo_fetcher.py +0 -0
esgvoc-1.0.0/.flake8 ADDED
@@ -0,0 +1,3 @@
1
+ [flake8]
2
+ exclude = tests/*.py
3
+ max-line-length = 120
@@ -11,22 +11,24 @@ on:
11
11
 
12
12
  jobs:
13
13
  documentation:
14
+ name: Publish documentation
14
15
  runs-on: ubuntu-latest
15
16
  steps:
16
- - uses: actions/checkout@v4
17
+ - name: Checkout
18
+ uses: actions/checkout@v4
17
19
 
18
- - name: Install the latest version of rye
19
- uses: eifinger/setup-rye@v4
20
+ - name: Install UV
21
+ uses: astral-sh/setup-uv@v5
20
22
  with:
21
23
  enable-cache: true
22
24
 
23
- - name: Sync dependencies
24
- run: rye sync
25
+ - name: Sync
26
+ run: uv sync
25
27
 
26
- - name: build
28
+ - name: Build
27
29
  run: docs/build.sh
28
30
 
29
- - name: deploy
31
+ - name: Deploy
30
32
  uses: peaceiris/actions-gh-pages@v3
31
33
  if: ${{ github.ref == 'refs/heads/documentation' }}
32
34
  with:
@@ -8,7 +8,7 @@ on:
8
8
 
9
9
  jobs:
10
10
  pypi-publish:
11
- name: upload release to PyPI
11
+ name: Publish new release
12
12
  runs-on: ubuntu-latest
13
13
  permissions:
14
14
  # This permission is needed for private repositories.
@@ -16,18 +16,19 @@ jobs:
16
16
  # IMPORTANT: this permission is mandatory for trusted publishing
17
17
  id-token: write
18
18
  steps:
19
- - uses: actions/checkout@v3
19
+ - name: Checkout
20
+ uses: actions/checkout@v4
20
21
 
21
- - name: Install the latest version of rye
22
- uses: eifinger/setup-rye@v4
22
+ - name: Install UV
23
+ uses: astral-sh/setup-uv@v5
23
24
  with:
24
25
  enable-cache: true
25
26
 
26
- - name: Sync dependencies
27
- run: rye sync
27
+ - name: Sync
28
+ run: uv sync
28
29
 
29
- - name: Build package
30
- run: rye build
30
+ - name: Build
31
+ run: uv build
31
32
 
32
- - name: Publish package distributions to PyPI
33
+ - name: Upload
33
34
  uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,34 @@
1
+ name: Unit tests
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - integration
7
+ paths:
8
+ - src/**
9
+ - tests/**
10
+ pull_request:
11
+ branches:
12
+ - main
13
+ paths:
14
+ - src/**
15
+ - tests/**
16
+
17
+ jobs:
18
+ unit_tests:
19
+ name: Run unit tests
20
+ runs-on: ubuntu-latest
21
+ steps:
22
+ - name: Checkout
23
+ uses: actions/checkout@v4
24
+
25
+ - name: Install UV
26
+ uses: astral-sh/setup-uv@v5
27
+ with:
28
+ enable-cache: true
29
+
30
+ - name: Sync
31
+ run: uv sync
32
+
33
+ - name: Test
34
+ run: uv run pytest tests
@@ -27,3 +27,5 @@ tmp*
27
27
  *.py[oc]
28
28
  sb.py
29
29
  CHANGELOG.md
30
+ .coverage
31
+ codemcp.toml
@@ -0,0 +1,36 @@
1
+ default_language_version:
2
+ python: python3
3
+
4
+ repos:
5
+ - repo: https://github.com/pre-commit/pre-commit-hooks
6
+ rev: v5.0.0
7
+ hooks:
8
+ - id: trailing-whitespace
9
+ exclude: '(setup.cfg|.svg|.md)'
10
+ - id: end-of-file-fixer
11
+ - id: check-toml
12
+ - id: debug-statements
13
+ - repo: https://github.com/astral-sh/ruff-pre-commit
14
+ # Ruff version.
15
+ rev: v0.11.0
16
+ hooks:
17
+ # Run the linter.
18
+ - id: ruff
19
+ language_version: python3
20
+ args: [ --exit-non-zero-on-fix ]
21
+ # Sort imports.
22
+ - id: ruff
23
+ name: ruff-sort-imports
24
+ args: [--select, I, --fix]
25
+ - repo: local
26
+ hooks:
27
+ - id: wily
28
+ name: wily
29
+ entry: wily diff
30
+ verbose: true
31
+ language: python
32
+ additional_dependencies: [wily]
33
+ - repo: https://github.com/PyCQA/flake8
34
+ rev: 7.1.2
35
+ hooks:
36
+ - id: flake8
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: esgvoc
3
- Version: 0.3.0
3
+ Version: 1.0.0
4
4
  Summary: python library and CLI to interact with WCRP CVs
5
5
  Project-URL: Repository, https://github.com/ESGF/esgf-vocab
6
6
  Author-email: Sébastien Gardoll <sebastien@gardoll.fr>, Guillaume Levavasseur <guillaume.levavasseur@ipsl.fr>, Laurent Troussellier <laurent.troussellier@ipsl.fr>
7
7
  License: CECILL-2.1
8
- Requires-Python: <3.13,>=3.12
8
+ Requires-Python: >=3.10
9
9
  Requires-Dist: idna>=3.10
10
10
  Requires-Dist: platformdirs>=4.3.6
11
11
  Requires-Dist: pydantic>=2.9.2
@@ -58,32 +58,19 @@ esgvoc install
58
58
 
59
59
  ## How to contribute
60
60
 
61
- ### Install Python dev environment
62
-
63
61
  * Pip
64
62
 
65
63
  ```bash
66
64
  pip install -e .
67
- ```
68
-
69
- * Rye
70
-
71
- ```bash
72
- rye sync
73
- ```
74
-
75
- ### Linters & code formatters
76
-
77
- * Pip
78
-
79
- ```bash
65
+ wily setup
80
66
  pip install pre-commit
81
67
  pre-commit install
82
68
  ```
83
69
 
84
- * Rye
70
+ * UV
85
71
 
86
72
  ```bash
87
- rye install
88
- rye run pre-commit install
73
+ uv sync
74
+ uv run wily setup
75
+ uv run pre-commit install
89
76
  ```
@@ -39,32 +39,19 @@ esgvoc install
39
39
 
40
40
  ## How to contribute
41
41
 
42
- ### Install Python dev environment
43
-
44
42
  * Pip
45
43
 
46
44
  ```bash
47
45
  pip install -e .
48
- ```
49
-
50
- * Rye
51
-
52
- ```bash
53
- rye sync
54
- ```
55
-
56
- ### Linters & code formatters
57
-
58
- * Pip
59
-
60
- ```bash
46
+ wily setup
61
47
  pip install pre-commit
62
48
  pre-commit install
63
49
  ```
64
50
 
65
- * Rye
51
+ * UV
66
52
 
67
53
  ```bash
68
- rye install
69
- rye run pre-commit install
54
+ uv sync
55
+ uv run wily setup
56
+ uv run pre-commit install
70
57
  ```
@@ -0,0 +1,7 @@
1
+ # Json schema generator
2
+
3
+ ```{eval-rst}
4
+ .. automodule:: esgvoc.apps.jsg.json_schema_generator
5
+ :members:
6
+ :member-order: groupwise
7
+ ```
@@ -0,0 +1,18 @@
1
+ # Miscellaneous
2
+
3
+ ```{eval-rst}
4
+ .. automodule:: esgvoc.api.search
5
+ :members: Item
6
+ :imported-members:
7
+ :member-order: groupwise
8
+ .. autoclass:: esgvoc.api.search.ItemKind
9
+ :members:
10
+ :member-order: groupwise
11
+ .. autoclass:: esgvoc.core.db.models.mixins.TermKind
12
+ :members:
13
+ :member-order: groupwise
14
+ .. automodule:: esgvoc.core.exceptions
15
+ :members:
16
+ :imported-members:
17
+ :member-order: groupwise
18
+ ```
@@ -21,16 +21,3 @@
21
21
  :inherited-members: BaseModel
22
22
  :member-order: groupwise
23
23
  ```
24
-
25
- ## Search settings
26
-
27
- ```{eval-rst}
28
- .. automodule:: esgvoc.api.search
29
- :members:
30
- :member-order: groupwise
31
- ```
32
- ```{eval-rst}
33
- .. autoclass:: esgvoc.core.db.models.mixins.TermKind
34
- :members:
35
- :member-order: groupwise
36
- ```