gea-program 0.75.1__tar.gz → 0.77.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 (428) hide show
  1. {gea_program-0.75.1/gea_program.egg-info → gea_program-0.77.0}/PKG-INFO +51 -4
  2. {gea_program-0.75.1 → gea_program-0.77.0}/README.md +50 -3
  3. {gea_program-0.75.1 → gea_program-0.77.0}/gea/__init__.py +1 -1
  4. {gea_program-0.75.1 → gea_program-0.77.0}/gea/__main__.py +53 -3
  5. {gea_program-0.75.1 → gea_program-0.77.0}/gea/acceptance_tests.py +400 -9
  6. gea_program-0.77.0/gea/driller_link.py +278 -0
  7. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/IT_SECURITY.md +14 -0
  8. gea_program-0.77.0/gea/help/driller.md +13 -0
  9. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/install.md +2 -2
  10. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/reader.md +1 -1
  11. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/recorder.md +1 -1
  12. gea_program-0.77.0/gea/help/tutorial/01-install.md +26 -0
  13. gea_program-0.77.0/gea/help/tutorial/02-sign-in.md +22 -0
  14. gea_program-0.77.0/gea/help/tutorial/03-site.md +22 -0
  15. gea_program-0.77.0/gea/help/tutorial/04-add-well.md +24 -0
  16. gea_program-0.77.0/gea/help/tutorial/05-records.md +22 -0
  17. gea_program-0.77.0/gea/help/tutorial/06-well-page.md +19 -0
  18. gea_program-0.77.0/gea/help/tutorial/07-declare.md +20 -0
  19. gea_program-0.77.0/gea/help/tutorial/08-patches.md +22 -0
  20. gea_program-0.77.0/gea/help/tutorial/09-alarms.md +19 -0
  21. gea_program-0.77.0/gea/help/tutorial/10-control-room.md +17 -0
  22. gea_program-0.77.0/gea/help/tutorial/11-summary-month.md +17 -0
  23. gea_program-0.77.0/gea/help/tutorial/12-where-the-well-is.md +19 -0
  24. gea_program-0.77.0/gea/help/tutorial/13-drilling-pages.md +24 -0
  25. gea_program-0.77.0/gea/help/tutorial/14-production-pages.md +17 -0
  26. gea_program-0.77.0/gea/help/tutorial/15-seismic.md +19 -0
  27. gea_program-0.77.0/gea/help/tutorial/16-seismicity.md +18 -0
  28. gea_program-0.77.0/gea/help/tutorial/17-recorder-office.md +18 -0
  29. gea_program-0.77.0/gea/help/tutorial/18-reports.md +18 -0
  30. gea_program-0.77.0/gea/help/tutorial/19-dossier-reader.md +17 -0
  31. gea_program-0.77.0/gea/help/tutorial/20-admin.md +19 -0
  32. gea_program-0.77.0/gea/help/tutorial/21-upkeep.md +19 -0
  33. gea_program-0.77.0/gea/help/tutorial/22-updates.md +17 -0
  34. gea_program-0.77.0/gea/help/tutorial/23-vpn.md +22 -0
  35. gea_program-0.77.0/gea/help/tutorial/24-the-box.md +26 -0
  36. gea_program-0.77.0/gea/help/tutorial/25-install-recorder.md +21 -0
  37. gea_program-0.77.0/gea/help/tutorial/26-monitor.md +17 -0
  38. gea_program-0.77.0/gea/help/tutorial/27-mirror-vpn.md +21 -0
  39. gea_program-0.77.0/gea/help/tutorial/28-driller-office.md +24 -0
  40. gea_program-0.77.0/gea/help/tutorial/29-driller-rig.md +21 -0
  41. gea_program-0.77.0/gea/help/tutorial.md +13 -0
  42. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/vpn.md +1 -1
  43. {gea_program-0.75.1 → gea_program-0.77.0}/gea/helplib.py +13 -7
  44. {gea_program-0.75.1 → gea_program-0.77.0}/gea/service.py +63 -0
  45. gea_program-0.77.0/gea/tutorial.py +238 -0
  46. {gea_program-0.75.1 → gea_program-0.77.0}/gea/updates.py +3 -3
  47. {gea_program-0.75.1 → gea_program-0.77.0}/gea/vpn.py +2 -1
  48. {gea_program-0.75.1 → gea_program-0.77.0}/gea/web/app.html +56 -4
  49. {gea_program-0.75.1 → gea_program-0.77.0/gea_program.egg-info}/PKG-INFO +51 -4
  50. {gea_program-0.75.1 → gea_program-0.77.0}/gea_program.egg-info/SOURCES.txt +33 -0
  51. {gea_program-0.75.1 → gea_program-0.77.0}/pyproject.toml +2 -2
  52. {gea_program-0.75.1 → gea_program-0.77.0}/LICENSE +0 -0
  53. {gea_program-0.75.1 → gea_program-0.77.0}/gea/BENCH_TEST_PROTOCOL.md +0 -0
  54. {gea_program-0.75.1 → gea_program-0.77.0}/gea/accuracy_statement.py +0 -0
  55. {gea_program-0.75.1 → gea_program-0.77.0}/gea/alarm_engine.py +0 -0
  56. {gea_program-0.75.1 → gea_program-0.77.0}/gea/alerts.py +0 -0
  57. {gea_program-0.75.1 → gea_program-0.77.0}/gea/backup.py +0 -0
  58. {gea_program-0.75.1 → gea_program-0.77.0}/gea/bench.py +0 -0
  59. {gea_program-0.75.1 → gea_program-0.77.0}/gea/bit_seismic.py +0 -0
  60. {gea_program-0.75.1 → gea_program-0.77.0}/gea/blind_harness.py +0 -0
  61. {gea_program-0.75.1 → gea_program-0.77.0}/gea/casing_design.py +0 -0
  62. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/acex_lomonosov_age_depth_model.provenance.json +0 -0
  63. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/acex_lomonosov_age_depth_model.txt +0 -0
  64. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/agassiz77_canada_temperature.csv +0 -0
  65. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/agassiz77_canada_temperature.provenance.json +0 -0
  66. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/barbados_110_consolidation.provenance.json +0 -0
  67. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/barbados_110_consolidation.txt +0 -0
  68. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/bengal_u1452_grain_size.provenance.json +0 -0
  69. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/bengal_u1452_grain_size.txt +0 -0
  70. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/blake_164_methane_isotopes.provenance.json +0 -0
  71. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/blake_164_methane_isotopes.txt +0 -0
  72. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/chicxulub_m0077a_pwave_velocity.provenance.json +0 -0
  73. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/chicxulub_m0077a_pwave_velocity.txt +0 -0
  74. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/collingwood_1_28_ks_complete.las +0 -0
  75. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/collingwood_1_28_ks_complete.provenance.json +0 -0
  76. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/costa_rica_odp_friction_envelope.provenance.json +0 -0
  77. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/costa_rica_odp_friction_envelope.txt +0 -0
  78. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/dead_sea_5017_debrite_xrf_ms.provenance.json +0 -0
  79. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/dead_sea_5017_debrite_xrf_ms.txt +0 -0
  80. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/dsdp_504b_physical_properties.provenance.json +0 -0
  81. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/dsdp_504b_physical_properties.txt +0 -0
  82. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/dsdp_504b_sound_velocity.provenance.json +0 -0
  83. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/dsdp_504b_sound_velocity.txt +0 -0
  84. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/elgygytgyn_5011_turbidites.provenance.json +0 -0
  85. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/elgygytgyn_5011_turbidites.txt +0 -0
  86. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/epica_domec_co2_800kyr.provenance.json +0 -0
  87. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/epica_domec_co2_800kyr.txt +0 -0
  88. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/fram_909_organic_petrography.provenance.json +0 -0
  89. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/fram_909_organic_petrography.txt +0 -0
  90. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/gbr_325_coral_uth_ages.provenance.json +0 -0
  91. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/gbr_325_coral_uth_ages.txt +0 -0
  92. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/gisp2_greenland_temperature.csv +0 -0
  93. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/gisp2_greenland_temperature.provenance.json +0 -0
  94. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/gom_308_t2p_insitu.provenance.json +0 -0
  95. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/gom_308_t2p_insitu.txt +0 -0
  96. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/guaymas_385_dom_d13c.provenance.json +0 -0
  97. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/guaymas_385_dom_d13c.txt +0 -0
  98. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/hikurangi_u1520_friction_insitu.provenance.json +0 -0
  99. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/hikurangi_u1520_friction_insitu.txt +0 -0
  100. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/hydrate_ridge_204_ncr_hydrate.provenance.json +0 -0
  101. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/hydrate_ridge_204_ncr_hydrate.txt +0 -0
  102. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/iodp_u1324_pore_pressure.provenance.json +0 -0
  103. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/iodp_u1324_pore_pressure.txt +0 -0
  104. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/jfast_c0019_slow_slip_events.provenance.json +0 -0
  105. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/jfast_c0019_slow_slip_events.txt +0 -0
  106. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/kennetcook_2_p129_excerpt.las +0 -0
  107. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/kennetcook_2_p129_excerpt.provenance.json +0 -0
  108. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/ktb_hb_bhgm_density.dat +0 -0
  109. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/ktb_hb_bhgm_density.provenance.json +0 -0
  110. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/ktb_hb_complog_6020_excerpt.provenance.json +0 -0
  111. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/ktb_hb_complog_6020_excerpt.txt +0 -0
  112. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/ktb_hb_hlog246_temperature.dat +0 -0
  113. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/ktb_hb_hlog246_temperature.provenance.json +0 -0
  114. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/ktb_hb_rockmech_compress.dat +0 -0
  115. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/ktb_hb_rockmech_compress.provenance.json +0 -0
  116. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/ktb_hb_tvd_0_9080_excerpt.dat +0 -0
  117. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/ktb_hb_tvd_0_9080_excerpt.provenance.json +0 -0
  118. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/ktb_vb_rockmech_compress.dat +0 -0
  119. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/ktb_vb_rockmech_compress.provenance.json +0 -0
  120. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/ktb_vb_vlog251_temperature.dat +0 -0
  121. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/ktb_vb_vlog251_temperature.provenance.json +0 -0
  122. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/l06_06_nl_survey.csv +0 -0
  123. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/l06_06_nl_survey.provenance.json +0 -0
  124. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/l07_01_nl_excerpt.las +0 -0
  125. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/l07_01_nl_excerpt.provenance.json +0 -0
  126. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/mariana_1200_serpentinite_geochem.provenance.json +0 -0
  127. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/mariana_1200_serpentinite_geochem.txt +0 -0
  128. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/med_160_sapropels.provenance.json +0 -0
  129. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/med_160_sapropels.txt +0 -0
  130. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/nankai_megasplay_shear_strength.provenance.json +0 -0
  131. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/nankai_megasplay_shear_strength.txt +0 -0
  132. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/odp_1027b_thermal_conductivity.provenance.json +0 -0
  133. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/odp_1027b_thermal_conductivity.txt +0 -0
  134. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/odp_1027c_cork_temperature.provenance.json +0 -0
  135. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/odp_1027c_cork_temperature.txt +0 -0
  136. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/odp_1165b_thermal_conductivity.provenance.json +0 -0
  137. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/odp_1165b_thermal_conductivity.txt +0 -0
  138. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/odp_1274a_mantle_peridotite_mad.provenance.json +0 -0
  139. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/odp_1274a_mantle_peridotite_mad.txt +0 -0
  140. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/odp_504b_dike_elastic_moduli.provenance.json +0 -0
  141. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/odp_504b_dike_elastic_moduli.txt +0 -0
  142. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/odp_504b_leg137_borehole_fluids.provenance.json +0 -0
  143. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/odp_504b_leg137_borehole_fluids.txt +0 -0
  144. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/odp_735b_gabbro_elastic_moduli.provenance.json +0 -0
  145. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/odp_735b_gabbro_elastic_moduli.txt +0 -0
  146. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/peru_201_sulfate_reduction.provenance.json +0 -0
  147. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/peru_201_sulfate_reduction.txt +0 -0
  148. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/scorpio_e1_sa_excerpt.las +0 -0
  149. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/scorpio_e1_sa_excerpt.provenance.json +0 -0
  150. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/sumatra_362_cohesion.provenance.json +0 -0
  151. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/sumatra_362_cohesion.txt +0 -0
  152. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/university_6_17_no1_tx_excerpt.las +0 -0
  153. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/university_6_17_no1_tx_excerpt.provenance.json +0 -0
  154. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/ursa_308_xrd_mineralogy.provenance.json +0 -0
  155. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/ursa_308_xrd_mineralogy.txt +0 -0
  156. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/volve_15_9_19_sr_excerpt.las +0 -0
  157. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/volve_15_9_19_sr_excerpt.provenance.json +0 -0
  158. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/volve_15_9_19a_core_excerpt.csv +0 -0
  159. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/volve_15_9_19a_core_excerpt.provenance.json +0 -0
  160. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/volve_f12_f14_production_excerpt.csv +0 -0
  161. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/volve_f12_f14_production_excerpt.provenance.json +0 -0
  162. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/walvis_208_petm_carbonate.provenance.json +0 -0
  163. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/walvis_208_petm_carbonate.txt +0 -0
  164. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/woodlark_1109_rock_eval.provenance.json +0 -0
  165. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog/woodlark_1109_rock_eval.txt +0 -0
  166. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog_map.py +0 -0
  167. {gea_program-0.75.1 → gea_program-0.77.0}/gea/catalog_register.py +0 -0
  168. {gea_program-0.75.1 → gea_program-0.77.0}/gea/certificates.py +0 -0
  169. {gea_program-0.75.1 → gea_program-0.77.0}/gea/cli.py +0 -0
  170. {gea_program-0.75.1 → gea_program-0.77.0}/gea/client_reports.py +0 -0
  171. {gea_program-0.75.1 → gea_program-0.77.0}/gea/collision.py +0 -0
  172. {gea_program-0.75.1 → gea_program-0.77.0}/gea/config_versioning.py +0 -0
  173. {gea_program-0.75.1 → gea_program-0.77.0}/gea/conformance.py +0 -0
  174. {gea_program-0.75.1 → gea_program-0.77.0}/gea/control_room.py +0 -0
  175. {gea_program-0.75.1 → gea_program-0.77.0}/gea/correlation.py +0 -0
  176. {gea_program-0.75.1 → gea_program-0.77.0}/gea/dashboard.py +0 -0
  177. {gea_program-0.75.1 → gea_program-0.77.0}/gea/declarations.py +0 -0
  178. {gea_program-0.75.1 → gea_program-0.77.0}/gea/decline.py +0 -0
  179. {gea_program-0.75.1 → gea_program-0.77.0}/gea/deviation.py +0 -0
  180. {gea_program-0.75.1 → gea_program-0.77.0}/gea/dlis.py +0 -0
  181. {gea_program-0.75.1 → gea_program-0.77.0}/gea/dnp3.py +0 -0
  182. {gea_program-0.75.1 → gea_program-0.77.0}/gea/doctor.py +0 -0
  183. {gea_program-0.75.1 → gea_program-0.77.0}/gea/dossier.py +0 -0
  184. {gea_program-0.75.1 → gea_program-0.77.0}/gea/dossier_verify.py +0 -0
  185. {gea_program-0.75.1 → gea_program-0.77.0}/gea/downhole_engine.py +0 -0
  186. {gea_program-0.75.1 → gea_program-0.77.0}/gea/drift_monitor.py +0 -0
  187. {gea_program-0.75.1 → gea_program-0.77.0}/gea/drill_string.py +0 -0
  188. {gea_program-0.75.1 → gea_program-0.77.0}/gea/earth_model.py +0 -0
  189. {gea_program-0.75.1 → gea_program-0.77.0}/gea/economics.py +0 -0
  190. {gea_program-0.75.1 → gea_program-0.77.0}/gea/ed25519.py +0 -0
  191. {gea_program-0.75.1 → gea_program-0.77.0}/gea/edr.py +0 -0
  192. {gea_program-0.75.1 → gea_program-0.77.0}/gea/elevation.py +0 -0
  193. {gea_program-0.75.1 → gea_program-0.77.0}/gea/etp.py +0 -0
  194. {gea_program-0.75.1 → gea_program-0.77.0}/gea/etp12_schemas.json +0 -0
  195. {gea_program-0.75.1 → gea_program-0.77.0}/gea/example_register_map.json +0 -0
  196. {gea_program-0.75.1 → gea_program-0.77.0}/gea/fat_sat.py +0 -0
  197. {gea_program-0.75.1 → gea_program-0.77.0}/gea/field_pull.py +0 -0
  198. {gea_program-0.75.1 → gea_program-0.77.0}/gea/files.py +0 -0
  199. {gea_program-0.75.1 → gea_program-0.77.0}/gea/fixtures/README.md +0 -0
  200. {gea_program-0.75.1 → gea_program-0.77.0}/gea/fixtures/comcat_delaware_basin_2026-09.txt +0 -0
  201. {gea_program-0.75.1 → gea_program-0.77.0}/gea/fixtures/comcat_mahoning_1990-2026.txt +0 -0
  202. {gea_program-0.75.1 → gea_program-0.77.0}/gea/fixtures/comcat_youngstown_2011-2012.txt +0 -0
  203. {gea_program-0.75.1 → gea_program-0.77.0}/gea/fixtures/ne_110m_coastline.json +0 -0
  204. {gea_program-0.75.1 → gea_program-0.77.0}/gea/follower.py +0 -0
  205. {gea_program-0.75.1 → gea_program-0.77.0}/gea/forward_model.py +0 -0
  206. {gea_program-0.75.1 → gea_program-0.77.0}/gea/frac_hits.py +0 -0
  207. {gea_program-0.75.1 → gea_program-0.77.0}/gea/friction_priors.py +0 -0
  208. {gea_program-0.75.1 → gea_program-0.77.0}/gea/gamma.py +0 -0
  209. {gea_program-0.75.1 → gea_program-0.77.0}/gea/gauge_aging.py +0 -0
  210. {gea_program-0.75.1 → gea_program-0.77.0}/gea/gauge_specs.py +0 -0
  211. {gea_program-0.75.1 → gea_program-0.77.0}/gea/geodesy.py +0 -0
  212. {gea_program-0.75.1 → gea_program-0.77.0}/gea/geomag.py +0 -0
  213. {gea_program-0.75.1 → gea_program-0.77.0}/gea/gravity_reference.py +0 -0
  214. {gea_program-0.75.1 → gea_program-0.77.0}/gea/hartip.py +0 -0
  215. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/TESTER_GUIDE.md +0 -0
  216. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/alarms.md +0 -0
  217. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/alerts.md +0 -0
  218. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/audit-update.md +0 -0
  219. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/backup.md +0 -0
  220. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/bit-image.md +0 -0
  221. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/casing.md +0 -0
  222. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/catalog.md +0 -0
  223. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/charts.md +0 -0
  224. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/collision.md +0 -0
  225. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/company-sign-in.md +0 -0
  226. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/conformance.md +0 -0
  227. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/control-room.md +0 -0
  228. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/data-in.md +0 -0
  229. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/declare.md +0 -0
  230. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/decline.md +0 -0
  231. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/dlis.md +0 -0
  232. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/doctor.md +0 -0
  233. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/dossier.md +0 -0
  234. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/drift.md +0 -0
  235. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/drillstring.md +0 -0
  236. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/economics.md +0 -0
  237. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/edr.md +0 -0
  238. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/etp.md +0 -0
  239. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/field-ports.md +0 -0
  240. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/files.md +0 -0
  241. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/frac-hits.md +0 -0
  242. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/historian.md +0 -0
  243. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/https.md +0 -0
  244. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/hydraulics.md +0 -0
  245. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/instruments.md +0 -0
  246. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/interval.md +0 -0
  247. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/invoice-check.md +0 -0
  248. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/map.md +0 -0
  249. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/month-end.md +0 -0
  250. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/notifications.md +0 -0
  251. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/opseis.md +0 -0
  252. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/osdu.md +0 -0
  253. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/pad-summary.md +0 -0
  254. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/patches.md +0 -0
  255. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/penetrator.md +0 -0
  256. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/plan.md +0 -0
  257. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/pore-pressure.md +0 -0
  258. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/ppdm.md +0 -0
  259. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/quakeml.md +0 -0
  260. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/quality.md +0 -0
  261. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/records.md +0 -0
  262. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/report-history.md +0 -0
  263. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/rig-time.md +0 -0
  264. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/rocks.md +0 -0
  265. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/seedlink.md +0 -0
  266. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/seismic.md +0 -0
  267. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/setup.md +0 -0
  268. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/simulation.md +0 -0
  269. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/site.md +0 -0
  270. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/sites.md +0 -0
  271. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/slip.md +0 -0
  272. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/soak.md +0 -0
  273. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/sra.md +0 -0
  274. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/start.md +0 -0
  275. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/structure.md +0 -0
  276. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/tools.md +0 -0
  277. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/torque-drag.md +0 -0
  278. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/transients.md +0 -0
  279. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/upkeep.md +0 -0
  280. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/vibration.md +0 -0
  281. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/well-report.md +0 -0
  282. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/well-tests.md +0 -0
  283. {gea_program-0.75.1 → gea_program-0.77.0}/gea/help/well3d.md +0 -0
  284. {gea_program-0.75.1 → gea_program-0.77.0}/gea/housekeeping.py +0 -0
  285. {gea_program-0.75.1 → gea_program-0.77.0}/gea/hydraulics.py +0 -0
  286. {gea_program-0.75.1 → gea_program-0.77.0}/gea/icon.py +0 -0
  287. {gea_program-0.75.1 → gea_program-0.77.0}/gea/interval.py +0 -0
  288. {gea_program-0.75.1 → gea_program-0.77.0}/gea/inverse_engine.py +0 -0
  289. {gea_program-0.75.1 → gea_program-0.77.0}/gea/invoice_check.py +0 -0
  290. {gea_program-0.75.1 → gea_program-0.77.0}/gea/jobs.py +0 -0
  291. {gea_program-0.75.1 → gea_program-0.77.0}/gea/launcher.py +0 -0
  292. {gea_program-0.75.1 → gea_program-0.77.0}/gea/live_ports.py +0 -0
  293. {gea_program-0.75.1 → gea_program-0.77.0}/gea/loadtest.py +0 -0
  294. {gea_program-0.75.1 → gea_program-0.77.0}/gea/matplotlib_demo.py +0 -0
  295. {gea_program-0.75.1 → gea_program-0.77.0}/gea/modbus.py +0 -0
  296. {gea_program-0.75.1 → gea_program-0.77.0}/gea/modbus_rtu.py +0 -0
  297. {gea_program-0.75.1 → gea_program-0.77.0}/gea/model_card.py +0 -0
  298. {gea_program-0.75.1 → gea_program-0.77.0}/gea/month_end.py +0 -0
  299. {gea_program-0.75.1 → gea_program-0.77.0}/gea/mqtt_port.py +0 -0
  300. {gea_program-0.75.1 → gea_program-0.77.0}/gea/notify.py +0 -0
  301. {gea_program-0.75.1 → gea_program-0.77.0}/gea/oidc.py +0 -0
  302. {gea_program-0.75.1 → gea_program-0.77.0}/gea/oidc_mock.py +0 -0
  303. {gea_program-0.75.1 → gea_program-0.77.0}/gea/op_seismicity.py +0 -0
  304. {gea_program-0.75.1 → gea_program-0.77.0}/gea/opcua_port.py +0 -0
  305. {gea_program-0.75.1 → gea_program-0.77.0}/gea/operator_app.py +0 -0
  306. {gea_program-0.75.1 → gea_program-0.77.0}/gea/osdu.py +0 -0
  307. {gea_program-0.75.1 → gea_program-0.77.0}/gea/pad_summary.py +0 -0
  308. {gea_program-0.75.1 → gea_program-0.77.0}/gea/patches.py +0 -0
  309. {gea_program-0.75.1 → gea_program-0.77.0}/gea/pdf_report.py +0 -0
  310. {gea_program-0.75.1 → gea_program-0.77.0}/gea/penetrator.py +0 -0
  311. {gea_program-0.75.1 → gea_program-0.77.0}/gea/permits.py +0 -0
  312. {gea_program-0.75.1 → gea_program-0.77.0}/gea/piwebapi.py +0 -0
  313. {gea_program-0.75.1 → gea_program-0.77.0}/gea/pore_pressure.py +0 -0
  314. {gea_program-0.75.1 → gea_program-0.77.0}/gea/ports.py +0 -0
  315. {gea_program-0.75.1 → gea_program-0.77.0}/gea/ppdm.py +0 -0
  316. {gea_program-0.75.1 → gea_program-0.77.0}/gea/profile_catalog.py +0 -0
  317. {gea_program-0.75.1 → gea_program-0.77.0}/gea/project.py +0 -0
  318. {gea_program-0.75.1 → gea_program-0.77.0}/gea/qt6_downhole_app.py +0 -0
  319. {gea_program-0.75.1 → gea_program-0.77.0}/gea/quakeml.py +0 -0
  320. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reader.py +0 -0
  321. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reader_app.py +0 -0
  322. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reconciler.py +0 -0
  323. {gea_program-0.75.1 → gea_program-0.77.0}/gea/recorder_link.py +0 -0
  324. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/IU_ANMO_10_BHZ_response.provenance.json +0 -0
  325. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/IU_ANMO_10_BHZ_response.xml +0 -0
  326. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/WMM2025.COF +0 -0
  327. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/eia_henry_hub_daily.csv.gz +0 -0
  328. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/eia_prices.provenance.json +0 -0
  329. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/eia_wti_daily.csv.gz +0 -0
  330. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/iscwsa_rev4_example.json +0 -0
  331. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/iscwsa_rev5_example.json +0 -0
  332. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/l0701_sonic_gr.las.gz +0 -0
  333. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/l0701_sonic_gr.provenance.json +0 -0
  334. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/libmseed_steim.provenance.json +0 -0
  335. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/libmseed_steim1_4096.mseed +0 -0
  336. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/libmseed_steim2_4096.mseed +0 -0
  337. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/libmseed_steim2_512.mseed +0 -0
  338. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/mahoning_example.json +0 -0
  339. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/mud_motor_specs.json +0 -0
  340. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/owsg_tool_models.json +0 -0
  341. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/penetrator_ratings.json +0 -0
  342. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/seismicity_protocols.json +0 -0
  343. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/tool_sources.json +0 -0
  344. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/us_outline.json +0 -0
  345. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/us_outline.provenance.json +0 -0
  346. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/volve_3d.provenance.json +0 -0
  347. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/volve_f4_interpretation.las.gz +0 -0
  348. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/volve_f4_logs.provenance.json +0 -0
  349. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/volve_f4_lwd.las.gz +0 -0
  350. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/volve_surfaces.json.gz +0 -0
  351. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/volve_traj_F-10.xml.gz +0 -0
  352. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/volve_traj_F-4.xml.gz +0 -0
  353. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/volve_traj_F-5_12.25in.xml.gz +0 -0
  354. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/volve_traj_F-5_17.5in.xml.gz +0 -0
  355. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/volve_traj_F-5_36in.xml.gz +0 -0
  356. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/volve_traj_F-5_8.5in.xml.gz +0 -0
  357. {gea_program-0.75.1 → gea_program-0.77.0}/gea/reference/volve_well_picks.csv.gz +0 -0
  358. {gea_program-0.75.1 → gea_program-0.77.0}/gea/report_history.py +0 -0
  359. {gea_program-0.75.1 → gea_program-0.77.0}/gea/rig_state.py +0 -0
  360. {gea_program-0.75.1 → gea_program-0.77.0}/gea/rock_inventory.py +0 -0
  361. {gea_program-0.75.1 → gea_program-0.77.0}/gea/sample_record.py +0 -0
  362. {gea_program-0.75.1 → gea_program-0.77.0}/gea/sample_well_profile.csv +0 -0
  363. {gea_program-0.75.1 → gea_program-0.77.0}/gea/sbom.py +0 -0
  364. {gea_program-0.75.1 → gea_program-0.77.0}/gea/seedlink.py +0 -0
  365. {gea_program-0.75.1 → gea_program-0.77.0}/gea/segy.py +0 -0
  366. {gea_program-0.75.1 → gea_program-0.77.0}/gea/seismic.py +0 -0
  367. {gea_program-0.75.1 → gea_program-0.77.0}/gea/seismic_array.py +0 -0
  368. {gea_program-0.75.1 → gea_program-0.77.0}/gea/seismic_assoc.py +0 -0
  369. {gea_program-0.75.1 → gea_program-0.77.0}/gea/seismic_detect.py +0 -0
  370. {gea_program-0.75.1 → gea_program-0.77.0}/gea/seismic_film.py +0 -0
  371. {gea_program-0.75.1 → gea_program-0.77.0}/gea/seismic_harmonic.py +0 -0
  372. {gea_program-0.75.1 → gea_program-0.77.0}/gea/seismic_qc.py +0 -0
  373. {gea_program-0.75.1 → gea_program-0.77.0}/gea/seismic_response.py +0 -0
  374. {gea_program-0.75.1 → gea_program-0.77.0}/gea/seismic_signature.py +0 -0
  375. {gea_program-0.75.1 → gea_program-0.77.0}/gea/seismic_track.py +0 -0
  376. {gea_program-0.75.1 → gea_program-0.77.0}/gea/seismic_uncertainty.py +0 -0
  377. {gea_program-0.75.1 → gea_program-0.77.0}/gea/seismic_unlisted.py +0 -0
  378. {gea_program-0.75.1 → gea_program-0.77.0}/gea/seismic_watch.py +0 -0
  379. {gea_program-0.75.1 → gea_program-0.77.0}/gea/sensor_swap.py +0 -0
  380. {gea_program-0.75.1 → gea_program-0.77.0}/gea/series_cache.py +0 -0
  381. {gea_program-0.75.1 → gea_program-0.77.0}/gea/service_life.py +0 -0
  382. {gea_program-0.75.1 → gea_program-0.77.0}/gea/setup_checklist.py +0 -0
  383. {gea_program-0.75.1 → gea_program-0.77.0}/gea/shapefile.py +0 -0
  384. {gea_program-0.75.1 → gea_program-0.77.0}/gea/shell.py +0 -0
  385. {gea_program-0.75.1 → gea_program-0.77.0}/gea/shut_in.py +0 -0
  386. {gea_program-0.75.1 → gea_program-0.77.0}/gea/simulation.py +0 -0
  387. {gea_program-0.75.1 → gea_program-0.77.0}/gea/site_map.py +0 -0
  388. {gea_program-0.75.1 → gea_program-0.77.0}/gea/sla_report.py +0 -0
  389. {gea_program-0.75.1 → gea_program-0.77.0}/gea/slip.py +0 -0
  390. {gea_program-0.75.1 → gea_program-0.77.0}/gea/soak.py +0 -0
  391. {gea_program-0.75.1 → gea_program-0.77.0}/gea/sra.py +0 -0
  392. {gea_program-0.75.1 → gea_program-0.77.0}/gea/store_forward.py +0 -0
  393. {gea_program-0.75.1 → gea_program-0.77.0}/gea/strata_join.py +0 -0
  394. {gea_program-0.75.1 → gea_program-0.77.0}/gea/structure.py +0 -0
  395. {gea_program-0.75.1 → gea_program-0.77.0}/gea/supervisor.py +0 -0
  396. {gea_program-0.75.1 → gea_program-0.77.0}/gea/survey_cmd.py +0 -0
  397. {gea_program-0.75.1 → gea_program-0.77.0}/gea/survey_view.py +0 -0
  398. {gea_program-0.75.1 → gea_program-0.77.0}/gea/telemetry.py +0 -0
  399. {gea_program-0.75.1 → gea_program-0.77.0}/gea/timestamp.py +0 -0
  400. {gea_program-0.75.1 → gea_program-0.77.0}/gea/tls.py +0 -0
  401. {gea_program-0.75.1 → gea_program-0.77.0}/gea/tool_catalog.py +0 -0
  402. {gea_program-0.75.1 → gea_program-0.77.0}/gea/tool_library.py +0 -0
  403. {gea_program-0.75.1 → gea_program-0.77.0}/gea/tool_taxonomy.py +0 -0
  404. {gea_program-0.75.1 → gea_program-0.77.0}/gea/torque_drag.py +0 -0
  405. {gea_program-0.75.1 → gea_program-0.77.0}/gea/transient.py +0 -0
  406. {gea_program-0.75.1 → gea_program-0.77.0}/gea/tray.py +0 -0
  407. {gea_program-0.75.1 → gea_program-0.77.0}/gea/vibration.py +0 -0
  408. {gea_program-0.75.1 → gea_program-0.77.0}/gea/web/reader.html +0 -0
  409. {gea_program-0.75.1 → gea_program-0.77.0}/gea/well3d.py +0 -0
  410. {gea_program-0.75.1 → gea_program-0.77.0}/gea/well_assembler.py +0 -0
  411. {gea_program-0.75.1 → gea_program-0.77.0}/gea/well_records.py +0 -0
  412. {gea_program-0.75.1 → gea_program-0.77.0}/gea/well_report.py +0 -0
  413. {gea_program-0.75.1 → gea_program-0.77.0}/gea/well_test_validation.py +0 -0
  414. {gea_program-0.75.1 → gea_program-0.77.0}/gea/wellplan.py +0 -0
  415. {gea_program-0.75.1 → gea_program-0.77.0}/gea/wellpos.py +0 -0
  416. {gea_program-0.75.1 → gea_program-0.77.0}/gea/winident.py +0 -0
  417. {gea_program-0.75.1 → gea_program-0.77.0}/gea/wits0.py +0 -0
  418. {gea_program-0.75.1 → gea_program-0.77.0}/gea/witsml.py +0 -0
  419. {gea_program-0.75.1 → gea_program-0.77.0}/gea/workspace.py +0 -0
  420. {gea_program-0.75.1 → gea_program-0.77.0}/gea/workspaces.py +0 -0
  421. {gea_program-0.75.1 → gea_program-0.77.0}/gea/x25519.py +0 -0
  422. {gea_program-0.75.1 → gea_program-0.77.0}/gea/xlsx_read.py +0 -0
  423. {gea_program-0.75.1 → gea_program-0.77.0}/gea_program.egg-info/dependency_links.txt +0 -0
  424. {gea_program-0.75.1 → gea_program-0.77.0}/gea_program.egg-info/entry_points.txt +0 -0
  425. {gea_program-0.75.1 → gea_program-0.77.0}/gea_program.egg-info/requires.txt +0 -0
  426. {gea_program-0.75.1 → gea_program-0.77.0}/gea_program.egg-info/top_level.txt +0 -0
  427. {gea_program-0.75.1 → gea_program-0.77.0}/setup.cfg +0 -0
  428. {gea_program-0.75.1 → gea_program-0.77.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.75.1
3
+ Version: 0.77.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,6 +463,53 @@ 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. The driller accepts, rejects or
476
+ records what was done instead, by name; every recommendation, answer and
477
+ command is on record with its hash, and GEA pulls the records into the
478
+ well from the **Drill string** tab's card (`gea workspace --path C:\site
479
+ --action driller-pull --box http://192.168.1.60:8790 --well SWD-1`). The
480
+ agent is a policy trained by proximal policy optimization in a physics
481
+ twin of the lateral - the layer rolling with dip, undulation and faults,
482
+ the gamma and the deep-resistivity boundary the tools read of it, the
483
+ steering tool, the bit, the hydraulics, the hole - on scenes drawn fresh,
484
+ judged against a textbook driller on scenes it never saw; the figures of
485
+ that judgement are a simulation's and are labelled so. Advisory by
486
+ default; the closed loop ships as a design with a switch, armed by a named
487
+ operator for one section, disarming itself on a stale feed, a crossed
488
+ limit or the section's end, through a downlink that keeps every command and
489
+ sends none - no vendor's protocol ships with this version. Before there is
490
+ a rig PC, **Start the twin as the rig** on the same card runs the driller's
491
+ program on the office PC with a scene drilling itself.
492
+
493
+ ### The tutorial
494
+
495
+ Every step of GEA and the programs around it, as 29 lessons on the
496
+ **Tutorial** tab (since 0.76.0; `gea help tutorial`): the office's lessons
497
+ first - install, sign in, set up the site, bring wells and data in, the
498
+ well page, the declarations sheet, the patch panel, alarms and
499
+ notifications, the control room, the daily summary and the month-end
500
+ packet, the map and the 3D view, the drilling and production pages,
501
+ seismic, the recorder from the office, reports, the signed dossier and the
502
+ Reader, users and HTTPS, backups and the gate, new versions from inside
503
+ the program, GEA-VPN - and the pad attendant's after: the box and its
504
+ parts, installing the recorder on the Pi, the monitor, the USB mirror and
505
+ 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
506
+ (a button opens it), how long it takes, the numbered steps with the
507
+ buttons as the page names them, and how you know it worked; each account
508
+ ticks lessons off. **Print the handout** gives the whole course as one
509
+ page for the people who do not sit at the screen. From a terminal:
510
+ `gea tutorial`, `gea tutorial --lesson 3`, `gea tutorial --handout
511
+ --workspace C:\site`.
512
+
466
513
  ### GEA-VPN: the programs on separate computers, one private network
467
514
 
468
515
  The control panel, each pad's recorder, the operator's window and the
@@ -780,7 +827,7 @@ unsigned, the key hand-overs - and shows the reports as they were signed. A
780
827
  reader made from the workspace knows the site's key fingerprints, so it
781
828
  says whether a dossier is the site's; it allows no network request, and it
782
829
  leaves the trusted time-stamp to `verify_dossier.py`. For a client who wants
783
- it installed, every release also carries `GEA-Reader-Setup-0.75.1.exe`: GEA
830
+ it installed, every release also carries `GEA-Reader-Setup-0.77.0.exe`: GEA
784
831
  Reader as a Windows program of its own - its own icon and taskbar button,
785
832
  Check with GEA Reader on a dossier's right-click menu, fingerprints the client
786
833
  saves kept on that computer, nothing of GEA-Program. `gea help reader`.
@@ -1545,7 +1592,7 @@ attaches the zips to the GitHub release of that tag.
1545
1592
 
1546
1593
  ### The Windows installer
1547
1594
 
1548
- Every release also carries `GEA-Program-Setup-0.75.1.exe` (for 0.75.1): the
1595
+ Every release also carries `GEA-Program-Setup-0.77.0.exe` (for 0.77.0): the
1549
1596
  same Windows kit installed like any Windows program, for the signed-in user
1550
1597
  alone and with no administrator rights (`%LOCALAPPDATA%\Programs\GEA-Program`).
1551
1598
  It asks for the site workspace (an existing one such as `C:\site` is used as
@@ -1564,7 +1611,7 @@ it, removes the program and leaves the workspace. Silent, for a site's
1564
1611
  software deployment:
1565
1612
 
1566
1613
  ```
1567
- GEA-Program-Setup-0.75.1.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /WORKSPACE="C:\site" /SITENAME="Pad 3" /TASKS="desktopicon"
1614
+ GEA-Program-Setup-0.77.0.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /WORKSPACE="C:\site" /SITENAME="Pad 3" /TASKS="desktopicon"
1568
1615
  ```
1569
1616
 
1570
1617
  The setup is built by Inno Setup 6 from `tools/installer.iss` in the same
@@ -424,6 +424,53 @@ 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. The driller accepts, rejects or
437
+ records what was done instead, by name; every recommendation, answer and
438
+ command is on record with its hash, and GEA pulls the records into the
439
+ well from the **Drill string** tab's card (`gea workspace --path C:\site
440
+ --action driller-pull --box http://192.168.1.60:8790 --well SWD-1`). The
441
+ agent is a policy trained by proximal policy optimization in a physics
442
+ twin of the lateral - the layer rolling with dip, undulation and faults,
443
+ the gamma and the deep-resistivity boundary the tools read of it, the
444
+ steering tool, the bit, the hydraulics, the hole - on scenes drawn fresh,
445
+ judged against a textbook driller on scenes it never saw; the figures of
446
+ that judgement are a simulation's and are labelled so. Advisory by
447
+ default; the closed loop ships as a design with a switch, armed by a named
448
+ operator for one section, disarming itself on a stale feed, a crossed
449
+ limit or the section's end, through a downlink that keeps every command and
450
+ sends none - no vendor's protocol ships with this version. Before there is
451
+ a rig PC, **Start the twin as the rig** on the same card runs the driller's
452
+ program on the office PC with a scene drilling itself.
453
+
454
+ ### The tutorial
455
+
456
+ Every step of GEA and the programs around it, as 29 lessons on the
457
+ **Tutorial** tab (since 0.76.0; `gea help tutorial`): the office's lessons
458
+ first - install, sign in, set up the site, bring wells and data in, the
459
+ well page, the declarations sheet, the patch panel, alarms and
460
+ notifications, the control room, the daily summary and the month-end
461
+ packet, the map and the 3D view, the drilling and production pages,
462
+ seismic, the recorder from the office, reports, the signed dossier and the
463
+ Reader, users and HTTPS, backups and the gate, new versions from inside
464
+ the program, GEA-VPN - and the pad attendant's after: the box and its
465
+ parts, installing the recorder on the Pi, the monitor, the USB mirror and
466
+ 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
467
+ (a button opens it), how long it takes, the numbered steps with the
468
+ buttons as the page names them, and how you know it worked; each account
469
+ ticks lessons off. **Print the handout** gives the whole course as one
470
+ page for the people who do not sit at the screen. From a terminal:
471
+ `gea tutorial`, `gea tutorial --lesson 3`, `gea tutorial --handout
472
+ --workspace C:\site`.
473
+
427
474
  ### GEA-VPN: the programs on separate computers, one private network
428
475
 
429
476
  The control panel, each pad's recorder, the operator's window and the
@@ -741,7 +788,7 @@ unsigned, the key hand-overs - and shows the reports as they were signed. A
741
788
  reader made from the workspace knows the site's key fingerprints, so it
742
789
  says whether a dossier is the site's; it allows no network request, and it
743
790
  leaves the trusted time-stamp to `verify_dossier.py`. For a client who wants
744
- it installed, every release also carries `GEA-Reader-Setup-0.75.1.exe`: GEA
791
+ it installed, every release also carries `GEA-Reader-Setup-0.77.0.exe`: GEA
745
792
  Reader as a Windows program of its own - its own icon and taskbar button,
746
793
  Check with GEA Reader on a dossier's right-click menu, fingerprints the client
747
794
  saves kept on that computer, nothing of GEA-Program. `gea help reader`.
@@ -1506,7 +1553,7 @@ attaches the zips to the GitHub release of that tag.
1506
1553
 
1507
1554
  ### The Windows installer
1508
1555
 
1509
- Every release also carries `GEA-Program-Setup-0.75.1.exe` (for 0.75.1): the
1556
+ Every release also carries `GEA-Program-Setup-0.77.0.exe` (for 0.77.0): the
1510
1557
  same Windows kit installed like any Windows program, for the signed-in user
1511
1558
  alone and with no administrator rights (`%LOCALAPPDATA%\Programs\GEA-Program`).
1512
1559
  It asks for the site workspace (an existing one such as `C:\site` is used as
@@ -1525,7 +1572,7 @@ it, removes the program and leaves the workspace. Silent, for a site's
1525
1572
  software deployment:
1526
1573
 
1527
1574
  ```
1528
- GEA-Program-Setup-0.75.1.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /WORKSPACE="C:\site" /SITENAME="Pad 3" /TASKS="desktopicon"
1575
+ GEA-Program-Setup-0.77.0.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /WORKSPACE="C:\site" /SITENAME="Pad 3" /TASKS="desktopicon"
1529
1576
  ```
1530
1577
 
1531
1578
  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.75.1"
126
+ __version__ = "0.77.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")
@@ -1023,6 +1023,15 @@ def main(argv=None) -> int:
1023
1023
  p_up.add_argument("--install", type=str, default=None, help="run the fetched GEA-Program-Setup of this version (Windows): the control panel stops and comes back")
1024
1024
  p_up.add_argument("--actor", type=str, default="cli")
1025
1025
 
1026
+ p_tu = sub.add_parser("tutorial", help="the tutorial: every step of GEA and the programs around it as lessons - list them, print one, write the handout (the Tutorial tab does the same by clicking)")
1027
+ p_tu.add_argument("--lesson", type=str, default=None, help="print one lesson by its number (3) or its name (install)")
1028
+ p_tu.add_argument("--handout", action="store_true", help="write the whole course as one printable HTML page (and Markdown)")
1029
+ p_tu.add_argument("--workspace", type=str, default=None, help="with --handout: the workspace whose exports\\tutorial folder gets it (C:\\site); with a workspace, --user shows that person's progress")
1030
+ p_tu.add_argument("--out", type=str, default=None, help="with --handout and no workspace: the HTML file to write (C:\\site\\GEA-Tutorial.html)")
1031
+ p_tu.add_argument("--user", type=str, default="", help="whose progress to show")
1032
+ p_tu.add_argument("--actor", type=str, default="cli")
1033
+ p_tu.add_argument("--json", action="store_true")
1034
+
1026
1035
  p_vp = sub.add_parser("vpn", help="GEA-VPN: the private WireGuard network the programs talk over - make it, add and remove members, write the hub installer and every member's configuration (the Administration card does the same by clicking)")
1027
1036
  p_vp.add_argument("--workspace", type=str, default=None, help="the workspace (C:\\site); keys in keys\\vpn\\network.json, files under exports\\vpn")
1028
1037
  p_vp.add_argument("--create", type=str, default=None, metavar="HOST", help="make the network with the hub at this public name or address (vpn.pad3site.com or 203.0.113.10); the office member is made with it")
@@ -1030,7 +1039,7 @@ def main(argv=None) -> int:
1030
1039
  p_vp.add_argument("--subnet", type=str, default=None, help="with --create: the private subnet (default 10.77.0.0/24)")
1031
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")
1032
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")
1033
- 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)")
1034
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")
1035
1044
  p_vp.add_argument("--bundles", action="store_true", help="write the hub installer and every member's configuration again")
1036
1045
  p_vp.add_argument("--json", action="store_true")
@@ -2371,6 +2380,34 @@ def main(argv=None) -> int:
2371
2380
  return 0
2372
2381
  from .doctor import update as _update
2373
2382
  return _update(check_only=a.check, extras=a.extras, as_json=a.json)
2383
+ elif a.cmd == "tutorial":
2384
+ import json as _json
2385
+ from . import tutorial as TU
2386
+ ws = None
2387
+ if a.workspace or os.environ.get("GEA_WORKSPACE"):
2388
+ from .workspace import Workspace
2389
+ ws = Workspace(a.workspace or os.environ.get("GEA_WORKSPACE"))
2390
+ if a.handout:
2391
+ if ws is not None:
2392
+ r = TU.write_handout(ws, a.actor, __version__)
2393
+ print(f"written: {r['html']} and {r['md']} ({r['lessons']} lessons); open the HTML and print it for the PDF")
2394
+ return 0
2395
+ out = a.out or f"GEA-Tutorial-{__version__}.html"
2396
+ with open(out, "w", encoding="utf-8") as f:
2397
+ f.write(TU.handout_html(__version__))
2398
+ print(f"written: {out} ({len(TU.lessons())} lessons); open it and print it for the PDF")
2399
+ return 0
2400
+ if a.lesson:
2401
+ les = TU.lesson(a.lesson)
2402
+ if les is None:
2403
+ raise SystemExit(f"tutorial: no lesson {a.lesson}; `gea tutorial` lists them")
2404
+ print(_json.dumps({k: v for k, v in les.items() if k not in ("path", "html")}, indent=1) if a.json else les["markdown"])
2405
+ return 0
2406
+ if a.json:
2407
+ print(_json.dumps(TU.overview(ws, a.user), indent=1))
2408
+ else:
2409
+ print(TU.text(ws, a.user))
2410
+ return 0
2374
2411
  elif a.cmd == "vpn":
2375
2412
  import json as _json
2376
2413
  from . import vpn as VP
@@ -3526,6 +3563,19 @@ def main(argv=None) -> int:
3526
3563
  if not a.track:
3527
3564
  raise SystemExit("remove-track needs --track TRACK_ID")
3528
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
3529
3579
  elif a.action == "field-pull":
3530
3580
  from . import field_pull as FP
3531
3581
  if not a.box: