gea-program 0.86.0__tar.gz → 0.88.0__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.
- {gea_program-0.86.0 → gea_program-0.88.0}/PKG-INFO +57 -4
- {gea_program-0.86.0 → gea_program-0.88.0}/README.md +56 -3
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/__init__.py +1 -1
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/__main__.py +121 -1
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/acceptance_tests.py +658 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/alerts.py +16 -1
- gea_program-0.88.0/gea/calibration.py +976 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/dossier.py +21 -1
- gea_program-0.88.0/gea/dysfunction.py +769 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/fluid.py +21 -11
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/alerts.md +1 -1
- gea_program-0.88.0/gea/help/calibration.md +13 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/driller.md +1 -1
- gea_program-0.88.0/gea/help/dysfunction.md +13 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/fluid.md +1 -1
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/install.md +2 -2
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/reader.md +1 -1
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/recorder.md +1 -1
- gea_program-0.88.0/gea/help/roadmap.md +13 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/01-install.md +2 -2
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/13-drilling-pages.md +10 -8
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/14-production-pages.md +6 -5
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/19-dossier-reader.md +1 -1
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/22-updates.md +1 -1
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/23-vpn.md +1 -1
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/25-install-recorder.md +2 -2
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/29-driller-rig.md +1 -1
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial.md +2 -2
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/helplib.py +4 -1
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/notify.py +3 -1
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/rig_state.py +3 -1
- gea_program-0.88.0/gea/roadmap.py +678 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/series_cache.py +52 -10
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/service.py +42 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/web/app.html +175 -3
- {gea_program-0.86.0 → gea_program-0.88.0}/gea_program.egg-info/PKG-INFO +57 -4
- {gea_program-0.86.0 → gea_program-0.88.0}/gea_program.egg-info/SOURCES.txt +6 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/pyproject.toml +1 -1
- {gea_program-0.86.0 → gea_program-0.88.0}/LICENSE +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/BENCH_TEST_PROTOCOL.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/accuracy_statement.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/alarm_engine.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/backup.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/bench.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/bit_seismic.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/blind_harness.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/casing_design.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/acex_lomonosov_age_depth_model.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/acex_lomonosov_age_depth_model.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/agassiz77_canada_temperature.csv +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/agassiz77_canada_temperature.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/barbados_110_consolidation.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/barbados_110_consolidation.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/bengal_u1452_grain_size.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/bengal_u1452_grain_size.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/blake_164_methane_isotopes.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/blake_164_methane_isotopes.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/chicxulub_m0077a_pwave_velocity.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/chicxulub_m0077a_pwave_velocity.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/collingwood_1_28_ks_complete.las +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/collingwood_1_28_ks_complete.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/costa_rica_odp_friction_envelope.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/costa_rica_odp_friction_envelope.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/dead_sea_5017_debrite_xrf_ms.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/dead_sea_5017_debrite_xrf_ms.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/dsdp_504b_physical_properties.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/dsdp_504b_physical_properties.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/dsdp_504b_sound_velocity.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/dsdp_504b_sound_velocity.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/elgygytgyn_5011_turbidites.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/elgygytgyn_5011_turbidites.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/epica_domec_co2_800kyr.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/epica_domec_co2_800kyr.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/fram_909_organic_petrography.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/fram_909_organic_petrography.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/gbr_325_coral_uth_ages.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/gbr_325_coral_uth_ages.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/gisp2_greenland_temperature.csv +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/gisp2_greenland_temperature.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/gom_308_t2p_insitu.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/gom_308_t2p_insitu.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/guaymas_385_dom_d13c.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/guaymas_385_dom_d13c.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/hikurangi_u1520_friction_insitu.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/hikurangi_u1520_friction_insitu.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/hydrate_ridge_204_ncr_hydrate.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/hydrate_ridge_204_ncr_hydrate.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/iodp_u1324_pore_pressure.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/iodp_u1324_pore_pressure.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/jfast_c0019_slow_slip_events.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/jfast_c0019_slow_slip_events.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/kennetcook_2_p129_excerpt.las +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/kennetcook_2_p129_excerpt.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/ktb_hb_bhgm_density.dat +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/ktb_hb_bhgm_density.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/ktb_hb_complog_6020_excerpt.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/ktb_hb_complog_6020_excerpt.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/ktb_hb_hlog246_temperature.dat +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/ktb_hb_hlog246_temperature.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/ktb_hb_rockmech_compress.dat +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/ktb_hb_rockmech_compress.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/ktb_hb_tvd_0_9080_excerpt.dat +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/ktb_hb_tvd_0_9080_excerpt.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/ktb_vb_rockmech_compress.dat +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/ktb_vb_rockmech_compress.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/ktb_vb_vlog251_temperature.dat +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/ktb_vb_vlog251_temperature.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/l06_06_nl_survey.csv +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/l06_06_nl_survey.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/l07_01_nl_excerpt.las +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/l07_01_nl_excerpt.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/mariana_1200_serpentinite_geochem.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/mariana_1200_serpentinite_geochem.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/med_160_sapropels.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/med_160_sapropels.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/nankai_megasplay_shear_strength.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/nankai_megasplay_shear_strength.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/odp_1027b_thermal_conductivity.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/odp_1027b_thermal_conductivity.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/odp_1027c_cork_temperature.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/odp_1027c_cork_temperature.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/odp_1165b_thermal_conductivity.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/odp_1165b_thermal_conductivity.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/odp_1274a_mantle_peridotite_mad.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/odp_1274a_mantle_peridotite_mad.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/odp_504b_dike_elastic_moduli.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/odp_504b_dike_elastic_moduli.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/odp_504b_leg137_borehole_fluids.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/odp_504b_leg137_borehole_fluids.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/odp_735b_gabbro_elastic_moduli.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/odp_735b_gabbro_elastic_moduli.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/peru_201_sulfate_reduction.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/peru_201_sulfate_reduction.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/scorpio_e1_sa_excerpt.las +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/scorpio_e1_sa_excerpt.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/sumatra_362_cohesion.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/sumatra_362_cohesion.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/university_6_17_no1_tx_excerpt.las +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/university_6_17_no1_tx_excerpt.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/ursa_308_xrd_mineralogy.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/ursa_308_xrd_mineralogy.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/volve_15_9_19_sr_excerpt.las +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/volve_15_9_19_sr_excerpt.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/volve_15_9_19a_core_excerpt.csv +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/volve_15_9_19a_core_excerpt.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/volve_f12_f14_production_excerpt.csv +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/volve_f12_f14_production_excerpt.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/walvis_208_petm_carbonate.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/walvis_208_petm_carbonate.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/woodlark_1109_rock_eval.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog/woodlark_1109_rock_eval.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog_map.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/catalog_register.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/certificates.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/cli.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/client_reports.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/collision.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/config_versioning.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/conformance.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/control_room.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/correlation.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/dashboard.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/declarations.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/decline.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/deviation.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/dlis.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/dnp3.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/doctor.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/dossier_verify.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/downhole_engine.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/drift_monitor.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/drill_string.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/driller_link.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/earth_model.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/economics.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/ed25519.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/edr.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/elevation.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/etp.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/etp12_schemas.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/example_register_map.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/fat_sat.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/field_pull.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/files.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/fixtures/README.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/fixtures/comcat_delaware_basin_2026-09.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/fixtures/comcat_mahoning_1990-2026.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/fixtures/comcat_youngstown_2011-2012.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/fixtures/ne_110m_coastline.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/follower.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/forward_model.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/frac_hits.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/friction_priors.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/front.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/gamma.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/gauge_aging.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/gauge_specs.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/geodesy.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/geomag.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/gravity_reference.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/hartip.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/IT_SECURITY.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/TESTER_GUIDE.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/alarms.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/audit-update.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/backup.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/bit-image.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/casing.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/catalog.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/charts.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/collision.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/company-sign-in.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/conformance.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/control-room.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/data-in.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/declare.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/decline.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/dlis.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/doctor.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/dossier.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/drift.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/drillstring.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/economics.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/edr.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/etp.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/field-ports.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/files.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/frac-hits.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/front.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/historian.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/https.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/hydraulics.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/instruments.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/interval.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/invoice-check.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/map.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/month-end.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/notifications.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/opseis.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/osdu.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/pad-summary.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/patches.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/penetrator.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/plan.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/plume.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/pore-pressure.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/ppdm.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/quakeml.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/quality.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/records.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/report-history.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/rig-time.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/rocks.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/seedlink.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/seismic.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/setup.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/simulation.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/site.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/sites.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/slip.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/soak.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/sra.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/start.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/structure.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tools.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/torque-drag.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/transients.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/02-sign-in.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/03-site.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/04-add-well.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/05-records.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/06-well-page.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/07-declare.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/08-patches.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/09-alarms.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/10-control-room.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/11-summary-month.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/12-where-the-well-is.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/15-seismic.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/16-seismicity.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/17-recorder-office.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/18-reports.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/20-admin.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/21-upkeep.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/24-the-box.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/26-monitor.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/27-mirror-vpn.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/tutorial/28-driller-office.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/upkeep.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/vibration.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/vpn.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/well-report.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/well-tests.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/help/well3d.md +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/housekeeping.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/hydraulics.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/icon.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/interval.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/inverse_engine.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/invoice_check.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/jobs.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/launcher.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/live_ports.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/loadtest.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/matplotlib_demo.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/modbus.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/modbus_rtu.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/model_card.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/month_end.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/mqtt_port.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/oidc.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/oidc_mock.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/op_seismicity.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/opcua_port.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/operator_app.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/osdu.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/pad_summary.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/patches.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/pdf_report.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/penetrator.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/permits.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/piwebapi.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/plume.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/pore_pressure.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/ports.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/ppdm.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/profile_catalog.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/project.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/qt6_downhole_app.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/quakeml.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reader.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reader_app.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reconciler.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/recorder_link.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/IU_ANMO_10_BHZ_response.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/IU_ANMO_10_BHZ_response.xml +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/WMM2025.COF +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/eia_henry_hub_daily.csv.gz +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/eia_prices.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/eia_wti_daily.csv.gz +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/iscwsa_rev4_example.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/iscwsa_rev5_example.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/l0701_sonic_gr.las.gz +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/l0701_sonic_gr.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/libmseed_steim.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/libmseed_steim1_4096.mseed +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/libmseed_steim2_4096.mseed +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/libmseed_steim2_512.mseed +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/mahoning_example.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/mud_motor_specs.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/owsg_tool_models.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/penetrator_ratings.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/seismicity_protocols.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/tool_sources.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/us_outline.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/us_outline.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/volve_3d.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/volve_f4_interpretation.las.gz +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/volve_f4_logs.provenance.json +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/volve_f4_lwd.las.gz +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/volve_surfaces.json.gz +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/volve_traj_F-10.xml.gz +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/volve_traj_F-4.xml.gz +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/volve_traj_F-5_12.25in.xml.gz +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/volve_traj_F-5_17.5in.xml.gz +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/volve_traj_F-5_36in.xml.gz +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/volve_traj_F-5_8.5in.xml.gz +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/reference/volve_well_picks.csv.gz +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/report_history.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/rock_inventory.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/sample_record.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/sample_well_profile.csv +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/sbom.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/seedlink.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/segy.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/seismic.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/seismic_array.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/seismic_assoc.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/seismic_detect.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/seismic_film.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/seismic_harmonic.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/seismic_qc.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/seismic_response.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/seismic_signature.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/seismic_track.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/seismic_uncertainty.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/seismic_unlisted.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/seismic_watch.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/sensor_swap.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/service_life.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/setup_checklist.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/shapefile.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/shell.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/shut_in.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/simulation.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/site_map.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/sla_report.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/slip.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/soak.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/sra.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/store_forward.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/strata_join.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/structure.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/supervisor.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/survey_cmd.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/survey_view.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/telemetry.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/timestamp.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/tls.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/tool_catalog.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/tool_library.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/tool_taxonomy.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/torque_drag.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/transient.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/tray.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/tutorial.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/updates.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/vibration.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/vpn.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/web/reader.html +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/well3d.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/well_assembler.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/well_records.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/well_report.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/well_test_validation.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/wellplan.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/wellpos.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/winident.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/wits0.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/witsml.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/workspace.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/workspaces.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/x25519.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea/xlsx_read.py +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea_program.egg-info/dependency_links.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea_program.egg-info/entry_points.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea_program.egg-info/requires.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/gea_program.egg-info/top_level.txt +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/setup.cfg +0 -0
- {gea_program-0.86.0 → gea_program-0.88.0}/tests/test_acceptance.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gea-program
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.88.0
|
|
4
4
|
Summary: GEA-Program: downhole gauge monitoring - canonical measurement records, quality rules, drift evaluation with a re-fit change log, well-test validation, alarm management, model cards, store-and-forward, monthly SLA measurement, FAT/SAT protocols and a dashboard, generated from live objects in the client's reporting outline.
|
|
5
5
|
Author: Daniel T. Murphy
|
|
6
6
|
License: MPL-2.0
|
|
@@ -847,7 +847,7 @@ unsigned, the key hand-overs - and shows the reports as they were signed. A
|
|
|
847
847
|
reader made from the workspace knows the site's key fingerprints, so it
|
|
848
848
|
says whether a dossier is the site's; it allows no network request, and it
|
|
849
849
|
leaves the trusted time-stamp to `verify_dossier.py`. For a client who wants
|
|
850
|
-
it installed, every release also carries `GEA-Reader-Setup-0.
|
|
850
|
+
it installed, every release also carries `GEA-Reader-Setup-0.88.0.exe`: GEA
|
|
851
851
|
Reader as a Windows program of its own - its own icon and taskbar button,
|
|
852
852
|
Check with GEA Reader on a dossier's right-click menu, fingerprints the client
|
|
853
853
|
saves kept on that computer, nothing of GEA-Program. `gea help reader`.
|
|
@@ -1000,6 +1000,59 @@ in plan, in section and, at its depths, in the 3D tab. Every figure a
|
|
|
1000
1000
|
SIMULATION, said on every line. The **Fluid front** tab, `gea front`,
|
|
1001
1001
|
`gea help front`.
|
|
1002
1002
|
|
|
1003
|
+
### Calibration
|
|
1004
|
+
|
|
1005
|
+
The plume and the front, run many times over the numbers nobody knows
|
|
1006
|
+
exactly and ranked against what is measured. Each uncertain number - the
|
|
1007
|
+
permeability, the thickness, the porosity, the compressibility - gets a
|
|
1008
|
+
range, declared with its source or a default spread named as one; each
|
|
1009
|
+
fault layer is open in half the runs and sealing in the other half. Every
|
|
1010
|
+
run is scored against the pressures in the ledger (a gauge in an
|
|
1011
|
+
observation well, an injector's or a producer's own bottomhole pressure,
|
|
1012
|
+
each compared in its shape through time) and the producers' measured TDS;
|
|
1013
|
+
the runs the measurements do not contradict are kept, and when none comes
|
|
1014
|
+
close the page says NO RUN FITS and to look outside the ranges. Every
|
|
1015
|
+
forecast the other pages give as one number - the area of review, each
|
|
1016
|
+
fault's rise and the share of kept runs that take it past the friction
|
|
1017
|
+
line, the front's radius, each producer's share and arrival - is given as
|
|
1018
|
+
a range: what the declarations alone allow beside what the measurements
|
|
1019
|
+
leave. And what to measure next, ranked: a falloff test, a gauge at a
|
|
1020
|
+
neighbour, a water analysis, each with how much it would narrow the area
|
|
1021
|
+
of review and the front. Run by a person, kept with the hash of its inputs,
|
|
1022
|
+
marked stale when they change. Every figure a SIMULATION. The
|
|
1023
|
+
**Calibration** tab, `gea calibrate`, `gea help calibration`.
|
|
1024
|
+
|
|
1025
|
+
### Drilling roadmap
|
|
1026
|
+
|
|
1027
|
+
What the fastest stands on the pad were drilled with, stretch by stretch.
|
|
1028
|
+
Every well's drilling record is cut into stands of 100 ft; each stand goes
|
|
1029
|
+
into the stretch of hole it was drilled in - 1,000 ft of true vertical
|
|
1030
|
+
depth down to the heel, 1,000 ft along the hole beyond it, named for the
|
|
1031
|
+
mapped formation where the workspace has the tops and the well its
|
|
1032
|
+
elevation. In each stretch the fastest quarter of the stands is found, and
|
|
1033
|
+
the window is what those stands ran: the weight on bit, the rotary speed,
|
|
1034
|
+
the flow, the differential pressure, beside the well that was fastest
|
|
1035
|
+
there and what every other well ran through the same rock. Then the
|
|
1036
|
+
roadmap checks itself: each well is set against the roadmap made from the
|
|
1037
|
+
others, the half of its stands nearer the window against the farther half,
|
|
1038
|
+
stretch by stretch - so the page says whether running nearer the window
|
|
1039
|
+
went with drilling faster, or did not, before anyone drills the next well
|
|
1040
|
+
from it. The **Roadmap** tab, `gea roadmap`, `gea help roadmap`.
|
|
1041
|
+
|
|
1042
|
+
### Drilling alerts
|
|
1043
|
+
|
|
1044
|
+
Three old driller's rules, written down so each is applied to every stand
|
|
1045
|
+
of every well the same way, and replayed over the whole of each record:
|
|
1046
|
+
the off-bottom pressure falling at a steady flow, connection after
|
|
1047
|
+
connection (a washout - or a pump, the mud or a nozzle; the trip finds
|
|
1048
|
+
which); the differential pressure spiking with the bit stopped (a motor
|
|
1049
|
+
stall); the pick-up and slack-off weight leaving their own trend (the hole
|
|
1050
|
+
getting tight). The page shows every reading, what each rule would have
|
|
1051
|
+
said and when, and what the rig did next - whether a trip out of the hole
|
|
1052
|
+
followed. The thresholds are settings, each changed with its source. On a
|
|
1053
|
+
record still being written an event raises an alert once. The **Drilling
|
|
1054
|
+
alerts** tab, `gea dysfunction`, `gea help dysfunction`.
|
|
1055
|
+
|
|
1003
1056
|
### Plan vs actual and the survey tools
|
|
1004
1057
|
|
|
1005
1058
|
Each well against its directional plan: at every survey station, how far
|
|
@@ -1664,7 +1717,7 @@ attaches the zips to the GitHub release of that tag.
|
|
|
1664
1717
|
|
|
1665
1718
|
### The Windows installer
|
|
1666
1719
|
|
|
1667
|
-
Every release also carries `GEA-Program-Setup-0.
|
|
1720
|
+
Every release also carries `GEA-Program-Setup-0.88.0.exe` (for 0.88.0): the
|
|
1668
1721
|
same Windows kit installed like any Windows program, for the signed-in user
|
|
1669
1722
|
alone and with no administrator rights (`%LOCALAPPDATA%\Programs\GEA-Program`).
|
|
1670
1723
|
It asks for the site workspace (an existing one such as `C:\site` is used as
|
|
@@ -1683,7 +1736,7 @@ it, removes the program and leaves the workspace. Silent, for a site's
|
|
|
1683
1736
|
software deployment:
|
|
1684
1737
|
|
|
1685
1738
|
```
|
|
1686
|
-
GEA-Program-Setup-0.
|
|
1739
|
+
GEA-Program-Setup-0.88.0.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /WORKSPACE="C:\site" /SITENAME="Pad 3" /TASKS="desktopicon"
|
|
1687
1740
|
```
|
|
1688
1741
|
|
|
1689
1742
|
The setup is built by Inno Setup 6 from `tools/installer.iss` in the same
|
|
@@ -808,7 +808,7 @@ unsigned, the key hand-overs - and shows the reports as they were signed. A
|
|
|
808
808
|
reader made from the workspace knows the site's key fingerprints, so it
|
|
809
809
|
says whether a dossier is the site's; it allows no network request, and it
|
|
810
810
|
leaves the trusted time-stamp to `verify_dossier.py`. For a client who wants
|
|
811
|
-
it installed, every release also carries `GEA-Reader-Setup-0.
|
|
811
|
+
it installed, every release also carries `GEA-Reader-Setup-0.88.0.exe`: GEA
|
|
812
812
|
Reader as a Windows program of its own - its own icon and taskbar button,
|
|
813
813
|
Check with GEA Reader on a dossier's right-click menu, fingerprints the client
|
|
814
814
|
saves kept on that computer, nothing of GEA-Program. `gea help reader`.
|
|
@@ -961,6 +961,59 @@ in plan, in section and, at its depths, in the 3D tab. Every figure a
|
|
|
961
961
|
SIMULATION, said on every line. The **Fluid front** tab, `gea front`,
|
|
962
962
|
`gea help front`.
|
|
963
963
|
|
|
964
|
+
### Calibration
|
|
965
|
+
|
|
966
|
+
The plume and the front, run many times over the numbers nobody knows
|
|
967
|
+
exactly and ranked against what is measured. Each uncertain number - the
|
|
968
|
+
permeability, the thickness, the porosity, the compressibility - gets a
|
|
969
|
+
range, declared with its source or a default spread named as one; each
|
|
970
|
+
fault layer is open in half the runs and sealing in the other half. Every
|
|
971
|
+
run is scored against the pressures in the ledger (a gauge in an
|
|
972
|
+
observation well, an injector's or a producer's own bottomhole pressure,
|
|
973
|
+
each compared in its shape through time) and the producers' measured TDS;
|
|
974
|
+
the runs the measurements do not contradict are kept, and when none comes
|
|
975
|
+
close the page says NO RUN FITS and to look outside the ranges. Every
|
|
976
|
+
forecast the other pages give as one number - the area of review, each
|
|
977
|
+
fault's rise and the share of kept runs that take it past the friction
|
|
978
|
+
line, the front's radius, each producer's share and arrival - is given as
|
|
979
|
+
a range: what the declarations alone allow beside what the measurements
|
|
980
|
+
leave. And what to measure next, ranked: a falloff test, a gauge at a
|
|
981
|
+
neighbour, a water analysis, each with how much it would narrow the area
|
|
982
|
+
of review and the front. Run by a person, kept with the hash of its inputs,
|
|
983
|
+
marked stale when they change. Every figure a SIMULATION. The
|
|
984
|
+
**Calibration** tab, `gea calibrate`, `gea help calibration`.
|
|
985
|
+
|
|
986
|
+
### Drilling roadmap
|
|
987
|
+
|
|
988
|
+
What the fastest stands on the pad were drilled with, stretch by stretch.
|
|
989
|
+
Every well's drilling record is cut into stands of 100 ft; each stand goes
|
|
990
|
+
into the stretch of hole it was drilled in - 1,000 ft of true vertical
|
|
991
|
+
depth down to the heel, 1,000 ft along the hole beyond it, named for the
|
|
992
|
+
mapped formation where the workspace has the tops and the well its
|
|
993
|
+
elevation. In each stretch the fastest quarter of the stands is found, and
|
|
994
|
+
the window is what those stands ran: the weight on bit, the rotary speed,
|
|
995
|
+
the flow, the differential pressure, beside the well that was fastest
|
|
996
|
+
there and what every other well ran through the same rock. Then the
|
|
997
|
+
roadmap checks itself: each well is set against the roadmap made from the
|
|
998
|
+
others, the half of its stands nearer the window against the farther half,
|
|
999
|
+
stretch by stretch - so the page says whether running nearer the window
|
|
1000
|
+
went with drilling faster, or did not, before anyone drills the next well
|
|
1001
|
+
from it. The **Roadmap** tab, `gea roadmap`, `gea help roadmap`.
|
|
1002
|
+
|
|
1003
|
+
### Drilling alerts
|
|
1004
|
+
|
|
1005
|
+
Three old driller's rules, written down so each is applied to every stand
|
|
1006
|
+
of every well the same way, and replayed over the whole of each record:
|
|
1007
|
+
the off-bottom pressure falling at a steady flow, connection after
|
|
1008
|
+
connection (a washout - or a pump, the mud or a nozzle; the trip finds
|
|
1009
|
+
which); the differential pressure spiking with the bit stopped (a motor
|
|
1010
|
+
stall); the pick-up and slack-off weight leaving their own trend (the hole
|
|
1011
|
+
getting tight). The page shows every reading, what each rule would have
|
|
1012
|
+
said and when, and what the rig did next - whether a trip out of the hole
|
|
1013
|
+
followed. The thresholds are settings, each changed with its source. On a
|
|
1014
|
+
record still being written an event raises an alert once. The **Drilling
|
|
1015
|
+
alerts** tab, `gea dysfunction`, `gea help dysfunction`.
|
|
1016
|
+
|
|
964
1017
|
### Plan vs actual and the survey tools
|
|
965
1018
|
|
|
966
1019
|
Each well against its directional plan: at every survey station, how far
|
|
@@ -1625,7 +1678,7 @@ attaches the zips to the GitHub release of that tag.
|
|
|
1625
1678
|
|
|
1626
1679
|
### The Windows installer
|
|
1627
1680
|
|
|
1628
|
-
Every release also carries `GEA-Program-Setup-0.
|
|
1681
|
+
Every release also carries `GEA-Program-Setup-0.88.0.exe` (for 0.88.0): the
|
|
1629
1682
|
same Windows kit installed like any Windows program, for the signed-in user
|
|
1630
1683
|
alone and with no administrator rights (`%LOCALAPPDATA%\Programs\GEA-Program`).
|
|
1631
1684
|
It asks for the site workspace (an existing one such as `C:\site` is used as
|
|
@@ -1644,7 +1697,7 @@ it, removes the program and leaves the workspace. Silent, for a site's
|
|
|
1644
1697
|
software deployment:
|
|
1645
1698
|
|
|
1646
1699
|
```
|
|
1647
|
-
GEA-Program-Setup-0.
|
|
1700
|
+
GEA-Program-Setup-0.88.0.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /WORKSPACE="C:\site" /SITENAME="Pad 3" /TASKS="desktopicon"
|
|
1648
1701
|
```
|
|
1649
1702
|
|
|
1650
1703
|
The setup is built by Inno Setup 6 from `tools/installer.iss` in the same
|
|
@@ -565,7 +565,7 @@ def main(argv=None) -> int:
|
|
|
565
565
|
p_fl.add_argument("--workspace", type=str, default=None, help="the workspace folder; without one the self-test runs on labelled scenes")
|
|
566
566
|
p_fl.add_argument("--well", type=str, default=None, help="the well a declaration, a report or a removal is for")
|
|
567
567
|
p_fl.add_argument("--declare", action="store_true", help="declare the well's role, formation or density (with --source)")
|
|
568
|
-
p_fl.add_argument("--role", type=str, default=None, choices=("injection", "production"))
|
|
568
|
+
p_fl.add_argument("--role", type=str, default=None, choices=("injection", "production", "observation"), help="--declare: injection, production, or observation (a gauge or a water analysis, no flow)")
|
|
569
569
|
p_fl.add_argument("--formation", type=str, default=None, help="--declare: the formation the well is completed in; alone with --porosity etc.: the formation to declare")
|
|
570
570
|
p_fl.add_argument("--density-sg", type=float, default=None, help="--declare: the injected water's specific gravity")
|
|
571
571
|
p_fl.add_argument("--density-ppg", type=float, default=None, help="--declare: the injected water's density in lb/gal")
|
|
@@ -611,6 +611,41 @@ def main(argv=None) -> int:
|
|
|
611
611
|
p_ff.add_argument("--write", action="store_true", help="write reports/front/front.json and .md")
|
|
612
612
|
p_ff.add_argument("--actor", type=str, default="cli")
|
|
613
613
|
p_ff.add_argument("--json", action="store_true")
|
|
614
|
+
p_cb = sub.add_parser("calibrate", help="the calibration (SIMULATION): the plume and the front run many times over the uncertain numbers - permeability, thickness, porosity, compressibility, each fault open or sealing - ranked against the measured pressures and the producers' water; the ranges that leaves, and which measurement would narrow them most")
|
|
615
|
+
p_cb.add_argument("--workspace", type=str, default=None, help="the workspace folder; without one the self-test runs (a formation whose true numbers are not the declared ones, found from its measurements)")
|
|
616
|
+
p_cb.add_argument("--run", action="store_true", help="run the ensemble now and keep the result")
|
|
617
|
+
p_cb.add_argument("--formation", type=str, default=None, help="--run: one formation; --range: the formation the range is for")
|
|
618
|
+
p_cb.add_argument("--runs", type=int, default=None, help="settings: the runs, 8 to 200 (default 48)")
|
|
619
|
+
p_cb.add_argument("--sigma-psi", type=float, default=None, help="settings: the pressure measurements' error, psi (default 25)")
|
|
620
|
+
p_cb.add_argument("--sigma-share", type=float, default=None, help="settings: the error of a share of injected water read from a TDS (default 0.05)")
|
|
621
|
+
p_cb.add_argument("--well-radius-ft", type=float, default=None, help="settings: the wellbore radius for a flowing well's own draw (default 0.354)")
|
|
622
|
+
p_cb.add_argument("--sample-sealing", type=str, default=None, choices=("yes", "no"), help="settings: whether each fault layer is open in half the runs and sealing in the other half (default yes)")
|
|
623
|
+
p_cb.add_argument("--range", dest="range_param", type=str, default=None, choices=("k_md", "thickness_ft", "porosity", "c_t_per_psi"), help="declare an uncertain number's range for --formation: --low, --high, --source (or --clear)")
|
|
624
|
+
p_cb.add_argument("--low", type=float, default=None)
|
|
625
|
+
p_cb.add_argument("--high", type=float, default=None)
|
|
626
|
+
p_cb.add_argument("--clear", action="store_true", help="--range: back to the default spread")
|
|
627
|
+
p_cb.add_argument("--source", type=str, default="", help="where a declared range comes from")
|
|
628
|
+
p_cb.add_argument("--write", action="store_true", help="write reports/calibration/calibration.json and .md from the kept result")
|
|
629
|
+
p_cb.add_argument("--actor", type=str, default="cli")
|
|
630
|
+
p_cb.add_argument("--json", action="store_true")
|
|
631
|
+
p_rm = sub.add_parser("roadmap", help="the drilling roadmap: for every stretch of hole, the weight on bit, rotary speed, flow and differential pressure the fastest quarter of the stands on the pad's wells were drilled with, which well was fastest there, and each well checked against the roadmap made from the others")
|
|
632
|
+
p_rm.add_argument("--workspace", type=str, default=None, help="the workspace folder; without one the self-test runs (three labelled wells through rock with a known best weight and speed)")
|
|
633
|
+
p_rm.add_argument("--well", type=str, default=None, help="the well the next stand is given for (default: the well whose record ends last)")
|
|
634
|
+
p_rm.add_argument("--write", action="store_true", help="write reports/roadmap/roadmap.json, .md and .csv")
|
|
635
|
+
p_rm.add_argument("--actor", type=str, default="cli")
|
|
636
|
+
p_rm.add_argument("--json", action="store_true")
|
|
637
|
+
p_dy = sub.add_parser("dysfunction", help="drilling alerts replayed over each well's record: the off-bottom pressure falling at a steady flow (a washout), the differential pressure spiking with the bit stopped (a motor stall), the pick-up weight leaving its own trend (the hole getting tight) - what each rule would have said, when, and whether a trip followed")
|
|
638
|
+
p_dy.add_argument("--workspace", type=str, default=None, help="the workspace folder; without one the self-test runs (a labelled record with a washout, three stalls and a tightening hole put in, and a sound one)")
|
|
639
|
+
p_dy.add_argument("--washout-fall", type=float, default=None, help="settings: the fall in off-bottom pressure that flags a reading, as a fraction (default 0.06)")
|
|
640
|
+
p_dy.add_argument("--washout-min-psi", type=float, default=None, help="settings: and the least fall in psi (default 100)")
|
|
641
|
+
p_dy.add_argument("--stall-rise", type=float, default=None, help="settings: the rise in differential pressure over its median that is a stall, as a fraction (default 0.6)")
|
|
642
|
+
p_dy.add_argument("--stall-min-psi", type=float, default=None, help="settings: and the least rise in psi (default 300)")
|
|
643
|
+
p_dy.add_argument("--drag-sigma", type=float, default=None, help="settings: how many scatters off its trend a pick-up or slack-off weight is flagged at (default 3)")
|
|
644
|
+
p_dy.add_argument("--drag-min-klbf", type=float, default=None, help="settings: and the least distance in klbf (default 10)")
|
|
645
|
+
p_dy.add_argument("--source", type=str, default="", help="who set a changed setting and on what grounds")
|
|
646
|
+
p_dy.add_argument("--write", action="store_true", help="write reports/dysfunction/drilling_alerts.json, .md and events.csv")
|
|
647
|
+
p_dy.add_argument("--actor", type=str, default="cli")
|
|
648
|
+
p_dy.add_argument("--json", action="store_true")
|
|
614
649
|
p_os = sub.add_parser("seismicity", help="operations and seismicity: each well's drilling, completion and disposal windows against the earthquake catalogue around it - the events during and after each, the levels a regulator's protocol would reach, and the rate during operations against the rest of the record; the Mahoning Valley worked example")
|
|
615
650
|
p_os.add_argument("--workspace", type=str, default=None)
|
|
616
651
|
p_os.add_argument("--scene", type=str, default=None, choices=("workspace", "mahoning"), help="your wells (the default with --workspace) or the public worked example")
|
|
@@ -2776,6 +2811,91 @@ def main(argv=None) -> int:
|
|
|
2776
2811
|
raise SystemExit(f"front: {e.args[0] if e.args else e}")
|
|
2777
2812
|
print(_json.dumps(p, default=str) if a.json else _FF.text(p))
|
|
2778
2813
|
return 0
|
|
2814
|
+
elif a.cmd == "calibrate":
|
|
2815
|
+
import json as _json
|
|
2816
|
+
from . import calibration as _CB
|
|
2817
|
+
from .cli import _safe_stdout
|
|
2818
|
+
from .workspace import Workspace, WorkspaceError
|
|
2819
|
+
_safe_stdout()
|
|
2820
|
+
if not a.workspace:
|
|
2821
|
+
r = _CB.selftest()
|
|
2822
|
+
print(_json.dumps(r, default=str) if a.json else "\n".join(f"{'PASS' if c['pass'] else 'FAIL'} {c['check']}: {c['value']}" for c in r["checks"]) + f"\n{'OK' if r['ok'] else 'FAILED'} - {r['label']} ({r['runs']} runs)")
|
|
2823
|
+
return 0 if r["ok"] else 1
|
|
2824
|
+
try:
|
|
2825
|
+
ws = Workspace(a.workspace)
|
|
2826
|
+
except WorkspaceError as e:
|
|
2827
|
+
raise SystemExit(f"calibrate: {e}")
|
|
2828
|
+
try:
|
|
2829
|
+
if a.range_param:
|
|
2830
|
+
if not a.formation:
|
|
2831
|
+
raise SystemExit("calibrate: --range needs --formation")
|
|
2832
|
+
_CB.set_range(ws, a.actor, a.formation, a.range_param, None if a.clear else a.low, None if a.clear else a.high, a.source)
|
|
2833
|
+
rg_ = _CB.page(ws)["ranges"].get(a.formation, {}).get(a.range_param)
|
|
2834
|
+
print(f"{a.formation} {a.range_param}: " + (f"{rg_['low']:g} to {rg_['high']:g} ({rg_['kind']}: {rg_['source']})" if rg_ else "kept; the formation has no permeability, thickness and porosity declared yet"))
|
|
2835
|
+
return 0
|
|
2836
|
+
if any(v is not None for v in (a.runs, a.sigma_psi, a.sigma_share, a.well_radius_ft, a.sample_sealing)):
|
|
2837
|
+
st_ = _CB.set_settings(ws, a.actor, a.runs, a.sigma_psi, a.sigma_share, (None if a.sample_sealing is None else a.sample_sealing == "yes"), a.well_radius_ft)
|
|
2838
|
+
print("settings: " + ", ".join(f"{k} {v}" for k, v in st_.items() if k in ("runs", "sigma_psi", "sigma_share", "well_radius_ft", "sample_sealing")))
|
|
2839
|
+
if not a.run:
|
|
2840
|
+
return 0
|
|
2841
|
+
if a.run:
|
|
2842
|
+
r = _CB.run(ws, a.actor, a.formation)
|
|
2843
|
+
print(f"run: {r['seconds']} s; " + "; ".join(f"{f['formation']} {f['status']}" + (f" ({f['n_kept']} of {f['n_ok']} kept)" if f.get('n_kept') is not None else "") for f in r["formations"]))
|
|
2844
|
+
if a.write:
|
|
2845
|
+
from . import __version__ as _ver87
|
|
2846
|
+
r = _CB.write_report(ws, _ver87, a.actor)
|
|
2847
|
+
print(f"written: {', '.join(r['files'])} under {r['folder']}")
|
|
2848
|
+
p = _CB.page(ws)
|
|
2849
|
+
except (_CB.CalibrationError, WorkspaceError, ValueError, OSError) as e:
|
|
2850
|
+
raise SystemExit(f"calibrate: {e.args[0] if e.args else e}")
|
|
2851
|
+
print(_json.dumps(p, default=str) if a.json else _CB.text(p))
|
|
2852
|
+
return 0
|
|
2853
|
+
elif a.cmd == "roadmap":
|
|
2854
|
+
import json as _json
|
|
2855
|
+
from . import roadmap as _RM
|
|
2856
|
+
from .cli import _safe_stdout
|
|
2857
|
+
from .workspace import Workspace, WorkspaceError
|
|
2858
|
+
_safe_stdout()
|
|
2859
|
+
if not a.workspace:
|
|
2860
|
+
r = _RM.selftest()
|
|
2861
|
+
print(_json.dumps(r, default=str) if a.json else "\n".join(f"{'PASS' if c['pass'] else 'FAIL'} {c['check']}: {c['value']}" for c in r["checks"]) + f"\n{'OK' if r['ok'] else 'FAILED'} - {r['label']}")
|
|
2862
|
+
return 0 if r["ok"] else 1
|
|
2863
|
+
try:
|
|
2864
|
+
ws = Workspace(a.workspace)
|
|
2865
|
+
if a.write:
|
|
2866
|
+
from . import __version__ as _ver88r
|
|
2867
|
+
r = _RM.write_report(ws, _ver88r, a.actor)
|
|
2868
|
+
print(f"written: {', '.join(r['files'])} under {r['folder']}")
|
|
2869
|
+
p = _RM.page(ws, a.well)
|
|
2870
|
+
except (_RM.RoadmapError, WorkspaceError, ValueError, OSError) as e:
|
|
2871
|
+
raise SystemExit(f"roadmap: {e.args[0] if e.args else e}")
|
|
2872
|
+
print(_json.dumps(p, default=str) if a.json else _RM.text(p))
|
|
2873
|
+
return 0
|
|
2874
|
+
elif a.cmd == "dysfunction":
|
|
2875
|
+
import json as _json
|
|
2876
|
+
from . import dysfunction as _DY
|
|
2877
|
+
from .cli import _safe_stdout
|
|
2878
|
+
from .workspace import Workspace, WorkspaceError
|
|
2879
|
+
_safe_stdout()
|
|
2880
|
+
if not a.workspace:
|
|
2881
|
+
r = _DY.selftest()
|
|
2882
|
+
print(_json.dumps(r, default=str) if a.json else "\n".join(f"{'PASS' if c['pass'] else 'FAIL'} {c['check']}: {c['value']}" for c in r["checks"]) + f"\n{'OK' if r['ok'] else 'FAILED'} - {r['label']}")
|
|
2883
|
+
return 0 if r["ok"] else 1
|
|
2884
|
+
try:
|
|
2885
|
+
ws = Workspace(a.workspace)
|
|
2886
|
+
kw_ = {"washout_fall": a.washout_fall, "washout_min_psi": a.washout_min_psi, "stall_rise": a.stall_rise, "stall_min_psi": a.stall_min_psi, "drag_sigma": a.drag_sigma, "drag_min_klbf": a.drag_min_klbf}
|
|
2887
|
+
if any(v is not None for v in kw_.values()):
|
|
2888
|
+
st_ = _DY.set_settings(ws, a.actor, a.source, **kw_)
|
|
2889
|
+
print("settings: " + ", ".join(f"{k} {st_[k]:g}" for k in _DY.DEFAULTS))
|
|
2890
|
+
if a.write:
|
|
2891
|
+
from . import __version__ as _ver88d
|
|
2892
|
+
r = _DY.write_report(ws, _ver88d, a.actor)
|
|
2893
|
+
print(f"written: {', '.join(r['files'])} under {r['folder']}")
|
|
2894
|
+
p = _DY.page(ws)
|
|
2895
|
+
except (_DY.DysfunctionError, WorkspaceError, ValueError, OSError) as e:
|
|
2896
|
+
raise SystemExit(f"dysfunction: {e.args[0] if e.args else e}")
|
|
2897
|
+
print(_json.dumps(p, default=str) if a.json else _DY.text(p))
|
|
2898
|
+
return 0
|
|
2779
2899
|
elif a.cmd == "seismicity":
|
|
2780
2900
|
import json as _json
|
|
2781
2901
|
from . import op_seismicity as _OS
|