uk_bin_collection 0.92.0__tar.gz → 0.94.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.92.0 → uk_bin_collection-0.94.0}/PKG-INFO +17 -12
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/README.md +16 -11
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/pyproject.toml +1 -1
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/tests/input.json +45 -7
- uk_bin_collection-0.94.0/uk_bin_collection/uk_bin_collection/councils/BasildonCouncil.py +81 -0
- uk_bin_collection-0.94.0/uk_bin_collection/uk_bin_collection/councils/BuckinghamshireCouncil.py +115 -0
- uk_bin_collection-0.94.0/uk_bin_collection/uk_bin_collection/councils/DacorumBoroughCouncil.py +102 -0
- uk_bin_collection-0.94.0/uk_bin_collection/uk_bin_collection/councils/LondonBoroughLambeth.py +54 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/NeathPortTalbotCouncil.py +38 -32
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/RochfordCouncil.py +2 -1
- uk_bin_collection-0.94.0/uk_bin_collection/uk_bin_collection/councils/WinchesterCityCouncil.py +114 -0
- uk_bin_collection-0.94.0/uk_bin_collection/uk_bin_collection/councils/WokinghamBoroughCouncil.py +99 -0
- uk_bin_collection-0.92.0/uk_bin_collection/uk_bin_collection/councils/BuckinghamshireCouncil.py +0 -98
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/LICENSE +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/README.rst +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/tests/council_feature_input_parity.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/tests/features/environment.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/tests/features/validate_council_outputs.feature +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/tests/output.schema +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/tests/step_defs/step_helpers/file_handler.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/tests/step_defs/test_validate_council.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/tests/test_collect_data.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/tests/test_common_functions.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/tests/test_conftest.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/tests/test_get_data.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/collect_data.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/common.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/AdurAndWorthingCouncils.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/ArunCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/AylesburyValeCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/BCPCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/BarnetCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/BarnsleyMBCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/BasingstokeCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/BathAndNorthEastSomersetCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/BedfordBoroughCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/BedfordshireCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/BelfastCityCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/BexleyCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/BirminghamCityCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/BlackburnCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/BoltonCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/BracknellForestCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/BradfordMDC.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/BrightonandHoveCityCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/BristolCityCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/BromleyBoroughCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/BroxtoweBoroughCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/BuryCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/CalderdaleCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/CannockChaseDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/CardiffCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/CastlepointDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/CharnwoodBoroughCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/ChelmsfordCityCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/CheshireEastCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/CheshireWestAndChesterCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/ChichesterDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/ChorleyCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/ColchesterCityCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/ConwyCountyBorough.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/CornwallCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/CrawleyBoroughCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/CroydonCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/DartfordBoroughCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/DerbyshireDalesDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/DoncasterCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/DorsetCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/DoverDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/DurhamCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/EalingCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/EastCambridgeshireCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/EastDevonDC.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/EastLindseyDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/EastRenfrewshireCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/EastRidingCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/EastSuffolkCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/EastleighBoroughCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/EnfieldCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/EnvironmentFirst.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/EppingForestDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/ErewashBoroughCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/FarehamBoroughCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/FenlandDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/ForestOfDeanDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/GatesheadCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/GedlingBoroughCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/GlasgowCityCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/GloucesterCityCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/GuildfordCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/HaltonBoroughCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/HaringeyCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/HarrogateBoroughCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/HighPeakCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/HounslowCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/HullCityCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/HuntingdonDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/IslingtonCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/KingstonUponThamesCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/KirkleesCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/KnowsleyMBCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/LancasterCityCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/LeedsCityCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/LisburnCastlereaghCityCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/LiverpoolCityCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughHounslow.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughRedbridge.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/MaldonDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/MalvernHillsDC.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/ManchesterCityCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/MansfieldDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/MertonCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/MidAndEastAntrimBoroughCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/MidSussexDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/MiltonKeynesCityCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/MoleValleyDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/NewForestCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/NewarkAndSherwoodDC.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/NewcastleCityCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/NewhamCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/NewportCityCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/NorthEastDerbyshireDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/NorthEastLincs.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/NorthKestevenDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/NorthLanarkshireCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/NorthLincolnshireCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/NorthNorfolkDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/NorthNorthamptonshireCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/NorthSomersetCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/NorthTynesideCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/NorthWestLeicestershire.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/NorthYorkshire.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/NorthumberlandCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/NottinghamCityCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/OldhamCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/PortsmouthCityCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/PrestonCityCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/ReadingBoroughCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/ReigateAndBansteadBoroughCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/RenfrewshireCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/RhonddaCynonTaffCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/RochdaleCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/RotherhamCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/RugbyBoroughCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/RushcliffeBoroughCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/RushmoorCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/SalfordCityCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/SevenoaksDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/SheffieldCityCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/ShropshireCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/SolihullCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/SomersetCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/SouthAyrshireCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/SouthCambridgeshireCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/SouthGloucestershireCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/SouthKestevenDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/SouthLanarkshireCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/SouthNorfolkCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/SouthOxfordshireCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/SouthTynesideCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/StAlbansCityAndDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/StHelensBC.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/StaffordBoroughCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/StaffordshireMoorlandsDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/StockportBoroughCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/StokeOnTrentCityCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/StratfordUponAvonCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/StroudDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/SunderlandCityCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/SwaleBoroughCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/SwanseaCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/TamesideMBCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/TandridgeDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/TelfordAndWrekinCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/TendringDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/TestValleyBoroughCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/ThreeRiversDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/TonbridgeAndMallingBC.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/TorbayCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/TorridgeDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/UttlesfordDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/ValeofGlamorganCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/ValeofWhiteHorseCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/WakefieldCityCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/WalthamForest.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/WarwickDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/WaverleyBoroughCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/WealdenDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/WelhatCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/WestBerkshireCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/WestLindseyDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/WestLothianCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/WestNorthamptonshireCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/WestSuffolkCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/WiganBoroughCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/WiltshireCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/WindsorAndMaidenheadCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/WokingBoroughCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/WychavonDistrictCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/WyreCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/YorkCouncil.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/councils/council_class_template/councilclasstemplate.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/create_new_council.py +0 -0
- {uk_bin_collection-0.92.0 → uk_bin_collection-0.94.0}/uk_bin_collection/uk_bin_collection/get_bin_data.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: uk_bin_collection
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.94.0
|
4
4
|
Summary: Python Lib to collect UK Bin Data
|
5
5
|
Author: Robert Bradley
|
6
6
|
Author-email: robbrad182@gmail.com
|
@@ -53,6 +53,21 @@ Most scripts make use of [Beautiful Soup 4](https://pypi.org/project/beautifulso
|
|
53
53
|
|
54
54
|
---
|
55
55
|
|
56
|
+
## Requesting your council
|
57
|
+
> :warning: Please check that a request for your council has not already been made. You can do this by searching on the [Issues](https://github.com/robbrad/UKBinCollectionData/issues) page.
|
58
|
+
|
59
|
+
If an issue already exists, please comment on that issue to express your interest. Please do not open a new issue, as it will be closed as a duplicate.
|
60
|
+
|
61
|
+
If an issue does not already exist, please fill in a new [Council Request](https://github.com/robbrad/UKBinCollectionData/issues/new/choose) form, including as much information as possible, including:
|
62
|
+
- Name of the council
|
63
|
+
- URL to bin collections
|
64
|
+
- An example postcode and/or UPRN (whichever is relevant)
|
65
|
+
- Any further information
|
66
|
+
|
67
|
+
Please be aware that this project is run by volunteer contributors and completion depends on numerous factors - even with a request, we cannot guarantee if/when your council will get added.
|
68
|
+
|
69
|
+
---
|
70
|
+
|
56
71
|
## Home Assistant Usage
|
57
72
|
|
58
73
|
### Install with HACS (recommended)
|
@@ -255,17 +270,6 @@ docker pull selenium/standalone-chrome docker run -d -p 4444:4444 --name seleniu
|
|
255
270
|
|
256
271
|
---
|
257
272
|
|
258
|
-
## Requesting your council
|
259
|
-
To make a request for your council, first check the [Issues](https://github.com/robbrad/UKBinCollectionData/issues) page to make sure it has not already been requested. If not, please fill in a new [Council Request](https://github.com/robbrad/UKBinCollectionData/issues/new/choose) form, including as much information as possible, including:
|
260
|
-
- Name of the council
|
261
|
-
- URL to bin collections
|
262
|
-
- An example postcode and/or UPRN (whichever is relevant)
|
263
|
-
- Any further information
|
264
|
-
|
265
|
-
Please be aware that this project is run by volunteer contributors and completion depends on numerous factors - even with a request, we cannot guarantee if/when your council will get a script.
|
266
|
-
|
267
|
-
---
|
268
|
-
|
269
273
|
## Reports
|
270
274
|
|
271
275
|
- [3.11](https://robbrad.github.io/UKBinCollectionData/3.11/)
|
@@ -371,3 +375,4 @@ Contributions are always welcome! See ```CONTRIBUTING.md``` to get started. Plea
|
|
371
375
|
<img src="https://contrib.rocks/image?repo=robbrad/UKBinCollectionData" alt="Image of contributors"/>
|
372
376
|
</a>
|
373
377
|
|
378
|
+
|
@@ -30,6 +30,21 @@ Most scripts make use of [Beautiful Soup 4](https://pypi.org/project/beautifulso
|
|
30
30
|
|
31
31
|
---
|
32
32
|
|
33
|
+
## Requesting your council
|
34
|
+
> :warning: Please check that a request for your council has not already been made. You can do this by searching on the [Issues](https://github.com/robbrad/UKBinCollectionData/issues) page.
|
35
|
+
|
36
|
+
If an issue already exists, please comment on that issue to express your interest. Please do not open a new issue, as it will be closed as a duplicate.
|
37
|
+
|
38
|
+
If an issue does not already exist, please fill in a new [Council Request](https://github.com/robbrad/UKBinCollectionData/issues/new/choose) form, including as much information as possible, including:
|
39
|
+
- Name of the council
|
40
|
+
- URL to bin collections
|
41
|
+
- An example postcode and/or UPRN (whichever is relevant)
|
42
|
+
- Any further information
|
43
|
+
|
44
|
+
Please be aware that this project is run by volunteer contributors and completion depends on numerous factors - even with a request, we cannot guarantee if/when your council will get added.
|
45
|
+
|
46
|
+
---
|
47
|
+
|
33
48
|
## Home Assistant Usage
|
34
49
|
|
35
50
|
### Install with HACS (recommended)
|
@@ -232,17 +247,6 @@ docker pull selenium/standalone-chrome docker run -d -p 4444:4444 --name seleniu
|
|
232
247
|
|
233
248
|
---
|
234
249
|
|
235
|
-
## Requesting your council
|
236
|
-
To make a request for your council, first check the [Issues](https://github.com/robbrad/UKBinCollectionData/issues) page to make sure it has not already been requested. If not, please fill in a new [Council Request](https://github.com/robbrad/UKBinCollectionData/issues/new/choose) form, including as much information as possible, including:
|
237
|
-
- Name of the council
|
238
|
-
- URL to bin collections
|
239
|
-
- An example postcode and/or UPRN (whichever is relevant)
|
240
|
-
- Any further information
|
241
|
-
|
242
|
-
Please be aware that this project is run by volunteer contributors and completion depends on numerous factors - even with a request, we cannot guarantee if/when your council will get a script.
|
243
|
-
|
244
|
-
---
|
245
|
-
|
246
250
|
## Reports
|
247
251
|
|
248
252
|
- [3.11](https://robbrad.github.io/UKBinCollectionData/3.11/)
|
@@ -347,3 +351,4 @@ Contributions are always welcome! See ```CONTRIBUTING.md``` to get started. Plea
|
|
347
351
|
<a href="https://github.com/robbrad/UKBinCollectionData/graphs/contributors">
|
348
352
|
<img src="https://contrib.rocks/image?repo=robbrad/UKBinCollectionData" alt="Image of contributors"/>
|
349
353
|
</a>
|
354
|
+
|
@@ -42,7 +42,13 @@
|
|
42
42
|
"wiki_name": "Barnsley Metropolitan Borough Council",
|
43
43
|
"wiki_note": "To get the UPRN, you will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search)."
|
44
44
|
},
|
45
|
-
|
45
|
+
"BasildonCouncil": {
|
46
|
+
"skip_get_url": true,
|
47
|
+
"uprn": "10013350430",
|
48
|
+
"url": "https://basildonportal.azurewebsites.net/api/getPropertyRefuseInformation",
|
49
|
+
"wiki_name": "Basildon Council"
|
50
|
+
},
|
51
|
+
"BasingstokeCouncil": {
|
46
52
|
"skip_get_url": true,
|
47
53
|
"uprn": "100060220926",
|
48
54
|
"url": "https://www.basingstoke.gov.uk/bincollection",
|
@@ -109,6 +115,7 @@
|
|
109
115
|
"wiki_note": "To get the UPRN, you will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search). Previously required single field that was UPRN and full address, now requires UPRN and postcode as separate fields."
|
110
116
|
},
|
111
117
|
"BracknellForestCouncil": {
|
118
|
+
"house_number": "57",
|
112
119
|
"paon": "57",
|
113
120
|
"postcode": "GU47 9BS",
|
114
121
|
"skip_get_url": true,
|
@@ -155,10 +162,10 @@
|
|
155
162
|
"wiki_name": "Broxtowe Borough Council"
|
156
163
|
},
|
157
164
|
"BuckinghamshireCouncil": {
|
158
|
-
"house_number": "
|
159
|
-
"postcode": "
|
165
|
+
"house_number": "2",
|
166
|
+
"postcode": "HP13 7BA",
|
160
167
|
"skip_get_url": true,
|
161
|
-
"url": "https://
|
168
|
+
"url": "https://iapp.itouchvision.com/iappcollectionday/collection-day/?uuid=FA353FC74600CBE61BE409534D00A8EC09BDA3AC&lang=en",
|
162
169
|
"web_driver": "http://selenium:4444",
|
163
170
|
"wiki_name": "Buckinghamshire Council (Chiltern, South Bucks, Wycombe)",
|
164
171
|
"wiki_note": "Pass the name of the street with the house number parameter, wrapped in double quotes"
|
@@ -286,6 +293,14 @@
|
|
286
293
|
"url": "https://service.croydon.gov.uk/wasteservices/w/webpage/bin-day-enter-address",
|
287
294
|
"wiki_name": "Croydon Council"
|
288
295
|
},
|
296
|
+
"DacorumBoroughCouncil": {
|
297
|
+
"house_number": "13",
|
298
|
+
"postcode": "HP3 9JY",
|
299
|
+
"skip_get_url": true,
|
300
|
+
"web_driver": "http://selenium:4444",
|
301
|
+
"url": "https://webapps.dacorum.gov.uk/bincollections/",
|
302
|
+
"wiki_name": "Dacorum Borough Council"
|
303
|
+
},
|
289
304
|
"DartfordBoroughCouncil": {
|
290
305
|
"uprn": "010094157511",
|
291
306
|
"url": "https://windmz.dartford.gov.uk/ufs/WS_CHECK_COLLECTIONS.eb?UPRN=010094157511",
|
@@ -337,8 +352,8 @@
|
|
337
352
|
"wiki_name": "East Cambridgeshire Council"
|
338
353
|
},
|
339
354
|
"EastDevonDC": {
|
340
|
-
"url": "https://eastdevon.gov.uk/recycling-and-waste/recycling-
|
341
|
-
"wiki_command_url_override": "https://eastdevon.gov.uk/recycling-
|
355
|
+
"url": "https://eastdevon.gov.uk/recycling-and-waste/recycling-waste-information/when-is-my-bin-collected/future-collections-calendar/?UPRN=010090909915",
|
356
|
+
"wiki_command_url_override": "https://eastdevon.gov.uk/recycling-waste/recycling-and-waste-information/when-is-my-bin-collected/future-collections-calendar/?UPRN=XXXXXXXX",
|
342
357
|
"wiki_name": "East Devon District Council",
|
343
358
|
"wiki_note": "Replace XXXXXXXX with UPRN."
|
344
359
|
},
|
@@ -589,6 +604,12 @@
|
|
589
604
|
"url": "https://www.hounslow.gov.uk/homepage/86/recycling_and_waste_collection_day_finder",
|
590
605
|
"wiki_name": "London Borough Hounslow"
|
591
606
|
},
|
607
|
+
"LondonBoroughLambeth": {
|
608
|
+
"skip_get_url": true,
|
609
|
+
"uprn": "100021881738",
|
610
|
+
"url": "https://wasteservice.lambeth.gov.uk/WhitespaceComms/GetServicesByUprn",
|
611
|
+
"wiki_name": "London Borough Lambeth"
|
612
|
+
},
|
592
613
|
"LondonBoroughRedbridge": {
|
593
614
|
"postcode": "IG2 6LQ",
|
594
615
|
"uprn": "10023770353",
|
@@ -659,9 +680,9 @@
|
|
659
680
|
"wiki_note": "UPRN can only be parsed with a valid postcode."
|
660
681
|
},
|
661
682
|
"NeathPortTalbotCouncil": {
|
683
|
+
"house_number": "2",
|
662
684
|
"postcode": "SA13 3BA",
|
663
685
|
"skip_get_url": true,
|
664
|
-
"uprn": "10023947752",
|
665
686
|
"url": "https://www.npt.gov.uk",
|
666
687
|
"web_driver": "http://selenium:4444",
|
667
688
|
"wiki_name": "Neath Port Talbot Council"
|
@@ -1229,6 +1250,16 @@
|
|
1229
1250
|
"url": "https://ilambassadorformsprod.azurewebsites.net/wastecollectiondays/index",
|
1230
1251
|
"wiki_name": "Wiltshire Council"
|
1231
1252
|
},
|
1253
|
+
"WinchesterCityCouncil": {
|
1254
|
+
"house_number": "12",
|
1255
|
+
"paon": "12",
|
1256
|
+
"postcode": "SO23 7GA",
|
1257
|
+
"skip_get_url": false,
|
1258
|
+
"url": "https://iportal.itouchvision.com/icollectionday/collection-day",
|
1259
|
+
"web_driver": "http://selenium:4444",
|
1260
|
+
"wiki_name": "Winchester City Council",
|
1261
|
+
"wiki_note": "Pass the house name/number in the house number parameter, wrapped in double quotes"
|
1262
|
+
},
|
1232
1263
|
"WindsorAndMaidenheadCouncil": {
|
1233
1264
|
"web_driver": "http://selenium:4444",
|
1234
1265
|
"uprn": "100080371082",
|
@@ -1244,6 +1275,13 @@
|
|
1244
1275
|
"wiki_name": "Woking Borough Council/Joint Waste Solutions",
|
1245
1276
|
"wiki_note": "Works with all collection areas that use Joint Waste Solutions. Just use the correct URL."
|
1246
1277
|
},
|
1278
|
+
"WokinghamBoroughCouncil": {
|
1279
|
+
"house_number": "90",
|
1280
|
+
"postcode": "RG40 2HR",
|
1281
|
+
"skip_get_url": true,
|
1282
|
+
"url": "https://www.wokingham.gov.uk/rubbish-and-recycling/waste-collection/find-your-bin-collection-day",
|
1283
|
+
"wiki_name": "Wokingham Borough Council"
|
1284
|
+
},
|
1247
1285
|
"WychavonDistrictCouncil": {
|
1248
1286
|
"postcode": "WR3 7RU",
|
1249
1287
|
"skip_get_url": true,
|
@@ -0,0 +1,81 @@
|
|
1
|
+
from uk_bin_collection.uk_bin_collection.common import *
|
2
|
+
from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass
|
3
|
+
|
4
|
+
|
5
|
+
# import the wonderful Beautiful Soup and the URL grabber
|
6
|
+
class CouncilClass(AbstractGetBinDataClass):
|
7
|
+
"""
|
8
|
+
Concrete classes have to implement all abstract operations of the
|
9
|
+
base class. They can also override some operations with a default
|
10
|
+
implementation.
|
11
|
+
"""
|
12
|
+
|
13
|
+
def parse_data(self, page: str, **kwargs) -> dict:
|
14
|
+
url_base = "https://basildonportal.azurewebsites.net/api/getPropertyRefuseInformation"
|
15
|
+
|
16
|
+
uprn = kwargs.get("uprn")
|
17
|
+
# Check the UPRN is valid
|
18
|
+
check_uprn(uprn)
|
19
|
+
|
20
|
+
payload = {
|
21
|
+
# Add your payload details here (replace this with the actual payload structure if required)
|
22
|
+
"uprn": uprn
|
23
|
+
}
|
24
|
+
|
25
|
+
# Headers for the request
|
26
|
+
headers = {
|
27
|
+
"Content-Type": "application/json"
|
28
|
+
}
|
29
|
+
|
30
|
+
response = requests.post(url_base, data=json.dumps(payload), headers=headers)
|
31
|
+
|
32
|
+
# Ensure the request was successful
|
33
|
+
if response.status_code == 200:
|
34
|
+
data = response.json()
|
35
|
+
|
36
|
+
# Initialize an empty list to store the bin collection details
|
37
|
+
|
38
|
+
bins = []
|
39
|
+
|
40
|
+
# Function to add collection details to bins list
|
41
|
+
def add_collection(service_name, collection_data):
|
42
|
+
bins.append({
|
43
|
+
"type": service_name,
|
44
|
+
"collectionDate": collection_data.get("current_collection_date")
|
45
|
+
})
|
46
|
+
|
47
|
+
# Extract refuse information
|
48
|
+
available_services = data["refuse"]["available_services"]
|
49
|
+
|
50
|
+
for service_name, service_data in available_services.items():
|
51
|
+
# Append the service name and current collection date to the "bins" list
|
52
|
+
match service_data["container"]:
|
53
|
+
case "Green Wheelie Bin":
|
54
|
+
subscription_status = service_data["subscription"]["active"] if service_data["subscription"] else False
|
55
|
+
type_descr = f"Green Wheelie Bin ({"Active" if subscription_status else "Expired"})"
|
56
|
+
case "N/A":
|
57
|
+
type_descr = service_data["name"]
|
58
|
+
case _:
|
59
|
+
type_descr = service_data["container"]
|
60
|
+
|
61
|
+
|
62
|
+
date_str = service_data.get("current_collection_date")
|
63
|
+
# Parse the date string into a datetime object
|
64
|
+
date_obj = datetime.strptime(date_str, "%Y-%m-%d")
|
65
|
+
|
66
|
+
# Convert the datetime object to the desired format
|
67
|
+
formatted_date = date_obj.strftime(date_format)
|
68
|
+
|
69
|
+
bins.append({
|
70
|
+
"type": type_descr, # Use service name from the data
|
71
|
+
"collectionDate": formatted_date
|
72
|
+
})
|
73
|
+
|
74
|
+
else:
|
75
|
+
print(f"Failed to fetch data. Status code: {response.status_code}")
|
76
|
+
|
77
|
+
data = {
|
78
|
+
"bins": bins
|
79
|
+
}
|
80
|
+
|
81
|
+
return data
|
uk_bin_collection-0.94.0/uk_bin_collection/uk_bin_collection/councils/BuckinghamshireCouncil.py
ADDED
@@ -0,0 +1,115 @@
|
|
1
|
+
from bs4 import BeautifulSoup
|
2
|
+
from selenium.webdriver.common.by import By
|
3
|
+
from selenium.webdriver.support import expected_conditions as EC
|
4
|
+
from selenium.webdriver.support.wait import WebDriverWait
|
5
|
+
|
6
|
+
from uk_bin_collection.uk_bin_collection.common import *
|
7
|
+
from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass
|
8
|
+
|
9
|
+
|
10
|
+
class CouncilClass(AbstractGetBinDataClass):
|
11
|
+
"""
|
12
|
+
Concrete classes have to implement all abstract operations of the
|
13
|
+
base class. They can also override some operations with a default
|
14
|
+
implementation.
|
15
|
+
"""
|
16
|
+
|
17
|
+
def parse_data(self, page: str, **kwargs) -> dict:
|
18
|
+
driver = None
|
19
|
+
try:
|
20
|
+
data = {"bins": []}
|
21
|
+
user_paon = kwargs.get("paon")
|
22
|
+
user_postcode = kwargs.get("postcode")
|
23
|
+
web_driver = kwargs.get("web_driver")
|
24
|
+
headless = kwargs.get("headless")
|
25
|
+
check_paon(user_paon)
|
26
|
+
check_postcode(user_postcode)
|
27
|
+
|
28
|
+
# Create Selenium webdriver
|
29
|
+
driver = create_webdriver(web_driver, headless, None, __name__)
|
30
|
+
driver.get(
|
31
|
+
"https://iapp.itouchvision.com/iappcollectionday/collection-day/?uuid=FA353FC74600CBE61BE409534D00A8EC09BDA3AC&lang=en"
|
32
|
+
)
|
33
|
+
|
34
|
+
# Wait for the postcode field to appear then populate it
|
35
|
+
inputElement_postcode = WebDriverWait(driver, 10).until(
|
36
|
+
EC.presence_of_element_located((By.ID, "postcodeSearch"))
|
37
|
+
)
|
38
|
+
inputElement_postcode.send_keys(user_postcode)
|
39
|
+
|
40
|
+
# Click search button
|
41
|
+
findAddress = WebDriverWait(driver, 10).until(
|
42
|
+
EC.presence_of_element_located(
|
43
|
+
(By.XPATH, '//button[@class="govuk-button mt-4"]')
|
44
|
+
)
|
45
|
+
)
|
46
|
+
findAddress.click()
|
47
|
+
|
48
|
+
# Wait for the 'Select address' dropdown to appear and select option matching the house name/number
|
49
|
+
WebDriverWait(driver, 10).until(
|
50
|
+
EC.element_to_be_clickable(
|
51
|
+
(
|
52
|
+
By.XPATH,
|
53
|
+
"//select[@id='addressSelect']//option[contains(., '"
|
54
|
+
+ user_paon
|
55
|
+
+ "')]",
|
56
|
+
)
|
57
|
+
)
|
58
|
+
).click()
|
59
|
+
|
60
|
+
# Wait for the collections table to appear
|
61
|
+
WebDriverWait(driver, 10).until(
|
62
|
+
EC.presence_of_element_located(
|
63
|
+
(
|
64
|
+
By.XPATH,
|
65
|
+
'//div[@class="ant-row d-flex justify-content-between mb-4 mt-2 css-2rgkd4"]',
|
66
|
+
)
|
67
|
+
)
|
68
|
+
)
|
69
|
+
|
70
|
+
soup = BeautifulSoup(driver.page_source, features="html.parser")
|
71
|
+
|
72
|
+
recyclingcalendar = soup.find(
|
73
|
+
"div",
|
74
|
+
{
|
75
|
+
"class": "ant-row d-flex justify-content-between mb-4 mt-2 css-2rgkd4"
|
76
|
+
},
|
77
|
+
)
|
78
|
+
|
79
|
+
rows = recyclingcalendar.find_all(
|
80
|
+
"div",
|
81
|
+
{
|
82
|
+
"class": "ant-col ant-col-xs-12 ant-col-sm-12 ant-col-md-12 ant-col-lg-12 ant-col-xl-12 css-2rgkd4"
|
83
|
+
},
|
84
|
+
)
|
85
|
+
|
86
|
+
current_year = datetime.now().year
|
87
|
+
current_month = datetime.now().month
|
88
|
+
|
89
|
+
for row in rows:
|
90
|
+
BinType = row.find("h3").text
|
91
|
+
collectiondate = datetime.strptime(
|
92
|
+
row.find("div", {"class": "text-white fw-bold"}).text,
|
93
|
+
"%A %d %B",
|
94
|
+
)
|
95
|
+
if (current_month > 10) and (collectiondate.month < 3):
|
96
|
+
collectiondate = collectiondate.replace(year=(current_year + 1))
|
97
|
+
else:
|
98
|
+
collectiondate = collectiondate.replace(year=current_year)
|
99
|
+
|
100
|
+
dict_data = {
|
101
|
+
"type": BinType,
|
102
|
+
"collectionDate": collectiondate.strftime("%d/%m/%Y"),
|
103
|
+
}
|
104
|
+
data["bins"].append(dict_data)
|
105
|
+
|
106
|
+
except Exception as e:
|
107
|
+
# Here you can log the exception if needed
|
108
|
+
print(f"An error occurred: {e}")
|
109
|
+
# Optionally, re-raise the exception if you want it to propagate
|
110
|
+
raise
|
111
|
+
finally:
|
112
|
+
# This block ensures that the driver is closed regardless of an exception
|
113
|
+
if driver:
|
114
|
+
driver.quit()
|
115
|
+
return data
|
uk_bin_collection-0.94.0/uk_bin_collection/uk_bin_collection/councils/DacorumBoroughCouncil.py
ADDED
@@ -0,0 +1,102 @@
|
|
1
|
+
from bs4 import BeautifulSoup
|
2
|
+
from selenium.webdriver.common.by import By
|
3
|
+
from selenium.webdriver.support import expected_conditions as EC
|
4
|
+
from selenium.webdriver.support.wait import WebDriverWait
|
5
|
+
|
6
|
+
from uk_bin_collection.uk_bin_collection.common import *
|
7
|
+
from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass
|
8
|
+
|
9
|
+
|
10
|
+
# import the wonderful Beautiful Soup and the URL grabber
|
11
|
+
class CouncilClass(AbstractGetBinDataClass):
|
12
|
+
"""
|
13
|
+
Concrete classes have to implement all abstract operations of the
|
14
|
+
base class. They can also override some operations with a default
|
15
|
+
implementation.
|
16
|
+
"""
|
17
|
+
|
18
|
+
def parse_data(self, page: str, **kwargs) -> dict:
|
19
|
+
driver = None
|
20
|
+
try:
|
21
|
+
data = {"bins": []}
|
22
|
+
user_paon = kwargs.get("paon")
|
23
|
+
user_postcode = kwargs.get("postcode")
|
24
|
+
web_driver = kwargs.get("web_driver")
|
25
|
+
headless = kwargs.get("headless")
|
26
|
+
check_paon(user_paon)
|
27
|
+
check_postcode(user_postcode)
|
28
|
+
|
29
|
+
# Create Selenium webdriver
|
30
|
+
driver = create_webdriver(web_driver, headless, None, __name__)
|
31
|
+
driver.get("https://webapps.dacorum.gov.uk/bincollections/")
|
32
|
+
|
33
|
+
# Wait for the postcode field to appear then populate it
|
34
|
+
inputElement_postcode = WebDriverWait(driver, 30).until(
|
35
|
+
EC.presence_of_element_located((By.ID, "txtBxPCode"))
|
36
|
+
)
|
37
|
+
inputElement_postcode.send_keys(user_postcode)
|
38
|
+
|
39
|
+
# Click search button
|
40
|
+
findAddress = WebDriverWait(driver, 10).until(
|
41
|
+
EC.presence_of_element_located((By.ID, "btnFindAddr"))
|
42
|
+
)
|
43
|
+
findAddress.click()
|
44
|
+
|
45
|
+
# Wait for the 'Select address' dropdown to appear and select option matching the house name/number
|
46
|
+
WebDriverWait(driver, 10).until(
|
47
|
+
EC.element_to_be_clickable(
|
48
|
+
(
|
49
|
+
By.XPATH,
|
50
|
+
"//select[@id='lstBxAddrList']//option[contains(., '"
|
51
|
+
+ user_paon
|
52
|
+
+ "')]",
|
53
|
+
)
|
54
|
+
)
|
55
|
+
).click()
|
56
|
+
|
57
|
+
# Click search button
|
58
|
+
findDates = WebDriverWait(driver, 10).until(
|
59
|
+
EC.presence_of_element_located((By.ID, "MainContent_btnGetSchedules"))
|
60
|
+
)
|
61
|
+
findDates.click()
|
62
|
+
|
63
|
+
# Wait for the collections table to appear
|
64
|
+
WebDriverWait(driver, 30).until(
|
65
|
+
EC.presence_of_element_located((By.ID, "lblSelectedAddr"))
|
66
|
+
)
|
67
|
+
|
68
|
+
soup = BeautifulSoup(driver.page_source, features="html.parser")
|
69
|
+
soup.prettify()
|
70
|
+
|
71
|
+
# Get collections div
|
72
|
+
BinCollectionSchedule = soup.find("div", {"id": "MainContent_updPnl"})
|
73
|
+
|
74
|
+
NextCollections = BinCollectionSchedule.find_all(
|
75
|
+
"div", {"style": " margin:5px;"}
|
76
|
+
)
|
77
|
+
|
78
|
+
for Collection in NextCollections:
|
79
|
+
BinType = Collection.find("strong").text.strip()
|
80
|
+
if BinType:
|
81
|
+
CollectionDate = datetime.strptime(
|
82
|
+
Collection.find_all("div", {"style": "display:table-cell;"})[1]
|
83
|
+
.get_text()
|
84
|
+
.strip(),
|
85
|
+
"%a, %d %b %Y",
|
86
|
+
)
|
87
|
+
dict_data = {
|
88
|
+
"type": BinType,
|
89
|
+
"collectionDate": CollectionDate.strftime("%d/%m/%Y"),
|
90
|
+
}
|
91
|
+
data["bins"].append(dict_data)
|
92
|
+
|
93
|
+
except Exception as e:
|
94
|
+
# Here you can log the exception if needed
|
95
|
+
print(f"An error occurred: {e}")
|
96
|
+
# Optionally, re-raise the exception if you want it to propagate
|
97
|
+
raise
|
98
|
+
finally:
|
99
|
+
# This block ensures that the driver is closed regardless of an exception
|
100
|
+
if driver:
|
101
|
+
driver.quit()
|
102
|
+
return data
|
@@ -0,0 +1,54 @@
|
|
1
|
+
import requests
|
2
|
+
from requests.structures import CaseInsensitiveDict
|
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
|
+
# import the wonderful Beautiful Soup and the URL grabber
|
9
|
+
class CouncilClass(AbstractGetBinDataClass):
|
10
|
+
"""
|
11
|
+
Concrete classes have to implement all abstract operations of the
|
12
|
+
base class. They can also override some operations with a default
|
13
|
+
implementation.
|
14
|
+
"""
|
15
|
+
|
16
|
+
def parse_data(self, page: str, **kwargs) -> dict:
|
17
|
+
|
18
|
+
user_uprn = kwargs.get("uprn")
|
19
|
+
check_uprn(user_uprn)
|
20
|
+
data = {"bins": []}
|
21
|
+
|
22
|
+
url = "https://wasteservice.lambeth.gov.uk/WhitespaceComms/GetServicesByUprn"
|
23
|
+
|
24
|
+
headers = CaseInsensitiveDict()
|
25
|
+
headers["Content-Type"] = "application/json"
|
26
|
+
|
27
|
+
body = {"uprn": user_uprn, "includeEventTypes": False, "includeFlags": True}
|
28
|
+
json_data = json.dumps(body)
|
29
|
+
|
30
|
+
res = requests.post(url, headers=headers, data=json_data)
|
31
|
+
|
32
|
+
if res.status_code != 200:
|
33
|
+
raise ConnectionRefusedError("Cannot connect to API!")
|
34
|
+
|
35
|
+
json_data = res.json()
|
36
|
+
|
37
|
+
if "SiteServices" in json_data:
|
38
|
+
SiteServices = json_data["SiteServices"]
|
39
|
+
for service in SiteServices:
|
40
|
+
if "NextCollectionDate" in service:
|
41
|
+
NextCollectionDate = service["NextCollectionDate"]
|
42
|
+
if NextCollectionDate:
|
43
|
+
Container = service["Container"]
|
44
|
+
if Container:
|
45
|
+
Bin_Type = Container["DisplayPhrase"]
|
46
|
+
dict_data = {
|
47
|
+
"type": Bin_Type,
|
48
|
+
"collectionDate": datetime.strptime(
|
49
|
+
NextCollectionDate, "%d/%m/%Y"
|
50
|
+
).strftime(date_format),
|
51
|
+
}
|
52
|
+
data["bins"].append(dict_data)
|
53
|
+
|
54
|
+
return data
|