pycontrails 0.39.3__tar.gz → 0.39.5__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 pycontrails might be problematic. Click here for more details.

Files changed (200) hide show
  1. {pycontrails-0.39.3 → pycontrails-0.39.5}/.github/pull_request_template.md +1 -2
  2. {pycontrails-0.39.3 → pycontrails-0.39.5}/.github/workflows/docs.yaml +13 -10
  3. pycontrails-0.39.5/.github/workflows/doctest.yaml +86 -0
  4. {pycontrails-0.39.3 → pycontrails-0.39.5}/.github/workflows/release.yaml +13 -4
  5. {pycontrails-0.39.3 → pycontrails-0.39.5}/.github/workflows/test.yaml +3 -2
  6. {pycontrails-0.39.3 → pycontrails-0.39.5}/.gitignore +1 -0
  7. {pycontrails-0.39.3 → pycontrails-0.39.5}/.pre-commit-config.yaml +0 -11
  8. pycontrails-0.39.5/.zenodo.json +23 -0
  9. {pycontrails-0.39.3 → pycontrails-0.39.5}/CHANGELOG.md +20 -0
  10. {pycontrails-0.39.3 → pycontrails-0.39.5}/Makefile +60 -29
  11. {pycontrails-0.39.3 → pycontrails-0.39.5}/PKG-INFO +2 -2
  12. {pycontrails-0.39.3 → pycontrails-0.39.5}/README.md +1 -1
  13. pycontrails-0.39.5/RELEASE.md +18 -0
  14. {pycontrails-0.39.3 → pycontrails-0.39.5}/docs/examples/ACCF.ipynb +3 -2
  15. {pycontrails-0.39.3 → pycontrails-0.39.5}/docs/examples/Cache.ipynb +42 -26
  16. {pycontrails-0.39.3 → pycontrails-0.39.5}/docs/examples/CoCiP.ipynb +44 -40
  17. {pycontrails-0.39.3 → pycontrails-0.39.5}/docs/examples/ECMWF.ipynb +111 -1300
  18. {pycontrails-0.39.3 → pycontrails-0.39.5}/docs/examples/Flight.ipynb +52 -51
  19. {pycontrails-0.39.3 → pycontrails-0.39.5}/docs/examples/ISSR.ipynb +29 -42
  20. {pycontrails-0.39.3 → pycontrails-0.39.5}/docs/examples/Meteorology.ipynb +80 -77
  21. {pycontrails-0.39.3 → pycontrails-0.39.5}/docs/examples/SAC.ipynb +20 -17
  22. pycontrails-0.39.5/docs/tutorials/CoCiP.ipynb +1526 -0
  23. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/_version.py +2 -2
  24. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/utils/synthetic_flight.py +3 -1
  25. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails.egg-info/PKG-INFO +2 -2
  26. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails.egg-info/SOURCES.txt +2 -1
  27. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails.egg-info/requires.txt +3 -2
  28. {pycontrails-0.39.3 → pycontrails-0.39.5}/pyproject.toml +4 -2
  29. pycontrails-0.39.3/RELEASE.md +0 -18
  30. pycontrails-0.39.3/docs/tutorials/CoCiP.ipynb +0 -1553
  31. pycontrails-0.39.3/tests/unit/test_bada.py +0 -0
  32. {pycontrails-0.39.3 → pycontrails-0.39.5}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  33. {pycontrails-0.39.3 → pycontrails-0.39.5}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  34. {pycontrails-0.39.3 → pycontrails-0.39.5}/.github/workflows/benchmark.yaml +0 -0
  35. {pycontrails-0.39.3 → pycontrails-0.39.5}/CONTRIBUTING.md +0 -0
  36. {pycontrails-0.39.3 → pycontrails-0.39.5}/LICENSE +0 -0
  37. {pycontrails-0.39.3 → pycontrails-0.39.5}/NOTICE +0 -0
  38. {pycontrails-0.39.3 → pycontrails-0.39.5}/docs/_static/css/style.css +0 -0
  39. {pycontrails-0.39.3 → pycontrails-0.39.5}/docs/_static/img/favicon.png +0 -0
  40. {pycontrails-0.39.3 → pycontrails-0.39.5}/docs/_static/pycontrails.bib +0 -0
  41. {pycontrails-0.39.3 → pycontrails-0.39.5}/docs/api.rst +0 -0
  42. {pycontrails-0.39.3 → pycontrails-0.39.5}/docs/changelog.rst +0 -0
  43. {pycontrails-0.39.3 → pycontrails-0.39.5}/docs/conf.py +0 -0
  44. {pycontrails-0.39.3 → pycontrails-0.39.5}/docs/contributing.rst +0 -0
  45. {pycontrails-0.39.3 → pycontrails-0.39.5}/docs/develop.rst +0 -0
  46. {pycontrails-0.39.3 → pycontrails-0.39.5}/docs/examples/flight.csv +0 -0
  47. {pycontrails-0.39.3 → pycontrails-0.39.5}/docs/examples.rst +0 -0
  48. {pycontrails-0.39.3 → pycontrails-0.39.5}/docs/index.rst +0 -0
  49. {pycontrails-0.39.3 → pycontrails-0.39.5}/docs/install.rst +0 -0
  50. {pycontrails-0.39.3 → pycontrails-0.39.5}/docs/literature.rst +0 -0
  51. {pycontrails-0.39.3 → pycontrails-0.39.5}/docs/tutorials/flight.csv +0 -0
  52. {pycontrails-0.39.3 → pycontrails-0.39.5}/docs/tutorials.rst +0 -0
  53. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/__init__.py +0 -0
  54. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/core/__init__.py +0 -0
  55. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/core/cache.py +0 -0
  56. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/core/coordinates.py +0 -0
  57. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/core/datalib.py +0 -0
  58. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/core/fleet.py +0 -0
  59. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/core/flight.py +0 -0
  60. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/core/fuel.py +0 -0
  61. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/core/interpolation.py +0 -0
  62. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/core/met.py +0 -0
  63. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/core/met_var.py +0 -0
  64. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/core/models.py +0 -0
  65. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/core/polygon.py +0 -0
  66. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/core/vector.py +0 -0
  67. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/datalib/__init__.py +0 -0
  68. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/datalib/ecmwf/__init__.py +0 -0
  69. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/datalib/ecmwf/common.py +0 -0
  70. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/datalib/ecmwf/era5.py +0 -0
  71. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/datalib/ecmwf/hres.py +0 -0
  72. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/datalib/ecmwf/ifs.py +0 -0
  73. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/datalib/ecmwf/variables.py +0 -0
  74. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/datalib/gfs/__init__.py +0 -0
  75. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/datalib/gfs/gfs.py +0 -0
  76. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/datalib/gfs/variables.py +0 -0
  77. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/ext/bada/__init__.py +0 -0
  78. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/ext/cirium/__init__.py +0 -0
  79. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/__init__.py +0 -0
  80. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/accf.py +0 -0
  81. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/aircraft_performance.py +0 -0
  82. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/cocip/__init__.py +0 -0
  83. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/cocip/cocip.py +0 -0
  84. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/cocip/cocip_params.py +0 -0
  85. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/cocip/cocip_uncertainty.py +0 -0
  86. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/cocip/contrail_properties.py +0 -0
  87. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/cocip/output/__init__.py +0 -0
  88. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/cocip/output/flight_summary.py +0 -0
  89. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/cocip/output/grid_cirrus.py +0 -0
  90. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/cocip/radiative_forcing.py +0 -0
  91. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/cocip/radiative_heating.py +0 -0
  92. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/cocip/wake_vortex.py +0 -0
  93. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/cocip/wind_shear.py +0 -0
  94. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/cocipgrid/__init__.py +0 -0
  95. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/cocipgrid/cocip_grid.py +0 -0
  96. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/cocipgrid/cocip_grid_params.py +0 -0
  97. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/cocipgrid/cocip_time_handling.py +0 -0
  98. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/emissions/__init__.py +0 -0
  99. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/emissions/black_carbon.py +0 -0
  100. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/emissions/emissions.py +0 -0
  101. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/emissions/ffm2.py +0 -0
  102. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/emissions/static/edb-gaseous-v28c-engines.csv +0 -0
  103. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/emissions/static/edb-nvpm-v28c-engines.csv +0 -0
  104. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/humidity_scaling.py +0 -0
  105. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/issr.py +0 -0
  106. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/pcc.py +0 -0
  107. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/pcr.py +0 -0
  108. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/sac.py +0 -0
  109. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/models/tau_cirrus.py +0 -0
  110. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/physics/__init__.py +0 -0
  111. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/physics/constants.py +0 -0
  112. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/physics/geo.py +0 -0
  113. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/physics/jet.py +0 -0
  114. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/physics/thermo.py +0 -0
  115. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/physics/units.py +0 -0
  116. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/py.typed +0 -0
  117. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/utils/__init__.py +0 -0
  118. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/utils/iteration.py +0 -0
  119. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/utils/json.py +0 -0
  120. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/utils/temp.py +0 -0
  121. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails/utils/types.py +0 -0
  122. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails.egg-info/dependency_links.txt +0 -0
  123. {pycontrails-0.39.3 → pycontrails-0.39.5}/pycontrails.egg-info/top_level.txt +0 -0
  124. {pycontrails-0.39.3 → pycontrails-0.39.5}/setup.cfg +0 -0
  125. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/__init__.py +0 -0
  126. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/_deprecated.py +0 -0
  127. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/benchmark/cocip/Makefile +0 -0
  128. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/benchmark/cocip/README.md +0 -0
  129. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/benchmark/cocip/benchmark.py +0 -0
  130. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/benchmark/cocip/compare.py +0 -0
  131. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/benchmark/cocip/data.md +0 -0
  132. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/benchmark/cocip/output.py +0 -0
  133. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/benchmark/cocip/review.ipynb +0 -0
  134. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/benchmark/cocip-fortran/README.md +0 -0
  135. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/benchmark/north-atlantic-study/.gcloudignore +0 -0
  136. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/benchmark/north-atlantic-study/README.md +0 -0
  137. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/benchmark/north-atlantic-study/support.py +0 -0
  138. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/benchmark/north-atlantic-study/validate.py +0 -0
  139. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/fixtures/cocip-met.py +0 -0
  140. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/fixtures/cocip-met2.py +0 -0
  141. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/fixtures/ecmwf-met.py +0 -0
  142. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/fixtures/gfs-met.py +0 -0
  143. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/__init__.py +0 -0
  144. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/conftest.py +0 -0
  145. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/static/NOAA_Solar_Calculations_day.csv +0 -0
  146. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/static/cocip-contrail-output.json +0 -0
  147. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/static/cocip-contrail-output2.json +0 -0
  148. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/static/cocip-flight-output.json +0 -0
  149. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/static/cocip-flight-output2.json +0 -0
  150. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/static/cocip-flight-statistics.json +0 -0
  151. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/static/cocip-output-contrail-edges.json +0 -0
  152. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/static/cocip-output-grid-cirrus-summary.json +0 -0
  153. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/static/flight-cocip2.csv +0 -0
  154. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/static/flight-meridian.csv +0 -0
  155. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/static/flight-metadata.json +0 -0
  156. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/static/flight.csv +0 -0
  157. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/static/met-accf-pl.nc +0 -0
  158. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/static/met-accf-sl.nc +0 -0
  159. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/static/met-ecmwf-pl.nc +0 -0
  160. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/static/met-ecmwf-sl.nc +0 -0
  161. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/static/met-era5-cocip1.nc +0 -0
  162. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/static/met-era5-cocip2.nc +0 -0
  163. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/static/met-gfs.nc +0 -0
  164. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/static/polygon-bug.nc +0 -0
  165. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/static/rad-era5-cocip1.nc +0 -0
  166. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/static/rad-era5-cocip2.nc +0 -0
  167. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/static/rad-gfs.nc +0 -0
  168. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_accf.py +0 -0
  169. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_cache.py +0 -0
  170. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_cocip.py +0 -0
  171. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_cocip_grid.py +0 -0
  172. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_cocip_grid_parity.py +0 -0
  173. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_cocip_radiative_forcing.py +0 -0
  174. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_cocip_uncertainty.py +0 -0
  175. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_coordinates.py +0 -0
  176. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_datalib.py +0 -0
  177. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_dtypes.py +0 -0
  178. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_ecmwf.py +0 -0
  179. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_emissions.py +0 -0
  180. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_fleet.py +0 -0
  181. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_flight.py +0 -0
  182. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_fuel.py +0 -0
  183. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_geo.py +0 -0
  184. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_gfs.py +0 -0
  185. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_grid_to_netcdf.py +0 -0
  186. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_humidity_scaling.py +0 -0
  187. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_init.py +0 -0
  188. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_interpolation.py +0 -0
  189. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_met.py +0 -0
  190. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_met_cache.py +0 -0
  191. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_models.py +0 -0
  192. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_pcc.py +0 -0
  193. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_polygons.py +0 -0
  194. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_sac_issr.py +0 -0
  195. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_tau_cirrus.py +0 -0
  196. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_thermo_sac.py +0 -0
  197. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_units.py +0 -0
  198. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_utils.py +0 -0
  199. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_vector.py +0 -0
  200. {pycontrails-0.39.3 → pycontrails-0.39.5}/tests/unit/test_zarr.py +0 -0
