chellow 1718704260.0.0__tar.gz → 1718904221.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 (475) hide show
  1. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/PKG-INFO +1 -1
  2. chellow-1718904221.0.0/VERSION +1 -0
  3. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/bill_parsers/engie_xlsx.py +67 -51
  4. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/cfd.py +4 -1
  5. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/site.html +2 -3
  6. chellow-1718904221.0.0/test/e/bill_parsers/test_bill_parser_engie_xlsx.py +283 -0
  7. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/test_cfd.py +33 -0
  8. chellow-1718704260.0.0/VERSION +0 -1
  9. chellow-1718704260.0.0/test/e/bill_parsers/test_bill_parser_engie_xlsx.py +0 -179
  10. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/.ebextensions/chellow.config +0 -0
  11. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/.github/workflows/chellow.yml +0 -0
  12. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/.gitignore +0 -0
  13. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/README.md +0 -0
  14. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/application.py +0 -0
  15. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/bin/chellow_service_monitor.sh +0 -0
  16. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/bin/chellow_start.sh +0 -0
  17. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/__init__.py +0 -0
  18. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/api.py +0 -0
  19. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/bank_holidays.py +0 -0
  20. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/commands.py +0 -0
  21. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/dloads.py +0 -0
  22. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/__init__.py +0 -0
  23. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/aahedc.py +0 -0
  24. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/bill_importer.py +0 -0
  25. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/bill_parsers/__init__.py +0 -0
  26. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/bill_parsers/activity_mop_stark_xlsx.py +0 -0
  27. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/bill_parsers/annual_mop_stark_xlsx.py +0 -0
  28. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/bill_parsers/bgb_edi.py +0 -0
  29. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/bill_parsers/csv.py +0 -0
  30. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/bill_parsers/engie_edi.py +0 -0
  31. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/bill_parsers/engie_xls.py +0 -0
  32. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/bill_parsers/gdf_csv.py +0 -0
  33. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/bill_parsers/haven_csv.py +0 -0
  34. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/bill_parsers/haven_edi.py +0 -0
  35. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/bill_parsers/haven_edi_tprs.py +0 -0
  36. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/bill_parsers/mm.py +0 -0
  37. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/bill_parsers/nonsettlement_dc_stark_xlsx.py +0 -0
  38. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/bill_parsers/settlement_dc_stark_xlsx.py +0 -0
  39. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/bill_parsers/sse_edi.py +0 -0
  40. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/bill_parsers/sww_xls.py +0 -0
  41. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/bmarketidx.py +0 -0
  42. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/bsuos.py +0 -0
  43. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/ccl.py +0 -0
  44. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/computer.py +0 -0
  45. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/dno_rate_parser.py +0 -0
  46. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/duos.py +0 -0
  47. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/elexon.py +0 -0
  48. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/energy_management.py +0 -0
  49. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/hh_importer.py +0 -0
  50. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/hh_parser_bg_csv.py +0 -0
  51. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/hh_parser_df2.py +0 -0
  52. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/hh_parser_simple_csv.py +0 -0
  53. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/laf_import.py +0 -0
  54. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/lcc.py +0 -0
  55. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/mdd_importer.py +0 -0
  56. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/rcrc.py +0 -0
  57. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/ro.py +0 -0
  58. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/scenario.py +0 -0
  59. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/system_price.py +0 -0
  60. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/tlms.py +0 -0
  61. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/tnuos.py +0 -0
  62. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/triad.py +0 -0
  63. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/e/views.py +0 -0
  64. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/edi_lib.py +0 -0
  65. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/gas/bill_import.py +0 -0
  66. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/gas/bill_parser_csv.py +0 -0
  67. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/gas/bill_parser_engie_edi.py +0 -0
  68. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/gas/bill_parser_total_edi.py +0 -0
  69. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/gas/ccl.py +0 -0
  70. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/gas/cv.py +0 -0
  71. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/gas/dn_rate_parser.py +0 -0
  72. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/gas/engine.py +0 -0
  73. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/gas/transportation.py +0 -0
  74. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/gas/views.py +0 -0
  75. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/general_import.py +0 -0
  76. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/models.py +0 -0
  77. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/national_grid.py +0 -0
  78. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/proxy.py +0 -0
  79. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/rate_server.py +0 -0
  80. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/__init__.py +0 -0
  81. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_109.py +0 -0
  82. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_111.py +0 -0
  83. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_169.py +0 -0
  84. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_181.py +0 -0
  85. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_183.py +0 -0
  86. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_187.py +0 -0
  87. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_219.py +0 -0
  88. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_231.py +0 -0
  89. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_233.py +0 -0
  90. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_241.py +0 -0
  91. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_247.py +0 -0
  92. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_29.py +0 -0
  93. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_291.py +0 -0
  94. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_33.py +0 -0
  95. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_387.py +0 -0
  96. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_41.py +0 -0
  97. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_429.py +0 -0
  98. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_59.py +0 -0
  99. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_81.py +0 -0
  100. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_87.py +0 -0
  101. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_asset_comparison.py +0 -0
  102. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_batches.py +0 -0
  103. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_bills.py +0 -0
  104. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_csv_llfcs.py +0 -0
  105. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_csv_site_hh_data.py +0 -0
  106. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_csv_site_snags.py +0 -0
  107. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_ecoes_comparison.py +0 -0
  108. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_g_monthly_duration.py +0 -0
  109. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_g_supplies_snapshot.py +0 -0
  110. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_g_supply_virtual_bill.py +0 -0
  111. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_g_virtual_bills.py +0 -0
  112. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_g_virtual_bills_hh.py +0 -0
  113. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_sscs.py +0 -0
  114. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/reports/report_supply_contacts.py +0 -0
  115. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/static/css/chellow.css +0 -0
  116. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/static/images/favicon.svg +0 -0
  117. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/static/images/favicon_test.svg +0 -0
  118. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/static/images/logo.png +0 -0
  119. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/static/js/htmx.min.js +0 -0
  120. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/403.html +0 -0
  121. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/base.html +0 -0
  122. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/bill_type.html +0 -0
  123. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/bill_types.html +0 -0
  124. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/chain.html +0 -0
  125. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/csv_sites_monthly_duration.html +0 -0
  126. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/downloads.html +0 -0
  127. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/asset_comparison.html +0 -0
  128. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/channel.html +0 -0
  129. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/channel_add.html +0 -0
  130. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/channel_edit.html +0 -0
  131. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/channel_snag.html +0 -0
  132. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/channel_snag_edit.html +0 -0
  133. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/channel_snags.html +0 -0
  134. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/comm.html +0 -0
  135. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/comms.html +0 -0
  136. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/cop.html +0 -0
  137. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/cops.html +0 -0
  138. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/csv_bills.html +0 -0
  139. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/csv_register_reads.html +0 -0
  140. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/csv_sites_hh_data.html +0 -0
  141. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/csv_sites_triad.html +0 -0
  142. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/csv_supplies_hh_data.html +0 -0
  143. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/csv_supplies_snapshot.html +0 -0
  144. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/csv_supplies_triad.html +0 -0
  145. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dc_auto_importer.html +0 -0
  146. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dc_batch.html +0 -0
  147. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dc_batch_add.html +0 -0
  148. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dc_batch_edit.html +0 -0
  149. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dc_batch_file.html +0 -0
  150. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dc_batch_file_edit.html +0 -0
  151. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dc_batch_upload_file.html +0 -0
  152. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dc_batches.html +0 -0
  153. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dc_bill.html +0 -0
  154. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dc_bill_add.html +0 -0
  155. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dc_bill_edit.html +0 -0
  156. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dc_bill_import.html +0 -0
  157. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dc_bill_imports.html +0 -0
  158. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dc_contract.html +0 -0
  159. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dc_contract_edit.html +0 -0
  160. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dc_contract_hh_import.html +0 -0
  161. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dc_contract_hh_imports.html +0 -0
  162. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dc_contract_properties.html +0 -0
  163. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dc_contract_properties_edit.html +0 -0
  164. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dc_contracts.html +0 -0
  165. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dc_contracts_add.html +0 -0
  166. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dc_rate_script.html +0 -0
  167. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dc_rate_script_add.html +0 -0
  168. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dc_rate_script_edit.html +0 -0
  169. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dno.html +0 -0
  170. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dno_rate_script.html +0 -0
  171. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dno_rate_script_add.html +0 -0
  172. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dno_rate_script_edit.html +0 -0
  173. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dnos.html +0 -0
  174. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dtc_meter_type.html +0 -0
  175. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/dtc_meter_types.html +0 -0
  176. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/duration_report.html +0 -0
  177. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/elexon.html +0 -0
  178. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/em_hh_data.html +0 -0
  179. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/em_months.html +0 -0
  180. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/em_site.html +0 -0
  181. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/em_totals.html +0 -0
  182. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/energisation_status.html +0 -0
  183. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/energisation_statuses.html +0 -0
  184. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/era_edit.html +0 -0
  185. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/era_edit_form.html +0 -0
  186. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/era_supplier_bill_add.html +0 -0
  187. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/generator_type.html +0 -0
  188. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/generator_types.html +0 -0
  189. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/gsp_group.html +0 -0
  190. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/gsp_groups.html +0 -0
  191. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/hh_datum_edit.html +0 -0
  192. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/lafs.html +0 -0
  193. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/lcc.html +0 -0
  194. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/llfc.html +0 -0
  195. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/llfc_edit.html +0 -0
  196. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/llfcs.html +0 -0
  197. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/market_role.html +0 -0
  198. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/market_roles.html +0 -0
  199. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/meter_payment_type.html +0 -0
  200. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/meter_payment_types.html +0 -0
  201. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/meter_type.html +0 -0
  202. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/meter_types.html +0 -0
  203. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mop_batch.html +0 -0
  204. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mop_batch_add.html +0 -0
  205. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mop_batch_edit.html +0 -0
  206. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mop_batch_file.html +0 -0
  207. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mop_batch_file_edit.html +0 -0
  208. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mop_batch_upload_file.html +0 -0
  209. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mop_batches.html +0 -0
  210. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mop_bill.html +0 -0
  211. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mop_bill_add.html +0 -0
  212. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mop_bill_edit.html +0 -0
  213. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mop_bill_import.html +0 -0
  214. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mop_bill_imports.html +0 -0
  215. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mop_contract.html +0 -0
  216. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mop_contract_add.html +0 -0
  217. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mop_contract_edit.html +0 -0
  218. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mop_contracts.html +0 -0
  219. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mop_rate_script.html +0 -0
  220. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mop_rate_script_add.html +0 -0
  221. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mop_rate_script_edit.html +0 -0
  222. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mtc.html +0 -0
  223. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mtc_llfc.html +0 -0
  224. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mtc_llfc_ssc.html +0 -0
  225. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mtc_llfc_ssc_pc.html +0 -0
  226. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mtc_llfc_ssc_pcs.html +0 -0
  227. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mtc_llfc_sscs.html +0 -0
  228. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mtc_llfcs.html +0 -0
  229. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mtc_participant.html +0 -0
  230. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mtc_participants.html +0 -0
  231. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mtc_ssc.html +0 -0
  232. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mtc_sscs.html +0 -0
  233. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/mtcs.html +0 -0
  234. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/ods_monthly_duration.html +0 -0
  235. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/participant.html +0 -0
  236. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/participants.html +0 -0
  237. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/parties.html +0 -0
  238. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/party.html +0 -0
  239. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/pc.html +0 -0
  240. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/pcs.html +0 -0
  241. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/read_add.html +0 -0
  242. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/read_edit.html +0 -0
  243. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/read_type.html +0 -0
  244. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/read_types.html +0 -0
  245. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/scenario.html +0 -0
  246. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/scenario_add.html +0 -0
  247. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/scenario_docs.html +0 -0
  248. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/scenario_edit.html +0 -0
  249. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/scenarios.html +0 -0
  250. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/site_add_e_supply.html +0 -0
  251. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/site_add_e_supply_form.html +0 -0
  252. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/site_hh_data.html +0 -0
  253. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/site_site_snags.html +0 -0
  254. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/site_snag.html +0 -0
  255. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/site_snag_edit.html +0 -0
  256. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/site_snags.html +0 -0
  257. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/site_snags_edit.html +0 -0
  258. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/source.html +0 -0
  259. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/sources.html +0 -0
  260. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/ssc.html +0 -0
  261. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/sscs.html +0 -0
  262. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supplier_batch.html +0 -0
  263. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supplier_batch_add.html +0 -0
  264. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supplier_batch_edit.html +0 -0
  265. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supplier_batch_file.html +0 -0
  266. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supplier_batch_file_add.html +0 -0
  267. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supplier_batch_file_edit.html +0 -0
  268. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supplier_batch_upload_file.html +0 -0
  269. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supplier_batches.html +0 -0
  270. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supplier_bill.html +0 -0
  271. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supplier_bill_add.html +0 -0
  272. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supplier_bill_edit.html +0 -0
  273. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supplier_bill_import.html +0 -0
  274. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supplier_bill_imports.html +0 -0
  275. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supplier_contract.html +0 -0
  276. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supplier_contract_add.html +0 -0
  277. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supplier_contract_edit.html +0 -0
  278. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supplier_contracts.html +0 -0
  279. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supplier_rate_script.html +0 -0
  280. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supplier_rate_script_add.html +0 -0
  281. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supplier_rate_script_edit.html +0 -0
  282. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supply.html +0 -0
  283. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supply_edit.html +0 -0
  284. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supply_eras.html +0 -0
  285. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supply_hh_data.html +0 -0
  286. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supply_months.html +0 -0
  287. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supply_note_add.html +0 -0
  288. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supply_note_edit.html +0 -0
  289. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supply_notes.html +0 -0
  290. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supply_post.html +0 -0
  291. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/supply_virtual_bill.html +0 -0
  292. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/tpr.html +0 -0
  293. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/e/tprs.html +0 -0
  294. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/edi_viewer.html +0 -0
  295. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/batch.html +0 -0
  296. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/batch_add.html +0 -0
  297. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/batch_edit.html +0 -0
  298. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/batches.html +0 -0
  299. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/bill.html +0 -0
  300. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/bill_add.html +0 -0
  301. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/bill_edit.html +0 -0
  302. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/bill_import.html +0 -0
  303. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/bill_imports.html +0 -0
  304. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/dn.html +0 -0
  305. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/dns.html +0 -0
  306. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/era_edit.html +0 -0
  307. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/exit_zone.html +0 -0
  308. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/industry_auto_importer.html +0 -0
  309. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/industry_contract.html +0 -0
  310. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/industry_contract_add.html +0 -0
  311. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/industry_contract_edit.html +0 -0
  312. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/industry_contracts.html +0 -0
  313. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/industry_rate_script.html +0 -0
  314. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/industry_rate_script_add.html +0 -0
  315. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/industry_rate_script_edit.html +0 -0
  316. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/ldz.html +0 -0
  317. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/read_add.html +0 -0
  318. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/read_edit.html +0 -0
  319. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/read_type.html +0 -0
  320. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/read_types.html +0 -0
  321. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/reading_frequencies.html +0 -0
  322. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/reading_frequency.html +0 -0
  323. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/reports.html +0 -0
  324. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/supplier_contract.html +0 -0
  325. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/supplier_contract_add.html +0 -0
  326. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/supplier_contract_edit.html +0 -0
  327. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/supplier_contracts.html +0 -0
  328. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/supplier_rate_script.html +0 -0
  329. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/supplier_rate_script_add.html +0 -0
  330. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/supplier_rate_script_edit.html +0 -0
  331. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/supplies.html +0 -0
  332. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/supply.html +0 -0
  333. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/supply_edit.html +0 -0
  334. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/supply_note_add.html +0 -0
  335. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/supply_note_edit.html +0 -0
  336. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/supply_notes.html +0 -0
  337. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/unit.html +0 -0
  338. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/g/units.html +0 -0
  339. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/general_import.html +0 -0
  340. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/general_imports.html +0 -0
  341. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/home.html +0 -0
  342. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/input_date.html +0 -0
  343. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/local_report.html +0 -0
  344. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/local_reports.html +0 -0
  345. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/macros.html +0 -0
  346. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/national_grid.html +0 -0
  347. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/non_core_auto_importer.html +0 -0
  348. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/non_core_contract.html +0 -0
  349. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/non_core_contract_edit.html +0 -0
  350. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/non_core_contracts.html +0 -0
  351. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/non_core_rate_script.html +0 -0
  352. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/non_core_rate_script_add.html +0 -0
  353. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/non_core_rate_script_edit.html +0 -0
  354. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/object_summary.html +0 -0
  355. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/rate_server.html +0 -0
  356. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/report_run.html +0 -0
  357. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/report_run_asset_comparison.html +0 -0
  358. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/report_run_bill_check.html +0 -0
  359. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/report_run_ecoes_comparison.html +0 -0
  360. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/report_run_row.html +0 -0
  361. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/report_run_row_bill_check.html +0 -0
  362. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/report_run_supply_contacts.html +0 -0
  363. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/report_runs.html +0 -0
  364. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/site_add.html +0 -0
  365. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/site_edit.html +0 -0
  366. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/site_gen_graph.html +0 -0
  367. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/site_hh_data.html +0 -0
  368. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/site_months.html +0 -0
  369. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/site_used_graph.html +0 -0
  370. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/sites.html +0 -0
  371. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/supplies.html +0 -0
  372. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/system.html +0 -0
  373. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/tester.html +0 -0
  374. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/user.html +0 -0
  375. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/user_roles.html +0 -0
  376. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/templates/users.html +0 -0
  377. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/testing.py +0 -0
  378. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/utils.py +0 -0
  379. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/chellow/views.py +0 -0
  380. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/gpl.txt +0 -0
  381. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/pyproject.toml +0 -0
  382. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/requirements.txt +0 -0
  383. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/setup.cfg +0 -0
  384. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/systemd/chellow.service +0 -0
  385. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/systemd/chellow_upgrader.service +0 -0
  386. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/systemd/chellow_upgrader.timer +0 -0
  387. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/conftest.py +0 -0
  388. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/bill_parsers/test_activity_mop_stark_xlsx.py +0 -0
  389. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/bill_parsers/test_annual_mop_stark_xlsx.py +0 -0
  390. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/bill_parsers/test_bill_parser_csv.py +0 -0
  391. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/bill_parsers/test_bill_parser_engie_edi.py +0 -0
  392. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/bill_parsers/test_bill_parser_engie_xls.py +0 -0
  393. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/bill_parsers/test_bill_parser_haven_csv.py +0 -0
  394. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/bill_parsers/test_bill_parser_haven_edi.py +0 -0
  395. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/bill_parsers/test_bill_parser_haven_edi_tprs.py +0 -0
  396. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/bill_parsers/test_bill_parser_mm.py +0 -0
  397. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/bill_parsers/test_bill_parser_nonsettlement_dc_stark_xlsx/bills.nonsettlement.dc.stark.xlsx +0 -0
  398. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/bill_parsers/test_bill_parser_nonsettlement_dc_stark_xlsx/bills_old.nonsettlement.dc.stark.xlsx +0 -0
  399. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/bill_parsers/test_bill_parser_nonsettlement_dc_stark_xlsx/test_bill_parser_nonsettlement_dc_stark_xlsx.py +0 -0
  400. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/bill_parsers/test_bill_parser_settlement_dc_stark_xlsx/bills.settlement.dc.stark.xlsx +0 -0
  401. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/bill_parsers/test_bill_parser_settlement_dc_stark_xlsx/test_bill_parser_settlement_dc_stark_xlsx.py +0 -0
  402. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/bill_parsers/test_bill_parser_sse_edi.py +0 -0
  403. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/bill_parsers/test_bill_parser_sww_xls.py +0 -0
  404. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/system_price/prices.xls +0 -0
  405. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/system_price/test_system_price.py +0 -0
  406. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/test_aahedc.py +0 -0
  407. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/test_bill_importer.py +0 -0
  408. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/test_bsuos.py +0 -0
  409. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/test_ccl.py +0 -0
  410. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/test_computer.py +0 -0
  411. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/test_dno_rate_parser.py +0 -0
  412. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/test_duos.py +0 -0
  413. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/test_e_views.py +0 -0
  414. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/test_hh_importer.py +0 -0
  415. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/test_hh_parser_df2.py +0 -0
  416. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/test_laf_importer.py +0 -0
  417. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/test_mdd_importer.py +0 -0
  418. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/test_rcrc_importer.py +0 -0
  419. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/test_ro.py +0 -0
  420. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/test_scenario.py +0 -0
  421. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/test_tlms.py +0 -0
  422. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/test_tnuos.py +0 -0
  423. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/e/test_triad.py +0 -0
  424. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/gas/bill_parsers/test_g_bill_parser_engie_edi.py +0 -0
  425. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/gas/bill_parsers/test_g_bill_parser_total_edi.py +0 -0
  426. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/gas/test_dn_rate_parser.py +0 -0
  427. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/gas/test_engine.py +0 -0
  428. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/gas/test_g_cv.py +0 -0
  429. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/gas/test_gas_views.py +0 -0
  430. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/gas/test_transportation.py +0 -0
  431. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_g_monthly_duration.py +0 -0
  432. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_g_supplies_snapshot.py +0 -0
  433. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_g_supply_virtual_bill.py +0 -0
  434. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_g_virtual_bills.py +0 -0
  435. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_g_virtual_bills_hh.py +0 -0
  436. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_109.py +0 -0
  437. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_111.py +0 -0
  438. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_169.py +0 -0
  439. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_181.py +0 -0
  440. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_183.py +0 -0
  441. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_187.py +0 -0
  442. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_219.py +0 -0
  443. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_231.py +0 -0
  444. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_233.py +0 -0
  445. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_241.py +0 -0
  446. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_247.py +0 -0
  447. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_29.py +0 -0
  448. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_291.py +0 -0
  449. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_33.py +0 -0
  450. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_387.py +0 -0
  451. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_41.py +0 -0
  452. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_429.py +0 -0
  453. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_59.py +0 -0
  454. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_81.py +0 -0
  455. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_87.py +0 -0
  456. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_asset_comparison.py +0 -0
  457. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_batches.py +0 -0
  458. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_bills.py +0 -0
  459. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_csv_llfcs.py +0 -0
  460. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_csv_site_hh_data.py +0 -0
  461. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_csv_site_snags.py +0 -0
  462. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_dno_vl_parser.py +0 -0
  463. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_ecoes_comparison.py +0 -0
  464. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_sscs.py +0 -0
  465. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/reports/test_report_supply_contacts.py +0 -0
  466. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/test_chellow.py +0 -0
  467. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/test_dloads.py +0 -0
  468. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/test_edi_viewer.py +0 -0
  469. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/test_general_import.py +0 -0
  470. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/test_models.py +0 -0
  471. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/test_rate_server.py +0 -0
  472. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/test_testing.py +0 -0
  473. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/test_utils.py +0 -0
  474. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/test_views.py +0 -0
  475. {chellow-1718704260.0.0 → chellow-1718904221.0.0}/test/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: chellow
