chellow 1698931736.0.0__tar.gz → 1765896461.0.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.

Potentially problematic release.


This version of chellow might be problematic. Click here for more details.

Files changed (612) hide show
  1. chellow-1765896461.0.0/.github/workflows/chellow.yml +95 -0
  2. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/PKG-INFO +35 -22
  3. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/README.md +16 -3
  4. chellow-1765896461.0.0/VERSION +1 -0
  5. chellow-1765896461.0.0/bin/chellow_upgrader.sh +36 -0
  6. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/__init__.py +68 -49
  7. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/bank_holidays.py +22 -6
  8. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/dloads.py +70 -26
  9. chellow-1765896461.0.0/chellow/e/aahedc.py +88 -0
  10. chellow-1765896461.0.0/chellow/e/bill_importer.py +259 -0
  11. chellow-1765896461.0.0/chellow/e/bill_parsers/activity_mop_stark_xlsx.py +140 -0
  12. chellow-1765896461.0.0/chellow/e/bill_parsers/amr_dc_stark_xlsx.py +200 -0
  13. chellow-1765896461.0.0/chellow/e/bill_parsers/annual_mop_stark_xlsx.py +155 -0
  14. chellow-1765896461.0.0/chellow/e/bill_parsers/csv.py +189 -0
  15. chellow-1765896461.0.0/chellow/e/bill_parsers/drax_edi.py +502 -0
  16. chellow-1765896461.0.0/chellow/e/bill_parsers/edf_export_xlsx.py +232 -0
  17. chellow-1765896461.0.0/chellow/e/bill_parsers/engie_edi.py +423 -0
  18. chellow-1765896461.0.0/chellow/e/bill_parsers/engie_export_xlsx.py +167 -0
  19. chellow-1765896461.0.0/chellow/e/bill_parsers/engie_xls.py +411 -0
  20. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/e/bill_parsers/engie_xlsx.py +67 -51
  21. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/e/bill_parsers/haven_edi.py +189 -228
  22. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/e/bill_parsers/haven_edi_tprs.py +75 -68
  23. chellow-1765896461.0.0/chellow/e/bill_parsers/mm.py +403 -0
  24. chellow-1765896461.0.0/chellow/e/bill_parsers/nonsettlement_dc_stark_xlsx.py +175 -0
  25. chellow-1765896461.0.0/chellow/e/bill_parsers/settlement_dc_stark_xlsx.py +276 -0
  26. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/e/bill_parsers/sse_edi.py +107 -75
  27. chellow-1765896461.0.0/chellow/e/bill_parsers/sww_xls.py +173 -0
  28. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/e/bmarketidx.py +47 -20
  29. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/e/bsuos.py +55 -15
  30. chellow-1765896461.0.0/chellow/e/ccl.py +95 -0
  31. chellow-1765896461.0.0/chellow/e/cfd.py +417 -0
  32. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/e/computer.py +149 -103
  33. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/e/dno_rate_parser.py +369 -76
  34. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/e/duos.py +141 -39
  35. chellow-1765896461.0.0/chellow/e/elexon.py +177 -0
  36. chellow-1765896461.0.0/chellow/e/energy_management.py +278 -0
  37. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/e/hh_importer.py +245 -72
  38. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/e/hh_parser_bg_csv.py +3 -3
  39. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/e/hh_parser_df2.py +42 -7
  40. chellow-1765896461.0.0/chellow/e/hh_parser_edf_csv.py +102 -0
  41. chellow-1765896461.0.0/chellow/e/hh_parser_schneider_csv.py +75 -0
  42. chellow-1765896461.0.0/chellow/e/hh_parser_schneider_xlsx.py +118 -0
  43. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/e/hh_parser_simple_csv.py +6 -4
  44. chellow-1765896461.0.0/chellow/e/hh_parser_vital_xlsx.py +132 -0
  45. chellow-1698931736.0.0/chellow/e/laf_import.py → chellow-1765896461.0.0/chellow/e/lafs.py +69 -4
  46. chellow-1765896461.0.0/chellow/e/lcc.py +152 -0
  47. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/e/mdd_importer.py +111 -7
  48. chellow-1765896461.0.0/chellow/e/rab.py +75 -0
  49. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/e/rcrc.py +36 -93
  50. chellow-1765896461.0.0/chellow/e/ro.py +98 -0
  51. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/e/scenario.py +117 -70
  52. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/e/system_price.py +39 -107
  53. chellow-1765896461.0.0/chellow/e/tlms.py +432 -0
  54. chellow-1765896461.0.0/chellow/e/tnuos.py +151 -0
  55. chellow-1698931736.0.0/chellow/e/tnuos.py → chellow-1765896461.0.0/chellow/e/triad.py +42 -255
  56. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/e/views.py +2046 -951
  57. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/edi_lib.py +17 -33
  58. chellow-1765896461.0.0/chellow/fake_batch_updater.py +330 -0
  59. chellow-1765896461.0.0/chellow/gas/bill_parser_bgs_xlsx.py +274 -0
  60. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/gas/bill_parser_engie_edi.py +4 -2
  61. chellow-1765896461.0.0/chellow/gas/bill_parser_total_edi.py +380 -0
  62. chellow-1765896461.0.0/chellow/gas/ccl.py +92 -0
  63. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/gas/cv.py +4 -1
  64. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/gas/dn_rate_parser.py +9 -9
  65. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/gas/engine.py +22 -17
  66. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/gas/transportation.py +0 -22
  67. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/gas/views.py +256 -130
  68. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/general_import.py +780 -250
  69. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/models.py +657 -276
  70. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/national_grid.py +8 -3
  71. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/rate_server.py +8 -4
  72. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_109.py +10 -15
  73. chellow-1765896461.0.0/chellow/reports/report_111.py +782 -0
  74. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_169.py +11 -16
  75. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_181.py +12 -12
  76. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_183.py +19 -26
  77. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_187.py +25 -40
  78. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_219.py +75 -63
  79. chellow-1765896461.0.0/chellow/reports/report_231.py +136 -0
  80. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_241.py +25 -35
  81. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_247.py +452 -437
  82. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_29.py +8 -9
  83. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_291.py +14 -13
  84. chellow-1765896461.0.0/chellow/reports/report_33.py +524 -0
  85. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_387.py +7 -11
  86. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_41.py +4 -8
  87. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_429.py +149 -45
  88. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_59.py +266 -357
  89. chellow-1765896461.0.0/chellow/reports/report_81.py +149 -0
  90. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_87.py +72 -45
  91. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_asset_comparison.py +11 -14
  92. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_batches.py +4 -8
  93. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_bills.py +8 -10
  94. chellow-1765896461.0.0/chellow/reports/report_channel_snags.py +305 -0
  95. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_csv_llfcs.py +12 -12
  96. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_csv_site_hh_data.py +39 -39
  97. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_csv_site_snags.py +11 -16
  98. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_ecoes_comparison.py +101 -85
  99. chellow-1765896461.0.0/chellow/reports/report_g_monthly_duration.py +537 -0
  100. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_g_supplies_snapshot.py +6 -28
  101. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_g_supply_virtual_bill.py +5 -9
  102. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_g_virtual_bills.py +12 -16
  103. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_g_virtual_bills_hh.py +8 -8
  104. chellow-1765896461.0.0/chellow/reports/report_missing_bills.py +157 -0
  105. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_sscs.py +10 -16
  106. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/report_supply_contacts.py +5 -17
  107. chellow-1765896461.0.0/chellow/rrun.py +80 -0
  108. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/static/css/chellow.css +1 -1
  109. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/base.html +4 -3
  110. chellow-1765896461.0.0/chellow/templates/dashboard.html +54 -0
  111. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/downloads.html +3 -7
  112. chellow-1765896461.0.0/chellow/templates/e/channel_add.html +81 -0
  113. chellow-1765896461.0.0/chellow/templates/e/channel_snags.html +72 -0
  114. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/comm.html +3 -3
  115. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/csv_sites_hh_data.html +2 -2
  116. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/csv_supplies_snapshot.html +4 -2
  117. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/dc_auto_importer.html +1 -1
  118. chellow-1765896461.0.0/chellow/templates/e/dc_batch.html +138 -0
  119. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/dc_batch_add.html +2 -3
  120. chellow-1765896461.0.0/chellow/templates/e/dc_batch_edit.html +62 -0
  121. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/dc_batch_file.html +2 -3
  122. chellow-1765896461.0.0/chellow/templates/e/dc_batch_file_edit.html +52 -0
  123. chellow-1765896461.0.0/chellow/templates/e/dc_batch_upload_file.html +122 -0
  124. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/dc_batches.html +2 -1
  125. chellow-1765896461.0.0/chellow/templates/e/dc_batches_edit.html +26 -0
  126. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/dc_bill.html +28 -5
  127. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/dc_bill_add.html +4 -4
  128. chellow-1765896461.0.0/chellow/templates/e/dc_bill_edit.html +70 -0
  129. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/dc_bill_import.html +1 -1
  130. chellow-1765896461.0.0/chellow/templates/e/dc_bill_import_contract.html +130 -0
  131. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/dc_contract.html +19 -6
  132. chellow-1765896461.0.0/chellow/templates/e/dc_contract_edit.html +62 -0
  133. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/dc_contract_hh_import.html +8 -7
  134. chellow-1765896461.0.0/chellow/templates/e/dc_contract_properties.html +17 -0
  135. chellow-1765896461.0.0/chellow/templates/e/dc_contract_properties_edit.html +80 -0
  136. chellow-1765896461.0.0/chellow/templates/e/dc_contracts.html +86 -0
  137. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/dc_contracts_add.html +0 -1
  138. chellow-1765896461.0.0/chellow/templates/e/dc_element.html +41 -0
  139. chellow-1765896461.0.0/chellow/templates/e/dc_element_add.html +36 -0
  140. chellow-1765896461.0.0/chellow/templates/e/dc_element_edit.html +49 -0
  141. chellow-1765896461.0.0/chellow/templates/e/dc_entry_add.html +33 -0
  142. chellow-1765896461.0.0/chellow/templates/e/dc_entry_edit.html +39 -0
  143. chellow-1765896461.0.0/chellow/templates/e/dc_issue.html +82 -0
  144. chellow-1765896461.0.0/chellow/templates/e/dc_issue_add.html +26 -0
  145. chellow-1765896461.0.0/chellow/templates/e/dc_issue_attach_supply.html +26 -0
  146. chellow-1765896461.0.0/chellow/templates/e/dc_issue_edit.html +37 -0
  147. chellow-1765896461.0.0/chellow/templates/e/dc_issues.html +57 -0
  148. chellow-1765896461.0.0/chellow/templates/e/dc_rate_script_edit.html +49 -0
  149. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/dno.html +4 -4
  150. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/dtc_meter_type.html +4 -4
  151. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/dtc_meter_types.html +3 -3
  152. chellow-1765896461.0.0/chellow/templates/e/elexon.html +55 -0
  153. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/em_hh_data.html +1 -2
  154. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/em_months.html +18 -18
  155. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/em_site.html +24 -10
  156. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/em_totals.html +19 -0
  157. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/era_edit.html +2 -2
  158. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/era_edit_form.html +10 -10
  159. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/lafs.html +1 -1
  160. chellow-1765896461.0.0/chellow/templates/e/lcc.html +55 -0
  161. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/llfc.html +1 -1
  162. chellow-1765896461.0.0/chellow/templates/e/markdown_docs.html +83 -0
  163. chellow-1765896461.0.0/chellow/templates/e/mop_batch.html +135 -0
  164. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/mop_batch_add.html +2 -3
  165. chellow-1765896461.0.0/chellow/templates/e/mop_batch_edit.html +58 -0
  166. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/mop_batch_file.html +1 -2
  167. chellow-1765896461.0.0/chellow/templates/e/mop_batch_upload_file.html +122 -0
  168. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/mop_batches.html +2 -1
  169. chellow-1765896461.0.0/chellow/templates/e/mop_batches_edit.html +26 -0
  170. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/mop_bill.html +31 -8
  171. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/mop_bill_add.html +7 -27
  172. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/mop_bill_import.html +1 -1
  173. chellow-1765896461.0.0/chellow/templates/e/mop_bill_import_contract.html +130 -0
  174. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/mop_contract.html +15 -5
  175. chellow-1765896461.0.0/chellow/templates/e/mop_contract_edit.html +59 -0
  176. chellow-1765896461.0.0/chellow/templates/e/mop_element.html +41 -0
  177. chellow-1765896461.0.0/chellow/templates/e/mop_element_add.html +36 -0
  178. chellow-1765896461.0.0/chellow/templates/e/mop_element_edit.html +49 -0
  179. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/ods_monthly_duration.html +0 -3
  180. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/read_add.html +2 -7
  181. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/scenario.html +8 -1
  182. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/scenario_docs.html +13 -17
  183. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/site_add_e_supply.html +2 -4
  184. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/site_add_e_supply_form.html +17 -11
  185. {chellow-1698931736.0.0/chellow/templates → chellow-1765896461.0.0/chellow/templates/e}/site_hh_data.html +3 -2
  186. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/supplier_batch.html +5 -9
  187. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/supplier_batch_add.html +2 -2
  188. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/supplier_batch_edit.html +1 -1
  189. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/supplier_batch_file.html +3 -5
  190. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/supplier_batch_file_add.html +18 -11
  191. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/supplier_batch_upload_file.html +83 -9
  192. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/supplier_batches.html +4 -4
  193. chellow-1765896461.0.0/chellow/templates/e/supplier_batches_edit.html +26 -0
  194. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/supplier_bill.html +29 -6
  195. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/supplier_bill_add.html +3 -3
  196. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/supplier_bill_import.html +27 -3
  197. chellow-1765896461.0.0/chellow/templates/e/supplier_bill_import_contract.html +118 -0
  198. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/supplier_contract.html +15 -1
  199. chellow-1765896461.0.0/chellow/templates/e/supplier_contract_edit.html +40 -0
  200. chellow-1765896461.0.0/chellow/templates/e/supplier_element.html +45 -0
  201. chellow-1765896461.0.0/chellow/templates/e/supplier_element_add.html +36 -0
  202. chellow-1765896461.0.0/chellow/templates/e/supplier_element_edit.html +51 -0
  203. chellow-1765896461.0.0/chellow/templates/e/supplier_entry_add.html +33 -0
  204. chellow-1765896461.0.0/chellow/templates/e/supplier_entry_edit.html +39 -0
  205. chellow-1765896461.0.0/chellow/templates/e/supplier_issue.html +81 -0
  206. chellow-1765896461.0.0/chellow/templates/e/supplier_issue_add.html +26 -0
  207. chellow-1765896461.0.0/chellow/templates/e/supplier_issue_attach_supply.html +26 -0
  208. chellow-1765896461.0.0/chellow/templates/e/supplier_issue_edit.html +37 -0
  209. chellow-1765896461.0.0/chellow/templates/e/supplier_issues.html +54 -0
  210. chellow-1765896461.0.0/chellow/templates/e/supplier_rate_script_edit.html +50 -0
  211. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/supply.html +7 -2
  212. chellow-1765896461.0.0/chellow/templates/e/supply_edit.html +90 -0
  213. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/supply_eras.html +88 -97
  214. chellow-1765896461.0.0/chellow/templates/e/supply_issues.html +50 -0
  215. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/supply_notes.html +0 -1
  216. chellow-1765896461.0.0/chellow/templates/fake_batch_updater.html +99 -0
  217. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/batches.html +15 -4
  218. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/bill_import.html +28 -20
  219. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/era_edit.html +4 -0
  220. chellow-1765896461.0.0/chellow/templates/g/supplier_contract_edit.html +40 -0
  221. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/supplier_contracts.html +24 -2
  222. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/supply.html +35 -39
  223. chellow-1765896461.0.0/chellow/templates/g/supply_edit.html +62 -0
  224. chellow-1765896461.0.0/chellow/templates/g/supply_note_add.html +21 -0
  225. chellow-1765896461.0.0/chellow/templates/g/supply_note_edit.html +34 -0
  226. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/supply_notes.html +7 -15
  227. chellow-1765896461.0.0/chellow/templates/general_import.html +64 -0
  228. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/general_imports.html +168 -33
  229. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/home.html +6 -2
  230. chellow-1765896461.0.0/chellow/templates/input_date.html +40 -0
  231. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/macros.html +43 -103
  232. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/non_core_contract.html +5 -2
  233. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/non_core_contract_edit.html +2 -2
  234. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/rate_server.html +70 -0
  235. chellow-1765896461.0.0/chellow/templates/report_run_bill_check.html +159 -0
  236. chellow-1765896461.0.0/chellow/templates/report_run_ecoes_comparison.html +167 -0
  237. chellow-1698931736.0.0/chellow/templates/report_run_bill_check.html → chellow-1765896461.0.0/chellow/templates/report_run_g_bill_check.html +70 -87
  238. chellow-1765896461.0.0/chellow/templates/report_run_missing_e_bills.html +97 -0
  239. chellow-1765896461.0.0/chellow/templates/report_run_monthly_duration_org.html +73 -0
  240. chellow-1765896461.0.0/chellow/templates/report_run_row_bill_check.html +247 -0
  241. chellow-1765896461.0.0/chellow/templates/report_run_row_g_bill_check.html +261 -0
  242. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/report_runs.html +31 -0
  243. chellow-1765896461.0.0/chellow/templates/reports/channel_snags.html +95 -0
  244. chellow-1765896461.0.0/chellow/templates/scenario.html +61 -0
  245. chellow-1765896461.0.0/chellow/templates/scenario_add.html +21 -0
  246. chellow-1765896461.0.0/chellow/templates/scenario_docs.html +277 -0
  247. chellow-1765896461.0.0/chellow/templates/scenario_edit.html +35 -0
  248. chellow-1765896461.0.0/chellow/templates/scenarios.html +39 -0
  249. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/site.html +9 -11
  250. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/site_edit.html +5 -0
  251. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/site_months.html +18 -18
  252. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/supplies.html +2 -7
  253. chellow-1765896461.0.0/chellow/templates/user.html +89 -0
  254. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/users.html +2 -28
  255. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/testing.py +2 -2
  256. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/utils.py +50 -7
  257. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/views.py +581 -276
  258. chellow-1765896461.0.0/pyproject.toml +83 -0
  259. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/conftest.py +12 -2
  260. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/e/bill_parsers/test_activity_mop_stark_xlsx.py +5 -2
  261. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/e/bill_parsers/test_annual_mop_stark_xlsx.py +20 -4
  262. chellow-1765896461.0.0/test/e/bill_parsers/test_bill_parser_amr_dc_stark_xlsx.py +90 -0
  263. chellow-1765896461.0.0/test/e/bill_parsers/test_bill_parser_csv.py +244 -0
  264. chellow-1765896461.0.0/test/e/bill_parsers/test_bill_parser_drax_edi.py +340 -0
  265. chellow-1765896461.0.0/test/e/bill_parsers/test_bill_parser_edf_export_xlsx.py +130 -0
  266. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/e/bill_parsers/test_bill_parser_engie_edi.py +181 -140
  267. chellow-1765896461.0.0/test/e/bill_parsers/test_bill_parser_engie_xls.py +330 -0
  268. chellow-1765896461.0.0/test/e/bill_parsers/test_bill_parser_engie_xlsx.py +283 -0
  269. chellow-1765896461.0.0/test/e/bill_parsers/test_bill_parser_haven_edi.py +1011 -0
  270. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/e/bill_parsers/test_bill_parser_haven_edi_tprs.py +76 -10
  271. chellow-1765896461.0.0/test/e/bill_parsers/test_bill_parser_mm.py +170 -0
  272. chellow-1765896461.0.0/test/e/bill_parsers/test_bill_parser_nonsettlement_dc_stark_xlsx.py +279 -0
  273. chellow-1765896461.0.0/test/e/bill_parsers/test_bill_parser_settlement_dc_stark_xlsx.py +778 -0
  274. chellow-1765896461.0.0/test/e/bill_parsers/test_bill_parser_sse_edi.py +238 -0
  275. chellow-1765896461.0.0/test/e/bill_parsers/test_bill_parser_sww_xls.py +298 -0
  276. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/e/system_price/test_system_price.py +8 -7
  277. chellow-1765896461.0.0/test/e/test_bill_importer.py +288 -0
  278. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/e/test_ccl.py +6 -4
  279. chellow-1765896461.0.0/test/e/test_cfd.py +717 -0
  280. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/e/test_computer.py +350 -26
  281. chellow-1765896461.0.0/test/e/test_dno_rate_parser.py +292 -0
  282. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/e/test_duos.py +299 -13
  283. chellow-1765896461.0.0/test/e/test_energy_management.py +216 -0
  284. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/e/test_hh_importer.py +48 -9
  285. chellow-1765896461.0.0/test/e/test_hh_parser_df2.py +47 -0
  286. chellow-1765896461.0.0/test/e/test_hh_parser_vital_xlsx.py +61 -0
  287. chellow-1698931736.0.0/test/e/test_laf_importer.py → chellow-1765896461.0.0/test/e/test_lafs.py +1 -1
  288. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/e/test_mdd_importer.py +138 -2
  289. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/e/test_ro.py +6 -4
  290. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/e/test_scenario.py +79 -11
  291. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/e/test_tlms.py +42 -5
  292. chellow-1765896461.0.0/test/e/test_tnuos.py +227 -0
  293. chellow-1698931736.0.0/test/e/test_tnuos.py → chellow-1765896461.0.0/test/e/test_triad.py +177 -68
  294. chellow-1698931736.0.0/test/e/test_e_views.py → chellow-1765896461.0.0/test/e/test_views.py +2665 -915
  295. chellow-1765896461.0.0/test/gas/bill_parsers/test_bill_parser_bgs_xlsx.py +604 -0
  296. chellow-1765896461.0.0/test/gas/bill_parsers/test_g_bill_parser_total_edi.py +80 -0
  297. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/gas/test_engine.py +168 -1
  298. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/gas/test_gas_views.py +386 -2
  299. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/gas/test_transportation.py +2 -0
  300. chellow-1765896461.0.0/test/reports/test_g_monthly_duration.py +545 -0
  301. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/reports/test_g_supplies_snapshot.py +6 -8
  302. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/reports/test_g_supply_virtual_bill.py +3 -6
  303. chellow-1765896461.0.0/test/reports/test_g_virtual_bills.py +24 -0
  304. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/reports/test_g_virtual_bills_hh.py +3 -6
  305. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/reports/test_report_109.py +7 -9
  306. chellow-1765896461.0.0/test/reports/test_report_111.py +1347 -0
  307. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/reports/test_report_169.py +18 -20
  308. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/reports/test_report_181.py +22 -7
  309. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/reports/test_report_183.py +17 -0
  310. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/reports/test_report_187.py +72 -47
  311. chellow-1765896461.0.0/test/reports/test_report_219.py +227 -0
  312. chellow-1765896461.0.0/test/reports/test_report_231.py +289 -0
  313. chellow-1765896461.0.0/test/reports/test_report_241.py +217 -0
  314. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/reports/test_report_247.py +3057 -1139
  315. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/reports/test_report_29.py +7 -9
  316. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/reports/test_report_291.py +125 -5
  317. chellow-1765896461.0.0/test/reports/test_report_33.py +631 -0
  318. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/reports/test_report_387.py +9 -11
  319. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/reports/test_report_41.py +34 -40
  320. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/reports/test_report_429.py +127 -31
  321. chellow-1765896461.0.0/test/reports/test_report_59.py +3973 -0
  322. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/reports/test_report_81.py +24 -14
  323. chellow-1765896461.0.0/test/reports/test_report_87.py +321 -0
  324. chellow-1765896461.0.0/test/reports/test_report_asset_comparison.py +61 -0
  325. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/reports/test_report_batches.py +1 -6
  326. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/reports/test_report_bills.py +13 -11
  327. chellow-1765896461.0.0/test/reports/test_report_channel_snags.py +596 -0
  328. chellow-1765896461.0.0/test/reports/test_report_csv_llfcs.py +15 -0
  329. chellow-1765896461.0.0/test/reports/test_report_csv_site_hh_data.py +96 -0
  330. chellow-1765896461.0.0/test/reports/test_report_csv_site_snags.py +15 -0
  331. chellow-1765896461.0.0/test/reports/test_report_dno_vl_parser.py +0 -0
  332. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/reports/test_report_ecoes_comparison.py +190 -149
  333. chellow-1765896461.0.0/test/reports/test_report_missing_e_bills.py +489 -0
  334. chellow-1765896461.0.0/test/reports/test_report_sscs.py +16 -0
  335. chellow-1765896461.0.0/test/reports/test_report_supply_contacts.py +24 -0
  336. chellow-1765896461.0.0/test/test_dloads.py +27 -0
  337. chellow-1765896461.0.0/test/test_edi_lib.py +0 -0
  338. chellow-1765896461.0.0/test/test_fake_batch_updater.py +74 -0
  339. chellow-1765896461.0.0/test/test_general_import.py +1631 -0
  340. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/test_models.py +260 -38
  341. chellow-1765896461.0.0/test/test_rate_server.py +84 -0
  342. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/test_utils.py +6 -1
  343. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/test_views.py +119 -32
  344. chellow-1765896461.0.0/test/utils.py +48 -0
  345. chellow-1698931736.0.0/.github/workflows/chellow.yml +0 -79
  346. chellow-1698931736.0.0/VERSION +0 -1
  347. chellow-1698931736.0.0/bin/chellow_service_monitor.sh +0 -16
  348. chellow-1698931736.0.0/chellow/commands.py +0 -52
  349. chellow-1698931736.0.0/chellow/e/aahedc.py +0 -17
  350. chellow-1698931736.0.0/chellow/e/bill_importer.py +0 -203
  351. chellow-1698931736.0.0/chellow/e/bill_parsers/activity_mop_stark_xlsx.py +0 -125
  352. chellow-1698931736.0.0/chellow/e/bill_parsers/annual_mop_stark_xlsx.py +0 -137
  353. chellow-1698931736.0.0/chellow/e/bill_parsers/csv.py +0 -147
  354. chellow-1698931736.0.0/chellow/e/bill_parsers/engie_edi.py +0 -468
  355. chellow-1698931736.0.0/chellow/e/bill_parsers/engie_xls.py +0 -425
  356. chellow-1698931736.0.0/chellow/e/bill_parsers/mm.py +0 -56
  357. chellow-1698931736.0.0/chellow/e/bill_parsers/nonsettlement_dc_stark_xlsx.py +0 -151
  358. chellow-1698931736.0.0/chellow/e/bill_parsers/settlement_dc_stark_xlsx.py +0 -167
  359. chellow-1698931736.0.0/chellow/e/bill_parsers/sww_xls.py +0 -186
  360. chellow-1698931736.0.0/chellow/e/ccl.py +0 -17
  361. chellow-1698931736.0.0/chellow/e/energy_management.py +0 -294
  362. chellow-1698931736.0.0/chellow/e/ro.py +0 -18
  363. chellow-1698931736.0.0/chellow/e/tlms.py +0 -332
  364. chellow-1698931736.0.0/chellow/gas/ccl.py +0 -15
  365. chellow-1698931736.0.0/chellow/reports/report_111.py +0 -846
  366. chellow-1698931736.0.0/chellow/reports/report_177.py +0 -285
  367. chellow-1698931736.0.0/chellow/reports/report_215.py +0 -176
  368. chellow-1698931736.0.0/chellow/reports/report_231.py +0 -120
  369. chellow-1698931736.0.0/chellow/reports/report_233.py +0 -123
  370. chellow-1698931736.0.0/chellow/reports/report_33.py +0 -507
  371. chellow-1698931736.0.0/chellow/reports/report_81.py +0 -132
  372. chellow-1698931736.0.0/chellow/reports/report_g_monthly_duration.py +0 -361
  373. chellow-1698931736.0.0/chellow/templates/e/channel_add.html +0 -61
  374. chellow-1698931736.0.0/chellow/templates/e/channel_snags.html +0 -116
  375. chellow-1698931736.0.0/chellow/templates/e/dc_batch.html +0 -185
  376. chellow-1698931736.0.0/chellow/templates/e/dc_batch_edit.html +0 -66
  377. chellow-1698931736.0.0/chellow/templates/e/dc_batch_file_edit.html +0 -64
  378. chellow-1698931736.0.0/chellow/templates/e/dc_batch_upload_file.html +0 -54
  379. chellow-1698931736.0.0/chellow/templates/e/dc_bill_edit.html +0 -90
  380. chellow-1698931736.0.0/chellow/templates/e/dc_contract_edit.html +0 -115
  381. chellow-1698931736.0.0/chellow/templates/e/dc_contracts.html +0 -37
  382. chellow-1698931736.0.0/chellow/templates/e/dc_rate_script_edit.html +0 -66
  383. chellow-1698931736.0.0/chellow/templates/e/mop_batch.html +0 -182
  384. chellow-1698931736.0.0/chellow/templates/e/mop_batch_edit.html +0 -66
  385. chellow-1698931736.0.0/chellow/templates/e/mop_batch_upload_file.html +0 -56
  386. chellow-1698931736.0.0/chellow/templates/e/mop_contract_edit.html +0 -74
  387. chellow-1698931736.0.0/chellow/templates/e/site_hh_data.html +0 -52
  388. chellow-1698931736.0.0/chellow/templates/e/supplier_bill_imports.html +0 -421
  389. chellow-1698931736.0.0/chellow/templates/e/supplier_contract_edit.html +0 -52
  390. chellow-1698931736.0.0/chellow/templates/e/supplier_rate_script_edit.html +0 -65
  391. chellow-1698931736.0.0/chellow/templates/e/supply_edit.html +0 -105
  392. chellow-1698931736.0.0/chellow/templates/g/supplier_contract_edit.html +0 -53
  393. chellow-1698931736.0.0/chellow/templates/g/supply_edit.html +0 -76
  394. chellow-1698931736.0.0/chellow/templates/g/supply_note_add.html +0 -21
  395. chellow-1698931736.0.0/chellow/templates/g/supply_note_edit.html +0 -31
  396. chellow-1698931736.0.0/chellow/templates/general_import.html +0 -47
  397. chellow-1698931736.0.0/chellow/templates/report_run_ecoes_comparison.html +0 -139
  398. chellow-1698931736.0.0/chellow/templates/report_run_row_bill_check.html +0 -191
  399. chellow-1698931736.0.0/chellow/templates/user.html +0 -118
  400. chellow-1698931736.0.0/pyproject.toml +0 -71
  401. chellow-1698931736.0.0/setup.cfg +0 -6
  402. chellow-1698931736.0.0/test/e/bill_parsers/test_bill_parser_csv.py +0 -119
  403. chellow-1698931736.0.0/test/e/bill_parsers/test_bill_parser_engie_xls.py +0 -179
  404. chellow-1698931736.0.0/test/e/bill_parsers/test_bill_parser_engie_xlsx.py +0 -179
  405. chellow-1698931736.0.0/test/e/bill_parsers/test_bill_parser_haven_edi.py +0 -541
  406. chellow-1698931736.0.0/test/e/bill_parsers/test_bill_parser_nonsettlement_dc_stark_xlsx/bills.nonsettlement.dc.stark.xlsx +0 -0
  407. chellow-1698931736.0.0/test/e/bill_parsers/test_bill_parser_nonsettlement_dc_stark_xlsx/bills_old.nonsettlement.dc.stark.xlsx +0 -0
  408. chellow-1698931736.0.0/test/e/bill_parsers/test_bill_parser_nonsettlement_dc_stark_xlsx/test_bill_parser_nonsettlement_dc_stark_xlsx.py +0 -101
  409. chellow-1698931736.0.0/test/e/bill_parsers/test_bill_parser_settlement_dc_stark_xlsx/bills.settlement.dc.stark.xlsx +0 -0
  410. chellow-1698931736.0.0/test/e/bill_parsers/test_bill_parser_settlement_dc_stark_xlsx/test_bill_parser_settlement_dc_stark_xlsx.py +0 -11
  411. chellow-1698931736.0.0/test/e/bill_parsers/test_bill_parser_sse_edi.py +0 -134
  412. chellow-1698931736.0.0/test/e/bill_parsers/test_bill_parser_sww_xls.py +0 -139
  413. chellow-1698931736.0.0/test/e/test_bill_importer.py +0 -26
  414. chellow-1698931736.0.0/test/e/test_dno_rate_parser.py +0 -120
  415. chellow-1698931736.0.0/test/reports/test_g_monthly_duration.py +0 -292
  416. chellow-1698931736.0.0/test/reports/test_report_111.py +0 -588
  417. chellow-1698931736.0.0/test/reports/test_report_231.py +0 -68
  418. chellow-1698931736.0.0/test/reports/test_report_33.py +0 -404
  419. chellow-1698931736.0.0/test/reports/test_report_59.py +0 -1018
  420. chellow-1698931736.0.0/test/reports/test_report_87.py +0 -67
  421. chellow-1698931736.0.0/test/reports/test_report_asset_comparison.py +0 -22
  422. chellow-1698931736.0.0/test/test_general_import.py +0 -471
  423. chellow-1698931736.0.0/test/test_rate_server.py +0 -41
  424. chellow-1698931736.0.0/test/utils.py +0 -35
  425. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/.ebextensions/chellow.config +0 -0
  426. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/.gitignore +0 -0
  427. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/application.py +0 -0
  428. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/bin/chellow_start.sh +0 -0
  429. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/api.py +0 -0
  430. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/e/__init__.py +0 -0
  431. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/e/bill_parsers/__init__.py +0 -0
  432. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/e/bill_parsers/bgb_edi.py +0 -0
  433. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/e/bill_parsers/gdf_csv.py +0 -0
  434. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/e/bill_parsers/haven_csv.py +0 -0
  435. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/gas/bill_import.py +0 -0
  436. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/gas/bill_parser_csv.py +0 -0
  437. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/proxy.py +0 -0
  438. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/reports/__init__.py +0 -0
  439. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/static/images/favicon.svg +0 -0
  440. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/static/images/favicon_test.svg +0 -0
  441. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/static/images/logo.png +0 -0
  442. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/static/js/htmx.min.js +0 -0
  443. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/403.html +0 -0
  444. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/bill_type.html +0 -0
  445. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/bill_types.html +0 -0
  446. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/chain.html +0 -0
  447. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/csv_sites_monthly_duration.html +0 -0
  448. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/asset_comparison.html +0 -0
  449. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/channel.html +0 -0
  450. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/channel_edit.html +0 -0
  451. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/channel_snag.html +0 -0
  452. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/channel_snag_edit.html +0 -0
  453. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/comms.html +0 -0
  454. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/cop.html +0 -0
  455. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/cops.html +0 -0
  456. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/csv_bills.html +0 -0
  457. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/csv_register_reads.html +0 -0
  458. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/csv_sites_triad.html +0 -0
  459. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/csv_supplies_hh_data.html +0 -0
  460. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/csv_supplies_triad.html +0 -0
  461. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/dc_bill_imports.html +0 -0
  462. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/dc_contract_hh_imports.html +0 -0
  463. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/dc_rate_script.html +0 -0
  464. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/dc_rate_script_add.html +0 -0
  465. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/dno_rate_script.html +0 -0
  466. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/dno_rate_script_add.html +0 -0
  467. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/dno_rate_script_edit.html +0 -0
  468. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/dnos.html +0 -0
  469. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/duration_report.html +0 -0
  470. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/energisation_status.html +0 -0
  471. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/energisation_statuses.html +0 -0
  472. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/era_supplier_bill_add.html +0 -0
  473. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/generator_type.html +0 -0
  474. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/generator_types.html +0 -0
  475. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/gsp_group.html +0 -0
  476. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/gsp_groups.html +0 -0
  477. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/hh_datum_edit.html +0 -0
  478. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/llfc_edit.html +0 -0
  479. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/llfcs.html +0 -0
  480. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/market_role.html +0 -0
  481. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/market_roles.html +0 -0
  482. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/meter_payment_type.html +0 -0
  483. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/meter_payment_types.html +0 -0
  484. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/meter_type.html +0 -0
  485. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/meter_types.html +0 -0
  486. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/mop_batch_file_edit.html +0 -0
  487. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/mop_bill_edit.html +0 -0
  488. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/mop_bill_imports.html +0 -0
  489. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/mop_contract_add.html +0 -0
  490. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/mop_contracts.html +0 -0
  491. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/mop_rate_script.html +0 -0
  492. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/mop_rate_script_add.html +0 -0
  493. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/mop_rate_script_edit.html +0 -0
  494. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/mtc.html +0 -0
  495. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/mtc_llfc.html +0 -0
  496. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/mtc_llfc_ssc.html +0 -0
  497. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/mtc_llfc_ssc_pc.html +0 -0
  498. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/mtc_llfc_ssc_pcs.html +0 -0
  499. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/mtc_llfc_sscs.html +0 -0
  500. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/mtc_llfcs.html +0 -0
  501. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/mtc_participant.html +0 -0
  502. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/mtc_participants.html +0 -0
  503. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/mtc_ssc.html +0 -0
  504. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/mtc_sscs.html +0 -0
  505. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/mtcs.html +0 -0
  506. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/participant.html +0 -0
  507. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/participants.html +0 -0
  508. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/parties.html +0 -0
  509. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/party.html +0 -0
  510. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/pc.html +0 -0
  511. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/pcs.html +0 -0
  512. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/read_edit.html +0 -0
  513. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/read_type.html +0 -0
  514. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/read_types.html +0 -0
  515. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/scenario_add.html +0 -0
  516. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/scenario_edit.html +0 -0
  517. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/scenarios.html +0 -0
  518. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/site_site_snags.html +0 -0
  519. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/site_snag.html +0 -0
  520. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/site_snag_edit.html +0 -0
  521. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/site_snags.html +0 -0
  522. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/site_snags_edit.html +0 -0
  523. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/source.html +0 -0
  524. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/sources.html +0 -0
  525. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/ssc.html +0 -0
  526. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/sscs.html +0 -0
  527. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/supplier_batch_file_edit.html +0 -0
  528. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/supplier_bill_edit.html +0 -0
  529. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/supplier_contract_add.html +0 -0
  530. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/supplier_contracts.html +0 -0
  531. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/supplier_rate_script.html +0 -0
  532. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/supplier_rate_script_add.html +0 -0
  533. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/supply_hh_data.html +0 -0
  534. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/supply_months.html +0 -0
  535. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/supply_note_add.html +0 -0
  536. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/supply_note_edit.html +0 -0
  537. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/supply_post.html +0 -0
  538. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/supply_virtual_bill.html +0 -0
  539. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/tpr.html +0 -0
  540. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/e/tprs.html +0 -0
  541. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/edi_viewer.html +0 -0
  542. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/batch.html +0 -0
  543. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/batch_add.html +0 -0
  544. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/batch_edit.html +0 -0
  545. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/bill.html +0 -0
  546. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/bill_add.html +0 -0
  547. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/bill_edit.html +0 -0
  548. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/bill_imports.html +0 -0
  549. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/dn.html +0 -0
  550. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/dns.html +0 -0
  551. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/exit_zone.html +0 -0
  552. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/industry_auto_importer.html +0 -0
  553. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/industry_contract.html +0 -0
  554. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/industry_contract_add.html +0 -0
  555. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/industry_contract_edit.html +0 -0
  556. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/industry_contracts.html +0 -0
  557. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/industry_rate_script.html +0 -0
  558. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/industry_rate_script_add.html +0 -0
  559. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/industry_rate_script_edit.html +0 -0
  560. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/ldz.html +0 -0
  561. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/read_add.html +0 -0
  562. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/read_edit.html +0 -0
  563. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/read_type.html +0 -0
  564. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/read_types.html +0 -0
  565. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/reading_frequencies.html +0 -0
  566. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/reading_frequency.html +0 -0
  567. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/reports.html +0 -0
  568. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/supplier_contract.html +0 -0
  569. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/supplier_contract_add.html +0 -0
  570. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/supplier_rate_script.html +0 -0
  571. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/supplier_rate_script_add.html +0 -0
  572. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/supplier_rate_script_edit.html +0 -0
  573. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/supplies.html +0 -0
  574. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/unit.html +0 -0
  575. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/g/units.html +0 -0
  576. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/local_report.html +0 -0
  577. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/local_reports.html +0 -0
  578. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/national_grid.html +0 -0
  579. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/non_core_auto_importer.html +0 -0
  580. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/non_core_contracts.html +0 -0
  581. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/non_core_rate_script.html +0 -0
  582. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/non_core_rate_script_add.html +0 -0
  583. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/non_core_rate_script_edit.html +0 -0
  584. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/object_summary.html +0 -0
  585. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/report_run.html +0 -0
  586. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/report_run_asset_comparison.html +0 -0
  587. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/report_run_row.html +0 -0
  588. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/report_run_supply_contacts.html +0 -0
  589. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/site_add.html +0 -0
  590. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/site_gen_graph.html +0 -0
  591. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/site_used_graph.html +0 -0
  592. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/sites.html +0 -0
  593. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/system.html +0 -0
  594. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/tester.html +0 -0
  595. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/chellow/templates/user_roles.html +0 -0
  596. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/gpl.txt +0 -0
  597. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/requirements.txt +0 -0
  598. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/systemd/chellow.service +0 -0
  599. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/systemd/chellow_upgrader.service +0 -0
  600. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/systemd/chellow_upgrader.timer +0 -0
  601. /chellow-1698931736.0.0/test/reports/test_report_dno_vl_parser.py → /chellow-1765896461.0.0/test/e/__init__.py +0 -0
  602. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/e/bill_parsers/test_bill_parser_haven_csv.py +0 -0
  603. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/e/system_price/prices.xls +0 -0
  604. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/e/test_aahedc.py +0 -0
  605. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/e/test_bsuos.py +0 -0
  606. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/e/test_rcrc_importer.py +0 -0
  607. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/gas/bill_parsers/test_g_bill_parser_engie_edi.py +0 -0
  608. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/gas/test_dn_rate_parser.py +0 -0
  609. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/gas/test_g_cv.py +0 -0
  610. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/test_chellow.py +0 -0
  611. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/test_edi_viewer.py +0 -0
  612. {chellow-1698931736.0.0 → chellow-1765896461.0.0}/test/test_testing.py +0 -0
