uk_bin_collection 0.134.0__tar.gz → 0.134.2__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/PKG-INFO +1 -1
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/pyproject.toml +1 -1
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/tests/input.json +5 -4
- uk_bin_collection-0.134.2/uk_bin_collection/uk_bin_collection/councils/CheltenhamBoroughCouncil.py +308 -0
- uk_bin_collection-0.134.0/uk_bin_collection/uk_bin_collection/councils/CheltenhamBoroughCouncil.py +0 -102
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/LICENSE +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/README.md +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/README.rst +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/tests/council_feature_input_parity.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/tests/features/environment.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/tests/features/validate_council_outputs.feature +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/tests/output.schema +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/tests/step_defs/step_helpers/file_handler.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/tests/step_defs/test_validate_council.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/tests/test_collect_data.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/tests/test_common_functions.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/tests/test_conftest.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/tests/test_get_data.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/collect_data.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/common.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/AberdeenCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/AberdeenshireCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/AdurAndWorthingCouncils.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/AntrimAndNewtonabbeyCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/ArdsAndNorthDownCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/ArgyllandButeCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/ArmaghBanbridgeCraigavonCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/ArunCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/AshfieldDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/AshfordBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/AylesburyValeCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BCPCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BaberghDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BarnetCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BarnsleyMBCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BasildonCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BasingstokeCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BathAndNorthEastSomersetCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BedfordBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BedfordshireCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BelfastCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BexleyCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BirminghamCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BlabyDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BlackburnCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BlaenauGwentCountyBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BoltonCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BostonBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BracknellForestCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BradfordMDC.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BraintreeDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BrecklandCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BrentCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BrightonandHoveCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BristolCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BromleyBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BromsgroveDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BroxbourneCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BroxtoweBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BuckinghamshireCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BurnleyBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/BuryCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/CalderdaleCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/CannockChaseDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/CanterburyCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/CardiffCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/CarmarthenshireCountyCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/CastlepointDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/CharnwoodBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/ChelmsfordCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/CheshireEastCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/CheshireWestAndChesterCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/ChesterfieldBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/ChichesterDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/ChorleyCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/ColchesterCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/ConwyCountyBorough.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/CopelandBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/CornwallCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/CotswoldDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/CoventryCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/CrawleyBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/CroydonCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/CumberlandAllerdaleCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/CumberlandCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/DacorumBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/DartfordBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/DenbighshireCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/DerbyCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/DerbyshireDalesDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/DoncasterCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/DorsetCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/DoverDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/DudleyCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/DundeeCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/DurhamCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/EalingCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/EastAyrshireCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/EastCambridgeshireCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/EastDevonDC.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/EastHertsCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/EastLindseyDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/EastLothianCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/EastRenfrewshireCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/EastRidingCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/EastStaffordshireBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/EastSuffolkCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/EastleighBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/EdinburghCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/ElmbridgeBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/EnfieldCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/EnvironmentFirst.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/EppingForestDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/ErewashBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/ExeterCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/FalkirkCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/FarehamBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/FenlandDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/FifeCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/FlintshireCountyCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/FolkstoneandHytheDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/ForestOfDeanDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/GatesheadCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/GedlingBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/GlasgowCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/GloucesterCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/GraveshamBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/GuildfordCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/GwyneddCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/HackneyCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/HaltonBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/HarboroughDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/HaringeyCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/HarrogateBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/HartDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/HartlepoolBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/HerefordshireCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/HertsmereBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/HighPeakCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/HighlandCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/HinckleyandBosworthBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/HounslowCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/HullCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/HuntingdonDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/IpswichBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/IslingtonCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/KingsLynnandWestNorfolkBC.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/KingstonUponThamesCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/KirkleesCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/KnowsleyMBCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/LancasterCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/LeedsCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/LeicesterCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/LichfieldDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/LincolnCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/LisburnCastlereaghCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/LiverpoolCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughEaling.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughHarrow.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughHavering.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughHounslow.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughLambeth.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughLewisham.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughOfRichmondUponThames.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughRedbridge.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughSutton.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/LutonBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/MaldonDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/MalvernHillsDC.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/ManchesterCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/MansfieldDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/MedwayCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/MertonCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/MidAndEastAntrimBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/MidDevonCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/MidSuffolkDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/MidSussexDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/MidlothianCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/MiltonKeynesCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/MoleValleyDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/MonmouthshireCountyCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/MorayCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/NeathPortTalbotCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/NewForestCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/NewarkAndSherwoodDC.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/NewcastleCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/NewcastleUnderLymeCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/NewhamCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/NewportCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/NorthAyrshireCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/NorthEastDerbyshireDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/NorthEastLincs.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/NorthHertfordshireDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/NorthKestevenDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/NorthLanarkshireCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/NorthLincolnshireCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/NorthNorfolkDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/NorthNorthamptonshireCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/NorthSomersetCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/NorthTynesideCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/NorthWestLeicestershire.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/NorthYorkshire.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/NorthumberlandCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/NorwichCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/NottinghamCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/NuneatonBedworthBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/OadbyAndWigstonBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/OldhamCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/OxfordCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/PerthAndKinrossCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/PlymouthCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/PortsmouthCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/PowysCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/PrestonCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/ReadingBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/RedditchBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/ReigateAndBansteadBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/RenfrewshireCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/RhonddaCynonTaffCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/RochdaleCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/RochfordCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/RotherDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/RotherhamCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/RoyalBoroughofGreenwich.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/RugbyBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/RushcliffeBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/RushmoorCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/SalfordCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/SandwellBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/SeftonCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/SevenoaksDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/SheffieldCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/ShropshireCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/SolihullCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/SomersetCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/SouthAyrshireCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/SouthCambridgeshireCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/SouthDerbyshireDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/SouthGloucestershireCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/SouthHamsDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/SouthKestevenDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/SouthLanarkshireCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/SouthNorfolkCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/SouthOxfordshireCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/SouthRibbleCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/SouthStaffordshireDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/SouthTynesideCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/SouthwarkCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/StAlbansCityAndDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/StHelensBC.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/StaffordBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/StaffordshireMoorlandsDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/StevenageBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/StockportBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/StocktonOnTeesCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/StokeOnTrentCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/StratfordUponAvonCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/StroudDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/SunderlandCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/SurreyHeathBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/SwaleBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/SwanseaCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/SwindonBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/TamesideMBCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/TandridgeDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/TeignbridgeCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/TelfordAndWrekinCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/TendringDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/TestValleyBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/ThanetDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/ThreeRiversDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/ThurrockCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/TonbridgeAndMallingBC.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/TorbayCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/TorridgeDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/TunbridgeWellsCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/UttlesfordDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/ValeofGlamorganCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/ValeofWhiteHorseCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WakefieldCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WalsallCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WalthamForest.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WandsworthCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WarringtonBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WarwickDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WatfordBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WaverleyBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WealdenDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WelhatCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WestBerkshireCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WestDunbartonshireCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WestLancashireBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WestLindseyDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WestLothianCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WestMorlandAndFurness.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WestNorthamptonshireCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WestOxfordshireDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WestSuffolkCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WiganBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WiltshireCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WinchesterCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WindsorAndMaidenheadCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WirralCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WokingBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WokinghamBoroughCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WolverhamptonCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WorcesterCityCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WychavonDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WyreCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/WyreForestDistrictCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/YorkCouncil.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/councils/council_class_template/councilclasstemplate.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/create_new_council.py +0 -0
- {uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/uk_bin_collection/get_bin_data.py +0 -0
@@ -383,12 +383,12 @@
|
|
383
383
|
"wiki_note": "Follow the instructions [here](https://www.chelmsford.gov.uk/myhome/) until you get the page listing your address, then copy the entire address text and use that in the house number field."
|
384
384
|
},
|
385
385
|
"CheltenhamBoroughCouncil": {
|
386
|
-
"
|
387
|
-
"postcode": "
|
386
|
+
"uprn": "100120372027",
|
387
|
+
"postcode": "GL51 3NA",
|
388
388
|
"skip_get_url": true,
|
389
389
|
"url": "https://www.cheltenham.gov.uk",
|
390
390
|
"wiki_name": "Cheltenham Borough Council",
|
391
|
-
"wiki_note": "
|
391
|
+
"wiki_note": "Pass the UPRN. You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search)."
|
392
392
|
},
|
393
393
|
"CheshireEastCouncil": {
|
394
394
|
"url": "https://online.cheshireeast.gov.uk/MyCollectionDay/SearchByAjax/GetBartecJobList?uprn=100012791226&onelineaddress=3%20COBBLERS%20YARD,%20SK9%207DZ&_=1689413260149",
|
@@ -609,6 +609,7 @@
|
|
609
609
|
"house_number": "1",
|
610
610
|
"postcode": "CM20 2FZ",
|
611
611
|
"skip_get_url": true,
|
612
|
+
"web_driver": "http://selenium:4444",
|
612
613
|
"url": "https://www.eastherts.gov.uk",
|
613
614
|
"wiki_name": "East Herts Council",
|
614
615
|
"wiki_note": "Pass the house number and postcode in their respective parameters."
|
@@ -2173,4 +2174,4 @@
|
|
2173
2174
|
"wiki_name": "York Council",
|
2174
2175
|
"wiki_note": "Provide your UPRN."
|
2175
2176
|
}
|
2176
|
-
}
|
2177
|
+
}
|
uk_bin_collection-0.134.2/uk_bin_collection/uk_bin_collection/councils/CheltenhamBoroughCouncil.py
ADDED
@@ -0,0 +1,308 @@
|
|
1
|
+
# import re
|
2
|
+
|
3
|
+
import requests
|
4
|
+
|
5
|
+
from uk_bin_collection.uk_bin_collection.common import (
|
6
|
+
check_postcode,
|
7
|
+
check_uprn,
|
8
|
+
datetime,
|
9
|
+
get_dates_every_x_days,
|
10
|
+
json,
|
11
|
+
timedelta,
|
12
|
+
)
|
13
|
+
from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass
|
14
|
+
|
15
|
+
|
16
|
+
class CouncilClass(AbstractGetBinDataClass):
|
17
|
+
"""
|
18
|
+
Concrete classes have to implement all abstract operations of the
|
19
|
+
base class. They can also override some operations with a default
|
20
|
+
implementation.
|
21
|
+
"""
|
22
|
+
|
23
|
+
def parse_data(self, page: str, **kwargs: str) -> dict[str, list[dict[str, str]]]:
|
24
|
+
if (postcode := kwargs.get("postcode")) is None:
|
25
|
+
raise KeyError("Missing: postcode")
|
26
|
+
if (uprn := kwargs.get("uprn")) is None:
|
27
|
+
raise KeyError("Missing: uprn")
|
28
|
+
check_postcode(postcode)
|
29
|
+
check_uprn(uprn)
|
30
|
+
bindata: dict[str, list[dict[str, str]]] = {"bins": []}
|
31
|
+
location_x: int = 0
|
32
|
+
location_y: int = 0
|
33
|
+
location_usrn: str = ""
|
34
|
+
|
35
|
+
# Ensure any cookies set are maintained in a requests session
|
36
|
+
s = requests.session()
|
37
|
+
|
38
|
+
# Ask for a new SessionId from the server
|
39
|
+
session_id_url = "https://maps.cheltenham.gov.uk/map/Aurora.svc/"\
|
40
|
+
"RequestSession?userName=guest+CBC&password=&"\
|
41
|
+
"script=%5CAurora%5CCBC+Waste+Streets.AuroraScript%24"
|
42
|
+
session_id_response = s.get(session_id_url)
|
43
|
+
session_id_response.raise_for_status()
|
44
|
+
session_id = session_id_response.json().get("Session").get("SessionId")
|
45
|
+
|
46
|
+
# Ask what tasks we can do within the session
|
47
|
+
tasks_url = f"https://maps.cheltenham.gov.uk/map/Aurora.svc/"\
|
48
|
+
f"GetWorkflow?sessionId={session_id}&workflowId=wastestreet"
|
49
|
+
tasks_response = s.get(tasks_url)
|
50
|
+
tasks_response.raise_for_status()
|
51
|
+
# JSON response contained a BOM marker
|
52
|
+
tasks = json.loads(tasks_response.text[1:])
|
53
|
+
retrieve_results_task_id, initialise_map_task_id, drilldown_task_id = None, None, None
|
54
|
+
# Pull out the ID's of the tasks we will need
|
55
|
+
for task in tasks.get("Tasks"):
|
56
|
+
if task.get("$type") == "StatMap.Aurora.FetchResultSetTask, StatMapService":
|
57
|
+
retrieve_results_task_id = task.get("Id")
|
58
|
+
elif task.get("$type") == "StatMap.Aurora.SaveStateTask, StatMapService":
|
59
|
+
initialise_map_task_id = task.get("Id")
|
60
|
+
elif task.get("$type") == "StatMap.Aurora.DrillDownTask, StatMapService":
|
61
|
+
drilldown_task_id = task.get("Id")
|
62
|
+
if not all([retrieve_results_task_id, initialise_map_task_id, drilldown_task_id]):
|
63
|
+
raise ValueError("Not all task ID's found")
|
64
|
+
|
65
|
+
# Find the X / Y coordinates for the requested postcode
|
66
|
+
postcode_search_url = "https://maps.cheltenham.gov.uk/map/Aurora.svc/FindLocation?"\
|
67
|
+
f"sessionId={session_id}&address={postcode}&limit=1000"
|
68
|
+
postcode_search_response = s.get(postcode_search_url)
|
69
|
+
postcode_search_response.raise_for_status()
|
70
|
+
if len(locations_list := postcode_search_response.json().get("Locations")) == 0:
|
71
|
+
raise ValueError("Address locations empty")
|
72
|
+
for location in locations_list:
|
73
|
+
location_search_url = "https://maps.cheltenham.gov.uk/map/Aurora.svc/FindLocation?"\
|
74
|
+
f"sessionId={session_id}&locationId={location.get('Id')}"
|
75
|
+
location_search_response = s.get(location_search_url)
|
76
|
+
location_search_response.raise_for_status()
|
77
|
+
if not (location_list := location_search_response.json().get("Locations")):
|
78
|
+
raise KeyError("Locations wasn't present in results")
|
79
|
+
if not (location_detail := location_list[0].get("Details")):
|
80
|
+
raise KeyError("Details wasn't present in location")
|
81
|
+
location_uprn = [detail.get(
|
82
|
+
"Value") for detail in location_detail if detail.get("Name") == "UPRN"][0]
|
83
|
+
if str(location_uprn) == uprn:
|
84
|
+
location_usrn = str([detail.get(
|
85
|
+
"Value") for detail in location_detail if detail.get("Name") == "USRN"][0])
|
86
|
+
location_x = location_list[0].get("X")
|
87
|
+
location_y = location_list[0].get("Y")
|
88
|
+
break
|
89
|
+
|
90
|
+
# Needed to initialise the server to allow follow on call
|
91
|
+
open_map_url = "https://maps.cheltenham.gov.uk/map/Aurora.svc/OpenScriptMap?"\
|
92
|
+
f"sessionId={session_id}"
|
93
|
+
if res := s.get(open_map_url):
|
94
|
+
res.raise_for_status()
|
95
|
+
|
96
|
+
# Needed to initialise the server to allow follow on call
|
97
|
+
save_state_map_url = "https://maps.cheltenham.gov.uk/map/Aurora.svc/ExecuteTaskJob?"\
|
98
|
+
f"sessionId={session_id}&taskId={initialise_map_task_id}&job="\
|
99
|
+
"%7BTask%3A+%7B+%24type%3A+%27StatMap.Aurora.SaveStateTask%2C"\
|
100
|
+
"+StatMapService%27+%7D%7D"
|
101
|
+
if res := s.get(save_state_map_url):
|
102
|
+
res.raise_for_status()
|
103
|
+
|
104
|
+
# Start search for address given by x / y coord
|
105
|
+
drilldown_map_url = "https://maps.cheltenham.gov.uk/map/Aurora.svc/ExecuteTaskJob?"\
|
106
|
+
f"sessionId={session_id}&taskId={drilldown_task_id}&job=%7B%22"\
|
107
|
+
f"QueryX%22%3A{location_x}%2C%22QueryY%22%3A{location_y}%2C%22"\
|
108
|
+
"Task%22%3A%7B%22Type%22%3A%22StatMap.Aurora.DrillDownTask%2C"\
|
109
|
+
"+StatMapService%22%7D%7D"
|
110
|
+
if res := s.get(drilldown_map_url):
|
111
|
+
res.raise_for_status()
|
112
|
+
|
113
|
+
# Get results from search for address given by x / y coord
|
114
|
+
address_details_url = "https://maps.cheltenham.gov.uk/map/Aurora.svc/ExecuteTaskJob?"\
|
115
|
+
f"sessionId={session_id}&taskId={retrieve_results_task_id}"\
|
116
|
+
f"&job=%7B%22QueryX%22%3A{location_x}%2C%22QueryY%22%3A"\
|
117
|
+
f"{location_y}%2C%22Task%22%3A%7B%22Type%22%3A%22"\
|
118
|
+
"StatMap.Aurora.FetchResultSetTask%2C+StatMapService"\
|
119
|
+
"%22%2C%22ResultSetName%22%3A%22inspection%22%7D%7D"
|
120
|
+
address_details_response = s.get(address_details_url)
|
121
|
+
address_details_response.raise_for_status()
|
122
|
+
# JSON response contained a BOM marker, skip first character
|
123
|
+
address_details = json.loads(address_details_response.text[1:])
|
124
|
+
if not (task_results := address_details.get("TaskResult")):
|
125
|
+
raise KeyError("TaskResult wasn't present in results")
|
126
|
+
if not (distance_export_set := task_results.get("DistanceOrderedSet")):
|
127
|
+
raise KeyError("DistanceOrderedSet wasn't present in TaskResult")
|
128
|
+
if not (result_set := distance_export_set.get("ResultSet")):
|
129
|
+
raise KeyError("ResultSet wasn't present in DistanceOrderedSet")
|
130
|
+
if not (result_tables := result_set.get("Tables")):
|
131
|
+
raise KeyError("Tables wasn't present in ResultSet")
|
132
|
+
result = result_tables[0]
|
133
|
+
column_names: dict[int, str] = {}
|
134
|
+
result_dict: dict[str, str | int] = {}
|
135
|
+
for column in result.get("ColumnDefinitions"):
|
136
|
+
column_names[column.get("ColumnIndex")] = column.get("ColumnName")
|
137
|
+
for r in result.get("Records"):
|
138
|
+
result_dict: dict[str, str | int] = {}
|
139
|
+
for idx, column_value in enumerate(r):
|
140
|
+
if not (column_name := column_names.get(idx)):
|
141
|
+
raise IndexError("Column index out of range")
|
142
|
+
result_dict[column_name.upper()] = column_value
|
143
|
+
# Validate the street against the USRN. Some locations can return multiple results.
|
144
|
+
# Break on first match of USRN
|
145
|
+
# TODO: Need to select the correct option out of all available options
|
146
|
+
if location_usrn == str(result_dict.get("USRN")):
|
147
|
+
break
|
148
|
+
|
149
|
+
refuse_week, recycling_week, garden_week = 0, 0, 0
|
150
|
+
# After we've got the correct result, pull out the week number each bin type is taken on
|
151
|
+
if (refuse_week_raw := result_dict.get("New_Refuse_Week".upper())) is not None:
|
152
|
+
refuse_week = int(refuse_week_raw)
|
153
|
+
if (recycling_week_raw := result_dict.get("New_Recycling_Week".upper())) is not None:
|
154
|
+
recycling_week = int(recycling_week_raw)
|
155
|
+
if (garden_week_raw := result_dict.get("Garden_Bin_Week".upper())) is not None:
|
156
|
+
garden_week = int(garden_week_raw)
|
157
|
+
|
158
|
+
if not all([refuse_week, recycling_week, garden_week]):
|
159
|
+
raise KeyError("Not all week numbers found")
|
160
|
+
|
161
|
+
days_of_week = [
|
162
|
+
"MON",
|
163
|
+
"TUE",
|
164
|
+
"WED",
|
165
|
+
"THU",
|
166
|
+
"FRI",
|
167
|
+
"SAT",
|
168
|
+
"SUN",
|
169
|
+
]
|
170
|
+
|
171
|
+
refuse_day_offset = days_of_week.index(
|
172
|
+
str(result_dict.get("New_Refuse_Day_internal".upper())).upper())
|
173
|
+
recycling_day_offset = days_of_week.index(
|
174
|
+
str(result_dict.get("New_Recycling_Day".upper())).upper())
|
175
|
+
garden_day_offset = days_of_week.index(
|
176
|
+
str(result_dict.get("New_Garden_Day".upper())).upper())
|
177
|
+
food_day_offset = days_of_week.index(
|
178
|
+
str(result_dict.get("New_Food_Day".upper())).upper())
|
179
|
+
|
180
|
+
# Initialise WEEK-1/WEEK-2 based on known details
|
181
|
+
week_1_epoch = datetime(2025, 1, 13)
|
182
|
+
|
183
|
+
# Start of this week
|
184
|
+
this_week = datetime.now() - timedelta(days=datetime.now().weekday())
|
185
|
+
|
186
|
+
# If there's an even number of weeks between the week-1
|
187
|
+
# epoch and this week, then this week is of type week-1
|
188
|
+
if (((this_week - week_1_epoch).days // 7)) % 2 == 0:
|
189
|
+
week = {
|
190
|
+
1: this_week,
|
191
|
+
2: this_week + timedelta(days=7)
|
192
|
+
}
|
193
|
+
else:
|
194
|
+
week = {
|
195
|
+
1: this_week - timedelta(days=7),
|
196
|
+
2: this_week
|
197
|
+
}
|
198
|
+
|
199
|
+
refuse_dates: list[str] = get_dates_every_x_days(
|
200
|
+
week[refuse_week], 14, 28)
|
201
|
+
recycling_dates: list[str] = get_dates_every_x_days(
|
202
|
+
week[recycling_week], 14, 28)
|
203
|
+
garden_dates: list[str] = get_dates_every_x_days(
|
204
|
+
week[garden_week], 14, 28)
|
205
|
+
|
206
|
+
for refuse_date in refuse_dates:
|
207
|
+
collection_date = (
|
208
|
+
datetime.strptime(refuse_date, "%d/%m/%Y") +
|
209
|
+
timedelta(days=refuse_day_offset)
|
210
|
+
).strftime("%d/%m/%Y")
|
211
|
+
|
212
|
+
dict_data = {
|
213
|
+
"type": "Refuse Bin",
|
214
|
+
"collectionDate": collection_date,
|
215
|
+
}
|
216
|
+
bindata["bins"].append(dict_data)
|
217
|
+
|
218
|
+
for recycling_date in recycling_dates:
|
219
|
+
|
220
|
+
collection_date = (
|
221
|
+
datetime.strptime(recycling_date, "%d/%m/%Y") +
|
222
|
+
timedelta(days=recycling_day_offset)
|
223
|
+
).strftime("%d/%m/%Y")
|
224
|
+
|
225
|
+
dict_data = {
|
226
|
+
"type": "Recycling Bin",
|
227
|
+
"collectionDate": collection_date,
|
228
|
+
}
|
229
|
+
bindata["bins"].append(dict_data)
|
230
|
+
|
231
|
+
for garden_date in garden_dates:
|
232
|
+
|
233
|
+
collection_date = (
|
234
|
+
datetime.strptime(garden_date, "%d/%m/%Y") +
|
235
|
+
timedelta(days=garden_day_offset)
|
236
|
+
).strftime("%d/%m/%Y")
|
237
|
+
|
238
|
+
dict_data = {
|
239
|
+
"type": "Garden Waste Bin",
|
240
|
+
"collectionDate": collection_date,
|
241
|
+
}
|
242
|
+
bindata["bins"].append(dict_data)
|
243
|
+
|
244
|
+
if ((food_waste_week := str(result_dict.get("FOOD_WASTE_WEEK_EXTERNAL", "")).upper())
|
245
|
+
== "weekly".upper()):
|
246
|
+
food_dates: list[str] = get_dates_every_x_days(week[1], 7, 56)
|
247
|
+
|
248
|
+
for food_date in food_dates:
|
249
|
+
|
250
|
+
collection_date = (
|
251
|
+
datetime.strptime(food_date, "%d/%m/%Y") +
|
252
|
+
timedelta(days=food_day_offset)
|
253
|
+
).strftime("%d/%m/%Y")
|
254
|
+
|
255
|
+
dict_data = {
|
256
|
+
"type": "Food Waste Bin",
|
257
|
+
"collectionDate": collection_date,
|
258
|
+
}
|
259
|
+
bindata["bins"].append(dict_data)
|
260
|
+
# Sometimes the food bin is collected on different days between
|
261
|
+
# week-1 and week-2
|
262
|
+
else:
|
263
|
+
first_week: str | int
|
264
|
+
second_week_detail: str
|
265
|
+
first_week, _, second_week_detail = food_waste_week.partition("&")
|
266
|
+
first_week = int(first_week.strip())
|
267
|
+
|
268
|
+
second_week_day, _, second_week_number = second_week_detail.partition(
|
269
|
+
"WEEK")
|
270
|
+
second_week_number = int(second_week_number.strip())
|
271
|
+
second_week_day: str = second_week_day.strip()[:3]
|
272
|
+
|
273
|
+
food_dates_first: list[str] = get_dates_every_x_days(
|
274
|
+
week[first_week], 14, 28)
|
275
|
+
food_dates_second: list[str] = get_dates_every_x_days(
|
276
|
+
week[second_week_number], 14, 28)
|
277
|
+
second_week_offset = days_of_week.index(second_week_day)
|
278
|
+
|
279
|
+
for food_date in food_dates_first:
|
280
|
+
|
281
|
+
collection_date = (
|
282
|
+
datetime.strptime(food_date, "%d/%m/%Y") +
|
283
|
+
timedelta(days=food_day_offset)
|
284
|
+
).strftime("%d/%m/%Y")
|
285
|
+
|
286
|
+
dict_data = {
|
287
|
+
"type": "Food Waste Bin",
|
288
|
+
"collectionDate": collection_date,
|
289
|
+
}
|
290
|
+
bindata["bins"].append(dict_data)
|
291
|
+
for food_date in food_dates_second:
|
292
|
+
|
293
|
+
collection_date = (
|
294
|
+
datetime.strptime(food_date, "%d/%m/%Y") +
|
295
|
+
timedelta(days=second_week_offset)
|
296
|
+
).strftime("%d/%m/%Y")
|
297
|
+
|
298
|
+
dict_data = {
|
299
|
+
"type": "Food Waste Bin",
|
300
|
+
"collectionDate": collection_date,
|
301
|
+
}
|
302
|
+
bindata["bins"].append(dict_data)
|
303
|
+
|
304
|
+
bindata["bins"].sort(
|
305
|
+
key=lambda x: datetime.strptime(
|
306
|
+
x.get("collectionDate", ""), "%d/%m/%Y")
|
307
|
+
)
|
308
|
+
return bindata
|
uk_bin_collection-0.134.0/uk_bin_collection/uk_bin_collection/councils/CheltenhamBoroughCouncil.py
DELETED
@@ -1,102 +0,0 @@
|
|
1
|
-
import re
|
2
|
-
import time
|
3
|
-
|
4
|
-
import requests
|
5
|
-
from bs4 import BeautifulSoup
|
6
|
-
from selenium.webdriver.common.by import By
|
7
|
-
from selenium.webdriver.support import expected_conditions as EC
|
8
|
-
from selenium.webdriver.support.ui import Select
|
9
|
-
from selenium.webdriver.support.wait import WebDriverWait
|
10
|
-
|
11
|
-
from uk_bin_collection.uk_bin_collection.common import *
|
12
|
-
from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass
|
13
|
-
|
14
|
-
|
15
|
-
# import the wonderful Beautiful Soup and the URL grabber
|
16
|
-
class CouncilClass(AbstractGetBinDataClass):
|
17
|
-
"""
|
18
|
-
Concrete classes have to implement all abstract operations of the
|
19
|
-
base class. They can also override some operations with a default
|
20
|
-
implementation.
|
21
|
-
"""
|
22
|
-
|
23
|
-
def parse_data(self, page: str, **kwargs) -> dict:
|
24
|
-
|
25
|
-
collection_day = kwargs.get("paon")
|
26
|
-
collection_week = kwargs.get("postcode")
|
27
|
-
bindata = {"bins": []}
|
28
|
-
|
29
|
-
days_of_week = [
|
30
|
-
"Monday",
|
31
|
-
"Tuesday",
|
32
|
-
"Wednesday",
|
33
|
-
"Thursday",
|
34
|
-
"Friday",
|
35
|
-
"Saturday",
|
36
|
-
"Sunday",
|
37
|
-
]
|
38
|
-
|
39
|
-
week = ["Week 1", "Week 2"]
|
40
|
-
|
41
|
-
offset_days = days_of_week.index(collection_day)
|
42
|
-
collection_week = week.index(collection_week)
|
43
|
-
|
44
|
-
if collection_week == 0:
|
45
|
-
refusestartDate = datetime(2024, 11, 25)
|
46
|
-
recyclingstartDate = datetime(2024, 11, 18)
|
47
|
-
else:
|
48
|
-
refusestartDate = datetime(2024, 11, 18)
|
49
|
-
recyclingstartDate = datetime(2024, 11, 25)
|
50
|
-
|
51
|
-
refuse_dates = get_dates_every_x_days(refusestartDate, 14, 28)
|
52
|
-
recycling_dates = get_dates_every_x_days(recyclingstartDate, 14, 28)
|
53
|
-
food_dates = get_dates_every_x_days(recyclingstartDate, 7, 56)
|
54
|
-
|
55
|
-
for refuseDate in refuse_dates:
|
56
|
-
|
57
|
-
collection_date = (
|
58
|
-
datetime.strptime(refuseDate, "%d/%m/%Y") + timedelta(days=offset_days)
|
59
|
-
).strftime("%d/%m/%Y")
|
60
|
-
|
61
|
-
dict_data = {
|
62
|
-
"type": "Refuse Bin",
|
63
|
-
"collectionDate": collection_date,
|
64
|
-
}
|
65
|
-
bindata["bins"].append(dict_data)
|
66
|
-
|
67
|
-
for recyclingDate in recycling_dates:
|
68
|
-
|
69
|
-
collection_date = (
|
70
|
-
datetime.strptime(recyclingDate, "%d/%m/%Y")
|
71
|
-
+ timedelta(days=offset_days)
|
72
|
-
).strftime("%d/%m/%Y")
|
73
|
-
|
74
|
-
dict_data = {
|
75
|
-
"type": "Recycling Bin",
|
76
|
-
"collectionDate": collection_date,
|
77
|
-
}
|
78
|
-
bindata["bins"].append(dict_data)
|
79
|
-
|
80
|
-
dict_data = {
|
81
|
-
"type": "Garden Waste Bin",
|
82
|
-
"collectionDate": collection_date,
|
83
|
-
}
|
84
|
-
bindata["bins"].append(dict_data)
|
85
|
-
|
86
|
-
for food_date in food_dates:
|
87
|
-
|
88
|
-
collection_date = (
|
89
|
-
datetime.strptime(food_date, "%d/%m/%Y") + timedelta(days=offset_days)
|
90
|
-
).strftime("%d/%m/%Y")
|
91
|
-
|
92
|
-
dict_data = {
|
93
|
-
"type": "Food Waste Bin",
|
94
|
-
"collectionDate": collection_date,
|
95
|
-
}
|
96
|
-
bindata["bins"].append(dict_data)
|
97
|
-
|
98
|
-
bindata["bins"].sort(
|
99
|
-
key=lambda x: datetime.strptime(x.get("collectionDate"), "%d/%m/%Y")
|
100
|
-
)
|
101
|
-
|
102
|
-
return bindata
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/tests/output.schema
RENAMED
File without changes
|
File without changes
|
File without changes
|
{uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/tests/test_collect_data.py
RENAMED
File without changes
|
File without changes
|
{uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/tests/test_conftest.py
RENAMED
File without changes
|
{uk_bin_collection-0.134.0 → uk_bin_collection-0.134.2}/uk_bin_collection/tests/test_get_data.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
|
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
|
File without changes
|
File without changes
|
File without changes
|