chellow 1751619264.0.0__tar.gz → 1752483970.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.
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/PKG-INFO +15 -2
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/README.md +13 -0
- chellow-1752483970.0.0/VERSION +1 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/__init__.py +45 -18
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/bill_parsers/drax_edi.py +6 -2
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/bill_parsers/mm.py +17 -12
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/computer.py +22 -3
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/triad.py +1 -1
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_247.py +7 -8
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/views.py +5 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/pyproject.toml +1 -1
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/bill_parsers/test_bill_parser_mm.py +2 -2
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/test_computer.py +1 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/test_tnuos.py +2 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/test_triad.py +225 -1
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_247.py +559 -0
- chellow-1751619264.0.0/VERSION +0 -1
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/.ebextensions/chellow.config +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/.github/workflows/chellow.yml +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/.gitignore +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/application.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/bin/chellow_service_monitor.sh +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/bin/chellow_start.sh +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/api.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/bank_holidays.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/commands.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/dloads.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/__init__.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/aahedc.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/bill_importer.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/bill_parsers/__init__.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/bill_parsers/activity_mop_stark_xlsx.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/bill_parsers/annual_mop_stark_xlsx.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/bill_parsers/bgb_edi.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/bill_parsers/csv.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/bill_parsers/drax_element_edi.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/bill_parsers/edf_export_xlsx.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/bill_parsers/engie_edi.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/bill_parsers/engie_export_xlsx.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/bill_parsers/engie_xls.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/bill_parsers/engie_xlsx.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/bill_parsers/gdf_csv.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/bill_parsers/haven_csv.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/bill_parsers/haven_edi.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/bill_parsers/haven_edi_tprs.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/bill_parsers/nonsettlement_dc_stark_xlsx.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/bill_parsers/settlement_dc_stark_xlsx.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/bill_parsers/sse_edi.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/bill_parsers/sww_xls.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/bmarketidx.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/bsuos.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/ccl.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/cfd.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/dno_rate_parser.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/duos.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/elexon.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/energy_management.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/hh_importer.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/hh_parser_bg_csv.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/hh_parser_df2.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/hh_parser_edf_csv.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/hh_parser_schneider_csv.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/hh_parser_schneider_xlsx.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/hh_parser_simple_csv.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/hh_parser_vital_xlsx.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/laf_import.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/lcc.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/mdd_importer.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/rcrc.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/ro.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/scenario.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/system_price.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/tlms.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/tnuos.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/e/views.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/edi_lib.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/fake_batch_updater.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/gas/bill_import.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/gas/bill_parser_bgs_xlsx.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/gas/bill_parser_csv.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/gas/bill_parser_engie_edi.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/gas/bill_parser_total_edi.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/gas/ccl.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/gas/cv.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/gas/dn_rate_parser.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/gas/engine.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/gas/transportation.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/gas/views.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/general_import.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/models.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/national_grid.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/proxy.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/rate_server.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/__init__.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_109.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_111.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_169.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_181.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_183.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_187.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_219.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_231.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_233.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_241.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_29.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_291.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_33.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_387.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_41.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_429.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_59.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_81.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_87.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_asset_comparison.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_batches.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_bills.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_csv_llfcs.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_csv_site_hh_data.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_csv_site_snags.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_ecoes_comparison.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_g_monthly_duration.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_g_supplies_snapshot.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_g_supply_virtual_bill.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_g_virtual_bills.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_g_virtual_bills_hh.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_missing_bills.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_sscs.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/reports/report_supply_contacts.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/rrun.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/static/css/chellow.css +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/static/images/favicon.svg +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/static/images/favicon_test.svg +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/static/images/logo.png +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/static/js/htmx.min.js +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/403.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/base.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/bill_type.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/bill_types.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/chain.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/csv_sites_monthly_duration.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/downloads.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/asset_comparison.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/channel.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/channel_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/channel_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/channel_snag.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/channel_snag_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/channel_snags.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/comm.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/comms.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/cop.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/cops.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/csv_bills.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/csv_register_reads.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/csv_sites_hh_data.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/csv_sites_triad.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/csv_supplies_hh_data.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/csv_supplies_snapshot.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/csv_supplies_triad.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dc_auto_importer.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dc_batch.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dc_batch_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dc_batch_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dc_batch_file.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dc_batch_file_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dc_batch_upload_file.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dc_batches.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dc_bill.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dc_bill_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dc_bill_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dc_bill_import.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dc_bill_imports.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dc_contract.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dc_contract_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dc_contract_hh_import.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dc_contract_hh_imports.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dc_contract_properties.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dc_contract_properties_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dc_contracts.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dc_contracts_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dc_rate_script.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dc_rate_script_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dc_rate_script_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dno.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dno_rate_script.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dno_rate_script_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dno_rate_script_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dnos.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dtc_meter_type.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/dtc_meter_types.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/duration_report.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/elexon.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/em_hh_data.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/em_months.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/em_site.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/em_totals.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/energisation_status.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/energisation_statuses.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/era_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/era_edit_form.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/era_supplier_bill_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/generator_type.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/generator_types.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/gsp_group.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/gsp_groups.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/hh_datum_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/lafs.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/lcc.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/llfc.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/llfc_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/llfcs.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/market_role.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/market_roles.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/meter_payment_type.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/meter_payment_types.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/meter_type.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/meter_types.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mop_batch.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mop_batch_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mop_batch_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mop_batch_file.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mop_batch_file_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mop_batch_upload_file.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mop_batches.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mop_bill.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mop_bill_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mop_bill_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mop_bill_import.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mop_bill_imports.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mop_contract.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mop_contract_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mop_contract_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mop_contracts.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mop_rate_script.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mop_rate_script_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mop_rate_script_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mtc.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mtc_llfc.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mtc_llfc_ssc.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mtc_llfc_ssc_pc.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mtc_llfc_ssc_pcs.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mtc_llfc_sscs.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mtc_llfcs.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mtc_participant.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mtc_participants.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mtc_ssc.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mtc_sscs.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/mtcs.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/ods_monthly_duration.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/participant.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/participants.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/parties.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/party.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/pc.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/pcs.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/read_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/read_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/read_type.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/read_types.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/scenario.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/scenario_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/scenario_docs.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/scenario_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/scenarios.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/site_add_e_supply.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/site_add_e_supply_form.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/site_hh_data.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/site_site_snags.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/site_snag.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/site_snag_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/site_snags.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/site_snags_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/source.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/sources.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/ssc.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/sscs.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supplier_batch.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supplier_batch_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supplier_batch_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supplier_batch_file.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supplier_batch_file_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supplier_batch_file_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supplier_batch_upload_file.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supplier_batches.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supplier_bill.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supplier_bill_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supplier_bill_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supplier_bill_import.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supplier_bill_imports.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supplier_contract.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supplier_contract_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supplier_contract_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supplier_contracts.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supplier_rate_script.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supplier_rate_script_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supplier_rate_script_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supply.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supply_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supply_eras.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supply_hh_data.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supply_months.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supply_note_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supply_note_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supply_notes.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supply_post.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/supply_virtual_bill.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/tpr.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/e/tprs.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/edi_viewer.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/fake_batch_updater.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/batch.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/batch_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/batch_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/batches.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/bill.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/bill_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/bill_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/bill_import.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/bill_imports.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/dn.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/dns.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/era_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/exit_zone.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/industry_auto_importer.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/industry_contract.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/industry_contract_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/industry_contract_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/industry_contracts.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/industry_rate_script.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/industry_rate_script_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/industry_rate_script_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/ldz.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/read_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/read_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/read_type.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/read_types.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/reading_frequencies.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/reading_frequency.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/reports.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/supplier_contract.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/supplier_contract_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/supplier_contract_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/supplier_contracts.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/supplier_rate_script.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/supplier_rate_script_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/supplier_rate_script_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/supplies.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/supply.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/supply_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/supply_note_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/supply_note_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/supply_notes.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/unit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/g/units.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/general_import.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/general_imports.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/home.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/input_date.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/local_report.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/local_reports.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/macros.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/national_grid.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/non_core_auto_importer.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/non_core_contract.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/non_core_contract_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/non_core_contracts.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/non_core_rate_script.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/non_core_rate_script_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/non_core_rate_script_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/object_summary.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/rate_server.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/report_run.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/report_run_asset_comparison.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/report_run_bill_check.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/report_run_ecoes_comparison.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/report_run_g_bill_check.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/report_run_missing_e_bills.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/report_run_monthly_duration_org.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/report_run_row.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/report_run_row_bill_check.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/report_run_row_g_bill_check.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/report_run_supply_contacts.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/report_runs.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/scenario.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/scenario_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/scenario_docs.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/scenario_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/scenarios.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/site.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/site_add.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/site_edit.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/site_gen_graph.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/site_months.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/site_used_graph.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/sites.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/supplies.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/system.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/tester.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/user.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/user_roles.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/templates/users.html +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/testing.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/chellow/utils.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/gpl.txt +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/requirements.txt +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/setup.cfg +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/systemd/chellow.service +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/systemd/chellow_upgrader.service +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/systemd/chellow_upgrader.timer +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/conftest.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/bill_parsers/test_activity_mop_stark_xlsx.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/bill_parsers/test_annual_mop_stark_xlsx.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/bill_parsers/test_bill_parser_csv.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/bill_parsers/test_bill_parser_drax_edi.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/bill_parsers/test_bill_parser_edf_export_xlsx.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/bill_parsers/test_bill_parser_engie_edi.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/bill_parsers/test_bill_parser_engie_xls.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/bill_parsers/test_bill_parser_engie_xlsx.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/bill_parsers/test_bill_parser_haven_csv.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/bill_parsers/test_bill_parser_haven_edi.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/bill_parsers/test_bill_parser_haven_edi_tprs.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/bill_parsers/test_bill_parser_nonsettlement_dc_stark_xlsx/bills.nonsettlement.dc.stark.xlsx +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/bill_parsers/test_bill_parser_nonsettlement_dc_stark_xlsx/bills_old.nonsettlement.dc.stark.xlsx +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/bill_parsers/test_bill_parser_nonsettlement_dc_stark_xlsx/test_bill_parser_nonsettlement_dc_stark_xlsx.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/bill_parsers/test_bill_parser_settlement_dc_stark_xlsx.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/bill_parsers/test_bill_parser_sse_edi.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/bill_parsers/test_bill_parser_sww_xls.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/bill_parsers/test_parser_drax_elements_edit.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/system_price/prices.xls +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/system_price/test_system_price.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/test_aahedc.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/test_bill_importer.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/test_bsuos.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/test_ccl.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/test_cfd.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/test_dno_rate_parser.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/test_duos.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/test_e_views.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/test_hh_importer.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/test_hh_parser_df2.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/test_hh_parser_vital_xlsx.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/test_laf_importer.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/test_mdd_importer.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/test_rcrc_importer.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/test_ro.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/test_scenario.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/test_tlms.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/gas/bill_parsers/test_bill_parser_bgs_xlsx.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/gas/bill_parsers/test_g_bill_parser_engie_edi.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/gas/bill_parsers/test_g_bill_parser_total_edi.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/gas/test_dn_rate_parser.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/gas/test_engine.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/gas/test_g_cv.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/gas/test_gas_views.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/gas/test_transportation.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_g_monthly_duration.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_g_supplies_snapshot.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_g_supply_virtual_bill.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_g_virtual_bills.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_g_virtual_bills_hh.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_109.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_111.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_169.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_181.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_183.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_187.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_219.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_231.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_233.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_241.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_29.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_291.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_33.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_387.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_41.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_429.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_59.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_81.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_87.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_asset_comparison.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_batches.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_bills.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_csv_llfcs.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_csv_site_hh_data.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_csv_site_snags.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_dno_vl_parser.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_ecoes_comparison.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_missing_e_bills.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_sscs.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/reports/test_report_supply_contacts.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/test_chellow.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/test_dloads.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/test_edi_viewer.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/test_fake_batch_updater.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/test_general_import.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/test_models.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/test_rate_server.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/test_testing.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/test_utils.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/test_views.py +0 -0
- {chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: chellow
|
|
3
|
-
Version:
|
|
3
|
+
Version: 1752483970.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)
|
|
@@ -22,7 +22,7 @@ Requires-Dist: pypdf==4.3.1
|
|
|
22
22
|
Requires-Dist: python-dateutil==2.8.2
|
|
23
23
|
Requires-Dist: pytz==2022.6
|
|
24
24
|
Requires-Dist: requests==2.32.4
|
|
25
|
-
Requires-Dist: sqlalchemy==2.0.
|
|
25
|
+
Requires-Dist: sqlalchemy==2.0.41
|
|
26
26
|
Requires-Dist: waitress==3.0.1
|
|
27
27
|
Requires-Dist: xlrd==2.0.1
|
|
28
28
|
Requires-Dist: zish==0.1.12
|
|
@@ -86,6 +86,19 @@ in Windows an environment variable can be set by doing:
|
|
|
86
86
|
`admin@example.com` and the password `admin`, and then the home page should appear.
|
|
87
87
|
Change the admin password from the `users` page.
|
|
88
88
|
|
|
89
|
+
### Azure
|
|
90
|
+
|
|
91
|
+
SSH into the machine and you'll be in ``/home/site/wwwroot``.
|
|
92
|
+
|
|
93
|
+
* Create a virtual environment: ``python -m venv antenv``
|
|
94
|
+
* Activate the virtual environment with: ``source antenv/bin/activate``
|
|
95
|
+
*
|
|
96
|
+
In ``/home/site/wwwroot`` create a file called ``app.py`` containing the following:
|
|
97
|
+
|
|
98
|
+
import chellow
|
|
99
|
+
|
|
100
|
+
app = chellow.create_app()
|
|
101
|
+
|
|
89
102
|
|
|
90
103
|
### Manually Upgrading Chellow
|
|
91
104
|
|
|
@@ -56,6 +56,19 @@ in Windows an environment variable can be set by doing:
|
|
|
56
56
|
`admin@example.com` and the password `admin`, and then the home page should appear.
|
|
57
57
|
Change the admin password from the `users` page.
|
|
58
58
|
|
|
59
|
+
### Azure
|
|
60
|
+
|
|
61
|
+
SSH into the machine and you'll be in ``/home/site/wwwroot``.
|
|
62
|
+
|
|
63
|
+
* Create a virtual environment: ``python -m venv antenv``
|
|
64
|
+
* Activate the virtual environment with: ``source antenv/bin/activate``
|
|
65
|
+
*
|
|
66
|
+
In ``/home/site/wwwroot`` create a file called ``app.py`` containing the following:
|
|
67
|
+
|
|
68
|
+
import chellow
|
|
69
|
+
|
|
70
|
+
app = chellow.create_app()
|
|
71
|
+
|
|
59
72
|
|
|
60
73
|
### Manually Upgrading Chellow
|
|
61
74
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1752483970.0.0"
|
|
@@ -1,4 +1,6 @@
|
|
|
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
|
|
4
6
|
from pathlib import Path
|
|
@@ -127,17 +129,45 @@ def create_app(testing=False, instance_path=None):
|
|
|
127
129
|
g.config = {}
|
|
128
130
|
ad_props = g.config.get("ad_authentication", {})
|
|
129
131
|
ad_auth_on = ad_props.get("on", False)
|
|
132
|
+
easy_auth_props = g.config.get("easy_auth", {})
|
|
133
|
+
easy_auth_on = easy_auth_props.get("on", False)
|
|
134
|
+
path = request.path
|
|
135
|
+
if path in ("/health", "/robots933456.txt"):
|
|
136
|
+
return
|
|
130
137
|
if ad_auth_on:
|
|
131
138
|
username = request.headers["X-Isrw-Proxy-Logon-User"].upper()
|
|
132
|
-
user = g.sess.
|
|
139
|
+
user = g.sess.scalars(
|
|
140
|
+
select(User).where(User.email_address == username)
|
|
141
|
+
).first()
|
|
133
142
|
if user is None:
|
|
134
143
|
try:
|
|
135
144
|
username = ad_props["default_user"]
|
|
136
|
-
user = (
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
145
|
+
user = g.sess.scalars(
|
|
146
|
+
select(User).where(User.email_address == username)
|
|
147
|
+
).first()
|
|
148
|
+
except KeyError:
|
|
149
|
+
user = None
|
|
150
|
+
if user is not None:
|
|
151
|
+
g.user = user
|
|
152
|
+
elif easy_auth_on:
|
|
153
|
+
jwt_enc = request.headers["X-MS-CLIENT-PRINCIPAL"]
|
|
154
|
+
jwt = json.loads(b64decode(jwt_enc))
|
|
155
|
+
for claim in jwt["claims"]:
|
|
156
|
+
if claim["typ"] == (
|
|
157
|
+
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/"
|
|
158
|
+
"emailaddress"
|
|
159
|
+
):
|
|
160
|
+
username = claim["val"]
|
|
161
|
+
user = g.sess.scalars(
|
|
162
|
+
select(User).where(User.email_address == username)
|
|
163
|
+
).first()
|
|
164
|
+
break
|
|
165
|
+
if user is None:
|
|
166
|
+
try:
|
|
167
|
+
username = easy_auth_props["default_user"]
|
|
168
|
+
user = g.sess.scalars(
|
|
169
|
+
select(User).where(User.email_address == username)
|
|
170
|
+
).first()
|
|
141
171
|
except KeyError:
|
|
142
172
|
user = None
|
|
143
173
|
if user is not None:
|
|
@@ -156,25 +186,20 @@ def create_app(testing=False, instance_path=None):
|
|
|
156
186
|
key = None
|
|
157
187
|
|
|
158
188
|
email = ips[key]
|
|
159
|
-
g.user = (
|
|
160
|
-
|
|
161
|
-
)
|
|
189
|
+
g.user = g.sess.scalars(
|
|
190
|
+
select(User).where(User.email_address == email)
|
|
191
|
+
).first()
|
|
162
192
|
except KeyError:
|
|
163
193
|
pass
|
|
164
194
|
else:
|
|
165
|
-
user = (
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
.first()
|
|
169
|
-
)
|
|
195
|
+
user = g.sess.scalars(
|
|
196
|
+
select(User).where(User.email_address == auth.username)
|
|
197
|
+
).first()
|
|
170
198
|
if user is not None and user.password_matches(auth.password):
|
|
171
199
|
g.user = user
|
|
172
200
|
|
|
173
201
|
# Got our user
|
|
174
|
-
path = request.path
|
|
175
202
|
method = request.method
|
|
176
|
-
if path in ("/health",):
|
|
177
|
-
return
|
|
178
203
|
|
|
179
204
|
if g.user is not None:
|
|
180
205
|
if "X-Isrw-Proxy-Logon-User" in request.headers:
|
|
@@ -227,7 +252,9 @@ def create_app(testing=False, instance_path=None):
|
|
|
227
252
|
g.sess.commit()
|
|
228
253
|
return
|
|
229
254
|
|
|
230
|
-
if
|
|
255
|
+
if (not easy_auth_on) and (
|
|
256
|
+
(g.user is None) or (not ad_auth_on and auth is None)
|
|
257
|
+
):
|
|
231
258
|
return Response(
|
|
232
259
|
"Could not verify your access level for that URL.\n"
|
|
233
260
|
"You have to login with proper credentials",
|
|
@@ -51,7 +51,11 @@ ELEMENT_MAP = {
|
|
|
51
51
|
"cfd-operational-kwh",
|
|
52
52
|
),
|
|
53
53
|
"954379": ("cfd-interim-gbp", "cfd-interim-rate", "cfd-interim-kwh"),
|
|
54
|
-
"538249": (
|
|
54
|
+
"538249": (
|
|
55
|
+
"cm-settlement-levy-gbp",
|
|
56
|
+
"cm-settlement-levy-rate",
|
|
57
|
+
"cm-settlement-levy-kwh",
|
|
58
|
+
),
|
|
55
59
|
"568307": ("capacity-gbp", "capacity-rate", "capacity-kwh"),
|
|
56
60
|
},
|
|
57
61
|
},
|
|
@@ -104,6 +108,7 @@ ELEMENT_MAP = {
|
|
|
104
108
|
"duos-availability-kva",
|
|
105
109
|
),
|
|
106
110
|
"209269": ("tnuos-gbp", "tnuos-rate", "tnuos-days"),
|
|
111
|
+
"065950": ("eii-gbp", "eii-rate", "eii-kwh"),
|
|
107
112
|
},
|
|
108
113
|
"DUSDIS": {
|
|
109
114
|
"122568": ("nrg-gsp-losses-gbp", "nrg-rate", "nrg-gsp-losses-kwh"),
|
|
@@ -149,7 +154,6 @@ ELEMENT_MAP = {
|
|
|
149
154
|
"930504": ("eii-gbp", None, None),
|
|
150
155
|
"331201": ("eii-gbp", None, None),
|
|
151
156
|
"307253": ("eii-gbp", "eii-rate", "eii-kwh"),
|
|
152
|
-
"065950": ("eii-gbp", "eii-rate", "eii-kwh"),
|
|
153
157
|
}
|
|
154
158
|
|
|
155
159
|
TPR_LOOKUP = {
|
|
@@ -47,7 +47,9 @@ def _handle_0050(headers, pre_record, record):
|
|
|
47
47
|
unknown_4=12,
|
|
48
48
|
late_payment=12,
|
|
49
49
|
)
|
|
50
|
-
headers["late_payment"]
|
|
50
|
+
headers["breakdown"]["late_payment"] += Decimal(parts["late_payment"]) / Decimal(
|
|
51
|
+
100
|
|
52
|
+
)
|
|
51
53
|
"""
|
|
52
54
|
|
|
53
55
|
|
|
@@ -57,13 +59,10 @@ def _handle_0051(headers, pre_record, record):
|
|
|
57
59
|
|
|
58
60
|
def _handle_0100(headers, pre_record, record):
|
|
59
61
|
issue_date = headers["issue_date"]
|
|
60
|
-
late_payment = headers.get("late_payment")
|
|
61
62
|
headers.clear()
|
|
62
63
|
headers["issue_date"] = issue_date
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
headers["account"] = pre_record[43:52]
|
|
66
|
-
headers["reference"] = pre_record[41:46]
|
|
64
|
+
headers["account"] = pre_record[42:52]
|
|
65
|
+
headers["reference"] = pre_record[52:64]
|
|
67
66
|
headers["kwh"] = Decimal("0")
|
|
68
67
|
headers["breakdown"] = defaultdict(int, {"vat": {}})
|
|
69
68
|
headers["reads"] = []
|
|
@@ -245,6 +244,17 @@ def _handle_0860(headers, pre_record, record):
|
|
|
245
244
|
bd["metering-gbp"] += Decimal(parts["metering_gbp"]) / Decimal("100")
|
|
246
245
|
|
|
247
246
|
|
|
247
|
+
def _handle_0960(headers, pre_record, record):
|
|
248
|
+
parts = _chop_record(
|
|
249
|
+
record,
|
|
250
|
+
days=3,
|
|
251
|
+
payment=12,
|
|
252
|
+
rate=6,
|
|
253
|
+
)
|
|
254
|
+
bd = headers["breakdown"]
|
|
255
|
+
bd["late_payment_gbp"] += Decimal(parts["payment"]) / Decimal(100)
|
|
256
|
+
|
|
257
|
+
|
|
248
258
|
def _handle_1455(headers, pre_record, record):
|
|
249
259
|
parts = _chop_record(
|
|
250
260
|
record, ccl_kwh=13, unknown_1=10, ccl_rate=13, ccl_gbp=12, unkown_2=8
|
|
@@ -294,12 +304,6 @@ def _handle_1500(headers, pre_record, record):
|
|
|
294
304
|
breakdown = headers["breakdown"]
|
|
295
305
|
net = Decimal("0.00") + Decimal(parts["net"]) / Decimal("100")
|
|
296
306
|
gross = Decimal("0.00") + Decimal(parts["gross"]) / Decimal("100")
|
|
297
|
-
if "late_payment" in headers:
|
|
298
|
-
late_payment_gbp = headers["late_payment"]
|
|
299
|
-
net += late_payment_gbp
|
|
300
|
-
gross += late_payment_gbp
|
|
301
|
-
breakdown["late-payment-gbp"] += late_payment_gbp
|
|
302
|
-
del headers["late_payment"]
|
|
303
307
|
|
|
304
308
|
return {
|
|
305
309
|
"bill_type_code": "W" if net < 0 else "N",
|
|
@@ -354,6 +358,7 @@ LINE_HANDLERS = {
|
|
|
354
358
|
"0461": _handle_0461,
|
|
355
359
|
"0470": _handle_0470,
|
|
356
360
|
"0860": _handle_0860,
|
|
361
|
+
"0960": _handle_0960,
|
|
357
362
|
"1455": _handle_1455,
|
|
358
363
|
"1460": _handle_1460,
|
|
359
364
|
"1500": _handle_1500,
|
|
@@ -22,6 +22,7 @@ from chellow.models import (
|
|
|
22
22
|
Channel,
|
|
23
23
|
ClockInterval,
|
|
24
24
|
Contract,
|
|
25
|
+
DtcMeterType,
|
|
25
26
|
Era,
|
|
26
27
|
HhDatum,
|
|
27
28
|
Llfc,
|
|
@@ -694,7 +695,14 @@ class SiteSource(DataSource):
|
|
|
694
695
|
self.dtc_meter_type_code = self.era_map_dtc_meter_types[
|
|
695
696
|
era_dtc_meter_type_code
|
|
696
697
|
]
|
|
698
|
+
if self.dtc_meter_type_code is None:
|
|
699
|
+
self.dtc_meter_type = None
|
|
700
|
+
else:
|
|
701
|
+
self.dtc_meter_type = DtcMeterType.get_by_code(
|
|
702
|
+
sess, era_dtc_meter_type_code
|
|
703
|
+
)
|
|
697
704
|
else:
|
|
705
|
+
self.dtc_meter_type = era.dtc_meter_type
|
|
698
706
|
self.dtc_meter_type_code = era_dtc_meter_type_code
|
|
699
707
|
|
|
700
708
|
self.is_import = True
|
|
@@ -1086,7 +1094,14 @@ class SupplySource(DataSource):
|
|
|
1086
1094
|
self.dtc_meter_type_code = self.era_map_dtc_meter_types[
|
|
1087
1095
|
era_dtc_meter_type_code
|
|
1088
1096
|
]
|
|
1097
|
+
if self.dtc_meter_type_code is None:
|
|
1098
|
+
self.dtc_meter_type_code = None
|
|
1099
|
+
else:
|
|
1100
|
+
self.dtc_meter_type = DtcMeterType.get_by_code(
|
|
1101
|
+
sess, self.dtc_meter_type_code
|
|
1102
|
+
)
|
|
1089
1103
|
else:
|
|
1104
|
+
self.dtc_meter_type = era.dtc_meter_type
|
|
1090
1105
|
self.dtc_meter_type_code = era_dtc_meter_type_code
|
|
1091
1106
|
|
|
1092
1107
|
self.id = self.mpan_core
|
|
@@ -1196,11 +1211,15 @@ class SupplySource(DataSource):
|
|
|
1196
1211
|
- Datetime(chunk_start.year, 1, 1)
|
|
1197
1212
|
).total_seconds()
|
|
1198
1213
|
)
|
|
1214
|
+
if hist_era.pc.code == "00":
|
|
1215
|
+
ssc = Ssc.get_by_code(sess, "0393", chunk_start)
|
|
1216
|
+
else:
|
|
1217
|
+
ssc = hist_era.ssc
|
|
1199
1218
|
|
|
1200
|
-
for tpr in (
|
|
1201
|
-
|
|
1219
|
+
for tpr in sess.scalars(
|
|
1220
|
+
select(Tpr)
|
|
1202
1221
|
.join(MeasurementRequirement)
|
|
1203
|
-
.
|
|
1222
|
+
.where(MeasurementRequirement.ssc == ssc)
|
|
1204
1223
|
):
|
|
1205
1224
|
for hist_date in hh_range(self.caches, chunk_start, chunk_finish):
|
|
1206
1225
|
if is_tpr(sess, self.caches, tpr.code, hist_date):
|
|
@@ -471,14 +471,13 @@ def _process_site(
|
|
|
471
471
|
if supply_ids is not None:
|
|
472
472
|
q = q.where(Supply.id.in_(supply_ids))
|
|
473
473
|
for supply in sess.execute(q).scalars():
|
|
474
|
-
last_era = (
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
)
|
|
478
|
-
.
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
if last_era.finish_date is not None and last_era.start_date <= finish_date:
|
|
474
|
+
last_era = sess.scalars(
|
|
475
|
+
select(Era)
|
|
476
|
+
.join(SiteEra)
|
|
477
|
+
.where(Era.supply == supply)
|
|
478
|
+
.order_by(Era.start_date.desc())
|
|
479
|
+
).first()
|
|
480
|
+
if last_era.finish_date is not None and last_era.finish_date < finish_date:
|
|
482
481
|
site_era = sess.execute(
|
|
483
482
|
select(SiteEra).where(
|
|
484
483
|
SiteEra.era == last_era,
|
|
@@ -198,6 +198,11 @@ def health():
|
|
|
198
198
|
return Response("healthy\n", mimetype="text/plain")
|
|
199
199
|
|
|
200
200
|
|
|
201
|
+
@home.route("/robots933456.txt")
|
|
202
|
+
def robots():
|
|
203
|
+
return Response("healthy\n", mimetype="text/plain")
|
|
204
|
+
|
|
205
|
+
|
|
201
206
|
@home.route("/local_reports/<int:report_id>/output")
|
|
202
207
|
def local_report_output_get(report_id):
|
|
203
208
|
report = g.sess.execute(select(Report).where(Report.id == report_id)).scalar_one()
|
{chellow-1751619264.0.0 → chellow-1752483970.0.0}/test/e/bill_parsers/test_bill_parser_mm.py
RENAMED
|
@@ -27,11 +27,11 @@ def test_handle_0100():
|
|
|
27
27
|
_handle_0100(headers, pre_record, record)
|
|
28
28
|
assert headers == {
|
|
29
29
|
"issue_date": to_utc(ct_datetime(2023, 5, 2)),
|
|
30
|
-
"account": "
|
|
30
|
+
"account": "0023719050",
|
|
31
31
|
"breakdown": {"vat": {}},
|
|
32
32
|
"kwh": Decimal("0"),
|
|
33
33
|
"reads": [],
|
|
34
|
-
"reference": "
|
|
34
|
+
"reference": "000023905961",
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
|
|
@@ -16,6 +16,7 @@ from chellow.models import (
|
|
|
16
16
|
Pc,
|
|
17
17
|
Site,
|
|
18
18
|
Source,
|
|
19
|
+
Ssc,
|
|
19
20
|
VoltageLevel,
|
|
20
21
|
insert_comms,
|
|
21
22
|
insert_cops,
|
|
@@ -94,6 +95,7 @@ def test_process_banded_hh_ums(sess):
|
|
|
94
95
|
insert_energisation_statuses(sess)
|
|
95
96
|
energisation_status = EnergisationStatus.get_by_code(sess, "E")
|
|
96
97
|
gsp_group = GspGroup.insert(sess, "_L", "South Western")
|
|
98
|
+
Ssc.insert(sess, "0393", "unrestricted", True, vf, None)
|
|
97
99
|
supply = site.insert_e_supply(
|
|
98
100
|
sess,
|
|
99
101
|
source,
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
from decimal import Decimal
|
|
2
2
|
|
|
3
3
|
from chellow.e.computer import SupplySource
|
|
4
|
-
from chellow.e.triad import
|
|
4
|
+
from chellow.e.triad import (
|
|
5
|
+
_find_triad_dates,
|
|
6
|
+
_process_triad_hh,
|
|
7
|
+
hh,
|
|
8
|
+
national_grid_import,
|
|
9
|
+
)
|
|
5
10
|
from chellow.models import (
|
|
6
11
|
Comm,
|
|
7
12
|
Contract,
|
|
@@ -332,3 +337,222 @@ def test_national_grid_import(mocker, sess):
|
|
|
332
337
|
|
|
333
338
|
s = mocker.Mock()
|
|
334
339
|
national_grid_import(sess, log, set_progress, s)
|
|
340
|
+
|
|
341
|
+
|
|
342
|
+
def test_hh(sess):
|
|
343
|
+
vf = to_utc(ct_datetime(1996, 1, 1))
|
|
344
|
+
site = Site.insert(sess, "CI017", "Water Works")
|
|
345
|
+
start_date = to_utc(ct_datetime(2023, 7, 31, 23, 30))
|
|
346
|
+
finish_date = to_utc(ct_datetime(2023, 7, 31, 23, 30))
|
|
347
|
+
forecast_from = to_utc(ct_datetime(2020, 1, 1))
|
|
348
|
+
|
|
349
|
+
market_role_Z = MarketRole.insert(sess, "Z", "Non-core")
|
|
350
|
+
participant = Participant.insert(sess, "CALB", "AK Industries")
|
|
351
|
+
participant.insert_party(sess, market_role_Z, "None core", vf, None, None)
|
|
352
|
+
bank_holiday_rate_script = {"bank_holidays": []}
|
|
353
|
+
Contract.insert_non_core(
|
|
354
|
+
sess, "bank_holidays", "", {}, vf, None, bank_holiday_rate_script
|
|
355
|
+
)
|
|
356
|
+
triad_rate_script = {
|
|
357
|
+
"triad_gbp_per_gsp_kw": {
|
|
358
|
+
"import": {"_L": {"HHTariff(Floored)_£/kW": Decimal(0)}}
|
|
359
|
+
},
|
|
360
|
+
}
|
|
361
|
+
Contract.insert_non_core(
|
|
362
|
+
sess,
|
|
363
|
+
"triad_rates",
|
|
364
|
+
"",
|
|
365
|
+
{},
|
|
366
|
+
vf,
|
|
367
|
+
None,
|
|
368
|
+
triad_rate_script,
|
|
369
|
+
)
|
|
370
|
+
triad_dates_rate_script = {
|
|
371
|
+
"triad_dates": [
|
|
372
|
+
utc_datetime(2021, 12, 2, 16, 30),
|
|
373
|
+
utc_datetime(2022, 1, 5, 17, 00),
|
|
374
|
+
utc_datetime(2022, 1, 20, 17, 00),
|
|
375
|
+
],
|
|
376
|
+
}
|
|
377
|
+
Contract.insert_non_core(
|
|
378
|
+
sess,
|
|
379
|
+
"triad_dates",
|
|
380
|
+
"",
|
|
381
|
+
{},
|
|
382
|
+
vf,
|
|
383
|
+
None,
|
|
384
|
+
triad_dates_rate_script,
|
|
385
|
+
)
|
|
386
|
+
market_role_X = MarketRole.insert(sess, "X", "Supplier")
|
|
387
|
+
market_role_M = MarketRole.insert(sess, "M", "Mop")
|
|
388
|
+
market_role_C = MarketRole.insert(sess, "C", "HH Dc")
|
|
389
|
+
market_role_R = MarketRole.insert(sess, "R", "Distributor")
|
|
390
|
+
participant.insert_party(sess, market_role_M, "Fusion Mop Ltd", vf, None, None)
|
|
391
|
+
participant.insert_party(sess, market_role_X, "Fusion Ltc", vf, None, None)
|
|
392
|
+
participant.insert_party(sess, market_role_C, "Fusion DC", vf, None, None)
|
|
393
|
+
mop_contract = Contract.insert_mop(
|
|
394
|
+
sess, "Fusion", participant, "", {}, vf, None, {}
|
|
395
|
+
)
|
|
396
|
+
dc_contract = Contract.insert_dc(
|
|
397
|
+
sess, "Fusion DC 2000", participant, "", {}, vf, None, {}
|
|
398
|
+
)
|
|
399
|
+
pc = Pc.insert(sess, "00", "hh", vf, None)
|
|
400
|
+
insert_cops(sess)
|
|
401
|
+
cop = Cop.get_by_code(sess, "5")
|
|
402
|
+
insert_comms(sess)
|
|
403
|
+
comm = Comm.get_by_code(sess, "GSM")
|
|
404
|
+
imp_supplier_contract = Contract.insert_supplier(
|
|
405
|
+
sess,
|
|
406
|
+
"Fusion Supplier 2000",
|
|
407
|
+
participant,
|
|
408
|
+
"",
|
|
409
|
+
{},
|
|
410
|
+
vf,
|
|
411
|
+
None,
|
|
412
|
+
{},
|
|
413
|
+
)
|
|
414
|
+
dno = participant.insert_party(sess, market_role_R, "WPD", vf, None, "22")
|
|
415
|
+
dno_rate_script = {
|
|
416
|
+
"_L": {
|
|
417
|
+
"bands": {},
|
|
418
|
+
"tariffs": {
|
|
419
|
+
"510_00": {
|
|
420
|
+
"description": "",
|
|
421
|
+
"gbp-per-kvarh": 0,
|
|
422
|
+
"green-gbp-per-kwh": 0,
|
|
423
|
+
}
|
|
424
|
+
},
|
|
425
|
+
},
|
|
426
|
+
}
|
|
427
|
+
Contract.insert_dno(
|
|
428
|
+
sess, dno.dno_code, participant, "", {}, vf, None, dno_rate_script
|
|
429
|
+
)
|
|
430
|
+
meter_type = MeterType.insert(sess, "UM", "Unmetered", vf, None)
|
|
431
|
+
meter_payment_type = MeterPaymentType.insert(sess, "CR", "Credit", vf, None)
|
|
432
|
+
mtc = Mtc.insert(sess, "845", True, False, vf, None)
|
|
433
|
+
mtc_participant = MtcParticipant.insert(
|
|
434
|
+
sess,
|
|
435
|
+
mtc,
|
|
436
|
+
participant,
|
|
437
|
+
"HH COP5",
|
|
438
|
+
False,
|
|
439
|
+
True,
|
|
440
|
+
meter_type,
|
|
441
|
+
meter_payment_type,
|
|
442
|
+
0,
|
|
443
|
+
vf,
|
|
444
|
+
None,
|
|
445
|
+
)
|
|
446
|
+
insert_voltage_levels(sess)
|
|
447
|
+
voltage_level = VoltageLevel.get_by_code(sess, "HV")
|
|
448
|
+
llfc = dno.insert_llfc(
|
|
449
|
+
sess, "510", "PC 5-8 & HH HV", voltage_level, False, True, vf, None
|
|
450
|
+
)
|
|
451
|
+
MtcLlfc.insert(sess, mtc_participant, llfc, vf, None)
|
|
452
|
+
insert_sources(sess)
|
|
453
|
+
source = Source.get_by_code(sess, "grid")
|
|
454
|
+
insert_energisation_statuses(sess)
|
|
455
|
+
energisation_status = EnergisationStatus.get_by_code(sess, "E")
|
|
456
|
+
gsp_group = GspGroup.insert(sess, "_L", "South Western")
|
|
457
|
+
insert_dtc_meter_types(sess)
|
|
458
|
+
dtc_meter_type = DtcMeterType.get_by_code(sess, "H")
|
|
459
|
+
supply = site.insert_e_supply(
|
|
460
|
+
sess,
|
|
461
|
+
source,
|
|
462
|
+
None,
|
|
463
|
+
"Bob",
|
|
464
|
+
to_utc(ct_datetime(2000, 1, 1)),
|
|
465
|
+
None,
|
|
466
|
+
gsp_group,
|
|
467
|
+
mop_contract,
|
|
468
|
+
"773",
|
|
469
|
+
dc_contract,
|
|
470
|
+
"ghyy3",
|
|
471
|
+
"hgjeyhuw",
|
|
472
|
+
dno,
|
|
473
|
+
pc,
|
|
474
|
+
"845",
|
|
475
|
+
cop,
|
|
476
|
+
comm,
|
|
477
|
+
None,
|
|
478
|
+
energisation_status,
|
|
479
|
+
dtc_meter_type,
|
|
480
|
+
"22 7867 6232 781",
|
|
481
|
+
"510",
|
|
482
|
+
imp_supplier_contract,
|
|
483
|
+
"7748",
|
|
484
|
+
361,
|
|
485
|
+
None,
|
|
486
|
+
None,
|
|
487
|
+
None,
|
|
488
|
+
None,
|
|
489
|
+
None,
|
|
490
|
+
)
|
|
491
|
+
|
|
492
|
+
sess.commit()
|
|
493
|
+
caches = {}
|
|
494
|
+
era = supply.eras[0]
|
|
495
|
+
is_import = True
|
|
496
|
+
ds = SupplySource(
|
|
497
|
+
sess, start_date, finish_date, forecast_from, era, is_import, caches
|
|
498
|
+
)
|
|
499
|
+
h = ds.hh_data[0]
|
|
500
|
+
h["duos-description"] = "Unmetered"
|
|
501
|
+
|
|
502
|
+
rate_period = "monthly"
|
|
503
|
+
est_kw = None
|
|
504
|
+
hh(ds, rate_period=rate_period, est_kw=est_kw)
|
|
505
|
+
assert h == {
|
|
506
|
+
"hist-start": utc_datetime(2019, 7, 31, 22, 30),
|
|
507
|
+
"start-date": utc_datetime(2023, 7, 31, 22, 30),
|
|
508
|
+
"ct-day": 31,
|
|
509
|
+
"utc-month": 7,
|
|
510
|
+
"utc-day": 31,
|
|
511
|
+
"utc-decimal-hour": 22.5,
|
|
512
|
+
"utc-year": 2023,
|
|
513
|
+
"utc-hour": 22,
|
|
514
|
+
"utc-minute": 30,
|
|
515
|
+
"ct-year": 2023,
|
|
516
|
+
"ct-month": 7,
|
|
517
|
+
"ct-decimal-hour": 23.5,
|
|
518
|
+
"ct-day-of-week": 0,
|
|
519
|
+
"utc-day-of-week": 0,
|
|
520
|
+
"utc-is-bank-holiday": False,
|
|
521
|
+
"ct-is-bank-holiday": False,
|
|
522
|
+
"utc-is-month-end": False,
|
|
523
|
+
"ct-is-month-end": True,
|
|
524
|
+
"status": "X",
|
|
525
|
+
"imp-msp-kvarh": 0,
|
|
526
|
+
"imp-msp-kvar": 0,
|
|
527
|
+
"exp-msp-kvarh": 0,
|
|
528
|
+
"exp-msp-kvar": 0,
|
|
529
|
+
"msp-kw": 0,
|
|
530
|
+
"msp-kwh": 0,
|
|
531
|
+
"msp-kva": 0,
|
|
532
|
+
"hist-import-grid-kvarh": 0,
|
|
533
|
+
"hist-export-grid-kvarh": 0,
|
|
534
|
+
"anti-msp-kwh": 0,
|
|
535
|
+
"anti-msp-kw": 0,
|
|
536
|
+
"hist-imp-msp-kvarh": 0,
|
|
537
|
+
"hist-kwh": 0,
|
|
538
|
+
"duos-description": "Unmetered",
|
|
539
|
+
"triad-estimate-1-date": utc_datetime(2021, 12, 2, 16, 30),
|
|
540
|
+
"triad-estimate-1-gsp-kw": 0,
|
|
541
|
+
"triad-estimate-1-laf": 1,
|
|
542
|
+
"triad-estimate-1-msp-kw": 0,
|
|
543
|
+
"triad-estimate-1-status": "X",
|
|
544
|
+
"triad-estimate-2-date": utc_datetime(2022, 1, 5, 17, 0),
|
|
545
|
+
"triad-estimate-2-gsp-kw": 0,
|
|
546
|
+
"triad-estimate-2-laf": 1,
|
|
547
|
+
"triad-estimate-2-msp-kw": 0,
|
|
548
|
+
"triad-estimate-2-status": "X",
|
|
549
|
+
"triad-estimate-3-date": utc_datetime(2022, 1, 20, 17, 0),
|
|
550
|
+
"triad-estimate-3-gsp-kw": 0,
|
|
551
|
+
"triad-estimate-3-laf": 1,
|
|
552
|
+
"triad-estimate-3-msp-kw": 0,
|
|
553
|
+
"triad-estimate-3-status": "X",
|
|
554
|
+
"triad-estimate-gbp": 0.0,
|
|
555
|
+
"triad-estimate-gsp-kw": 0.0,
|
|
556
|
+
"triad-estimate-months": 1,
|
|
557
|
+
"triad-estimate-rate": 0.0,
|
|
558
|
+
}
|