gea-program 0.76.0__tar.gz → 0.78.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.
Files changed (429) hide show
  1. {gea_program-0.76.0/gea_program.egg-info → gea_program-0.78.0}/PKG-INFO +37 -7
  2. {gea_program-0.76.0 → gea_program-0.78.0}/README.md +36 -6
  3. {gea_program-0.76.0 → gea_program-0.78.0}/gea/__init__.py +1 -1
  4. {gea_program-0.76.0 → gea_program-0.78.0}/gea/__main__.py +16 -3
  5. {gea_program-0.76.0 → gea_program-0.78.0}/gea/acceptance_tests.py +340 -20
  6. gea_program-0.78.0/gea/driller_link.py +278 -0
  7. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/IT_SECURITY.md +9 -0
  8. gea_program-0.78.0/gea/help/driller.md +13 -0
  9. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/install.md +2 -2
  10. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/reader.md +1 -1
  11. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/recorder.md +2 -2
  12. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tutorial/01-install.md +2 -2
  13. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tutorial/17-recorder-office.md +1 -1
  14. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tutorial/19-dossier-reader.md +1 -1
  15. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tutorial/22-updates.md +1 -1
  16. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tutorial/23-vpn.md +3 -3
  17. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tutorial/25-install-recorder.md +2 -2
  18. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tutorial/27-mirror-vpn.md +1 -1
  19. gea_program-0.78.0/gea/help/tutorial/28-driller-office.md +24 -0
  20. gea_program-0.78.0/gea/help/tutorial/29-driller-rig.md +21 -0
  21. gea_program-0.78.0/gea/help/tutorial.md +13 -0
  22. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/vpn.md +1 -1
  23. {gea_program-0.76.0 → gea_program-0.78.0}/gea/helplib.py +2 -1
  24. {gea_program-0.76.0 → gea_program-0.78.0}/gea/service.py +26 -0
  25. {gea_program-0.76.0 → gea_program-0.78.0}/gea/tutorial.py +2 -1
  26. {gea_program-0.76.0 → gea_program-0.78.0}/gea/updates.py +3 -3
  27. {gea_program-0.76.0 → gea_program-0.78.0}/gea/vpn.py +2 -1
  28. {gea_program-0.76.0 → gea_program-0.78.0}/gea/web/app.html +29 -1
  29. {gea_program-0.76.0 → gea_program-0.78.0/gea_program.egg-info}/PKG-INFO +37 -7
  30. {gea_program-0.76.0 → gea_program-0.78.0}/gea_program.egg-info/SOURCES.txt +4 -0
  31. {gea_program-0.76.0 → gea_program-0.78.0}/pyproject.toml +1 -1
  32. gea_program-0.76.0/gea/help/tutorial.md +0 -13
  33. {gea_program-0.76.0 → gea_program-0.78.0}/LICENSE +0 -0
  34. {gea_program-0.76.0 → gea_program-0.78.0}/gea/BENCH_TEST_PROTOCOL.md +0 -0
  35. {gea_program-0.76.0 → gea_program-0.78.0}/gea/accuracy_statement.py +0 -0
  36. {gea_program-0.76.0 → gea_program-0.78.0}/gea/alarm_engine.py +0 -0
  37. {gea_program-0.76.0 → gea_program-0.78.0}/gea/alerts.py +0 -0
  38. {gea_program-0.76.0 → gea_program-0.78.0}/gea/backup.py +0 -0
  39. {gea_program-0.76.0 → gea_program-0.78.0}/gea/bench.py +0 -0
  40. {gea_program-0.76.0 → gea_program-0.78.0}/gea/bit_seismic.py +0 -0
  41. {gea_program-0.76.0 → gea_program-0.78.0}/gea/blind_harness.py +0 -0
  42. {gea_program-0.76.0 → gea_program-0.78.0}/gea/casing_design.py +0 -0
  43. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/acex_lomonosov_age_depth_model.provenance.json +0 -0
  44. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/acex_lomonosov_age_depth_model.txt +0 -0
  45. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/agassiz77_canada_temperature.csv +0 -0
  46. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/agassiz77_canada_temperature.provenance.json +0 -0
  47. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/barbados_110_consolidation.provenance.json +0 -0
  48. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/barbados_110_consolidation.txt +0 -0
  49. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/bengal_u1452_grain_size.provenance.json +0 -0
  50. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/bengal_u1452_grain_size.txt +0 -0
  51. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/blake_164_methane_isotopes.provenance.json +0 -0
  52. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/blake_164_methane_isotopes.txt +0 -0
  53. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/chicxulub_m0077a_pwave_velocity.provenance.json +0 -0
  54. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/chicxulub_m0077a_pwave_velocity.txt +0 -0
  55. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/collingwood_1_28_ks_complete.las +0 -0
  56. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/collingwood_1_28_ks_complete.provenance.json +0 -0
  57. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/costa_rica_odp_friction_envelope.provenance.json +0 -0
  58. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/costa_rica_odp_friction_envelope.txt +0 -0
  59. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/dead_sea_5017_debrite_xrf_ms.provenance.json +0 -0
  60. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/dead_sea_5017_debrite_xrf_ms.txt +0 -0
  61. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/dsdp_504b_physical_properties.provenance.json +0 -0
  62. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/dsdp_504b_physical_properties.txt +0 -0
  63. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/dsdp_504b_sound_velocity.provenance.json +0 -0
  64. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/dsdp_504b_sound_velocity.txt +0 -0
  65. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/elgygytgyn_5011_turbidites.provenance.json +0 -0
  66. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/elgygytgyn_5011_turbidites.txt +0 -0
  67. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/epica_domec_co2_800kyr.provenance.json +0 -0
  68. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/epica_domec_co2_800kyr.txt +0 -0
  69. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/fram_909_organic_petrography.provenance.json +0 -0
  70. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/fram_909_organic_petrography.txt +0 -0
  71. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/gbr_325_coral_uth_ages.provenance.json +0 -0
  72. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/gbr_325_coral_uth_ages.txt +0 -0
  73. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/gisp2_greenland_temperature.csv +0 -0
  74. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/gisp2_greenland_temperature.provenance.json +0 -0
  75. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/gom_308_t2p_insitu.provenance.json +0 -0
  76. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/gom_308_t2p_insitu.txt +0 -0
  77. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/guaymas_385_dom_d13c.provenance.json +0 -0
  78. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/guaymas_385_dom_d13c.txt +0 -0
  79. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/hikurangi_u1520_friction_insitu.provenance.json +0 -0
  80. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/hikurangi_u1520_friction_insitu.txt +0 -0
  81. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/hydrate_ridge_204_ncr_hydrate.provenance.json +0 -0
  82. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/hydrate_ridge_204_ncr_hydrate.txt +0 -0
  83. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/iodp_u1324_pore_pressure.provenance.json +0 -0
  84. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/iodp_u1324_pore_pressure.txt +0 -0
  85. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/jfast_c0019_slow_slip_events.provenance.json +0 -0
  86. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/jfast_c0019_slow_slip_events.txt +0 -0
  87. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/kennetcook_2_p129_excerpt.las +0 -0
  88. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/kennetcook_2_p129_excerpt.provenance.json +0 -0
  89. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/ktb_hb_bhgm_density.dat +0 -0
  90. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/ktb_hb_bhgm_density.provenance.json +0 -0
  91. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/ktb_hb_complog_6020_excerpt.provenance.json +0 -0
  92. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/ktb_hb_complog_6020_excerpt.txt +0 -0
  93. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/ktb_hb_hlog246_temperature.dat +0 -0
  94. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/ktb_hb_hlog246_temperature.provenance.json +0 -0
  95. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/ktb_hb_rockmech_compress.dat +0 -0
  96. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/ktb_hb_rockmech_compress.provenance.json +0 -0
  97. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/ktb_hb_tvd_0_9080_excerpt.dat +0 -0
  98. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/ktb_hb_tvd_0_9080_excerpt.provenance.json +0 -0
  99. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/ktb_vb_rockmech_compress.dat +0 -0
  100. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/ktb_vb_rockmech_compress.provenance.json +0 -0
  101. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/ktb_vb_vlog251_temperature.dat +0 -0
  102. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/ktb_vb_vlog251_temperature.provenance.json +0 -0
  103. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/l06_06_nl_survey.csv +0 -0
  104. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/l06_06_nl_survey.provenance.json +0 -0
  105. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/l07_01_nl_excerpt.las +0 -0
  106. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/l07_01_nl_excerpt.provenance.json +0 -0
  107. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/mariana_1200_serpentinite_geochem.provenance.json +0 -0
  108. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/mariana_1200_serpentinite_geochem.txt +0 -0
  109. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/med_160_sapropels.provenance.json +0 -0
  110. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/med_160_sapropels.txt +0 -0
  111. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/nankai_megasplay_shear_strength.provenance.json +0 -0
  112. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/nankai_megasplay_shear_strength.txt +0 -0
  113. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/odp_1027b_thermal_conductivity.provenance.json +0 -0
  114. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/odp_1027b_thermal_conductivity.txt +0 -0
  115. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/odp_1027c_cork_temperature.provenance.json +0 -0
  116. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/odp_1027c_cork_temperature.txt +0 -0
  117. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/odp_1165b_thermal_conductivity.provenance.json +0 -0
  118. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/odp_1165b_thermal_conductivity.txt +0 -0
  119. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/odp_1274a_mantle_peridotite_mad.provenance.json +0 -0
  120. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/odp_1274a_mantle_peridotite_mad.txt +0 -0
  121. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/odp_504b_dike_elastic_moduli.provenance.json +0 -0
  122. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/odp_504b_dike_elastic_moduli.txt +0 -0
  123. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/odp_504b_leg137_borehole_fluids.provenance.json +0 -0
  124. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/odp_504b_leg137_borehole_fluids.txt +0 -0
  125. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/odp_735b_gabbro_elastic_moduli.provenance.json +0 -0
  126. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/odp_735b_gabbro_elastic_moduli.txt +0 -0
  127. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/peru_201_sulfate_reduction.provenance.json +0 -0
  128. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/peru_201_sulfate_reduction.txt +0 -0
  129. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/scorpio_e1_sa_excerpt.las +0 -0
  130. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/scorpio_e1_sa_excerpt.provenance.json +0 -0
  131. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/sumatra_362_cohesion.provenance.json +0 -0
  132. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/sumatra_362_cohesion.txt +0 -0
  133. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/university_6_17_no1_tx_excerpt.las +0 -0
  134. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/university_6_17_no1_tx_excerpt.provenance.json +0 -0
  135. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/ursa_308_xrd_mineralogy.provenance.json +0 -0
  136. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/ursa_308_xrd_mineralogy.txt +0 -0
  137. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/volve_15_9_19_sr_excerpt.las +0 -0
  138. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/volve_15_9_19_sr_excerpt.provenance.json +0 -0
  139. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/volve_15_9_19a_core_excerpt.csv +0 -0
  140. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/volve_15_9_19a_core_excerpt.provenance.json +0 -0
  141. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/volve_f12_f14_production_excerpt.csv +0 -0
  142. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/volve_f12_f14_production_excerpt.provenance.json +0 -0
  143. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/walvis_208_petm_carbonate.provenance.json +0 -0
  144. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/walvis_208_petm_carbonate.txt +0 -0
  145. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/woodlark_1109_rock_eval.provenance.json +0 -0
  146. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog/woodlark_1109_rock_eval.txt +0 -0
  147. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog_map.py +0 -0
  148. {gea_program-0.76.0 → gea_program-0.78.0}/gea/catalog_register.py +0 -0
  149. {gea_program-0.76.0 → gea_program-0.78.0}/gea/certificates.py +0 -0
  150. {gea_program-0.76.0 → gea_program-0.78.0}/gea/cli.py +0 -0
  151. {gea_program-0.76.0 → gea_program-0.78.0}/gea/client_reports.py +0 -0
  152. {gea_program-0.76.0 → gea_program-0.78.0}/gea/collision.py +0 -0
  153. {gea_program-0.76.0 → gea_program-0.78.0}/gea/config_versioning.py +0 -0
  154. {gea_program-0.76.0 → gea_program-0.78.0}/gea/conformance.py +0 -0
  155. {gea_program-0.76.0 → gea_program-0.78.0}/gea/control_room.py +0 -0
  156. {gea_program-0.76.0 → gea_program-0.78.0}/gea/correlation.py +0 -0
  157. {gea_program-0.76.0 → gea_program-0.78.0}/gea/dashboard.py +0 -0
  158. {gea_program-0.76.0 → gea_program-0.78.0}/gea/declarations.py +0 -0
  159. {gea_program-0.76.0 → gea_program-0.78.0}/gea/decline.py +0 -0
  160. {gea_program-0.76.0 → gea_program-0.78.0}/gea/deviation.py +0 -0
  161. {gea_program-0.76.0 → gea_program-0.78.0}/gea/dlis.py +0 -0
  162. {gea_program-0.76.0 → gea_program-0.78.0}/gea/dnp3.py +0 -0
  163. {gea_program-0.76.0 → gea_program-0.78.0}/gea/doctor.py +0 -0
  164. {gea_program-0.76.0 → gea_program-0.78.0}/gea/dossier.py +0 -0
  165. {gea_program-0.76.0 → gea_program-0.78.0}/gea/dossier_verify.py +0 -0
  166. {gea_program-0.76.0 → gea_program-0.78.0}/gea/downhole_engine.py +0 -0
  167. {gea_program-0.76.0 → gea_program-0.78.0}/gea/drift_monitor.py +0 -0
  168. {gea_program-0.76.0 → gea_program-0.78.0}/gea/drill_string.py +0 -0
  169. {gea_program-0.76.0 → gea_program-0.78.0}/gea/earth_model.py +0 -0
  170. {gea_program-0.76.0 → gea_program-0.78.0}/gea/economics.py +0 -0
  171. {gea_program-0.76.0 → gea_program-0.78.0}/gea/ed25519.py +0 -0
  172. {gea_program-0.76.0 → gea_program-0.78.0}/gea/edr.py +0 -0
  173. {gea_program-0.76.0 → gea_program-0.78.0}/gea/elevation.py +0 -0
  174. {gea_program-0.76.0 → gea_program-0.78.0}/gea/etp.py +0 -0
  175. {gea_program-0.76.0 → gea_program-0.78.0}/gea/etp12_schemas.json +0 -0
  176. {gea_program-0.76.0 → gea_program-0.78.0}/gea/example_register_map.json +0 -0
  177. {gea_program-0.76.0 → gea_program-0.78.0}/gea/fat_sat.py +0 -0
  178. {gea_program-0.76.0 → gea_program-0.78.0}/gea/field_pull.py +0 -0
  179. {gea_program-0.76.0 → gea_program-0.78.0}/gea/files.py +0 -0
  180. {gea_program-0.76.0 → gea_program-0.78.0}/gea/fixtures/README.md +0 -0
  181. {gea_program-0.76.0 → gea_program-0.78.0}/gea/fixtures/comcat_delaware_basin_2026-09.txt +0 -0
  182. {gea_program-0.76.0 → gea_program-0.78.0}/gea/fixtures/comcat_mahoning_1990-2026.txt +0 -0
  183. {gea_program-0.76.0 → gea_program-0.78.0}/gea/fixtures/comcat_youngstown_2011-2012.txt +0 -0
  184. {gea_program-0.76.0 → gea_program-0.78.0}/gea/fixtures/ne_110m_coastline.json +0 -0
  185. {gea_program-0.76.0 → gea_program-0.78.0}/gea/follower.py +0 -0
  186. {gea_program-0.76.0 → gea_program-0.78.0}/gea/forward_model.py +0 -0
  187. {gea_program-0.76.0 → gea_program-0.78.0}/gea/frac_hits.py +0 -0
  188. {gea_program-0.76.0 → gea_program-0.78.0}/gea/friction_priors.py +0 -0
  189. {gea_program-0.76.0 → gea_program-0.78.0}/gea/gamma.py +0 -0
  190. {gea_program-0.76.0 → gea_program-0.78.0}/gea/gauge_aging.py +0 -0
  191. {gea_program-0.76.0 → gea_program-0.78.0}/gea/gauge_specs.py +0 -0
  192. {gea_program-0.76.0 → gea_program-0.78.0}/gea/geodesy.py +0 -0
  193. {gea_program-0.76.0 → gea_program-0.78.0}/gea/geomag.py +0 -0
  194. {gea_program-0.76.0 → gea_program-0.78.0}/gea/gravity_reference.py +0 -0
  195. {gea_program-0.76.0 → gea_program-0.78.0}/gea/hartip.py +0 -0
  196. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/TESTER_GUIDE.md +0 -0
  197. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/alarms.md +0 -0
  198. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/alerts.md +0 -0
  199. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/audit-update.md +0 -0
  200. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/backup.md +0 -0
  201. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/bit-image.md +0 -0
  202. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/casing.md +0 -0
  203. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/catalog.md +0 -0
  204. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/charts.md +0 -0
  205. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/collision.md +0 -0
  206. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/company-sign-in.md +0 -0
  207. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/conformance.md +0 -0
  208. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/control-room.md +0 -0
  209. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/data-in.md +0 -0
  210. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/declare.md +0 -0
  211. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/decline.md +0 -0
  212. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/dlis.md +0 -0
  213. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/doctor.md +0 -0
  214. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/dossier.md +0 -0
  215. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/drift.md +0 -0
  216. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/drillstring.md +0 -0
  217. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/economics.md +0 -0
  218. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/edr.md +0 -0
  219. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/etp.md +0 -0
  220. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/field-ports.md +0 -0
  221. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/files.md +0 -0
  222. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/frac-hits.md +0 -0
  223. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/historian.md +0 -0
  224. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/https.md +0 -0
  225. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/hydraulics.md +0 -0
  226. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/instruments.md +0 -0
  227. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/interval.md +0 -0
  228. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/invoice-check.md +0 -0
  229. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/map.md +0 -0
  230. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/month-end.md +0 -0
  231. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/notifications.md +0 -0
  232. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/opseis.md +0 -0
  233. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/osdu.md +0 -0
  234. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/pad-summary.md +0 -0
  235. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/patches.md +0 -0
  236. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/penetrator.md +0 -0
  237. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/plan.md +0 -0
  238. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/pore-pressure.md +0 -0
  239. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/ppdm.md +0 -0
  240. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/quakeml.md +0 -0
  241. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/quality.md +0 -0
  242. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/records.md +0 -0
  243. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/report-history.md +0 -0
  244. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/rig-time.md +0 -0
  245. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/rocks.md +0 -0
  246. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/seedlink.md +0 -0
  247. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/seismic.md +0 -0
  248. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/setup.md +0 -0
  249. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/simulation.md +0 -0
  250. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/site.md +0 -0
  251. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/sites.md +0 -0
  252. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/slip.md +0 -0
  253. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/soak.md +0 -0
  254. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/sra.md +0 -0
  255. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/start.md +0 -0
  256. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/structure.md +0 -0
  257. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tools.md +0 -0
  258. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/torque-drag.md +0 -0
  259. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/transients.md +0 -0
  260. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tutorial/02-sign-in.md +0 -0
  261. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tutorial/03-site.md +0 -0
  262. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tutorial/04-add-well.md +0 -0
  263. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tutorial/05-records.md +0 -0
  264. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tutorial/06-well-page.md +0 -0
  265. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tutorial/07-declare.md +0 -0
  266. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tutorial/08-patches.md +0 -0
  267. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tutorial/09-alarms.md +0 -0
  268. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tutorial/10-control-room.md +0 -0
  269. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tutorial/11-summary-month.md +0 -0
  270. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tutorial/12-where-the-well-is.md +0 -0
  271. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tutorial/13-drilling-pages.md +0 -0
  272. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tutorial/14-production-pages.md +0 -0
  273. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tutorial/15-seismic.md +0 -0
  274. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tutorial/16-seismicity.md +0 -0
  275. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tutorial/18-reports.md +0 -0
  276. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tutorial/20-admin.md +0 -0
  277. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tutorial/21-upkeep.md +0 -0
  278. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tutorial/24-the-box.md +0 -0
  279. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/tutorial/26-monitor.md +0 -0
  280. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/upkeep.md +0 -0
  281. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/vibration.md +0 -0
  282. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/well-report.md +0 -0
  283. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/well-tests.md +0 -0
  284. {gea_program-0.76.0 → gea_program-0.78.0}/gea/help/well3d.md +0 -0
  285. {gea_program-0.76.0 → gea_program-0.78.0}/gea/housekeeping.py +0 -0
  286. {gea_program-0.76.0 → gea_program-0.78.0}/gea/hydraulics.py +0 -0
  287. {gea_program-0.76.0 → gea_program-0.78.0}/gea/icon.py +0 -0
  288. {gea_program-0.76.0 → gea_program-0.78.0}/gea/interval.py +0 -0
  289. {gea_program-0.76.0 → gea_program-0.78.0}/gea/inverse_engine.py +0 -0
  290. {gea_program-0.76.0 → gea_program-0.78.0}/gea/invoice_check.py +0 -0
  291. {gea_program-0.76.0 → gea_program-0.78.0}/gea/jobs.py +0 -0
  292. {gea_program-0.76.0 → gea_program-0.78.0}/gea/launcher.py +0 -0
  293. {gea_program-0.76.0 → gea_program-0.78.0}/gea/live_ports.py +0 -0
  294. {gea_program-0.76.0 → gea_program-0.78.0}/gea/loadtest.py +0 -0
  295. {gea_program-0.76.0 → gea_program-0.78.0}/gea/matplotlib_demo.py +0 -0
  296. {gea_program-0.76.0 → gea_program-0.78.0}/gea/modbus.py +0 -0
  297. {gea_program-0.76.0 → gea_program-0.78.0}/gea/modbus_rtu.py +0 -0
  298. {gea_program-0.76.0 → gea_program-0.78.0}/gea/model_card.py +0 -0
  299. {gea_program-0.76.0 → gea_program-0.78.0}/gea/month_end.py +0 -0
  300. {gea_program-0.76.0 → gea_program-0.78.0}/gea/mqtt_port.py +0 -0
  301. {gea_program-0.76.0 → gea_program-0.78.0}/gea/notify.py +0 -0
  302. {gea_program-0.76.0 → gea_program-0.78.0}/gea/oidc.py +0 -0
  303. {gea_program-0.76.0 → gea_program-0.78.0}/gea/oidc_mock.py +0 -0
  304. {gea_program-0.76.0 → gea_program-0.78.0}/gea/op_seismicity.py +0 -0
  305. {gea_program-0.76.0 → gea_program-0.78.0}/gea/opcua_port.py +0 -0
  306. {gea_program-0.76.0 → gea_program-0.78.0}/gea/operator_app.py +0 -0
  307. {gea_program-0.76.0 → gea_program-0.78.0}/gea/osdu.py +0 -0
  308. {gea_program-0.76.0 → gea_program-0.78.0}/gea/pad_summary.py +0 -0
  309. {gea_program-0.76.0 → gea_program-0.78.0}/gea/patches.py +0 -0
  310. {gea_program-0.76.0 → gea_program-0.78.0}/gea/pdf_report.py +0 -0
  311. {gea_program-0.76.0 → gea_program-0.78.0}/gea/penetrator.py +0 -0
  312. {gea_program-0.76.0 → gea_program-0.78.0}/gea/permits.py +0 -0
  313. {gea_program-0.76.0 → gea_program-0.78.0}/gea/piwebapi.py +0 -0
  314. {gea_program-0.76.0 → gea_program-0.78.0}/gea/pore_pressure.py +0 -0
  315. {gea_program-0.76.0 → gea_program-0.78.0}/gea/ports.py +0 -0
  316. {gea_program-0.76.0 → gea_program-0.78.0}/gea/ppdm.py +0 -0
  317. {gea_program-0.76.0 → gea_program-0.78.0}/gea/profile_catalog.py +0 -0
  318. {gea_program-0.76.0 → gea_program-0.78.0}/gea/project.py +0 -0
  319. {gea_program-0.76.0 → gea_program-0.78.0}/gea/qt6_downhole_app.py +0 -0
  320. {gea_program-0.76.0 → gea_program-0.78.0}/gea/quakeml.py +0 -0
  321. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reader.py +0 -0
  322. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reader_app.py +0 -0
  323. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reconciler.py +0 -0
  324. {gea_program-0.76.0 → gea_program-0.78.0}/gea/recorder_link.py +0 -0
  325. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/IU_ANMO_10_BHZ_response.provenance.json +0 -0
  326. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/IU_ANMO_10_BHZ_response.xml +0 -0
  327. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/WMM2025.COF +0 -0
  328. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/eia_henry_hub_daily.csv.gz +0 -0
  329. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/eia_prices.provenance.json +0 -0
  330. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/eia_wti_daily.csv.gz +0 -0
  331. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/iscwsa_rev4_example.json +0 -0
  332. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/iscwsa_rev5_example.json +0 -0
  333. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/l0701_sonic_gr.las.gz +0 -0
  334. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/l0701_sonic_gr.provenance.json +0 -0
  335. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/libmseed_steim.provenance.json +0 -0
  336. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/libmseed_steim1_4096.mseed +0 -0
  337. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/libmseed_steim2_4096.mseed +0 -0
  338. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/libmseed_steim2_512.mseed +0 -0
  339. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/mahoning_example.json +0 -0
  340. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/mud_motor_specs.json +0 -0
  341. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/owsg_tool_models.json +0 -0
  342. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/penetrator_ratings.json +0 -0
  343. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/seismicity_protocols.json +0 -0
  344. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/tool_sources.json +0 -0
  345. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/us_outline.json +0 -0
  346. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/us_outline.provenance.json +0 -0
  347. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/volve_3d.provenance.json +0 -0
  348. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/volve_f4_interpretation.las.gz +0 -0
  349. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/volve_f4_logs.provenance.json +0 -0
  350. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/volve_f4_lwd.las.gz +0 -0
  351. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/volve_surfaces.json.gz +0 -0
  352. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/volve_traj_F-10.xml.gz +0 -0
  353. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/volve_traj_F-4.xml.gz +0 -0
  354. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/volve_traj_F-5_12.25in.xml.gz +0 -0
  355. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/volve_traj_F-5_17.5in.xml.gz +0 -0
  356. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/volve_traj_F-5_36in.xml.gz +0 -0
  357. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/volve_traj_F-5_8.5in.xml.gz +0 -0
  358. {gea_program-0.76.0 → gea_program-0.78.0}/gea/reference/volve_well_picks.csv.gz +0 -0
  359. {gea_program-0.76.0 → gea_program-0.78.0}/gea/report_history.py +0 -0
  360. {gea_program-0.76.0 → gea_program-0.78.0}/gea/rig_state.py +0 -0
  361. {gea_program-0.76.0 → gea_program-0.78.0}/gea/rock_inventory.py +0 -0
  362. {gea_program-0.76.0 → gea_program-0.78.0}/gea/sample_record.py +0 -0
  363. {gea_program-0.76.0 → gea_program-0.78.0}/gea/sample_well_profile.csv +0 -0
  364. {gea_program-0.76.0 → gea_program-0.78.0}/gea/sbom.py +0 -0
  365. {gea_program-0.76.0 → gea_program-0.78.0}/gea/seedlink.py +0 -0
  366. {gea_program-0.76.0 → gea_program-0.78.0}/gea/segy.py +0 -0
  367. {gea_program-0.76.0 → gea_program-0.78.0}/gea/seismic.py +0 -0
  368. {gea_program-0.76.0 → gea_program-0.78.0}/gea/seismic_array.py +0 -0
  369. {gea_program-0.76.0 → gea_program-0.78.0}/gea/seismic_assoc.py +0 -0
  370. {gea_program-0.76.0 → gea_program-0.78.0}/gea/seismic_detect.py +0 -0
  371. {gea_program-0.76.0 → gea_program-0.78.0}/gea/seismic_film.py +0 -0
  372. {gea_program-0.76.0 → gea_program-0.78.0}/gea/seismic_harmonic.py +0 -0
  373. {gea_program-0.76.0 → gea_program-0.78.0}/gea/seismic_qc.py +0 -0
  374. {gea_program-0.76.0 → gea_program-0.78.0}/gea/seismic_response.py +0 -0
  375. {gea_program-0.76.0 → gea_program-0.78.0}/gea/seismic_signature.py +0 -0
  376. {gea_program-0.76.0 → gea_program-0.78.0}/gea/seismic_track.py +0 -0
  377. {gea_program-0.76.0 → gea_program-0.78.0}/gea/seismic_uncertainty.py +0 -0
  378. {gea_program-0.76.0 → gea_program-0.78.0}/gea/seismic_unlisted.py +0 -0
  379. {gea_program-0.76.0 → gea_program-0.78.0}/gea/seismic_watch.py +0 -0
  380. {gea_program-0.76.0 → gea_program-0.78.0}/gea/sensor_swap.py +0 -0
  381. {gea_program-0.76.0 → gea_program-0.78.0}/gea/series_cache.py +0 -0
  382. {gea_program-0.76.0 → gea_program-0.78.0}/gea/service_life.py +0 -0
  383. {gea_program-0.76.0 → gea_program-0.78.0}/gea/setup_checklist.py +0 -0
  384. {gea_program-0.76.0 → gea_program-0.78.0}/gea/shapefile.py +0 -0
  385. {gea_program-0.76.0 → gea_program-0.78.0}/gea/shell.py +0 -0
  386. {gea_program-0.76.0 → gea_program-0.78.0}/gea/shut_in.py +0 -0
  387. {gea_program-0.76.0 → gea_program-0.78.0}/gea/simulation.py +0 -0
  388. {gea_program-0.76.0 → gea_program-0.78.0}/gea/site_map.py +0 -0
  389. {gea_program-0.76.0 → gea_program-0.78.0}/gea/sla_report.py +0 -0
  390. {gea_program-0.76.0 → gea_program-0.78.0}/gea/slip.py +0 -0
  391. {gea_program-0.76.0 → gea_program-0.78.0}/gea/soak.py +0 -0
  392. {gea_program-0.76.0 → gea_program-0.78.0}/gea/sra.py +0 -0
  393. {gea_program-0.76.0 → gea_program-0.78.0}/gea/store_forward.py +0 -0
  394. {gea_program-0.76.0 → gea_program-0.78.0}/gea/strata_join.py +0 -0
  395. {gea_program-0.76.0 → gea_program-0.78.0}/gea/structure.py +0 -0
  396. {gea_program-0.76.0 → gea_program-0.78.0}/gea/supervisor.py +0 -0
  397. {gea_program-0.76.0 → gea_program-0.78.0}/gea/survey_cmd.py +0 -0
  398. {gea_program-0.76.0 → gea_program-0.78.0}/gea/survey_view.py +0 -0
  399. {gea_program-0.76.0 → gea_program-0.78.0}/gea/telemetry.py +0 -0
  400. {gea_program-0.76.0 → gea_program-0.78.0}/gea/timestamp.py +0 -0
  401. {gea_program-0.76.0 → gea_program-0.78.0}/gea/tls.py +0 -0
  402. {gea_program-0.76.0 → gea_program-0.78.0}/gea/tool_catalog.py +0 -0
  403. {gea_program-0.76.0 → gea_program-0.78.0}/gea/tool_library.py +0 -0
  404. {gea_program-0.76.0 → gea_program-0.78.0}/gea/tool_taxonomy.py +0 -0
  405. {gea_program-0.76.0 → gea_program-0.78.0}/gea/torque_drag.py +0 -0
  406. {gea_program-0.76.0 → gea_program-0.78.0}/gea/transient.py +0 -0
  407. {gea_program-0.76.0 → gea_program-0.78.0}/gea/tray.py +0 -0
  408. {gea_program-0.76.0 → gea_program-0.78.0}/gea/vibration.py +0 -0
  409. {gea_program-0.76.0 → gea_program-0.78.0}/gea/web/reader.html +0 -0
  410. {gea_program-0.76.0 → gea_program-0.78.0}/gea/well3d.py +0 -0
  411. {gea_program-0.76.0 → gea_program-0.78.0}/gea/well_assembler.py +0 -0
  412. {gea_program-0.76.0 → gea_program-0.78.0}/gea/well_records.py +0 -0
  413. {gea_program-0.76.0 → gea_program-0.78.0}/gea/well_report.py +0 -0
  414. {gea_program-0.76.0 → gea_program-0.78.0}/gea/well_test_validation.py +0 -0
  415. {gea_program-0.76.0 → gea_program-0.78.0}/gea/wellplan.py +0 -0
  416. {gea_program-0.76.0 → gea_program-0.78.0}/gea/wellpos.py +0 -0
  417. {gea_program-0.76.0 → gea_program-0.78.0}/gea/winident.py +0 -0
  418. {gea_program-0.76.0 → gea_program-0.78.0}/gea/wits0.py +0 -0
  419. {gea_program-0.76.0 → gea_program-0.78.0}/gea/witsml.py +0 -0
  420. {gea_program-0.76.0 → gea_program-0.78.0}/gea/workspace.py +0 -0
  421. {gea_program-0.76.0 → gea_program-0.78.0}/gea/workspaces.py +0 -0
  422. {gea_program-0.76.0 → gea_program-0.78.0}/gea/x25519.py +0 -0
  423. {gea_program-0.76.0 → gea_program-0.78.0}/gea/xlsx_read.py +0 -0
  424. {gea_program-0.76.0 → gea_program-0.78.0}/gea_program.egg-info/dependency_links.txt +0 -0
  425. {gea_program-0.76.0 → gea_program-0.78.0}/gea_program.egg-info/entry_points.txt +0 -0
  426. {gea_program-0.76.0 → gea_program-0.78.0}/gea_program.egg-info/requires.txt +0 -0
  427. {gea_program-0.76.0 → gea_program-0.78.0}/gea_program.egg-info/top_level.txt +0 -0
  428. {gea_program-0.76.0 → gea_program-0.78.0}/setup.cfg +0 -0
  429. {gea_program-0.76.0 → gea_program-0.78.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.76.0
3
+ Version: 0.78.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
@@ -463,9 +463,39 @@ keeps them byte for byte and makes the array and electrode stations of
463
463
  them. `gea help recorder`; the box's README has the parts, the wiring and
464
464
  the clock.
465
465
 
466
+ ### GEA Driller: the directional driller's agent
467
+
468
+ GEA Driller (`driller/`; `GEA-Driller-<version>.tar.gz` on every release;
469
+ since 0.77.0; `gea help driller`) is the program on the rig PC. It reads
470
+ the EDR's WITS0 feed and the pre-drill model of the target layer and, every
471
+ 30 ft of new hole, recommends in the driller's units what to do next:
472
+ build, drop or hold and by how much (toolface and steering ratio for a
473
+ rotary steerable system), the weight on bit, the rotary speed, the flow
474
+ rate, and whether to drill on, circulate, or ream and wash first - with its
475
+ reasons and the confidence of each choice. A position filter (since
476
+ 0.78.0) places the bit in the layer the way a geosteerer does, from the
477
+ gamma and the deep-resistivity distance against the model, and the screen
478
+ draws the band it puts the layer in. The driller accepts, rejects or
479
+ records what was done instead, by name; every recommendation, answer and
480
+ command is on record with its hash, and GEA pulls the records into the
481
+ well from the **Drill string** tab's card (`gea workspace --path C:\site
482
+ --action driller-pull --box http://192.168.1.60:8790 --well SWD-1`). The
483
+ agent is a policy trained by proximal policy optimization in a physics
484
+ twin of the lateral - the layer rolling with dip, undulation and faults,
485
+ the gamma and the deep-resistivity boundary the tools read of it, the
486
+ steering tool, the bit, the hydraulics, the hole - on scenes drawn fresh,
487
+ judged against a textbook driller on scenes it never saw; the figures of
488
+ that judgement are a simulation's and are labelled so. Advisory by
489
+ default; the closed loop ships as a design with a switch, armed by a named
490
+ operator for one section, disarming itself on a stale feed, a crossed
491
+ limit or the section's end, through a downlink that keeps every command and
492
+ sends none - no vendor's protocol ships with this version. Before there is
493
+ a rig PC, **Start the twin as the rig** on the same card runs the driller's
494
+ program on the office PC with a scene drilling itself.
495
+
466
496
  ### The tutorial
467
497
 
468
- Every step of GEA and the programs around it, as 27 lessons on the
498
+ Every step of GEA and the programs around it, as 29 lessons on the
469
499
  **Tutorial** tab (since 0.76.0; `gea help tutorial`): the office's lessons
470
500
  first - install, sign in, set up the site, bring wells and data in, the
471
501
  well page, the declarations sheet, the patch panel, alarms and
@@ -475,7 +505,7 @@ seismic, the recorder from the office, reports, the signed dossier and the
475
505
  Reader, users and HTTPS, backups and the gate, new versions from inside
476
506
  the program, GEA-VPN - and the pad attendant's after: the box and its
477
507
  parts, installing the recorder on the Pi, the monitor, the USB mirror and
478
- joining the VPN. Each lesson names who it is for, the page it is done on
508
+ joining the VPN - and GEA Driller from the office and on the rig PC. Each lesson names who it is for, the page it is done on
479
509
  (a button opens it), how long it takes, the numbered steps with the
480
510
  buttons as the page names them, and how you know it worked; each account
481
511
  ticks lessons off. **Print the handout** gives the whole course as one
@@ -489,7 +519,7 @@ The control panel, each pad's recorder, the operator's window and the
489
519
  client's reader run on separate computers in separate places. GEA-VPN
490
520
  (since 0.75.0; the Administration tab's card, `gea help vpn`) joins them
491
521
  into one private WireGuard network over the internet: the office reaches
492
- every box at a fixed private address (`http://10.77.0.3:8780`) as if it
522
+ every box at a fixed private address (`http://10.78.0.3:8780`) as if it
493
523
  sat on the pad's cable - the pull, the live monitor - and nothing else on
494
524
  the internet can see any of them. One hub is needed, a small Debian or
495
525
  Ubuntu server of the site's own with a public address (UDP 51820); every
@@ -800,7 +830,7 @@ unsigned, the key hand-overs - and shows the reports as they were signed. A
800
830
  reader made from the workspace knows the site's key fingerprints, so it
801
831
  says whether a dossier is the site's; it allows no network request, and it
802
832
  leaves the trusted time-stamp to `verify_dossier.py`. For a client who wants
803
- it installed, every release also carries `GEA-Reader-Setup-0.76.0.exe`: GEA
833
+ it installed, every release also carries `GEA-Reader-Setup-0.78.0.exe`: GEA
804
834
  Reader as a Windows program of its own - its own icon and taskbar button,
805
835
  Check with GEA Reader on a dossier's right-click menu, fingerprints the client
806
836
  saves kept on that computer, nothing of GEA-Program. `gea help reader`.
@@ -1565,7 +1595,7 @@ attaches the zips to the GitHub release of that tag.
1565
1595
 
1566
1596
  ### The Windows installer
1567
1597
 
1568
- Every release also carries `GEA-Program-Setup-0.76.0.exe` (for 0.76.0): the
1598
+ Every release also carries `GEA-Program-Setup-0.78.0.exe` (for 0.78.0): the
1569
1599
  same Windows kit installed like any Windows program, for the signed-in user
1570
1600
  alone and with no administrator rights (`%LOCALAPPDATA%\Programs\GEA-Program`).
1571
1601
  It asks for the site workspace (an existing one such as `C:\site` is used as
@@ -1584,7 +1614,7 @@ it, removes the program and leaves the workspace. Silent, for a site's
1584
1614
  software deployment:
1585
1615
 
1586
1616
  ```
1587
- GEA-Program-Setup-0.76.0.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /WORKSPACE="C:\site" /SITENAME="Pad 3" /TASKS="desktopicon"
1617
+ GEA-Program-Setup-0.78.0.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /WORKSPACE="C:\site" /SITENAME="Pad 3" /TASKS="desktopicon"
1588
1618
  ```
1589
1619
 
1590
1620
  The setup is built by Inno Setup 6 from `tools/installer.iss` in the same
@@ -424,9 +424,39 @@ keeps them byte for byte and makes the array and electrode stations of
424
424
  them. `gea help recorder`; the box's README has the parts, the wiring and
425
425
  the clock.
426
426
 
427
+ ### GEA Driller: the directional driller's agent
428
+
429
+ GEA Driller (`driller/`; `GEA-Driller-<version>.tar.gz` on every release;
430
+ since 0.77.0; `gea help driller`) is the program on the rig PC. It reads
431
+ the EDR's WITS0 feed and the pre-drill model of the target layer and, every
432
+ 30 ft of new hole, recommends in the driller's units what to do next:
433
+ build, drop or hold and by how much (toolface and steering ratio for a
434
+ rotary steerable system), the weight on bit, the rotary speed, the flow
435
+ rate, and whether to drill on, circulate, or ream and wash first - with its
436
+ reasons and the confidence of each choice. A position filter (since
437
+ 0.78.0) places the bit in the layer the way a geosteerer does, from the
438
+ gamma and the deep-resistivity distance against the model, and the screen
439
+ draws the band it puts the layer in. The driller accepts, rejects or
440
+ records what was done instead, by name; every recommendation, answer and
441
+ command is on record with its hash, and GEA pulls the records into the
442
+ well from the **Drill string** tab's card (`gea workspace --path C:\site
443
+ --action driller-pull --box http://192.168.1.60:8790 --well SWD-1`). The
444
+ agent is a policy trained by proximal policy optimization in a physics
445
+ twin of the lateral - the layer rolling with dip, undulation and faults,
446
+ the gamma and the deep-resistivity boundary the tools read of it, the
447
+ steering tool, the bit, the hydraulics, the hole - on scenes drawn fresh,
448
+ judged against a textbook driller on scenes it never saw; the figures of
449
+ that judgement are a simulation's and are labelled so. Advisory by
450
+ default; the closed loop ships as a design with a switch, armed by a named
451
+ operator for one section, disarming itself on a stale feed, a crossed
452
+ limit or the section's end, through a downlink that keeps every command and
453
+ sends none - no vendor's protocol ships with this version. Before there is
454
+ a rig PC, **Start the twin as the rig** on the same card runs the driller's
455
+ program on the office PC with a scene drilling itself.
456
+
427
457
  ### The tutorial
428
458
 
429
- Every step of GEA and the programs around it, as 27 lessons on the
459
+ Every step of GEA and the programs around it, as 29 lessons on the
430
460
  **Tutorial** tab (since 0.76.0; `gea help tutorial`): the office's lessons
431
461
  first - install, sign in, set up the site, bring wells and data in, the
432
462
  well page, the declarations sheet, the patch panel, alarms and
@@ -436,7 +466,7 @@ seismic, the recorder from the office, reports, the signed dossier and the
436
466
  Reader, users and HTTPS, backups and the gate, new versions from inside
437
467
  the program, GEA-VPN - and the pad attendant's after: the box and its
438
468
  parts, installing the recorder on the Pi, the monitor, the USB mirror and
439
- joining the VPN. Each lesson names who it is for, the page it is done on
469
+ joining the VPN - and GEA Driller from the office and on the rig PC. Each lesson names who it is for, the page it is done on
440
470
  (a button opens it), how long it takes, the numbered steps with the
441
471
  buttons as the page names them, and how you know it worked; each account
442
472
  ticks lessons off. **Print the handout** gives the whole course as one
@@ -450,7 +480,7 @@ The control panel, each pad's recorder, the operator's window and the
450
480
  client's reader run on separate computers in separate places. GEA-VPN
451
481
  (since 0.75.0; the Administration tab's card, `gea help vpn`) joins them
452
482
  into one private WireGuard network over the internet: the office reaches
453
- every box at a fixed private address (`http://10.77.0.3:8780`) as if it
483
+ every box at a fixed private address (`http://10.78.0.3:8780`) as if it
454
484
  sat on the pad's cable - the pull, the live monitor - and nothing else on
455
485
  the internet can see any of them. One hub is needed, a small Debian or
456
486
  Ubuntu server of the site's own with a public address (UDP 51820); every
@@ -761,7 +791,7 @@ unsigned, the key hand-overs - and shows the reports as they were signed. A
761
791
  reader made from the workspace knows the site's key fingerprints, so it
762
792
  says whether a dossier is the site's; it allows no network request, and it
763
793
  leaves the trusted time-stamp to `verify_dossier.py`. For a client who wants
764
- it installed, every release also carries `GEA-Reader-Setup-0.76.0.exe`: GEA
794
+ it installed, every release also carries `GEA-Reader-Setup-0.78.0.exe`: GEA
765
795
  Reader as a Windows program of its own - its own icon and taskbar button,
766
796
  Check with GEA Reader on a dossier's right-click menu, fingerprints the client
767
797
  saves kept on that computer, nothing of GEA-Program. `gea help reader`.
@@ -1526,7 +1556,7 @@ attaches the zips to the GitHub release of that tag.
1526
1556
 
1527
1557
  ### The Windows installer
1528
1558
 
1529
- Every release also carries `GEA-Program-Setup-0.76.0.exe` (for 0.76.0): the
1559
+ Every release also carries `GEA-Program-Setup-0.78.0.exe` (for 0.78.0): the
1530
1560
  same Windows kit installed like any Windows program, for the signed-in user
1531
1561
  alone and with no administrator rights (`%LOCALAPPDATA%\Programs\GEA-Program`).
1532
1562
  It asks for the site workspace (an existing one such as `C:\site` is used as
@@ -1545,7 +1575,7 @@ it, removes the program and leaves the workspace. Silent, for a site's
1545
1575
  software deployment:
1546
1576
 
1547
1577
  ```
1548
- GEA-Program-Setup-0.76.0.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /WORKSPACE="C:\site" /SITENAME="Pad 3" /TASKS="desktopicon"
1578
+ GEA-Program-Setup-0.78.0.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /WORKSPACE="C:\site" /SITENAME="Pad 3" /TASKS="desktopicon"
1549
1579
  ```
1550
1580
 
1551
1581
  The setup is built by Inno Setup 6 from `tools/installer.iss` in the same
@@ -123,7 +123,7 @@ from .profile_catalog import (
123
123
  read_pangaea_txt,
124
124
  )
125
125
 
126
- __version__ = "0.76.0"
126
+ __version__ = "0.78.0"
127
127
  __all__ = [
128
128
  "aging_rate", "rate_psi_yr", "accuracy_psi",
129
129
  "Sensor", "SimulatorConfig", "DownholeEngine",
@@ -370,7 +370,7 @@ def main(argv=None) -> int:
370
370
  p_ws.add_argument("--path", type=str, required=True, help="the workspace folder")
371
371
  p_ws.add_argument("--action", type=str, default="list",
372
372
  choices=["init", "add-file", "add-catalog", "add-live", "remove", "list", "migrate", "refresh", "audit",
373
- "add-seismic", "refresh-seismic", "remove-seismic", "sar-film", "bit-image", "field-pull", "refresh-all", "add-track", "refresh-track", "remove-track",
373
+ "add-seismic", "refresh-seismic", "remove-seismic", "sar-film", "bit-image", "field-pull", "driller-pull", "refresh-all", "add-track", "refresh-track", "remove-track",
374
374
  "seismic-dataset", "seismic-field", "add-site", "sites", "site-report", "remove-site", "rename",
375
375
  "set-well", "sra-define", "sra-report", "associate", "osdu-export", "quakeml-export", "well-identity", "vibration-report",
376
376
  "add-live-station", "live-fold", "live-run", "month-end", "add-layer", "layers", "remove-layer", "structure", "interval",
@@ -428,7 +428,7 @@ def main(argv=None) -> int:
428
428
  p_ws.add_argument("--truth", type=str, default=None, help="add-track: ground truth CSV (point_id, lat, lon, utc[, note])")
429
429
  p_ws.add_argument("--track", type=str, default=None, help="refresh-track / remove-track: the track id")
430
430
  p_ws.add_argument("--win", type=float, default=600.0, help="add-track: the window length, s (default 600)")
431
- p_ws.add_argument("--box", type=str, default=None, help="field-pull: the recorder's address (http://192.168.1.50:8780, as its page shows) or its mirror folder")
431
+ p_ws.add_argument("--box", type=str, default=None, help="field-pull: the recorder's address (http://192.168.1.50:8780, as its page shows) or its mirror folder; driller-pull: the rig PC's address (http://192.168.1.60:8790)")
432
432
  p_ws.add_argument("--n-stations", type=int, default=24, help="bit-image: ground stations, the reference among them")
433
433
  p_ws.add_argument("--radius", type=float, default=6000.0, help="bit-image: the array's outer ring, ft")
434
434
  p_ws.add_argument("--noise", type=float, default=1.0, help="bit-image: ground noise against a reference arrival of 50")
@@ -1039,7 +1039,7 @@ def main(argv=None) -> int:
1039
1039
  p_vp.add_argument("--subnet", type=str, default=None, help="with --create: the private subnet (default 10.77.0.0/24)")
1040
1040
  p_vp.add_argument("--hub", type=str, default=None, metavar="HOST", help="change the hub's public name or address; every configuration is written again")
1041
1041
  p_vp.add_argument("--add", type=str, default=None, metavar="NAME", help="add a member of this name (Pad 3 box) of the --kind")
1042
- p_vp.add_argument("--kind", type=str, default="box", help="with --add: office, box, operator, reader or other (default box)")
1042
+ p_vp.add_argument("--kind", type=str, default="box", help="with --add: office, box, driller, operator, reader or other (default box)")
1043
1043
  p_vp.add_argument("--remove", type=str, default=None, metavar="ID", help="remove the member of this id (pad-3-box); run the hub installer again after")
1044
1044
  p_vp.add_argument("--bundles", action="store_true", help="write the hub installer and every member's configuration again")
1045
1045
  p_vp.add_argument("--json", action="store_true")
@@ -3563,6 +3563,19 @@ def main(argv=None) -> int:
3563
3563
  if not a.track:
3564
3564
  raise SystemExit("remove-track needs --track TRACK_ID")
3565
3565
  ws.remove_track(a.track, actor=a.actor); print("removed (folder kept):", a.track); return 0
3566
+ elif a.action == "driller-pull":
3567
+ from . import driller_link as DL
3568
+ if not a.box or not a.well:
3569
+ raise SystemExit("driller-pull needs --box http://192.168.1.60:8790 (the rig PC, or the folder of its records) and --well SWD-1")
3570
+ try:
3571
+ r = DL.pull(ws, a.box, a.well, actor=a.actor)
3572
+ except ValueError as e:
3573
+ raise SystemExit(f"driller-pull: {e}")
3574
+ sm = r['summary']
3575
+ print(f"driller-pull: {r['source']} ({r['rig_well']}) into {r['well']}: {len(r['fetched'])} file(s) fetched, {len(r['kept'])} already here, {len(r['bad'])} failed their hash; "
3576
+ f"{sm['decisions']} decisions ({sm['answers']['accept']} accepted, {sm['answers']['reject']} rejected, {sm['answers']['override']} done otherwise), "
3577
+ f"{sm['armed_sections']} armed section(s), {sm['commands']} command(s), {sm['commands_sent']} sent")
3578
+ return 0 if not r['bad'] else 1
3566
3579
  elif a.action == "field-pull":
3567
3580
  from . import field_pull as FP
3568
3581
  if not a.box: