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.
- vortex/__init__.py +75 -47
- vortex/algo/__init__.py +3 -2
- vortex/algo/components.py +944 -618
- vortex/algo/mpitools.py +802 -497
- vortex/algo/mpitools_templates/__init__.py +1 -0
- vortex/algo/serversynctools.py +34 -33
- vortex/config.py +19 -22
- vortex/data/__init__.py +9 -3
- vortex/data/abstractstores.py +593 -655
- vortex/data/containers.py +217 -162
- vortex/data/contents.py +65 -39
- vortex/data/executables.py +93 -102
- vortex/data/flow.py +40 -34
- vortex/data/geometries.py +228 -132
- vortex/data/handlers.py +436 -227
- vortex/data/outflow.py +15 -15
- vortex/data/providers.py +185 -163
- vortex/data/resources.py +48 -42
- vortex/data/stores.py +540 -417
- vortex/data/sync_templates/__init__.py +0 -0
- vortex/gloves.py +114 -87
- vortex/layout/__init__.py +1 -8
- vortex/layout/contexts.py +150 -84
- vortex/layout/dataflow.py +353 -202
- vortex/layout/monitor.py +264 -128
- vortex/nwp/__init__.py +5 -2
- vortex/nwp/algo/__init__.py +14 -5
- vortex/nwp/algo/assim.py +205 -151
- vortex/nwp/algo/clim.py +683 -517
- vortex/nwp/algo/coupling.py +447 -225
- vortex/nwp/algo/eda.py +437 -229
- vortex/nwp/algo/eps.py +403 -231
- vortex/nwp/algo/forecasts.py +416 -275
- vortex/nwp/algo/fpserver.py +683 -307
- vortex/nwp/algo/ifsnaming.py +205 -145
- vortex/nwp/algo/ifsroot.py +215 -122
- vortex/nwp/algo/monitoring.py +137 -76
- vortex/nwp/algo/mpitools.py +330 -190
- vortex/nwp/algo/odbtools.py +637 -353
- vortex/nwp/algo/oopsroot.py +454 -273
- vortex/nwp/algo/oopstests.py +90 -56
- vortex/nwp/algo/request.py +287 -206
- vortex/nwp/algo/stdpost.py +878 -522
- vortex/nwp/data/__init__.py +22 -4
- vortex/nwp/data/assim.py +125 -137
- vortex/nwp/data/boundaries.py +121 -68
- vortex/nwp/data/climfiles.py +193 -211
- vortex/nwp/data/configfiles.py +73 -69
- vortex/nwp/data/consts.py +426 -401
- vortex/nwp/data/ctpini.py +59 -43
- vortex/nwp/data/diagnostics.py +94 -66
- vortex/nwp/data/eda.py +50 -51
- vortex/nwp/data/eps.py +195 -146
- vortex/nwp/data/executables.py +440 -434
- vortex/nwp/data/fields.py +63 -48
- vortex/nwp/data/gridfiles.py +183 -111
- vortex/nwp/data/logs.py +250 -217
- vortex/nwp/data/modelstates.py +180 -151
- vortex/nwp/data/monitoring.py +72 -99
- vortex/nwp/data/namelists.py +254 -202
- vortex/nwp/data/obs.py +400 -308
- vortex/nwp/data/oopsexec.py +22 -20
- vortex/nwp/data/providers.py +90 -65
- vortex/nwp/data/query.py +71 -82
- vortex/nwp/data/stores.py +49 -36
- vortex/nwp/data/surfex.py +136 -137
- vortex/nwp/syntax/__init__.py +1 -1
- vortex/nwp/syntax/stdattrs.py +173 -111
- vortex/nwp/tools/__init__.py +2 -2
- vortex/nwp/tools/addons.py +22 -17
- vortex/nwp/tools/agt.py +24 -12
- vortex/nwp/tools/bdap.py +16 -5
- vortex/nwp/tools/bdcp.py +4 -1
- vortex/nwp/tools/bdm.py +3 -0
- vortex/nwp/tools/bdmp.py +14 -9
- vortex/nwp/tools/conftools.py +728 -378
- vortex/nwp/tools/drhook.py +12 -8
- vortex/nwp/tools/grib.py +65 -39
- vortex/nwp/tools/gribdiff.py +22 -17
- vortex/nwp/tools/ifstools.py +82 -42
- vortex/nwp/tools/igastuff.py +167 -143
- vortex/nwp/tools/mars.py +14 -2
- vortex/nwp/tools/odb.py +234 -125
- vortex/nwp/tools/partitioning.py +61 -37
- vortex/nwp/tools/satrad.py +27 -12
- vortex/nwp/util/async.py +83 -55
- vortex/nwp/util/beacon.py +10 -10
- vortex/nwp/util/diffpygram.py +174 -86
- vortex/nwp/util/ens.py +144 -63
- vortex/nwp/util/hooks.py +30 -19
- vortex/nwp/util/taskdeco.py +28 -24
- vortex/nwp/util/usepygram.py +278 -172
- vortex/nwp/util/usetnt.py +31 -17
- vortex/sessions.py +72 -39
- vortex/syntax/__init__.py +1 -1
- vortex/syntax/stdattrs.py +410 -171
- vortex/syntax/stddeco.py +31 -22
- vortex/toolbox.py +327 -192
- vortex/tools/__init__.py +11 -2
- vortex/tools/actions.py +110 -121
- vortex/tools/addons.py +111 -92
- vortex/tools/arm.py +42 -22
- vortex/tools/compression.py +72 -69
- vortex/tools/date.py +11 -4
- vortex/tools/delayedactions.py +242 -132
- vortex/tools/env.py +75 -47
- vortex/tools/folder.py +342 -171
- vortex/tools/grib.py +341 -162
- vortex/tools/lfi.py +423 -216
- vortex/tools/listings.py +109 -40
- vortex/tools/names.py +218 -156
- vortex/tools/net.py +655 -299
- vortex/tools/parallelism.py +93 -61
- vortex/tools/prestaging.py +55 -31
- vortex/tools/schedulers.py +172 -105
- vortex/tools/services.py +403 -334
- vortex/tools/storage.py +293 -358
- vortex/tools/surfex.py +24 -24
- vortex/tools/systems.py +1234 -643
- vortex/tools/targets.py +156 -100
- vortex/util/__init__.py +1 -1
- vortex/util/config.py +378 -327
- vortex/util/empty.py +2 -2
- vortex/util/helpers.py +56 -24
- vortex/util/introspection.py +18 -12
- vortex/util/iosponge.py +8 -4
- vortex/util/roles.py +4 -6
- vortex/util/storefunctions.py +39 -13
- vortex/util/structs.py +3 -3
- vortex/util/worker.py +29 -17
- vortex_nwp-2.1.0.dist-info/METADATA +67 -0
- vortex_nwp-2.1.0.dist-info/RECORD +144 -0
- {vortex_nwp-2.0.0b1.dist-info → vortex_nwp-2.1.0.dist-info}/WHEEL +1 -1
- vortex/layout/appconf.py +0 -109
- vortex/layout/jobs.py +0 -1276
- vortex/layout/nodes.py +0 -1424
- vortex/layout/subjobs.py +0 -464
- vortex_nwp-2.0.0b1.dist-info/METADATA +0 -50
- vortex_nwp-2.0.0b1.dist-info/RECORD +0 -146
- {vortex_nwp-2.0.0b1.dist-info → vortex_nwp-2.1.0.dist-info/licenses}/LICENSE +0 -0
- {vortex_nwp-2.0.0b1.dist-info → vortex_nwp-2.1.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
vortex/__init__.py,sha256=2D7c4cUOF2Eb4m2rCKxhttmBy5R_7Xb3iBCLcy51vkw,4352
|
|
2
|
+
vortex/config.py,sha256=E7feBIG22POq5TyUN3MNXH-ZU7q08alF5nrJ1aUftG0,2815
|
|
3
|
+
vortex/gloves.py,sha256=GKz27S8eLfRlk8fNqVL_z1gsQ8zvEj73p5uVi11ou00,8487
|
|
4
|
+
vortex/proxy.py,sha256=OlPrVUJS5FoKt5pX8ApN1crFFDj8RJAqhDEilwvfrYU,127
|
|
5
|
+
vortex/sessions.py,sha256=l_ZUUFS-l0J2Mg6KEXaUQiDhbIABrWCfcY-9ExazKEg,9988
|
|
6
|
+
vortex/toolbox.py,sha256=h2QE5BoXWWEcQwK21D9YPda6t4rmCtLB5F9WeJrqT14,41379
|
|
7
|
+
vortex/algo/__init__.py,sha256=I_9COn_QBRbwvbqhs0X3CdHeR97NZhBacIqwKjnVBTg,359
|
|
8
|
+
vortex/algo/components.py,sha256=zs_DaKHFEHX9GQ-pn1HheAo4JvNusQi3D4u3ZhqVqe4,89362
|
|
9
|
+
vortex/algo/mpitools.py,sha256=EffZ4Ok934tvEYyUjKpVA-lEUVA29FwUVBtUQ8xWnDI,73977
|
|
10
|
+
vortex/algo/serversynctools.py,sha256=fPel0txVHsrUfk6VFaeKa0D6i21fOskIAR_BbByBv9g,5601
|
|
11
|
+
vortex/algo/mpitools_templates/__init__.py,sha256=Jbw903aPqVKF-AaSoB-mGMxthSvm88O_yqGoGmf_S_U,18
|
|
12
|
+
vortex/algo/mpitools_templates/envelope_wrapper_default.tpl,sha256=4VhkDx_YbOYywKQ82HIxRJXGcDpLuOgqcY7Edx9Rxyw,453
|
|
13
|
+
vortex/algo/mpitools_templates/envelope_wrapper_mpiauto.tpl,sha256=iB4_4jz-7QDqpl6AxrlCACsotJnEMG75dtazuGfkCb4,514
|
|
14
|
+
vortex/algo/mpitools_templates/wrapstd_wrapper_default.tpl,sha256=hh1Um95FIuvXAhUTMifAfixtfGgyjF1vEaF1nmbqMLw,502
|
|
15
|
+
vortex/data/__init__.py,sha256=XaHof5W6oCalr4X6oYAK4zW3z3F6mKuwdbKxmmmDraY,560
|
|
16
|
+
vortex/data/abstractstores.py,sha256=tDEEHqyk7-5ETS8RdYFxiGAOkxmtJbj5TlR7Qx_JtAE,55373
|
|
17
|
+
vortex/data/containers.py,sha256=Qny5rqwXEdDWxG4JlC8KcsSAsHK3pp8qukZj1PTFBOM,26004
|
|
18
|
+
vortex/data/contents.py,sha256=ZrwlJfOvkTemzikFRgYBQH3ApC-TPNrbZxpZstzDdbY,19079
|
|
19
|
+
vortex/data/executables.py,sha256=FeR3SA2wW97zAQXwWVecZ0v6VYT5L_3K1Czuv33Bk74,6723
|
|
20
|
+
vortex/data/flow.py,sha256=P1itBnA8jaoCWnVQjqbD_Pf26rpzud1JdwSLECDnDl4,3008
|
|
21
|
+
vortex/data/geometries.ini,sha256=J7hX5hYWqwBjdUAul6q8j10U6b3I-QEHrFJ98LBTQXM,52805
|
|
22
|
+
vortex/data/geometries.py,sha256=SjCF-74zDkbpt3qQujJU_UpeoBtgS7-xrEhbC4ywyRE,27429
|
|
23
|
+
vortex/data/handlers.py,sha256=6tRfCw9yzQCndVhRjz3ia0dyYhV3F7_rWeXjoxBtbvs,47550
|
|
24
|
+
vortex/data/outflow.py,sha256=IPKJkn75lRvhSqN5969TuhRAPnsZKlrWR4Cmw6VBFDs,1475
|
|
25
|
+
vortex/data/providers.py,sha256=kLHJI3F9mkRjRcQzs0xaH_cdfvXd9H4x5h1Lm4PGSFk,15652
|
|
26
|
+
vortex/data/resources.py,sha256=UOwvQDTJxS9z66Aa7JM2nWM3IxrMWvY3L2J9D5w3sZw,6348
|
|
27
|
+
vortex/data/stores.py,sha256=5svCgpE8WuuAWCnOrrHOBw30EOt0cvDoxrlq9rIWKOw,44517
|
|
28
|
+
vortex/data/sync_templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
29
|
+
vortex/layout/__init__.py,sha256=aZsDhVJrd3-648vw-UESI_2BLxyGl71sHdyrg9cL638,826
|
|
30
|
+
vortex/layout/contexts.py,sha256=GkysEtOOUj3nQvGUWrFjOOjzv7SmWFPUSLTH_pMMycI,20363
|
|
31
|
+
vortex/layout/dataflow.py,sha256=SKOUJKbtftW4POStjyBqNrqjvfbutsNHnWQ-p_75l_8,44792
|
|
32
|
+
vortex/layout/monitor.py,sha256=DIUXoW242tg5B6fFEEe2Og-NOxli1T_xpcNWFvTaWXQ,34316
|
|
33
|
+
vortex/nwp/__init__.py,sha256=UfB2il-lEjF87PyVO9sGxjcuy3OYhZwskZw3z52VYAE,311
|
|
34
|
+
vortex/nwp/algo/__init__.py,sha256=_it4GhWxay_WAy0qr2IxLdIqsjWxXcsSSB7wx1BitB4,577
|
|
35
|
+
vortex/nwp/algo/assim.py,sha256=vt3UjvAik4xBl_QC-Yj1CxY4vaiAYvGzzf27XwLoykA,15922
|
|
36
|
+
vortex/nwp/algo/clim.py,sha256=Z9QwUfosH0X_xTg6mam68qWIvw6Ts6CZIpc7Nb0NO1s,37511
|
|
37
|
+
vortex/nwp/algo/coupling.py,sha256=6KQ_YB7PCvVbt6c2VEtpCzwIyWRTjLfu54mNpKnXL9Q,29755
|
|
38
|
+
vortex/nwp/algo/eda.py,sha256=Wf2mt1r6v_ZYDz4BFyt-4JP1XAsO8sZW3O1UAOSRzmU,30746
|
|
39
|
+
vortex/nwp/algo/eps.py,sha256=JCBFiaFF9TQ-x7Szgw44Cd39tRD9184UXqOtoT6aRCs,26812
|
|
40
|
+
vortex/nwp/algo/forecasts.py,sha256=sqs0IETanpfS8q1f1Pl3mQZtSNbfOIUOidmcduGp8EU,30063
|
|
41
|
+
vortex/nwp/algo/fpserver.py,sha256=98HQZsdQE22spy_mIE1G-NORQMMjfA5grEjeIMSlP9w,50163
|
|
42
|
+
vortex/nwp/algo/ifsnaming.py,sha256=WfpSpRJ7ua3ihqv8Y4UkrvE4pb0CkNWKIlW9EjY-2ao,11188
|
|
43
|
+
vortex/nwp/algo/ifsroot.py,sha256=Mmp0sZtexP5ob3iUFTiVbgVWog7ubAYPut0cAB0vbbg,14230
|
|
44
|
+
vortex/nwp/algo/monitoring.py,sha256=JVPZPw_I5QRVtYvvSYpJpBy5RRPhqBQjcAFfIkvKuHA,8893
|
|
45
|
+
vortex/nwp/algo/mpitools.py,sha256=QO3I9iMdY69znnA6hJy8XUAzBoejDpsVMQFRo3YzXro,24876
|
|
46
|
+
vortex/nwp/algo/odbtools.py,sha256=xltXS1lpxeeJXeCGnFiqFUhGqMI6BlZzKcSLhsnd2cs,44094
|
|
47
|
+
vortex/nwp/algo/oopsroot.py,sha256=es3p7RPOixQT74TcglJX1q8MswxveVnLZa84kyhu3uM,33806
|
|
48
|
+
vortex/nwp/algo/oopstests.py,sha256=owQAS7_fGbUGZGzMsJek32dbb3JQ6dafSVBrdmveQ-Q,6654
|
|
49
|
+
vortex/nwp/algo/request.py,sha256=y5N9RUfKoPXR6EbSely37Zz6d-2HYyfV3UCvvoenqbY,22809
|
|
50
|
+
vortex/nwp/algo/stdpost.py,sha256=kpZrP6s92PrrAWyLrf61bSidwkJzC3M6sxrmpete3S0,54824
|
|
51
|
+
vortex/nwp/data/__init__.py,sha256=K__vn-gvNL7ytd0DGEQAZzkuo2gLwcCcfgMcQMLuOE4,886
|
|
52
|
+
vortex/nwp/data/assim.py,sha256=Dv5nmRYDDzYopC6xIwAl92HFTIz3k18C1jFE_IhYzuU,10095
|
|
53
|
+
vortex/nwp/data/boundaries.py,sha256=xZoIriM5L-Q66_am6rOD2ZO0s-31iAUeTE7NZIXXvHI,8114
|
|
54
|
+
vortex/nwp/data/climfiles.py,sha256=hlpe51wc-qrLFV_PX3vCedfLJu8Ko4VHa_qoVmA-Wcg,12610
|
|
55
|
+
vortex/nwp/data/configfiles.py,sha256=0c3VvM25dhU6-QEJs5Wo4IckIVjXFHc-tTEzh1Bho1c,3760
|
|
56
|
+
vortex/nwp/data/consts.py,sha256=riUtekoj3ozBgjxW6xEzhEaWWA7QvZFhU52Y3JS02Eg,21871
|
|
57
|
+
vortex/nwp/data/ctpini.py,sha256=wEpJG7Px2hb7Vudn4eY2vJHKi8YYO99Sd6UJAeT5kMI,3537
|
|
58
|
+
vortex/nwp/data/diagnostics.py,sha256=4ZP1w0ls2FIH59441rTCYDrp0JFfRJ7tiLDWmrdvuwM,5054
|
|
59
|
+
vortex/nwp/data/eda.py,sha256=rVQ35SpHVdHAQ10-LhyGy1k6P9Dbd6os8Crz2I4ThvY,4112
|
|
60
|
+
vortex/nwp/data/eps.py,sha256=nLKTEpEeMxV9oE_sf87xihspMqwzXA8r9uJPP6PdycE,11861
|
|
61
|
+
vortex/nwp/data/executables.py,sha256=xFRHzE5rK71m7gkd-LgMO3KSs0uBeCLqW-8vmedMHqQ,25036
|
|
62
|
+
vortex/nwp/data/fields.py,sha256=umIbobpgbqIxo4pIIKgpYHwmk4CNLj2LBINOAF-Hs_g,3088
|
|
63
|
+
vortex/nwp/data/gridfiles.py,sha256=wXuszvi_-ADaH6NC5A-QM6HhhYgOKtL2dt3DSS5-mWk,10894
|
|
64
|
+
vortex/nwp/data/logs.py,sha256=ZteBocLstW4KuXYEYyHkPNU_wBImSEo-eZHgSeh28gA,17756
|
|
65
|
+
vortex/nwp/data/modelstates.py,sha256=Yy0zHkuR6bAqscoE828Pq48zr1ba2qQ0LZ6BvlitwvM,10420
|
|
66
|
+
vortex/nwp/data/monitoring.py,sha256=-9IYKftPlMi1gGVwbswwdldUY7Y8nLrsrIHG9AW2l8Q,4768
|
|
67
|
+
vortex/nwp/data/namelists.py,sha256=OlKf_XIcxMzqFb6BK1sotV0naLBWQFm0_SkjJfMhTR0,20853
|
|
68
|
+
vortex/nwp/data/obs.py,sha256=ZYUJ_NvI1OaaWw7h4I5tM3lNns66l--bwtHtayWKPoA,25378
|
|
69
|
+
vortex/nwp/data/oopsexec.py,sha256=LlCfDZuEZVuTBFwa-pzRpO9nxOOq2398ObBItjiOXBE,1995
|
|
70
|
+
vortex/nwp/data/providers.py,sha256=eHibwb_jkeFLyIywY4nA3PzpvxHal5J_3NjlF2M0bvc,7293
|
|
71
|
+
vortex/nwp/data/query.py,sha256=IGGgGNMKH3beTpsx1_YsIYg6OE-cUBQzczwBE9m1JPU,5451
|
|
72
|
+
vortex/nwp/data/stores.py,sha256=-WK7uaF4SlwDgABVFx-Vz7_hdSLPsYgIcECWl46Prk8,5354
|
|
73
|
+
vortex/nwp/data/surfex.py,sha256=u8_SBCBAKhz1utghoGmB-bWTtDwIFteOEQv1HRkYLYw,7643
|
|
74
|
+
vortex/nwp/syntax/__init__.py,sha256=m9oAm8sMUB8WzEnq93II1I20fYd1O29nBGWaa5ClmzQ,281
|
|
75
|
+
vortex/nwp/syntax/stdattrs.py,sha256=HiLqZG_iuxqzYLsybMNAxoz_z96frg_PTksXomuYCRE,12928
|
|
76
|
+
vortex/nwp/tools/__init__.py,sha256=sR7JX87XxZGSWzH1zLHzbdid7hIy96yUQodYqZo8Jz8,230
|
|
77
|
+
vortex/nwp/tools/addons.py,sha256=-EFJanufVR1Czt156VmhYSKrmCz8ddJ4IqTa12wuYGc,934
|
|
78
|
+
vortex/nwp/tools/agt.py,sha256=argNI3XB5G__mxcZH1K8BWd1Fw9W2Fvfiu5Y_S8sBb8,2342
|
|
79
|
+
vortex/nwp/tools/bdap.py,sha256=GdqC4QclVHzZUNQGYQPu9EmFPNEEBadDNGsLmrE2XUs,1689
|
|
80
|
+
vortex/nwp/tools/bdcp.py,sha256=cDlkIVZW9grF2YnieIoiwsDhPxQsJIcaBuOCu6rsCzo,986
|
|
81
|
+
vortex/nwp/tools/bdm.py,sha256=e9o3IpR9C4GGd7NhXWt0bpogrcVkqn_hbEJBtThSV5g,360
|
|
82
|
+
vortex/nwp/tools/bdmp.py,sha256=tlsaPvsPtKSXrq2T7X_xtAdWGZ3Hg2qJUJfH8Fetx3E,1506
|
|
83
|
+
vortex/nwp/tools/conftools.py,sha256=bCZ1vUMc1fkuzFEKw95KDXD9Fs4-uDg546RHuJyJmtU,59494
|
|
84
|
+
vortex/nwp/tools/drhook.py,sha256=8BgHw1UGxgviLche73XUltuUtkN9rqjBPy4oBLyG4KY,1972
|
|
85
|
+
vortex/nwp/tools/grib.py,sha256=Uur8z4NjGoRXV4Via-63F9Px59FKG5UxiLM9yMgNkUs,10262
|
|
86
|
+
vortex/nwp/tools/gribdiff.py,sha256=VD4nH06DuFheE9HsFT1UXWnvAC5vUfVBPeqQhCK4wbo,3137
|
|
87
|
+
vortex/nwp/tools/ifstools.py,sha256=JzkQgsD4zwbPFA9Du_oRnOog7liHF8w5JmoxzyWKc08,7041
|
|
88
|
+
vortex/nwp/tools/igastuff.py,sha256=IAnsFwiBcnyqHMmXiTX32dE1uaSWst41DBM98SNMdVU,8249
|
|
89
|
+
vortex/nwp/tools/mars.py,sha256=HR_dpczIhTxQFcNs0BXGsXvMHZkFX4u-XhYw5lFIxXY,1823
|
|
90
|
+
vortex/nwp/tools/odb.py,sha256=2PbZ6p5VIcGDzZLDcUEx39IAqF1GhUWgNOhO8uXywmk,23101
|
|
91
|
+
vortex/nwp/tools/partitioning.py,sha256=8_QVB3fNr5sPY7tlh2FxTzzLyLATq9AEuEheZiiHWUI,9242
|
|
92
|
+
vortex/nwp/tools/satrad.py,sha256=t16vD0lGoUtxhbfDuC282dIEtCrQ9xYFtjUpEqoZa8s,2421
|
|
93
|
+
vortex/nwp/util/__init__.py,sha256=Weqz6S6ZTwjtveSMD1poZYDAKvnsZFjq172VrAq221Q,71
|
|
94
|
+
vortex/nwp/util/async.py,sha256=8Nqn48BRR89utiPjDtS0MK0PGUQYl1cPy_qkLD2hA6M,7031
|
|
95
|
+
vortex/nwp/util/beacon.py,sha256=ZIHlG9siLh0kK6mMx3iYkbscyM7j5BJ5MOOB0Ey7dH8,1181
|
|
96
|
+
vortex/nwp/util/diffpygram.py,sha256=ZFDrbHNZBVBmXGjFsnH5EcyGW7lawNtT6GZA7BPGpU4,14957
|
|
97
|
+
vortex/nwp/util/ens.py,sha256=laRzoD2ZCV-lp_IEFBb-cmBt_Zlnl6nf_Ps0Gs5nkY4,9533
|
|
98
|
+
vortex/nwp/util/hooks.py,sha256=8di5CY0oPDgVnXtKVcbmC6UU_pdZypwEJ_U8M6d4bOE,4646
|
|
99
|
+
vortex/nwp/util/taskdeco.py,sha256=bX-gVnA6IUaOsJjxm0nVddrG7aniN7TRCbl9r23A8s0,2335
|
|
100
|
+
vortex/nwp/util/usepygram.py,sha256=255OL_RadazMQdf-iSHxc4a7AgfmOmfSyzCHyN54q8I,23766
|
|
101
|
+
vortex/nwp/util/usetnt.py,sha256=PwQuUWcBdo8WOw25b_Jw5T1N9HJZFmEXopphNi-Xgzc,3462
|
|
102
|
+
vortex/syntax/__init__.py,sha256=q0eJcJ1gRbSrALTC8UaORRrHNmRxVUpbTNB1_uQbJi0,288
|
|
103
|
+
vortex/syntax/stdattrs.py,sha256=OosTS6hdGGh1r5rwZNngmMb6zFj0NUrFZmYs7lDbysY,20927
|
|
104
|
+
vortex/syntax/stddeco.py,sha256=Y94wAf-zEQr8RUmF_OUZkBKO1fPZnx3ju2g3DnPl9cw,6411
|
|
105
|
+
vortex/tools/__init__.py,sha256=KPsj7iqvy-vlo3WEIx8PmbqJYVDXCzZZdDSbMlqDq0k,482
|
|
106
|
+
vortex/tools/actions.py,sha256=yPzKccxHqtTI67SaYLIWJeo0s302WSXEJVpfxt6hAAU,13113
|
|
107
|
+
vortex/tools/addons.py,sha256=vTfAXEz0zrFDGUbrFxwgBO67enrE2mmLbKKlakLSNpI,10439
|
|
108
|
+
vortex/tools/arm.py,sha256=jl--2QOkhHkRXlxpZgo4E3Zw7Z_Gnr4z1fjPnPNyuyc,3112
|
|
109
|
+
vortex/tools/compression.py,sha256=dTXX1VrzxEj1qoBDKbB_T-_8X9iGHOlPaseczfu8cuw,11221
|
|
110
|
+
vortex/tools/date.py,sha256=GT-kh_48j6LqQJuXB3XA2FV1wkY6XWnXv-YhjSdU9GQ,645
|
|
111
|
+
vortex/tools/ddhpack.py,sha256=tOcQ5XQ7yTFBlisyjANDPMPQPijvHwz8yWY1eBfZMAs,206
|
|
112
|
+
vortex/tools/delayedactions.py,sha256=miw6q5L5eOaxtLXhPIJlVs5Mi8vMXuIx55dY2TtU8BU,27126
|
|
113
|
+
vortex/tools/env.py,sha256=ka7VaM3D5XuMRxja7oWA-eLgsUFqtWOmPvfbyHBi8Ps,18460
|
|
114
|
+
vortex/tools/folder.py,sha256=R3bQtwnyn01WzkF3NdzJKb2tCkAPWYB61Bb90r0B09I,27992
|
|
115
|
+
vortex/tools/grib.py,sha256=aH1y2LZDRBn3TywXsVZlxTRk6kdShMVgbHJTpGcfMGU,25700
|
|
116
|
+
vortex/tools/lfi.py,sha256=9mvXL-R5PQtTut7gsSMGJa0iNqpNgOFp7yuEMqYGIBA,29681
|
|
117
|
+
vortex/tools/listings.py,sha256=LTfQHjT0XlK3Hxewbi06HZQjKhALmg0Gvz69UooOFog,15123
|
|
118
|
+
vortex/tools/names.py,sha256=Knb2YsUsEjGpODBva1kEOBXRM2d_H0ylHwp-OoO3mnY,21644
|
|
119
|
+
vortex/tools/net.py,sha256=jLablaFdAy80BybYT4Ki-LWgbpqpzMj4SG8m4CLvuN8,74535
|
|
120
|
+
vortex/tools/odb.py,sha256=TZ1Qq8QmFIh3OP-bsgnwPuHPdfMKNXUAfhc-KSx9tZQ,193
|
|
121
|
+
vortex/tools/parallelism.py,sha256=f4uBp37Q3BG71Qn1yy_YSTPdk-2ZZ7zoGRQsGm6pT1Y,12345
|
|
122
|
+
vortex/tools/prestaging.py,sha256=lGJIo4SA8pDziF1nbBogsrK1bgwDQA6tj9Wg9VUFt6Q,7078
|
|
123
|
+
vortex/tools/rawfiles.py,sha256=keUI6QtEZQrWQ7H_Sg_TY9SY32anfb-suqJkrDmdXN0,215
|
|
124
|
+
vortex/tools/schedulers.py,sha256=XduOQab1dRiHwz7Mnt3mxXByGzAHMsDLCwlUOpMdXEk,15828
|
|
125
|
+
vortex/tools/services.py,sha256=v0uqAOXR9PsXJwv4-_yWpGzFniD7WghXW4p6WwaNtPA,29231
|
|
126
|
+
vortex/tools/storage.py,sha256=YBhq00j39NipaK1EDovr0VF7EArdpp5AuFx0lqB0_p4,34411
|
|
127
|
+
vortex/tools/surfex.py,sha256=qbCIGt-dmfIRWRRMjOQnzc9sGNnt8PIFSqQYT77trhw,1408
|
|
128
|
+
vortex/tools/systems.py,sha256=Zu04yTVIZU0hCiRH_STmdGuknjVd8dNsxXWr87k_5aE,149081
|
|
129
|
+
vortex/tools/targets.py,sha256=-n2uMoEFdz3AeoSd1IGhlr7dYYb8xantUeh9_ggk9iI,14896
|
|
130
|
+
vortex/util/__init__.py,sha256=Zt0OASbKbNnnwUqFHFoq5Mk13sGYSQhxqh7bUvJH6Y8,198
|
|
131
|
+
vortex/util/config.py,sha256=KJHq0GMNRlwzh2WUdpwn1FIKCuAXla7nPRe7j3IZGcI,40045
|
|
132
|
+
vortex/util/empty.py,sha256=EYcltpsjGxATAPPAVK2QRq_Bc5tcFLfF34dE1KO1tvk,535
|
|
133
|
+
vortex/util/helpers.py,sha256=vmz2h3MCL1FElZpn-MX3MX6L_RCQfyqMXTcYWpcYyr4,7492
|
|
134
|
+
vortex/util/introspection.py,sha256=VWZ6Ntr4fMJD4Xr_q-F7_lMHTSjDpHptnZ3SckBtuYY,2146
|
|
135
|
+
vortex/util/iosponge.py,sha256=wuEa0Flv_UeOndg7P9KnBOvW73zCQT1GoxNpqic4Gic,2594
|
|
136
|
+
vortex/util/roles.py,sha256=9un_QAijaMn5iTS7PrdoWI5_NNw7uHxMWTnyhc5aNzg,1150
|
|
137
|
+
vortex/util/storefunctions.py,sha256=uSfG-G_A88iJf3DwFBd-j0rw6eJta8opfRT39aQHsHM,3615
|
|
138
|
+
vortex/util/structs.py,sha256=vapErq0MNhiKlsnjrv_a5M0Rn29KbP3WE_oiy4Hfwb8,683
|
|
139
|
+
vortex/util/worker.py,sha256=zp8f2tx4SXwf1v55XMdYLAx7n3vSlg8PRGrkHgnfdmg,4721
|
|
140
|
+
vortex_nwp-2.1.0.dist-info/licenses/LICENSE,sha256=ewBJPmWAcQqtBPrydH10tt6ECkcYP3b1o2RfH85pJF0,21863
|
|
141
|
+
vortex_nwp-2.1.0.dist-info/METADATA,sha256=58Aw65WFk1YubrWljPIRAPiGdMGfjo7JW4DYHEngbBg,2185
|
|
142
|
+
vortex_nwp-2.1.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
143
|
+
vortex_nwp-2.1.0.dist-info/top_level.txt,sha256=3xfbSD7kw8xKl0jk4GNHsOPKbhubstfWHPl6bxHciRQ,7
|
|
144
|
+
vortex_nwp-2.1.0.dist-info/RECORD,,
|
vortex/layout/appconf.py
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
This modules defines objects that any kind of configuration data
|
|
3
|
-
for jobs and nodes.
|
|
4
|
-
"""
|
|
5
|
-
|
|
6
|
-
import collections.abc
|
|
7
|
-
import re
|
|
8
|
-
|
|
9
|
-
from bronx.syntax.decorators import secure_getattr
|
|
10
|
-
|
|
11
|
-
from vortex.util.config import AppConfigStringDecoder
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
class ConfigSet(collections.abc.MutableMapping):
|
|
15
|
-
"""Simple struct-like object that acts as a lower case dictionary.
|
|
16
|
-
|
|
17
|
-
Two syntax are available to add a new entry in a :class:`ConfigSet` object:
|
|
18
|
-
|
|
19
|
-
* ``ConfigSetObject.key = value``
|
|
20
|
-
* ``ConfigSetObject[key] = value``
|
|
21
|
-
|
|
22
|
-
Prior to being retrieved, entries are passed to a
|
|
23
|
-
:class:`vortex.util.config.AppConfigStringDecoder` object. It allows to
|
|
24
|
-
describe complex data types (see the :class:`vortex.util.config.AppConfigStringDecoder`
|
|
25
|
-
class documentation).
|
|
26
|
-
|
|
27
|
-
Some extra features are added on top of the
|
|
28
|
-
:class:`vortex.util.config.AppConfigStringDecoder` capabilities:
|
|
29
|
-
|
|
30
|
-
* If ``key`` ends with *_map*, ``value`` will be seen as a dictionary
|
|
31
|
-
* If ``key`` contains the words *geometry* or *geometries*, ``value``
|
|
32
|
-
will be converted to a :class:`vortex.data.geometries.Geometry` object
|
|
33
|
-
* If ``key`` ends with *_range*, ``value`` will be passed to the
|
|
34
|
-
:func:`footprints.util.rangex` function
|
|
35
|
-
|
|
36
|
-
"""
|
|
37
|
-
|
|
38
|
-
def __init__(self, *kargs, **kwargs):
|
|
39
|
-
super().__init__(*kargs, **kwargs)
|
|
40
|
-
self.__dict__['_internal'] = dict()
|
|
41
|
-
self.__dict__['_confdecoder'] = AppConfigStringDecoder(substitution_cb=self._internal.get)
|
|
42
|
-
|
|
43
|
-
@staticmethod
|
|
44
|
-
def _remap_key(key):
|
|
45
|
-
return key.lower()
|
|
46
|
-
|
|
47
|
-
def __iter__(self):
|
|
48
|
-
for k in self._internal.keys():
|
|
49
|
-
yield self._remap_key(k)
|
|
50
|
-
|
|
51
|
-
def __getitem__(self, key):
|
|
52
|
-
return self._confdecoder(self._internal[self._remap_key(key)])
|
|
53
|
-
|
|
54
|
-
def __setitem__(self, key, value):
|
|
55
|
-
if value is not None and isinstance(value, str):
|
|
56
|
-
# Support for old style dictionaries (compatibility)
|
|
57
|
-
if (key.endswith('_map') and not re.match(r'^dict\(.*\)$', value) and
|
|
58
|
-
not re.match(r'^\w+\(dict\(.*\)\)$', value)):
|
|
59
|
-
key = key[:-4]
|
|
60
|
-
if re.match(r'^\w+\(.*\)$', value):
|
|
61
|
-
value = re.sub(r'^(\w+)\((.*)\)$', r'\1(dict(\2))', value)
|
|
62
|
-
else:
|
|
63
|
-
value = 'dict(' + value + ')'
|
|
64
|
-
# Support for geometries (compatibility)
|
|
65
|
-
if (('geometry' in key or 'geometries' in key) and
|
|
66
|
-
(not re.match(r'^geometry\(.*\)$', value, flags=re.IGNORECASE))):
|
|
67
|
-
value = 'geometry(' + value + ')'
|
|
68
|
-
# Support for oldstyle range (compatibility)
|
|
69
|
-
if (key.endswith('_range') and not re.match(r'^rangex\(.*\)$', value) and
|
|
70
|
-
not re.match(r'^\w+\(rangex\(.*\)\)$', value)):
|
|
71
|
-
key = key[:-6]
|
|
72
|
-
if re.match(r'^\w+\(.*\)$', value):
|
|
73
|
-
value = re.sub(r'^(\w+)\((.*)\)$', r'\1(rangex(\2))', value)
|
|
74
|
-
else:
|
|
75
|
-
value = 'rangex(' + value + ')'
|
|
76
|
-
self._internal[self._remap_key(key)] = value
|
|
77
|
-
|
|
78
|
-
def __delitem__(self, key):
|
|
79
|
-
del self._internal[self._remap_key(key)]
|
|
80
|
-
|
|
81
|
-
def __len__(self):
|
|
82
|
-
return len(self._internal)
|
|
83
|
-
|
|
84
|
-
def clear(self):
|
|
85
|
-
self._internal.clear()
|
|
86
|
-
|
|
87
|
-
def __contains__(self, key):
|
|
88
|
-
return self._remap_key(key) in self._internal
|
|
89
|
-
|
|
90
|
-
@secure_getattr
|
|
91
|
-
def __getattr__(self, key):
|
|
92
|
-
if key in self:
|
|
93
|
-
return self[key]
|
|
94
|
-
else:
|
|
95
|
-
raise AttributeError('No such parameter <' + key + '>')
|
|
96
|
-
|
|
97
|
-
def __setattr__(self, attr, value):
|
|
98
|
-
self[attr] = value
|
|
99
|
-
|
|
100
|
-
def __delattr__(self, key):
|
|
101
|
-
if key in self:
|
|
102
|
-
del self[key]
|
|
103
|
-
else:
|
|
104
|
-
raise AttributeError('No such parameter <' + key + '>')
|
|
105
|
-
|
|
106
|
-
def copy(self):
|
|
107
|
-
newobj = self.__class__()
|
|
108
|
-
newobj.update(**self._internal)
|
|
109
|
-
return newobj
|