vortex-nwp 2.0.0b1__py3-none-any.whl → 2.1.0__py3-none-any.whl

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 (141) hide show
  1. vortex/__init__.py +75 -47
  2. vortex/algo/__init__.py +3 -2
  3. vortex/algo/components.py +944 -618
  4. vortex/algo/mpitools.py +802 -497
  5. vortex/algo/mpitools_templates/__init__.py +1 -0
  6. vortex/algo/serversynctools.py +34 -33
  7. vortex/config.py +19 -22
  8. vortex/data/__init__.py +9 -3
  9. vortex/data/abstractstores.py +593 -655
  10. vortex/data/containers.py +217 -162
  11. vortex/data/contents.py +65 -39
  12. vortex/data/executables.py +93 -102
  13. vortex/data/flow.py +40 -34
  14. vortex/data/geometries.py +228 -132
  15. vortex/data/handlers.py +436 -227
  16. vortex/data/outflow.py +15 -15
  17. vortex/data/providers.py +185 -163
  18. vortex/data/resources.py +48 -42
  19. vortex/data/stores.py +540 -417
  20. vortex/data/sync_templates/__init__.py +0 -0
  21. vortex/gloves.py +114 -87
  22. vortex/layout/__init__.py +1 -8
  23. vortex/layout/contexts.py +150 -84
  24. vortex/layout/dataflow.py +353 -202
  25. vortex/layout/monitor.py +264 -128
  26. vortex/nwp/__init__.py +5 -2
  27. vortex/nwp/algo/__init__.py +14 -5
  28. vortex/nwp/algo/assim.py +205 -151
  29. vortex/nwp/algo/clim.py +683 -517
  30. vortex/nwp/algo/coupling.py +447 -225
  31. vortex/nwp/algo/eda.py +437 -229
  32. vortex/nwp/algo/eps.py +403 -231
  33. vortex/nwp/algo/forecasts.py +416 -275
  34. vortex/nwp/algo/fpserver.py +683 -307
  35. vortex/nwp/algo/ifsnaming.py +205 -145
  36. vortex/nwp/algo/ifsroot.py +215 -122
  37. vortex/nwp/algo/monitoring.py +137 -76
  38. vortex/nwp/algo/mpitools.py +330 -190
  39. vortex/nwp/algo/odbtools.py +637 -353
  40. vortex/nwp/algo/oopsroot.py +454 -273
  41. vortex/nwp/algo/oopstests.py +90 -56
  42. vortex/nwp/algo/request.py +287 -206
  43. vortex/nwp/algo/stdpost.py +878 -522
  44. vortex/nwp/data/__init__.py +22 -4
  45. vortex/nwp/data/assim.py +125 -137
  46. vortex/nwp/data/boundaries.py +121 -68
  47. vortex/nwp/data/climfiles.py +193 -211
  48. vortex/nwp/data/configfiles.py +73 -69
  49. vortex/nwp/data/consts.py +426 -401
  50. vortex/nwp/data/ctpini.py +59 -43
  51. vortex/nwp/data/diagnostics.py +94 -66
  52. vortex/nwp/data/eda.py +50 -51
  53. vortex/nwp/data/eps.py +195 -146
  54. vortex/nwp/data/executables.py +440 -434
  55. vortex/nwp/data/fields.py +63 -48
  56. vortex/nwp/data/gridfiles.py +183 -111
  57. vortex/nwp/data/logs.py +250 -217
  58. vortex/nwp/data/modelstates.py +180 -151
  59. vortex/nwp/data/monitoring.py +72 -99
  60. vortex/nwp/data/namelists.py +254 -202
  61. vortex/nwp/data/obs.py +400 -308
  62. vortex/nwp/data/oopsexec.py +22 -20
  63. vortex/nwp/data/providers.py +90 -65
  64. vortex/nwp/data/query.py +71 -82
  65. vortex/nwp/data/stores.py +49 -36
  66. vortex/nwp/data/surfex.py +136 -137
  67. vortex/nwp/syntax/__init__.py +1 -1
  68. vortex/nwp/syntax/stdattrs.py +173 -111
  69. vortex/nwp/tools/__init__.py +2 -2
  70. vortex/nwp/tools/addons.py +22 -17
  71. vortex/nwp/tools/agt.py +24 -12
  72. vortex/nwp/tools/bdap.py +16 -5
  73. vortex/nwp/tools/bdcp.py +4 -1
  74. vortex/nwp/tools/bdm.py +3 -0
  75. vortex/nwp/tools/bdmp.py +14 -9
  76. vortex/nwp/tools/conftools.py +728 -378
  77. vortex/nwp/tools/drhook.py +12 -8
  78. vortex/nwp/tools/grib.py +65 -39
  79. vortex/nwp/tools/gribdiff.py +22 -17
  80. vortex/nwp/tools/ifstools.py +82 -42
  81. vortex/nwp/tools/igastuff.py +167 -143
  82. vortex/nwp/tools/mars.py +14 -2
  83. vortex/nwp/tools/odb.py +234 -125
  84. vortex/nwp/tools/partitioning.py +61 -37
  85. vortex/nwp/tools/satrad.py +27 -12
  86. vortex/nwp/util/async.py +83 -55
  87. vortex/nwp/util/beacon.py +10 -10
  88. vortex/nwp/util/diffpygram.py +174 -86
  89. vortex/nwp/util/ens.py +144 -63
  90. vortex/nwp/util/hooks.py +30 -19
  91. vortex/nwp/util/taskdeco.py +28 -24
  92. vortex/nwp/util/usepygram.py +278 -172
  93. vortex/nwp/util/usetnt.py +31 -17
  94. vortex/sessions.py +72 -39
  95. vortex/syntax/__init__.py +1 -1
  96. vortex/syntax/stdattrs.py +410 -171
  97. vortex/syntax/stddeco.py +31 -22
  98. vortex/toolbox.py +327 -192
  99. vortex/tools/__init__.py +11 -2
  100. vortex/tools/actions.py +110 -121
  101. vortex/tools/addons.py +111 -92
  102. vortex/tools/arm.py +42 -22
  103. vortex/tools/compression.py +72 -69
  104. vortex/tools/date.py +11 -4
  105. vortex/tools/delayedactions.py +242 -132
  106. vortex/tools/env.py +75 -47
  107. vortex/tools/folder.py +342 -171
  108. vortex/tools/grib.py +341 -162
  109. vortex/tools/lfi.py +423 -216
  110. vortex/tools/listings.py +109 -40
  111. vortex/tools/names.py +218 -156
  112. vortex/tools/net.py +655 -299
  113. vortex/tools/parallelism.py +93 -61
  114. vortex/tools/prestaging.py +55 -31
  115. vortex/tools/schedulers.py +172 -105
  116. vortex/tools/services.py +403 -334
  117. vortex/tools/storage.py +293 -358
  118. vortex/tools/surfex.py +24 -24
  119. vortex/tools/systems.py +1234 -643
  120. vortex/tools/targets.py +156 -100
  121. vortex/util/__init__.py +1 -1
  122. vortex/util/config.py +378 -327
  123. vortex/util/empty.py +2 -2
  124. vortex/util/helpers.py +56 -24
  125. vortex/util/introspection.py +18 -12
  126. vortex/util/iosponge.py +8 -4
  127. vortex/util/roles.py +4 -6
  128. vortex/util/storefunctions.py +39 -13
  129. vortex/util/structs.py +3 -3
  130. vortex/util/worker.py +29 -17
  131. vortex_nwp-2.1.0.dist-info/METADATA +67 -0
  132. vortex_nwp-2.1.0.dist-info/RECORD +144 -0
  133. {vortex_nwp-2.0.0b1.dist-info → vortex_nwp-2.1.0.dist-info}/WHEEL +1 -1
  134. vortex/layout/appconf.py +0 -109
  135. vortex/layout/jobs.py +0 -1276
  136. vortex/layout/nodes.py +0 -1424
  137. vortex/layout/subjobs.py +0 -464
  138. vortex_nwp-2.0.0b1.dist-info/METADATA +0 -50
  139. vortex_nwp-2.0.0b1.dist-info/RECORD +0 -146
  140. {vortex_nwp-2.0.0b1.dist-info → vortex_nwp-2.1.0.dist-info/licenses}/LICENSE +0 -0
  141. {vortex_nwp-2.0.0b1.dist-info → vortex_nwp-2.1.0.dist-info}/top_level.txt +0 -0