3
- Version: 1718704260.0.0
3
+ Version: 1718904221.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)
@@ -0,0 +1 @@
1
+ __version__ = "1718904221.0.0"
@@ -1,7 +1,7 @@
1
1
  import csv
2
2
  from datetime import datetime as Datetime
3
3
  from decimal import Decimal, InvalidOperation
4
- from itertools import count
4
+ from enum import Enum, auto
5
5
 
6
6
  from dateutil.relativedelta import relativedelta
7
7
 
@@ -147,39 +147,56 @@ def _find_names(tree, path):
147
147
  return tree[None]
148
148
 
149
149
 
150
- COLUMNS = [
151
- "Billing Entity",
152
- "Customer Name",
153
- "Customer Number",
154
- "Account Name",
155
- "Account Number",
156
- "Billing Address",
157
- "Bill Number",
158
- "Bill Date",
159
- "Due Date",
160
- "Accepted Date",
161
- "Bill Period",
162
- "Agreement Number",
163
- "Product Bundle",
164
- "Product Name",
165
- "Bill Status",
166
- "Product Item Class",
167
- "Type",
168
- "Description",
169
- "From Date",
170
- "To Date",
171
- "Sales Tax Rate",
172
- "Meter Point",
173
- "Usage",
174
- "Usage Unit",
175
- "Price",
176
- "Amount",
177
- "Currency",
178
- "Indicator",
179
- "Product Item Name",
180
- "Rate Name",
181
- ]
182
- COLUMN_MAP = dict(zip(COLUMNS, count(1)))
150
+ class Title(Enum):
151
+ METER_POINT = auto()
152
+ BILL_PERIOD = auto()
153
+ FROM_DATE = auto()
154
+ TO_DATE = auto()
155
+ BILL_DATE = auto()
156
+ BILL_NUMBER = auto()
157
+ USAGE = auto()
158
+ PRICE = auto()
159
+ AMOUNT = auto()
160
+ PRODUCT_ITEM_NAME = auto()
161
+ RATE_NAME = auto()
162
+ DESCRIPTION = auto()
163
+ PRODUCT_ITEM_CLASS = auto()
164
+ CUSTOMER_NUMBER = auto()
165
+
166
+
167
+ COLUMNS = {
168
+ Title.METER_POINT: ["Meter Point", "MeterPoint"],
169
+ Title.BILL_PERIOD: ["Bill Period", "BillPeriod"],
170
+ Title.FROM_DATE: ["From Date", "FromDate"],
171
+ Title.TO_DATE: ["To Date", "ToDate"],
172
+ Title.BILL_DATE: ["Bill Date", "BillDate"],
173
+ Title.BILL_NUMBER: ["Bill Number", "BillNumber"],
174
+ Title.USAGE: ["Usage"],
175
+ Title.PRICE: ["Price"],
176
+ Title.AMOUNT: ["Amount"],
177
+ Title.PRODUCT_ITEM_NAME: ["Product Item Name", "ProductItemName"],
178
+ Title.RATE_NAME: ["Rate Name", "RateName"],
179
+ Title.DESCRIPTION: ["Description"],
180
+ Title.PRODUCT_ITEM_CLASS: ["Product Item Class", "ProductItemClass"],
181
+ Title.CUSTOMER_NUMBER: ["Customer Number", "CustomerNumber"],
182
+ }
183
+
184
+
185
+ def make_column_map(title_row):
186
+ titles = [cell.value for cell in title_row]
187
+ column_map = {}
188
+ for title, title_names in COLUMNS.items():
189
+ idx = None
190
+ for title_name in title_names:
191
+ try:
192
+ idx = titles.index(title_name)
193
+ except ValueError:
194
+ pass
195
+ if idx is None:
196
+ raise BadRequest(f"For the title {title} a column can't be found")
197
+
198
+ column_map[title] = idx + 1
199
+ return column_map
183
200
 
