uk_bin_collection 0.79.1__py3-none-any.whl → 0.81.0__py3-none-any.whl

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.
Files changed (36) hide show
  1. uk_bin_collection/tests/input.json +47 -1
  2. uk_bin_collection/uk_bin_collection/common.py +23 -1
  3. uk_bin_collection/uk_bin_collection/councils/BedfordshireCouncil.py +2 -1
  4. uk_bin_collection/uk_bin_collection/councils/BirminghamCityCouncil.py +27 -13
  5. uk_bin_collection/uk_bin_collection/councils/BracknellForestCouncil.py +4 -4
  6. uk_bin_collection/uk_bin_collection/councils/BristolCityCouncil.py +2 -1
  7. uk_bin_collection/uk_bin_collection/councils/BromleyBoroughCouncil.py +6 -15
  8. uk_bin_collection/uk_bin_collection/councils/BuckinghamshireCouncil.py +8 -6
  9. uk_bin_collection/uk_bin_collection/councils/CroydonCouncil.py +5 -4
  10. uk_bin_collection/uk_bin_collection/councils/DartfordBoroughCouncil.py +7 -9
  11. uk_bin_collection/uk_bin_collection/councils/EastCambridgeshireCouncil.py +2 -1
  12. uk_bin_collection/uk_bin_collection/councils/HaringeyCouncil.py +13 -5
  13. uk_bin_collection/uk_bin_collection/councils/LancasterCityCouncil.py +6 -4
  14. uk_bin_collection/uk_bin_collection/councils/LisburnCastlereaghCityCouncil.py +1 -0
  15. uk_bin_collection/uk_bin_collection/councils/ManchesterCityCouncil.py +2 -1
  16. uk_bin_collection/uk_bin_collection/councils/NewForestCouncil.py +146 -0
  17. uk_bin_collection/uk_bin_collection/councils/NewportCityCouncil.py +1 -0
  18. uk_bin_collection/uk_bin_collection/councils/NorthTynesideCouncil.py +2 -1
  19. uk_bin_collection/uk_bin_collection/councils/SomersetCouncil.py +1 -0
  20. uk_bin_collection/uk_bin_collection/councils/SouthCambridgeshireCouncil.py +1 -0
  21. uk_bin_collection/uk_bin_collection/councils/StHelensBC.py +2 -1
  22. uk_bin_collection/uk_bin_collection/councils/StaffordBoroughCouncil.py +69 -0
  23. uk_bin_collection/uk_bin_collection/councils/SwanseaCouncil.py +70 -0
  24. uk_bin_collection/uk_bin_collection/councils/TestValleyBoroughCouncil.py +1 -0
  25. uk_bin_collection/uk_bin_collection/councils/ThreeRiversDistrictCouncil.py +140 -0
  26. uk_bin_collection/uk_bin_collection/councils/UttlesfordDistrictCouncil.py +117 -0
  27. uk_bin_collection/uk_bin_collection/councils/WaverleyBoroughCouncil.py +2 -1
  28. uk_bin_collection/uk_bin_collection/councils/WiganBoroughCouncil.py +2 -1
  29. uk_bin_collection/uk_bin_collection/councils/WindsorAndMaidenheadCouncil.py +2 -1
  30. uk_bin_collection/uk_bin_collection/councils/WokingBoroughCouncil.py +4 -2
  31. uk_bin_collection/uk_bin_collection/councils/WychavonDistrictCouncil.py +156 -0
  32. {uk_bin_collection-0.79.1.dist-info → uk_bin_collection-0.81.0.dist-info}/METADATA +1 -1
  33. {uk_bin_collection-0.79.1.dist-info → uk_bin_collection-0.81.0.dist-info}/RECORD +36 -30
  34. {uk_bin_collection-0.79.1.dist-info → uk_bin_collection-0.81.0.dist-info}/LICENSE +0 -0
  35. {uk_bin_collection-0.79.1.dist-info → uk_bin_collection-0.81.0.dist-info}/WHEEL +0 -0
  36. {uk_bin_collection-0.79.1.dist-info → uk_bin_collection-0.81.0.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,156 @@
1
+ import logging
2
+ import pickle
3
+ import time
4
+
5
+ import requests
6
+ from bs4 import BeautifulSoup
7
+ from selenium import webdriver
8
+ from selenium.webdriver.common.by import By
9
+ from selenium.webdriver.common.keys import Keys
10
+ from selenium.webdriver.support import expected_conditions as EC
11
+ from selenium.webdriver.support.ui import Select
12
+ from selenium.webdriver.support.wait import WebDriverWait
13
+ from uk_bin_collection.uk_bin_collection.common import *
14
+
15
+ from uk_bin_collection.uk_bin_collection.common import *
16
+ from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass
17
+
18
+ # Set up logging
19
+ logging.basicConfig(
20
+ level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s"
21
+ )
22
+
23
+
24
+ class CouncilClass(AbstractGetBinDataClass):
25
+
26
+ def parse_data(self, page: str, **kwargs) -> dict:
27
+ driver = None
28
+ try:
29
+ data = {"bins": []}
30
+ collections = []
31
+ user_uprn = kwargs.get("uprn")
32
+ user_postcode = kwargs.get("postcode")
33
+ web_driver = kwargs.get("web_driver")
34
+ headless = kwargs.get("headless")
35
+ check_postcode(user_postcode)
36
+ url = "https://selfservice.wychavon.gov.uk/wdcroundlookup/wdc_search.jsp"
37
+
38
+ # Get session cookies using requests
39
+
40
+ user_agent = """general.useragent.override", "userAgent=Mozilla/5.0
41
+ (iPhone; CPU iPhone OS 15_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like
42
+ Gecko) CriOS/101.0.4951.44 Mobile/15E148 Safari/604.1"""
43
+
44
+ # Create Selenium webdriver
45
+ driver = create_webdriver(web_driver, headless, user_agent, __name__)
46
+
47
+ # Navigate to the page first
48
+ driver.get(url)
49
+
50
+ wait = WebDriverWait(driver, 60)
51
+
52
+ logging.info("Accepting cookies")
53
+
54
+ try:
55
+ logging.info("Cookies")
56
+ cookie_window = wait.until(
57
+ EC.presence_of_element_located(
58
+ (By.XPATH, '//div[@id="ccc-content"]')
59
+ )
60
+ )
61
+ time.sleep(2)
62
+ accept_cookies = WebDriverWait(driver, timeout=10).until(
63
+ EC.presence_of_element_located(
64
+ (By.XPATH, '//button[@id="ccc-recommended-settings"]')
65
+ )
66
+ )
67
+ accept_cookies.send_keys(Keys.ENTER)
68
+ accept_cookies.click()
69
+ accept_cookies_close = WebDriverWait(driver, timeout=10).until(
70
+ EC.presence_of_element_located(
71
+ (By.XPATH, '//button[@id="ccc-close"]')
72
+ )
73
+ )
74
+ accept_cookies_close.send_keys(Keys.ENTER)
75
+ accept_cookies_close.click()
76
+ except:
77
+ print(
78
+ "Accept cookies banner not found or clickable within the specified time."
79
+ )
80
+ pass
81
+
82
+ logging.info("Entering postcode")
83
+ input_element_postcode = wait.until(
84
+ EC.presence_of_element_located((By.XPATH, '//input[@id="alAddrtxt"]'))
85
+ )
86
+
87
+ input_element_postcode.send_keys(user_postcode)
88
+
89
+ logging.info("Searching for postcode")
90
+ input_element_postcode_btn = wait.until(
91
+ EC.element_to_be_clickable((By.XPATH, '//button[@id="alAddrbtn"]'))
92
+ )
93
+
94
+ input_element_postcode_btn.click()
95
+
96
+ logging.info("Waiting for address dropdown")
97
+ input_element_postcode_dropdown = wait.until(
98
+ EC.presence_of_element_located((By.XPATH, '//select[@id="alAddrsel"]'))
99
+ )
100
+
101
+ logging.info("Selecting address")
102
+ drop_down_values = Select(input_element_postcode_dropdown)
103
+ option_element = wait.until(
104
+ EC.presence_of_element_located(
105
+ (By.CSS_SELECTOR, f'option[value="{str(user_uprn)}"]')
106
+ )
107
+ )
108
+
109
+ driver.execute_script("arguments[0].scrollIntoView();", option_element)
110
+ drop_down_values.select_by_value(str(user_uprn))
111
+
112
+ input_element_address_btn = wait.until(
113
+ EC.element_to_be_clickable((By.XPATH, '//input[@id="btnSubmit"]'))
114
+ )
115
+
116
+ input_element_address_btn.click()
117
+
118
+ logging.info("Waiting for bin collection page")
119
+ strong_element = wait.until(
120
+ EC.presence_of_element_located(
121
+ (By.XPATH, "//strong[contains(text(), 'Upcoming collections')]")
122
+ )
123
+ )
124
+
125
+ logging.info("Extracting bin collection data")
126
+ soup = BeautifulSoup(driver.page_source, features="html.parser")
127
+ bins = []
128
+
129
+ rows = soup.select("table tbody tr")
130
+ for row in rows:
131
+ bin_type = row.select_one("td:nth-of-type(2)").contents[0].strip()
132
+ date_elements = row.select("td:nth-of-type(3) strong")
133
+ if date_elements:
134
+ dates = [date.get_text(strip=True) for date in date_elements]
135
+ else:
136
+ dates = ["Not applicable"]
137
+
138
+ for date in dates:
139
+ if date != "Not applicable":
140
+ # Format the date to dd/mm/yyyy
141
+ formatted_date = re.search(r"\d{2}/\d{2}/\d{4}", date).group(0)
142
+ bins.append(
143
+ {"type": bin_type, "collectionDate": formatted_date}
144
+ )
145
+
146
+ bin_data = {"bins": bins}
147
+
148
+ return bin_data
149
+
150
+ except Exception as e:
151
+ logging.error(f"An error occurred: {e}")
152
+ raise
153
+
154
+ finally:
155
+ if driver:
156
+ driver.quit()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: uk_bin_collection
3
- Version: 0.79.1
3
+ Version: 0.81.0
4
4
  Summary: Python Lib to collect UK Bin Data
5
5
  Author: Robert Bradley
6
6
  Author-email: robbrad182@gmail.com
@@ -2,14 +2,14 @@ uk_bin_collection/README.rst,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
2
2
  uk_bin_collection/tests/council_feature_input_parity.py,sha256=DO6Mk4ImYgM5ZCZ-cutwz5RoYYWZRLYx2tr6zIs_9Rc,3843
3
3
  uk_bin_collection/tests/features/environment.py,sha256=VQZjJdJI_kZn08M0j5cUgvKT4k3iTw8icJge1DGOkoA,127
4
4
  uk_bin_collection/tests/features/validate_council_outputs.feature,sha256=SJK-Vc737hrf03tssxxbeg_JIvAH-ddB8f6gU1LTbuQ,251
5
- uk_bin_collection/tests/input.json,sha256=eVZzMAByRNVnh8dc0G4QjErrElo5SkJiX0fujKVsw5g,57171
5
+ uk_bin_collection/tests/input.json,sha256=tsLMMV6SegrudMLCU-F99uuUl3-RGY-dsG39rjeijhA,59231
6
6
  uk_bin_collection/tests/output.schema,sha256=ZwKQBwYyTDEM4G2hJwfLUVM-5v1vKRvRK9W9SS1sd18,1086
7
7
  uk_bin_collection/tests/step_defs/step_helpers/file_handler.py,sha256=Ygzi4V0S1MIHqbdstUlIqtRIwnynvhu4UtpweJ6-5N8,1474
8
8
  uk_bin_collection/tests/step_defs/test_validate_council.py,sha256=zDLF5UUBp2n5S3ZlJod7AmYHt92TYQMMhHbX1keNn8U,3424
9
9
  uk_bin_collection/tests/test_collect_data.py,sha256=C5w1qfz_1CU37_T7UPdBk3nisMLobIeVHNl6EXrgfrQ,3316
10
10
  uk_bin_collection/tests/test_common_functions.py,sha256=IvTNmuFKm9u5j2A9PumMB6eScQS165sPknFakc0l-eg,11190
11
11
  uk_bin_collection/uk_bin_collection/collect_data.py,sha256=txdtYoPgWDHLPohGz_Wu9OLXOr8TpXyuIGn0WnsFbZQ,4383
12
- uk_bin_collection/uk_bin_collection/common.py,sha256=eo1hGsVMeWLBmb1EZG_1J1Z6TMZhxRkdOuzMdGoA7UU,9200
12
+ uk_bin_collection/uk_bin_collection/common.py,sha256=ZvylERlKexeHtqBRb2_fZhYxC8aoEpUtcGo0dzJnWUo,9837
13
13
  uk_bin_collection/uk_bin_collection/councils/AdurAndWorthingCouncils.py,sha256=ppbrmm-MzB1wOulK--CU_0j4P-djNf3ozMhHnmQFqLo,1511
14
14
  uk_bin_collection/uk_bin_collection/councils/ArunCouncil.py,sha256=yfhthv9nuogP19VOZ3TYQrq51qqjiCZcSel4sXhiKjs,4012
15
15
  uk_bin_collection/uk_bin_collection/councils/AylesburyValeCouncil.py,sha256=LouqjspEMt1TkOGqWHs2zkxwOETIy3n7p64uKIlAgUg,2401
@@ -19,18 +19,18 @@ uk_bin_collection/uk_bin_collection/councils/BarnsleyMBCouncil.py,sha256=MgF_7Xy
19
19
  uk_bin_collection/uk_bin_collection/councils/BasingstokeCouncil.py,sha256=VPWGljnH4C3q8qs5ZmCtqjNjgWQvviALzjk00q3EZeQ,2632
20
20
  uk_bin_collection/uk_bin_collection/councils/BathAndNorthEastSomersetCouncil.py,sha256=N_TPiIv8VBzN3rY0p3JtLlxSEru-6k1wW4UNIhN5X1M,3709
21
21
  uk_bin_collection/uk_bin_collection/councils/BedfordBoroughCouncil.py,sha256=CvGB7w9HMn7XyEtwfd9MWZE_HlZ75pDcaKMsQJz0xhk,1669
22
- uk_bin_collection/uk_bin_collection/councils/BedfordshireCouncil.py,sha256=MbjOgQDJRSVXe1OW_0QuDosk9TIvoibIS29WwYxVTC8,2548
22
+ uk_bin_collection/uk_bin_collection/councils/BedfordshireCouncil.py,sha256=U1HOr9YLMAlFoZysfw5n04E0bVuCliO5Yj1FMiiwcHA,2549
23
23
  uk_bin_collection/uk_bin_collection/councils/BexleyCouncil.py,sha256=9MrbpfR17R6DYjDrItQL3CPF7ie1SJkaoNbwQumPgIQ,5399
24
- uk_bin_collection/uk_bin_collection/councils/BirminghamCityCouncil.py,sha256=wIJgp7gjUL2zVALZNEz0YapDpvAXmriOswE03EqH49o,4130
24
+ uk_bin_collection/uk_bin_collection/councils/BirminghamCityCouncil.py,sha256=yrO9dnSMdqVTcrzqXXfexFxSuESW01VPxXNAl0_lNOU,4669
25
25
  uk_bin_collection/uk_bin_collection/councils/BlackburnCouncil.py,sha256=jHbCK8sL09vdmdP7Xnh8lIrU5AHTnJLEZfOLephPvWg,4090
26
26
  uk_bin_collection/uk_bin_collection/councils/BoltonCouncil.py,sha256=MrSzfK3EukRVasgP1nxAqg3lTkZzlAkDLJ2Nu5dJJ-0,4023
27
- uk_bin_collection/uk_bin_collection/councils/BracknellForestCouncil.py,sha256=35P9f4j6LpteYMaUhpE-NdfzupTRg0wEQyojH1n-OUw,9015
27
+ uk_bin_collection/uk_bin_collection/councils/BracknellForestCouncil.py,sha256=Llo1rULaAZ8rChVYZqXFFLo7CN6vbT0ULUJD6ActouY,9015
28
28
  uk_bin_collection/uk_bin_collection/councils/BradfordMDC.py,sha256=9EDTdhbGb8BQ5PLEw9eiWZ3BrS0TtoFpYOHQU44wc2k,4308
29
29
  uk_bin_collection/uk_bin_collection/councils/BrightonandHoveCityCouncil.py,sha256=k6qt4cds-Ejd97Z-__pw2BYvGVbFdc9SUfF73PPrTNA,5823
30
- uk_bin_collection/uk_bin_collection/councils/BristolCityCouncil.py,sha256=VT7k0AzcWL_h6E7Yr84NXs-FJ7qbYed7giR4HClHYE0,5575
31
- uk_bin_collection/uk_bin_collection/councils/BromleyBoroughCouncil.py,sha256=h92cM4SQwqFrBd9snnZuRgFjnftyZEoS7XfG3OUWa4k,4758
30
+ uk_bin_collection/uk_bin_collection/councils/BristolCityCouncil.py,sha256=kJmmDJz_kQ45DHmG7ocrUpNJonEn0kuXYEDQyZaf9ks,5576
31
+ uk_bin_collection/uk_bin_collection/councils/BromleyBoroughCouncil.py,sha256=_bAFykZWZkEVUB-QKeVLfWO8plG6nRgn71QF2BUN2rk,4329
32
32
  uk_bin_collection/uk_bin_collection/councils/BroxtoweBoroughCouncil.py,sha256=-Facq-ToQkcWUePpKBwq90LZUFxgUSydNL2sYaLX4yw,4473
33
- uk_bin_collection/uk_bin_collection/councils/BuckinghamshireCouncil.py,sha256=rMc3lwu8UivbUZBiRedDhT8nBQQ83tvinc0QtmFjJNI,3184
33
+ uk_bin_collection/uk_bin_collection/councils/BuckinghamshireCouncil.py,sha256=-EAj7-CCb1kWEglITePOsSCUknJRU9hnuS5sysCf19w,3319
34
34
  uk_bin_collection/uk_bin_collection/councils/BuryCouncil.py,sha256=H7wAxO1nfxkewVoRRolumq8bBJG04siE3jieFH3RGpQ,2632
35
35
  uk_bin_collection/uk_bin_collection/councils/CalderdaleCouncil.py,sha256=OJZcHYlvZDzmBpjjPPm3J8CRK9Twc49vRj7O9c5fyQ4,4971
36
36
  uk_bin_collection/uk_bin_collection/councils/CannockChaseDistrictCouncil.py,sha256=ZamevXN8_Q8mRZOTESWtkb8jVyDXkTczcmhXMAVVSkM,2276
@@ -44,14 +44,14 @@ uk_bin_collection/uk_bin_collection/councils/ChichesterDistrictCouncil.py,sha256
44
44
  uk_bin_collection/uk_bin_collection/councils/ChorleyCouncil.py,sha256=M7HjuUaFq8aSnOf_9m1QS4MmPPMmPhF3mLHSrfDPtV0,5194
45
45
  uk_bin_collection/uk_bin_collection/councils/ConwyCountyBorough.py,sha256=el75qv2QyfWZBU09tJLvD8vLQZ9pCg73u1NBFs6ybo8,1034
46
46
  uk_bin_collection/uk_bin_collection/councils/CrawleyBoroughCouncil.py,sha256=_BEKZAjlS5Ad5DjyxqAEFSLn8F-KYox0zmn4BXaAD6A,2367
47
- uk_bin_collection/uk_bin_collection/councils/CroydonCouncil.py,sha256=vaMbSKPmKZ2xzXuviTbENhAS20qzlIvdM3EpdHb505M,11593
48
- uk_bin_collection/uk_bin_collection/councils/DartfordBoroughCouncil.py,sha256=Tb4h0UBbVPo7nNFIzU3yj0aZsAuXnDPot3ORr2lnpv4,1603
47
+ uk_bin_collection/uk_bin_collection/councils/CroydonCouncil.py,sha256=QJH27plySbbmoNcLNUXq-hUiFmZ5zBlRS5mzOJgWSK8,11594
48
+ uk_bin_collection/uk_bin_collection/councils/DartfordBoroughCouncil.py,sha256=SPirUUoweMwX5Txtsr0ocdcFtKxCQ9LhzTTJN20tM4w,1550
49
49
  uk_bin_collection/uk_bin_collection/councils/DerbyshireDalesDistrictCouncil.py,sha256=MQC1-jXezXczrxTcvPQvkpGgyyAbzSKlX38WsmftHak,4007
50
50
  uk_bin_collection/uk_bin_collection/councils/DoncasterCouncil.py,sha256=b7pxoToXu6dBBYXsXmlwfPXE8BjHxt0hjCOBNlNgvX8,3118
51
51
  uk_bin_collection/uk_bin_collection/councils/DorsetCouncil.py,sha256=sdSR5ryOSWHtK_0OKJ75LGOvMiUAnQCc3uwT3xfqZ_0,2304
52
52
  uk_bin_collection/uk_bin_collection/councils/DoverDistrictCouncil.py,sha256=3Zgap6kaVpDXtRfBKEL1Ms6eb0iFIipYKNtOq3Hrdd4,1891
53
53
  uk_bin_collection/uk_bin_collection/councils/DurhamCouncil.py,sha256=6O8bNsQVYQbrCYQE9Rp0c_rtkcXuxR3s9J6jn4MK4_s,1695
54
- uk_bin_collection/uk_bin_collection/councils/EastCambridgeshireCouncil.py,sha256=_iSifwbdSFhnuhdf4U42xMQjkWJUalTytKPV-QGSNYU,1500
54
+ uk_bin_collection/uk_bin_collection/councils/EastCambridgeshireCouncil.py,sha256=aYUVE5QqTxdj8FHhCB4EiFVDJahWJD9Pq0d1upBEvXg,1501
55
55
  uk_bin_collection/uk_bin_collection/councils/EastDevonDC.py,sha256=U0VwSNIldMv5nUoiXtFgjbE0m6Kb-8W2WZQGVCNF_WI,3261
56
56
  uk_bin_collection/uk_bin_collection/councils/EastLindseyDistrictCouncil.py,sha256=o_HPSFhb2ybmwv32_7T7CO1f2mGDkYCNPfaM5xz6bUI,4356
57
57
  uk_bin_collection/uk_bin_collection/councils/EastRidingCouncil.py,sha256=CsYdkmL-8Ty-Kz7uNdlnJnhiDMgOPah_swYgSKbaFqA,5218
@@ -68,7 +68,7 @@ uk_bin_collection/uk_bin_collection/councils/GedlingBoroughCouncil.py,sha256=3Dp
68
68
  uk_bin_collection/uk_bin_collection/councils/GlasgowCityCouncil.py,sha256=IOgM8Wl-LpO1T-F9uU1FlVfPaEObpvsdP7S2h03Mycc,2528
69
69
  uk_bin_collection/uk_bin_collection/councils/GuildfordCouncil.py,sha256=9pVrmQhZcK2AD8gX8mNvP--L4L9KaY6L3B822VX6fec,5695
70
70
  uk_bin_collection/uk_bin_collection/councils/HaltonBoroughCouncil.py,sha256=r8cmtWhMJg-XG63ZHxidKKW7i4yQNrZSSMSCkBwrqjI,5837
71
- uk_bin_collection/uk_bin_collection/councils/HaringeyCouncil.py,sha256=Fk3NRQUl_DHXXlEZ0C-mDW9d4TBomVC9m50WRVOC8Go,2362
71
+ uk_bin_collection/uk_bin_collection/councils/HaringeyCouncil.py,sha256=t_6AkAu4wrv8Q0WlDhWh_82I0djl5tk531Pzs-SjWzg,2647
72
72
  uk_bin_collection/uk_bin_collection/councils/HarrogateBoroughCouncil.py,sha256=_g3fP5Nq-OUjgNrfRf4UEyFKzq0x8QK-4enh5RP1efA,2050
73
73
  uk_bin_collection/uk_bin_collection/councils/HighPeakCouncil.py,sha256=oybn_cbzjBTEPLH-Ya6WaoRTvMHxLV6a0zXCX-AhOjY,4815
74
74
  uk_bin_collection/uk_bin_collection/councils/HounslowCouncil.py,sha256=LXhJ47rujx7k3naz0tFiTT1l5k6gAYcVdekJN1t_HLY,4564
@@ -77,15 +77,15 @@ uk_bin_collection/uk_bin_collection/councils/HuntingdonDistrictCouncil.py,sha256
77
77
  uk_bin_collection/uk_bin_collection/councils/KingstonUponThamesCouncil.py,sha256=iZ7njIxccCGBhUUWWd9Azh7cxUAKaofebCm3lo-TuxA,3543
78
78
  uk_bin_collection/uk_bin_collection/councils/KirkleesCouncil.py,sha256=gtAtM6FappSZ0-BKid7_pnSrnqPPjHn_UYWqMg9wQlM,4499
79
79
  uk_bin_collection/uk_bin_collection/councils/KnowsleyMBCouncil.py,sha256=VdlWDESoHfr_X0r8-UMaLMUQhKZOa2BnpVPkX-1u3EQ,5605
80
- uk_bin_collection/uk_bin_collection/councils/LancasterCityCouncil.py,sha256=_wOByXM_IN1jSkeQq76kdPXkndDEO49_gqQiRSe74do,2535
80
+ uk_bin_collection/uk_bin_collection/councils/LancasterCityCouncil.py,sha256=FmHT6oyD4BwWuhxA80PHnGA7HPrLuyjP_54Cg8hT6k4,2537
81
81
  uk_bin_collection/uk_bin_collection/councils/LeedsCityCouncil.py,sha256=iSZApZ9oSfSatQ6dAxmykSfti91jGuY6n2BwEkVMOiU,5144
82
- uk_bin_collection/uk_bin_collection/councils/LisburnCastlereaghCityCouncil.py,sha256=SChaWQkoOpwQ9W27vK3RMHGEyfz36UQQRbT7qJrRtxQ,3308
82
+ uk_bin_collection/uk_bin_collection/councils/LisburnCastlereaghCityCouncil.py,sha256=vSOzdEwp9ZeUhed7E3eVv9ReD-2XgbSkpyAbVnfc-Gk,3309
83
83
  uk_bin_collection/uk_bin_collection/councils/LiverpoolCityCouncil.py,sha256=n17OqZrCGrPrnxGUfHc-RGkb4oJ9Bx6uUWiLdzxfQlY,2587
84
84
  uk_bin_collection/uk_bin_collection/councils/LondonBoroughHounslow.py,sha256=UOeiOxGMvVMm2UFaqjmQpm7vxzqJNSSN8LM9lAUjs2c,3021
85
85
  uk_bin_collection/uk_bin_collection/councils/LondonBoroughRedbridge.py,sha256=A_6Sis5hsF53Th04KeadHRasGbpAm6aoaWJ6X8eC4Y8,6604
86
86
  uk_bin_collection/uk_bin_collection/councils/MaldonDistrictCouncil.py,sha256=PMVt2XFggttPmbWyrBrHJ-W6R_6-0ux1BkY1kj1IKzg,1997
87
87
  uk_bin_collection/uk_bin_collection/councils/MalvernHillsDC.py,sha256=iQG0EkX2npBicvsGKQRYyBGSBvKVUbKvUvvwrC9xV1A,2100
88
- uk_bin_collection/uk_bin_collection/councils/ManchesterCityCouncil.py,sha256=ZgBMja1jvuj1nWmHHAvrf0FH3_HuysPR7eEved1C_hY,4919
88
+ uk_bin_collection/uk_bin_collection/councils/ManchesterCityCouncil.py,sha256=RFXC4bRDYZgeFIzfsOWZXoBEWV7mNiM0HejhcPsP3a0,4920
89
89
  uk_bin_collection/uk_bin_collection/councils/MansfieldDistrictCouncil.py,sha256=F5AiTxImrnjE1k3ry96bfstOf5XSNBJS_4qqmymmh3w,1386
90
90
  uk_bin_collection/uk_bin_collection/councils/MertonCouncil.py,sha256=3Y2Un4xXo1sCcMsudynODSzocV_mMofWkX2JqONDb5o,1997
91
91
  uk_bin_collection/uk_bin_collection/councils/MidAndEastAntrimBoroughCouncil.py,sha256=oOWwU5FSgGej2Mv7FQ66N-EzS5nZgmGsd0WnfLWUc1I,5238
@@ -93,10 +93,11 @@ uk_bin_collection/uk_bin_collection/councils/MidSussexDistrictCouncil.py,sha256=
93
93
  uk_bin_collection/uk_bin_collection/councils/MiltonKeynesCityCouncil.py,sha256=3olsWa77L34vz-c7NgeGK9xmNuR4Ws_oAk5D4UpIkPw,2005
94
94
  uk_bin_collection/uk_bin_collection/councils/MoleValleyDistrictCouncil.py,sha256=54-autRRGAM4pBxlqmUE6g825rmUF-gRqrcgHL_lkIk,3994
95
95
  uk_bin_collection/uk_bin_collection/councils/NeathPortTalbotCouncil.py,sha256=2DJ0gK385CWTdJzWyDdmNBTTrwX6F5YbIXg7di2oXDQ,5506
96
+ uk_bin_collection/uk_bin_collection/councils/NewForestCouncil.py,sha256=ylTn9KmWITtaO9_Z8kJCN2w2ALfhrfGt3SeJ78lgw7M,5391
96
97
  uk_bin_collection/uk_bin_collection/councils/NewarkAndSherwoodDC.py,sha256=lAleYfCGUWCKOi7Ye_cjgfpI3pWwTcFctlYmh0hjebM,2140
97
98
  uk_bin_collection/uk_bin_collection/councils/NewcastleCityCouncil.py,sha256=eJMX10CG9QO7FRhHSmUDL-jO_44qoK3_1ztNTAXhkbw,2085
98
99
  uk_bin_collection/uk_bin_collection/councils/NewhamCouncil.py,sha256=klFqr2Km1BuQ4wERmjbXZzOvN1N0jnVmhTGRSVzVOaU,2086
99
- uk_bin_collection/uk_bin_collection/councils/NewportCityCouncil.py,sha256=dPeDmxNT1QT6C_V30PZFHypqQrvppzE3qF12a5gF94E,8479
100
+ uk_bin_collection/uk_bin_collection/councils/NewportCityCouncil.py,sha256=dAcl5P97bttl2xCPvxof1a18kmqOrMmiElgtn3Ej7zs,8480
100
101
  uk_bin_collection/uk_bin_collection/councils/NorthEastDerbyshireDistrictCouncil.py,sha256=bps_uCFAeUHQla7AE5lZOv6sUkUz1fb6zduZdAcYMuw,4651
101
102
  uk_bin_collection/uk_bin_collection/councils/NorthEastLincs.py,sha256=fYf438VZIaOaqPSwdTTWVjFTdrI0jGfFsxVzOc-QdkA,1817
102
103
  uk_bin_collection/uk_bin_collection/councils/NorthKestevenDistrictCouncil.py,sha256=vYOCerJXr9LTP6F2wm4vpYNYbQaWNZ6yfHEQ33N_hTw,1681
@@ -105,7 +106,7 @@ uk_bin_collection/uk_bin_collection/councils/NorthLincolnshireCouncil.py,sha256=
105
106
  uk_bin_collection/uk_bin_collection/councils/NorthNorfolkDistrictCouncil.py,sha256=VV_zqVZYv8ekXcUHhrBlTX_W5qLYE9IA3mT2xmrZqoI,4315
106
107
  uk_bin_collection/uk_bin_collection/councils/NorthNorthamptonshireCouncil.py,sha256=kcMN-5GBjYDM9F1BKfHoYeydub8SuDxHamJbSvJRZ68,2337
107
108
  uk_bin_collection/uk_bin_collection/councils/NorthSomersetCouncil.py,sha256=EbFVnPYZIOkru5_Y75kjljM3Cr3HIJgP-SU6hxgf6tk,2754
108
- uk_bin_collection/uk_bin_collection/councils/NorthTynesideCouncil.py,sha256=h2VzxJot0JjHX5IacfRBvZTxEBu5bdAlw_4CYnSXztM,11352
109
+ uk_bin_collection/uk_bin_collection/councils/NorthTynesideCouncil.py,sha256=waH6_PyJaiEF-v9HR3C_aUdiPTcdHlxfAuuuKBsvkII,11353
109
110
  uk_bin_collection/uk_bin_collection/councils/NorthWestLeicestershire.py,sha256=gJj0dyQc5QUefqusKGk2LLXfWbG5tlEXUOh8KAPh3RI,4584
110
111
  uk_bin_collection/uk_bin_collection/councils/NorthYorkshire.py,sha256=2wTrr3VrZDp9-YtDPmWd649gXeWH4hbm2-Hw8Vau5Xs,1933
111
112
  uk_bin_collection/uk_bin_collection/councils/NorthumberlandCouncil.py,sha256=KEFsxEvQ159fkuFo-fza67YCnnCZ5ElwE80zTrqDEWI,4990
@@ -127,9 +128,9 @@ uk_bin_collection/uk_bin_collection/councils/SevenoaksDistrictCouncil.py,sha256=
127
128
  uk_bin_collection/uk_bin_collection/councils/SheffieldCityCouncil.py,sha256=9g9AeiackoWyej9EVlKUzywzAtMuBVD0f93ZryAUha8,2016
128
129
  uk_bin_collection/uk_bin_collection/councils/ShropshireCouncil.py,sha256=6OIEhJmv-zLJiEo8WaJePA7JuhNRGkh2WohFLhzN8Kk,1477
129
130
  uk_bin_collection/uk_bin_collection/councils/SolihullCouncil.py,sha256=gbTHjbdV46evGfLfF8rxVMQIgNZD-XPHgZeuyje7kGY,1609
130
- uk_bin_collection/uk_bin_collection/councils/SomersetCouncil.py,sha256=zsbpknHcIWK1MVW0FreIcaEienbWs3c5q32KKGQl1IE,8479
131
+ uk_bin_collection/uk_bin_collection/councils/SomersetCouncil.py,sha256=CZJnkCGn4-yH31HH5_ix-8V2_vsjGuKYxgzAPGZdSAw,8480
131
132
  uk_bin_collection/uk_bin_collection/councils/SouthAyrshireCouncil.py,sha256=03eapeXwxneKI4ccKPSHoviIbhmV1m90I-0WQ_s3KsY,2722
132
- uk_bin_collection/uk_bin_collection/councils/SouthCambridgeshireCouncil.py,sha256=2DvHgy5EuopGyY4EV8us8B4BN82qt1N8RWMJszjenHc,2307
133
+ uk_bin_collection/uk_bin_collection/councils/SouthCambridgeshireCouncil.py,sha256=xGSMcikxjS4UzqKs0X50LJKmn09C-XAAs98SPhNZgkQ,2308
133
134
  uk_bin_collection/uk_bin_collection/councils/SouthGloucestershireCouncil.py,sha256=ytQot0J7i6DTJo6hb9koTB1UpXLATKVeRU4FBF9kHRo,2412
134
135
  uk_bin_collection/uk_bin_collection/councils/SouthKestevenDistrictCouncil.py,sha256=AgycOW-UIAm5_c8QondfKL0n4wUA4cbaN_Jp0e8g494,5587
135
136
  uk_bin_collection/uk_bin_collection/councils/SouthLanarkshireCouncil.py,sha256=fj-eZI0yrvQVCv8GvhcovZ3b9bV6Xv_ws3IunWjnv4U,3126
@@ -137,7 +138,8 @@ uk_bin_collection/uk_bin_collection/councils/SouthNorfolkCouncil.py,sha256=ThO-o
137
138
  uk_bin_collection/uk_bin_collection/councils/SouthOxfordshireCouncil.py,sha256=zW4bN3hcqNoK_Y0-vPpuZs3K0LTPvApu6_v9K-D7WjE,3879
138
139
  uk_bin_collection/uk_bin_collection/councils/SouthTynesideCouncil.py,sha256=dxXGrJfg_fn2IPTBgq6Duwy0WY8GYLafMuisaCjOnbs,3426
139
140
  uk_bin_collection/uk_bin_collection/councils/StAlbansCityAndDistrictCouncil.py,sha256=mPZz6Za6kTSkrfHnj0OfwtnpRYR1dKvxbuFEKnWsiL8,1451
140
- uk_bin_collection/uk_bin_collection/councils/StHelensBC.py,sha256=E3kxbreq1BAOegT7T85Mz88rBvAsxcPNn96nSJDETbI,2068
141
+ uk_bin_collection/uk_bin_collection/councils/StHelensBC.py,sha256=c7ZM8gnUkKdz9GYIhFLzTtwN0KAoMEKomTWDVbtJIpM,2069
142
+ uk_bin_collection/uk_bin_collection/councils/StaffordBoroughCouncil.py,sha256=9Qj4HJI7Dbiqb2mVSG2UtkBe27Y7wvQ5SYFTwGzJ5g0,2292
141
143
  uk_bin_collection/uk_bin_collection/councils/StaffordshireMoorlandsDistrictCouncil.py,sha256=_N8Cg26EbTaKp0RsWvQuELVcZDHbT2BlD2LW8qhkS_Q,4361
142
144
  uk_bin_collection/uk_bin_collection/councils/StockportBoroughCouncil.py,sha256=v0HmioNVRoU1-9OnLJl2V3M5pVR1aVu1BgOLHFR1Sf4,1429
143
145
  uk_bin_collection/uk_bin_collection/councils/StokeOnTrentCityCouncil.py,sha256=KM0EgWeO7mk8lkozX0RCTfMchXdjrfBqIjCiOtB09aM,2884
@@ -145,20 +147,23 @@ uk_bin_collection/uk_bin_collection/councils/StratfordUponAvonCouncil.py,sha256=
145
147
  uk_bin_collection/uk_bin_collection/councils/StroudDistrictCouncil.py,sha256=9bYWppi7ViLGHL4VEg--nFn28MLYJYbiEntull1uZxU,3561
146
148
  uk_bin_collection/uk_bin_collection/councils/SunderlandCityCouncil.py,sha256=4DnKyyu56_AwuchD6_oL1dvpDStMvkkxQtYN79rUKOs,3825
147
149
  uk_bin_collection/uk_bin_collection/councils/SwaleBoroughCouncil.py,sha256=CCAjclhkCxwf_MkdrIif7MZpLfV5SPy7hyM7BE0TRPc,2048
150
+ uk_bin_collection/uk_bin_collection/councils/SwanseaCouncil.py,sha256=nmVPoPhnFgVi--vczX2i4Sf3bqM5RWJuwfhioRUr5XE,2303
148
151
  uk_bin_collection/uk_bin_collection/councils/TamesideMBCouncil.py,sha256=k2TAAZG7n2S1BWVyxbE_-4-lZuzhOimCNz4yimUCOGk,1995
149
152
  uk_bin_collection/uk_bin_collection/councils/TandridgeDistrictCouncil.py,sha256=KLVvM2NNq_DQylVe5dwO2l7qPahLHg08jJGLCv1MBQ4,2324
150
153
  uk_bin_collection/uk_bin_collection/councils/TelfordAndWrekinCouncil.py,sha256=p1ZS5R4EGxbEWlRBrkGXgKwE_lkyBT-R60yKFFhVObc,1844
151
154
  uk_bin_collection/uk_bin_collection/councils/TendringDistrictCouncil.py,sha256=DJbYI8m6lIISDrK5h8V5Jo-9kGG7kr9dz7GD8St4nc8,4274
152
- uk_bin_collection/uk_bin_collection/councils/TestValleyBoroughCouncil.py,sha256=ohbndldGHqx6AXKaJLNYWpSK4umKaBU6YaWlgYhR1HI,8479
155
+ uk_bin_collection/uk_bin_collection/councils/TestValleyBoroughCouncil.py,sha256=Dtfkyrwt795W7gqFJxVGRR8t3R5WMNQZwTWJckLpZWE,8480
156
+ uk_bin_collection/uk_bin_collection/councils/ThreeRiversDistrictCouncil.py,sha256=oZSW0Y5QHdqVy2fLys4sdB13tHgeNLha9WCUqG_R-gU,5527
153
157
  uk_bin_collection/uk_bin_collection/councils/TonbridgeAndMallingBC.py,sha256=UlgnHDoi8ecav2H5-HqKNDpqW1J3RN-c___5c08_Q7I,4859
154
158
  uk_bin_collection/uk_bin_collection/councils/TorbayCouncil.py,sha256=JW_BS7wkfxFsmx6taQtPAQWdBp1AfLrxs0XRQ2XZcSw,2029
155
159
  uk_bin_collection/uk_bin_collection/councils/TorridgeDistrictCouncil.py,sha256=6gOO02pYU0cbj3LAHiBVNG4zkFMyIGbkE2jAye3KcGM,6386
160
+ uk_bin_collection/uk_bin_collection/councils/UttlesfordDistrictCouncil.py,sha256=8CvO-WgdKdvyaOf3TYc4XwME8ogAXojgB40oyGRL8Dw,4129
156
161
  uk_bin_collection/uk_bin_collection/councils/ValeofGlamorganCouncil.py,sha256=Phgb_ECiUOOkqOx6OsfsTHMCW5VQfRmOC2zgYIQhuZA,5044
157
162
  uk_bin_collection/uk_bin_collection/councils/ValeofWhiteHorseCouncil.py,sha256=5nZLbU5YVKNsJ2X_wuybrNLFAzjVAxkazu-bYP4IGXw,4292
158
163
  uk_bin_collection/uk_bin_collection/councils/WakefieldCityCouncil.py,sha256=9zW4C0WKbsDLCKvFyVYFpyvp20JbrWc4G0HzadqF8WQ,4466
159
164
  uk_bin_collection/uk_bin_collection/councils/WalthamForest.py,sha256=P7MMw0EhpRmDbbnHb25tY5_yvYuZUFwJ1br4TOv24sY,4997
160
165
  uk_bin_collection/uk_bin_collection/councils/WarwickDistrictCouncil.py,sha256=3WQrAxzYzKoV4LyOqNTp9xINVsNi1xW9t8etducGeag,1146
161
- uk_bin_collection/uk_bin_collection/councils/WaverleyBoroughCouncil.py,sha256=nhGbhcGyeULLWhpkwRC1anZbQOmZxMhC-VRHIj2ZJlY,4661
166
+ uk_bin_collection/uk_bin_collection/councils/WaverleyBoroughCouncil.py,sha256=tp9l7vdgSGRzNNG0pDfnNuFj4D2bpRJUJmAiTJ6bM0g,4662
162
167
  uk_bin_collection/uk_bin_collection/councils/WealdenDistrictCouncil.py,sha256=SvSSaLkx7iJjzypAwKkaJwegXkSsIQtUOS2V605kz1A,3368
163
168
  uk_bin_collection/uk_bin_collection/councils/WelhatCouncil.py,sha256=ikUft37dYNJghfe-_6Fskiq1JihqpLmLNj38QkKSUUA,2316
164
169
  uk_bin_collection/uk_bin_collection/councils/WestBerkshireCouncil.py,sha256=r90AIUdPgo85VuuvN_NeCDUy3NEJXdO4Ntt93yKo6qI,5110
@@ -166,17 +171,18 @@ uk_bin_collection/uk_bin_collection/councils/WestLindseyDistrictCouncil.py,sha25
166
171
  uk_bin_collection/uk_bin_collection/councils/WestLothianCouncil.py,sha256=dq0jimtARvRkZiGbVFrXXZgY-BODtz3uYZ5UKn0bf64,4114
167
172
  uk_bin_collection/uk_bin_collection/councils/WestNorthamptonshireCouncil.py,sha256=F1GeJUGND4DN_HuM6N0Elpeb0DAMm9_KeqG6qtIgZf4,1079
168
173
  uk_bin_collection/uk_bin_collection/councils/WestSuffolkCouncil.py,sha256=HMFWxM7VMhBuC7iubNGbZYEoCVWi--gRHDJMVdPPFOM,2633
169
- uk_bin_collection/uk_bin_collection/councils/WiganBoroughCouncil.py,sha256=YEbpbjkparhah4ahl6WZzI0mMHNrbKzdC6kA5gDQCUA,3745
174
+ uk_bin_collection/uk_bin_collection/councils/WiganBoroughCouncil.py,sha256=3gqFA4-BVx_In6QOu3KUNqPN4Fkn9iMlZTeopMK9p6A,3746
170
175
  uk_bin_collection/uk_bin_collection/councils/WiltshireCouncil.py,sha256=it2Oh5Kmq3lD30gAZgk2bzZPNCtJcFHyQO1NgOQtfvU,5653
171
- uk_bin_collection/uk_bin_collection/councils/WindsorAndMaidenheadCouncil.py,sha256=triYeI4IIHF6_XMokF6BGAZkx_lPAXeGyuS9DEr5UxY,5553
172
- uk_bin_collection/uk_bin_collection/councils/WokingBoroughCouncil.py,sha256=EUfFU1lNvV0Ry5CpdE2rBJ2zRfsPfi9hg0ux3wYAmzw,5202
176
+ uk_bin_collection/uk_bin_collection/councils/WindsorAndMaidenheadCouncil.py,sha256=yG5iu294q138Bvk-0IPd4pJDFsOQPDmtU5XXytxnAnA,5554
177
+ uk_bin_collection/uk_bin_collection/councils/WokingBoroughCouncil.py,sha256=37igH9g0xe4XIhRhcJ-ZJBU8MxTp5yzgpadWbdE33Yg,5205
178
+ uk_bin_collection/uk_bin_collection/councils/WychavonDistrictCouncil.py,sha256=YuZdzEW0CZLwusm1VQcGRIKXAab_UDFLaCnN60itt_E,5776
173
179
  uk_bin_collection/uk_bin_collection/councils/WyreCouncil.py,sha256=zDDa7n4K_zm5PgDL08A26gD9yOOsOhuexI3x2seaBF4,3511
174
180
  uk_bin_collection/uk_bin_collection/councils/YorkCouncil.py,sha256=I2kBYMlsD4bIdsvmoSzBjJAvTTi6yPfJa8xjJx1ys2w,1490
175
181
  uk_bin_collection/uk_bin_collection/councils/council_class_template/councilclasstemplate.py,sha256=4s9ODGPAwPqwXc8SrTX5Wlfmizs3_58iXUtHc4Ir86o,1162
176
182
  uk_bin_collection/uk_bin_collection/create_new_council.py,sha256=m-IhmWmeWQlFsTZC4OxuFvtw5ZtB8EAJHxJTH4O59lQ,1536
177
183
  uk_bin_collection/uk_bin_collection/get_bin_data.py,sha256=9qppF2oPkhmOoK8-ZkRIU1M6vhBh-yUCWAZEEd07iLk,5414
178
- uk_bin_collection-0.79.1.dist-info/LICENSE,sha256=vABBUOzcrgfaTKpzeo-si9YVEun6juDkndqA8RKdKGs,1071
179
- uk_bin_collection-0.79.1.dist-info/METADATA,sha256=w2DCdkv5RH9V3BESIiNoa7Vk4PB1mAvkPp4OYOGX5u8,12594
180
- uk_bin_collection-0.79.1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
181
- uk_bin_collection-0.79.1.dist-info/entry_points.txt,sha256=36WCSGMWSc916S3Hi1ZkazzDKHaJ6CD-4fCEFm5MIao,90
182
- uk_bin_collection-0.79.1.dist-info/RECORD,,
184
+ uk_bin_collection-0.81.0.dist-info/LICENSE,sha256=vABBUOzcrgfaTKpzeo-si9YVEun6juDkndqA8RKdKGs,1071
185
+ uk_bin_collection-0.81.0.dist-info/METADATA,sha256=FY2xzwnZMQ0FiEomvCzrJHbqIVc1RuPvo9dPwPxexR4,12594
186
+ uk_bin_collection-0.81.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
187
+ uk_bin_collection-0.81.0.dist-info/entry_points.txt,sha256=36WCSGMWSc916S3Hi1ZkazzDKHaJ6CD-4fCEFm5MIao,90
188
+ uk_bin_collection-0.81.0.dist-info/RECORD,,