uk_bin_collection 0.119.0__py3-none-any.whl → 0.121.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 (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,,