chellow 1706265605.0.0__tar.gz → 1706691842.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-1706265605.0.0 → chellow-1706691842.0.0}/PKG-INFO +2 -1
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/README.md +1 -0
- chellow-1706691842.0.0/VERSION +1 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/elexon.py +11 -3
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/rcrc.py +16 -17
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/system_price.py +12 -21
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/tlms.py +100 -80
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/non_core_contract_edit.html +2 -2
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/system_price/test_system_price.py +4 -3
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/test_tlms.py +2 -1
- chellow-1706265605.0.0/VERSION +0 -1
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/.ebextensions/chellow.config +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/.github/workflows/chellow.yml +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/.gitignore +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/application.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/bin/chellow_service_monitor.sh +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/bin/chellow_start.sh +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/__init__.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/api.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/bank_holidays.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/commands.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/dloads.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/__init__.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/aahedc.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/bill_importer.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/bill_parsers/__init__.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/bill_parsers/activity_mop_stark_xlsx.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/bill_parsers/annual_mop_stark_xlsx.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/bill_parsers/bgb_edi.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/bill_parsers/csv.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/bill_parsers/engie_edi.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/bill_parsers/engie_xls.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/bill_parsers/engie_xlsx.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/bill_parsers/gdf_csv.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/bill_parsers/haven_csv.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/bill_parsers/haven_edi.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/bill_parsers/haven_edi_tprs.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/bill_parsers/mm.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/bill_parsers/nonsettlement_dc_stark_xlsx.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/bill_parsers/settlement_dc_stark_xlsx.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/bill_parsers/sse_edi.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/bill_parsers/sww_xls.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/bmarketidx.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/bsuos.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/ccl.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/cfd.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/computer.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/dno_rate_parser.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/duos.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/energy_management.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/hh_importer.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/hh_parser_bg_csv.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/hh_parser_df2.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/hh_parser_simple_csv.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/laf_import.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/lcc.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/mdd_importer.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/ro.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/scenario.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/tnuos.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/triad.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/views.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/edi_lib.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/gas/bill_import.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/gas/bill_parser_csv.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/gas/bill_parser_engie_edi.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/gas/ccl.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/gas/cv.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/gas/dn_rate_parser.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/gas/engine.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/gas/transportation.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/gas/views.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/general_import.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/models.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/national_grid.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/proxy.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/rate_server.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/__init__.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_109.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_111.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_169.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_177.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_181.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_183.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_187.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_215.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_219.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_231.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_233.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_241.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_247.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_29.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_291.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_33.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_387.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_41.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_429.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_59.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_81.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_87.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_asset_comparison.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_batches.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_bills.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_csv_llfcs.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_csv_site_hh_data.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_csv_site_snags.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_ecoes_comparison.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_g_monthly_duration.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_g_supplies_snapshot.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_g_supply_virtual_bill.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_g_virtual_bills.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_g_virtual_bills_hh.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_sscs.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/reports/report_supply_contacts.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/static/css/chellow.css +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/static/images/favicon.svg +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/static/images/favicon_test.svg +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/static/images/logo.png +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/static/js/htmx.min.js +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/403.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/base.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/bill_type.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/bill_types.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/chain.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/csv_sites_monthly_duration.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/downloads.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/asset_comparison.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/channel.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/channel_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/channel_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/channel_snag.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/channel_snag_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/channel_snags.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/comm.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/comms.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/cop.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/cops.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/csv_bills.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/csv_register_reads.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/csv_sites_hh_data.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/csv_sites_triad.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/csv_supplies_hh_data.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/csv_supplies_snapshot.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/csv_supplies_triad.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dc_auto_importer.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dc_batch.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dc_batch_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dc_batch_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dc_batch_file.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dc_batch_file_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dc_batch_upload_file.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dc_batches.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dc_bill.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dc_bill_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dc_bill_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dc_bill_import.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dc_bill_imports.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dc_contract.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dc_contract_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dc_contract_hh_import.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dc_contract_hh_imports.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dc_contracts.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dc_contracts_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dc_rate_script.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dc_rate_script_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dc_rate_script_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dno.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dno_rate_script.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dno_rate_script_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dno_rate_script_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dnos.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dtc_meter_type.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/dtc_meter_types.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/duration_report.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/elexon.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/em_hh_data.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/em_months.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/em_site.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/em_totals.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/energisation_status.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/energisation_statuses.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/era_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/era_edit_form.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/era_supplier_bill_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/generator_type.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/generator_types.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/gsp_group.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/gsp_groups.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/hh_datum_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/lafs.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/lcc.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/llfc.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/llfc_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/llfcs.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/market_role.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/market_roles.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/meter_payment_type.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/meter_payment_types.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/meter_type.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/meter_types.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mop_batch.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mop_batch_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mop_batch_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mop_batch_file.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mop_batch_file_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mop_batch_upload_file.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mop_batches.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mop_bill.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mop_bill_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mop_bill_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mop_bill_import.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mop_bill_imports.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mop_contract.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mop_contract_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mop_contract_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mop_contracts.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mop_rate_script.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mop_rate_script_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mop_rate_script_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mtc.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mtc_llfc.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mtc_llfc_ssc.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mtc_llfc_ssc_pc.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mtc_llfc_ssc_pcs.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mtc_llfc_sscs.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mtc_llfcs.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mtc_participant.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mtc_participants.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mtc_ssc.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mtc_sscs.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/mtcs.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/ods_monthly_duration.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/participant.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/participants.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/parties.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/party.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/pc.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/pcs.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/read_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/read_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/read_type.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/read_types.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/scenario.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/scenario_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/scenario_docs.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/scenario_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/scenarios.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/site_add_e_supply.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/site_add_e_supply_form.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/site_hh_data.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/site_site_snags.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/site_snag.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/site_snag_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/site_snags.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/site_snags_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/source.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/sources.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/ssc.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/sscs.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supplier_batch.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supplier_batch_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supplier_batch_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supplier_batch_file.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supplier_batch_file_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supplier_batch_file_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supplier_batch_upload_file.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supplier_batches.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supplier_bill.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supplier_bill_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supplier_bill_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supplier_bill_import.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supplier_bill_imports.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supplier_contract.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supplier_contract_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supplier_contract_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supplier_contracts.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supplier_rate_script.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supplier_rate_script_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supplier_rate_script_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supply.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supply_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supply_eras.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supply_hh_data.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supply_months.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supply_note_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supply_note_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supply_notes.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supply_post.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/supply_virtual_bill.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/tpr.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/e/tprs.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/edi_viewer.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/batch.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/batch_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/batch_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/batches.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/bill.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/bill_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/bill_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/bill_import.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/bill_imports.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/dn.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/dns.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/era_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/exit_zone.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/industry_auto_importer.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/industry_contract.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/industry_contract_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/industry_contract_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/industry_contracts.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/industry_rate_script.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/industry_rate_script_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/industry_rate_script_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/ldz.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/read_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/read_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/read_type.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/read_types.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/reading_frequencies.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/reading_frequency.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/reports.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/supplier_contract.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/supplier_contract_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/supplier_contract_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/supplier_contracts.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/supplier_rate_script.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/supplier_rate_script_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/supplier_rate_script_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/supplies.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/supply.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/supply_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/supply_note_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/supply_note_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/supply_notes.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/unit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/g/units.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/general_import.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/general_imports.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/home.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/input_date.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/local_report.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/local_reports.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/macros.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/national_grid.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/non_core_auto_importer.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/non_core_contract.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/non_core_contracts.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/non_core_rate_script.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/non_core_rate_script_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/non_core_rate_script_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/object_summary.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/rate_server.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/report_run.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/report_run_asset_comparison.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/report_run_bill_check.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/report_run_ecoes_comparison.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/report_run_row.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/report_run_row_bill_check.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/report_run_supply_contacts.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/report_runs.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/site.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/site_add.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/site_edit.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/site_gen_graph.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/site_hh_data.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/site_months.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/site_used_graph.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/sites.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/supplies.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/system.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/tester.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/user.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/user_roles.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/users.html +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/testing.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/utils.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/views.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/gpl.txt +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/pyproject.toml +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/requirements.txt +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/setup.cfg +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/systemd/chellow.service +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/systemd/chellow_upgrader.service +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/systemd/chellow_upgrader.timer +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/conftest.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/bill_parsers/test_activity_mop_stark_xlsx.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/bill_parsers/test_annual_mop_stark_xlsx.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/bill_parsers/test_bill_parser_csv.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/bill_parsers/test_bill_parser_engie_edi.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/bill_parsers/test_bill_parser_engie_xls.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/bill_parsers/test_bill_parser_engie_xlsx.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/bill_parsers/test_bill_parser_haven_csv.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/bill_parsers/test_bill_parser_haven_edi.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/bill_parsers/test_bill_parser_haven_edi_tprs.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/bill_parsers/test_bill_parser_nonsettlement_dc_stark_xlsx/bills.nonsettlement.dc.stark.xlsx +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/bill_parsers/test_bill_parser_nonsettlement_dc_stark_xlsx/bills_old.nonsettlement.dc.stark.xlsx +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/bill_parsers/test_bill_parser_nonsettlement_dc_stark_xlsx/test_bill_parser_nonsettlement_dc_stark_xlsx.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/bill_parsers/test_bill_parser_settlement_dc_stark_xlsx/bills.settlement.dc.stark.xlsx +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/bill_parsers/test_bill_parser_settlement_dc_stark_xlsx/test_bill_parser_settlement_dc_stark_xlsx.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/bill_parsers/test_bill_parser_sse_edi.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/bill_parsers/test_bill_parser_sww_xls.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/system_price/prices.xls +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/test_aahedc.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/test_bill_importer.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/test_bsuos.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/test_ccl.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/test_cfd.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/test_computer.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/test_dno_rate_parser.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/test_duos.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/test_e_views.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/test_hh_importer.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/test_laf_importer.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/test_mdd_importer.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/test_rcrc_importer.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/test_ro.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/test_scenario.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/test_tnuos.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/e/test_triad.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/gas/bill_parsers/test_g_bill_parser_engie_edi.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/gas/test_dn_rate_parser.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/gas/test_engine.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/gas/test_g_cv.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/gas/test_gas_views.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/gas/test_transportation.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/reports/test_g_monthly_duration.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/reports/test_g_supplies_snapshot.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/reports/test_g_supply_virtual_bill.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/reports/test_g_virtual_bills_hh.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/reports/test_report_109.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/reports/test_report_111.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/reports/test_report_169.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/reports/test_report_181.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/reports/test_report_183.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/reports/test_report_187.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/reports/test_report_219.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/reports/test_report_231.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/reports/test_report_247.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/reports/test_report_29.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/reports/test_report_291.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/reports/test_report_33.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/reports/test_report_387.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/reports/test_report_41.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/reports/test_report_429.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/reports/test_report_59.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/reports/test_report_81.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/reports/test_report_87.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/reports/test_report_asset_comparison.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/reports/test_report_batches.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/reports/test_report_bills.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/reports/test_report_dno_vl_parser.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/reports/test_report_ecoes_comparison.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/test_chellow.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/test_edi_viewer.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/test_general_import.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/test_models.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/test_rate_server.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/test_testing.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/test_utils.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/test_views.py +0 -0
- {chellow-1706265605.0.0 → chellow-1706691842.0.0}/test/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: chellow
|
|
3
|
-
Version:
|
|
3
|
+
Version: 1706691842.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)
|
|
@@ -55,6 +55,7 @@ Chellow is a Python web application that uses the PostgreSQL database. To instal
|
|
|
55
55
|
Chellow, follow these steps:
|
|
56
56
|
|
|
57
57
|
* Install [PostgreSQL](http://www.postgresql.org/) 12
|
|
58
|
+
* Set the PostgreSQL time zone to 'UTC'.
|
|
58
59
|
* Create a PostgreSQL database: `createdb --encoding=UTF8 chellow`
|
|
59
60
|
* Set up the following environment variables to configure Chellow:
|
|
60
61
|
|
|
@@ -26,6 +26,7 @@ Chellow is a Python web application that uses the PostgreSQL database. To instal
|
|
|
26
26
|
Chellow, follow these steps:
|
|
27
27
|
|
|
28
28
|
* Install [PostgreSQL](http://www.postgresql.org/) 12
|
|
29
|
+
* Set the PostgreSQL time zone to 'UTC'.
|
|
29
30
|
* Create a PostgreSQL database: `createdb --encoding=UTF8 chellow`
|
|
30
31
|
* Set up the following environment variables to configure Chellow:
|
|
31
32
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1706691842.0.0"
|
|
@@ -57,16 +57,17 @@ def api_search(s, resource_id, sort=None):
|
|
|
57
57
|
return res_j
|
|
58
58
|
|
|
59
59
|
|
|
60
|
-
def run_import(sess, log, set_progress):
|
|
60
|
+
def run_import(sess, log, set_progress, scripting_key):
|
|
61
61
|
log("Starting to import data from Elexon")
|
|
62
62
|
s = requests.Session()
|
|
63
63
|
s.verify = False
|
|
64
64
|
|
|
65
65
|
for mod_name in ("chellow.e.system_price", "chellow.e.tlms", "chellow.e.rcrc"):
|
|
66
66
|
mod = import_module(mod_name)
|
|
67
|
-
mod.elexon_import(sess, log, set_progress, s)
|
|
67
|
+
mod.elexon_import(sess, log, set_progress, s, scripting_key)
|
|
68
68
|
|
|
69
69
|
|
|
70
|
+
ELEXON_PORTAL_SCRIPTING_KEY_KEY = "elexonportal_scripting_key"
|
|
70
71
|
LAST_RUN_KEY = "last_run"
|
|
71
72
|
GLOBAL_ALERT = "There's a problem with an <a href='/e/elexon'>Elexon import</a>."
|
|
72
73
|
ELEXON_STATE_KEY = "elexon"
|
|
@@ -119,6 +120,13 @@ class Elexon(threading.Thread):
|
|
|
119
120
|
with Session() as sess:
|
|
120
121
|
try:
|
|
121
122
|
config = Contract.get_non_core_by_name(sess, "configuration")
|
|
123
|
+
props = config.make_properties()
|
|
124
|
+
scripting_key = props.get(ELEXON_PORTAL_SCRIPTING_KEY_KEY)
|
|
125
|
+
if scripting_key is None:
|
|
126
|
+
raise BadRequest(
|
|
127
|
+
f"The property {ELEXON_PORTAL_SCRIPTING_KEY_KEY} "
|
|
128
|
+
f"cannot be found in the configuration properties."
|
|
129
|
+
)
|
|
122
130
|
state = config.make_state()
|
|
123
131
|
try:
|
|
124
132
|
elexon_state = state[ELEXON_STATE_KEY]
|
|
@@ -128,7 +136,7 @@ class Elexon(threading.Thread):
|
|
|
128
136
|
elexon_state[LAST_RUN_KEY] = utc_datetime_now()
|
|
129
137
|
config.update_state(state)
|
|
130
138
|
sess.commit()
|
|
131
|
-
run_import(sess, self.log, self.set_progress)
|
|
139
|
+
run_import(sess, self.log, self.set_progress, scripting_key)
|
|
132
140
|
except BaseException as e:
|
|
133
141
|
msg = f"{e.description} " if isinstance(e, BadRequest) else ""
|
|
134
142
|
self.log(f"{msg}{traceback.format_exc()}")
|
|
@@ -63,14 +63,23 @@ def _find_month(lines, month_start, month_finish):
|
|
|
63
63
|
next(parser)
|
|
64
64
|
month_rcrcs = {}
|
|
65
65
|
for values in parser:
|
|
66
|
-
|
|
66
|
+
if len(values) == 0:
|
|
67
|
+
continue
|
|
68
|
+
date_str = values[0]
|
|
69
|
+
if "/" in date_str:
|
|
70
|
+
pattern = "%d/%m/%Y"
|
|
71
|
+
elif " " in date_str:
|
|
72
|
+
pattern = "%d %b %Y"
|
|
73
|
+
else:
|
|
74
|
+
raise BadRequest(f"Date format {date_str} not recognized.")
|
|
75
|
+
hh_date = to_utc(ct_datetime_parse(date_str, pattern))
|
|
67
76
|
hh_date += relativedelta(minutes=30 * int(values[2]))
|
|
68
77
|
if month_start <= hh_date <= month_finish:
|
|
69
78
|
month_rcrcs[key_format(hh_date)] = Decimal(values[3])
|
|
70
79
|
return month_rcrcs
|
|
71
80
|
|
|
72
81
|
|
|
73
|
-
def elexon_import(sess, log, set_progress, s):
|
|
82
|
+
def elexon_import(sess, log, set_progress, s, scripting_key):
|
|
74
83
|
log("Starting to check RCRCs.")
|
|
75
84
|
contract = Contract.get_non_core_by_name(sess, "rcrc")
|
|
76
85
|
latest_rs = (
|
|
@@ -90,25 +99,15 @@ def elexon_import(sess, log, set_progress, s):
|
|
|
90
99
|
month_start, month_finish = months[1]
|
|
91
100
|
now = utc_datetime_now()
|
|
92
101
|
if now > month_finish:
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
scripting_key = props.get(ELEXON_PORTAL_SCRIPTING_KEY_KEY)
|
|
97
|
-
if scripting_key is None:
|
|
98
|
-
raise BadRequest(
|
|
99
|
-
f"The property {ELEXON_PORTAL_SCRIPTING_KEY_KEY} cannot be found in "
|
|
100
|
-
f"the configuration properties."
|
|
101
|
-
)
|
|
102
|
-
|
|
103
|
-
contract_props = contract.make_properties()
|
|
104
|
-
url_str = f"{contract_props['url']}file/download/RCRC_FILE?key={scripting_key}"
|
|
102
|
+
params = {"key": scripting_key}
|
|
103
|
+
url_str = "https://downloads.elexonportal.co.uk/file/download/RCRC_FILE"
|
|
105
104
|
log(
|
|
106
|
-
f"Downloading {url_str} to see if data is available
|
|
107
|
-
f"{hh_format(month_start)} to {hh_format(month_finish)}."
|
|
105
|
+
f"Downloading {url_str}?key={scripting_key} to see if data is available "
|
|
106
|
+
f"from {hh_format(month_start)} to {hh_format(month_finish)}."
|
|
108
107
|
)
|
|
109
108
|
|
|
110
109
|
sess.rollback() # Avoid long-running transaction
|
|
111
|
-
r = s.get(url_str, timeout=
|
|
110
|
+
r = s.get(url_str, timeout=120, params=params)
|
|
112
111
|
month_rcrcs = _find_month(
|
|
113
112
|
(x.decode() for x in r.iter_lines()), month_start, month_finish
|
|
114
113
|
)
|
|
@@ -2,6 +2,8 @@ import datetime
|
|
|
2
2
|
import traceback
|
|
3
3
|
from datetime import timedelta as Timedelta
|
|
4
4
|
|
|
5
|
+
from sqlalchemy import select
|
|
6
|
+
|
|
5
7
|
from werkzeug.exceptions import BadRequest
|
|
6
8
|
|
|
7
9
|
import xlrd
|
|
@@ -12,9 +14,6 @@ from chellow.models import Contract, RateScript
|
|
|
12
14
|
from chellow.utils import HH, hh_format, to_ct, to_utc
|
|
13
15
|
|
|
14
16
|
|
|
15
|
-
ELEXON_PORTAL_SCRIPTING_KEY_KEY = "elexonportal_scripting_key"
|
|
16
|
-
|
|
17
|
-
|
|
18
17
|
def key_format(dt):
|
|
19
18
|
return dt.strftime("%d %H:%M")
|
|
20
19
|
|
|
@@ -61,7 +60,7 @@ def hh(data_source):
|
|
|
61
60
|
h["ssp-gbp"] = h["nbp-kwh"] * ssp
|
|
62
61
|
|
|
63
62
|
|
|
64
|
-
def elexon_import(sess, log, set_progress, s):
|
|
63
|
+
def elexon_import(sess, log, set_progress, s, scripting_key):
|
|
65
64
|
contract = Contract.get_non_core_by_name(sess, "system_price")
|
|
66
65
|
contract_props = contract.make_properties()
|
|
67
66
|
|
|
@@ -74,9 +73,9 @@ def elexon_import(sess, log, set_progress, s):
|
|
|
74
73
|
|
|
75
74
|
log("Starting to check System Prices.")
|
|
76
75
|
|
|
77
|
-
for rscript in (
|
|
78
|
-
|
|
79
|
-
.
|
|
76
|
+
for rscript in sess.scalars(
|
|
77
|
+
select(RateScript)
|
|
78
|
+
.where(RateScript.contract == contract)
|
|
80
79
|
.order_by(RateScript.start_date.desc())
|
|
81
80
|
):
|
|
82
81
|
ns = loads(rscript.script)
|
|
@@ -87,24 +86,16 @@ def elexon_import(sess, log, set_progress, s):
|
|
|
87
86
|
elif rates[key_format(rscript.finish_date)]["run"] == "DF":
|
|
88
87
|
fill_start = rscript.finish_date + HH
|
|
89
88
|
break
|
|
89
|
+
params = {"key": scripting_key}
|
|
90
|
+
url = "https://downloads.elexonportal.co.uk/file/download/BESTVIEWPRICES_FILE"
|
|
90
91
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
scripting_key = config_props.get(ELEXON_PORTAL_SCRIPTING_KEY_KEY)
|
|
95
|
-
if scripting_key is None:
|
|
96
|
-
raise BadRequest(
|
|
97
|
-
f"The property {ELEXON_PORTAL_SCRIPTING_KEY_KEY} cannot be found in "
|
|
98
|
-
f"the configuration properties."
|
|
99
|
-
)
|
|
100
|
-
url = (
|
|
101
|
-
f"{contract_props['url']}file/download/BESTVIEWPRICES_FILE?key={scripting_key}"
|
|
92
|
+
log(
|
|
93
|
+
f"Downloading from {url}?key={scripting_key} and extracting data from "
|
|
94
|
+
f"{hh_format(fill_start)}"
|
|
102
95
|
)
|
|
103
96
|
|
|
104
|
-
log(f"Downloading from {url} and extracting data from {hh_format(fill_start)}")
|
|
105
|
-
|
|
106
97
|
sess.rollback() # Avoid long-running transactions
|
|
107
|
-
res = s.get(url)
|
|
98
|
+
res = s.get(url, params=params)
|
|
108
99
|
log(f"Received {res.status_code} {res.reason}")
|
|
109
100
|
data = res.content
|
|
110
101
|
book = xlrd.open_workbook(file_contents=data)
|
|
@@ -4,7 +4,7 @@ from decimal import Decimal, InvalidOperation
|
|
|
4
4
|
|
|
5
5
|
from dateutil.relativedelta import relativedelta
|
|
6
6
|
|
|
7
|
-
from sqlalchemy import or_
|
|
7
|
+
from sqlalchemy import or_, select
|
|
8
8
|
from sqlalchemy.sql.expression import null
|
|
9
9
|
|
|
10
10
|
from werkzeug.exceptions import BadRequest
|
|
@@ -12,11 +12,9 @@ from werkzeug.exceptions import BadRequest
|
|
|
12
12
|
from zish import dumps, loads
|
|
13
13
|
|
|
14
14
|
from chellow.models import Contract, RateScript
|
|
15
|
-
from chellow.utils import HH, hh_format, to_ct, to_utc
|
|
15
|
+
from chellow.utils import HH, hh_format, hh_range, to_ct, to_utc
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
ELEXON_PORTAL_SCRIPTING_KEY_KEY = "elexonportal_scripting_key"
|
|
19
|
-
|
|
20
18
|
RUNS = ["DF", "RF", "R3", "R2", "R1", "SF", "II"]
|
|
21
19
|
|
|
22
20
|
|
|
@@ -77,51 +75,76 @@ def hh(data_source, run="DF"):
|
|
|
77
75
|
h["nbp-kwh"] = h["gsp-kwh"] * tlm
|
|
78
76
|
|
|
79
77
|
|
|
80
|
-
def
|
|
81
|
-
for
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
78
|
+
def _find_complete_date(caches, sess, contract, cache):
|
|
79
|
+
for rs in sess.scalars(
|
|
80
|
+
select(RateScript)
|
|
81
|
+
.where(RateScript.contract == contract, RateScript.finish_date != null())
|
|
82
|
+
.order_by(RateScript.start_date.desc())
|
|
83
|
+
):
|
|
84
|
+
rates = rs.make_script()
|
|
85
|
+
rates["id"] = rs.id
|
|
86
|
+
cache["rate_scripts"].append(rates)
|
|
87
|
+
timestamps = cache["timestamps"]
|
|
88
|
+
tlms = rates["tlms"]
|
|
89
|
+
complete = True
|
|
90
|
+
for dt in hh_range(caches, rs.start_date, rs.finish_date):
|
|
91
|
+
timestamps[dt] = rates
|
|
92
|
+
key = key_format(dt)
|
|
93
|
+
if key in tlms:
|
|
94
|
+
gps = tlms[key]
|
|
95
|
+
for group in GSP_GROUP_LOOKUP.values():
|
|
96
|
+
if not (group in gps and "DF" in gps[group]):
|
|
97
|
+
complete = False
|
|
98
|
+
else:
|
|
99
|
+
complete = False
|
|
100
|
+
|
|
101
|
+
if complete:
|
|
102
|
+
return rs.finish_date
|
|
86
103
|
|
|
87
104
|
|
|
88
|
-
def elexon_import(sess, log, set_progress, s):
|
|
89
|
-
cache = {}
|
|
105
|
+
def elexon_import(sess, log, set_progress, s, scripting_key):
|
|
106
|
+
cache = {"rate_scripts": [], "timestamps": {}}
|
|
107
|
+
caches = {}
|
|
90
108
|
log("Starting to check TLMs.")
|
|
91
109
|
contract = Contract.get_non_core_by_name(sess, "tlms")
|
|
92
110
|
contract_props = contract.make_properties()
|
|
93
111
|
if contract_props.get("enabled", False):
|
|
94
|
-
config = Contract.get_non_core_by_name(sess, "configuration")
|
|
95
|
-
props = config.make_properties()
|
|
96
|
-
scripting_key = props.get(ELEXON_PORTAL_SCRIPTING_KEY_KEY)
|
|
97
|
-
if scripting_key is None:
|
|
98
|
-
raise BadRequest(
|
|
99
|
-
f"The property {ELEXON_PORTAL_SCRIPTING_KEY_KEY} cannot be "
|
|
100
|
-
f"found in the configuration properties."
|
|
101
|
-
)
|
|
102
112
|
|
|
103
|
-
|
|
113
|
+
params = {"key": scripting_key}
|
|
114
|
+
url_str = "https://downloads.elexonportal.co.uk/file/download/TLM_FILE"
|
|
115
|
+
complete_date = _find_complete_date(caches, sess, contract, cache)
|
|
116
|
+
log(f"Found complete up to {complete_date}")
|
|
104
117
|
|
|
105
118
|
sess.rollback() # Avoid long-running transaction
|
|
106
|
-
r = s.get(url_str)
|
|
119
|
+
r = s.get(url_str, params=params, timeout=120)
|
|
107
120
|
parser = csv.reader(
|
|
108
121
|
(x.decode() for x in r.iter_lines()), delimiter=",", quotechar='"'
|
|
109
122
|
)
|
|
110
|
-
log(f"Opened {url_str}.")
|
|
123
|
+
log(f"Opened {url_str}?key={scripting_key}.")
|
|
111
124
|
|
|
112
125
|
next(parser, None)
|
|
113
126
|
for values in parser:
|
|
114
127
|
if len(values) == 0:
|
|
115
128
|
continue
|
|
116
129
|
|
|
117
|
-
|
|
130
|
+
set_progress(values[0])
|
|
131
|
+
|
|
132
|
+
if values[3] == "":
|
|
118
133
|
for zone in GSP_GROUP_LOOKUP.keys():
|
|
119
134
|
values[3] = zone
|
|
120
|
-
_process_line(
|
|
135
|
+
_process_line(
|
|
136
|
+
cache, sess, contract, log, values, complete_date, caches
|
|
137
|
+
)
|
|
121
138
|
else:
|
|
122
|
-
_process_line(cache, sess, contract, log, values)
|
|
139
|
+
_process_line(cache, sess, contract, log, values, complete_date, caches)
|
|
140
|
+
|
|
141
|
+
for rscript in cache["rate_scripts"]:
|
|
142
|
+
rs = sess.scalars(
|
|
143
|
+
select(RateScript).where(RateScript.id == rscript["id"])
|
|
144
|
+
).one()
|
|
145
|
+
rs.script = dumps({"tlms": rscript["tlms"]})
|
|
146
|
+
sess.commit()
|
|
123
147
|
|
|
124
|
-
_save_cache(sess, cache)
|
|
125
148
|
else:
|
|
126
149
|
log(
|
|
127
150
|
"The importer is disabled. Set 'enabled' to 'true' in the "
|
|
@@ -148,10 +171,12 @@ GSP_GROUP_LOOKUP = {
|
|
|
148
171
|
}
|
|
149
172
|
|
|
150
173
|
|
|
151
|
-
def _process_line(cache, sess, contract, log_func, values):
|
|
174
|
+
def _process_line(cache, sess, contract, log_func, values, complete_date, caches):
|
|
152
175
|
hh_date_ct = to_ct(Datetime.strptime(values[0], "%d/%m/%Y"))
|
|
153
176
|
hh_date = to_utc(hh_date_ct)
|
|
154
177
|
hh_date += relativedelta(minutes=30 * (int(values[2]) - 1))
|
|
178
|
+
if complete_date is not None and hh_date <= complete_date:
|
|
179
|
+
return
|
|
155
180
|
run = values[1]
|
|
156
181
|
gsp_group_code = GSP_GROUP_LOOKUP[values[3]]
|
|
157
182
|
off_taking_str = values[4]
|
|
@@ -166,45 +191,13 @@ def _process_line(cache, sess, contract, log_func, values):
|
|
|
166
191
|
|
|
167
192
|
delivering = Decimal(values[5])
|
|
168
193
|
|
|
194
|
+
key = key_format(hh_date)
|
|
169
195
|
try:
|
|
170
|
-
|
|
196
|
+
cache["timestamps"][hh_date]["tlms"][key][gsp_group_code][run]
|
|
171
197
|
except KeyError:
|
|
172
|
-
_save_cache(sess, cache)
|
|
173
198
|
try:
|
|
174
|
-
|
|
199
|
+
rate = cache["timestamps"][hh_date]
|
|
175
200
|
except KeyError:
|
|
176
|
-
yr_cache = cache[hh_date.year] = {}
|
|
177
|
-
|
|
178
|
-
rs = (
|
|
179
|
-
sess.query(RateScript)
|
|
180
|
-
.filter(
|
|
181
|
-
RateScript.contract == contract,
|
|
182
|
-
RateScript.start_date <= hh_date,
|
|
183
|
-
or_(
|
|
184
|
-
RateScript.finish_date == null(), RateScript.finish_date >= hh_date
|
|
185
|
-
),
|
|
186
|
-
)
|
|
187
|
-
.first()
|
|
188
|
-
)
|
|
189
|
-
while rs is None:
|
|
190
|
-
log_func(f"There's no rate script at {hh_format(hh_date)}.")
|
|
191
|
-
latest_rs = (
|
|
192
|
-
sess.query(RateScript)
|
|
193
|
-
.filter(RateScript.contract == contract)
|
|
194
|
-
.order_by(RateScript.start_date.desc())
|
|
195
|
-
.first()
|
|
196
|
-
)
|
|
197
|
-
contract.update_rate_script(
|
|
198
|
-
sess,
|
|
199
|
-
latest_rs,
|
|
200
|
-
latest_rs.start_date,
|
|
201
|
-
latest_rs.start_date + relativedelta(months=2) - HH,
|
|
202
|
-
loads(latest_rs.script),
|
|
203
|
-
)
|
|
204
|
-
new_rs_start = latest_rs.start_date + relativedelta(months=1)
|
|
205
|
-
contract.insert_rate_script(sess, new_rs_start, {})
|
|
206
|
-
sess.commit()
|
|
207
|
-
log_func(f"Added a rate script starting at {hh_format(new_rs_start)}.")
|
|
208
201
|
|
|
209
202
|
rs = (
|
|
210
203
|
sess.query(RateScript)
|
|
@@ -218,29 +211,56 @@ def _process_line(cache, sess, contract, log_func, values):
|
|
|
218
211
|
)
|
|
219
212
|
.first()
|
|
220
213
|
)
|
|
214
|
+
assert rs is None
|
|
215
|
+
while rs is None:
|
|
216
|
+
log_func(f"There's no rate script at {hh_format(hh_date)}.")
|
|
217
|
+
latest_rs = (
|
|
218
|
+
sess.query(RateScript)
|
|
219
|
+
.filter(RateScript.contract == contract)
|
|
220
|
+
.order_by(RateScript.start_date.desc())
|
|
221
|
+
.first()
|
|
222
|
+
)
|
|
223
|
+
contract.update_rate_script(
|
|
224
|
+
sess,
|
|
225
|
+
latest_rs,
|
|
226
|
+
latest_rs.start_date,
|
|
227
|
+
latest_rs.start_date + relativedelta(months=2) - HH,
|
|
228
|
+
loads(latest_rs.script),
|
|
229
|
+
)
|
|
230
|
+
new_rs_start = latest_rs.start_date + relativedelta(months=1)
|
|
231
|
+
new_rs = contract.insert_rate_script(sess, new_rs_start, {})
|
|
232
|
+
rt = {"tlms": {}, "id": new_rs.id}
|
|
233
|
+
cache["rate_scripts"].append(rt)
|
|
234
|
+
for h in hh_range(caches, new_rs.start_date, new_rs.finish_date):
|
|
235
|
+
cache["timestamps"][h] = rt
|
|
236
|
+
sess.commit()
|
|
237
|
+
log_func(f"Added a rate script starting at {hh_format(new_rs_start)}.")
|
|
238
|
+
|
|
239
|
+
rs = (
|
|
240
|
+
sess.query(RateScript)
|
|
241
|
+
.filter(
|
|
242
|
+
RateScript.contract == contract,
|
|
243
|
+
RateScript.start_date <= hh_date,
|
|
244
|
+
or_(
|
|
245
|
+
RateScript.finish_date == null(),
|
|
246
|
+
RateScript.finish_date >= hh_date,
|
|
247
|
+
),
|
|
248
|
+
)
|
|
249
|
+
.first()
|
|
250
|
+
)
|
|
221
251
|
|
|
222
|
-
|
|
252
|
+
rate = cache["timestamps"][hh_date]
|
|
223
253
|
|
|
224
254
|
try:
|
|
225
|
-
|
|
255
|
+
existing = rate["tlms"][key]
|
|
226
256
|
except KeyError:
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
yr_cache[hh_date.month] = rs, rates, rts
|
|
230
|
-
sess.rollback()
|
|
231
|
-
|
|
232
|
-
key = key_format(hh_date)
|
|
233
|
-
try:
|
|
234
|
-
existing = rts[key]
|
|
235
|
-
except KeyError:
|
|
236
|
-
existing = rts[key] = {}
|
|
257
|
+
existing = rate["tlms"][key] = {}
|
|
237
258
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
259
|
+
try:
|
|
260
|
+
group = existing[gsp_group_code]
|
|
261
|
+
except KeyError:
|
|
262
|
+
group = existing[gsp_group_code] = {}
|
|
242
263
|
|
|
243
|
-
if run not in group:
|
|
244
264
|
group[run] = {"off_taking": off_taking, "delivering": delivering}
|
|
245
265
|
|
|
246
266
|
log_func(
|
{chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/templates/non_core_contract_edit.html
RENAMED
|
@@ -68,8 +68,8 @@ to the 'urls' list. */
|
|
|
68
68
|
{% elif contract.name == 'tlms' %}
|
|
69
69
|
<h4>Example</h4>
|
|
70
70
|
<pre>{
|
|
71
|
-
"enabled": true,
|
|
72
|
-
|
|
71
|
+
"enabled": true,
|
|
72
|
+
}
|
|
73
73
|
|
|
74
74
|
/* Requires the 'elexonportal_scripting_key' to be set in the 'configuration'
|
|
75
75
|
non-core contract */
|
|
@@ -10,7 +10,6 @@ def test_process(sess, mocker):
|
|
|
10
10
|
participant.insert_party(sess, market_role_Z, "non-core", from_date, None, None)
|
|
11
11
|
system_price_properties = {
|
|
12
12
|
"enabled": True,
|
|
13
|
-
"url": "https://example.com",
|
|
14
13
|
}
|
|
15
14
|
rate_script_properties = {"gbp_per_nbp_mwh": {}}
|
|
16
15
|
Contract.insert_non_core(
|
|
@@ -47,11 +46,13 @@ def test_process(sess, mocker):
|
|
|
47
46
|
mock_response.reason = "OK"
|
|
48
47
|
|
|
49
48
|
mock_set_progress = mocker.Mock()
|
|
50
|
-
|
|
49
|
+
scripting_key = "xxx"
|
|
50
|
+
elexon_import(sess, log_f, mock_set_progress, mock_s, scripting_key)
|
|
51
51
|
|
|
52
52
|
assert log == [
|
|
53
53
|
"Starting to check System Prices.",
|
|
54
|
-
"Downloading from
|
|
54
|
+
"Downloading from "
|
|
55
|
+
"https://downloads.elexonportal.co.uk/file/download/BESTVIEWPRICES_FILE?"
|
|
55
56
|
"key=xxx and extracting data from 2001-04-01 01:00",
|
|
56
57
|
"Received 200 OK",
|
|
57
58
|
"Successfully extracted data.",
|
|
@@ -214,5 +214,6 @@ def test_elexon_import(sess, mocker):
|
|
|
214
214
|
lines = [b"", b""]
|
|
215
215
|
mock_response.iter_lines = mocker.Mock(return_value=lines)
|
|
216
216
|
s.get = mocker.Mock(return_value=mock_response)
|
|
217
|
+
scripting_key = mocker.Mock()
|
|
217
218
|
|
|
218
|
-
elexon_import(sess, log, set_progress, s)
|
|
219
|
+
elexon_import(sess, log, set_progress, s, scripting_key)
|
chellow-1706265605.0.0/VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "1706265605.0.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/bill_parsers/activity_mop_stark_xlsx.py
RENAMED
|
File without changes
|
{chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/bill_parsers/annual_mop_stark_xlsx.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{chellow-1706265605.0.0 → chellow-1706691842.0.0}/chellow/e/bill_parsers/settlement_dc_stark_xlsx.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|