@@ -2,7 +2,7 @@ Closes #XX
2
2
 
3
3
  ## Changes
4
4
 
5
- > Description of changes in this PR.
5
+ > Description of changes in this PR.
6
6
  > Use `make changelog` for starter.
7
7
  > Should be copied and commit to `CHANGELOG.md`
8
8
 
@@ -17,7 +17,6 @@ Closes #XX
17
17
  ## Tests
18
18
 
19
19
  - [ ] QC test passes locally (`make test`)
20
- - [ ] Notebook test passes (`make nbtest`)
21
20
  - [ ] CI tests pass
22
21
 
23
22
  ## Reviewer
@@ -2,23 +2,21 @@
2
2
  # See https://github.com/actions/starter-workflows/blob/main/pages/static.yml for starter
3
3
  # https://github.com/actions/starter-workflows/tree/main/pages
4
4
  #
5
- # Currently hosted at https://contrailcirrus.github.io/pycontrails/
5
+ # Currently hosted at https://py.contrails.org
6
6
  name: Docs
7
7
 
8
- # only build docs on push to main
8
+ # only build docs on release tags
9
9
  on:
10
10
  push:
11
- branches:
12
- - main
11
+ tags:
12
+ - '*'
13
13
 
14
14
  # Allows run manually from the Actions tab