184
201
 
185
202
  def get_date_naive(sheet, row, col):
@@ -198,8 +215,7 @@ def get_date(sheet, row, col_name):
198
215
  return None if dt is None else to_utc(to_ct(dt))
199
216
 
200
217
 
201
- def get_value(sheet, row, col_name):
202
- col = COLUMN_MAP[col_name]
218
+ def get_value(sheet, row, col):
203
219
  try:
204
220
  return sheet.cell(row=row, column=col).value
205
221
  except IndexError:
@@ -256,7 +272,6 @@ def _bd_add(bd, el_name, val):
256
272
 
257
273
 
258
274
  def _customer_mods(cust_number, description, bill):
259
- print(cust_number, type(cust_number), description)
260
275
  if cust_number == 10001596:
261
276
  if (
262
277
  description == "RO Mutualisation 2021-22"
@@ -272,7 +287,8 @@ def _customer_mods(cust_number, description, bill):
272
287
 
273
288
 
274
289
  def _parse_row(sheet, row, title_row):
275
- val = get_value(sheet, row, "Meter Point")
290
+ column_map = make_column_map(title_row)
291
+ val = get_value(sheet, row, column_map[Title.METER_POINT])
276
292
  try:
277
293
  mpan_core = parse_mpan_core(str(int(val)))
278
294
  except ValueError as e:
@@ -281,7 +297,7 @@ def _parse_row(sheet, row, title_row):
281
297
  f"{e}"
282
298
  )
