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/syntax/stddeco.py CHANGED
@@ -5,7 +5,9 @@ attribute.
5
5
  """
6
6
 
7
7
 
8
- def namebuilding_insert(targetkey, valuecb, none_discard=False, setdefault=False):
8
+ def namebuilding_insert(
9
+ targetkey, valuecb, none_discard=False, setdefault=False
10
+ ):
9
11
  """Insert/Overwrite an entry in the dictionary returned by namebuilding_info().
10
12
 
11
13
  :param str targetkey: The dictionary's key to alter.
@@ -16,8 +18,7 @@ def namebuilding_insert(targetkey, valuecb, none_discard=False, setdefault=False
16
18
  """
17
19
 
18
20
  def _namebuilding_insert_stuff(cls):
19
-
20
- if hasattr(cls, 'namebuilding_info'):
21
+ if hasattr(cls, "namebuilding_info"):
21
22
  original_namebuilding_info = cls.namebuilding_info
22
23
 
23
24
  def namebuilding_info(self):
@@ -36,8 +37,9 @@ def namebuilding_insert(targetkey, valuecb, none_discard=False, setdefault=False
36
37
  return cls
37
38
 
38
39
  def _namebuilding_insert_stuff_as_dump():
39
- return ("<class-decorator: replace/add the *{:s}* entry in the namebuilding_info dictionary>"
40
- .format(targetkey))
40
+ return "<class-decorator: replace/add the *{:s}* entry in the namebuilding_info dictionary>".format(
41
+ targetkey
42
+ )
41
43
 
42
44
  _namebuilding_insert_stuff.as_dump = _namebuilding_insert_stuff_as_dump
43
45
 
@@ -54,22 +56,25 @@ def namebuilding_append(targetkey, valuecb, none_discard=False):
54
56
  """
55
57
 
56
58
  def _namebuilding_append_stuff(cls):
57
-
58
- if hasattr(cls, 'namebuilding_info'):
59
+ if hasattr(cls, "namebuilding_info"):
59
60
  original_namebuilding_info = cls.namebuilding_info
60
61
 
61
62
  def namebuilding_info(self):
62
63
  vinfo = original_namebuilding_info(self)
63
64
  value = valuecb(self)
64
65
  if not isinstance(value, list):
65
- value = [value, ]
66
+ value = [
67
+ value,
68
+ ]
66
69
  if none_discard:
67
70
  value = [v for v in value if v is not None]
68
71
  if not none_discard or value:
69
72
  if targetkey in vinfo:
70
73
  some_stuff = vinfo[targetkey]
71
74
  if not isinstance(some_stuff, list):
72
- some_stuff = [some_stuff, ]
75
+ some_stuff = [
76
+ some_stuff,
77
+ ]
73
78
  some_stuff.extend(value)
74
79
  else:
75
80
  some_stuff = value
@@ -82,8 +87,9 @@ def namebuilding_append(targetkey, valuecb, none_discard=False):
82
87
  return cls
83
88
 
84
89
  def _namebuilding_append_stuff_as_dump():
85
- return ("<class-decorator: append things in the *{:s}* entry of the namebuilding_info dictionary>"
86
- .format(targetkey))
90
+ return "<class-decorator: append things in the *{:s}* entry of the namebuilding_info dictionary>".format(
91
+ targetkey
92
+ )
87
93
 
88
94
  _namebuilding_append_stuff.as_dump = _namebuilding_append_stuff_as_dump
89
95
 
@@ -97,8 +103,7 @@ def namebuilding_delete(targetkey):
97
103
  """
98
104
 
99
105
  def _namebuilding_delete_stuff(cls):
100
-
101
- if hasattr(cls, 'namebuilding_info'):
106
+ if hasattr(cls, "namebuilding_info"):
102
107
  original_namebuilding_info = cls.namebuilding_info
103
108
 
104
109
  def namebuilding_info(self):
@@ -112,15 +117,18 @@ def namebuilding_delete(targetkey):
112
117
  return cls
113
118
 
114
119
  def _namebuilding_delete_stuff_as_dump():
115
- return ("<class-decorator: delete the *{:s}* entry of the namebuilding_info dictionary>"
116
- .format(targetkey))
120
+ return "<class-decorator: delete the *{:s}* entry of the namebuilding_info dictionary>".format(
121
+ targetkey
122
+ )
117
123
 
118
124
  _namebuilding_delete_stuff.as_dump = _namebuilding_delete_stuff_as_dump
119
125
 
120
126
  return _namebuilding_delete_stuff
121
127
 
122
128
 
123
- def generic_pathname_insert(targetkey, valuecb, none_discard=False, setdefault=False):
129
+ def generic_pathname_insert(
130
+ targetkey, valuecb, none_discard=False, setdefault=False
131
+ ):
124
132
  """Insert/Overwrite an entry in the dictionary returned by generic_pathinfo().
125
133
 
126
134
  :param str targetkey: The dictionary's key to alter.
@@ -131,8 +139,7 @@ def generic_pathname_insert(targetkey, valuecb, none_discard=False, setdefault=F
131
139
  """
132
140
 
133
141
  def _generic_pathinfo_insert_stuff(cls):
134
-
135
- if hasattr(cls, 'generic_pathinfo'):
142
+ if hasattr(cls, "generic_pathinfo"):
136
143
  original_generic_pathinfo = cls.generic_pathinfo
137
144
 
138
145
  def generic_pathinfo(self):
@@ -151,10 +158,13 @@ def generic_pathname_insert(targetkey, valuecb, none_discard=False, setdefault=F
151
158
  return cls
152
159
 
153
160
  def _generic_pathinfo_insert_stuff_as_dump():
154
- return ("<class-decorator: replace/add the *{:s}* entry in the generic_pathinfo dictionary>"
155
- .format(targetkey))
161
+ return "<class-decorator: replace/add the *{:s}* entry in the generic_pathinfo dictionary>".format(
162
+ targetkey
163
+ )
156
164
 
157
- _generic_pathinfo_insert_stuff.as_dump = _generic_pathinfo_insert_stuff_as_dump
165
+ _generic_pathinfo_insert_stuff.as_dump = (
166
+ _generic_pathinfo_insert_stuff_as_dump
167
+ )
158
168
 
159
169
  return _generic_pathinfo_insert_stuff
160
170
 
@@ -166,7 +176,6 @@ def overwrite_realkind(thekind):
166
176
  """
167
177
 
168
178
  def _actual_overwrite_realkind(cls):
169
-
170
179
  def realkind(self):
171
180
  return thekind
172
181