vortex/data/flow.py CHANGED
@@ -12,7 +12,13 @@ from .resources import Resource
12
12
  from .geometries import hgeometry_deco
13
13
  from .contents import FormatAdapter
14
14
 
15
- from vortex.syntax.stdattrs import model_deco, date_deco, dateperiod_deco, cutoff_deco, term_deco
15
+ from vortex.syntax.stdattrs import (
16
+ model_deco,
17
+ date_deco,
18
+ dateperiod_deco,
19
+ cutoff_deco,
20
+ term_deco,
21
+ )
16
22
  from vortex.syntax.stddeco import namebuilding_insert
17
23
 
18
24
  #: No automatic export
@@ -26,40 +32,38 @@ class FlowResource(Resource):
26
32
  _footprint = [model_deco, date_deco, cutoff_deco]
27
33
 
28
34
 
29
- @namebuilding_insert('radical', lambda s: s.nickname)
35
+ @namebuilding_insert("radical", lambda s: s.nickname)
30
36
  class UnknownFlow(FlowResource):
31
-
32
37
  _footprint = [
33
38
  term_deco,
34
39
  dict(
35
- info = 'Unknown assumed NWP Flow-Resource (development only !)',
36
- attr = dict(
37
- unknownflow = dict(
38
- info = "Activate the unknown flow resource",
39
- type = bool
40
- ),
41
- term = dict(
42
- optional = True,
40
+ info="Unknown assumed NWP Flow-Resource (development only !)",
41
+ attr=dict(
42
+ unknownflow=dict(
43
+ info="Activate the unknown flow resource", type=bool
43
44
  ),
44
- nickname = dict(
45
- info = "The string that serves the purpose of Vortex's basename radical",
46
- optional = True,
47
- default = 'unknown'
45
+ term=dict(
46
+ optional=True,
48
47
  ),
49
- clscontents = dict(
50
- default = FormatAdapter
48
+ nickname=dict(
49
+ info="The string that serves the purpose of Vortex's basename radical",
50
+ optional=True,
51
+ default="unknown",
51
52
  ),
53
+ clscontents=dict(default=FormatAdapter),
52
54
  ),
53
- fastkeys = {'unknownflow'},
54
- )
55
+ fastkeys={"unknownflow"},
56
+ ),
55
57
  ]
56
58
 
57
- _extension_remap = {k: None for k in ('auto', 'autoconfig', 'foo', 'unknown')}
59
+ _extension_remap = {
60
+ k: None for k in ("auto", "autoconfig", "foo", "unknown")
61
+ }
58
62
 
59
63
  def olive_basename(self):
60
64
  target = self.nickname
61
65
  if self.term is not None:
62
- target += '+' + self.term.fmth
66
+ target += "+" + self.term.fmth
63
67
  return target
64
68
 
65
69
 
@@ -70,12 +74,12 @@ class GeoFlowResource(FlowResource):
70
74
  _footprint = [
71
75
  hgeometry_deco,
72
76
  dict(
73
- attr = dict(
74
- clscontents = dict(
75
- default = FormatAdapter,
77
+ attr=dict(
78
+ clscontents=dict(
79
+ default=FormatAdapter,
76
80
  ),
77
81
  )
78
- )
82
+ ),
79
83
  ]
80
84
 
81
85
 
@@ -86,14 +90,16 @@ class PeriodFlowResource(Resource):
86
90
  _footprint = [model_deco, dateperiod_deco, cutoff_deco]
87
91
 
88
92
  _footprint = [
89
- model_deco, dateperiod_deco, cutoff_deco,
93
+ model_deco,
94
+ dateperiod_deco,
95
+ cutoff_deco,
90
96
  dict(
91
- attr = dict(
92
- cutoff = dict(
93
- optional = True,
97
+ attr=dict(
98
+ cutoff=dict(
99
+ optional=True,
94
100
  ),
95
101
  )
96
- )
102
+ ),
97
103
  ]
98
104
 
99
105
 
@@ -104,10 +110,10 @@ class GeoPeriodFlowResource(PeriodFlowResource):
104
110
  _footprint = [
105
111
  hgeometry_deco,
106
112
  dict(
107
- attr = dict(
108
- clscontents = dict(
109
- default = FormatAdapter,
113
+ attr=dict(
114
+ clscontents=dict(
115
+ default=FormatAdapter,
110
116
  ),
111
117
  )
112
- )
118
+ ),
113
119
  ]