uk_bin_collection 0.86.1__tar.gz → 0.87.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.
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/PKG-INFO +1 -1
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/pyproject.toml +1 -1
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/tests/input.json +17 -1
- uk_bin_collection-0.87.0/uk_bin_collection/uk_bin_collection/councils/GloucesterCityCouncil.py +128 -0
- uk_bin_collection-0.87.0/uk_bin_collection/uk_bin_collection/councils/IslingtonCouncil.py +37 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/LICENSE +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/README.md +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/README.rst +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/tests/council_feature_input_parity.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/tests/features/environment.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/tests/features/validate_council_outputs.feature +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/tests/output.schema +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/tests/step_defs/step_helpers/file_handler.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/tests/step_defs/test_validate_council.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/tests/test_collect_data.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/tests/test_common_functions.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/tests/test_conftest.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/tests/test_get_data.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/collect_data.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/common.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/AdurAndWorthingCouncils.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/ArunCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/AylesburyValeCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/BCPCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/BarnetCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/BarnsleyMBCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/BasingstokeCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/BathAndNorthEastSomersetCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/BedfordBoroughCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/BedfordshireCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/BelfastCityCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/BexleyCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/BirminghamCityCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/BlackburnCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/BoltonCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/BracknellForestCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/BradfordMDC.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/BrightonandHoveCityCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/BristolCityCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/BromleyBoroughCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/BroxtoweBoroughCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/BuckinghamshireCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/BuryCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/CalderdaleCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/CannockChaseDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/CardiffCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/CastlepointDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/CharnwoodBoroughCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/ChelmsfordCityCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/CheshireEastCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/CheshireWestAndChesterCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/ChichesterDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/ChorleyCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/ConwyCountyBorough.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/CornwallCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/CrawleyBoroughCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/CroydonCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/DartfordBoroughCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/DerbyshireDalesDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/DoncasterCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/DorsetCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/DoverDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/DurhamCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/EastCambridgeshireCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/EastDevonDC.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/EastLindseyDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/EastRidingCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/EastSuffolkCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/EastleighBoroughCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/EnfieldCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/EnvironmentFirst.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/EppingForestDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/ErewashBoroughCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/FarehamBoroughCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/FenlandDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/ForestOfDeanDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/GatesheadCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/GedlingBoroughCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/GlasgowCityCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/GuildfordCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/HaltonBoroughCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/HaringeyCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/HarrogateBoroughCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/HighPeakCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/HounslowCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/HullCityCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/HuntingdonDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/KingstonUponThamesCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/KirkleesCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/KnowsleyMBCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/LancasterCityCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/LeedsCityCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/LisburnCastlereaghCityCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/LiverpoolCityCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughHounslow.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughRedbridge.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/MaldonDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/MalvernHillsDC.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/ManchesterCityCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/MansfieldDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/MertonCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/MidAndEastAntrimBoroughCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/MidSussexDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/MiltonKeynesCityCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/MoleValleyDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/NeathPortTalbotCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/NewForestCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/NewarkAndSherwoodDC.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/NewcastleCityCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/NewhamCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/NewportCityCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/NorthEastDerbyshireDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/NorthEastLincs.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/NorthKestevenDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/NorthLanarkshireCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/NorthLincolnshireCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/NorthNorfolkDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/NorthNorthamptonshireCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/NorthSomersetCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/NorthTynesideCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/NorthWestLeicestershire.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/NorthYorkshire.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/NorthumberlandCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/NottinghamCityCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/OldhamCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/PortsmouthCityCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/PrestonCityCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/ReadingBoroughCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/ReigateAndBansteadBoroughCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/RenfrewshireCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/RhonddaCynonTaffCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/RochdaleCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/RochfordCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/RotherhamCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/RugbyBoroughCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/RushcliffeBoroughCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/RushmoorCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/SalfordCityCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/SevenoaksDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/SheffieldCityCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/ShropshireCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/SolihullCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/SomersetCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/SouthAyrshireCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/SouthCambridgeshireCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/SouthGloucestershireCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/SouthKestevenDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/SouthLanarkshireCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/SouthNorfolkCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/SouthOxfordshireCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/SouthTynesideCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/StAlbansCityAndDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/StHelensBC.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/StaffordBoroughCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/StaffordshireMoorlandsDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/StockportBoroughCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/StokeOnTrentCityCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/StratfordUponAvonCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/StroudDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/SunderlandCityCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/SwaleBoroughCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/SwanseaCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/TamesideMBCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/TandridgeDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/TelfordAndWrekinCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/TendringDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/TestValleyBoroughCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/ThreeRiversDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/TonbridgeAndMallingBC.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/TorbayCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/TorridgeDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/UttlesfordDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/ValeofGlamorganCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/ValeofWhiteHorseCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/WakefieldCityCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/WalthamForest.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/WarwickDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/WaverleyBoroughCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/WealdenDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/WelhatCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/WestBerkshireCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/WestLindseyDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/WestLothianCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/WestNorthamptonshireCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/WestSuffolkCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/WiganBoroughCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/WiltshireCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/WindsorAndMaidenheadCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/WokingBoroughCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/WychavonDistrictCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/WyreCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/YorkCouncil.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/councils/council_class_template/councilclasstemplate.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/create_new_council.py +0 -0
- {uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/get_bin_data.py +0 -0
@@ -427,6 +427,15 @@
|
|
427
427
|
"wiki_name": "Glasgow City Council",
|
428
428
|
"wiki_note": "Replace XXXXXXXX with UPRN."
|
429
429
|
},
|
430
|
+
"GloucesterCityCouncil": {
|
431
|
+
"house_number": "111",
|
432
|
+
"postcode": "GL2 0RR",
|
433
|
+
"uprn": "100120479507",
|
434
|
+
"skip_get_url": true,
|
435
|
+
"web_driver": "http://selenium:4444",
|
436
|
+
"url": "https://gloucester-self.achieveservice.com/service/Bins___Check_your_bin_day",
|
437
|
+
"wiki_name": "Gloucester City Council"
|
438
|
+
},
|
430
439
|
"GuildfordCouncil": {
|
431
440
|
"house_number": "THE LODGE, PUTTENHAM HILL HOUSE, PUTTENHAM HILL, PUTTENHAM, GUILDFORD, GU3 1AH",
|
432
441
|
"postcode": "GU3 1AH",
|
@@ -490,6 +499,13 @@
|
|
490
499
|
"wiki_name": "Huntingdon District Council",
|
491
500
|
"wiki_note": "Replace XXXXXXXX with UPRN."
|
492
501
|
},
|
502
|
+
"IslingtonCouncil": {
|
503
|
+
"uprn": "5300094897",
|
504
|
+
"url": "https://www.islington.gov.uk/your-area?Postcode=unused&Uprn=5300094897",
|
505
|
+
"wiki_command_url_override": "https://www.islington.gov.uk/your-area?Postcode=unused&Uprn=XXXXXXXX",
|
506
|
+
"wiki_name": "Islington Council",
|
507
|
+
"wiki_note": "Replace XXXXXXXX with UPRN."
|
508
|
+
},
|
493
509
|
"KingstonUponThamesCouncil": {
|
494
510
|
"url": "https://waste-services.kingston.gov.uk/waste/2701097",
|
495
511
|
"wiki_command_url_override": "https://waste-services.kingston.gov.uk/waste/XXXXXXX",
|
@@ -1225,4 +1241,4 @@
|
|
1225
1241
|
"url": "https://waste-api.york.gov.uk/api/Collections/GetBinCollectionDataForUprn/",
|
1226
1242
|
"wiki_name": "York Council"
|
1227
1243
|
}
|
1228
|
-
}
|
1244
|
+
}
|
uk_bin_collection-0.87.0/uk_bin_collection/uk_bin_collection/councils/GloucesterCityCouncil.py
ADDED
@@ -0,0 +1,128 @@
|
|
1
|
+
import time
|
2
|
+
from datetime import datetime
|
3
|
+
|
4
|
+
from bs4 import BeautifulSoup
|
5
|
+
from selenium.webdriver.common.by import By
|
6
|
+
from selenium.webdriver.support import expected_conditions as EC
|
7
|
+
from selenium.webdriver.support.ui import Select
|
8
|
+
from selenium.webdriver.support.wait import WebDriverWait
|
9
|
+
|
10
|
+
from uk_bin_collection.uk_bin_collection.common import *
|
11
|
+
from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass
|
12
|
+
|
13
|
+
# import the wonderful Beautiful Soup and the URL grabber
|
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) -> dict:
|
24
|
+
driver = None
|
25
|
+
try:
|
26
|
+
page = "https://gloucester-self.achieveservice.com/service/Bins___Check_your_bin_day"
|
27
|
+
|
28
|
+
bin_data = {"bins": []}
|
29
|
+
|
30
|
+
user_uprn = kwargs.get("uprn")
|
31
|
+
user_postcode = kwargs.get("postcode")
|
32
|
+
web_driver = kwargs.get("web_driver")
|
33
|
+
headless = kwargs.get("headless")
|
34
|
+
check_uprn(user_uprn)
|
35
|
+
check_postcode(user_postcode)
|
36
|
+
# Create Selenium webdriver
|
37
|
+
driver = create_webdriver(web_driver, headless, None, __name__)
|
38
|
+
driver.get(page)
|
39
|
+
|
40
|
+
cookies_button = WebDriverWait(driver, timeout=15).until(
|
41
|
+
EC.presence_of_element_located((By.ID, "close-cookie-message"))
|
42
|
+
)
|
43
|
+
cookies_button.click()
|
44
|
+
|
45
|
+
without_login_button = WebDriverWait(driver, timeout=15).until(
|
46
|
+
EC.presence_of_element_located(
|
47
|
+
(By.LINK_TEXT, "or, Continue with no account")
|
48
|
+
)
|
49
|
+
)
|
50
|
+
without_login_button.click()
|
51
|
+
|
52
|
+
iframe_presense = WebDriverWait(driver, 30).until(
|
53
|
+
EC.presence_of_element_located((By.ID, "fillform-frame-1"))
|
54
|
+
)
|
55
|
+
|
56
|
+
driver.switch_to.frame(iframe_presense)
|
57
|
+
wait = WebDriverWait(driver, 60)
|
58
|
+
inputElement_postcodesearch = wait.until(
|
59
|
+
EC.element_to_be_clickable((By.NAME, "find_postcode"))
|
60
|
+
)
|
61
|
+
|
62
|
+
inputElement_postcodesearch.send_keys(user_postcode)
|
63
|
+
|
64
|
+
# Wait for the 'Select address' dropdown to be updated
|
65
|
+
time.sleep(2)
|
66
|
+
|
67
|
+
dropdown = wait.until(
|
68
|
+
EC.element_to_be_clickable((By.NAME, "chooseAddress"))
|
69
|
+
)
|
70
|
+
# Create a 'Select' for it, then select the first address in the list
|
71
|
+
# (Index 0 is "Select...")
|
72
|
+
dropdownSelect = Select(dropdown)
|
73
|
+
dropdownSelect.select_by_value(str(user_uprn))
|
74
|
+
|
75
|
+
# Wait for 'Searching for...' to be added to page
|
76
|
+
WebDriverWait(driver, timeout=15).until(
|
77
|
+
EC.text_to_be_present_in_element(
|
78
|
+
(By.CSS_SELECTOR, "span[data-name=html1]"), "Searching"
|
79
|
+
)
|
80
|
+
)
|
81
|
+
|
82
|
+
# Wait for 'Searching for...' to be removed from page
|
83
|
+
WebDriverWait(driver, timeout=15).until(
|
84
|
+
EC.none_of(
|
85
|
+
EC.text_to_be_present_in_element(
|
86
|
+
(By.CSS_SELECTOR, "span[data-name=html1]"), "Searching"
|
87
|
+
)
|
88
|
+
)
|
89
|
+
)
|
90
|
+
|
91
|
+
# Even then it can still be adding data to the page...
|
92
|
+
time.sleep(5)
|
93
|
+
|
94
|
+
soup = BeautifulSoup(driver.page_source, features="html.parser")
|
95
|
+
|
96
|
+
# This is ugly but there is literally no consistency to the HTML
|
97
|
+
def is_a_collection_date(t):
|
98
|
+
return any("Next collection" in c for c in t.children)
|
99
|
+
|
100
|
+
for next_collection in soup.find_all(is_a_collection_date):
|
101
|
+
bin_info = list(
|
102
|
+
next_collection.parent.select_one("div:nth-child(1)").children
|
103
|
+
)
|
104
|
+
if not bin_info:
|
105
|
+
continue
|
106
|
+
bin = bin_info[0].get_text()
|
107
|
+
date = next_collection.select_one("strong").get_text(strip=True)
|
108
|
+
bin_date = datetime.strptime(date, "%d %b %Y")
|
109
|
+
dict_data = {
|
110
|
+
"type": bin,
|
111
|
+
"collectionDate": bin_date.strftime(date_format),
|
112
|
+
}
|
113
|
+
bin_data["bins"].append(dict_data)
|
114
|
+
|
115
|
+
bin_data["bins"].sort(
|
116
|
+
key=lambda x: datetime.strptime(x.get("collectionDate"), "%d/%m/%Y")
|
117
|
+
)
|
118
|
+
|
119
|
+
except Exception as e:
|
120
|
+
# Here you can log the exception if needed
|
121
|
+
print(f"An error occurred: {e}")
|
122
|
+
# Optionally, re-raise the exception if you want it to propagate
|
123
|
+
raise
|
124
|
+
finally:
|
125
|
+
# This block ensures that the driver is closed regardless of an exception
|
126
|
+
if driver:
|
127
|
+
driver.quit()
|
128
|
+
return bin_data
|
@@ -0,0 +1,37 @@
|
|
1
|
+
from bs4 import BeautifulSoup
|
2
|
+
from dateutil.parser import parse
|
3
|
+
|
4
|
+
from uk_bin_collection.uk_bin_collection.common import *
|
5
|
+
from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass
|
6
|
+
|
7
|
+
|
8
|
+
class CouncilClass(AbstractGetBinDataClass):
|
9
|
+
def parse_data(self, page: str, **kwargs) -> dict:
|
10
|
+
uprn = kwargs.get("uprn")
|
11
|
+
check_uprn(uprn)
|
12
|
+
|
13
|
+
api_url = f"https://www.islington.gov.uk/your-area?Postcode=unused&Uprn={uprn}"
|
14
|
+
response = requests.get(api_url)
|
15
|
+
|
16
|
+
soup = BeautifulSoup(response.text, features="html.parser")
|
17
|
+
|
18
|
+
data = {"bins": []}
|
19
|
+
|
20
|
+
waste_table = (
|
21
|
+
soup.find(string="Waste and recycling collections")
|
22
|
+
.find_next("div", class_="m-toggle-content")
|
23
|
+
.find("table")
|
24
|
+
)
|
25
|
+
|
26
|
+
if waste_table:
|
27
|
+
rows = waste_table.find_all("tr")
|
28
|
+
for row in rows:
|
29
|
+
waste_type = row.find("th").text.strip()
|
30
|
+
next_collection = parse(row.find("td").text.strip()).date()
|
31
|
+
|
32
|
+
data['bins'].append({
|
33
|
+
"type": waste_type,
|
34
|
+
"collectionDate": next_collection.strftime(date_format),
|
35
|
+
})
|
36
|
+
|
37
|
+
return data
|
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
|
{uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/tests/test_collect_data.py
RENAMED
File without changes
|
File without changes
|
{uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/tests/test_conftest.py
RENAMED
File without changes
|
{uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/tests/test_get_data.py
RENAMED
File without changes
|
File without changes
|
{uk_bin_collection-0.86.1 → uk_bin_collection-0.87.0}/uk_bin_collection/uk_bin_collection/common.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
|
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
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|