15
15
  workflow_dispatch:
16
16
 
17
- release:
18
- types:
19
- - published
20
- branches:
21
- - main
17
+ # Global variables
18
+ env:
19
+ PYCONTRAILS_CACHE_DIR: '${{ github.workspace }}/.cache/pycontrails'
22
20
 
23
21
  # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
24
22
  permissions:
@@ -48,7 +46,7 @@ jobs:
48
46
 
49
47
  - uses: actions/setup-python@v4
50
48
  with:
51
- python-version: '3.10'
49
+ python-version: '3.11'
52
50
  cache: 'pip'
53
51
  cache-dependency-path: pyproject.toml
54
52
 
@@ -70,6 +68,11 @@ jobs:
70
68
  chmod 600 ~/.ssh/id_rsa
71
69
  pip install "pycontrails-bada @ git+ssh://git@github.com/contrailcirrus/pycontrails-bada.git"
72
70
 
71
+ # TODO: Execute notebooks for docs
72
+ # - name: Execute notebooks
73
+ # run: |
74
+ # make nb-execute
75
+
73
76
  - name: Build docs
74
77
  run: |
75
78
  make docs-build
@@ -0,0 +1,86 @@
1
+ # Run notebook documentation tests from the ground up
2
+
3
+ name: Doc / Notebook tests
4
+
5
+ on:
6
+ # run on push to main
7
+ push:
8
+ branches:
9
+ - main
10
+
11
+ # run on all PRs
12
+ pull_request:
13
+
14
+ # Allows run manually from the Actions tab
15
+ workflow_dispatch:
16
+
17
+ # Run if a release is published
18
+ workflow_call:
19
+
20
+ # Global variables
21
+ env:
22
+ PYCONTRAILS_CACHE_DIR: '${{ github.workspace }}/.cache/pycontrails'
23
+
24
+ # set from https://github.com/google-github-actions/auth
25
+ permissions:
26
+ contents: read
27
+ pages: write
28
+
29
+ # This allows a subsequently queued workflow run to interrupt previous runs
30
+ concurrency:
31
+ group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
32
+ cancel-in-progress: true
33
+
34
+ jobs:
35
+ doc-test:
36
+ runs-on: ubuntu-latest
37
+
38
+ steps:
39
+ - uses: actions/checkout@v3
40
+ with:
41
+ fetch-depth: 0
42
+
43
+ - uses: actions/setup-python@v4
44
+ with:
45
+ python-version: '3.11'
46
+ cache: 'pip'
47
+ cache-dependency-path: pyproject.toml
48
+
49
+ - name: 'Authenticate to Google Cloud'
50
+ uses: 'google-github-actions/auth@v1'
51
+ with:
52
+ credentials_json: '${{ secrets.GCP_SERVICE_ACCOUNT }}'
53
+
54
+ - name: 'Set up Cloud SDK'
55
+ uses: 'google-github-actions/setup-gcloud@v1'
56
+
57
+ # put bada files in the default location
58
+ - name: BADA files
59
+ run: |
60
+ mkdir ../bada
61
+ gcloud storage cp -r gs://contrails-301217-bada/bada/bada3 ${{ github.workspace }}/../bada/
62
+ gcloud storage cp -r gs://contrails-301217-bada/bada/bada4 ${{ github.workspace }}/../bada/
63
+
64
+ # download ERA5 data from pre-cached data on GCP
65
+ - name: pycontrails cache (ERA5 data)
66
+ run: |
67
+ mkdir -p ${{ env.PYCONTRAILS_CACHE_DIR }}
68
+ gcloud storage cp -r gs://contrails-301217-unit-test/doc-test-cache/* ${{ env.PYCONTRAILS_CACHE_DIR }}/
69
+
70
+ - name: Install pycontrails (dev)
71
+ run: make dev-install
72
+
73
+ - name: Install pycontrails-bada extension
74
+ run: |
75
+ mkdir -p ~/.ssh/ && ssh-keyscan github.com > ~/.ssh/known_hosts
76
+ gcloud secrets versions access latest --secret="contrails-301217-github-ssh-key" > ~/.ssh/id_rsa
77
+ chmod 600 ~/.ssh/id_rsa
78
+ pip install "pycontrails-bada @ git+ssh://git@github.com/contrailcirrus/pycontrails-bada.git"
79
+
80
+ - name: Test notebooks
81
+ run: |
82
+ make nb-test
83
+
84
+ - name: Test docstrings
85
+ run: |
86
+ make doctest
@@ -11,12 +11,21 @@ on:
11
11
  - main