283
299
 
284
- bill_period = get_value(sheet, row, "Bill Period")
300
+ bill_period = get_value(sheet, row, column_map[Title.BILL_PERIOD])
285
301
  if "-" in bill_period:
286
302
  period_start_naive, period_finish_naive = [
287
303
  Datetime.strptime(v, "%Y-%m-%d") for v in bill_period.split(" - ")
@@ -291,14 +307,14 @@ def _parse_row(sheet, row, title_row):
291
307
  else:
292
308
  period_start, period_finish = None, None
293
309
 
294
- from_date = get_date(sheet, row, "From Date")
310
+ from_date = get_date(sheet, row, column_map[Title.FROM_DATE])
295
311
  if from_date is None:
296
312
  if period_start is None:
297
313
  raise BadRequest("Can't find a bill start date.")
298
314
  else:
299
315
  from_date = period_start
300
316
 
301
- to_date_naive = get_date_naive(sheet, row, "To Date")
317
+ to_date_naive = get_date_naive(sheet, row, column_map[Title.TO_DATE])
302
318
  if to_date_naive is None:
303
319
  if period_finish is None:
304
320
  raise BadRequest("Can't find a bill finish date.")
@@ -308,8 +324,8 @@ def _parse_row(sheet, row, title_row):
308
324
  else:
309
325
  to_date = to_utc(to_ct(to_date_naive + relativedelta(days=1) - HH))
310
326
 
311
- issue_date = get_date(sheet, row, "Bill Date")
312
- bill_number = get_value(sheet, row, "Bill Number")
327
+ issue_date = get_date(sheet, row, column_map[Title.BILL_DATE])
328
+ bill_number = get_value(sheet, row, column_map[Title.BILL_NUMBER])
313
329
  bill = {
314
330
  "bill_type_code": "N",
315
331
  "kwh": Decimal(0),
@@ -325,16 +341,16 @@ def _parse_row(sheet, row, title_row):
325
341
  }
326
342
  bd = bill["breakdown"]
327
343
 
328
- usage = get_dec(sheet, row, "Usage")
344
+ usage = get_dec(sheet, row, column_map[Title.USAGE])
329
345
  # usage_units = get_value(sheet, row, 'Usage Unit')
330
- price = get_dec(sheet, row, "Price")
331
- amount = get_dec(sheet, row, "Amount")
332
- product_item_name = get_value(sheet, row, "Product Item Name")
333
- rate_name = get_value(sheet, row, "Rate Name")
346
+ price = get_dec(sheet, row, column_map[Title.PRICE])
347
+ amount = get_dec(sheet, row, column_map[Title.AMOUNT])
348
+ product_item_name = get_value(sheet, row, column_map[Title.PRODUCT_ITEM_NAME])
349
+ rate_name = get_value(sheet, row, column_map[Title.RATE_NAME])
334
350
  if product_item_name == "Renewables Obligation (RO)" and usage is not None:
335
351
  bill["kwh"] += round(usage, 2)
336
- description = get_value(sheet, row, "Description")
337
- product_class = get_value(sheet, row, "Product Item Class")
352
+ description = get_value(sheet, row, column_map[Title.DESCRIPTION])
353
+ product_class = get_value(sheet, row, column_map[Title.PRODUCT_ITEM_CLASS])
338
354
  if description in ("Standard VAT@20%", "Reduced VAT@5%"):
339
355
  bill["vat"] += round(amount, 2)
340
356
  if description.endswith("20%"):
@@ -416,7 +432,7 @@ def _parse_row(sheet, row, title_row):
416
432
 
417
433
  bill["reference"] = reference
418
434
  bill["gross"] = bill["net"] + bill["vat"]
419
- customer_number = get_value(sheet, row, "Customer Number")
435
+ customer_number = get_value(sheet, row, column_map[Title.CUSTOMER_NUMBER])
420
436
  return _customer_mods(customer_number, description, bill)
421
437
 
422
438
 
@@ -370,7 +370,10 @@ def import_forecast_ilr_tra(sess, log, set_progress, s):
370
370
  )
