gea-program 0.63.0__tar.gz → 0.65.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 (377) hide show
  1. {gea_program-0.63.0/gea_program.egg-info → gea_program-0.65.0}/PKG-INFO +33 -2
  2. {gea_program-0.63.0 → gea_program-0.65.0}/README.md +32 -1
  3. {gea_program-0.63.0 → gea_program-0.65.0}/gea/__init__.py +1 -1
  4. {gea_program-0.63.0 → gea_program-0.65.0}/gea/__main__.py +20 -1
  5. {gea_program-0.63.0 → gea_program-0.65.0}/gea/acceptance_tests.py +523 -7
  6. {gea_program-0.63.0 → gea_program-0.65.0}/gea/casing_design.py +339 -63
  7. {gea_program-0.63.0 → gea_program-0.65.0}/gea/declarations.py +65 -51
  8. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/IT_SECURITY.md +25 -1
  9. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/casing.md +3 -1
  10. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/declare.md +1 -1
  11. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/hydraulics.md +1 -1
  12. gea_program-0.65.0/gea/help/install.md +21 -0
  13. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/rig-time.md +2 -2
  14. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/start.md +1 -1
  15. {gea_program-0.63.0 → gea_program-0.65.0}/gea/helplib.py +1 -0
  16. {gea_program-0.63.0 → gea_program-0.65.0}/gea/hydraulics.py +28 -4
  17. gea_program-0.65.0/gea/icon.py +126 -0
  18. gea_program-0.65.0/gea/launcher.py +418 -0
  19. {gea_program-0.63.0 → gea_program-0.65.0}/gea/rig_state.py +12 -32
  20. gea_program-0.65.0/gea/tray.py +381 -0
  21. {gea_program-0.63.0 → gea_program-0.65.0}/gea/web/app.html +13 -8
  22. {gea_program-0.63.0 → gea_program-0.65.0/gea_program.egg-info}/PKG-INFO +33 -2
  23. {gea_program-0.63.0 → gea_program-0.65.0}/gea_program.egg-info/SOURCES.txt +4 -0
  24. {gea_program-0.63.0 → gea_program-0.65.0}/pyproject.toml +1 -1
  25. {gea_program-0.63.0 → gea_program-0.65.0}/LICENSE +0 -0
  26. {gea_program-0.63.0 → gea_program-0.65.0}/gea/BENCH_TEST_PROTOCOL.md +0 -0
  27. {gea_program-0.63.0 → gea_program-0.65.0}/gea/accuracy_statement.py +0 -0
  28. {gea_program-0.63.0 → gea_program-0.65.0}/gea/alarm_engine.py +0 -0
  29. {gea_program-0.63.0 → gea_program-0.65.0}/gea/alerts.py +0 -0
  30. {gea_program-0.63.0 → gea_program-0.65.0}/gea/backup.py +0 -0
  31. {gea_program-0.63.0 → gea_program-0.65.0}/gea/bench.py +0 -0
  32. {gea_program-0.63.0 → gea_program-0.65.0}/gea/blind_harness.py +0 -0
  33. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/acex_lomonosov_age_depth_model.provenance.json +0 -0
  34. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/acex_lomonosov_age_depth_model.txt +0 -0
  35. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/agassiz77_canada_temperature.csv +0 -0
  36. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/agassiz77_canada_temperature.provenance.json +0 -0
  37. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/barbados_110_consolidation.provenance.json +0 -0
  38. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/barbados_110_consolidation.txt +0 -0
  39. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/bengal_u1452_grain_size.provenance.json +0 -0
  40. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/bengal_u1452_grain_size.txt +0 -0
  41. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/blake_164_methane_isotopes.provenance.json +0 -0
  42. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/blake_164_methane_isotopes.txt +0 -0
  43. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/chicxulub_m0077a_pwave_velocity.provenance.json +0 -0
  44. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/chicxulub_m0077a_pwave_velocity.txt +0 -0
  45. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/collingwood_1_28_ks_complete.las +0 -0
  46. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/collingwood_1_28_ks_complete.provenance.json +0 -0
  47. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/costa_rica_odp_friction_envelope.provenance.json +0 -0
  48. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/costa_rica_odp_friction_envelope.txt +0 -0
  49. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/dead_sea_5017_debrite_xrf_ms.provenance.json +0 -0
  50. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/dead_sea_5017_debrite_xrf_ms.txt +0 -0
  51. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/dsdp_504b_physical_properties.provenance.json +0 -0
  52. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/dsdp_504b_physical_properties.txt +0 -0
  53. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/dsdp_504b_sound_velocity.provenance.json +0 -0
  54. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/dsdp_504b_sound_velocity.txt +0 -0
  55. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/elgygytgyn_5011_turbidites.provenance.json +0 -0
  56. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/elgygytgyn_5011_turbidites.txt +0 -0
  57. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/epica_domec_co2_800kyr.provenance.json +0 -0
  58. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/epica_domec_co2_800kyr.txt +0 -0
  59. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/fram_909_organic_petrography.provenance.json +0 -0
  60. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/fram_909_organic_petrography.txt +0 -0
  61. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/gbr_325_coral_uth_ages.provenance.json +0 -0
  62. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/gbr_325_coral_uth_ages.txt +0 -0
  63. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/gisp2_greenland_temperature.csv +0 -0
  64. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/gisp2_greenland_temperature.provenance.json +0 -0
  65. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/gom_308_t2p_insitu.provenance.json +0 -0
  66. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/gom_308_t2p_insitu.txt +0 -0
  67. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/guaymas_385_dom_d13c.provenance.json +0 -0
  68. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/guaymas_385_dom_d13c.txt +0 -0
  69. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/hikurangi_u1520_friction_insitu.provenance.json +0 -0
  70. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/hikurangi_u1520_friction_insitu.txt +0 -0
  71. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/hydrate_ridge_204_ncr_hydrate.provenance.json +0 -0
  72. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/hydrate_ridge_204_ncr_hydrate.txt +0 -0
  73. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/iodp_u1324_pore_pressure.provenance.json +0 -0
  74. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/iodp_u1324_pore_pressure.txt +0 -0
  75. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/jfast_c0019_slow_slip_events.provenance.json +0 -0
  76. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/jfast_c0019_slow_slip_events.txt +0 -0
  77. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/kennetcook_2_p129_excerpt.las +0 -0
  78. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/kennetcook_2_p129_excerpt.provenance.json +0 -0
  79. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/ktb_hb_bhgm_density.dat +0 -0
  80. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/ktb_hb_bhgm_density.provenance.json +0 -0
  81. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/ktb_hb_complog_6020_excerpt.provenance.json +0 -0
  82. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/ktb_hb_complog_6020_excerpt.txt +0 -0
  83. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/ktb_hb_hlog246_temperature.dat +0 -0
  84. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/ktb_hb_hlog246_temperature.provenance.json +0 -0
  85. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/ktb_hb_rockmech_compress.dat +0 -0
  86. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/ktb_hb_rockmech_compress.provenance.json +0 -0
  87. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/ktb_hb_tvd_0_9080_excerpt.dat +0 -0
  88. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/ktb_hb_tvd_0_9080_excerpt.provenance.json +0 -0
  89. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/ktb_vb_rockmech_compress.dat +0 -0
  90. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/ktb_vb_rockmech_compress.provenance.json +0 -0
  91. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/ktb_vb_vlog251_temperature.dat +0 -0
  92. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/ktb_vb_vlog251_temperature.provenance.json +0 -0
  93. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/l06_06_nl_survey.csv +0 -0
  94. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/l06_06_nl_survey.provenance.json +0 -0
  95. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/l07_01_nl_excerpt.las +0 -0
  96. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/l07_01_nl_excerpt.provenance.json +0 -0
  97. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/mariana_1200_serpentinite_geochem.provenance.json +0 -0
  98. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/mariana_1200_serpentinite_geochem.txt +0 -0
  99. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/med_160_sapropels.provenance.json +0 -0
  100. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/med_160_sapropels.txt +0 -0
  101. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/nankai_megasplay_shear_strength.provenance.json +0 -0
  102. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/nankai_megasplay_shear_strength.txt +0 -0
  103. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/odp_1027b_thermal_conductivity.provenance.json +0 -0
  104. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/odp_1027b_thermal_conductivity.txt +0 -0
  105. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/odp_1027c_cork_temperature.provenance.json +0 -0
  106. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/odp_1027c_cork_temperature.txt +0 -0
  107. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/odp_1165b_thermal_conductivity.provenance.json +0 -0
  108. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/odp_1165b_thermal_conductivity.txt +0 -0
  109. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/odp_1274a_mantle_peridotite_mad.provenance.json +0 -0
  110. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/odp_1274a_mantle_peridotite_mad.txt +0 -0
  111. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/odp_504b_dike_elastic_moduli.provenance.json +0 -0
  112. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/odp_504b_dike_elastic_moduli.txt +0 -0
  113. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/odp_504b_leg137_borehole_fluids.provenance.json +0 -0
  114. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/odp_504b_leg137_borehole_fluids.txt +0 -0
  115. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/odp_735b_gabbro_elastic_moduli.provenance.json +0 -0
  116. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/odp_735b_gabbro_elastic_moduli.txt +0 -0
  117. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/peru_201_sulfate_reduction.provenance.json +0 -0
  118. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/peru_201_sulfate_reduction.txt +0 -0
  119. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/scorpio_e1_sa_excerpt.las +0 -0
  120. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/scorpio_e1_sa_excerpt.provenance.json +0 -0
  121. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/sumatra_362_cohesion.provenance.json +0 -0
  122. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/sumatra_362_cohesion.txt +0 -0
  123. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/university_6_17_no1_tx_excerpt.las +0 -0
  124. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/university_6_17_no1_tx_excerpt.provenance.json +0 -0
  125. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/ursa_308_xrd_mineralogy.provenance.json +0 -0
  126. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/ursa_308_xrd_mineralogy.txt +0 -0
  127. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/volve_15_9_19_sr_excerpt.las +0 -0
  128. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/volve_15_9_19_sr_excerpt.provenance.json +0 -0
  129. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/volve_15_9_19a_core_excerpt.csv +0 -0
  130. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/volve_15_9_19a_core_excerpt.provenance.json +0 -0
  131. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/volve_f12_f14_production_excerpt.csv +0 -0
  132. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/volve_f12_f14_production_excerpt.provenance.json +0 -0
  133. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/walvis_208_petm_carbonate.provenance.json +0 -0
  134. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/walvis_208_petm_carbonate.txt +0 -0
  135. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/woodlark_1109_rock_eval.provenance.json +0 -0
  136. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog/woodlark_1109_rock_eval.txt +0 -0
  137. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog_map.py +0 -0
  138. {gea_program-0.63.0 → gea_program-0.65.0}/gea/catalog_register.py +0 -0
  139. {gea_program-0.63.0 → gea_program-0.65.0}/gea/certificates.py +0 -0
  140. {gea_program-0.63.0 → gea_program-0.65.0}/gea/cli.py +0 -0
  141. {gea_program-0.63.0 → gea_program-0.65.0}/gea/client_reports.py +0 -0
  142. {gea_program-0.63.0 → gea_program-0.65.0}/gea/collision.py +0 -0
  143. {gea_program-0.63.0 → gea_program-0.65.0}/gea/config_versioning.py +0 -0
  144. {gea_program-0.63.0 → gea_program-0.65.0}/gea/conformance.py +0 -0
  145. {gea_program-0.63.0 → gea_program-0.65.0}/gea/control_room.py +0 -0
  146. {gea_program-0.63.0 → gea_program-0.65.0}/gea/correlation.py +0 -0
  147. {gea_program-0.63.0 → gea_program-0.65.0}/gea/dashboard.py +0 -0
  148. {gea_program-0.63.0 → gea_program-0.65.0}/gea/decline.py +0 -0
  149. {gea_program-0.63.0 → gea_program-0.65.0}/gea/deviation.py +0 -0
  150. {gea_program-0.63.0 → gea_program-0.65.0}/gea/dlis.py +0 -0
  151. {gea_program-0.63.0 → gea_program-0.65.0}/gea/dnp3.py +0 -0
  152. {gea_program-0.63.0 → gea_program-0.65.0}/gea/doctor.py +0 -0
  153. {gea_program-0.63.0 → gea_program-0.65.0}/gea/dossier.py +0 -0
  154. {gea_program-0.63.0 → gea_program-0.65.0}/gea/dossier_verify.py +0 -0
  155. {gea_program-0.63.0 → gea_program-0.65.0}/gea/downhole_engine.py +0 -0
  156. {gea_program-0.63.0 → gea_program-0.65.0}/gea/drift_monitor.py +0 -0
  157. {gea_program-0.63.0 → gea_program-0.65.0}/gea/drill_string.py +0 -0
  158. {gea_program-0.63.0 → gea_program-0.65.0}/gea/earth_model.py +0 -0
  159. {gea_program-0.63.0 → gea_program-0.65.0}/gea/economics.py +0 -0
  160. {gea_program-0.63.0 → gea_program-0.65.0}/gea/ed25519.py +0 -0
  161. {gea_program-0.63.0 → gea_program-0.65.0}/gea/edr.py +0 -0
  162. {gea_program-0.63.0 → gea_program-0.65.0}/gea/elevation.py +0 -0
  163. {gea_program-0.63.0 → gea_program-0.65.0}/gea/etp.py +0 -0
  164. {gea_program-0.63.0 → gea_program-0.65.0}/gea/etp12_schemas.json +0 -0
  165. {gea_program-0.63.0 → gea_program-0.65.0}/gea/example_register_map.json +0 -0
  166. {gea_program-0.63.0 → gea_program-0.65.0}/gea/fat_sat.py +0 -0
  167. {gea_program-0.63.0 → gea_program-0.65.0}/gea/files.py +0 -0
  168. {gea_program-0.63.0 → gea_program-0.65.0}/gea/fixtures/README.md +0 -0
  169. {gea_program-0.63.0 → gea_program-0.65.0}/gea/fixtures/comcat_delaware_basin_2026-09.txt +0 -0
  170. {gea_program-0.63.0 → gea_program-0.65.0}/gea/fixtures/comcat_mahoning_1990-2026.txt +0 -0
  171. {gea_program-0.63.0 → gea_program-0.65.0}/gea/fixtures/comcat_youngstown_2011-2012.txt +0 -0
  172. {gea_program-0.63.0 → gea_program-0.65.0}/gea/fixtures/ne_110m_coastline.json +0 -0
  173. {gea_program-0.63.0 → gea_program-0.65.0}/gea/follower.py +0 -0
  174. {gea_program-0.63.0 → gea_program-0.65.0}/gea/forward_model.py +0 -0
  175. {gea_program-0.63.0 → gea_program-0.65.0}/gea/frac_hits.py +0 -0
  176. {gea_program-0.63.0 → gea_program-0.65.0}/gea/friction_priors.py +0 -0
  177. {gea_program-0.63.0 → gea_program-0.65.0}/gea/gamma.py +0 -0
  178. {gea_program-0.63.0 → gea_program-0.65.0}/gea/gauge_aging.py +0 -0
  179. {gea_program-0.63.0 → gea_program-0.65.0}/gea/gauge_specs.py +0 -0
  180. {gea_program-0.63.0 → gea_program-0.65.0}/gea/geodesy.py +0 -0
  181. {gea_program-0.63.0 → gea_program-0.65.0}/gea/geomag.py +0 -0
  182. {gea_program-0.63.0 → gea_program-0.65.0}/gea/gravity_reference.py +0 -0
  183. {gea_program-0.63.0 → gea_program-0.65.0}/gea/hartip.py +0 -0
  184. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/TESTER_GUIDE.md +0 -0
  185. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/alarms.md +0 -0
  186. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/alerts.md +0 -0
  187. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/audit-update.md +0 -0
  188. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/backup.md +0 -0
  189. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/catalog.md +0 -0
  190. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/charts.md +0 -0
  191. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/collision.md +0 -0
  192. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/company-sign-in.md +0 -0
  193. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/conformance.md +0 -0
  194. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/control-room.md +0 -0
  195. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/data-in.md +0 -0
  196. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/decline.md +0 -0
  197. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/dlis.md +0 -0
  198. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/doctor.md +0 -0
  199. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/dossier.md +0 -0
  200. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/drift.md +0 -0
  201. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/drillstring.md +0 -0
  202. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/economics.md +0 -0
  203. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/edr.md +0 -0
  204. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/etp.md +0 -0
  205. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/field-ports.md +0 -0
  206. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/files.md +0 -0
  207. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/frac-hits.md +0 -0
  208. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/historian.md +0 -0
  209. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/https.md +0 -0
  210. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/instruments.md +0 -0
  211. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/interval.md +0 -0
  212. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/invoice-check.md +0 -0
  213. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/map.md +0 -0
  214. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/month-end.md +0 -0
  215. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/notifications.md +0 -0
  216. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/opseis.md +0 -0
  217. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/osdu.md +0 -0
  218. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/pad-summary.md +0 -0
  219. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/patches.md +0 -0
  220. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/penetrator.md +0 -0
  221. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/plan.md +0 -0
  222. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/pore-pressure.md +0 -0
  223. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/ppdm.md +0 -0
  224. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/quakeml.md +0 -0
  225. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/quality.md +0 -0
  226. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/report-history.md +0 -0
  227. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/seedlink.md +0 -0
  228. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/seismic.md +0 -0
  229. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/setup.md +0 -0
  230. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/simulation.md +0 -0
  231. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/site.md +0 -0
  232. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/sites.md +0 -0
  233. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/slip.md +0 -0
  234. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/soak.md +0 -0
  235. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/sra.md +0 -0
  236. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/structure.md +0 -0
  237. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/tools.md +0 -0
  238. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/torque-drag.md +0 -0
  239. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/transients.md +0 -0
  240. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/upkeep.md +0 -0
  241. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/vibration.md +0 -0
  242. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/well-report.md +0 -0
  243. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/well-tests.md +0 -0
  244. {gea_program-0.63.0 → gea_program-0.65.0}/gea/help/well3d.md +0 -0
  245. {gea_program-0.63.0 → gea_program-0.65.0}/gea/housekeeping.py +0 -0
  246. {gea_program-0.63.0 → gea_program-0.65.0}/gea/interval.py +0 -0
  247. {gea_program-0.63.0 → gea_program-0.65.0}/gea/inverse_engine.py +0 -0
  248. {gea_program-0.63.0 → gea_program-0.65.0}/gea/invoice_check.py +0 -0
  249. {gea_program-0.63.0 → gea_program-0.65.0}/gea/jobs.py +0 -0
  250. {gea_program-0.63.0 → gea_program-0.65.0}/gea/live_ports.py +0 -0
  251. {gea_program-0.63.0 → gea_program-0.65.0}/gea/loadtest.py +0 -0
  252. {gea_program-0.63.0 → gea_program-0.65.0}/gea/matplotlib_demo.py +0 -0
  253. {gea_program-0.63.0 → gea_program-0.65.0}/gea/modbus.py +0 -0
  254. {gea_program-0.63.0 → gea_program-0.65.0}/gea/modbus_rtu.py +0 -0
  255. {gea_program-0.63.0 → gea_program-0.65.0}/gea/model_card.py +0 -0
  256. {gea_program-0.63.0 → gea_program-0.65.0}/gea/month_end.py +0 -0
  257. {gea_program-0.63.0 → gea_program-0.65.0}/gea/mqtt_port.py +0 -0
  258. {gea_program-0.63.0 → gea_program-0.65.0}/gea/notify.py +0 -0
  259. {gea_program-0.63.0 → gea_program-0.65.0}/gea/oidc.py +0 -0
  260. {gea_program-0.63.0 → gea_program-0.65.0}/gea/oidc_mock.py +0 -0
  261. {gea_program-0.63.0 → gea_program-0.65.0}/gea/op_seismicity.py +0 -0
  262. {gea_program-0.63.0 → gea_program-0.65.0}/gea/opcua_port.py +0 -0
  263. {gea_program-0.63.0 → gea_program-0.65.0}/gea/operator_app.py +0 -0
  264. {gea_program-0.63.0 → gea_program-0.65.0}/gea/osdu.py +0 -0
  265. {gea_program-0.63.0 → gea_program-0.65.0}/gea/pad_summary.py +0 -0
  266. {gea_program-0.63.0 → gea_program-0.65.0}/gea/patches.py +0 -0
  267. {gea_program-0.63.0 → gea_program-0.65.0}/gea/pdf_report.py +0 -0
  268. {gea_program-0.63.0 → gea_program-0.65.0}/gea/penetrator.py +0 -0
  269. {gea_program-0.63.0 → gea_program-0.65.0}/gea/permits.py +0 -0
  270. {gea_program-0.63.0 → gea_program-0.65.0}/gea/piwebapi.py +0 -0
  271. {gea_program-0.63.0 → gea_program-0.65.0}/gea/pore_pressure.py +0 -0
  272. {gea_program-0.63.0 → gea_program-0.65.0}/gea/ports.py +0 -0
  273. {gea_program-0.63.0 → gea_program-0.65.0}/gea/ppdm.py +0 -0
  274. {gea_program-0.63.0 → gea_program-0.65.0}/gea/profile_catalog.py +0 -0
  275. {gea_program-0.63.0 → gea_program-0.65.0}/gea/project.py +0 -0
  276. {gea_program-0.63.0 → gea_program-0.65.0}/gea/qt6_downhole_app.py +0 -0
  277. {gea_program-0.63.0 → gea_program-0.65.0}/gea/quakeml.py +0 -0
  278. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reconciler.py +0 -0
  279. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/IU_ANMO_10_BHZ_response.provenance.json +0 -0
  280. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/IU_ANMO_10_BHZ_response.xml +0 -0
  281. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/WMM2025.COF +0 -0
  282. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/eia_henry_hub_daily.csv.gz +0 -0
  283. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/eia_prices.provenance.json +0 -0
  284. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/eia_wti_daily.csv.gz +0 -0
  285. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/iscwsa_rev4_example.json +0 -0
  286. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/iscwsa_rev5_example.json +0 -0
  287. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/l0701_sonic_gr.las.gz +0 -0
  288. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/l0701_sonic_gr.provenance.json +0 -0
  289. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/libmseed_steim.provenance.json +0 -0
  290. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/libmseed_steim1_4096.mseed +0 -0
  291. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/libmseed_steim2_4096.mseed +0 -0
  292. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/libmseed_steim2_512.mseed +0 -0
  293. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/mahoning_example.json +0 -0
  294. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/mud_motor_specs.json +0 -0
  295. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/owsg_tool_models.json +0 -0
  296. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/penetrator_ratings.json +0 -0
  297. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/seismicity_protocols.json +0 -0
  298. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/tool_sources.json +0 -0
  299. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/us_outline.json +0 -0
  300. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/us_outline.provenance.json +0 -0
  301. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/volve_3d.provenance.json +0 -0
  302. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/volve_f4_interpretation.las.gz +0 -0
  303. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/volve_f4_logs.provenance.json +0 -0
  304. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/volve_f4_lwd.las.gz +0 -0
  305. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/volve_surfaces.json.gz +0 -0
  306. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/volve_traj_F-10.xml.gz +0 -0
  307. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/volve_traj_F-4.xml.gz +0 -0
  308. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/volve_traj_F-5_12.25in.xml.gz +0 -0
  309. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/volve_traj_F-5_17.5in.xml.gz +0 -0
  310. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/volve_traj_F-5_36in.xml.gz +0 -0
  311. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/volve_traj_F-5_8.5in.xml.gz +0 -0
  312. {gea_program-0.63.0 → gea_program-0.65.0}/gea/reference/volve_well_picks.csv.gz +0 -0
  313. {gea_program-0.63.0 → gea_program-0.65.0}/gea/report_history.py +0 -0
  314. {gea_program-0.63.0 → gea_program-0.65.0}/gea/rock_inventory.py +0 -0
  315. {gea_program-0.63.0 → gea_program-0.65.0}/gea/sample_record.py +0 -0
  316. {gea_program-0.63.0 → gea_program-0.65.0}/gea/sample_well_profile.csv +0 -0
  317. {gea_program-0.63.0 → gea_program-0.65.0}/gea/sbom.py +0 -0
  318. {gea_program-0.63.0 → gea_program-0.65.0}/gea/seedlink.py +0 -0
  319. {gea_program-0.63.0 → gea_program-0.65.0}/gea/segy.py +0 -0
  320. {gea_program-0.63.0 → gea_program-0.65.0}/gea/seismic.py +0 -0
  321. {gea_program-0.63.0 → gea_program-0.65.0}/gea/seismic_array.py +0 -0
  322. {gea_program-0.63.0 → gea_program-0.65.0}/gea/seismic_assoc.py +0 -0
  323. {gea_program-0.63.0 → gea_program-0.65.0}/gea/seismic_detect.py +0 -0
  324. {gea_program-0.63.0 → gea_program-0.65.0}/gea/seismic_film.py +0 -0
  325. {gea_program-0.63.0 → gea_program-0.65.0}/gea/seismic_harmonic.py +0 -0
  326. {gea_program-0.63.0 → gea_program-0.65.0}/gea/seismic_qc.py +0 -0
  327. {gea_program-0.63.0 → gea_program-0.65.0}/gea/seismic_response.py +0 -0
  328. {gea_program-0.63.0 → gea_program-0.65.0}/gea/seismic_signature.py +0 -0
  329. {gea_program-0.63.0 → gea_program-0.65.0}/gea/seismic_track.py +0 -0
  330. {gea_program-0.63.0 → gea_program-0.65.0}/gea/seismic_uncertainty.py +0 -0
  331. {gea_program-0.63.0 → gea_program-0.65.0}/gea/seismic_unlisted.py +0 -0
  332. {gea_program-0.63.0 → gea_program-0.65.0}/gea/seismic_watch.py +0 -0
  333. {gea_program-0.63.0 → gea_program-0.65.0}/gea/sensor_swap.py +0 -0
  334. {gea_program-0.63.0 → gea_program-0.65.0}/gea/series_cache.py +0 -0
  335. {gea_program-0.63.0 → gea_program-0.65.0}/gea/service.py +0 -0
  336. {gea_program-0.63.0 → gea_program-0.65.0}/gea/service_life.py +0 -0
  337. {gea_program-0.63.0 → gea_program-0.65.0}/gea/setup_checklist.py +0 -0
  338. {gea_program-0.63.0 → gea_program-0.65.0}/gea/shapefile.py +0 -0
  339. {gea_program-0.63.0 → gea_program-0.65.0}/gea/shell.py +0 -0
  340. {gea_program-0.63.0 → gea_program-0.65.0}/gea/shut_in.py +0 -0
  341. {gea_program-0.63.0 → gea_program-0.65.0}/gea/simulation.py +0 -0
  342. {gea_program-0.63.0 → gea_program-0.65.0}/gea/site_map.py +0 -0
  343. {gea_program-0.63.0 → gea_program-0.65.0}/gea/sla_report.py +0 -0
  344. {gea_program-0.63.0 → gea_program-0.65.0}/gea/slip.py +0 -0
  345. {gea_program-0.63.0 → gea_program-0.65.0}/gea/soak.py +0 -0
  346. {gea_program-0.63.0 → gea_program-0.65.0}/gea/sra.py +0 -0
  347. {gea_program-0.63.0 → gea_program-0.65.0}/gea/store_forward.py +0 -0
  348. {gea_program-0.63.0 → gea_program-0.65.0}/gea/strata_join.py +0 -0
  349. {gea_program-0.63.0 → gea_program-0.65.0}/gea/structure.py +0 -0
  350. {gea_program-0.63.0 → gea_program-0.65.0}/gea/supervisor.py +0 -0
  351. {gea_program-0.63.0 → gea_program-0.65.0}/gea/survey_cmd.py +0 -0
  352. {gea_program-0.63.0 → gea_program-0.65.0}/gea/survey_view.py +0 -0
  353. {gea_program-0.63.0 → gea_program-0.65.0}/gea/telemetry.py +0 -0
  354. {gea_program-0.63.0 → gea_program-0.65.0}/gea/timestamp.py +0 -0
  355. {gea_program-0.63.0 → gea_program-0.65.0}/gea/tls.py +0 -0
  356. {gea_program-0.63.0 → gea_program-0.65.0}/gea/tool_catalog.py +0 -0
  357. {gea_program-0.63.0 → gea_program-0.65.0}/gea/tool_library.py +0 -0
  358. {gea_program-0.63.0 → gea_program-0.65.0}/gea/tool_taxonomy.py +0 -0
  359. {gea_program-0.63.0 → gea_program-0.65.0}/gea/torque_drag.py +0 -0
  360. {gea_program-0.63.0 → gea_program-0.65.0}/gea/transient.py +0 -0
  361. {gea_program-0.63.0 → gea_program-0.65.0}/gea/vibration.py +0 -0
  362. {gea_program-0.63.0 → gea_program-0.65.0}/gea/well3d.py +0 -0
  363. {gea_program-0.63.0 → gea_program-0.65.0}/gea/well_assembler.py +0 -0
  364. {gea_program-0.63.0 → gea_program-0.65.0}/gea/well_report.py +0 -0
  365. {gea_program-0.63.0 → gea_program-0.65.0}/gea/well_test_validation.py +0 -0
  366. {gea_program-0.63.0 → gea_program-0.65.0}/gea/wellplan.py +0 -0
  367. {gea_program-0.63.0 → gea_program-0.65.0}/gea/wellpos.py +0 -0
  368. {gea_program-0.63.0 → gea_program-0.65.0}/gea/wits0.py +0 -0
  369. {gea_program-0.63.0 → gea_program-0.65.0}/gea/witsml.py +0 -0
  370. {gea_program-0.63.0 → gea_program-0.65.0}/gea/workspace.py +0 -0
  371. {gea_program-0.63.0 → gea_program-0.65.0}/gea/xlsx_read.py +0 -0
  372. {gea_program-0.63.0 → gea_program-0.65.0}/gea_program.egg-info/dependency_links.txt +0 -0
  373. {gea_program-0.63.0 → gea_program-0.65.0}/gea_program.egg-info/entry_points.txt +0 -0
  374. {gea_program-0.63.0 → gea_program-0.65.0}/gea_program.egg-info/requires.txt +0 -0
  375. {gea_program-0.63.0 → gea_program-0.65.0}/gea_program.egg-info/top_level.txt +0 -0
  376. {gea_program-0.63.0 → gea_program-0.65.0}/setup.cfg +0 -0
  377. {gea_program-0.63.0 → gea_program-0.65.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.63.0
3
+ Version: 0.65.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
@@ -695,6 +695,10 @@ http://timestamp.digicert.com --timestamp on`; `gea help dossier`.
695
695
 
696
696
  ### Casing design and kick tolerance
697
697
 
698
+ A well's casing is declared once, as its casing program (the Casing &
699
+ kick tolerance tab, `gea casing`, or the declarations sheet's `[casing]`):
700
+ rig time, hydraulics and torque and drag read the same strings, and a
701
+ string needs only its size and shoe until it is to be checked.
698
702
  Each casing string's burst, collapse and tension ratings by API TR 5C3,
699
703
  from its size, weight and grade, against the loads the hole can put on it
700
704
  - gas to the surface held by the shoe, an emptied string, the buoyed
@@ -1420,6 +1424,33 @@ builds the Windows and Linux kits in CI (`build-installer.yml`), installs
1420
1424
  them the way a client does, runs the gate from the installed kit, and
1421
1425
  attaches the zips to the GitHub release of that tag.
1422
1426
 
1427
+ ### The Windows installer
1428
+
1429
+ Every release also carries `GEA-Program-Setup-0.65.0.exe` (for 0.65.0): the
1430
+ same Windows kit installed like any Windows program, for the signed-in user
1431
+ alone and with no administrator rights (`%LOCALAPPDATA%\Programs\GEA-Program`).
1432
+ It asks for the site workspace (an existing one such as `C:\site` is used as
1433
+ it is), runs the kit's `install.cmd` with no network, and adds Start-menu and
1434
+ desktop shortcuts, an Add/Remove Programs entry and, when chosen, a start at
1435
+ sign-in. The shortcut **GEA-Program** starts the control panel when it is not
1436
+ running and opens it in Microsoft Edge's app window (its own window and
1437
+ taskbar button; Chrome's, else a browser tab, where Edge is missing); the
1438
+ program's icon in the notification area says whether the panel is running
1439
+ and opens, starts or stops it (`gea launch`, `gea tray`). A newer setup
1440
+ installs over the older one after stopping the panel; the uninstaller stops
1441
+ it, removes the program and leaves the workspace. Silent, for a site's
1442
+ software deployment:
1443
+
1444
+ ```
1445
+ GEA-Program-Setup-0.65.0.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /WORKSPACE="C:\site" /TASKS="desktopicon"
1446
+ ```
1447
+
1448
+ The setup is built by Inno Setup 6 from `tools/installer.iss` in the same
1449
+ workflow, signed with the publisher's certificate when one is configured
1450
+ (unsigned, with a notice, until then), attested, and installed, upgraded in
1451
+ place with the control panel running, and uninstalled on the build machine
1452
+ before it is attached. `gea help install`.
1453
+
1423
1454
  ## Layout
1424
1455
 
1425
1456
  ```
@@ -1431,7 +1462,7 @@ docs/report_samples/ one rendered example of every client report, from this bui
1431
1462
  docs/ TESTER_GUIDE.md, REQUIREMENTS_MATRIX.md (the scope-of-work mirror that shaped the reports), examples/ (port configs),
1432
1463
  SESSION_LOG.md (the working record, session by session),
1433
1464
  commercial/ (pilot proposal, bench readiness, commercial use), HISTORY.md (the ship-by-ship record)
1434
- tools/ standalone_check.py (the self-contained guard; run by ci and ship.ps1), build_installer.py (the kit),
1465
+ tools/ standalone_check.py (the self-contained guard; run by ci and ship.ps1), build_installer.py (the kit), installer.iss (the Windows setup),
1435
1466
  render_report_samples.py (docs/report_samples), seismic_reader_check.py (the reader against libmseed)
1436
1467
  CHANGELOG.md per-release summary (a tag ships only with its section); SHIP_LOG.md is written by ship.ps1
1437
1468
  tests/ pytest wrapper around the acceptance suite and the standalone check
@@ -656,6 +656,10 @@ http://timestamp.digicert.com --timestamp on`; `gea help dossier`.
656
656
 
657
657
  ### Casing design and kick tolerance
658
658
 
659
+ A well's casing is declared once, as its casing program (the Casing &
660
+ kick tolerance tab, `gea casing`, or the declarations sheet's `[casing]`):
661
+ rig time, hydraulics and torque and drag read the same strings, and a
662
+ string needs only its size and shoe until it is to be checked.
659
663
  Each casing string's burst, collapse and tension ratings by API TR 5C3,
660
664
  from its size, weight and grade, against the loads the hole can put on it
661
665
  - gas to the surface held by the shoe, an emptied string, the buoyed
@@ -1381,6 +1385,33 @@ builds the Windows and Linux kits in CI (`build-installer.yml`), installs
1381
1385
  them the way a client does, runs the gate from the installed kit, and
1382
1386
  attaches the zips to the GitHub release of that tag.
1383
1387
 
1388
+ ### The Windows installer
1389
+
1390
+ Every release also carries `GEA-Program-Setup-0.65.0.exe` (for 0.65.0): the
1391
+ same Windows kit installed like any Windows program, for the signed-in user
1392
+ alone and with no administrator rights (`%LOCALAPPDATA%\Programs\GEA-Program`).
1393
+ It asks for the site workspace (an existing one such as `C:\site` is used as
1394
+ it is), runs the kit's `install.cmd` with no network, and adds Start-menu and
1395
+ desktop shortcuts, an Add/Remove Programs entry and, when chosen, a start at
1396
+ sign-in. The shortcut **GEA-Program** starts the control panel when it is not
1397
+ running and opens it in Microsoft Edge's app window (its own window and
1398
+ taskbar button; Chrome's, else a browser tab, where Edge is missing); the
1399
+ program's icon in the notification area says whether the panel is running
1400
+ and opens, starts or stops it (`gea launch`, `gea tray`). A newer setup
1401
+ installs over the older one after stopping the panel; the uninstaller stops
1402
+ it, removes the program and leaves the workspace. Silent, for a site's
1403
+ software deployment:
1404
+
1405
+ ```
1406
+ GEA-Program-Setup-0.65.0.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /WORKSPACE="C:\site" /TASKS="desktopicon"
1407
+ ```
1408
+
1409
+ The setup is built by Inno Setup 6 from `tools/installer.iss` in the same
1410
+ workflow, signed with the publisher's certificate when one is configured
1411
+ (unsigned, with a notice, until then), attested, and installed, upgraded in
1412
+ place with the control panel running, and uninstalled on the build machine
1413
+ before it is attached. `gea help install`.
1414
+
1384
1415
  ## Layout
1385
1416
 
1386
1417
  ```
@@ -1392,7 +1423,7 @@ docs/report_samples/ one rendered example of every client report, from this bui
1392
1423
  docs/ TESTER_GUIDE.md, REQUIREMENTS_MATRIX.md (the scope-of-work mirror that shaped the reports), examples/ (port configs),
1393
1424
  SESSION_LOG.md (the working record, session by session),
1394
1425
  commercial/ (pilot proposal, bench readiness, commercial use), HISTORY.md (the ship-by-ship record)
1395
- tools/ standalone_check.py (the self-contained guard; run by ci and ship.ps1), build_installer.py (the kit),
1426
+ tools/ standalone_check.py (the self-contained guard; run by ci and ship.ps1), build_installer.py (the kit), installer.iss (the Windows setup),
1396
1427
  render_report_samples.py (docs/report_samples), seismic_reader_check.py (the reader against libmseed)
1397
1428
  CHANGELOG.md per-release summary (a tag ships only with its section); SHIP_LOG.md is written by ship.ps1
1398
1429
  tests/ pytest wrapper around the acceptance suite and the standalone check
@@ -123,7 +123,7 @@ from .profile_catalog import (
123
123
  read_pangaea_txt,
124
124
  )
125
125
 
126
- __version__ = "0.63.0"
126
+ __version__ = "0.65.0"
127
127
  __all__ = [
128
128
  "aging_rate", "rate_psi_yr", "accuracy_psi",
129
129
  "Sensor", "SimulatorConfig", "DownholeEngine",
@@ -815,6 +815,19 @@ def main(argv=None) -> int:
815
815
  p_sv.add_argument("--behind-proxy", action="store_true", help="a reverse proxy terminates TLS in front: trust X-Forwarded-For/-Proto, mark the cookie Secure (deploy/ has nginx and Caddy examples)")
816
816
  p_sv.add_argument("--no-browser", action="store_true", help="do not open the control panel in a browser once the service is listening (a scheduled start, a restart, a server with no desktop)")
817
817
 
818
+ p_la = sub.add_parser("launch", help="the control panel as a desktop program: start it when it is not running, open it in a window of its own (Edge's app window, else Chrome's, else the browser), put its icon in the notification area")
819
+ p_la.add_argument("--workspace", type=str, default=None, help="the workspace folder (default: GEA_WORKSPACE, else the installer's choice, else %%LOCALAPPDATA%%\\GEA-Program\\site)")
820
+ p_la.add_argument("--port", type=int, default=8765)
821
+ p_la.add_argument("--background", action="store_true", help="start the control panel and its icon without opening a window (the logon task)")
822
+ p_la.add_argument("--no-tray", action="store_true", help="no notification-area icon")
823
+ p_la.add_argument("--selftest", action="store_true", help="say what a launch would do here (the kit, the workspace, the window, the command), start nothing")
824
+ p_la.add_argument("--json", action="store_true")
825
+ p_la.add_argument("--set-workspace", type=str, default=None, help="record the site workspace for this installation (the installer runs it; never a folder inside the program's own)")
826
+ p_ty = sub.add_parser("tray", help="the program's icon in the Windows notification area: running or stopped, and a menu to open, start or stop the control panel")
827
+ p_ty.add_argument("--workspace", type=str, default=None, help="the workspace folder (as gea launch finds it)")
828
+ p_ty.add_argument("--port", type=int, default=8765)
829
+ p_ty.add_argument("--selftest", action="store_true", help="make the icon and its menu, show it for a moment and take it away")
830
+
818
831
  p_tl = sub.add_parser("tls", help="HTTPS for the dashboard: the site's own certificate, a self-signed one made here, or off; with no option, how it stands")
819
832
  p_tl.add_argument("--workspace", type=str, required=True)
820
833
  p_tl.add_argument("--site-cert", type=str, default=None, help="the site's certificate (PEM, the server's first, then any chain) - read from where it is at every start")
@@ -2972,7 +2985,7 @@ def main(argv=None) -> int:
2972
2985
  if not a.well:
2973
2986
  raise ValueError("--casing needs --well")
2974
2987
  c_ = _RS.set_casing(ws, a.actor, a.well, a.casing, a.shoe_md, a.source, a.set_time)
2975
- print(f"casing {c_['size']} in, shoe at {c_['shoe_md_ft']:,.0f} ft MD ({c_['source']})")
2988
+ print(f"casing {c_['size']} in, shoe at {c_['shoe_md_ft']:,.0f} ft MD ({c_['source']}) - in the well's casing program (gea casing)")
2976
2989
  return 0
2977
2990
  if a.w2w_min is not None or a.trip_in is not None or a.trip_out is not None or a.block_weight is not None:
2978
2991
  if a.block_weight is not None and not a.well:
@@ -3211,6 +3224,12 @@ def main(argv=None) -> int:
3211
3224
  if n.get(k):
3212
3225
  print(f" {k}: {n[k]}")
3213
3226
  return 0
3227
+ elif a.cmd == "launch":
3228
+ from .launcher import main as _launch
3229
+ return _launch(a)
3230
+ elif a.cmd == "tray":
3231
+ from .tray import main as _tray
3232
+ return _tray(a)
3214
3233
  elif a.cmd == "serve":
3215
3234
  from .service import Service
3216
3235
  from .workspace import WorkspaceError