@@ -0,0 +1,95 @@
1
+ name: Chellow
2
+
3
+ on:
4
+ push:
5
+ branches: [main, test]
6
+ pull_request:
7
+ branches: [main, test]
8
+
9
+ jobs:
10
+ # Label of the container job
11
+ test:
12
+ runs-on: ubuntu-latest
13
+ container: python:3.11
14
+
15
+ services:
16
+ postgres:
17
+ image: postgres:12
18
+ env:
19
+ POSTGRES_PASSWORD: postgres
20
+ options: >-
21
+ --health-cmd pg_isready
22
+ --health-interval 10s
23
+ --health-timeout 5s
24
+ --health-retries 5
25
+
26
+ steps:
27
+ - uses: actions/checkout@v4
28
+ - name: Install dependencies
29
+ run: |
30
+ python -m pip install --upgrade pip
31
+ pip install tox
32
+ - name: Run Tox
33
+ run: |
34
+ tox
35
+ env:
36
+ PGHOST: postgres
37
+ PGPORT: 5432
38
+
39
+ build:
40
+ runs-on: ubuntu-latest
41
+ container: python:3.11
42
+ needs: test
43
+ steps:
44
+ - uses: actions/checkout@v4
45
+ - name: Install dependencies
46
+ run: |
47
+ python -m pip install --upgrade pip
48
+ pip install build
49
+ - name: Build a binary wheel and a source tarball
50
+ run: |
51
+ echo "__version__ = \"$(date +%s).0.0\"" > VERSION
52
+ python -m build
53
+ - name: Store the distribution packages
54
+ uses: actions/upload-artifact@v4
55
+ with:
56
+ name: python-package-distributions
57
+ path: dist/
58
+
59
+ deploy_main:
60
+ runs-on: ubuntu-latest
61
+ needs: build
62
+ permissions:
63
+ id-token: write
64
+ if: github.ref == 'refs/heads/main'
65
+ environment:
66
+ name: pypi
67
+ url: https://pypi.org/p/chellow
68
+ steps:
69
+ - name: Download all the dists
70
+ uses: actions/download-artifact@v4
71
+ with:
72
+ name: python-package-distributions
73
+ path: dist/
74
+ - name: Publish distribution to PyPI
75
+ uses: pypa/gh-action-pypi-publish@release/v1
76
+
77
+ deploy_test:
78
+ runs-on: ubuntu-latest
79
+ needs: build
80
+ permissions:
81
+ id-token: write
82
+ if: github.ref == 'refs/heads/test'
83
+ environment:
84
+ name: testpypi
85
+ url: https://test.pypi.org/p/chellow
86
+ steps:
87
+ - name: Download all the dists
88
+ uses: actions/download-artifact@v4
89
+ with:
90
+ name: python-package-distributions
91
+ path: dist/
92
+ - name: Publish distribution to PyPI
93
+ uses: pypa/gh-action-pypi-publish@release/v1
94
+ with:
95
+ repository-url: https://test.pypi.org/legacy/
@@ -1,30 +1,30 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: chellow
3
- Version: 1698931736.0.0
3
+ Version: 1765896461.0.0
4
4
  Summary: Web Application for checking UK energy bills.
