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.
- vortex_nwp-2.0.0b2/PKG-INFO +66 -0
- vortex_nwp-2.0.0b2/README.md +42 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/pyproject.toml +9 -2
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/__init__.py +59 -45
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/algo/__init__.py +3 -2
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/algo/components.py +940 -614
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/algo/mpitools.py +802 -497
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/algo/serversynctools.py +34 -33
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/config.py +19 -22
- vortex_nwp-2.0.0b2/src/vortex/data/__init__.py +19 -0
- vortex_nwp-2.0.0b2/src/vortex/data/abstractstores.py +1510 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/data/containers.py +217 -162
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/data/contents.py +65 -39
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/data/executables.py +93 -102
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/data/flow.py +40 -34
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/data/geometries.py +228 -132
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/data/handlers.py +428 -225
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/data/outflow.py +15 -15
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/data/providers.py +185 -163
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/data/resources.py +48 -42
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/data/stores.py +544 -413
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/gloves.py +114 -87
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/layout/__init__.py +1 -8
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/layout/contexts.py +150 -84
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/layout/dataflow.py +353 -202
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/layout/monitor.py +264 -128
- vortex_nwp-2.0.0b2/src/vortex/nwp/__init__.py +14 -0
- vortex_nwp-2.0.0b2/src/vortex/nwp/algo/__init__.py +21 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/algo/assim.py +205 -151
- vortex_nwp-2.0.0b2/src/vortex/nwp/algo/clim.py +1086 -0
- vortex_nwp-2.0.0b2/src/vortex/nwp/algo/coupling.py +831 -0
- vortex_nwp-2.0.0b2/src/vortex/nwp/algo/eda.py +840 -0
- vortex_nwp-2.0.0b2/src/vortex/nwp/algo/eps.py +785 -0
- vortex_nwp-2.0.0b2/src/vortex/nwp/algo/forecasts.py +894 -0
- vortex_nwp-2.0.0b2/src/vortex/nwp/algo/fpserver.py +1303 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/algo/ifsnaming.py +205 -145
- vortex_nwp-2.0.0b2/src/vortex/nwp/algo/ifsroot.py +399 -0
- vortex_nwp-2.0.0b2/src/vortex/nwp/algo/monitoring.py +258 -0
- vortex_nwp-2.0.0b2/src/vortex/nwp/algo/mpitools.py +684 -0
- vortex_nwp-2.0.0b2/src/vortex/nwp/algo/odbtools.py +1238 -0
- vortex_nwp-2.0.0b2/src/vortex/nwp/algo/oopsroot.py +911 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/algo/oopstests.py +90 -56
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/algo/request.py +287 -206
- vortex_nwp-2.0.0b2/src/vortex/nwp/algo/stdpost.py +1641 -0
- vortex_nwp-2.0.0b2/src/vortex/nwp/data/__init__.py +30 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/data/assim.py +125 -137
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/data/boundaries.py +121 -68
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/data/climfiles.py +193 -211
- vortex_nwp-2.0.0b2/src/vortex/nwp/data/configfiles.py +153 -0
- vortex_nwp-2.0.0b2/src/vortex/nwp/data/consts.py +954 -0
- vortex_nwp-2.0.0b2/src/vortex/nwp/data/ctpini.py +149 -0
- vortex_nwp-2.0.0b2/src/vortex/nwp/data/diagnostics.py +209 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/data/eda.py +50 -51
- vortex_nwp-2.0.0b2/src/vortex/nwp/data/eps.py +432 -0
- vortex_nwp-2.0.0b2/src/vortex/nwp/data/executables.py +1045 -0
- vortex_nwp-2.0.0b2/src/vortex/nwp/data/fields.py +111 -0
- vortex_nwp-2.0.0b2/src/vortex/nwp/data/gridfiles.py +380 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/data/logs.py +250 -217
- vortex_nwp-2.0.0b2/src/vortex/nwp/data/modelstates.py +363 -0
- vortex_nwp-2.0.0b2/src/vortex/nwp/data/monitoring.py +193 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/data/namelists.py +254 -202
- vortex_nwp-2.0.0b2/src/vortex/nwp/data/obs.py +840 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/data/oopsexec.py +22 -20
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/data/providers.py +90 -65
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/data/query.py +71 -82
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/data/stores.py +49 -36
- vortex_nwp-2.0.0b2/src/vortex/nwp/data/surfex.py +337 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/syntax/__init__.py +1 -1
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/syntax/stdattrs.py +173 -111
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/__init__.py +2 -2
- vortex_nwp-2.0.0b2/src/vortex/nwp/tools/addons.py +40 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/agt.py +24 -12
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/bdap.py +16 -5
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/bdcp.py +4 -1
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/bdm.py +3 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/bdmp.py +14 -9
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/conftools.py +728 -378
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/drhook.py +12 -8
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/grib.py +65 -39
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/gribdiff.py +22 -17
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/ifstools.py +82 -42
- vortex_nwp-2.0.0b2/src/vortex/nwp/tools/igastuff.py +273 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/mars.py +14 -2
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/odb.py +234 -125
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/partitioning.py +61 -37
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/tools/satrad.py +27 -12
- vortex_nwp-2.0.0b2/src/vortex/nwp/util/async.py +212 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/util/beacon.py +10 -10
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/util/diffpygram.py +174 -86
- vortex_nwp-2.0.0b2/src/vortex/nwp/util/ens.py +279 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/util/hooks.py +30 -19
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/util/taskdeco.py +28 -24
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/util/usepygram.py +278 -172
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/util/usetnt.py +31 -17
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/sessions.py +72 -39
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/syntax/__init__.py +1 -1
- vortex_nwp-2.0.0b2/src/vortex/syntax/stdattrs.py +867 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/syntax/stddeco.py +31 -22
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/toolbox.py +327 -192
- vortex_nwp-2.0.0b2/src/vortex/tools/__init__.py +20 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/actions.py +125 -59
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/addons.py +111 -92
- vortex_nwp-2.0.0b2/src/vortex/tools/arm.py +96 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/compression.py +72 -69
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/date.py +11 -4
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/delayedactions.py +242 -132
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/env.py +75 -47
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/folder.py +342 -171
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/grib.py +311 -149
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/lfi.py +423 -216
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/listings.py +109 -40
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/names.py +218 -156
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/net.py +632 -298
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/parallelism.py +93 -61
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/prestaging.py +55 -31
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/schedulers.py +172 -105
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/services.py +402 -333
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/storage.py +293 -358
- vortex_nwp-2.0.0b2/src/vortex/tools/surfex.py +61 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/systems.py +1211 -631
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/targets.py +156 -100
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/util/__init__.py +1 -1
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/util/config.py +377 -327
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/util/empty.py +2 -2
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/util/helpers.py +56 -24
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/util/introspection.py +18 -12
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/util/iosponge.py +8 -4
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/util/roles.py +4 -6
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/util/storefunctions.py +39 -13
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/util/structs.py +3 -3
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/util/worker.py +29 -17
- vortex_nwp-2.0.0b2/src/vortex_nwp.egg-info/PKG-INFO +66 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex_nwp.egg-info/SOURCES.txt +2 -4
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex_nwp.egg-info/requires.txt +4 -0
- vortex_nwp-2.0.0b2/tests/test_config.py +58 -0
- vortex_nwp-2.0.0b2/tests/test_templates.py +40 -0
- vortex_nwp-2.0.0b1/PKG-INFO +0 -50
- vortex_nwp-2.0.0b1/README.md +0 -29
- vortex_nwp-2.0.0b1/src/vortex/data/__init__.py +0 -13
- vortex_nwp-2.0.0b1/src/vortex/data/abstractstores.py +0 -1572
- vortex_nwp-2.0.0b1/src/vortex/layout/appconf.py +0 -109
- vortex_nwp-2.0.0b1/src/vortex/layout/jobs.py +0 -1276
- vortex_nwp-2.0.0b1/src/vortex/layout/nodes.py +0 -1424
- vortex_nwp-2.0.0b1/src/vortex/layout/subjobs.py +0 -464
- vortex_nwp-2.0.0b1/src/vortex/nwp/__init__.py +0 -11
- vortex_nwp-2.0.0b1/src/vortex/nwp/algo/__init__.py +0 -12
- vortex_nwp-2.0.0b1/src/vortex/nwp/algo/clim.py +0 -920
- vortex_nwp-2.0.0b1/src/vortex/nwp/algo/coupling.py +0 -609
- vortex_nwp-2.0.0b1/src/vortex/nwp/algo/eda.py +0 -632
- vortex_nwp-2.0.0b1/src/vortex/nwp/algo/eps.py +0 -613
- vortex_nwp-2.0.0b1/src/vortex/nwp/algo/forecasts.py +0 -745
- vortex_nwp-2.0.0b1/src/vortex/nwp/algo/fpserver.py +0 -927
- vortex_nwp-2.0.0b1/src/vortex/nwp/algo/ifsroot.py +0 -311
- vortex_nwp-2.0.0b1/src/vortex/nwp/algo/monitoring.py +0 -202
- vortex_nwp-2.0.0b1/src/vortex/nwp/algo/mpitools.py +0 -554
- vortex_nwp-2.0.0b1/src/vortex/nwp/algo/odbtools.py +0 -974
- vortex_nwp-2.0.0b1/src/vortex/nwp/algo/oopsroot.py +0 -735
- vortex_nwp-2.0.0b1/src/vortex/nwp/algo/stdpost.py +0 -1285
- vortex_nwp-2.0.0b1/src/vortex/nwp/data/__init__.py +0 -12
- vortex_nwp-2.0.0b1/src/vortex/nwp/data/configfiles.py +0 -149
- vortex_nwp-2.0.0b1/src/vortex/nwp/data/consts.py +0 -929
- vortex_nwp-2.0.0b1/src/vortex/nwp/data/ctpini.py +0 -133
- vortex_nwp-2.0.0b1/src/vortex/nwp/data/diagnostics.py +0 -181
- vortex_nwp-2.0.0b1/src/vortex/nwp/data/eps.py +0 -383
- vortex_nwp-2.0.0b1/src/vortex/nwp/data/executables.py +0 -1039
- vortex_nwp-2.0.0b1/src/vortex/nwp/data/fields.py +0 -96
- vortex_nwp-2.0.0b1/src/vortex/nwp/data/gridfiles.py +0 -308
- vortex_nwp-2.0.0b1/src/vortex/nwp/data/modelstates.py +0 -334
- vortex_nwp-2.0.0b1/src/vortex/nwp/data/monitoring.py +0 -220
- vortex_nwp-2.0.0b1/src/vortex/nwp/data/obs.py +0 -748
- vortex_nwp-2.0.0b1/src/vortex/nwp/data/surfex.py +0 -338
- vortex_nwp-2.0.0b1/src/vortex/nwp/tools/addons.py +0 -35
- vortex_nwp-2.0.0b1/src/vortex/nwp/tools/igastuff.py +0 -249
- vortex_nwp-2.0.0b1/src/vortex/nwp/util/async.py +0 -184
- vortex_nwp-2.0.0b1/src/vortex/nwp/util/ens.py +0 -198
- vortex_nwp-2.0.0b1/src/vortex/syntax/stdattrs.py +0 -628
- vortex_nwp-2.0.0b1/src/vortex/tools/__init__.py +0 -11
- vortex_nwp-2.0.0b1/src/vortex/tools/arm.py +0 -76
- vortex_nwp-2.0.0b1/src/vortex/tools/surfex.py +0 -61
- vortex_nwp-2.0.0b1/src/vortex_nwp.egg-info/PKG-INFO +0 -50
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/LICENSE +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/setup.cfg +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/algo/mpitools_templates/envelope_wrapper_default.tpl +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/algo/mpitools_templates/envelope_wrapper_mpiauto.tpl +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/algo/mpitools_templates/wrapstd_wrapper_default.tpl +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/data/geometries.ini +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/nwp/util/__init__.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/proxy.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/ddhpack.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/odb.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex/tools/rawfiles.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex_nwp.egg-info/dependency_links.txt +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/src/vortex_nwp.egg-info/top_level.txt +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_algo_server.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_arpifs_listings_integration.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_cfgparser.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_cfgtemplating.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_compression.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_conftools.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_containers.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_doctests.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_ecmwf_interface.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_env.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_epygram.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_gco.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_ifstools.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_import.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_iosponge.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_job_examples.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_layoutappconf.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_layoutjobs.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_layoutmonitor.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_layoutnodes.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_net_netstat.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_net_ssh.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_partitioning.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_providers.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_sessions_stuff.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_simpleworkflow.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_storage.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_stores.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_syntax.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_targets.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_toolsodb.py +0 -0
- {vortex_nwp-2.0.0b1 → vortex_nwp-2.0.0b2}/tests/test_uget.py +0 -0
- {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
|
+

|
|
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
|
+

|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
24
|
-
|
|
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
|
-
|
|
27
|
-
|
|
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",
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
125
|
+
logger.warning("Terminate active kid %s", str(kid))
|
|
125
126
|
kid.terminate()
|
|
126
|
-
print(
|
|
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(
|
|
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
|
|
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__ =
|
|
13
|
+
__tocinfoline__ = "Generic AlgoComponent classes (and their utility classes)"
|