uk_bin_collection 0.98.0__tar.gz → 0.98.1__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.98.0 → uk_bin_collection-0.98.1}/PKG-INFO +1 -1
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/pyproject.toml +1 -1
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/tests/input.json +1 -1
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/BarnetCouncil.py +11 -2
- uk_bin_collection-0.98.1/uk_bin_collection/uk_bin_collection/councils/BexleyCouncil.py +147 -0
- uk_bin_collection-0.98.0/uk_bin_collection/uk_bin_collection/councils/BexleyCouncil.py +0 -147
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/LICENSE +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/README.md +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/README.rst +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/tests/council_feature_input_parity.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/tests/features/environment.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/tests/features/validate_council_outputs.feature +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/tests/output.schema +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/tests/step_defs/step_helpers/file_handler.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/tests/step_defs/test_validate_council.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/tests/test_collect_data.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/tests/test_common_functions.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/tests/test_conftest.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/tests/test_get_data.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/collect_data.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/common.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/AdurAndWorthingCouncils.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/ArmaghBanbridgeCraigavonCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/ArunCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/AylesburyValeCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/BCPCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/BarnsleyMBCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/BasildonCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/BasingstokeCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/BathAndNorthEastSomersetCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/BedfordBoroughCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/BedfordshireCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/BelfastCityCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/BirminghamCityCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/BlackburnCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/BoltonCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/BracknellForestCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/BradfordMDC.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/BrightonandHoveCityCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/BristolCityCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/BromleyBoroughCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/BroxtoweBoroughCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/BuckinghamshireCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/BuryCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/CalderdaleCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/CannockChaseDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/CardiffCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/CastlepointDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/CharnwoodBoroughCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/ChelmsfordCityCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/CheshireEastCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/CheshireWestAndChesterCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/ChichesterDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/ChorleyCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/ColchesterCityCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/ConwyCountyBorough.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/CornwallCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/CrawleyBoroughCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/CroydonCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/DacorumBoroughCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/DartfordBoroughCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/DerbyshireDalesDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/DoncasterCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/DorsetCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/DoverDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/DurhamCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/EalingCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/EastCambridgeshireCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/EastDevonDC.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/EastLindseyDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/EastRenfrewshireCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/EastRidingCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/EastSuffolkCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/EastleighBoroughCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/ElmbridgeBoroughCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/EnfieldCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/EnvironmentFirst.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/EppingForestDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/ErewashBoroughCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/FalkirkCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/FarehamBoroughCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/FenlandDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/ForestOfDeanDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/GatesheadCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/GedlingBoroughCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/GlasgowCityCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/GloucesterCityCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/GuildfordCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/HaltonBoroughCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/HaringeyCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/HarrogateBoroughCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/HighPeakCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/HighlandCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/HounslowCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/HullCityCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/HuntingdonDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/IslingtonCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/KingstonUponThamesCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/KirkleesCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/KnowsleyMBCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/LancasterCityCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/LeedsCityCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/LichfieldDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/LisburnCastlereaghCityCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/LiverpoolCityCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughEaling.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughHarrow.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughHounslow.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughLambeth.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughRedbridge.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/MaldonDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/MalvernHillsDC.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/ManchesterCityCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/MansfieldDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/MertonCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/MidAndEastAntrimBoroughCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/MidSussexDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/MiltonKeynesCityCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/MoleValleyDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/NeathPortTalbotCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/NewForestCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/NewarkAndSherwoodDC.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/NewcastleCityCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/NewhamCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/NewportCityCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/NorthAyrshireCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/NorthEastDerbyshireDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/NorthEastLincs.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/NorthKestevenDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/NorthLanarkshireCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/NorthLincolnshireCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/NorthNorfolkDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/NorthNorthamptonshireCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/NorthSomersetCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/NorthTynesideCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/NorthWestLeicestershire.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/NorthYorkshire.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/NorthumberlandCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/NottinghamCityCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/OldhamCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/PortsmouthCityCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/PrestonCityCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/ReadingBoroughCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/ReigateAndBansteadBoroughCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/RenfrewshireCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/RhonddaCynonTaffCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/RochdaleCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/RochfordCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/RotherhamCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/RugbyBoroughCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/RushcliffeBoroughCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/RushmoorCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/SalfordCityCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/SevenoaksDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/SheffieldCityCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/ShropshireCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/SolihullCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/SomersetCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/SouthAyrshireCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/SouthCambridgeshireCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/SouthDerbyshireDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/SouthGloucestershireCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/SouthKestevenDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/SouthLanarkshireCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/SouthNorfolkCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/SouthOxfordshireCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/SouthTynesideCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/SouthwarkCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/StAlbansCityAndDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/StHelensBC.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/StaffordBoroughCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/StaffordshireMoorlandsDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/StockportBoroughCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/StokeOnTrentCityCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/StratfordUponAvonCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/StroudDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/SunderlandCityCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/SwaleBoroughCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/SwanseaCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/TamesideMBCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/TandridgeDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/TelfordAndWrekinCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/TendringDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/TestValleyBoroughCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/ThreeRiversDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/TonbridgeAndMallingBC.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/TorbayCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/TorridgeDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/UttlesfordDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/ValeofGlamorganCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/ValeofWhiteHorseCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/WakefieldCityCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/WalsallCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/WalthamForest.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/WarwickDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/WaverleyBoroughCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/WealdenDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/WelhatCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/WestBerkshireCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/WestLindseyDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/WestLothianCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/WestMorlandAndFurness.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/WestNorthamptonshireCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/WestSuffolkCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/WiganBoroughCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/WiltshireCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/WinchesterCityCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/WindsorAndMaidenheadCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/WirralCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/WokingBoroughCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/WokinghamBoroughCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/WychavonDistrictCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/WyreCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/YorkCouncil.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/councils/council_class_template/councilclasstemplate.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/create_new_council.py +0 -0
- {uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/uk_bin_collection/get_bin_data.py +0 -0
@@ -49,7 +49,7 @@
|
|
49
49
|
"wiki_name": "Barnsley Metropolitan Borough Council",
|
50
50
|
"wiki_note": "To get the UPRN, you will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search)."
|
51
51
|
},
|
52
|
-
"BasildonCouncil": {
|
52
|
+
"BasildonCouncil": {
|
53
53
|
"skip_get_url": true,
|
54
54
|
"uprn": "10013350430",
|
55
55
|
"url": "https://basildonportal.azurewebsites.net/api/getPropertyRefuseInformation",
|
@@ -70,10 +70,19 @@ class CouncilClass(AbstractGetBinDataClass):
|
|
70
70
|
headless = kwargs.get("headless")
|
71
71
|
web_driver = kwargs.get("web_driver")
|
72
72
|
driver = create_webdriver(web_driver, headless, None, __name__)
|
73
|
-
page = "https://
|
73
|
+
page = "https://www.barnet.gov.uk/recycling-and-waste/bin-collections/find-your-bin-collection-day"
|
74
|
+
|
74
75
|
driver.get(page)
|
75
76
|
|
76
|
-
|
77
|
+
# Wait for the element to be clickable
|
78
|
+
find_your_collection_button = WebDriverWait(driver, 10).until(
|
79
|
+
EC.element_to_be_clickable(
|
80
|
+
(By.XPATH, '//a[contains(text(), "Find your household collection day")]')
|
81
|
+
)
|
82
|
+
)
|
83
|
+
|
84
|
+
# Click the element
|
85
|
+
find_your_collection_button.click()
|
77
86
|
|
78
87
|
try:
|
79
88
|
accept_cookies = WebDriverWait(driver, timeout=10).until(
|
@@ -0,0 +1,147 @@
|
|
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.common.keys import Keys
|
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
|
+
# import the wonderful Beautiful Soup and the URL grabber
|
15
|
+
|
16
|
+
|
17
|
+
class CouncilClass(AbstractGetBinDataClass):
|
18
|
+
"""
|
19
|
+
Concrete classes have to implement all abstract operations of the
|
20
|
+
base class. They can also override some operations with a default
|
21
|
+
implementation.
|
22
|
+
"""
|
23
|
+
|
24
|
+
def parse_data(self, page: str, **kwargs) -> dict:
|
25
|
+
driver = None
|
26
|
+
try:
|
27
|
+
page = "https://waste.bexley.gov.uk/waste"
|
28
|
+
|
29
|
+
data = {"bins": []}
|
30
|
+
|
31
|
+
user_uprn = kwargs.get("uprn")
|
32
|
+
user_paon = kwargs.get("paon")
|
33
|
+
user_postcode = kwargs.get("postcode")
|
34
|
+
web_driver = kwargs.get("web_driver")
|
35
|
+
headless = kwargs.get("headless")
|
36
|
+
|
37
|
+
# Create Selenium webdriver
|
38
|
+
driver = create_webdriver(web_driver, headless, None, __name__)
|
39
|
+
driver.get(page)
|
40
|
+
|
41
|
+
wait = WebDriverWait(driver, 10)
|
42
|
+
|
43
|
+
inputElement_postcodesearch = wait.until(
|
44
|
+
EC.element_to_be_clickable((By.ID, "pc"))
|
45
|
+
)
|
46
|
+
inputElement_postcodesearch.send_keys(user_postcode)
|
47
|
+
|
48
|
+
|
49
|
+
|
50
|
+
find_address_btn = wait.until(
|
51
|
+
EC.element_to_be_clickable((By.XPATH, '//*[@id="sub"]'))
|
52
|
+
)
|
53
|
+
find_address_btn.click()
|
54
|
+
|
55
|
+
dropdown_options = wait.until(
|
56
|
+
EC.presence_of_element_located(
|
57
|
+
(By.XPATH, '//*[@id="address"]')
|
58
|
+
)
|
59
|
+
)
|
60
|
+
time.sleep(2)
|
61
|
+
dropdown_options.click()
|
62
|
+
time.sleep(1)
|
63
|
+
|
64
|
+
# Wait for the element to be clickable
|
65
|
+
address = WebDriverWait(driver, 10).until(
|
66
|
+
EC.element_to_be_clickable(
|
67
|
+
(By.XPATH, f'//li[contains(text(), "{user_paon}")]')
|
68
|
+
)
|
69
|
+
)
|
70
|
+
|
71
|
+
# Click the element
|
72
|
+
address.click()
|
73
|
+
|
74
|
+
|
75
|
+
submit_address = wait.until(
|
76
|
+
EC.presence_of_element_located(
|
77
|
+
(By.XPATH, '//*[@id="go"]')
|
78
|
+
)
|
79
|
+
)
|
80
|
+
time.sleep(2)
|
81
|
+
submit_address.click()
|
82
|
+
|
83
|
+
results_found = wait.until(
|
84
|
+
EC.element_to_be_clickable(
|
85
|
+
(By.XPATH, '//h1[contains(text(), "Your bin days")]')
|
86
|
+
)
|
87
|
+
)
|
88
|
+
|
89
|
+
final_page = wait.until(
|
90
|
+
EC.presence_of_element_located(
|
91
|
+
(By.CLASS_NAME, "waste__collections")
|
92
|
+
)
|
93
|
+
)
|
94
|
+
|
95
|
+
soup = BeautifulSoup(driver.page_source, features="html.parser")
|
96
|
+
|
97
|
+
# Find all waste services
|
98
|
+
|
99
|
+
# Initialize the data dictionary
|
100
|
+
data = {"bins": []}
|
101
|
+
bin_sections = soup.find_all("h3", class_="waste-service-name")
|
102
|
+
|
103
|
+
# Loop through each bin field
|
104
|
+
for bin_section in bin_sections:
|
105
|
+
# Extract the bin type (e.g., "Brown Caddy", "Green Wheelie Bin", etc.)
|
106
|
+
bin_type = bin_section.get_text(strip=True).split("\n")[0] # The first part is the bin type
|
107
|
+
|
108
|
+
# Find the next sibling <dl> tag that contains the next collection information
|
109
|
+
summary_list = bin_section.find_next("dl", class_="govuk-summary-list")
|
110
|
+
|
111
|
+
if summary_list:
|
112
|
+
# Now, instead of finding by class, we'll search by text within the dt element
|
113
|
+
next_collection_dt = summary_list.find("dt", string=lambda text: "Next collection" in text)
|
114
|
+
|
115
|
+
if next_collection_dt:
|
116
|
+
# Find the sibling <dd> tag for the collection date
|
117
|
+
next_collection = next_collection_dt.find_next_sibling("dd").get_text(strip=True)
|
118
|
+
|
119
|
+
if next_collection:
|
120
|
+
try:
|
121
|
+
# Parse the next collection date (assuming the format is like "Tuesday 15 October 2024")
|
122
|
+
parsed_date = datetime.strptime(next_collection, "%A %d %B %Y")
|
123
|
+
|
124
|
+
# Add the bin information to the data dictionary
|
125
|
+
data["bins"].append({
|
126
|
+
"type": bin_type,
|
127
|
+
"collectionDate": parsed_date.strftime(date_format),
|
128
|
+
})
|
129
|
+
except ValueError as e:
|
130
|
+
print(f"Error parsing date for {bin_type}: {e}")
|
131
|
+
else:
|
132
|
+
print(f"No next collection date found for {bin_type}")
|
133
|
+
else:
|
134
|
+
print(f"No 'Next collection' text found for {bin_type}")
|
135
|
+
else:
|
136
|
+
print(f"No summary list found for {bin_type}")
|
137
|
+
|
138
|
+
except Exception as e:
|
139
|
+
# Here you can log the exception if needed
|
140
|
+
print(f"An error occurred: {e}")
|
141
|
+
# Optionally, re-raise the exception if you want it to propagate
|
142
|
+
raise
|
143
|
+
finally:
|
144
|
+
# This block ensures that the driver is closed regardless of an exception
|
145
|
+
if driver:
|
146
|
+
driver.quit()
|
147
|
+
return data
|
@@ -1,147 +0,0 @@
|
|
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.common.keys import Keys
|
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
|
-
# import the wonderful Beautiful Soup and the URL grabber
|
15
|
-
|
16
|
-
|
17
|
-
class CouncilClass(AbstractGetBinDataClass):
|
18
|
-
"""
|
19
|
-
Concrete classes have to implement all abstract operations of the
|
20
|
-
base class. They can also override some operations with a default
|
21
|
-
implementation.
|
22
|
-
"""
|
23
|
-
|
24
|
-
def parse_data(self, page: str, **kwargs) -> dict:
|
25
|
-
driver = None
|
26
|
-
try:
|
27
|
-
page = "https://mybexley.bexley.gov.uk/service/When_is_my_collection_day"
|
28
|
-
|
29
|
-
data = {"bins": []}
|
30
|
-
|
31
|
-
user_uprn = kwargs.get("uprn")
|
32
|
-
user_paon = kwargs.get("paon")
|
33
|
-
user_postcode = kwargs.get("postcode")
|
34
|
-
web_driver = kwargs.get("web_driver")
|
35
|
-
headless = kwargs.get("headless")
|
36
|
-
|
37
|
-
# Create Selenium webdriver
|
38
|
-
driver = create_webdriver(web_driver, headless, None, __name__)
|
39
|
-
driver.get(page)
|
40
|
-
|
41
|
-
# If you bang in the house number (or property name) and postcode in the box it should find your property
|
42
|
-
|
43
|
-
iframe_presense = WebDriverWait(driver, 30).until(
|
44
|
-
EC.presence_of_element_located((By.ID, "fillform-frame-1"))
|
45
|
-
)
|
46
|
-
|
47
|
-
driver.switch_to.frame(iframe_presense)
|
48
|
-
wait = WebDriverWait(driver, 60)
|
49
|
-
start_btn = wait.until(
|
50
|
-
EC.element_to_be_clickable(
|
51
|
-
(By.XPATH, "//button/span[contains(text(), 'Next')]")
|
52
|
-
)
|
53
|
-
)
|
54
|
-
|
55
|
-
start_btn.click()
|
56
|
-
|
57
|
-
inputElement_postcodesearch = wait.until(
|
58
|
-
EC.element_to_be_clickable((By.ID, "postcode_search"))
|
59
|
-
)
|
60
|
-
inputElement_postcodesearch.send_keys(user_postcode)
|
61
|
-
|
62
|
-
find_address_btn = wait.until(
|
63
|
-
EC.element_to_be_clickable((By.XPATH, '//*[@id="search"]'))
|
64
|
-
)
|
65
|
-
find_address_btn.click()
|
66
|
-
|
67
|
-
dropdown_options = wait.until(
|
68
|
-
EC.presence_of_element_located(
|
69
|
-
(By.XPATH, '//*[@id="select2-chosen-1"]')
|
70
|
-
)
|
71
|
-
)
|
72
|
-
time.sleep(2)
|
73
|
-
dropdown_options.click()
|
74
|
-
time.sleep(1)
|
75
|
-
dropdown_input = wait.until(
|
76
|
-
EC.presence_of_element_located(
|
77
|
-
(By.XPATH, '//*[@id="s2id_autogen1_search"]')
|
78
|
-
)
|
79
|
-
)
|
80
|
-
time.sleep(1)
|
81
|
-
dropdown_input.send_keys(user_paon)
|
82
|
-
dropdown_input.send_keys(Keys.ENTER)
|
83
|
-
|
84
|
-
results_found = wait.until(
|
85
|
-
EC.presence_of_element_located((By.CLASS_NAME, "found-content"))
|
86
|
-
)
|
87
|
-
finish_btn = wait.until(
|
88
|
-
EC.element_to_be_clickable(
|
89
|
-
(By.XPATH, "//button/span[contains(text(), 'Next')]")
|
90
|
-
)
|
91
|
-
)
|
92
|
-
finish_btn.click()
|
93
|
-
final_page = wait.until(
|
94
|
-
EC.presence_of_element_located(
|
95
|
-
(By.CLASS_NAME, "waste-header-container")
|
96
|
-
)
|
97
|
-
)
|
98
|
-
|
99
|
-
soup = BeautifulSoup(driver.page_source, features="html.parser")
|
100
|
-
|
101
|
-
bin_fields = soup.find_all("div", class_="waste-panel-container")
|
102
|
-
# Define your XPath
|
103
|
-
|
104
|
-
for bin in bin_fields:
|
105
|
-
# Extract h3 text from the current element
|
106
|
-
h3_text = (
|
107
|
-
bin.find("h3", class_="container-name").get_text(strip=True)
|
108
|
-
if bin.find("h3", class_="container-name")
|
109
|
-
else None
|
110
|
-
)
|
111
|
-
|
112
|
-
date_text = (
|
113
|
-
bin.find("p", class_="container-status").get_text(strip=True)
|
114
|
-
if bin.find("p", class_="container-status")
|
115
|
-
else None
|
116
|
-
)
|
117
|
-
|
118
|
-
if h3_text and date_text:
|
119
|
-
# Parse the date using the appropriate format
|
120
|
-
parsed_date = datetime.strptime(date_text, "%A %d %B")
|
121
|
-
|
122
|
-
# Assuming the current year is used for the collection date
|
123
|
-
current_year = datetime.now().year
|
124
|
-
|
125
|
-
# If the parsed date is in the past, assume it's for the next year
|
126
|
-
if parsed_date < datetime.now():
|
127
|
-
current_year += 1
|
128
|
-
|
129
|
-
data["bins"].append(
|
130
|
-
{
|
131
|
-
"type": h3_text,
|
132
|
-
"collectionDate": parsed_date.replace(
|
133
|
-
year=current_year
|
134
|
-
).strftime("%d/%m/%Y"),
|
135
|
-
}
|
136
|
-
)
|
137
|
-
|
138
|
-
except Exception as e:
|
139
|
-
# Here you can log the exception if needed
|
140
|
-
print(f"An error occurred: {e}")
|
141
|
-
# Optionally, re-raise the exception if you want it to propagate
|
142
|
-
raise
|
143
|
-
finally:
|
144
|
-
# This block ensures that the driver is closed regardless of an exception
|
145
|
-
if driver:
|
146
|
-
driver.quit()
|
147
|
-
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.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/tests/test_collect_data.py
RENAMED
File without changes
|
File without changes
|
{uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/tests/test_conftest.py
RENAMED
File without changes
|
{uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/uk_bin_collection/tests/test_get_data.py
RENAMED
File without changes
|
File without changes
|
{uk_bin_collection-0.98.0 → uk_bin_collection-0.98.1}/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
|