uk_bin_collection 0.154.0__py3-none-any.whl → 0.158.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.
- uk_bin_collection/tests/input.json +21 -10
- uk_bin_collection/uk_bin_collection/councils/AberdeenCityCouncil.py +0 -1
- uk_bin_collection/uk_bin_collection/councils/DacorumBoroughCouncil.py +22 -13
- uk_bin_collection/uk_bin_collection/councils/EastDunbartonshireCouncil.py +52 -0
- uk_bin_collection/uk_bin_collection/councils/IslingtonCouncil.py +8 -5
- uk_bin_collection/uk_bin_collection/councils/LancasterCityCouncil.py +23 -10
- uk_bin_collection/uk_bin_collection/councils/LondonBoroughSutton.py +60 -49
- uk_bin_collection/uk_bin_collection/councils/MidSuffolkDistrictCouncil.py +70 -92
- uk_bin_collection/uk_bin_collection/councils/NewForestCouncil.py +104 -47
- uk_bin_collection/uk_bin_collection/councils/NewportCityCouncil.py +138 -21
- uk_bin_collection/uk_bin_collection/councils/NorthumberlandCouncil.py +182 -3
- uk_bin_collection/uk_bin_collection/councils/OxfordCityCouncil.py +1 -0
- uk_bin_collection/uk_bin_collection/councils/RenfrewshireCouncil.py +170 -13
- uk_bin_collection/uk_bin_collection/councils/RotherhamCouncil.py +70 -38
- uk_bin_collection/uk_bin_collection/councils/SomersetCouncil.py +136 -21
- uk_bin_collection/uk_bin_collection/councils/SouthGloucestershireCouncil.py +18 -22
- uk_bin_collection/uk_bin_collection/councils/TestValleyBoroughCouncil.py +138 -21
- {uk_bin_collection-0.154.0.dist-info → uk_bin_collection-0.158.0.dist-info}/METADATA +1 -1
- {uk_bin_collection-0.154.0.dist-info → uk_bin_collection-0.158.0.dist-info}/RECORD +22 -21
- {uk_bin_collection-0.154.0.dist-info → uk_bin_collection-0.158.0.dist-info}/LICENSE +0 -0
- {uk_bin_collection-0.154.0.dist-info → uk_bin_collection-0.158.0.dist-info}/WHEEL +0 -0
- {uk_bin_collection-0.154.0.dist-info → uk_bin_collection-0.158.0.dist-info}/entry_points.txt +0 -0
@@ -1,4 +1,9 @@
|
|
1
|
+
import datetime
|
2
|
+
|
1
3
|
from bs4 import BeautifulSoup
|
4
|
+
from selenium.webdriver.common.by import By
|
5
|
+
from selenium.webdriver.support import expected_conditions as EC
|
6
|
+
from selenium.webdriver.support.wait import WebDriverWait
|
2
7
|
|
3
8
|
from uk_bin_collection.uk_bin_collection.common import *
|
4
9
|
from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass
|
@@ -13,6 +18,7 @@ class CouncilClass(AbstractGetBinDataClass):
|
|
13
18
|
"""
|
14
19
|
|
15
20
|
def parse_data(self, page: str, **kwargs) -> dict:
|
21
|
+
<<<<<<< HEAD
|
16
22
|
user_postcode = kwargs.get("postcode")
|
17
23
|
check_postcode(user_postcode)
|
18
24
|
user_uprn = kwargs.get("uprn")
|
@@ -43,10 +49,16 @@ class CouncilClass(AbstractGetBinDataClass):
|
|
43
49
|
i["data-for"]: i.get("value", "")
|
44
50
|
for i in soup.select("input[data-for]")
|
45
51
|
}
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
)
|
52
|
+
|
53
|
+
# Check if required form elements exist
|
54
|
+
salt_element = soup.select_one('input[id="pSalt"]')
|
55
|
+
protected_element = soup.select_one('input[id="pPageItemsProtected"]')
|
56
|
+
|
57
|
+
if not salt_element or not protected_element:
|
58
|
+
raise Exception("Required form elements not found. The council website may have changed or be unavailable.")
|
59
|
+
|
60
|
+
payload_salt = salt_element.get("value")
|
61
|
+
payload_protected = protected_element.get("value")
|
50
62
|
|
51
63
|
# Add the PostCode and 'SEARCH' to the payload
|
52
64
|
payload["p_request"] = "SEARCH"
|
@@ -123,10 +135,16 @@ class CouncilClass(AbstractGetBinDataClass):
|
|
123
135
|
i["data-for"]: i.get("value", "")
|
124
136
|
for i in soup.select("input[data-for]")
|
125
137
|
}
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
)
|
138
|
+
|
139
|
+
# Check if required form elements exist
|
140
|
+
salt_element = soup.select_one('input[id="pSalt"]')
|
141
|
+
protected_element = soup.select_one('input[id="pPageItemsProtected"]')
|
142
|
+
|
143
|
+
if not salt_element or not protected_element:
|
144
|
+
raise Exception("Required form elements not found. The council website may have changed or be unavailable.")
|
145
|
+
|
146
|
+
payload_salt = salt_element.get("value")
|
147
|
+
payload_protected = protected_element.get("value")
|
130
148
|
|
131
149
|
# Add the UPRN and 'SUBMIT' to the payload
|
132
150
|
payload["p_request"] = "SUBMIT"
|
@@ -187,18 +205,117 @@ class CouncilClass(AbstractGetBinDataClass):
|
|
187
205
|
|
188
206
|
# Create a BeautifulSoup object from the page's HTML
|
189
207
|
soup = BeautifulSoup(resource.text, "html.parser")
|
208
|
+
=======
|
209
|
+
driver = None
|
210
|
+
try:
|
211
|
+
>>>>>>> master
|
190
212
|
data = {"bins": []}
|
213
|
+
url = kwargs.get("url")
|
214
|
+
user_paon = kwargs.get("paon")
|
215
|
+
user_postcode = kwargs.get("postcode")
|
216
|
+
web_driver = kwargs.get("web_driver")
|
217
|
+
headless = kwargs.get("headless")
|
218
|
+
check_paon(user_paon)
|
219
|
+
check_postcode(user_postcode)
|
220
|
+
|
221
|
+
# Use a realistic user agent to help bypass Cloudflare
|
222
|
+
user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
|
223
|
+
driver = create_webdriver(web_driver, headless, user_agent, __name__)
|
224
|
+
driver.get(
|
225
|
+
"https://testvalley.gov.uk/wasteandrecycling/when-are-my-bins-collected/when-are-my-bins-collected"
|
226
|
+
)
|
227
|
+
|
228
|
+
# Wait for the postcode field to appear then populate it
|
229
|
+
inputElement_postcode = WebDriverWait(driver, 30).until(
|
230
|
+
EC.presence_of_element_located((By.ID, "postcodeSearch"))
|
231
|
+
)
|
232
|
+
inputElement_postcode.send_keys(user_postcode)
|
233
|
+
|
234
|
+
# Click search button
|
235
|
+
findAddress = WebDriverWait(driver, 10).until(
|
236
|
+
EC.presence_of_element_located((By.CLASS_NAME, "govuk-button"))
|
237
|
+
)
|
238
|
+
findAddress.click()
|
239
|
+
|
240
|
+
# Wait for the 'Select address' dropdown to appear and select option matching the house name/number
|
241
|
+
WebDriverWait(driver, 10).until(
|
242
|
+
EC.element_to_be_clickable(
|
243
|
+
(
|
244
|
+
By.XPATH,
|
245
|
+
"//select[@id='addressSelect']//option[contains(., '"
|
246
|
+
+ user_paon
|
247
|
+
+ "')]",
|
248
|
+
)
|
249
|
+
)
|
250
|
+
).click()
|
251
|
+
|
252
|
+
# Wait for the collections table to appear
|
253
|
+
WebDriverWait(driver, 20).until(
|
254
|
+
EC.presence_of_element_located(
|
255
|
+
(
|
256
|
+
By.XPATH,
|
257
|
+
"//h2[contains(@class,'mt-4') and contains(@class,'govuk-heading-s') and normalize-space(.)='Your next collections']",
|
258
|
+
)
|
259
|
+
)
|
260
|
+
)
|
261
|
+
|
262
|
+
soup = BeautifulSoup(driver.page_source, features="html.parser")
|
263
|
+
|
264
|
+
collections = soup.find_all("div", {"class": "p-2"})
|
265
|
+
|
266
|
+
for collection in collections:
|
267
|
+
bin_type = collection.find("h3").get_text()
|
268
|
+
|
269
|
+
next_collection = soup.find("div", {"class": "fw-bold"}).get_text()
|
270
|
+
|
271
|
+
following_collection = soup.find(
|
272
|
+
lambda t: (
|
273
|
+
t.name == "div"
|
274
|
+
and t.get_text(strip=True).lower().startswith("followed by")
|
275
|
+
)
|
276
|
+
).get_text()
|
277
|
+
|
278
|
+
next_collection_date = datetime.strptime(next_collection, "%A %d %B")
|
279
|
+
|
280
|
+
following_collection_date = datetime.strptime(
|
281
|
+
following_collection, "followed by %A %d %B"
|
282
|
+
)
|
283
|
+
|
284
|
+
current_date = datetime.now()
|
285
|
+
next_collection_date = next_collection_date.replace(
|
286
|
+
year=current_date.year
|
287
|
+
)
|
288
|
+
following_collection_date = following_collection_date.replace(
|
289
|
+
year=current_date.year
|
290
|
+
)
|
291
|
+
|
292
|
+
next_collection_date = get_next_occurrence_from_day_month(
|
293
|
+
next_collection_date
|
294
|
+
)
|
295
|
+
|
296
|
+
following_collection_date = get_next_occurrence_from_day_month(
|
297
|
+
following_collection_date
|
298
|
+
)
|
299
|
+
|
300
|
+
dict_data = {
|
301
|
+
"type": bin_type,
|
302
|
+
"collectionDate": next_collection_date.strftime(date_format),
|
303
|
+
}
|
304
|
+
data["bins"].append(dict_data)
|
305
|
+
|
306
|
+
dict_data = {
|
307
|
+
"type": bin_type,
|
308
|
+
"collectionDate": following_collection_date.strftime(date_format),
|
309
|
+
}
|
310
|
+
data["bins"].append(dict_data)
|
191
311
|
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
data["bins"].append(dict_data)
|
203
|
-
|
204
|
-
return data
|
312
|
+
except Exception as e:
|
313
|
+
# Here you can log the exception if needed
|
314
|
+
print(f"An error occurred: {e}")
|
315
|
+
# Optionally, re-raise the exception if you want it to propagate
|
316
|
+
raise
|
317
|
+
finally:
|
318
|
+
# This block ensures that the driver is closed regardless of an exception
|
319
|
+
if driver:
|
320
|
+
driver.quit()
|
321
|
+
return data
|
@@ -7,7 +7,7 @@ uk_bin_collection/tests/council_feature_input_parity.py,sha256=DO6Mk4ImYgM5ZCZ-c
|
|
7
7
|
uk_bin_collection/tests/features/environment.py,sha256=VQZjJdJI_kZn08M0j5cUgvKT4k3iTw8icJge1DGOkoA,127
|
8
8
|
uk_bin_collection/tests/features/validate_council_outputs.feature,sha256=SJK-Vc737hrf03tssxxbeg_JIvAH-ddB8f6gU1LTbuQ,251
|
9
9
|
uk_bin_collection/tests/generate_map_test_results.py,sha256=CKnGK2ZgiSXomRGkomX90DitgMP-X7wkHhyKORDcL2E,1144
|
10
|
-
uk_bin_collection/tests/input.json,sha256=
|
10
|
+
uk_bin_collection/tests/input.json,sha256=bURoXzL_7O2NEHrynHtLQ8GFX5PrrFyYdB3Dss2cjpI,132917
|
11
11
|
uk_bin_collection/tests/output.schema,sha256=ZwKQBwYyTDEM4G2hJwfLUVM-5v1vKRvRK9W9SS1sd18,1086
|
12
12
|
uk_bin_collection/tests/step_defs/step_helpers/file_handler.py,sha256=Ygzi4V0S1MIHqbdstUlIqtRIwnynvhu4UtpweJ6-5N8,1474
|
13
13
|
uk_bin_collection/tests/step_defs/test_validate_council.py,sha256=VZ0a81sioJULD7syAYHjvK_-nT_Rd36tUyzPetSA0gk,3475
|
@@ -17,7 +17,7 @@ uk_bin_collection/tests/test_conftest.py,sha256=qI_zgGjNOnwE9gmZUiuirL1SYz3TFw5y
|
|
17
17
|
uk_bin_collection/tests/test_get_data.py,sha256=sFJz_Fd6o-1r2gdmzY52JGwVi0Of_mDzvYSoc7a3RUw,7239
|
18
18
|
uk_bin_collection/uk_bin_collection/collect_data.py,sha256=dB7wWXsJX4fm5bIf84lexkvHIcO54CZ3JPxqmS-60YY,4654
|
19
19
|
uk_bin_collection/uk_bin_collection/common.py,sha256=izotgwavB08pUWisNL3wqcBrE9E1-bdrq-v6YKyriDE,11034
|
20
|
-
uk_bin_collection/uk_bin_collection/councils/AberdeenCityCouncil.py,sha256=
|
20
|
+
uk_bin_collection/uk_bin_collection/councils/AberdeenCityCouncil.py,sha256=1IV0qSSM5EcxsxcTwXnEdTmIUdzL_Xg4F5RYC_us4XE,4193
|
21
21
|
uk_bin_collection/uk_bin_collection/councils/AberdeenshireCouncil.py,sha256=aO1CSdyqa8oAD0fB79y1Q9bikAWCP_JFa7CsyTa2j9s,1655
|
22
22
|
uk_bin_collection/uk_bin_collection/councils/AdurAndWorthingCouncils.py,sha256=2fU4E2hnblgzlS-hGkaczbzg4I3-lwIU0Fiszp_WnqM,4406
|
23
23
|
uk_bin_collection/uk_bin_collection/councils/AmberValleyBoroughCouncil.py,sha256=mTeluIIEcuxLxhfDQ95A1fp8RM6AkJT5tRGZPUbYGdk,1853
|
@@ -90,7 +90,7 @@ uk_bin_collection/uk_bin_collection/councils/CrawleyBoroughCouncil.py,sha256=Oaj
|
|
90
90
|
uk_bin_collection/uk_bin_collection/councils/CroydonCouncil.py,sha256=6UCT2Q75NANXPP7kR1ktM65lTKEDI2pDwfc5qnOL1io,5369
|
91
91
|
uk_bin_collection/uk_bin_collection/councils/CumberlandAllerdaleCouncil.py,sha256=bPOmkyzNnHrOtUprbouHdOsgpu7WilUADcaccWTCPFI,2839
|
92
92
|
uk_bin_collection/uk_bin_collection/councils/CumberlandCouncil.py,sha256=PwTbTVNDdGZnSkPcIHYf-LHItDyIbR68Avr96T1FrX8,3308
|
93
|
-
uk_bin_collection/uk_bin_collection/councils/DacorumBoroughCouncil.py,sha256=
|
93
|
+
uk_bin_collection/uk_bin_collection/councils/DacorumBoroughCouncil.py,sha256=F3APItm4QJ5HroqCgIlTJFX37HvP3lE77wVMXIyYPGk,4817
|
94
94
|
uk_bin_collection/uk_bin_collection/councils/DarlingtonBoroughCouncil.py,sha256=5rv6xiGkqBrCP57dw2vkrqyQlSX6qhGj_uB2nKrkHL4,2448
|
95
95
|
uk_bin_collection/uk_bin_collection/councils/DartfordBoroughCouncil.py,sha256=3vuXYhoK3ZkFGtxIDJXCTeY8_kbaXDcKn0C2yk5g1kI,2056
|
96
96
|
uk_bin_collection/uk_bin_collection/councils/DenbighshireCouncil.py,sha256=FtG0LMTY21RBQiBpeX4FihdMCEZ1knpARYyMfyCn9ng,2103
|
@@ -106,6 +106,7 @@ uk_bin_collection/uk_bin_collection/councils/EalingCouncil.py,sha256=UhNXGi-_6NY
|
|
106
106
|
uk_bin_collection/uk_bin_collection/councils/EastAyrshireCouncil.py,sha256=i3AcWkeAnk7rD59nOm0QCSH7AggqjUAdwsXuSIC8ZJE,1614
|
107
107
|
uk_bin_collection/uk_bin_collection/councils/EastCambridgeshireCouncil.py,sha256=aYUVE5QqTxdj8FHhCB4EiFVDJahWJD9Pq0d1upBEvXg,1501
|
108
108
|
uk_bin_collection/uk_bin_collection/councils/EastDevonDC.py,sha256=5aZ4C2t-RBuygtqTRdcpGutjqJ2udrpKbW4F8RQ9r3M,3825
|
109
|
+
uk_bin_collection/uk_bin_collection/councils/EastDunbartonshireCouncil.py,sha256=qHZqCV6zu9CPcQ_heON-MKpLW0eP7VrqRwsGlJWweyw,1637
|
109
110
|
uk_bin_collection/uk_bin_collection/councils/EastHertsCouncil.py,sha256=enESYQCaqZ5miaHCmeQUWw3VIE5HfD8K7Oq8gxUVYDA,3901
|
110
111
|
uk_bin_collection/uk_bin_collection/councils/EastLindseyDistrictCouncil.py,sha256=Laf-j0LLr7M4xmKhk8kjPNTtt66oXKYWm0ppxdUX3F0,4326
|
111
112
|
uk_bin_collection/uk_bin_collection/councils/EastLothianCouncil.py,sha256=5IqDnO5dvnOMNb3gNP1xp14xdPwFG3mb7MBhnSq2npI,2882
|
@@ -160,12 +161,12 @@ uk_bin_collection/uk_bin_collection/councils/HullCityCouncil.py,sha256=UHcesBoct
|
|
160
161
|
uk_bin_collection/uk_bin_collection/councils/HuntingdonDistrictCouncil.py,sha256=TXDIlVvYMwWECiXXBmzUjm36L5Pmn3GHciUuRaKmfF0,2059
|
161
162
|
uk_bin_collection/uk_bin_collection/councils/HyndburnBoroughCouncil.py,sha256=_lJ__EMcUBbE4QZvH-c1nCGeKxZTn5hhcpjVAYBbJZc,5403
|
162
163
|
uk_bin_collection/uk_bin_collection/councils/IpswichBoroughCouncil.py,sha256=J9iQzZ4dc0VZhU_gTtMyiqpef6UYAPY_B7hQO5tY3Wg,2836
|
163
|
-
uk_bin_collection/uk_bin_collection/councils/IslingtonCouncil.py,sha256=
|
164
|
+
uk_bin_collection/uk_bin_collection/councils/IslingtonCouncil.py,sha256=Zu6nrbM7IJY5De7qPE078dGj9wWTPHmFW907RPmA3QE,1464
|
164
165
|
uk_bin_collection/uk_bin_collection/councils/KingsLynnandWestNorfolkBC.py,sha256=Shj18R-7NW4ivqJJFVJOLmf-EeN6hXP2Of30oI-SeAQ,1932
|
165
166
|
uk_bin_collection/uk_bin_collection/councils/KingstonUponThamesCouncil.py,sha256=8kKRhvdqs1hCymqmTtbi0FPJp2kd47JVmKTgRaWOGeY,3573
|
166
167
|
uk_bin_collection/uk_bin_collection/councils/KirkleesCouncil.py,sha256=WPM7koIqK5Wz-iT9Mds6AptihGZtl4KZhkVTcT9cx_c,2762
|
167
168
|
uk_bin_collection/uk_bin_collection/councils/KnowsleyMBCouncil.py,sha256=PDC907dxifFSAuto-vLJLEPBJrxTqNsfoD07__iKiwM,5269
|
168
|
-
uk_bin_collection/uk_bin_collection/councils/LancasterCityCouncil.py,sha256=
|
169
|
+
uk_bin_collection/uk_bin_collection/councils/LancasterCityCouncil.py,sha256=G3Oepmebyg-YOlujaHQf3ffhS0xQ4VlASa-5SqZMc_g,3282
|
169
170
|
uk_bin_collection/uk_bin_collection/councils/LeedsCityCouncil.py,sha256=VWdhw6qvCTj3EhFHf046xPWgc6szeFW2Xbt6W2J0e6w,4371
|
170
171
|
uk_bin_collection/uk_bin_collection/councils/LeicesterCityCouncil.py,sha256=o3kE8sjThQa4_AvSK5NH8VH7jWFO9MMPgoqLOTjyh0w,1851
|
171
172
|
uk_bin_collection/uk_bin_collection/councils/LewesDistrictCouncil.py,sha256=WZAxQ6TOGqQYYsRiL5SdzKdRA4k3GH5ygbKnau5KtDA,2658
|
@@ -181,7 +182,7 @@ uk_bin_collection/uk_bin_collection/councils/LondonBoroughLambeth.py,sha256=r9D5
|
|
181
182
|
uk_bin_collection/uk_bin_collection/councils/LondonBoroughLewisham.py,sha256=d8rlJDTbY3nj-Zjg6iwvwfe-X13Gq86DGGW6QkQAUW0,5310
|
182
183
|
uk_bin_collection/uk_bin_collection/councils/LondonBoroughOfRichmondUponThames.py,sha256=H1ej7Bw1zW3kvxCqz0W1137YIZCdG5AmhAyVK3cvp00,3987
|
183
184
|
uk_bin_collection/uk_bin_collection/councils/LondonBoroughRedbridge.py,sha256=A_6Sis5hsF53Th04KeadHRasGbpAm6aoaWJ6X8eC4Y8,6604
|
184
|
-
uk_bin_collection/uk_bin_collection/councils/LondonBoroughSutton.py,sha256=
|
185
|
+
uk_bin_collection/uk_bin_collection/councils/LondonBoroughSutton.py,sha256=xixtPqXJ6Wms14e-Sc5Nq8ybbcrvZ65mzgpOhNJw5tY,3646
|
185
186
|
uk_bin_collection/uk_bin_collection/councils/LutonBoroughCouncil.py,sha256=vScUi_R8FnBddii2_zLlZBLxuh85mKmCm8nKW3zxky0,2758
|
186
187
|
uk_bin_collection/uk_bin_collection/councils/MaidstoneBoroughCouncil.py,sha256=T9R1_ciKitxGhGUcNu2UnSZszvUBuLVKReRA1rIlRIg,4280
|
187
188
|
uk_bin_collection/uk_bin_collection/councils/MaldonDistrictCouncil.py,sha256=PMVt2XFggttPmbWyrBrHJ-W6R_6-0ux1BkY1kj1IKzg,1997
|
@@ -193,7 +194,7 @@ uk_bin_collection/uk_bin_collection/councils/MeltonBoroughCouncil.py,sha256=Xql_
|
|
193
194
|
uk_bin_collection/uk_bin_collection/councils/MertonCouncil.py,sha256=xsOSX4KCcUHHo4BHB5JhFC9r5Q-h586Vk-5-X2VAJl0,2809
|
194
195
|
uk_bin_collection/uk_bin_collection/councils/MidAndEastAntrimBoroughCouncil.py,sha256=oOWwU5FSgGej2Mv7FQ66N-EzS5nZgmGsd0WnfLWUc1I,5238
|
195
196
|
uk_bin_collection/uk_bin_collection/councils/MidDevonCouncil.py,sha256=8MxqGgOJVseMkrTmEMT0EyDW7UMbXMoa5ZcJ2nD55Ew,3367
|
196
|
-
uk_bin_collection/uk_bin_collection/councils/MidSuffolkDistrictCouncil.py,sha256=
|
197
|
+
uk_bin_collection/uk_bin_collection/councils/MidSuffolkDistrictCouncil.py,sha256=nefk3j3VOyN9jk-RP_-nLVRWj_Gn8wN12z2bU_15SVc,6559
|
197
198
|
uk_bin_collection/uk_bin_collection/councils/MidSussexDistrictCouncil.py,sha256=AZgC9wmDLEjUOtIFvf0ehF5LHturXTH4DkE3ioPSVBA,6254
|
198
199
|
uk_bin_collection/uk_bin_collection/councils/MidUlsterDistrictCouncil.py,sha256=ev_T8LoI9tZzkymmAD9yEk2leKc4Y0Cqsde56aAJPa8,5114
|
199
200
|
uk_bin_collection/uk_bin_collection/councils/MiddlesbroughCouncil.py,sha256=BiYexiZj-9PxRnB7sYRy0G-72s3L9jfh2vd1Y2NQwtg,4223
|
@@ -203,12 +204,12 @@ uk_bin_collection/uk_bin_collection/councils/MoleValleyDistrictCouncil.py,sha256
|
|
203
204
|
uk_bin_collection/uk_bin_collection/councils/MonmouthshireCountyCouncil.py,sha256=PC2tui10S-DXmiKUqXZun5MInIgqqQjtT5wII1K_9a0,2532
|
204
205
|
uk_bin_collection/uk_bin_collection/councils/MorayCouncil.py,sha256=B8unofp2x1HF72QT_3E0Iew78PWMywjzkNDJdWof2Tc,3309
|
205
206
|
uk_bin_collection/uk_bin_collection/councils/NeathPortTalbotCouncil.py,sha256=p95UYogx3_WJ_1kgfeH5kGQdrZ3YyEJjVuZ7WOOPAvs,5710
|
206
|
-
uk_bin_collection/uk_bin_collection/councils/NewForestCouncil.py,sha256=
|
207
|
+
uk_bin_collection/uk_bin_collection/councils/NewForestCouncil.py,sha256=9z290ZV7-shw6Kv1nG-jKjQmwHB10sgiXF-ZV8X58cA,7411
|
207
208
|
uk_bin_collection/uk_bin_collection/councils/NewarkAndSherwoodDC.py,sha256=lAleYfCGUWCKOi7Ye_cjgfpI3pWwTcFctlYmh0hjebM,2140
|
208
209
|
uk_bin_collection/uk_bin_collection/councils/NewcastleCityCouncil.py,sha256=eJMX10CG9QO7FRhHSmUDL-jO_44qoK3_1ztNTAXhkbw,2085
|
209
210
|
uk_bin_collection/uk_bin_collection/councils/NewcastleUnderLymeCouncil.py,sha256=feuQnAG80xVojQlUBLh8wjVPVU6yLZ6sQKKjfHBKIl8,2514
|
210
211
|
uk_bin_collection/uk_bin_collection/councils/NewhamCouncil.py,sha256=zlkKm28E6zIRknAbyLeSd5LNeRctqlZ-2MIrAsdaqHg,2260
|
211
|
-
uk_bin_collection/uk_bin_collection/councils/NewportCityCouncil.py,sha256=
|
212
|
+
uk_bin_collection/uk_bin_collection/councils/NewportCityCouncil.py,sha256=nWWoE_cI6TM7d_JlYO4mwnToOzBVy_JzfxWwWGBbgGc,13137
|
212
213
|
uk_bin_collection/uk_bin_collection/councils/NorthAyrshireCouncil.py,sha256=o8zv40Wt19d51mrN5lsgLMCKMokMPmI1cMHBNT5yAho,1976
|
213
214
|
uk_bin_collection/uk_bin_collection/councils/NorthDevonCountyCouncil.py,sha256=tgJKIvu7nnCAHu_HImfG5SQABD6ygKFqrZU-ZoC6ObY,6260
|
214
215
|
uk_bin_collection/uk_bin_collection/councils/NorthEastDerbyshireDistrictCouncil.py,sha256=BfNpYcjG3z0Yz8OYN6NkfzvZ5k1FI-80D-rv211kPPU,5449
|
@@ -223,13 +224,13 @@ uk_bin_collection/uk_bin_collection/councils/NorthSomersetCouncil.py,sha256=RNfv
|
|
223
224
|
uk_bin_collection/uk_bin_collection/councils/NorthTynesideCouncil.py,sha256=yqycVcGZ3oT0FOu7Dx6BzbO_VFRABdyjKBPF-uRlI2s,5929
|
224
225
|
uk_bin_collection/uk_bin_collection/councils/NorthWestLeicestershire.py,sha256=gJj0dyQc5QUefqusKGk2LLXfWbG5tlEXUOh8KAPh3RI,4584
|
225
226
|
uk_bin_collection/uk_bin_collection/councils/NorthYorkshire.py,sha256=rwW6y5yhRiuYk3lVS7YFZxLaY_yfojdcn2dxiWaP4YA,2013
|
226
|
-
uk_bin_collection/uk_bin_collection/councils/NorthumberlandCouncil.py,sha256=
|
227
|
+
uk_bin_collection/uk_bin_collection/councils/NorthumberlandCouncil.py,sha256=2S-BeeT4A086RYUwfpVSZ7Bu9IqCg9boiYZcB3QMGag,14110
|
227
228
|
uk_bin_collection/uk_bin_collection/councils/NorwichCityCouncil.py,sha256=mf2qB_YQlYUN_YLxC4JHNqpB3yAuUiFbVT1pFichZB4,2839
|
228
229
|
uk_bin_collection/uk_bin_collection/councils/NottinghamCityCouncil.py,sha256=panTCjnsBOQ98-TBO9xVZk_jcT_gjMhx3Gg5oWxBRLo,1254
|
229
230
|
uk_bin_collection/uk_bin_collection/councils/NuneatonBedworthBoroughCouncil.py,sha256=thcKPPUgSFrr2_an4jWsFzlwNzVCVvRLGNPK5jSXgd0,38192
|
230
231
|
uk_bin_collection/uk_bin_collection/councils/OadbyAndWigstonBoroughCouncil.py,sha256=Kgy5HA0xZ9hR4_cAydPfOfskhGUB4j93AQF2-9Fj-Cg,2179
|
231
232
|
uk_bin_collection/uk_bin_collection/councils/OldhamCouncil.py,sha256=9dlesCxNoVXlmQaqZj7QFh00smnJbm1Gnjkr_Uvzurs,1771
|
232
|
-
uk_bin_collection/uk_bin_collection/councils/OxfordCityCouncil.py,sha256=
|
233
|
+
uk_bin_collection/uk_bin_collection/councils/OxfordCityCouncil.py,sha256=3_VWPfvXcayQxZu7gIRyjHT1OVhSytsBqq6gHAAlBWw,2513
|
233
234
|
uk_bin_collection/uk_bin_collection/councils/PembrokeshireCountyCouncil.py,sha256=GRAxjf_DuO5uZ660kEbZt_yCjP3n2maMxsYTPCTz3GQ,3324
|
234
235
|
uk_bin_collection/uk_bin_collection/councils/PerthAndKinrossCouncil.py,sha256=Kos5GzN2co3Ij3tSHOXB9S71Yt78RROCfVRtnh7M1VU,3657
|
235
236
|
uk_bin_collection/uk_bin_collection/councils/PeterboroughCityCouncil.py,sha256=lOrDD4jfJ-_C5UwCGqRcQ1G-U1F5X6rf255ypzYEBcg,6300
|
@@ -241,12 +242,12 @@ uk_bin_collection/uk_bin_collection/councils/ReadingBoroughCouncil.py,sha256=ZlQ
|
|
241
242
|
uk_bin_collection/uk_bin_collection/councils/RedcarandClevelandCouncil.py,sha256=MV8CD1sj8fiy6PAVrIHO4TyTHodn45nDZp0rQfs7PiM,2829
|
242
243
|
uk_bin_collection/uk_bin_collection/councils/RedditchBoroughCouncil.py,sha256=8QmcpStCT7c-CLhmiQ8ZeEyvtysU110VDiMQdfQTErk,2469
|
243
244
|
uk_bin_collection/uk_bin_collection/councils/ReigateAndBansteadBoroughCouncil.py,sha256=HMLKdRUO5DdMJe1d1X5qtKtQsf6d5TAPViIZpMzAfes,3251
|
244
|
-
uk_bin_collection/uk_bin_collection/councils/RenfrewshireCouncil.py,sha256=
|
245
|
+
uk_bin_collection/uk_bin_collection/councils/RenfrewshireCouncil.py,sha256=GG84lU2lOe2AT1N3CrZlaOL8pR6Adc_7d6HEwChzx8k,13405
|
245
246
|
uk_bin_collection/uk_bin_collection/councils/RhonddaCynonTaffCouncil.py,sha256=wInyVG_0wRrX_dRO9qbAzPhlXDseXapj2zQhsISw8gg,3233
|
246
247
|
uk_bin_collection/uk_bin_collection/councils/RochdaleCouncil.py,sha256=UTSwSw515VehGn4xkjjRhUlzS4lDj4hgna6y-4VW3uM,2379
|
247
248
|
uk_bin_collection/uk_bin_collection/councils/RochfordCouncil.py,sha256=a4sL2K3a0dAWeX74qW9bbsTC666ahNRz0rZg3fAn_C0,2623
|
248
249
|
uk_bin_collection/uk_bin_collection/councils/RotherDistrictCouncil.py,sha256=-fdLvtik9ytfwXrrhwWdBxqQOMq2N1pvrIuvShhf8PU,3090
|
249
|
-
uk_bin_collection/uk_bin_collection/councils/RotherhamCouncil.py,sha256=
|
250
|
+
uk_bin_collection/uk_bin_collection/councils/RotherhamCouncil.py,sha256=CJYOJPLKGeWjwvw5_BJ3kanVqjGOS87jQ6kaP-4u-lg,3372
|
250
251
|
uk_bin_collection/uk_bin_collection/councils/RoyalBoroughofGreenwich.py,sha256=AziuKhP6wKu_316MA4xXRN-ayDU6RSB21EfSWjmMqU8,3800
|
251
252
|
uk_bin_collection/uk_bin_collection/councils/RugbyBoroughCouncil.py,sha256=WlmOD-xHJFdowI9fGuGDHOpnAVHGUWxGZqmJ6z4fGXs,5687
|
252
253
|
uk_bin_collection/uk_bin_collection/councils/RunnymedeBoroughCouncil.py,sha256=-ZKQfpxviEcHM0j3QBGrKqJ-FbSouFHPuRnQSCoG5J0,1816
|
@@ -260,11 +261,11 @@ uk_bin_collection/uk_bin_collection/councils/SheffieldCityCouncil.py,sha256=9g9A
|
|
260
261
|
uk_bin_collection/uk_bin_collection/councils/ShropshireCouncil.py,sha256=6OIEhJmv-zLJiEo8WaJePA7JuhNRGkh2WohFLhzN8Kk,1477
|
261
262
|
uk_bin_collection/uk_bin_collection/councils/SloughBoroughCouncil.py,sha256=ADa-8bcTnD39Lof6FdRp_WAHQSYmHgXN3uz0uqKnW64,6367
|
262
263
|
uk_bin_collection/uk_bin_collection/councils/SolihullCouncil.py,sha256=gbTHjbdV46evGfLfF8rxVMQIgNZD-XPHgZeuyje7kGY,1609
|
263
|
-
uk_bin_collection/uk_bin_collection/councils/SomersetCouncil.py,sha256=
|
264
|
+
uk_bin_collection/uk_bin_collection/councils/SomersetCouncil.py,sha256=dJkrO4w2b-4bm8BhWkreTenSD_t91Cqxbx1S-Jm9V48,13033
|
264
265
|
uk_bin_collection/uk_bin_collection/councils/SouthAyrshireCouncil.py,sha256=03eapeXwxneKI4ccKPSHoviIbhmV1m90I-0WQ_s3KsY,2722
|
265
266
|
uk_bin_collection/uk_bin_collection/councils/SouthCambridgeshireCouncil.py,sha256=xGSMcikxjS4UzqKs0X50LJKmn09C-XAAs98SPhNZgkQ,2308
|
266
267
|
uk_bin_collection/uk_bin_collection/councils/SouthDerbyshireDistrictCouncil.py,sha256=irqelQSENPsZLlNtYtpt-Z7GwKUyvhp94kKKVIIDjQg,2087
|
267
|
-
uk_bin_collection/uk_bin_collection/councils/SouthGloucestershireCouncil.py,sha256=
|
268
|
+
uk_bin_collection/uk_bin_collection/councils/SouthGloucestershireCouncil.py,sha256=ZfEGycAT4A4KsEKGHlUBmMP3GRkodWOtRNiE1T_kfN4,2397
|
268
269
|
uk_bin_collection/uk_bin_collection/councils/SouthHamsDistrictCouncil.py,sha256=DiijlLisR8qwPSo-4XSAiNk5G31-fYr7bDHKSFjDT7o,3180
|
269
270
|
uk_bin_collection/uk_bin_collection/councils/SouthHollandDistrictCouncil.py,sha256=KU5-d6imNEV89O9WcAP-5WLcXUsouf9A-_mEZNxl-vo,5165
|
270
271
|
uk_bin_collection/uk_bin_collection/councils/SouthKestevenDistrictCouncil.py,sha256=_26ouWln5VrKiIFcp2b6ZzuwCKpp3aNcS2n5d4-8NsA,6210
|
@@ -298,7 +299,7 @@ uk_bin_collection/uk_bin_collection/councils/TandridgeDistrictCouncil.py,sha256=
|
|
298
299
|
uk_bin_collection/uk_bin_collection/councils/TeignbridgeCouncil.py,sha256=-NowMNcxsnktzUxTk-XUfzFJgXKSSerCmdZ7cN4cE1s,2703
|
299
300
|
uk_bin_collection/uk_bin_collection/councils/TelfordAndWrekinCouncil.py,sha256=p1ZS5R4EGxbEWlRBrkGXgKwE_lkyBT-R60yKFFhVObc,1844
|
300
301
|
uk_bin_collection/uk_bin_collection/councils/TendringDistrictCouncil.py,sha256=1_CkpWPTfRUEP5YJ9R4_dJRLtb-O9i83hfWJc1shw_c,4283
|
301
|
-
uk_bin_collection/uk_bin_collection/councils/TestValleyBoroughCouncil.py,sha256=
|
302
|
+
uk_bin_collection/uk_bin_collection/councils/TestValleyBoroughCouncil.py,sha256=GQ_MaPpTd8DqDL4DpyaMjYGxqHm8Wi6qqTO9nCk7370,13117
|
302
303
|
uk_bin_collection/uk_bin_collection/councils/TewkesburyBoroughCouncil.py,sha256=cSULCQBddk4tfaJZHv7mrNwM4sZkOYJpmlQXlvrZvPk,1396
|
303
304
|
uk_bin_collection/uk_bin_collection/councils/ThanetDistrictCouncil.py,sha256=Cxrf0tUryDL-wFclPH5yovVt8i7Sc7g-ZFrU9_wg6KY,2717
|
304
305
|
uk_bin_collection/uk_bin_collection/councils/ThreeRiversDistrictCouncil.py,sha256=RHt3e9oeKzwxjjY-M8aC0nk-ZXhHIoyC81JzxkPVxsE,5531
|
@@ -346,8 +347,8 @@ uk_bin_collection/uk_bin_collection/councils/YorkCouncil.py,sha256=I2kBYMlsD4bId
|
|
346
347
|
uk_bin_collection/uk_bin_collection/councils/council_class_template/councilclasstemplate.py,sha256=QD4v4xpsEE0QheR_fGaNOIRMc2FatcUfKkkhAhseyVU,1159
|
347
348
|
uk_bin_collection/uk_bin_collection/create_new_council.py,sha256=m-IhmWmeWQlFsTZC4OxuFvtw5ZtB8EAJHxJTH4O59lQ,1536
|
348
349
|
uk_bin_collection/uk_bin_collection/get_bin_data.py,sha256=Qb76X46V0UMZJwO8zMNPvnVY7jNa-bmTlrirDi1tuJA,4553
|
349
|
-
uk_bin_collection-0.
|
350
|
-
uk_bin_collection-0.
|
351
|
-
uk_bin_collection-0.
|
352
|
-
uk_bin_collection-0.
|
353
|
-
uk_bin_collection-0.
|
350
|
+
uk_bin_collection-0.158.0.dist-info/LICENSE,sha256=vABBUOzcrgfaTKpzeo-si9YVEun6juDkndqA8RKdKGs,1071
|
351
|
+
uk_bin_collection-0.158.0.dist-info/METADATA,sha256=ihuNsB2pzq5yFtT06ae1WmUvgPCkLc8gJHt-zAHNl0Q,26688
|
352
|
+
uk_bin_collection-0.158.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
353
|
+
uk_bin_collection-0.158.0.dist-info/entry_points.txt,sha256=36WCSGMWSc916S3Hi1ZkazzDKHaJ6CD-4fCEFm5MIao,90
|
354
|
+
uk_bin_collection-0.158.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
{uk_bin_collection-0.154.0.dist-info → uk_bin_collection-0.158.0.dist-info}/entry_points.txt
RENAMED
File without changes
|