vortex-nwp 2.0.0b1__tar.gz → 2.0.0b2__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 (226) hide show
  1. vortex_nwp-2.0.0b2/PKG-INFO +66 -0
  2. vortex_nwp-2.0.0b2/README.md +42 -0
  3. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/pyproject.toml +9 -2
  4. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/__init__.py +59 -45
  5. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/algo/__init__.py +3 -2
  6. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/algo/components.py +940 -614
  7. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/algo/mpitools.py +802 -497
  8. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/algo/serversynctools.py +34 -33
  9. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/config.py +19 -22
  10. vortex_nwp-2.0.0b2/src/vortex/data/__init__.py +19 -0
  11. vortex_nwp-2.0.0b2/src/vortex/data/abstractstores.py +1510 -0
  12. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/data/containers.py +217 -162
  13. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/data/contents.py +65 -39
  14. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/data/executables.py +93 -102
  15. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/data/flow.py +40 -34
  16. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/data/geometries.py +228 -132
  17. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/data/handlers.py +428 -225
  18. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/data/outflow.py +15 -15
  19. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/data/providers.py +185 -163
  20. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/data/resources.py +48 -42
  21. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/data/stores.py +544 -413
  22. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/gloves.py +114 -87
  23. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/layout/__init__.py +1 -8
  24. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/layout/contexts.py +150 -84
  25. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/layout/dataflow.py +353 -202
  26. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/layout/monitor.py +264 -128
  27. vortex_nwp-2.0.0b2/src/vortex/nwp/__init__.py +14 -0
  28. vortex_nwp-2.0.0b2/src/vortex/nwp/algo/__init__.py +21 -0
  29. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/algo/assim.py +205 -151
  30. vortex_nwp-2.0.0b2/src/vortex/nwp/algo/clim.py +1086 -0
  31. vortex_nwp-2.0.0b2/src/vortex/nwp/algo/coupling.py +831 -0
  32. vortex_nwp-2.0.0b2/src/vortex/nwp/algo/eda.py +840 -0
  33. vortex_nwp-2.0.0b2/src/vortex/nwp/algo/eps.py +785 -0
  34. vortex_nwp-2.0.0b2/src/vortex/nwp/algo/forecasts.py +894 -0
  35. vortex_nwp-2.0.0b2/src/vortex/nwp/algo/fpserver.py +1303 -0
  36. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/algo/ifsnaming.py +205 -145
  37. vortex_nwp-2.0.0b2/src/vortex/nwp/algo/ifsroot.py +399 -0
  38. vortex_nwp-2.0.0b2/src/vortex/nwp/algo/monitoring.py +258 -0
  39. vortex_nwp-2.0.0b2/src/vortex/nwp/algo/mpitools.py +684 -0
  40. vortex_nwp-2.0.0b2/src/vortex/nwp/algo/odbtools.py +1238 -0
  41. vortex_nwp-2.0.0b2/src/vortex/nwp/algo/oopsroot.py +911 -0
  42. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/algo/oopstests.py +90 -56
  43. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/algo/request.py +287 -206
  44. vortex_nwp-2.0.0b2/src/vortex/nwp/algo/stdpost.py +1641 -0
  45. vortex_nwp-2.0.0b2/src/vortex/nwp/data/__init__.py +30 -0
  46. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/data/assim.py +125 -137
  47. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/data/boundaries.py +121 -68
  48. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/data/climfiles.py +193 -211
  49. vortex_nwp-2.0.0b2/src/vortex/nwp/data/configfiles.py +153 -0
  50. vortex_nwp-2.0.0b2/src/vortex/nwp/data/consts.py +954 -0
  51. vortex_nwp-2.0.0b2/src/vortex/nwp/data/ctpini.py +149 -0
  52. vortex_nwp-2.0.0b2/src/vortex/nwp/data/diagnostics.py +209 -0
  53. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/data/eda.py +50 -51
  54. vortex_nwp-2.0.0b2/src/vortex/nwp/data/eps.py +432 -0
  55. vortex_nwp-2.0.0b2/src/vortex/nwp/data/executables.py +1045 -0
  56. vortex_nwp-2.0.0b2/src/vortex/nwp/data/fields.py +111 -0
  57. vortex_nwp-2.0.0b2/src/vortex/nwp/data/gridfiles.py +380 -0
  58. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/data/logs.py +250 -217
  59. vortex_nwp-2.0.0b2/src/vortex/nwp/data/modelstates.py +363 -0
  60. vortex_nwp-2.0.0b2/src/vortex/nwp/data/monitoring.py +193 -0
  61. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/data/namelists.py +254 -202
  62. vortex_nwp-2.0.0b2/src/vortex/nwp/data/obs.py +840 -0
  63. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/data/oopsexec.py +22 -20
  64. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/data/providers.py +90 -65
  65. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/data/query.py +71 -82
  66. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/data/stores.py +49 -36
  67. vortex_nwp-2.0.0b2/src/vortex/nwp/data/surfex.py +337 -0
  68. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/syntax/__init__.py +1 -1
  69. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/syntax/stdattrs.py +173 -111
  70. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/__init__.py +2 -2
  71. vortex_nwp-2.0.0b2/src/vortex/nwp/tools/addons.py +40 -0
  72. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/agt.py +24 -12
  73. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/bdap.py +16 -5
  74. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/bdcp.py +4 -1
  75. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/bdm.py +3 -0
  76. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/bdmp.py +14 -9
  77. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/conftools.py +728 -378
  78. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/drhook.py +12 -8
  79. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/grib.py +65 -39
  80. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/gribdiff.py +22 -17
  81. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/ifstools.py +82 -42
  82. vortex_nwp-2.0.0b2/src/vortex/nwp/tools/igastuff.py +273 -0
  83. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/mars.py +14 -2
  84. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/odb.py +234 -125
  85. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/partitioning.py +61 -37
  86. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/satrad.py +27 -12
  87. vortex_nwp-2.0.0b2/src/vortex/nwp/util/async.py +212 -0
  88. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/util/beacon.py +10 -10
  89. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/util/diffpygram.py +174 -86
  90. vortex_nwp-2.0.0b2/src/vortex/nwp/util/ens.py +279 -0
  91. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/util/hooks.py +30 -19
  92. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/util/taskdeco.py +28 -24
  93. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/util/usepygram.py +278 -172
  94. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/util/usetnt.py +31 -17
  95. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/sessions.py +72 -39
  96. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/syntax/__init__.py +1 -1
  97. vortex_nwp-2.0.0b2/src/vortex/syntax/stdattrs.py +867 -0
  98. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/syntax/stddeco.py +31 -22
  99. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/toolbox.py +327 -192
  100. vortex_nwp-2.0.0b2/src/vortex/tools/__init__.py +20 -0
  101. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/actions.py +125 -59
  102. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/addons.py +111 -92
  103. vortex_nwp-2.0.0b2/src/vortex/tools/arm.py +96 -0
  104. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/compression.py +72 -69
  105. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/date.py +11 -4
  106. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/delayedactions.py +242 -132
  107. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/env.py +75 -47
  108. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/folder.py +342 -171
  109. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/grib.py +311 -149
  110. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/lfi.py +423 -216
  111. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/listings.py +109 -40
  112. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/names.py +218 -156
  113. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/net.py +632 -298
  114. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/parallelism.py +93 -61
  115. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/prestaging.py +55 -31
  116. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/schedulers.py +172 -105
  117. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/services.py +402 -333
  118. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/storage.py +293 -358
  119. vortex_nwp-2.0.0b2/src/vortex/tools/surfex.py +61 -0
  120. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/systems.py +1211 -631
  121. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/targets.py +156 -100
  122. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/util/__init__.py +1 -1
  123. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/util/config.py +377 -327
  124. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/util/empty.py +2 -2
  125. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/util/helpers.py +56 -24
  126. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/util/introspection.py +18 -12
  127. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/util/iosponge.py +8 -4
  128. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/util/roles.py +4 -6
  129. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/util/storefunctions.py +39 -13
  130. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/util/structs.py +3 -3
  131. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/util/worker.py +29 -17
  132. vortex_nwp-2.0.0b2/src/vortex_nwp.egg-info/PKG-INFO +66 -0
  133. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex_nwp.egg-info/SOURCES.txt +2 -4
  134. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex_nwp.egg-info/requires.txt +4 -0
  135. vortex_nwp-2.0.0b2/tests/test_config.py +58 -0
  136. vortex_nwp-2.0.0b2/tests/test_templates.py +40 -0
  137. vortex_nwp-2.0.0b1/PKG-INFO +0 -50
  138. vortex_nwp-2.0.0b1/README.md +0 -29
  139. vortex_nwp-2.0.0b1/src/vortex/data/__init__.py +0 -13
  140. vortex_nwp-2.0.0b1/src/vortex/data/abstractstores.py +0 -1572
  141. vortex_nwp-2.0.0b1/src/vortex/layout/appconf.py +0 -109
  142. vortex_nwp-2.0.0b1/src/vortex/layout/jobs.py +0 -1276
  143. vortex_nwp-2.0.0b1/src/vortex/layout/nodes.py +0 -1424
  144. vortex_nwp-2.0.0b1/src/vortex/layout/subjobs.py +0 -464
  145. vortex_nwp-2.0.0b1/src/vortex/nwp/__init__.py +0 -11
  146. vortex_nwp-2.0.0b1/src/vortex/nwp/algo/__init__.py +0 -12
  147. vortex_nwp-2.0.0b1/src/vortex/nwp/algo/clim.py +0 -920
  148. vortex_nwp-2.0.0b1/src/vortex/nwp/algo/coupling.py +0 -609
  149. vortex_nwp-2.0.0b1/src/vortex/nwp/algo/eda.py +0 -632
  150. vortex_nwp-2.0.0b1/src/vortex/nwp/algo/eps.py +0 -613
  151. vortex_nwp-2.0.0b1/src/vortex/nwp/algo/forecasts.py +0 -745
  152. vortex_nwp-2.0.0b1/src/vortex/nwp/algo/fpserver.py +0 -927
  153. vortex_nwp-2.0.0b1/src/vortex/nwp/algo/ifsroot.py +0 -311
  154. vortex_nwp-2.0.0b1/src/vortex/nwp/algo/monitoring.py +0 -202
  155. vortex_nwp-2.0.0b1/src/vortex/nwp/algo/mpitools.py +0 -554
  156. vortex_nwp-2.0.0b1/src/vortex/nwp/algo/odbtools.py +0 -974
  157. vortex_nwp-2.0.0b1/src/vortex/nwp/algo/oopsroot.py +0 -735
  158. vortex_nwp-2.0.0b1/src/vortex/nwp/algo/stdpost.py +0 -1285
  159. vortex_nwp-2.0.0b1/src/vortex/nwp/data/__init__.py +0 -12
  160. vortex_nwp-2.0.0b1/src/vortex/nwp/data/configfiles.py +0 -149
  161. vortex_nwp-2.0.0b1/src/vortex/nwp/data/consts.py +0 -929
  162. vortex_nwp-2.0.0b1/src/vortex/nwp/data/ctpini.py +0 -133
  163. vortex_nwp-2.0.0b1/src/vortex/nwp/data/diagnostics.py +0 -181
  164. vortex_nwp-2.0.0b1/src/vortex/nwp/data/eps.py +0 -383
  165. vortex_nwp-2.0.0b1/src/vortex/nwp/data/executables.py +0 -1039
  166. vortex_nwp-2.0.0b1/src/vortex/nwp/data/fields.py +0 -96
  167. vortex_nwp-2.0.0b1/src/vortex/nwp/data/gridfiles.py +0 -308
  168. vortex_nwp-2.0.0b1/src/vortex/nwp/data/modelstates.py +0 -334
  169. vortex_nwp-2.0.0b1/src/vortex/nwp/data/monitoring.py +0 -220
  170. vortex_nwp-2.0.0b1/src/vortex/nwp/data/obs.py +0 -748
  171. vortex_nwp-2.0.0b1/src/vortex/nwp/data/surfex.py +0 -338
  172. vortex_nwp-2.0.0b1/src/vortex/nwp/tools/addons.py +0 -35
  173. vortex_nwp-2.0.0b1/src/vortex/nwp/tools/igastuff.py +0 -249
  174. vortex_nwp-2.0.0b1/src/vortex/nwp/util/async.py +0 -184
  175. vortex_nwp-2.0.0b1/src/vortex/nwp/util/ens.py +0 -198
  176. vortex_nwp-2.0.0b1/src/vortex/syntax/stdattrs.py +0 -628
  177. vortex_nwp-2.0.0b1/src/vortex/tools/__init__.py +0 -11
  178. vortex_nwp-2.0.0b1/src/vortex/tools/arm.py +0 -76
  179. vortex_nwp-2.0.0b1/src/vortex/tools/surfex.py +0 -61
  180. vortex_nwp-2.0.0b1/src/vortex_nwp.egg-info/PKG-INFO +0 -50
  181. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/LICENSE +0 -0
  182. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/setup.cfg +0 -0
  183. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/algo/mpitools_templates/envelope_wrapper_default.tpl +0 -0
  184. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/algo/mpitools_templates/envelope_wrapper_mpiauto.tpl +0 -0
  185. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/algo/mpitools_templates/wrapstd_wrapper_default.tpl +0 -0
  186. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/data/geometries.ini +0 -0
  187. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/util/__init__.py +0 -0
  188. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/proxy.py +0 -0
  189. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/ddhpack.py +0 -0
  190. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/odb.py +0 -0
  191. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/rawfiles.py +0 -0
  192. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex_nwp.egg-info/dependency_links.txt +0 -0
  193. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex_nwp.egg-info/top_level.txt +0 -0
  194. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_algo_server.py +0 -0
  195. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_arpifs_listings_integration.py +0 -0
  196. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_cfgparser.py +0 -0
  197. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_cfgtemplating.py +0 -0
  198. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_compression.py +0 -0
  199. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_conftools.py +0 -0
  200. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_containers.py +0 -0
  201. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_doctests.py +0 -0
  202. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_ecmwf_interface.py +0 -0
  203. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_env.py +0 -0
  204. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_epygram.py +0 -0
  205. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_gco.py +0 -0
  206. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_ifstools.py +0 -0
  207. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_import.py +0 -0
  208. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_iosponge.py +0 -0
  209. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_job_examples.py +0 -0
  210. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_layoutappconf.py +0 -0
  211. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_layoutjobs.py +0 -0
  212. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_layoutmonitor.py +0 -0
  213. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_layoutnodes.py +0 -0
  214. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_net_netstat.py +0 -0
  215. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_net_ssh.py +0 -0
  216. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_partitioning.py +0 -0
  217. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_providers.py +0 -0
  218. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_sessions_stuff.py +0 -0
  219. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_simpleworkflow.py +0 -0
  220. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_storage.py +0 -0
  221. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_stores.py +0 -0
  222. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_syntax.py +0 -0
  223. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_targets.py +0 -0
  224. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_toolsodb.py +0 -0
  225. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_uget.py +0 -0
  226. {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_vortexnames.py +0 -0
@@ -0,0 +1,66 @@
1
+ Metadata-Version: 2.2
2
+ Name: vortex-nwp
3
+ Version: 2.0.0b2
4
+ Summary: A Python library to write Numerical Weather Prediction pipelines components
5
+ Author-email: The Vortex Team <vortex.support@meteo.fr>
6
+ License: CECILL-C
7
+ Classifier: Development Status :: 4 - Beta
8
+ Classifier: License :: CeCILL-C Free Software License Agreement (CECILL-C)
9
+ Requires-Python: >=3.7
10
+ Description-Content-Type: text/markdown
11
+ License-File: LICENSE
12
+ Requires-Dist: bronx
13
+ Requires-Dist: footprints
14
+ Requires-Dist: taylorism
15
+ Requires-Dist: tomli
16
+ Requires-Dist: arpifs_listings
17
+ Provides-Extra: docs
18
+ Requires-Dist: sphinx; extra == "docs"
19
+ Requires-Dist: sphinx-book-theme; extra == "docs"
20
+ Requires-Dist: sphinx-copybutton; extra == "docs"
21
+ Provides-Extra: dev
22
+ Requires-Dist: ruff==0.9.1; extra == "dev"
23
+ Requires-Dist: pytest; extra == "dev"
24
+
25
+ ## vortex
26
+
27
+ A Python library to write individual tasks in Numerical Weather
28
+ Prediction pipelines.
29
+
30
+ ![A blue coloured vortex pointing downwards on a lighter blue background](vortex.png)
31
+
32
+ Experiments in Numerical Weather Prediction (NWP) and related fields
33
+ consist in a series of computational tasks that can depend on each
34
+ other's output data. Each task is typically made of three successive
35
+ steps:
36
+
37
+ 1. Fetch required input data.
38
+ 2. Execute a program.
39
+ 3. Make the program's output data available to subsequent tasks in the
40
+ pipeline.
41
+
42
+ Tasks have historically been written in some variant of the UNIX
43
+ shell, which was convenient to interact with the file system, manage
44
+ environment variables and execute programs. As NWP pipelines and
45
+ tasks grow more and more complex, however, there is a need for a
46
+ language providing more abstraction and code reuse mechanisms.
47
+
48
+ On top of the popular Python language, *vortex* provides abstractions
49
+ that encapsulate running -- potentially distributed -- programs as
50
+ well as fetching and storing the data they consume and generate.
51
+
52
+ ### Documentation
53
+
54
+ The documentation is available at [vortex-nwp.readthedocs.io](https://vortex-nwp.readthedocs.io).
55
+
56
+ ### Installation
57
+
58
+ Vortex can be installed using `pip` like most Python packages:
59
+
60
+ ```bash
61
+ pip install vortex-nwp
62
+ ```
63
+
64
+ ### Contributing
65
+
66
+ See [CONTRIBUTING.md](CONTRIBUTING.md).
@@ -0,0 +1,42 @@
1
+ ## vortex
2
+
3
+ A Python library to write individual tasks in Numerical Weather
4
+ Prediction pipelines.
5
+
6
+ ![A blue coloured vortex pointing downwards on a lighter blue background](vortex.png)
7
+
8
+ Experiments in Numerical Weather Prediction (NWP) and related fields
9
+ consist in a series of computational tasks that can depend on each
10
+ other's output data. Each task is typically made of three successive
11
+ steps:
12
+
13
+ 1. Fetch required input data.
14
+ 2. Execute a program.
15
+ 3. Make the program's output data available to subsequent tasks in the
16
+ pipeline.
17
+
18
+ Tasks have historically been written in some variant of the UNIX
19
+ shell, which was convenient to interact with the file system, manage
20
+ environment variables and execute programs. As NWP pipelines and
21
+ tasks grow more and more complex, however, there is a need for a
22
+ language providing more abstraction and code reuse mechanisms.
23
+
24
+ On top of the popular Python language, *vortex* provides abstractions
25
+ that encapsulate running -- potentially distributed -- programs as
26
+ well as fetching and storing the data they consume and generate.
27
+
28
+ ### Documentation
29
+
30
+ The documentation is available at [vortex-nwp.readthedocs.io](https://vortex-nwp.readthedocs.io).
31
+
32
+ ### Installation
33
+
34
+ Vortex can be installed using `pip` like most Python packages:
35
+
36
+ ```bash
37
+ pip install vortex-nwp
38
+ ```
39
+
40
+ ### Contributing
41
+
42
+ See [CONTRIBUTING.md](CONTRIBUTING.md).
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "vortex-nwp"
7
- version = "2.0.0b1"
7
+ version = "2.0.0b2"
8
8
  description = "A Python library to write Numerical Weather Prediction pipelines components"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.7"
@@ -22,7 +22,8 @@ dependencies = [
22
22
  ]
23
23
 
24
24
  [project.optional-dependencies]
25
- dev = ["sphinx", "sphinx-book-theme", "sphinx-copybutton"]
25
+ docs = ["sphinx", "sphinx-book-theme", "sphinx-copybutton"]
26
+ dev = ["ruff==0.9.1", "pytest"]
26
27
 
27
28
  [tool.setuptools.packages.find]
28
29
  where = ["src"]
@@ -30,3 +31,9 @@ where = ["src"]
30
31
  [tool.setuptools.package-data]
31
32
  "vortex.data" = ["geometries.ini"]
32
33
  "vortex.algo" = ["mpitools_templates/*.tpl"]
34
+
35
+ [tool.ruff]
36
+ line-length = 79
37
+
38
+ [tool.ruff.lint]
39
+ ignore = ["E741"]
@@ -20,45 +20,64 @@ of the very high level interface defined in the :mod:`vortex.toolbox` module is
20
20
  strongly advised.
21
21
  """
22
22
 
23
- __version__ = '2.0.0b1'
24
- __prompt__ = 'Vortex v-' + __version__ + ':'
23
+ import atexit
24
+ import importlib.metadata
25
+
26
+ from bronx.fancies import loggers as bloggers
27
+ import bronx.stdtypes.date
28
+
29
+ import footprints
30
+
31
+ # Populate a fake proxy module with footprints shortcuts
32
+ from . import proxy, tools, sessions, config
33
+
34
+ # vortex user API
35
+ from .toolbox import input as input
36
+ from .toolbox import output as output
37
+ from .toolbox import executable as executable
38
+ from .toolbox import promise as promise
39
+ from .toolbox import diff as diff
40
+ from .toolbox import defaults as defaults
41
+ from .toolbox import algo as task
42
+
43
+ from . import nwp as nwp # footprints import
25
44
 
26
- __nextversion__ = '2.0.0b2'
27
- __tocinfoline__ = 'VORTEX core package'
45
+ __version__ = "2.0.0b2"
46
+ __prompt__ = "Vortex v-" + __version__ + ":"
47
+
48
+ __nextversion__ = "2.0.0b3"
49
+ __tocinfoline__ = "VORTEX core package"
28
50
 
29
51
  __all__ = [
30
- "input", "output", "executable", "task", "promise", "diff",
52
+ "input",
53
+ "output",
54
+ "executable",
55
+ "task",
56
+ "promise",
57
+ "diff",
31
58
  ]
32
59
 
33
60
  # Set vortex specific priorities for footprints usage
34
61
 
35
- from bronx.fancies import loggers as bloggers
36
62
 
37
- import footprints
38
- footprints.priorities.set_before('debug', 'olive', 'oper')
63
+ footprints.priorities.set_before("debug", "olive", "oper")
39
64
 
40
65
  # Set a root logging mechanism for vortex
41
66
 
42
67
  #: Shortcut to Vortex's root logger
43
- logger = bloggers.getLogger('vortex')
44
-
45
- # Populate a fake proxy module with footprints shortcuts
68
+ logger = bloggers.getLogger("vortex")
46
69
 
47
- from . import proxy
48
70
  setup = footprints.config.get()
49
71
  setup.add_proxy(proxy)
50
72
  proxy.cat = footprints.proxy.cat
51
73
  proxy.objects = footprints.proxy.objects
52
74
 
53
75
  # Set a background environment and a root session
54
-
55
- from . import tools
56
- from . import sessions
57
- from . import config
58
-
59
76
  rootenv = tools.env.Environment(active=True)
60
77
 
61
- rs = sessions.get(active=True, topenv=rootenv, glove=sessions.getglove(), prompt=__prompt__)
78
+ rs = sessions.get(
79
+ active=True, topenv=rootenv, glove=sessions.getglove(), prompt=__prompt__
80
+ )
62
81
  if rs.system().systems_reload():
63
82
  rs.system(refill=True)
64
83
  del rs
@@ -70,8 +89,7 @@ def vortexfpdefaults():
70
89
  """Return actual glove, according to current environment."""
71
90
  cur_session = sessions.current()
72
91
  return dict(
73
- glove=cur_session.glove,
74
- systemtarget=cur_session.sh.default_target
92
+ glove=cur_session.glove, systemtarget=cur_session.sh.default_target
75
93
  )
76
94
 
77
95
 
@@ -82,54 +100,50 @@ footprints.setup.callback = vortexfpdefaults
82
100
  ticket = sessions.get
83
101
  sh = sessions.system
84
102
 
85
- # Specific toolbox exceptions
86
-
87
-
88
- class VortexForceComplete(Exception):
89
- """Exception for handling fast exit mecanisms."""
90
- pass
91
-
92
103
  # If a config file can be found in current dir, load it
93
104
  config.load_config()
94
105
 
95
106
  # Load some superstars sub-packages
96
- from .toolbox import (
97
- input,
98
- output,
99
- executable,
100
- promise,
101
- diff,
102
- defaults,
103
- )
104
- from .toolbox import algo as task
105
- from . import nwp
107
+
106
108
 
107
109
  # Now load plugins that have been installed with the
108
110
  # 'vtx' entry point. Order matters: since plugins
109
111
  # will typically depend on objects defined in 'vortex'
110
112
  # and 'vortex.nwp', these must be imported /before/
111
113
  # loading plugins.
112
- from importlib.metadata import entry_points
113
- for plugin in entry_points(group='vtx'):
114
+ for plugin in importlib.metadata.entry_points(group="vtx"):
114
115
  plugin.load()
115
116
  print(f"Loaded plugin {plugin.name}")
116
117
 
117
- # Register proper vortex exit before the end of interpreter session
118
118
 
119
- import bronx.stdtypes.date
119
+ # Register proper vortex exit before the end of interpreter session
120
120
  def complete():
121
121
  sessions.exit()
122
122
  import multiprocessing
123
+
123
124
  for kid in multiprocessing.active_children():
124
- logger.warning('Terminate active kid %s', str(kid))
125
+ logger.warning("Terminate active kid %s", str(kid))
125
126
  kid.terminate()
126
- print('Vortex', __version__, 'completed', '(', bronx.stdtypes.date.at_second().reallynice(), ')')
127
+ print(
128
+ "Vortex",
129
+ __version__,
130
+ "completed",
131
+ "(",
132
+ bronx.stdtypes.date.at_second().reallynice(),
133
+ ")",
134
+ )
127
135
 
128
136
 
129
- import atexit
130
137
  atexit.register(complete)
131
138
  del atexit, complete
132
139
 
133
- print('Vortex', __version__, 'loaded', '(', bronx.stdtypes.date.at_second().reallynice(), ')')
140
+ print(
141
+ "Vortex",
142
+ __version__,
143
+ "loaded",
144
+ "(",
145
+ bronx.stdtypes.date.at_second().reallynice(),
146
+ ")",
147
+ )
134
148
 
135
149
  del footprints
@@ -4,9 +4,10 @@ Generic AlgoComponent classes (and related utility classes).
4
4
  Application specific AlgoComponent classes should be defined in dedicated packages.
5
5
  """
6
6
 
7
- from . import components, serversynctools
7
+ from . import components as components
8
+ from . import serversynctools as serversynctools
8
9
 
9
10
  #: No automatic export
10
11
  __all__ = []
11
12
 
12
- __tocinfoline__ = 'Generic AlgoComponent classes (and their utility classes)'
13
+ __tocinfoline__ = "Generic AlgoComponent classes (and their utility classes)"