uk_bin_collection 0.119.0__py3-none-any.whl → 0.121.0__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (27) hide show
  1. uk_bin_collection/tests/input.json +116 -9
  2. uk_bin_collection/uk_bin_collection/councils/BaberghDistrictCouncil.py +3 -1
  3. uk_bin_collection/uk_bin_collection/councils/CheltenhamBoroughCouncil.py +102 -0
  4. uk_bin_collection/uk_bin_collection/councils/CotswoldDistrictCouncil.py +3 -3
  5. uk_bin_collection/uk_bin_collection/councils/CumberlandAllerdaleCouncil.py +93 -0
  6. uk_bin_collection/uk_bin_collection/councils/EastAyrshireCouncil.py +11 -8
  7. uk_bin_collection/uk_bin_collection/councils/EnvironmentFirst.py +14 -0
  8. uk_bin_collection/uk_bin_collection/councils/FolkstoneandHytheDistrictCouncil.py +81 -0
  9. uk_bin_collection/uk_bin_collection/councils/HackneyCouncil.py +85 -0
  10. uk_bin_collection/uk_bin_collection/councils/HartlepoolBoroughCouncil.py +83 -0
  11. uk_bin_collection/uk_bin_collection/councils/KingsLynnandWestNorfolkBC.py +59 -0
  12. uk_bin_collection/uk_bin_collection/councils/LondonBoroughHavering.py +75 -0
  13. uk_bin_collection/uk_bin_collection/councils/LondonBoroughLewisham.py +132 -0
  14. uk_bin_collection/uk_bin_collection/councils/MidSuffolkDistrictCouncil.py +3 -1
  15. uk_bin_collection/uk_bin_collection/councils/MorayCouncil.py +65 -0
  16. uk_bin_collection/uk_bin_collection/councils/NewcastleUnderLymeCouncil.py +66 -0
  17. uk_bin_collection/uk_bin_collection/councils/NorthHertfordshireDistrictCouncil.py +93 -0
  18. uk_bin_collection/uk_bin_collection/councils/RoyalBoroughofGreenwich.py +113 -0
  19. uk_bin_collection/uk_bin_collection/councils/SandwellBoroughCouncil.py +87 -0
  20. uk_bin_collection/uk_bin_collection/councils/ThurrockCouncil.py +93 -0
  21. uk_bin_collection/uk_bin_collection/councils/WestNorthamptonshireCouncil.py +12 -10
  22. uk_bin_collection/uk_bin_collection/councils/WyreForestDistrictCouncil.py +65 -0
  23. {uk_bin_collection-0.119.0.dist-info → uk_bin_collection-0.121.0.dist-info}/METADATA +1 -1
  24. {uk_bin_collection-0.119.0.dist-info → uk_bin_collection-0.121.0.dist-info}/RECORD +27 -12
  25. {uk_bin_collection-0.119.0.dist-info → uk_bin_collection-0.121.0.dist-info}/LICENSE +0 -0
  26. {uk_bin_collection-0.119.0.dist-info → uk_bin_collection-0.121.0.dist-info}/WHEEL +0 -0
  27. {uk_bin_collection-0.119.0.dist-info → uk_bin_collection-0.121.0.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,113 @@
1
+ import time
2
+
3
+ import requests
4
+
5
+ from uk_bin_collection.uk_bin_collection.common import *
6
+ from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass
7
+
8
+
9
+ # import the wonderful Beautiful Soup and the URL grabber
10
+ class CouncilClass(AbstractGetBinDataClass):
11
+ """
12
+ Concrete classes have to implement all abstract operations of the
13
+ base class. They can also override some operations with a default
14
+ implementation.
15
+ """
16
+
17
+ def parse_data(self, page: str, **kwargs) -> dict:
18
+
19
+ user_postcode = kwargs.get("postcode")
20
+ user_paon = kwargs.get("paon")
21
+ check_postcode(user_postcode)
22
+ check_paon(user_paon)
23
+ bindata = {"bins": []}
24
+
25
+ user_postcode = user_postcode.replace(" ", "+")
26
+
27
+ URI = f"https://www.royalgreenwich.gov.uk/site/custom_scripts/apps/waste-collection/new2023/source.php?term={user_postcode}"
28
+
29
+ # Make the GET request
30
+ response = requests.get(URI)
31
+
32
+ for address in response.json():
33
+ if user_paon in address:
34
+ collection_address = address
35
+ break
36
+
37
+ URI = "https://www.royalgreenwich.gov.uk/site/custom_scripts/repo/apps/waste-collection/new2023/ajax-response-uprn.php"
38
+
39
+ data = {"address": collection_address}
40
+
41
+ response = requests.post(URI, data=data)
42
+
43
+ response = response.json()
44
+
45
+ collection_day = response["Day"]
46
+ week = response["Frequency"]
47
+
48
+ days_of_week = [
49
+ "Monday",
50
+ "Tuesday",
51
+ "Wednesday",
52
+ "Thursday",
53
+ "Friday",
54
+ "Saturday",
55
+ "Sunday",
56
+ ]
57
+ collectionweek = ["Week A", "Week B"]
58
+
59
+ offset_days = days_of_week.index(collection_day)
60
+ week = collectionweek.index(week)
61
+
62
+ greenstartDate = datetime(2024, 11, 25)
63
+ bluestartDate = datetime(2024, 11, 25)
64
+ if week == 0:
65
+ blackstartDate = datetime(2024, 11, 18)
66
+ elif week == 1:
67
+ blackstartDate = datetime(2024, 11, 25)
68
+
69
+ green_dates = get_dates_every_x_days(greenstartDate, 7, 100)
70
+ blue_dates = get_dates_every_x_days(bluestartDate, 7, 100)
71
+ black_dates = get_dates_every_x_days(blackstartDate, 14, 50)
72
+
73
+ for greenDate in green_dates:
74
+
75
+ collection_date = (
76
+ datetime.strptime(greenDate, "%d/%m/%Y") + timedelta(days=offset_days)
77
+ ).strftime("%d/%m/%Y")
78
+
79
+ dict_data = {
80
+ "type": "Green Bin",
81
+ "collectionDate": collection_date,
82
+ }
83
+ bindata["bins"].append(dict_data)
84
+
85
+ for blueDate in blue_dates:
86
+
87
+ collection_date = (
88
+ datetime.strptime(blueDate, "%d/%m/%Y") + timedelta(days=offset_days)
89
+ ).strftime("%d/%m/%Y")
90
+
91
+ dict_data = {
92
+ "type": "Blue Bin",
93
+ "collectionDate": collection_date,
94
+ }
95
+ bindata["bins"].append(dict_data)
96
+
97
+ for blackDate in black_dates:
98
+
99
+ collection_date = (
100
+ datetime.strptime(blackDate, "%d/%m/%Y") + timedelta(days=offset_days)
101
+ ).strftime("%d/%m/%Y")
102
+
103
+ dict_data = {
104
+ "type": "Black Bin",
105
+ "collectionDate": collection_date,
106
+ }
107
+ bindata["bins"].append(dict_data)
108
+
109
+ bindata["bins"].sort(
110
+ key=lambda x: datetime.strptime(x.get("collectionDate"), "%d/%m/%Y")
111
+ )
112
+
113
+ return bindata
@@ -0,0 +1,87 @@
1
+ import time
2
+
3
+ import requests
4
+
5
+ from uk_bin_collection.uk_bin_collection.common import *
6
+ from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass
7
+
8
+
9
+ # import the wonderful Beautiful Soup and the URL grabber
10
+ class CouncilClass(AbstractGetBinDataClass):
11
+ """
12
+ Concrete classes have to implement all abstract operations of the
13
+ base class. They can also override some operations with a default
14
+ implementation.
15
+ """
16
+
17
+ def parse_data(self, page: str, **kwargs) -> dict:
18
+
19
+ user_uprn = kwargs.get("uprn")
20
+ check_uprn(user_uprn)
21
+ bindata = {"bins": []}
22
+
23
+ SESSION_URL = "https://my.sandwell.gov.uk/authapi/isauthenticated?uri=https%253A%252F%252Fmy.sandwell.gov.uk%252Fen%252FAchieveForms%252F%253Fform_uri%253Dsandbox-publish%253A%252F%252FAF-Process-ebaa26a2-393c-4a3c-84f5-e61564192a8a%252FAF-Stage-e4c2cb32-db55-4ff5-845c-8b27f87346c4%252Fdefinition.json%2526redirectlink%253D%25252Fen%2526cancelRedirectLink%253D%25252Fen%2526consentMessage%253Dyes&hostname=my.sandwell.gov.uk&withCredentials=true"
24
+
25
+ API_URL = "https://my.sandwell.gov.uk/apibroker/runLookup"
26
+
27
+ headers = {
28
+ "Content-Type": "application/json",
29
+ "Accept": "application/json",
30
+ "User-Agent": "Mozilla/5.0",
31
+ "X-Requested-With": "XMLHttpRequest",
32
+ "Referer": "https://my.sandwell.gov.uk/fillform/?iframe_id=fillform-frame-1&db_id=",
33
+ }
34
+ s = requests.session()
35
+ r = s.get(SESSION_URL)
36
+ r.raise_for_status()
37
+ session_data = r.json()
38
+ sid = session_data["auth-session"]
39
+
40
+ data = {
41
+ "formValues": {
42
+ "Property details": {
43
+ "Uprn": {
44
+ "value": user_uprn,
45
+ },
46
+ "NextCollectionFromDate": {
47
+ "value": datetime.now().strftime("%Y-%m-%d"),
48
+ },
49
+ },
50
+ },
51
+ }
52
+
53
+ params = {
54
+ "id": "58a1a71694992",
55
+ "repeat_against": "",
56
+ "noRetry": "false",
57
+ "getOnlyTokens": "undefined",
58
+ "log_id": "",
59
+ "app_name": "AF-Renderer::Self",
60
+ # unix_timestamp
61
+ "_": str(int(time.time() * 1000)),
62
+ "sid": sid,
63
+ }
64
+
65
+ r = s.post(API_URL, json=data, headers=headers, params=params)
66
+ r.raise_for_status()
67
+
68
+ data = r.json()
69
+ rows_data = data["integration"]["transformed"]["rows_data"]
70
+ if not isinstance(rows_data, dict):
71
+ raise ValueError("Invalid data returned from API")
72
+ bin_types = {
73
+ "Recycling (Blue)",
74
+ "Household Waste (Grey)",
75
+ "Food Waste (Brown)",
76
+ "Garden Waste (Green)",
77
+ }
78
+ for row in rows_data.items():
79
+ date = row[1]["DWDate"]
80
+ for bin_type in bin_types:
81
+ dict_data = {
82
+ "type": bin_type,
83
+ "collectionDate": date,
84
+ }
85
+ bindata["bins"].append(dict_data)
86
+
87
+ return bindata
@@ -0,0 +1,93 @@
1
+ from uk_bin_collection.uk_bin_collection.common import *
2
+ from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass
3
+
4
+
5
+ # import the wonderful Beautiful Soup and the URL grabber
6
+ class CouncilClass(AbstractGetBinDataClass):
7
+ """
8
+ Concrete classes have to implement all abstract operations of the
9
+ base class. They can also override some operations with a default
10
+ implementation.
11
+ """
12
+
13
+ def parse_data(self, page: str, **kwargs) -> dict:
14
+
15
+ collection_day = kwargs.get("paon")
16
+ round = kwargs.get("postcode")
17
+
18
+ bindata = {"bins": []}
19
+
20
+ days_of_week = [
21
+ "Monday",
22
+ "Tuesday",
23
+ "Wednesday",
24
+ "Thursday",
25
+ "Friday",
26
+ "Saturday",
27
+ "Sunday",
28
+ ]
29
+
30
+ round_week = ["Round A", "Round B"]
31
+
32
+ offset_days = days_of_week.index(collection_day)
33
+ round_collection = round_week.index(round)
34
+
35
+ if round_collection == 0:
36
+ bluebrownstartDate = datetime(2024, 10, 21)
37
+ greengreystartDate = datetime(2024, 10, 28)
38
+ else:
39
+ greengreystartDate = datetime(2024, 10, 21)
40
+ bluebrownstartDate = datetime(2024, 10, 28)
41
+
42
+ greengrey_dates = get_dates_every_x_days(greengreystartDate, 14, 28)
43
+ bluebrown_dates = get_dates_every_x_days(bluebrownstartDate, 14, 28)
44
+ food_dates = get_dates_every_x_days(greengreystartDate, 7, 56)
45
+
46
+ for greengrey_date in greengrey_dates:
47
+
48
+ collection_date = (
49
+ datetime.strptime(greengrey_date, "%d/%m/%Y")
50
+ + timedelta(days=offset_days)
51
+ ).strftime("%d/%m/%Y")
52
+
53
+ dict_data = {
54
+ "type": "Green/Grey Bin",
55
+ "collectionDate": collection_date,
56
+ }
57
+ bindata["bins"].append(dict_data)
58
+
59
+ for bluebrown_date in bluebrown_dates:
60
+
61
+ collection_date = (
62
+ datetime.strptime(bluebrown_date, "%d/%m/%Y")
63
+ + timedelta(days=offset_days)
64
+ ).strftime("%d/%m/%Y")
65
+
66
+ dict_data = {
67
+ "type": "Blue Bin",
68
+ "collectionDate": collection_date,
69
+ }
70
+ bindata["bins"].append(dict_data)
71
+ dict_data = {
72
+ "type": "Brown Bin",
73
+ "collectionDate": collection_date,
74
+ }
75
+ bindata["bins"].append(dict_data)
76
+
77
+ for food_date in food_dates:
78
+
79
+ collection_date = (
80
+ datetime.strptime(food_date, "%d/%m/%Y") + timedelta(days=offset_days)
81
+ ).strftime("%d/%m/%Y")
82
+
83
+ dict_data = {
84
+ "type": "Food Bin",
85
+ "collectionDate": collection_date,
86
+ }
87
+ bindata["bins"].append(dict_data)
88
+
89
+ bindata["bins"].sort(
90
+ key=lambda x: datetime.strptime(x.get("collectionDate"), "%d/%m/%Y")
91
+ )
92
+
93
+ return bindata
@@ -15,20 +15,22 @@ class CouncilClass(AbstractGetBinDataClass):
15
15
  """
16
16
 
17
17
  def parse_data(self, page: str, **kwargs) -> dict:
18
- user_postcode = kwargs.get("postcode")
19
- check_postcode(user_postcode)
18
+ user_uprn = kwargs.get("uprn")
19
+ check_uprn(user_uprn)
20
20
 
21
- api_url = f"https://mycouncil.northampton.digital/BinRoundFinder?postcode={urllib.parse.quote(user_postcode)}"
21
+ api_url = f"https://api.westnorthants.digital/openapi/v1/unified-waste-collections/{user_uprn}"
22
22
  json_data = requests.get(api_url).json()
23
23
 
24
24
  data = {"bins": []}
25
25
 
26
- dict_data = {
27
- "type": json_data["type"].capitalize(),
28
- "collectionDate": datetime.strptime(
29
- json_data["date"], "%Y%m%d%H%M"
30
- ).strftime(date_format),
31
- }
32
- data["bins"].append(dict_data)
26
+ collections = json_data["collectionItems"]
27
+ for collection in collections:
28
+ dict_data = {
29
+ "type": collection["type"].capitalize(),
30
+ "collectionDate": datetime.strptime(
31
+ collection["date"], "%Y-%m-%d"
32
+ ).strftime(date_format),
33
+ }
34
+ data["bins"].append(dict_data)
33
35
 
34
36
  return data
@@ -0,0 +1,65 @@
1
+ from uk_bin_collection.uk_bin_collection.common import *
2
+ from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass
3
+
4
+
5
+ # import the wonderful Beautiful Soup and the URL grabber
6
+ class CouncilClass(AbstractGetBinDataClass):
7
+ """
8
+ Concrete classes have to implement all abstract operations of the
9
+ base class. They can also override some operations with a default
10
+ implementation.
11
+ """
12
+
13
+ def parse_data(self, page: str, **kwargs) -> dict:
14
+
15
+ collection_day = kwargs.get("paon")
16
+ bindata = {"bins": []}
17
+
18
+ days_of_week = [
19
+ "Monday",
20
+ "Tuesday",
21
+ "Wednesday",
22
+ "Thursday",
23
+ "Friday",
24
+ "Saturday",
25
+ "Sunday",
26
+ ]
27
+
28
+ refusestartDate = datetime(2024, 11, 25)
29
+ recyclingstartDate = datetime(2024, 11, 18)
30
+
31
+ offset_days = days_of_week.index(collection_day)
32
+
33
+ refuse_dates = get_dates_every_x_days(refusestartDate, 14, 28)
34
+ recycling_dates = get_dates_every_x_days(recyclingstartDate, 14, 28)
35
+
36
+ for refuseDate in refuse_dates:
37
+
38
+ collection_date = (
39
+ datetime.strptime(refuseDate, "%d/%m/%Y") + timedelta(days=offset_days)
40
+ ).strftime("%d/%m/%Y")
41
+
42
+ dict_data = {
43
+ "type": "Black/Grey Rubbish Bin",
44
+ "collectionDate": collection_date,
45
+ }
46
+ bindata["bins"].append(dict_data)
47
+
48
+ for recyclingDate in recycling_dates:
49
+
50
+ collection_date = (
51
+ datetime.strptime(recyclingDate, "%d/%m/%Y")
52
+ + timedelta(days=offset_days)
53
+ ).strftime("%d/%m/%Y")
54
+
55
+ dict_data = {
56
+ "type": "Green Recycling Bin",
57
+ "collectionDate": collection_date,
58
+ }
59
+ bindata["bins"].append(dict_data)
60
+
61
+ bindata["bins"].sort(
62
+ key=lambda x: datetime.strptime(x.get("collectionDate"), "%d/%m/%Y")
63
+ )
64
+
65
+ return bindata
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: uk_bin_collection
3
- Version: 0.119.0
3
+ Version: 0.121.0
4
4
  Summary: Python Lib to collect UK Bin Data
5
5
  Author: Robert Bradley
6
6
  Author-email: robbrad182@gmail.com
@@ -2,7 +2,7 @@ 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=VrW-CMky0dYd1A4rBB2mvF3p8fp_F0X9bVH8MvqLIso,105481
5
+ uk_bin_collection/tests/input.json,sha256=IfNcYfT9YNy84xy-ETXgBvdUN9vW6Pc2y3tYjq2AAyI,110958
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=VZ0a81sioJULD7syAYHjvK_-nT_Rd36tUyzPetSA0gk,3475
@@ -24,7 +24,7 @@ uk_bin_collection/uk_bin_collection/councils/AshfieldDistrictCouncil.py,sha256=2
24
24
  uk_bin_collection/uk_bin_collection/councils/AshfordBoroughCouncil.py,sha256=yC-8UMQHSbvze43PJ2_F4Z3cu7M7cynKTojipBJU7Ug,4307
25
25
  uk_bin_collection/uk_bin_collection/councils/AylesburyValeCouncil.py,sha256=LouqjspEMt1TkOGqWHs2zkxwOETIy3n7p64uKIlAgUg,2401
26
26
  uk_bin_collection/uk_bin_collection/councils/BCPCouncil.py,sha256=W7QBx6Mgso8RYosuXsaYo3GGNAu-tiyBSmuYxr1JSOU,1707
27
- uk_bin_collection/uk_bin_collection/councils/BaberghDistrictCouncil.py,sha256=aPONTzKXtPy7aBHFTRvhKTJ13qXqNicSquNRVAYV2d8,6200
27
+ uk_bin_collection/uk_bin_collection/councils/BaberghDistrictCouncil.py,sha256=1eXdST58xFRMdYl8AGNG_EwyQeLa31WSWUe882hQ2ec,6329
28
28
  uk_bin_collection/uk_bin_collection/councils/BarnetCouncil.py,sha256=Sd4-pbv0QZsR7soxvXYqsfdOUIqZqS6notyoZthG77s,9182
29
29
  uk_bin_collection/uk_bin_collection/councils/BarnsleyMBCouncil.py,sha256=RKuH8HzGc3Q0WtLg-g_xVMn9hUYqdENgfcvvR4Bx5PI,4763
30
30
  uk_bin_collection/uk_bin_collection/councils/BasildonCouncil.py,sha256=NymPmq5pud0PJ8ePcc2r1SKED4EHQ0EY2l71O-Metxc,3313
@@ -59,6 +59,7 @@ uk_bin_collection/uk_bin_collection/councils/CarmarthenshireCountyCouncil.py,sha
59
59
  uk_bin_collection/uk_bin_collection/councils/CastlepointDistrictCouncil.py,sha256=JVPYUIlU2ISgbUSr5AOOXNK6IFQFtQmhZyYIMAOedD4,3858
60
60
  uk_bin_collection/uk_bin_collection/councils/CharnwoodBoroughCouncil.py,sha256=tXfzMetN6wxahuGGRp2mIyCCDSL4F2aG61HhUxw6COQ,2172
61
61
  uk_bin_collection/uk_bin_collection/councils/ChelmsfordCityCouncil.py,sha256=EB88D0MNJwuDZ2GX1ENc5maGYx17mnHTCtNl6s-v11E,5090
62
+ uk_bin_collection/uk_bin_collection/councils/CheltenhamBoroughCouncil.py,sha256=z59g9h6QwdeCNzonM5AI-6NvpLKocD-DT8eSvqk8RwU,3198
62
63
  uk_bin_collection/uk_bin_collection/councils/CheshireEastCouncil.py,sha256=73P5GF6Y7Ud1hNgyFypvT1d6eBWjzdBjr3h0Dsl6NWw,1679
63
64
  uk_bin_collection/uk_bin_collection/councils/CheshireWestAndChesterCouncil.py,sha256=5mKZf22NgdyBY-SqV0c2q8b8IJobkoZrsfGEVUcxUyM,3544
64
65
  uk_bin_collection/uk_bin_collection/councils/ChesterfieldBoroughCouncil.py,sha256=mZiM8Ugm_OP0JkC5pLaQmi4i79mAp4SNNrcIdsREjHw,7198
@@ -68,10 +69,11 @@ uk_bin_collection/uk_bin_collection/councils/ColchesterCityCouncil.py,sha256=Mny
68
69
  uk_bin_collection/uk_bin_collection/councils/ConwyCountyBorough.py,sha256=el75qv2QyfWZBU09tJLvD8vLQZ9pCg73u1NBFs6ybo8,1034
69
70
  uk_bin_collection/uk_bin_collection/councils/CopelandBoroughCouncil.py,sha256=JDtcJFUY47a3Ws4_7pnCYlngw_3p_A-m5MitPLdrv3w,3983
70
71
  uk_bin_collection/uk_bin_collection/councils/CornwallCouncil.py,sha256=WZiz50svwyZgO8QKUCLy7hfFuy2HmAx5h-TG3yAweRA,2836
71
- uk_bin_collection/uk_bin_collection/councils/CotswoldDistrictCouncil.py,sha256=K_HVkAJHEs-i3PRdoBqWVtWUl3BNed6mRLGaqvtSskg,4896
72
+ uk_bin_collection/uk_bin_collection/councils/CotswoldDistrictCouncil.py,sha256=Y2yvduT6XTy54bDYX17-dltjd7L36cc7GDjlx0xWskA,4896
72
73
  uk_bin_collection/uk_bin_collection/councils/CoventryCityCouncil.py,sha256=kfAvA2e4MlO0W9YT70U_mW9gxVPrmr0BOGzV99Tw2Bg,2012
73
74
  uk_bin_collection/uk_bin_collection/councils/CrawleyBoroughCouncil.py,sha256=Oaj5INA3zNjtzBRsfLvRTIxZzcd4E4bJfVF1ULWlrL4,4322
74
75
  uk_bin_collection/uk_bin_collection/councils/CroydonCouncil.py,sha256=Vxh5ICoaXTAvx0nDOq_95XQ4He9sQKcLdI5keV2uxM4,11384
76
+ uk_bin_collection/uk_bin_collection/councils/CumberlandAllerdaleCouncil.py,sha256=bPOmkyzNnHrOtUprbouHdOsgpu7WilUADcaccWTCPFI,2839
75
77
  uk_bin_collection/uk_bin_collection/councils/DacorumBoroughCouncil.py,sha256=Tm_6pvBPj-6qStbe6-02LXaoCOlnnDvVXAAocGVvf_E,3970
76
78
  uk_bin_collection/uk_bin_collection/councils/DartfordBoroughCouncil.py,sha256=SPirUUoweMwX5Txtsr0ocdcFtKxCQ9LhzTTJN20tM4w,1550
77
79
  uk_bin_collection/uk_bin_collection/councils/DerbyCityCouncil.py,sha256=M8FGLhZn9wdRCq1W6z_yqJQqeba3EKyba3vhM22MzB4,1883
@@ -82,7 +84,7 @@ uk_bin_collection/uk_bin_collection/councils/DoverDistrictCouncil.py,sha256=3Zga
82
84
  uk_bin_collection/uk_bin_collection/councils/DudleyCouncil.py,sha256=tDGfBWD5AVEzHt-XowD4qmmDcdlOLKC0oON8jkARRAI,3134
83
85
  uk_bin_collection/uk_bin_collection/councils/DurhamCouncil.py,sha256=6O8bNsQVYQbrCYQE9Rp0c_rtkcXuxR3s9J6jn4MK4_s,1695
84
86
  uk_bin_collection/uk_bin_collection/councils/EalingCouncil.py,sha256=UhNXGi-_6NYZu50988VEvOzmAVunxOoyJ6mz0OEaUz4,1321
85
- uk_bin_collection/uk_bin_collection/councils/EastAyrshireCouncil.py,sha256=U3Y_cQFR2KG5YZ7pPXeT7ZQJ85NUyx16Dky56IdvXUQ,1489
87
+ uk_bin_collection/uk_bin_collection/councils/EastAyrshireCouncil.py,sha256=i3AcWkeAnk7rD59nOm0QCSH7AggqjUAdwsXuSIC8ZJE,1614
86
88
  uk_bin_collection/uk_bin_collection/councils/EastCambridgeshireCouncil.py,sha256=aYUVE5QqTxdj8FHhCB4EiFVDJahWJD9Pq0d1upBEvXg,1501
87
89
  uk_bin_collection/uk_bin_collection/councils/EastDevonDC.py,sha256=U0VwSNIldMv5nUoiXtFgjbE0m6Kb-8W2WZQGVCNF_WI,3261
88
90
  uk_bin_collection/uk_bin_collection/councils/EastHertsCouncil.py,sha256=hjIrZXM0qe8xvHfrBqMDyXnq0_h_ySODqTfmOI5ahTc,4071
@@ -94,7 +96,7 @@ uk_bin_collection/uk_bin_collection/councils/EastleighBoroughCouncil.py,sha256=V
94
96
  uk_bin_collection/uk_bin_collection/councils/EdinburghCityCouncil.py,sha256=YRjNgevnCxfaAIU8BV9dkqG17NiT6S-hp7l-1rdLVgQ,3150
95
97
  uk_bin_collection/uk_bin_collection/councils/ElmbridgeBoroughCouncil.py,sha256=TgBOaReHWBbm0avV7HqRf0x7cxDe9cacTUcP9TFFprs,3005
96
98
  uk_bin_collection/uk_bin_collection/councils/EnfieldCouncil.py,sha256=2yR5p-kdApOm1gHiynNECP0jQDvaYHOiT6MAQJAvunE,6144
97
- uk_bin_collection/uk_bin_collection/councils/EnvironmentFirst.py,sha256=_9QJYDHpdnYK5R6znvZk1w0F9GnPnI8G4b6I_p26h4U,1695
99
+ uk_bin_collection/uk_bin_collection/councils/EnvironmentFirst.py,sha256=R0Y94nEn2G4JgzJ3PKkUXP6a0fPpjaunpRxbfMLKT4s,2135
98
100
  uk_bin_collection/uk_bin_collection/councils/EppingForestDistrictCouncil.py,sha256=cKFllQ4zt6MGkwiz_HedZvw3iL1kRMLA6Ct2spUE5og,2085
99
101
  uk_bin_collection/uk_bin_collection/councils/ErewashBoroughCouncil.py,sha256=QTQA6NjZtTL2baDeerIQW1SQpawwu6kGDMGdVvYQRRo,2501
100
102
  uk_bin_collection/uk_bin_collection/councils/ExeterCityCouncil.py,sha256=FPNyBuQFYGFECZfCemgeHr27bXJFVvadinw43h-G8qs,1623
@@ -103,6 +105,7 @@ uk_bin_collection/uk_bin_collection/councils/FarehamBoroughCouncil.py,sha256=25Q
103
105
  uk_bin_collection/uk_bin_collection/councils/FenlandDistrictCouncil.py,sha256=sFrnKzIE2tIcz0YrC6A9HcevzgNdf6E6_HLGMWDKtGw,2513
104
106
  uk_bin_collection/uk_bin_collection/councils/FifeCouncil.py,sha256=eP_NnHtBLyflRUko9ubi_nxUPb7qg9SbaaSxqWZxNEs,2157
105
107
  uk_bin_collection/uk_bin_collection/councils/FlintshireCountyCouncil.py,sha256=RvPHhGbzP3mcjgWe2rIQux43UuDH7XofJGIKs7wJRe0,2060
108
+ uk_bin_collection/uk_bin_collection/councils/FolkstoneandHytheDistrictCouncil.py,sha256=yKgZhua-2hjMihHshhncXVUBagbTOQBnNbKzdIZkWjw,3114
106
109
  uk_bin_collection/uk_bin_collection/councils/ForestOfDeanDistrictCouncil.py,sha256=YWT2GM2-bQ3Zh9ps1K14XRZfanuJOlV-zHpOOYMXAXY,4893
107
110
  uk_bin_collection/uk_bin_collection/councils/GatesheadCouncil.py,sha256=SRCgYhYs6rv_8C1UEDVORHZgXxcJkoZBjzdYS4Lu-ew,4531
108
111
  uk_bin_collection/uk_bin_collection/councils/GedlingBoroughCouncil.py,sha256=XzfFMCwclh9zAJgsbaj4jywjdiH0wPaFicaVsLrN3ms,2297
@@ -110,10 +113,12 @@ uk_bin_collection/uk_bin_collection/councils/GlasgowCityCouncil.py,sha256=9N5GXR
110
113
  uk_bin_collection/uk_bin_collection/councils/GloucesterCityCouncil.py,sha256=8Wjvmdvg5blHVrREaEnhhWZaWhYVP4v_KdDVPLIUxaU,4889
111
114
  uk_bin_collection/uk_bin_collection/councils/GraveshamBoroughCouncil.py,sha256=ueQ9xFiTxMUBTGV9VjtySHA1EFWliTM0AeNePBIG9ho,4568
112
115
  uk_bin_collection/uk_bin_collection/councils/GuildfordCouncil.py,sha256=9pVrmQhZcK2AD8gX8mNvP--L4L9KaY6L3B822VX6fec,5695
116
+ uk_bin_collection/uk_bin_collection/councils/HackneyCouncil.py,sha256=fJZTHCk-uXC61V_7uxiU_MhIupfeObjaUYAT0v0onLo,3100
113
117
  uk_bin_collection/uk_bin_collection/councils/HaltonBoroughCouncil.py,sha256=gq_CPqi6qM2oNiHhKKF1lZC86fyKL4lPhh_DN9pJZ04,5971
114
118
  uk_bin_collection/uk_bin_collection/councils/HarboroughDistrictCouncil.py,sha256=uAbCgfrqkIkEKUyLVE8l72s5tzbfMFsw775i0nVRAyc,1934
115
119
  uk_bin_collection/uk_bin_collection/councils/HaringeyCouncil.py,sha256=t_6AkAu4wrv8Q0WlDhWh_82I0djl5tk531Pzs-SjWzg,2647
116
120
  uk_bin_collection/uk_bin_collection/councils/HarrogateBoroughCouncil.py,sha256=_g3fP5Nq-OUjgNrfRf4UEyFKzq0x8QK-4enh5RP1efA,2050
121
+ uk_bin_collection/uk_bin_collection/councils/HartlepoolBoroughCouncil.py,sha256=MUT1A24iZShT2p55rXEvgYwGUuw3W05Z4ZQAveehv-s,2842
117
122
  uk_bin_collection/uk_bin_collection/councils/HertsmereBoroughCouncil.py,sha256=-ThSG6NIJP_wf2GmGL7SAvxbOujdhanZ8ECP4VSQCBs,5415
118
123
  uk_bin_collection/uk_bin_collection/councils/HighPeakCouncil.py,sha256=oqF8M0lcT3KsrG6W6I6JJX07E6Sc_-_sr7MybfIMab8,4626
119
124
  uk_bin_collection/uk_bin_collection/councils/HighlandCouncil.py,sha256=GNxDU65QuZHV5va2IrKtcJ6TQoDdwmV03JvkVqOauP4,3291
@@ -121,6 +126,7 @@ uk_bin_collection/uk_bin_collection/councils/HounslowCouncil.py,sha256=LXhJ47ruj
121
126
  uk_bin_collection/uk_bin_collection/councils/HullCityCouncil.py,sha256=UHcesBoctFVcXDYuwfag43KbcJcopkEDzJ-54NxtK0Q,1851
122
127
  uk_bin_collection/uk_bin_collection/councils/HuntingdonDistrictCouncil.py,sha256=dGyhhG6HRjQ2SPeiRwUPTGlk9dPIslagV2k0GjEOn1s,1587
123
128
  uk_bin_collection/uk_bin_collection/councils/IslingtonCouncil.py,sha256=xavzL6ZIU9DG8Xro3vN0CEnYmNU31OGnOvnq78wgpQc,1258
129
+ uk_bin_collection/uk_bin_collection/councils/KingsLynnandWestNorfolkBC.py,sha256=Shj18R-7NW4ivqJJFVJOLmf-EeN6hXP2Of30oI-SeAQ,1932
124
130
  uk_bin_collection/uk_bin_collection/councils/KingstonUponThamesCouncil.py,sha256=iZ7njIxccCGBhUUWWd9Azh7cxUAKaofebCm3lo-TuxA,3543
125
131
  uk_bin_collection/uk_bin_collection/councils/KirkleesCouncil.py,sha256=gtAtM6FappSZ0-BKid7_pnSrnqPPjHn_UYWqMg9wQlM,4499
126
132
  uk_bin_collection/uk_bin_collection/councils/KnowsleyMBCouncil.py,sha256=VdlWDESoHfr_X0r8-UMaLMUQhKZOa2BnpVPkX-1u3EQ,5605
@@ -132,8 +138,10 @@ uk_bin_collection/uk_bin_collection/councils/LisburnCastlereaghCityCouncil.py,sh
132
138
  uk_bin_collection/uk_bin_collection/councils/LiverpoolCityCouncil.py,sha256=n17OqZrCGrPrnxGUfHc-RGkb4oJ9Bx6uUWiLdzxfQlY,2587
133
139
  uk_bin_collection/uk_bin_collection/councils/LondonBoroughEaling.py,sha256=QDx2Izr-6hUSFMi4UWqsgo3p6U8aRZ9d_Cu9cBSp2rY,1653
134
140
  uk_bin_collection/uk_bin_collection/councils/LondonBoroughHarrow.py,sha256=kzKwbjDBCbJXF6JdvTZWdXK0fpZxuH1CQF9GGyVMAus,1408
141
+ uk_bin_collection/uk_bin_collection/councils/LondonBoroughHavering.py,sha256=6DNX6IShdoEG4FjoyrzrY_HLEu9R2Bgl6PN0bSCbhow,2436
135
142
  uk_bin_collection/uk_bin_collection/councils/LondonBoroughHounslow.py,sha256=UOeiOxGMvVMm2UFaqjmQpm7vxzqJNSSN8LM9lAUjs2c,3021
136
143
  uk_bin_collection/uk_bin_collection/councils/LondonBoroughLambeth.py,sha256=r9D5lHe5kIRStCd5lRIax16yhb4KTFzzfYEFv1bacWw,2009
144
+ uk_bin_collection/uk_bin_collection/councils/LondonBoroughLewisham.py,sha256=s5RIuNeOpuQd8z_NO1-YdSaq8l3snE5D95SNVd0on9s,4871
137
145
  uk_bin_collection/uk_bin_collection/councils/LondonBoroughRedbridge.py,sha256=A_6Sis5hsF53Th04KeadHRasGbpAm6aoaWJ6X8eC4Y8,6604
138
146
  uk_bin_collection/uk_bin_collection/councils/LondonBoroughSutton.py,sha256=c2haHOwX7Dy1phVUTv3xaQgM9VeHmFuBwdAgqGcGs8Y,2369
139
147
  uk_bin_collection/uk_bin_collection/councils/LutonBoroughCouncil.py,sha256=vScUi_R8FnBddii2_zLlZBLxuh85mKmCm8nKW3zxky0,2758
@@ -144,20 +152,23 @@ uk_bin_collection/uk_bin_collection/councils/MansfieldDistrictCouncil.py,sha256=
144
152
  uk_bin_collection/uk_bin_collection/councils/MertonCouncil.py,sha256=3Y2Un4xXo1sCcMsudynODSzocV_mMofWkX2JqONDb5o,1997
145
153
  uk_bin_collection/uk_bin_collection/councils/MidAndEastAntrimBoroughCouncil.py,sha256=oOWwU5FSgGej2Mv7FQ66N-EzS5nZgmGsd0WnfLWUc1I,5238
146
154
  uk_bin_collection/uk_bin_collection/councils/MidDevonCouncil.py,sha256=RjBZ7R3_Pax9p1d2DCygqryjV1RP4BYvqb-rT_KyOEg,3322
147
- uk_bin_collection/uk_bin_collection/councils/MidSuffolkDistrictCouncil.py,sha256=b1E47oGUmBfLHzoIT74t556kO-SuopelRprf_ywUsvM,6200
155
+ uk_bin_collection/uk_bin_collection/councils/MidSuffolkDistrictCouncil.py,sha256=h6M-v5jVYe7OlQ47Vf-0pEgECZLOOacK3_XE6zbpsM4,6329
148
156
  uk_bin_collection/uk_bin_collection/councils/MidSussexDistrictCouncil.py,sha256=AZgC9wmDLEjUOtIFvf0ehF5LHturXTH4DkE3ioPSVBA,6254
149
157
  uk_bin_collection/uk_bin_collection/councils/MidlothianCouncil.py,sha256=mM5-itJDNhjsT5UEjSFfWppmfmPFSns4u_1QblewuFU,5605
150
158
  uk_bin_collection/uk_bin_collection/councils/MiltonKeynesCityCouncil.py,sha256=7e2pGBLCw24pNItHeI9jkxQ3rEOZ4WC4zVlbvKYGdXE,2600
151
159
  uk_bin_collection/uk_bin_collection/councils/MoleValleyDistrictCouncil.py,sha256=xWR5S0gwQu9gXxjl788Wux1KaC0CT7ZFw0iXuRLZCEM,5599
160
+ uk_bin_collection/uk_bin_collection/councils/MorayCouncil.py,sha256=jsHCQ_aV_bG0GPfF7h6g5TP84sroplYC5k2M6iEKiTw,2265
152
161
  uk_bin_collection/uk_bin_collection/councils/NeathPortTalbotCouncil.py,sha256=ychYR2nsyk2UIb8tjWaKrLUT4hxSsHN558l3RqZ0mjw,5635
153
162
  uk_bin_collection/uk_bin_collection/councils/NewForestCouncil.py,sha256=ylTn9KmWITtaO9_Z8kJCN2w2ALfhrfGt3SeJ78lgw7M,5391
154
163
  uk_bin_collection/uk_bin_collection/councils/NewarkAndSherwoodDC.py,sha256=lAleYfCGUWCKOi7Ye_cjgfpI3pWwTcFctlYmh0hjebM,2140
155
164
  uk_bin_collection/uk_bin_collection/councils/NewcastleCityCouncil.py,sha256=eJMX10CG9QO7FRhHSmUDL-jO_44qoK3_1ztNTAXhkbw,2085
165
+ uk_bin_collection/uk_bin_collection/councils/NewcastleUnderLymeCouncil.py,sha256=t150wPtF2eEFYNTVj2EnhXt6JJJRiEX8976bh9JBXlg,2328
156
166
  uk_bin_collection/uk_bin_collection/councils/NewhamCouncil.py,sha256=klFqr2Km1BuQ4wERmjbXZzOvN1N0jnVmhTGRSVzVOaU,2086
157
167
  uk_bin_collection/uk_bin_collection/councils/NewportCityCouncil.py,sha256=dAcl5P97bttl2xCPvxof1a18kmqOrMmiElgtn3Ej7zs,8480
158
168
  uk_bin_collection/uk_bin_collection/councils/NorthAyrshireCouncil.py,sha256=o8zv40Wt19d51mrN5lsgLMCKMokMPmI1cMHBNT5yAho,1976
159
169
  uk_bin_collection/uk_bin_collection/councils/NorthEastDerbyshireDistrictCouncil.py,sha256=bps_uCFAeUHQla7AE5lZOv6sUkUz1fb6zduZdAcYMuw,4651
160
170
  uk_bin_collection/uk_bin_collection/councils/NorthEastLincs.py,sha256=fYf438VZIaOaqPSwdTTWVjFTdrI0jGfFsxVzOc-QdkA,1817
171
+ uk_bin_collection/uk_bin_collection/councils/NorthHertfordshireDistrictCouncil.py,sha256=dFgvZqVKEVEP0zSPeh2s9xIWSCGbhYHpXn2U6Nk0HXM,2847
161
172
  uk_bin_collection/uk_bin_collection/councils/NorthKestevenDistrictCouncil.py,sha256=vYOCerJXr9LTP6F2wm4vpYNYbQaWNZ6yfHEQ33N_hTw,1681
162
173
  uk_bin_collection/uk_bin_collection/councils/NorthLanarkshireCouncil.py,sha256=npK1V8D3SLNTSSKkfEpEPvVgXDFyhH_tAsuGogsVKQY,1763
163
174
  uk_bin_collection/uk_bin_collection/councils/NorthLincolnshireCouncil.py,sha256=kCT82SU-etoGBehoIbbzGw_XS2YHllTw7lCCbdQj7UE,2467
@@ -186,10 +197,12 @@ uk_bin_collection/uk_bin_collection/councils/RochdaleCouncil.py,sha256=UTSwSw515
186
197
  uk_bin_collection/uk_bin_collection/councils/RochfordCouncil.py,sha256=rfhD66A9HfHL46ldF9sbxvV7fPaaoNxzIJbHjVT6A90,2621
187
198
  uk_bin_collection/uk_bin_collection/councils/RotherDistrictCouncil.py,sha256=-fdLvtik9ytfwXrrhwWdBxqQOMq2N1pvrIuvShhf8PU,3090
188
199
  uk_bin_collection/uk_bin_collection/councils/RotherhamCouncil.py,sha256=LtMPM8lj5bfReDR4buHEo-aRC_HTBIeo1nf8GE5-R80,1790
200
+ uk_bin_collection/uk_bin_collection/councils/RoyalBoroughofGreenwich.py,sha256=BZzLmWK_VONOmMpSrLrnKtJaOrrepm6aStfKGVcgf9Y,3487
189
201
  uk_bin_collection/uk_bin_collection/councils/RugbyBoroughCouncil.py,sha256=a5ySLmFvvY56QMA7-bk6MVBxRp5tPBIBg4navH0eYas,4306
190
202
  uk_bin_collection/uk_bin_collection/councils/RushcliffeBoroughCouncil.py,sha256=wMtiYRirT585vtsEOIyXHugk7aEj3pvyVWBaAePdqtE,4005
191
203
  uk_bin_collection/uk_bin_collection/councils/RushmoorCouncil.py,sha256=ZsGnXjoEaOS6U7fI0w7-uqxayAHdNVKsJi2fqIWEls8,3375
192
204
  uk_bin_collection/uk_bin_collection/councils/SalfordCityCouncil.py,sha256=jJjAH_dM298VIJ4-SEy7agxUe8aFJ_sEPK_ZwmWJ9cE,2506
205
+ uk_bin_collection/uk_bin_collection/councils/SandwellBoroughCouncil.py,sha256=shJhvqDcha2ypDCSfhss59G95jNaWBuMnVIxJiZXcY8,3110
193
206
  uk_bin_collection/uk_bin_collection/councils/SeftonCouncil.py,sha256=XUEz2li0oHrRhdkls5qzlZNZ0GuwSG7r0dwsL-qdoFA,2480
194
207
  uk_bin_collection/uk_bin_collection/councils/SevenoaksDistrictCouncil.py,sha256=qqrrRaSVm9CYAtm0rB2ZnyH_nLwaReuacoUxZpo597k,4260
195
208
  uk_bin_collection/uk_bin_collection/councils/SheffieldCityCouncil.py,sha256=9g9AeiackoWyej9EVlKUzywzAtMuBVD0f93ZryAUha8,2016
@@ -231,6 +244,7 @@ uk_bin_collection/uk_bin_collection/councils/TendringDistrictCouncil.py,sha256=D
231
244
  uk_bin_collection/uk_bin_collection/councils/TestValleyBoroughCouncil.py,sha256=Dtfkyrwt795W7gqFJxVGRR8t3R5WMNQZwTWJckLpZWE,8480
232
245
  uk_bin_collection/uk_bin_collection/councils/ThanetDistrictCouncil.py,sha256=-opmZG9GzjB_NvmWpN6nFZ7rlkSoaRrQICU5E8T0DEQ,1659
233
246
  uk_bin_collection/uk_bin_collection/councils/ThreeRiversDistrictCouncil.py,sha256=RHt3e9oeKzwxjjY-M8aC0nk-ZXhHIoyC81JzxkPVxsE,5531
247
+ uk_bin_collection/uk_bin_collection/councils/ThurrockCouncil.py,sha256=vAZMm6mcsdEcOkP15xwxWy9gdXpmLYQFH7qRifurNoY,2935
234
248
  uk_bin_collection/uk_bin_collection/councils/TonbridgeAndMallingBC.py,sha256=UlgnHDoi8ecav2H5-HqKNDpqW1J3RN-c___5c08_Q7I,4859
235
249
  uk_bin_collection/uk_bin_collection/councils/TorbayCouncil.py,sha256=JW_BS7wkfxFsmx6taQtPAQWdBp1AfLrxs0XRQ2XZcSw,2029
236
250
  uk_bin_collection/uk_bin_collection/councils/TorridgeDistrictCouncil.py,sha256=6gOO02pYU0cbj3LAHiBVNG4zkFMyIGbkE2jAye3KcGM,6386
@@ -252,7 +266,7 @@ uk_bin_collection/uk_bin_collection/councils/WestLancashireBoroughCouncil.py,sha
252
266
  uk_bin_collection/uk_bin_collection/councils/WestLindseyDistrictCouncil.py,sha256=JFWUy4w0CKulGq16PfbRDKAdQEbokVEuabwlZYigdEU,4606
253
267
  uk_bin_collection/uk_bin_collection/councils/WestLothianCouncil.py,sha256=dq0jimtARvRkZiGbVFrXXZgY-BODtz3uYZ5UKn0bf64,4114
254
268
  uk_bin_collection/uk_bin_collection/councils/WestMorlandAndFurness.py,sha256=jbqV3460rn9D0yTBGWjpSe1IvWWcdGur5pzgj-hJcQ4,2513
255
- uk_bin_collection/uk_bin_collection/councils/WestNorthamptonshireCouncil.py,sha256=F1GeJUGND4DN_HuM6N0Elpeb0DAMm9_KeqG6qtIgZf4,1079
269
+ uk_bin_collection/uk_bin_collection/councils/WestNorthamptonshireCouncil.py,sha256=Se3Cfn_6ADjhsUzEJI_JnGkVcIbXxSTferM4ZC6pZ0g,1166
256
270
  uk_bin_collection/uk_bin_collection/councils/WestOxfordshireDistrictCouncil.py,sha256=bkE7BUwRIEJQyfOHyXYeaJB1ruGTFu9LHIGursIBEIQ,4859
257
271
  uk_bin_collection/uk_bin_collection/councils/WestSuffolkCouncil.py,sha256=9i8AQHh-qIRPZ_5Ad97_h04-qgyLQDPV064obBzab1Y,2587
258
272
  uk_bin_collection/uk_bin_collection/councils/WiganBoroughCouncil.py,sha256=3gqFA4-BVx_In6QOu3KUNqPN4Fkn9iMlZTeopMK9p6A,3746
@@ -266,12 +280,13 @@ uk_bin_collection/uk_bin_collection/councils/WolverhamptonCityCouncil.py,sha256=
266
280
  uk_bin_collection/uk_bin_collection/councils/WorcesterCityCouncil.py,sha256=dKHB2fPSmOGOwyvfpbdR4U8XW2ctBf63gCPxX06kwKA,1867
267
281
  uk_bin_collection/uk_bin_collection/councils/WychavonDistrictCouncil.py,sha256=GnNNMe33YMlK6S7rjM3c4BQkBnXelS0DKl2x5V4fb2w,5775
268
282
  uk_bin_collection/uk_bin_collection/councils/WyreCouncil.py,sha256=zDDa7n4K_zm5PgDL08A26gD9yOOsOhuexI3x2seaBF4,3511
283
+ uk_bin_collection/uk_bin_collection/councils/WyreForestDistrictCouncil.py,sha256=3b7WzBXdYub6j13sqDL3jlqgICKmNyQaF4KxRxOMHWk,2000
269
284
  uk_bin_collection/uk_bin_collection/councils/YorkCouncil.py,sha256=I2kBYMlsD4bIdsvmoSzBjJAvTTi6yPfJa8xjJx1ys2w,1490
270
285
  uk_bin_collection/uk_bin_collection/councils/council_class_template/councilclasstemplate.py,sha256=EQWRhZ2pEejlvm0fPyOTsOHKvUZmPnxEYO_OWRGKTjs,1158
271
286
  uk_bin_collection/uk_bin_collection/create_new_council.py,sha256=m-IhmWmeWQlFsTZC4OxuFvtw5ZtB8EAJHxJTH4O59lQ,1536
272
287
  uk_bin_collection/uk_bin_collection/get_bin_data.py,sha256=YvmHfZqanwrJ8ToGch34x-L-7yPe31nB_x77_Mgl_vo,4545
273
- uk_bin_collection-0.119.0.dist-info/LICENSE,sha256=vABBUOzcrgfaTKpzeo-si9YVEun6juDkndqA8RKdKGs,1071
274
- uk_bin_collection-0.119.0.dist-info/METADATA,sha256=9KFQUNN2qI6XpAW3T1a-Xh5JovSSHKaXGPpX41DP4hs,17574
275
- uk_bin_collection-0.119.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
276
- uk_bin_collection-0.119.0.dist-info/entry_points.txt,sha256=36WCSGMWSc916S3Hi1ZkazzDKHaJ6CD-4fCEFm5MIao,90
277
- uk_bin_collection-0.119.0.dist-info/RECORD,,
288
+ uk_bin_collection-0.121.0.dist-info/LICENSE,sha256=vABBUOzcrgfaTKpzeo-si9YVEun6juDkndqA8RKdKGs,1071
289
+ uk_bin_collection-0.121.0.dist-info/METADATA,sha256=f-aX3ZbYEjfWr5ieH7-qxbRqF7ChjB79u73BupT5sIY,17574
290
+ uk_bin_collection-0.121.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
291
+ uk_bin_collection-0.121.0.dist-info/entry_points.txt,sha256=36WCSGMWSc916S3Hi1ZkazzDKHaJ6CD-4fCEFm5MIao,90
292
+ uk_bin_collection-0.121.0.dist-info/RECORD,,