5
5
  Project-URL: Homepage, https://github.com/WessexWater/chellow
6
6
  Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
7
7
  Classifier: Operating System :: OS Independent
8
8
  Classifier: Programming Language :: Python :: 3
9
- Requires-Python: >=3.9
10
- Requires-Dist: flask-restx==1.2.0
11
- Requires-Dist: flask==2.3.3
12
- Requires-Dist: odio==0.0.22
13
- Requires-Dist: openpyxl==3.1.2
14
- Requires-Dist: pep3143daemon==0.0.6
15
- Requires-Dist: pg8000==1.30.1
9
+ Requires-Python: >=3.11
10
+ Requires-Dist: flask-restx==1.3.2
11
+ Requires-Dist: flask==3.1.2
12
+ Requires-Dist: markdown-it-py==4.0.0
13
+ Requires-Dist: odio==0.0.23
14
+ Requires-Dist: openpyxl==3.1.5
15
+ Requires-Dist: paramiko==4.0.0
16
+ Requires-Dist: pg8000==1.31.5
16
17
  Requires-Dist: pip>=9.0.1
17
- Requires-Dist: psutil==5.9.5
18
- Requires-Dist: pympler==1.0.1
19
- Requires-Dist: pypdf==3.17.0
20
- Requires-Dist: pysftp==0.2.9
18
+ Requires-Dist: psutil==7.1.1
19
+ Requires-Dist: pympler==1.1
20
+ Requires-Dist: pypdf==6.4.0
21
21
  Requires-Dist: python-dateutil==2.8.2