12
12
 
13
13
  jobs:
14
- run-unit-tests:
15
- uses: ./.github/workflows/test.yaml
16
- secrets: inherit
14
+ check-main-test-status:
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - name: OS Dependencies
18
+ run: sudo apt-get install -y curl jq
19
+
20
+ - uses: actions/checkout@v3
21
+ with:
22
+ fetch-depth: 0
23
+
24
+ - name: Check main test status
25
+ run: make main-test-status
17
26
 
18
27
  build-dist:
19
- needs: run-unit-tests
28
+ needs: check-main-test-status
20
29
  runs-on: ubuntu-latest
21
30
  steps:
22
31
  - uses: actions/checkout@v3
@@ -8,7 +8,8 @@ name: Unit tests
8
8
  on:
9
9
  # run on push to main
10
10
  push:
11
- branches: [ "main" ]
11
+ branches:
12
+ - main
12
13
 
13
14
  # run on all PRs
14
15
  pull_request:
@@ -109,6 +110,6 @@ jobs:
109
110
  make ruff
110
111
  make mypy
111
112
  make black-check
112
- make pytest
113
113
  make pydocstyle
114
+ make pytest
114
115
 
@@ -44,6 +44,7 @@ tests/benchmark/cocip/outputs
44
44
  *.log
45
45
 
46
46
  # docs
47
+ .doc-test-cache
47
48
  docs/_build
48
49
  docs/api/
49
50
 
@@ -28,14 +28,3 @@ repos:
28
28
  entry: black
29
29
  types: [file]
30
30
  files: \.(py|ipynb)$
