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