22
- Requires-Dist: pytz==2022.6
23
- Requires-Dist: requests==2.31.0
24
- Requires-Dist: sqlalchemy==2.0.20
25
- Requires-Dist: waitress==2.1.2
26
- Requires-Dist: xlrd==2.0.1
27
- Requires-Dist: zish==0.1.11
22
+ Requires-Dist: pytz==2025.2
23
+ Requires-Dist: requests==2.32.5
24
+ Requires-Dist: sqlalchemy==2.0.44
25
+ Requires-Dist: waitress==3.0.2
26
+ Requires-Dist: xlrd==2.0.2
27
+ Requires-Dist: zish==0.1.12
28
28
  Description-Content-Type: text/markdown
29
29
 
30
30
  # Chellow
@@ -46,7 +46,7 @@ Chellow is a web application for checking UK electricity and gas bills. It's des
46
46
  for organizations with high electricity consumption. The software is hosted at
47
47
  https://github.com/WessexWater/chellow.
48
48
 
49
- [![Build Status](https://github.com/WessexWater/chellow/workflows/chellow/badge.svg)](https://github.com/WessexWater/chellow/workflows/chellow)
49
+ [![Build Status](https://github.com/WessexWater/chellow/actions/workflows/chellow.yml/badge.svg)](https://github.com/WessexWater/chellow/actions/workflows/chellow.yml)
50
50
 
51
51
 
52
52
  ## Installation
@@ -54,7 +54,7 @@ https://github.com/WessexWater/chellow.
54
54
  Chellow is a Python web application that uses the PostgreSQL database. To install
55
55
  Chellow, follow these steps:
56
56
 
57
- * Install [PostgreSQL](http://www.postgresql.org/) 12
57
+ * Install [PostgreSQL](http://www.postgresql.org/) 15
58
58
  * Create a PostgreSQL database: `createdb --encoding=UTF8 chellow`
59
59
  * Set up the following environment variables to configure Chellow:
60
60
 
@@ -74,7 +74,7 @@ in Windows an environment variable can be set by doing:
74
74
 
75
75
  `set PGUSER=postgres`
76
76
 
77
- * Install Python 3.9 (tested on the [CPython 3.9.8](http://www.python.org/) interpreter)
77
+ * Install Python 3.11
78
78
  * Create a virtual environment: `python3 -m venv venv`
79
79
  * Activate the virtual environment: `source venv/bin/activate`
80
80
  * Install Chellow: `pip install chellow`
@@ -84,6 +84,19 @@ in Windows an environment variable can be set by doing:
84
84
  `admin@example.com` and the password `admin`, and then the home page should appear.
85
85
  Change the admin password from the `users` page.
86
86
 
87
+ ### Azure
88
+
89
+ SSH into the machine and you'll be in ``/home/site/wwwroot``.
90
+
91
+ * Create a virtual environment: ``python -m venv antenv``
92
+ * Activate the virtual environment with: ``source antenv/bin/activate``
93
+ *
94
+ In ``/home/site/wwwroot`` create a file called ``app.py`` containing the following:
95
+
96
+ import chellow
97
+
98
+ app = chellow.create_app()
99
+
87
100
 
88
101
  ### Manually Upgrading Chellow
89
102
 
@@ -17,7 +17,7 @@ Chellow is a web application for checking UK electricity and gas bills. It's des
17
17
  for organizations with high electricity consumption. The software is hosted at
18
18
  https://github.com/WessexWater/chellow.
19
19
 
20
- [![Build Status](https://github.com/WessexWater/chellow/workflows/chellow/badge.svg)](https://github.com/WessexWater/chellow/workflows/chellow)
20
+ [![Build Status](https://github.com/WessexWater/chellow/actions/workflows/chellow.yml/badge.svg)](https://github.com/WessexWater/chellow/actions/workflows/chellow.yml)
21
21
 
22
22
 
23
23
  ## Installation
@@ -25,7 +25,7 @@ https://github.com/WessexWater/chellow.
25
25
  Chellow is a Python web application that uses the PostgreSQL database. To install
26
26
  Chellow, follow these steps:
27
27
 
28
- * Install [PostgreSQL](http://www.postgresql.org/) 12
28
+ * Install [PostgreSQL](http://www.postgresql.org/) 15
29
29
  * Create a PostgreSQL database: `createdb --encoding=UTF8 chellow`
30
30
  * Set up the following environment variables to configure Chellow:
31
31
 
@@ -45,7 +45,7 @@ in Windows an environment variable can be set by doing:
45
45
 
46
46
  `set PGUSER=postgres`
47
47
 
48
- * Install Python 3.9 (tested on the [CPython 3.9.8](http://www.python.org/) interpreter)
48
+ * Install Python 3.11
49
49
  * Create a virtual environment: `python3 -m venv venv`
50
50
  * Activate the virtual environment: `source venv/bin/activate`
51
51
  * Install Chellow: `pip install chellow`
@@ -55,6 +55,19 @@ in Windows an environment variable can be set by doing:
55
55
  `admin@example.com` and the password `admin`, and then the home page should appear.
56
56
  Change the admin password from the `users` page.
57
57
 
58
+ ### Azure
59
+
60
+ SSH into the machine and you'll be in ``/home/site/wwwroot``.
61
+
62
+ * Create a virtual environment: ``python -m venv antenv``
63
+ * Activate the virtual environment with: ``source antenv/bin/activate``
64
+ *
65
+ In ``/home/site/wwwroot`` create a file called ``app.py`` containing the following:
66
+
67
+ import chellow
68
+
69
+ app = chellow.create_app()
70
+
58
71
 
59
72
  ### Manually Upgrading Chellow
60
73
 
@@ -0,0 +1 @@
1
+ __version__ = "1765896461.0.0"
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env bash
2
+
3
+ cd /var/www/chellow
4
+ source venv/bin/activate
5
+
6
+ if [[ $* == *--test* ]] ; then
7
+ if pip list --outdated --extra-index-url https://test.pypi.org/simple/ | grep chellow ; then
8
+ echo "Found a new Chellow version."
9
+
10
+ echo "Stopping Chellow"
11
+ /usr/bin/systemctl stop chellow
12
+
13
+ echo "Doing a pip upgrade of Chellow."
14
+ pip install chellow --upgrade --extra-index-url https://test.pypi.org/simple/
15
+
16
+ echo "Starting Chellow"
17
+ /usr/bin/systemctl start chellow
18
+ else
19
+ echo "No new version found."
20
+ fi
21
+ else
22
+ if pip list --outdated | grep chellow ; then
23
+ echo "Found a new Chellow version."
24
+
25
+ echo "Stopping Chellow"
26
+ /usr/bin/systemctl stop chellow
27
+
28
+ echo "Doing a pip upgrade of Chellow."
29
+ pip install chellow --upgrade
30
+
31
+ echo "Starting Chellow"
32
+ /usr/bin/systemctl start chellow
33
+ else
34
+ echo "No new version found."
35
+ fi
36
+ fi
@@ -1,9 +1,15 @@
1
+ import json
1
2
  import os
3
+ from base64 import b64decode
2
4
  from datetime import datetime as Datetime
3
5
  from importlib.metadata import version
6
+ from pathlib import Path
4
7
 
5
8
  from flask import Flask, Response, g, make_response, render_template, request
6
9
 
10
+ from markdown_it import MarkdownIt
11
+
12
+ from markupsafe import Markup
7
13
 
8
14
  from sqlalchemy import select
9
15
 
@@ -16,14 +22,16 @@ import chellow.bank_holidays
16
22
  import chellow.dloads
17
23
  import chellow.e.bmarketidx
18
24
  import chellow.e.bsuos
25
+ import chellow.e.elexon
19
26
  import chellow.e.hh_importer
20
27
  import chellow.e.rcrc
21
28
  import chellow.e.system_price
22
- import chellow.e.tlms
23
29
  import chellow.e.views
30
+ import chellow.fake_batch_updater
24
31
  import chellow.gas.cv
25
32
  import chellow.gas.views
26
33
  import chellow.national_grid
34
+ import chellow.rrun
27
35
  import chellow.testing
28
36
  from chellow.models import (
29
37
  Contract,
@@ -50,22 +58,22 @@ TEMPLATE_FORMATS = {
50
58
 
51
59
  def get_importer_modules():
52
60
  return (
53
- chellow.e.rcrc,
61
+ chellow.e.elexon,
54
62
  chellow.e.bsuos,
55
- chellow.e.system_price,
56
- chellow.e.hh_importer,
63
+ chellow.e.lcc,
57
64
  chellow.testing,
58
- chellow.e.tlms,
59
65
  chellow.bank_holidays,
60
66
  chellow.gas.cv,
61
67
  chellow.e.bmarketidx,
62
68
  chellow.national_grid,
63
69
  chellow.rate_server,
70
+ chellow.rrun,
71
+ chellow.fake_batch_updater,
64
72
  )
65
73
 
66
74
 
67
- def create_app(testing=False):
68
- app = Flask("chellow", instance_relative_config=True)
75
+ def create_app(testing=False, instance_path=None):
76
+ app = Flask("chellow", instance_relative_config=True, instance_path=instance_path)
69
77
  app.wsgi_app = MsProxy(app.wsgi_app)
70
78
  app.secret_key = os.urandom(24)
71
79
  start_sqlalchemy()
@@ -73,14 +81,13 @@ def create_app(testing=False):
73
81
  app.register_blueprint(chellow.views.home)
74
82
  app.register_blueprint(chellow.e.views.e)
75
83
  app.register_blueprint(chellow.gas.views.gas)
76
- chellow.utils.root_path = app.root_path
77
84
 
78
85
  api = chellow.api.api
79
86
  api.init_app(app, endpoint="/api/v1")
80
87
 
81
88
  if not testing:
82
89
  db_upgrade(app.root_path)
83
- chellow.dloads.startup(app.instance_path)
90
+ chellow.e.hh_importer.startup()
84
91
 
85
92
  with Session() as sess:
86
93
  configuration = sess.execute(
@@ -90,6 +97,8 @@ def create_app(testing=False):
90
97
  api_props = props.get("api", {})
91
98
  api.description = api_props.get("description", "Access Chellow data")
92
99
 
100
+ chellow.dloads.startup(Path(app.instance_path), run_deleter=(not testing))
101
+
93
102
  for module in get_importer_modules():
94
103
  if not testing:
95
104
  module.startup()
@@ -113,20 +122,6 @@ def create_app(testing=False):
113
122
  )
114
123
  print(msg)
115
124
 
116
- try:
117
- scheme = request.headers["X-Forwarded-Proto"]
118
- except KeyError:
119
- config_contract = Contract.get_non_core_by_name(g.sess, "configuration")
120
- props = config_contract.make_properties()
121
- scheme = props.get("redirect_scheme", "http")
122
-
123
- try:
124
- host = request.headers["X-Forwarded-Host"]
125
- except KeyError:
126
- host = request.host
127
-
128
- chellow.utils.url_root = scheme + "://" + host
129
-
130
125
  @app.before_request
131
126
  def check_permissions(*args, **kwargs):
132
127
  g.user = None
@@ -137,17 +132,45 @@ def create_app(testing=False):
137
132
  g.config = {}
138
133
  ad_props = g.config.get("ad_authentication", {})
139
134
  ad_auth_on = ad_props.get("on", False)
135
+ easy_auth_props = g.config.get("easy_auth", {})
136
+ easy_auth_on = easy_auth_props.get("on", False)
137
+ path = request.path
138
+ if path in ("/health", "/robots933456.txt"):
139
+ return
140
140
  if ad_auth_on:
141
141
  username = request.headers["X-Isrw-Proxy-Logon-User"].upper()
142
- user = g.sess.query(User).filter(User.email_address == username).first()
142
+ user = g.sess.scalars(
143
+ select(User).where(User.email_address == username)
144
+ ).first()
143
145
  if user is None:
144
146
  try:
145
147
  username = ad_props["default_user"]
146
- user = (
147
- g.sess.query(User)
148
- .filter(User.email_address == username)
149
- .first()
150
- )
148
+ user = g.sess.scalars(
149
+ select(User).where(User.email_address == username)
150
+ ).first()
151
+ except KeyError:
152
+ user = None
153
+ if user is not None:
154
+ g.user = user
155
+ elif easy_auth_on:
156
+ jwt_enc = request.headers["X-MS-CLIENT-PRINCIPAL"]
157
+ jwt = json.loads(b64decode(jwt_enc))
158
+ for claim in jwt["claims"]:
159
+ if claim["typ"] == (
160
+ "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/"
161
+ "emailaddress"
162
+ ):
163
+ username = claim["val"]
164
+ user = g.sess.scalars(
165
+ select(User).where(User.email_address == username)
166
+ ).first()
167
+ break
168
+ if user is None:
169
+ try:
170
+ username = easy_auth_props["default_user"]
171
+ user = g.sess.scalars(
172
+ select(User).where(User.email_address == username)
173
+ ).first()
151
174
  except KeyError:
152
175
  user = None
153
176
  if user is not None:
@@ -166,25 +189,20 @@ def create_app(testing=False):
166
189
  key = None
167
190
 
168
191
  email = ips[key]
169
- g.user = (
170
- g.sess.query(User).filter(User.email_address == email).first()
171
- )
192
+ g.user = g.sess.scalars(
193
+ select(User).where(User.email_address == email)
194
+ ).first()
172
195
  except KeyError:
173
196
  pass
174
197
  else:
175
- user = (
176
- g.sess.query(User)
177
- .filter(User.email_address == auth.username)
178
- .first()
179
- )
198
+ user = g.sess.scalars(
199
+ select(User).where(User.email_address == auth.username)
200
+ ).first()
180
201
  if user is not None and user.password_matches(auth.password):
181
202
  g.user = user
182
203
 
183
204
  # Got our user
184
- path = request.path
185
205
  method = request.method
186
- if path in ("/health",):
187
- return
188
206
 
189
207
  if g.user is not None:
190
208
  if "X-Isrw-Proxy-Logon-User" in request.headers:
@@ -237,7 +255,9 @@ def create_app(testing=False):
237
255
  g.sess.commit()
238
256
  return
239
257
 
240
- if g.user is None or (not ad_auth_on and auth is None):
258
+ if (not easy_auth_on) and (
259
+ (g.user is None) or (not ad_auth_on and auth is None)
260
+ ):
241
261
  return Response(
242
262
  "Could not verify your access level for that URL.\n"
243
263
  "You have to login with proper credentials",
@@ -263,14 +283,8 @@ def create_app(testing=False):
263
283
  except NotFound:
264
284
  pass
265
285
 
266
- for importer in (
267
- chellow.e.bsuos.bsuos_importer,
268
- chellow.gas.cv.cv_importer,
269
- chellow.e.bmarketidx.bmarketidx_importer,
270
- chellow.national_grid.importer,
271
- chellow.rate_server.importer,
272
- chellow.testing.tester,
273
- ):
286
+ for mod in get_importer_modules():
287
+ importer = mod.get_importer()
274
288
  if importer is not None and importer.global_alert is not None:
275
289
  global_alerts.append(importer.global_alert)
276
290
 
@@ -317,6 +331,11 @@ def create_app(testing=False):
317
331
  def dumps_filter(d):
318
332
  return dumps(d)
319
333
 
334
+ @app.template_filter("markdown")
335
+ def markdown_filter(txt):
336
+ md = MarkdownIt()
337
+ return Markup(md.render(txt))
338
+
320
339
  return app
321
340
 
322
341
 
@@ -12,26 +12,37 @@ from zish import loads
12
12
  from chellow.models import Contract, RateScript, Session
13
13
  from chellow.utils import (
14
14
  HH,
15
+ ct_datetime,
15
16
  hh_format,
17
+ to_utc,
16
18
  utc_datetime,
17
19
  utc_datetime_now,
18
20
  utc_datetime_parse,
19
21
  )
20
22
 
21
23
 
22
- ELEXON_PORTAL_SCRIPTING_KEY_KEY = "elexonportal_scripting_key"
23
-
24
-
25
24
  bh_importer = None
26
25
 
27
26
 
28
27
  def _run(log_f, sess):
29
28
  log_f("Starting to check bank holidays")
30
- contract = Contract.get_non_core_by_name(sess, "bank_holidays")
29
+ contract_name = "bank_holidays"
30
+ contract = Contract.find_non_core_by_name(sess, contract_name)
31
+ if contract is None:
32
+ contract = Contract.insert_non_core(
33
+ sess,
34
+ contract_name,
35
+ "",
36
+ {"enabled": True},
37
+ to_utc(ct_datetime(1996, 4, 1)),
38
+ None,
39
+ {},
40
+ )
41
+ sess.commit()
31
42
  contract_props = contract.make_properties()
32
43
 
33
- if contract_props.get("enabled", False):
34
- url_str = contract_props["url"]
44
+ if contract_props.get("enabled", True):
45
+ url_str = "https://www.gov.uk/bank-holidays/england-and-wales.ics"
35
46
 
36
47
  log_f(f"Downloading from {url_str}.")
37
48
  res = requests.get(url_str)
@@ -94,6 +105,7 @@ class BankHolidayImporter(threading.Thread):
94
105
  self.going = threading.Event()
95
106
  self.PROXY_HOST_KEY = "proxy.host"
96
107
  self.PROXY_PORT_KEY = "proxy.port"
108
+ self.global_alert = None
97
109
 
98
110
  def stop(self):
99
111
  self.stopped.set()
@@ -120,9 +132,13 @@ class BankHolidayImporter(threading.Thread):
120
132
  if self.lock.acquire(False):
121
133
  try:
122
134
  with Session() as sess:
135
+ self.global_alert = None
123
136
  _run(self.log, sess)
124
137
  except BaseException:
125
138
  self.log(f"Outer problem {traceback.format_exc()}")
139
+ self.global_alert = (
140
+ "There's a problem with the Bank Holiday importer"
141
+ )
126
142
  finally:
127
143
  self.lock.release()
128
144
  self.log("Finished checking bank holidays.")