371
371
 
372
372
  for record in api_records(log, s, "fbece4ce-7cfc-42b7-8fb2-387cf59a3c32"):
373
- period_start = _parse_varying_date(record["Period_Start"])
373
+ period_start_str = record["Period_Start"]
374
+ if len(period_start_str) == 0:
375
+ continue
376
+ period_start = _parse_varying_date(period_start_str)
374
377
 
375
378
  rs = sess.execute(
376
379
  select(RateScript).where(
@@ -351,9 +351,8 @@ Table of site level monthly kWh, MD kWh etc.</a>
351
351
  <fieldset>
352
352
  <input type="hidden" name="site_id" value="{{site.id}}">
353
353
  <legend>Monthly Duration</legend>
354
- <br>
355
- For {{input_text('months', '1', 2, 2)}} month(s) until the end of
356
- {{input_date('finish', last_month_finish, resolution='month')}}
354
+ <label>Number Of Months</label> {{input_text('months', '1', 2, 2)}}
355
+ <label>Last Month</label> {{input_date('finish', last_month_finish, resolution='month')}}
357
356
  <input type="submit" value="Download">
358
357
  </fieldset>
359
358
  </form>
@@ -0,0 +1,283 @@
1
+ from datetime import datetime as Datetime
2
+ from decimal import Decimal
3
+
4
+ from openpyxl import Workbook
5
+
6
+ import pytest
7
+
8
+
9
+ from werkzeug.exceptions import BadRequest
10
+
11
+ from chellow.e.bill_parsers.engie_xlsx import _bd_add, _make_raw_bills, _parse_row
12
+ from chellow.utils import utc_datetime
13
+
14
+
15
+ def test_parse_row():
16
+ wb = Workbook()
17
+ ws = wb.active
18
+
19
+ rows = [
20
+ [
21
+ "BillingEntity",
22
+ "CustomerName",
23
+ "CustomerNumber",
24
+ "AccountName",
25
+ "AccountNumber",
26
+ "BillingAddresss",
27
+ "BillNumber",
28
+ "BillDate",
29
+ "DueDate",
30
+ "AcceptedDate",
31
+ "BillPeriod",
32
+ "AgreementNumber",
33
+ "ProductBundle",
34
+ "ProductItemName",
35
+ "BillStatus",
36
+ "ProductItemClass",
37
+ "Type",
38
+ "Description",
39
+ "FromDate",
40
+ "ToDate",
41
+ "SalesTaxRate",
42
+ "MeterPoint",
43
+ "Usage",
44
+ "UsageUnit",
45
+ "Price",
46
+ "Amount",
47
+ "Currency",
48
+ "Indicator",
49
+ "RateName",
50
+ "ProductName",
51
+ ],
52
+ [
53
+ "Power Comany Ltd.",
54
+ "Bill Paja",
55
+ "556",
56
+ "BILL PAJA",
57
+ "883",
58
+ "1 True Way",
59
+ "672770",
60
+ Datetime(2019, 3, 31, 23, 30),
61
+ Datetime(2019, 3, 31, 23, 30),
62
+ "",
63
+ "2019-03-01 - 2019-03-31",
64
+ "",
65
+ "",
66
+ "",
67
+ "Draft",
68
+ "",
69
+ "Product",
70
+ "Hand Held Read -",
71
+ Datetime(2019, 3, 31, 23, 30),
72
+ Datetime(2019, 3, 31, 0, 0),
73
+ "",
74
+ "2299999999929",
75
+ "",
76
+ "",
77
+ "",
78
+ "785",
79
+ "GBP",
80
+ "INV",
81
+ "",
82
+ "",
83
+ ],
84
+ ]
85
+
86
+ for row, row_values in enumerate(rows, start=1):
87
+ for column, value in enumerate(row_values, start=1):
88
+ ws.cell(row=row, column=column, value=value)
89
+
90
+ row = 2
91
+ title_row = tuple(ws.rows)[0]
92
+ bill = _parse_row(ws, row, title_row)
93
+ assert bill["finish_date"] == utc_datetime(2019, 3, 31, 22, 30)
94
+
95
+
96
+ def test_bd_add():
97
+ el_name = "duos_red"
98
+ bd = {el_name: 0}
99
+ val = None
100
+
101
+ with pytest.raises(BadRequest):
102
+ _bd_add(bd, el_name, val)
103
+
104
+
105
+ def test_bill_parser_engie_xls_billed_kwh():
106
+ """
107
+ Blank units should still give billed kWh
108
+ """
109
+ wb = Workbook()
110
+ ws = wb.active
111
+
112
+ rows = [
113
+ [
114
+ "BillingEntity",
115
+ "CustomerName",
116
+ "CustomerNumber",
117
+ "AccountName",
118
+ "AccountNumber",
119
+ "BillingAddresss",
120
+ "BillNumber",
121
+ "BillDate",
122
+ "DueDate",
123
+ "AcceptedDate",
124
+ "BillPeriod",
125
+ "AgreementNumber",
126
+ "ProductBundle",
127
+ "ProductItemName",
128
+ "BillStatus",
129
+ "ProductItemClass",
130
+ "Type",
131
+ "Description",
132
+ "FromDate",
133
+ "ToDate",
134
+ "SalesTaxRate",
135
+ "MeterPoint",
136
+ "Usage",
137
+ "UsageUnit",
138
+ "Price",
139
+ "Amount",
140
+ "Currency",
141
+ "Indicator",
142
+ "RateName",
143
+ "ProductName",
144
+ ],
145
+ [
146
+ "Mistral Wind Power Ltd.",
147
+ "Bill Paja",
148
+ "886572998",
149
+ "Bill Paja",
150
+ "869987122",
151
+ "BA1 5TT",
152
+ "99708221",
153
+ Datetime(2019, 3, 31, 23, 30),
154
+ 42694,
155
+ 42629,
156
+ "2016-08-01 - 2016-08-31",
157
+ "458699",
158
+ "Standard Deluxe",
159
+ "Renewables Obligation (RO)",
160
+ "Accepted",
161
+ "Pass Thru - UK Electricity Cost Component",
162
+ "Product",
163
+ "Renewables Obligation (RO)",
164
+ Datetime(2019, 3, 31, 23, 30),
165
+ Datetime(2019, 3, 31, 23, 30),
166
+ "Commercial UK Energy VAT",
167
+ "2298132107763",
168
+ 27997.33,
169
+ "",
170
+ 0.0971123676,
171
+ "9224",
172
+ "GBP",
173
+ "INV",
174
+ "Renewables Obligation (RO)",
175
+ "",
176
+ ],
177
+ ]
178
+ for row, row_vals in enumerate(rows, start=1):
179
+ for column, value in enumerate(row_vals, start=1):
180
+ ws.cell(row=row, column=column, value=value)
181
+
182
+ row = 2
183
+ title_row = tuple(ws.rows)[0]
184
+ bill = _parse_row(ws, row, title_row)
185
+ assert bill["kwh"] == Decimal("27997.33")
186
+
187
+
188
+ def test_make_raw_bills_vat():
189
+ wb = Workbook()
190
+ ws = wb.active
191
+
192
+ rows = [
193
+ [
194
+ "BillingEntity",
195
+ "CustomerName",
196
+ "CustomerNumber",
197
+ "AccountName",
198
+ "AccountNumber",
199
+ "BillingAddresss",
200
+ "BillNumber",
201
+ "BillDate",
202
+ "DueDate",
203
+ "AcceptedDate",
204
+ "BillPeriod",
205
+ "AgreementNumber",
206
+ "ProductBundle",
207
+ "ProductItemName",
208
+ "BillStatus",
209
+ "ProductItemClass",
210
+ "Type",
211
+ "Description",
212
+ "FromDate",
213
+ "ToDate",
214
+ "SalesTaxRate",
215
+ "MeterPoint",
216
+ "Usage",
217
+ "UsageUnit",
218
+ "Price",
219
+ "Amount",
220
+ "Currency",
221
+ "Indicator",
222
+ "RateName",
223
+ "ProductName",
224
+ ],
225
+ [
226
+ "Mistral Wind Power Ltd.",
227
+ "Bill Paja",
228
+ "886572998",
229
+ "Bill Paja",
230
+ "869987122",
231
+ "BA1 5TT",
232
+ "99708221",
233
+ Datetime(2019, 3, 31, 23, 30),
234
+ Datetime(2019, 3, 31, 23, 30),
235
+ Datetime(2019, 3, 31, 23, 30),
236
+ "2016-08-01 - 2016-08-31",
237
+ "",
238
+ "",
239
+ "",
240
+ "Accepted",
241
+ "",
242
+ "Sales Tax",
243
+ "Standard VAT@20%",
244
+ "",
245
+ "",
246
+ "",
247
+ "2298132107763",
248
+ "",
249
+ "",
250
+ "",
251
+ "9224",
252
+ "GBP",
253
+ "INV",
254
+ "",
255
+ "",
256
+ ],
257
+ ]
258
+
259
+ for row, row_vals in enumerate(rows, start=1):
260
+ for column, value in enumerate(row_vals, start=1):
261
+ ws.cell(row=row, column=column, value=value)
262
+
263
+ bills = _make_raw_bills(ws)
264
+ expected_bills = [
265
+ {
266
+ "bill_type_code": "N",
267
+ "kwh": Decimal("0"),
268
+ "vat": Decimal("9224.00"),
269
+ "net": Decimal("0.00"),
270
+ "reads": [],
271
+ "breakdown": {
272
+ "vat_percentage": Decimal("20"),
273
+ },
274
+ "account": "22 9813 2107 763",
275
+ "issue_date": utc_datetime(2019, 3, 31, 22, 30),
276
+ "start_date": utc_datetime(2016, 7, 31, 23, 0),
277
+ "finish_date": utc_datetime(2016, 8, 31, 22, 30),
278
+ "mpan_core": "22 9813 2107 763",
279
+ "reference": "99708221_2",
280
+ "gross": Decimal("9224.00"),
281
+ }
282
+ ]
283
+ assert bills == expected_bills
@@ -106,6 +106,39 @@ def test_import_forecast_ilr_tra(sess, mocker):
106
106
  import_forecast_ilr_tra(sess, log, set_progress, s)
107
107
 
108
108
 
109
+ def test_import_forecast_ilr_tra_blank_lines(sess, mocker):
110
+ vf = to_utc(ct_datetime(1996, 1, 1))
111
+ participant = Participant.insert(sess, "CALB", "Calb")
112
+ market_role = MarketRole.insert(sess, "Z", "Non-core")
113
+ participant.insert_party(sess, market_role, "None core", vf, None, None)
114
+ sess.commit()
115
+
116
+ s = mocker.Mock()
117
+ mock_request = mocker.Mock()
118
+ req_j = {
119
+ "success": True,
120
+ "fields": [
121
+ {"id": "_id", "type": "int"},
122
+ {"id": "Quarterly_Obligation_Period", "type": "text"},
123
+ {"id": "Period_Start", "type": "text"},
124
+ {"id": "Period_End", "type": "text"},
125
+ {"id": "Interim_Levy_Rate_GBP_Per_MWh", "type": "text"},
126
+ {"id": "Total_Reserve_Amount_GBP", "type": "text"},
127
+ {"id": "Eligible_Demand_MWh", "type": "text"},
128
+ {"id": "BMRP_GBP_Per_MWh", "type": "text"},
129
+ {"id": "IMRP_GBP_Per_MWh", "type": "text"},
130
+ {"id": "Adjusted_ILR_GBP_Per_MWh", "type": "text"},
131
+ {"id": "Additional_TRA_GBP", "type": "text"},
132
+ ],
133
+ "records": [[1, "", "", "", "", "", "", "", "", "", ""]],
134
+ }
135
+ mock_request.json = mocker.Mock(return_value=req_j)
136
+ s.get = mocker.Mock(return_value=mock_request)
137
+ log = mocker.Mock()
138
+ set_progress = mocker.Mock()
139
+ import_forecast_ilr_tra(sess, log, set_progress, s)
140
+
141
+
109
142
  def test_hh(sess, mocker):
110
143
  vf = to_utc(ct_datetime(1996, 1, 1))
111
144
  site = Site.insert(sess, "CI017", "Water Works")
@@ -1 +0,0 @@
1
- __version__ = "1718704260.0.0"