31
- - id: nb-clean
32
- name: nb-clean
33
- language_version: python3
34
- language: python
35
- entry: nb-clean clean
36
- types: [file]
37
- files: \.(ipynb)$
38
- args:
39
- - --remove-empty-cells
40
- - --preserve-cell-outputs
41
- - --
@@ -0,0 +1,23 @@
1
+ {
2
+ "creators": [
3
+ {
4
+ "name": "Marc Shapiro",
5
+ "affiliation": "Breakthrough Energy"
6
+ },
7
+ {
8
+ "name": "Zeb Engberg",
9
+ "affiliation": "Breakthrough Energy"
10
+ },
11
+ {
12
+ "name": "Roger Teoh",
13
+ "affiliation": "Imperial College London"
14
+ },
15
+ {
16
+ "name": "Tom Dean",
17
+ "affiliation": "Breakthrough Energy"
18
+ }
19
+ ],
20
+ "license": "Apache-2.0",
21
+ "title": "pycontrails: Python library for modeling aviation climate impacts",
22
+ "description": "<p><strong>pycontrails</strong> is an open source project and Python package for modeling aircraft contrails and other<br>\naviation related climate impacts.</p>\n\n<p><code>pycontrails</code> defines common data structures and interfaces to efficiently build and run models of aircraft performance, emissions, and radiative forcing.</p>\n\n<p>See the <a href=\"https://github.com/contrailcirrus/pycontrails\">Github repository</a> and <a href=\"https://py.contrails.org\">documentation</a> for more information.</p>"
23
+ }
@@ -1,6 +1,26 @@
1
1
 
2
2
  # Changelog
3
3
 
