vortex-nwp 2.0.0b1__py3-none-any.whl → 2.0.0b2__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 (139) hide show
  1. vortex/__init__.py +59 -45
  2. vortex/algo/__init__.py +3 -2
  3. vortex/algo/components.py +940 -614
  4. vortex/algo/mpitools.py +802 -497
  5. vortex/algo/serversynctools.py +34 -33
  6. vortex/config.py +19 -22
  7. vortex/data/__init__.py +9 -3
  8. vortex/data/abstractstores.py +593 -655
  9. vortex/data/containers.py +217 -162
  10. vortex/data/contents.py +65 -39
  11. vortex/data/executables.py +93 -102
  12. vortex/data/flow.py +40 -34
  13. vortex/data/geometries.py +228 -132
  14. vortex/data/handlers.py +428 -225
  15. vortex/data/outflow.py +15 -15
  16. vortex/data/providers.py +185 -163
  17. vortex/data/resources.py +48 -42
  18. vortex/data/stores.py +544 -413
  19. vortex/gloves.py +114 -87
  20. vortex/layout/__init__.py +1 -8
  21. vortex/layout/contexts.py +150 -84
  22. vortex/layout/dataflow.py +353 -202
  23. vortex/layout/monitor.py +264 -128
  24. vortex/nwp/__init__.py +5 -2
  25. vortex/nwp/algo/__init__.py +14 -5
  26. vortex/nwp/algo/assim.py +205 -151
  27. vortex/nwp/algo/clim.py +683 -517
  28. vortex/nwp/algo/coupling.py +447 -225
  29. vortex/nwp/algo/eda.py +437 -229
  30. vortex/nwp/algo/eps.py +403 -231
  31. vortex/nwp/algo/forecasts.py +420 -271
  32. vortex/nwp/algo/fpserver.py +683 -307
  33. vortex/nwp/algo/ifsnaming.py +205 -145
  34. vortex/nwp/algo/ifsroot.py +210 -122
  35. vortex/nwp/algo/monitoring.py +132 -76
  36. vortex/nwp/algo/mpitools.py +321 -191
  37. vortex/nwp/algo/odbtools.py +617 -353
  38. vortex/nwp/algo/oopsroot.py +449 -273
  39. vortex/nwp/algo/oopstests.py +90 -56
  40. vortex/nwp/algo/request.py +287 -206
  41. vortex/nwp/algo/stdpost.py +878 -522
  42. vortex/nwp/data/__init__.py +22 -4
  43. vortex/nwp/data/assim.py +125 -137
  44. vortex/nwp/data/boundaries.py +121 -68
  45. vortex/nwp/data/climfiles.py +193 -211
  46. vortex/nwp/data/configfiles.py +73 -69
  47. vortex/nwp/data/consts.py +426 -401
  48. vortex/nwp/data/ctpini.py +59 -43
  49. vortex/nwp/data/diagnostics.py +94 -66
  50. vortex/nwp/data/eda.py +50 -51
  51. vortex/nwp/data/eps.py +195 -146
  52. vortex/nwp/data/executables.py +440 -434
  53. vortex/nwp/data/fields.py +63 -48
  54. vortex/nwp/data/gridfiles.py +183 -111
  55. vortex/nwp/data/logs.py +250 -217
  56. vortex/nwp/data/modelstates.py +180 -151
  57. vortex/nwp/data/monitoring.py +72 -99
  58. vortex/nwp/data/namelists.py +254 -202
  59. vortex/nwp/data/obs.py +400 -308
  60. vortex/nwp/data/oopsexec.py +22 -20
  61. vortex/nwp/data/providers.py +90 -65
  62. vortex/nwp/data/query.py +71 -82
  63. vortex/nwp/data/stores.py +49 -36
  64. vortex/nwp/data/surfex.py +136 -137
  65. vortex/nwp/syntax/__init__.py +1 -1
  66. vortex/nwp/syntax/stdattrs.py +173 -111
  67. vortex/nwp/tools/__init__.py +2 -2
  68. vortex/nwp/tools/addons.py +22 -17
  69. vortex/nwp/tools/agt.py +24 -12
  70. vortex/nwp/tools/bdap.py +16 -5
  71. vortex/nwp/tools/bdcp.py +4 -1
  72. vortex/nwp/tools/bdm.py +3 -0
  73. vortex/nwp/tools/bdmp.py +14 -9
  74. vortex/nwp/tools/conftools.py +728 -378
  75. vortex/nwp/tools/drhook.py +12 -8
  76. vortex/nwp/tools/grib.py +65 -39
  77. vortex/nwp/tools/gribdiff.py +22 -17
  78. vortex/nwp/tools/ifstools.py +82 -42
  79. vortex/nwp/tools/igastuff.py +167 -143
  80. vortex/nwp/tools/mars.py +14 -2
  81. vortex/nwp/tools/odb.py +234 -125
  82. vortex/nwp/tools/partitioning.py +61 -37
  83. vortex/nwp/tools/satrad.py +27 -12
  84. vortex/nwp/util/async.py +83 -55
  85. vortex/nwp/util/beacon.py +10 -10
  86. vortex/nwp/util/diffpygram.py +174 -86
  87. vortex/nwp/util/ens.py +144 -63
  88. vortex/nwp/util/hooks.py +30 -19
  89. vortex/nwp/util/taskdeco.py +28 -24
  90. vortex/nwp/util/usepygram.py +278 -172
  91. vortex/nwp/util/usetnt.py +31 -17
  92. vortex/sessions.py +72 -39
  93. vortex/syntax/__init__.py +1 -1
  94. vortex/syntax/stdattrs.py +410 -171
  95. vortex/syntax/stddeco.py +31 -22
  96. vortex/toolbox.py +327 -192
  97. vortex/tools/__init__.py +11 -2
  98. vortex/tools/actions.py +125 -59
  99. vortex/tools/addons.py +111 -92
  100. vortex/tools/arm.py +42 -22
  101. vortex/tools/compression.py +72 -69
  102. vortex/tools/date.py +11 -4
  103. vortex/tools/delayedactions.py +242 -132
  104. vortex/tools/env.py +75 -47
  105. vortex/tools/folder.py +342 -171
  106. vortex/tools/grib.py +311 -149
  107. vortex/tools/lfi.py +423 -216
  108. vortex/tools/listings.py +109 -40
  109. vortex/tools/names.py +218 -156
  110. vortex/tools/net.py +632 -298
  111. vortex/tools/parallelism.py +93 -61
  112. vortex/tools/prestaging.py +55 -31
  113. vortex/tools/schedulers.py +172 -105
  114. vortex/tools/services.py +402 -333
  115. vortex/tools/storage.py +293 -358
  116. vortex/tools/surfex.py +24 -24
  117. vortex/tools/systems.py +1211 -631
  118. vortex/tools/targets.py +156 -100
  119. vortex/util/__init__.py +1 -1
  120. vortex/util/config.py +377 -327
  121. vortex/util/empty.py +2 -2
  122. vortex/util/helpers.py +56 -24
  123. vortex/util/introspection.py +18 -12
  124. vortex/util/iosponge.py +8 -4
  125. vortex/util/roles.py +4 -6
  126. vortex/util/storefunctions.py +39 -13
  127. vortex/util/structs.py +3 -3
  128. vortex/util/worker.py +29 -17
  129. vortex_nwp-2.0.0b2.dist-info/METADATA +66 -0
  130. vortex_nwp-2.0.0b2.dist-info/RECORD +142 -0
  131. {vortex_nwp-2.0.0b1.dist-info → vortex_nwp-2.0.0b2.dist-info}/WHEEL +1 -1
  132. vortex/layout/appconf.py +0 -109
  133. vortex/layout/jobs.py +0 -1276
  134. vortex/layout/nodes.py +0 -1424
  135. vortex/layout/subjobs.py +0 -464
  136. vortex_nwp-2.0.0b1.dist-info/METADATA +0 -50
  137. vortex_nwp-2.0.0b1.dist-info/RECORD +0 -146
  138. {vortex_nwp-2.0.0b1.dist-info → vortex_nwp-2.0.0b2.dist-info}/LICENSE +0 -0
  139. {vortex_nwp-2.0.0b1.dist-info → vortex_nwp-2.0.0b2.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