4
+ ## v0.39.5
5
+
6
+ #### Fixes
7
+
8
+ - Fix `docs/examples/CoCiP.ipynb` example demonstrating aircraft performance integration
9
+ - Fix unit test caused by breaking change in [pyproj 3.5.0](https://github.com/pyproj4/pyproj/releases/tag/3.5.0)
10
+
11
+ #### Internals
12
+
13
+ - Add additional Zenodo metadata
14
+ - Execute notebook examples in [Docs Action](https://github.com/contrailcirrus/pycontrails/actions/workflows/docs.yaml)
15
+
16
+ ## v0.39.4
17
+
18
+ #### Internals
19
+
20
+ - Add additional Zenodo metadata
21
+ - Add [Doc / Notebook test Action](https://github.com/contrailcirrus/pycontrails/actions/workflows/doctest.yaml) to run notebook test (`make nb-test`) and doctests (`make doctest`) on pull requests.
22
+ - Update [Docs Action](https://github.com/contrailcirrus/pycontrails/actions/workflows/docs.yaml) to use python 3.11.
23
+
4
24
  ## v0.39.3
5
25
 
6
26
  #### Fixes
@@ -73,12 +73,6 @@ black:
73
73
 
74
74
  black-check:
75
75
  black pycontrails --check
76
-
77
- nbblack:
78
- black docs/examples/*.ipynb
79
-
80
- nbblack-check:
81
- black docs/examples/*.ipynb --check
82
76
 
83
77
  mypy:
84
78
  mypy pycontrails
@@ -99,29 +93,7 @@ pytest-cov:
99
93
  --ignore=tests/unit/test_zarr.py \
100
94
  tests/unit
101
95
 
102
- pytest-integration:
103
- pytest tests/integration
104
-
105
- # Common ERA5 data for nbtests and doctests
106
- ensure-era5-cached:
107
- python -c 'from pycontrails.datalib.ecmwf import ERA5; \
108
- time = "2022-03-01", "2022-03-01T23"; \
109
- lev = [300, 250, 200]; \
110
- met_vars = ["t", "q", "u", "v", "w", "ciwc", "z", "cc"]; \
111
- rad_vars = ["tsr", "ttr"]; \
112
- ERA5(time=time, variables=met_vars, pressure_levels=lev).download(); \
113
- ERA5(time=time, variables=rad_vars).download()'
114
-
115
- doctest: ensure-era5-cached
116
- pytest --doctest-modules pycontrails -vv
117
-
118
- nbtest: ensure-era5-cached nbblack-check
119
- pytest -W ignore --nbval-lax -p no:python --ignore-glob=*/ACCF.ipynb docs/examples
120
-
121
- nbclean:
122
- nb-clean clean -e -o docs/examples
123
-
124
- test: ruff mypy pytest doctest black-check nbblack-check pydocstyle
96
+ test: ruff mypy black-check nb-black-check pydocstyle pytest doctest nb-test
125
97
 
126
98
  profile:
127
99
  python -m cProfile -o $(script).prof $(script)
@@ -133,6 +105,12 @@ profile:
133
105
  changelog:
134
106
  git log $(shell git describe --tags --abbrev=0)..HEAD --pretty=format:'- (%h) %s'
135
107
 
108
+ main-test-status:
109
+ curl -s https://api.github.com/repos/contrailcirrus/pycontrails/actions/workflows/test.yaml/runs?branch=main \
110
+ | jq -e -r '.workflow_runs[0].status == "completed" and .workflow_runs[0].conclusion == "success"'
111
+
112
+ curl -s https://api.github.com/repos/contrailcirrus/pycontrails/actions/workflows/doctest.yaml/runs?branch=main \
113
+ | jq -e -r '.workflow_runs[0].status == "completed" and .workflow_runs[0].conclusion == "success"'
136
114
 
137
115
  # ----
138
116
  # Docs
@@ -141,9 +119,62 @@ changelog:
141
119
  DOCS_DIR = docs
142
120
  DOCS_BUILD_DIR = docs/_build
143
121
 
122
+ # Common ERA5 data for nb-tests and doctests
123
+ ensure-era5-cached:
124
+ python -c 'from pycontrails.datalib.ecmwf import ERA5; \
125
+ time = "2022-03-01", "2022-03-01T23"; \
126
+ lev = [300, 250, 200]; \
127
+ met_vars = ["t", "q", "u", "v", "w", "ciwc", "z", "cc"]; \
128
+ rad_vars = ["tsr", "ttr"]; \
129
+ ERA5(time=time, variables=met_vars, pressure_levels=lev).download(); \
130
+ ERA5(time=time, variables=rad_vars).download()'
131
+
132
+ cache-era5-gcp:
133
+ python -c 'from pycontrails.datalib.ecmwf import ERA5; \
134
+ from pycontrails import DiskCacheStore; \
135
+ cache = DiskCacheStore(cache_dir=".doc-test-cache"); \
136
+ time = "2022-03-01", "2022-03-01T23"; \
137
+ lev = [300, 250, 200]; \
138
+ met_vars = ["t", "q", "u", "v", "w", "ciwc", "z", "cc"]; \
139
+ rad_vars = ["tsr", "ttr"]; \
140
+ ERA5(time=time, variables=met_vars, pressure_levels=lev, cachestore=cache).download(); \
141
+ ERA5(time=time, variables=rad_vars, cachestore=cache).download()'
142
+
143
+ gcloud storage cp -r -n .doc-test-cache/* gs://contrails-301217-unit-test/doc-test-cache/
144
+
145
+ doctest: ensure-era5-cached
146
+ pytest --doctest-modules \
147
+ --ignore-glob=pycontrails/ext/* \
148
+ pycontrails -vv
149
+
144
150
  doc8:
145
151
  doc8 docs
146
152
 
153
+ nb-black:
154
+ black docs/examples/*.ipynb
155
+
156
+ nb-black-check:
157
+ black docs/examples/*.ipynb --check
158
+
159
+ nb-test: ensure-era5-cached nb-black-check nb-check-links
160
+ pytest --nbval-lax --ignore-glob=*/ACCF.ipynb docs/examples
161
+
162
+ # execute notebooks for docs output
163
+ # Note that nb-test will fail after running this locally
164
+ # TODO: this currently breaks the xarray notebook output styling somehow
165
+ nb-execute: nb-black-check
166
+ jupyter nbconvert --inplace \
167
+ --ClearMetadataPreprocessor.enabled=True \
168
+ --to notebook --execute docs/examples/[!ACCF]*.ipynb docs/tutorials/*.ipynb
169
+
170
+ # Check for broken links in notebooks
171
+ # https://github.com/jupyterlab/pytest-check-links
172
+ nb-check-links:
173
+ python -m pytest --check-links \
174
+ --check-links-ignore "https://doi.org/10.1021/acs.est.9b05608" \
175
+ --check-links-ignore "https://github.com/contrailcirrus/pycontrails-bada" \
176
+ docs/examples docs/tutorials
177
+
147
178
  docs-build: doc8
148
179
  sphinx-build -b html $(DOCS_DIR) $(DOCS_BUILD_DIR)/html
149
180
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pycontrails
3
- Version: 0.39.3
3
+ Version: 0.39.5
4
4
  Summary: Python library for modeling aviation climate impacts
5
5
  Author-email: Breakthrough Energy <py@contrails.org>
6
6
  License: Apache-2.0
@@ -44,7 +44,7 @@ License-File: NOTICE
44
44
  | | |
45
45
  |---------------|-------------------------------------------------------------------|
46
46
  | **Version** | [![PyPI version](https://img.shields.io/pypi/v/pycontrails.svg)](https://pypi.python.org/pypi/pycontrails) [![Supported python versions](https://img.shields.io/pypi/pyversions/pycontrails.svg)](https://pypi.python.org/pypi/pycontrails) |
47
- | **Citation** | TODO |
47
+ | **Citation** | [![DOI](https://zenodo.org/badge/617248930.svg)](https://zenodo.org/badge/latestdoi/617248930) |
48
48
  | **Tests** | [![Unit test](https://github.com/contrailcirrus/pycontrails/actions/workflows/test.yaml/badge.svg)](https://github.com/contrailcirrus/pycontrails/actions/workflows/test.yaml) [![Docs](https://github.com/contrailcirrus/pycontrails/actions/workflows/docs.yaml/badge.svg)](https://github.com/contrailcirrus/pycontrails/actions/workflows/docs.yaml) [![Release](https://github.com/contrailcirrus/pycontrails/actions/workflows/release.yaml/badge.svg)](https://github.com/contrailcirrus/pycontrails/actions/workflows/release.yaml)|
49
49
  | **License** | [![Apache License 2.0](https://img.shields.io/pypi/l/pycontrails.svg)](https://github.com/contrailcirrus/pycontrails/blob/main/LICENSE) |
50
50
  | **Community** | [![Github Discussions](https://img.shields.io/github/discussions/contrailcirrus/pycontrails)](https://github.com/contrailcirrus/pycontrails/discussions) [![Github Issues](https://img.shields.io/github/issues/contrailcirrus/pycontrails)](https://github.com/contrailcirrus/pycontrails/issues) [![Github PRs](https://img.shields.io/github/issues-pr/contrailcirrus/pycontrails)](https://github.com/contrailcirrus/pycontrails/pulls) |
@@ -5,7 +5,7 @@
5
5
  | | |
6
6
  |---------------|-------------------------------------------------------------------|
7
7
  | **Version** | [![PyPI version](https://img.shields.io/pypi/v/pycontrails.svg)](https://pypi.python.org/pypi/pycontrails) [![Supported python versions](https://img.shields.io/pypi/pyversions/pycontrails.svg)](https://pypi.python.org/pypi/pycontrails) |
8
- | **Citation** | TODO |
8
+ | **Citation** | [![DOI](https://zenodo.org/badge/617248930.svg)](https://zenodo.org/badge/latestdoi/617248930) |
9
9
  | **Tests** | [![Unit test](https://github.com/contrailcirrus/pycontrails/actions/workflows/test.yaml/badge.svg)](https://github.com/contrailcirrus/pycontrails/actions/workflows/test.yaml) [![Docs](https://github.com/contrailcirrus/pycontrails/actions/workflows/docs.yaml/badge.svg)](https://github.com/contrailcirrus/pycontrails/actions/workflows/docs.yaml) [![Release](https://github.com/contrailcirrus/pycontrails/actions/workflows/release.yaml/badge.svg)](https://github.com/contrailcirrus/pycontrails/actions/workflows/release.yaml)|
10
10
  | **License** | [![Apache License 2.0](https://img.shields.io/pypi/l/pycontrails.svg)](https://github.com/contrailcirrus/pycontrails/blob/main/LICENSE) |
11
11
  | **Community** | [![Github Discussions](https://img.shields.io/github/discussions/contrailcirrus/pycontrails)](https://github.com/contrailcirrus/pycontrails/discussions) [![Github Issues](https://img.shields.io/github/issues/contrailcirrus/pycontrails)](https://github.com/contrailcirrus/pycontrails/issues) [![Github PRs](https://img.shields.io/github/issues-pr/contrailcirrus/pycontrails)](https://github.com/contrailcirrus/pycontrails/pulls) |
@@ -0,0 +1,18 @@
1
+ # Release
2
+
3
+ > ``pycontrails`` is tagged and pushed to [pypi](https://pypi.org/project/pycontrails/) through GitHub Actions.
4
+
5
+ 1. Ensure all changes to be released are committed and pushed to `main`.
6
+ 1. Ensure [Unit tests](https://github.com/contrailcirrus/pycontrails/actions/workflows/test.yaml) and [Doc / Notebook tests](https://github.com/contrailcirrus/pycontrails/actions/workflows/doctest.yaml) have passed on `main`.
7
+ The [Release Action](https://github.com/contrailcirrus/pycontrails/actions/workflows/release.yaml) will fail if these actions have not completed successfully.
8
+ 1. Review and update the [CHANGELOG](CHANGELOG.md).
9
+ Ensure the most recent entry is for the tag about to be released.
10
+ 1. Create a [new release on Github](https://github.com/contrailcirrus/pycontrails/releases).
11
+ Double check that the release tag is consistent and consecutive with
12
+ the previous release tag following [PEP 440](https://peps.python.org/pep-0440/#version-scheme).
13
+ This often but not always agrees with [Semantic Versioning](https://semver.org/).
14
+ 1. Copy the CHANGELOG content for the release into the *Description*.
15
+ 1. Publish the new release.
16
+ This will create a tag on `main` and trigger the [Release Action](https://github.com/contrailcirrus/pycontrails/actions/workflows/release.yaml).
17
+ 1. Confirm that the release is successfully deployed to [PyPI](https://pypi.org/project/pycontrails/).
18
+ 1. Confirm that the documentation is successfully deployed to [py.contrails.org](https://py.contrails.org).
@@ -70,7 +70,7 @@
70
70
  "source": [
71
71
  "## Download meteorology data from ECMWF\n",
72
72
  "\n",
73
- "This demo uses [ERA5](https://www.ecmwf.int/en/forecasts/datasets/reanalysis-datasets/era5) via the [Copernicus Data Store (CDS)](https://cds.climate.copernicus.eu/) for met data.\n",
73
+ "This demo uses [ERA5](https://www.ecmwf.int/en/forecasts/dataset/ecmwf-reanalysis-v5) via the [Copernicus Data Store (CDS)](https://cds.climate.copernicus.eu/) for met data.\n",
74
74
  "This requires account with [Copernicus Data Portal](https://cds.climate.copernicus.eu/cdsapp#!/home) and local `~/.cdsapirc` file with credentials."
75
75
  ]
76
76
  },
@@ -812,7 +812,8 @@
812
812
  "mimetype": "text/x-python",
813
813
  "name": "python",
814
814
  "nbconvert_exporter": "python",
815
- "pygments_lexer": "ipython3"
815
+ "pygments_lexer": "ipython3",
816
+ "version": "3.10.8"
816
817
  }
817
818
  },
818
819
  "nbformat": 4,
@@ -13,7 +13,7 @@
13
13
  },
14
14
  {
15
15
  "cell_type": "code",
16
- "execution_count": null,
16
+ "execution_count": 1,
17
17
  "metadata": {},
18
18
  "outputs": [],
19
19
  "source": [
@@ -31,7 +31,7 @@
31
31
  },
32
32
  {
33
33
  "cell_type": "code",
34
- "execution_count": null,
34
+ "execution_count": 2,
35
35
  "metadata": {},
36
36
  "outputs": [],
37
37
  "source": [
@@ -40,7 +40,7 @@
40
40
  },
41
41
  {
42
42
  "cell_type": "code",
43
- "execution_count": null,
43
+ "execution_count": 3,
44
44
  "metadata": {},
45
45
  "outputs": [],
46
46
  "source": [
@@ -49,7 +49,7 @@
49
49
  },
50
50
  {
51
51
  "cell_type": "code",
52
- "execution_count": null,
52
+ "execution_count": 4,
53
53
  "metadata": {},
54
54
  "outputs": [
55
55
  {
@@ -58,7 +58,7 @@
58
58
  "False"
59
59
  ]
60
60
  },
61
- "execution_count": null,
61
+ "execution_count": 4,
62
62
  "metadata": {},
63
63
  "output_type": "execute_result"
64
64
  }
@@ -69,7 +69,7 @@
69
69
  },
70
70
  {
71
71
  "cell_type": "code",
72
- "execution_count": null,
72
+ "execution_count": 5,
73
73
  "metadata": {},
74
74
  "outputs": [],
75
75
  "source": [
@@ -78,16 +78,16 @@
78
78
  },
79
79
  {
80
80
  "cell_type": "code",
81
- "execution_count": null,
81
+ "execution_count": 6,
82
82
  "metadata": {},
83
83
  "outputs": [
84
84
  {
85
85
  "data": {
86
86
  "text/plain": [
87
- "1502.899586"
87
+ "21090.761006"
88
88
  ]
89
89
  },
90
- "execution_count": null,
90
+ "execution_count": 6,
91
91
  "metadata": {},
92
92
  "output_type": "execute_result"
93
93
  }
@@ -113,7 +113,7 @@
113
113
  },
114
114
  {
115
115
  "cell_type": "code",
116
- "execution_count": null,
116
+ "execution_count": 7,
117
117
  "metadata": {},
118
118
  "outputs": [],
119
119
  "source": [
@@ -122,7 +122,7 @@
122
122
  },
123
123
  {
124
124
  "cell_type": "code",
125
- "execution_count": null,
125
+ "execution_count": 8,
126
126
  "metadata": {},
127
127
  "outputs": [
128
128
  {
@@ -131,7 +131,7 @@
131
131
  "'contrails-301217-unit-test'"
132
132
  ]
133
133
  },
134
- "execution_count": null,
134
+ "execution_count": 8,
135
135
  "metadata": {},
136
136
  "output_type": "execute_result"
137
137
  }
@@ -142,7 +142,7 @@
142
142
  },
143
143
  {
144
144
  "cell_type": "code",
145
- "execution_count": null,
145
+ "execution_count": 9,
146
146
  "metadata": {},
147
147
  "outputs": [
148
148
  {
@@ -151,7 +151,7 @@
151
151
  "'test/objects/path.nc'"
152
152
  ]
153
153
  },
154
- "execution_count": null,
154
+ "execution_count": 9,
155
155
  "metadata": {},
156
156
  "output_type": "execute_result"
157
157
  }
@@ -162,7 +162,7 @@
162
162
  },
163
163
  {
164
164
  "cell_type": "code",
165
- "execution_count": null,
165
+ "execution_count": 10,
166
166
  "metadata": {},
167
167
  "outputs": [
168
168
  {
@@ -171,7 +171,7 @@
171
171
  "'gs://contrails-301217-unit-test/test/objects/met/ecmwf/some-path.nc'"
172
172
  ]
173
173
  },
174
- "execution_count": null,
174
+ "execution_count": 10,
175
175
  "metadata": {},
176
176
  "output_type": "execute_result"
177
177
  }
@@ -182,8 +182,13 @@
182
182
  },
183
183
  {
184
184
  "cell_type": "code",
185
- "execution_count": null,
186
- "metadata": {},
185
+ "execution_count": 11,
186
+ "metadata": {
187
+ "tags": [
188
+ "nbval-skip",
189
+ "skip-execution"
190
+ ]
191
+ },
187
192
  "outputs": [
188
193
  {
189
194
  "data": {
@@ -191,7 +196,7 @@
191
196
  "False"
192
197
  ]
193
198
  },
194
- "execution_count": null,
199
+ "execution_count": 11,
195
200
  "metadata": {},
196
201
  "output_type": "execute_result"
197
202
  }
@@ -211,7 +216,7 @@
211
216
  },
212
217
  {
213
218
  "cell_type": "code",
214
- "execution_count": null,
219
+ "execution_count": 12,
215
220
  "metadata": {},
216
221
  "outputs": [],
217
222
  "source": [
@@ -220,8 +225,13 @@
220
225
  },
221
226
  {
222
227
  "cell_type": "code",
223
- "execution_count": null,
224
- "metadata": {},
228
+ "execution_count": 13,
229
+ "metadata": {
230
+ "tags": [
231
+ "nbval-skip",
232
+ "skip-execution"
233
+ ]
234
+ },
225
235
  "outputs": [
226
236
  {
227
237
  "data": {
@@ -229,7 +239,7 @@
229
239
  "'cache.ipynb'"
230
240
  ]
231
241
  },
232
- "execution_count": null,
242
+ "execution_count": 13,
233
243
  "metadata": {},
234
244
  "output_type": "execute_result"
235
245
  }
@@ -240,8 +250,13 @@
240
250
  },
241
251
  {
242
252
  "cell_type": "code",
243
- "execution_count": null,
244
- "metadata": {},
253
+ "execution_count": 14,
254
+ "metadata": {
255
+ "tags": [
256
+ "nbval-skip",
257
+ "skip-execution"
258
+ ]
259
+ },
245
260
  "outputs": [],
246
261
  "source": [
247
262
  "gcp.get(\"cache.ipynb\")"
@@ -263,7 +278,8 @@
263
278
  "mimetype": "text/x-python",
264
279
  "name": "python",
265
280
  "nbconvert_exporter": "python",
266
- "pygments_lexer": "ipython3"
281
+ "pygments_lexer": "ipython3",
282
+ "version": "3.10.8"
267
283
  },
268
284
  "vscode": {
269
285
  "interpreter": {