uk_bin_collection 0.144.0__py3-none-any.whl → 0.144.1__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.
@@ -1677,7 +1677,7 @@
1677
1677
  },
1678
1678
  "SandwellBoroughCouncil": {
1679
1679
  "skip_get_url": true,
1680
- "uprn": "10008755549",
1680
+ "uprn": "32101971",
1681
1681
  "url": "https://www.sandwell.gov.uk",
1682
1682
  "wiki_name": "Sandwell Borough Council",
1683
1683
  "wiki_note": "Pass the UPRN. You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search)."
@@ -2332,4 +2332,4 @@
2332
2332
  "wiki_name": "York Council",
2333
2333
  "wiki_note": "Provide your UPRN."
2334
2334
  }
2335
- }
2335
+ }
@@ -32,12 +32,13 @@ class CouncilClass(AbstractGetBinDataClass):
32
32
  "Referer": "https://my.sandwell.gov.uk/fillform/?iframe_id=fillform-frame-1&db_id=",
33
33
  }
34
34
  s = requests.session()
35
+ # Establish a session and grab the session ID
35
36
  r = s.get(SESSION_URL)
36
37
  r.raise_for_status()
37
38
  session_data = r.json()
38
39
  sid = session_data["auth-session"]
39
40
 
40
- data = {
41
+ payload = {
41
42
  "formValues": {
42
43
  "Property details": {
43
44
  "Uprn": {
@@ -49,9 +50,7 @@ class CouncilClass(AbstractGetBinDataClass):
49
50
  },
50
51
  },
51
52
  }
52
-
53
- params = {
54
- "id": "58a1a71694992",
53
+ base_params = {
55
54
  "repeat_against": "",
56
55
  "noRetry": "false",
57
56
  "getOnlyTokens": "undefined",
@@ -61,27 +60,36 @@ class CouncilClass(AbstractGetBinDataClass):
61
60
  "_": str(int(time.time() * 1000)),
62
61
  "sid": sid,
63
62
  }
63
+ # (request_id, date field to use from response, bin type labels)
64
+ lookups = [
65
+ (
66
+ "58a1a71694992",
67
+ "DWDate",
68
+ [
69
+ "Recycling (Blue)",
70
+ "Household Waste (Grey)",
71
+ "Food Waste (Brown)",
72
+ "Batteries",
73
+ ],
74
+ ),
75
+ ("56b1cdaf6bb43", "GWDate", ["Garden Waste (Green)"]),
76
+ ]
64
77
 
65
- r = s.post(API_URL, json=data, headers=headers, params=params)
66
- r.raise_for_status()
78
+ for request_id, date_key, bin_types in lookups:
79
+ params = {"id": request_id, **base_params}
67
80
 
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)
81
+ resp = s.post(API_URL, json=payload, headers=headers, params=params)
82
+ resp.raise_for_status()
83
+ result = resp.json()
84
+
85
+ rows_data = result["integration"]["transformed"]["rows_data"]
86
+ if not isinstance(rows_data, dict):
87
+ # Garden waste for some Uprns returns an empty list
88
+ continue
89
+
90
+ for row in rows_data.values():
91
+ date = row[date_key]
92
+ for bin_type in bin_types:
93
+ bindata["bins"].append({"type": bin_type, "collectionDate": date})
86
94
 
87
95
  return bindata
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: uk_bin_collection
3
- Version: 0.144.0
3
+ Version: 0.144.1
4
4
  Summary: Python Lib to collect UK Bin Data
5
5
  Author: Robert Bradley
6
6
  Author-email: robbrad182@gmail.com
@@ -3,7 +3,7 @@ uk_bin_collection/tests/check_selenium_url_in_input.json.py,sha256=Iecdja0I3XIiY
3
3
  uk_bin_collection/tests/council_feature_input_parity.py,sha256=DO6Mk4ImYgM5ZCZ-cutwz5RoYYWZRLYx2tr6zIs_9Rc,3843
4
4
  uk_bin_collection/tests/features/environment.py,sha256=VQZjJdJI_kZn08M0j5cUgvKT4k3iTw8icJge1DGOkoA,127
5
5
  uk_bin_collection/tests/features/validate_council_outputs.feature,sha256=SJK-Vc737hrf03tssxxbeg_JIvAH-ddB8f6gU1LTbuQ,251
6
- uk_bin_collection/tests/input.json,sha256=ArQftTY8SVx1lttw69j6vTOydzcq2D-aza_sXwjQq5I,121959
6
+ uk_bin_collection/tests/input.json,sha256=6GN41kIFiUAvCo4mzwTWpxumcY9MSYTqCIqsvY5wg_4,121957
7
7
  uk_bin_collection/tests/output.schema,sha256=ZwKQBwYyTDEM4G2hJwfLUVM-5v1vKRvRK9W9SS1sd18,1086
8
8
  uk_bin_collection/tests/step_defs/step_helpers/file_handler.py,sha256=Ygzi4V0S1MIHqbdstUlIqtRIwnynvhu4UtpweJ6-5N8,1474
9
9
  uk_bin_collection/tests/step_defs/test_validate_council.py,sha256=VZ0a81sioJULD7syAYHjvK_-nT_Rd36tUyzPetSA0gk,3475
@@ -239,7 +239,7 @@ uk_bin_collection/uk_bin_collection/councils/RunnymedeBoroughCouncil.py,sha256=v
239
239
  uk_bin_collection/uk_bin_collection/councils/RushcliffeBoroughCouncil.py,sha256=nWo8xeER71FEbnMTX8W9bcwZNpLEExWzPvgRT7DmcMc,4221
240
240
  uk_bin_collection/uk_bin_collection/councils/RushmoorCouncil.py,sha256=ZsGnXjoEaOS6U7fI0w7-uqxayAHdNVKsJi2fqIWEls8,3375
241
241
  uk_bin_collection/uk_bin_collection/councils/SalfordCityCouncil.py,sha256=XUGemp2cdzsvkWjnv2m4YKTMcoKDUfIlVy3YucX-_o4,2601
242
- uk_bin_collection/uk_bin_collection/councils/SandwellBoroughCouncil.py,sha256=shJhvqDcha2ypDCSfhss59G95jNaWBuMnVIxJiZXcY8,3110
242
+ uk_bin_collection/uk_bin_collection/councils/SandwellBoroughCouncil.py,sha256=Y9aPYNu1ZahJJ0BuDIWoQqynSz2AQGUcwrJR_cvPsvc,3516
243
243
  uk_bin_collection/uk_bin_collection/councils/SeftonCouncil.py,sha256=XUEz2li0oHrRhdkls5qzlZNZ0GuwSG7r0dwsL-qdoFA,2480
244
244
  uk_bin_collection/uk_bin_collection/councils/SevenoaksDistrictCouncil.py,sha256=qqrrRaSVm9CYAtm0rB2ZnyH_nLwaReuacoUxZpo597k,4260
245
245
  uk_bin_collection/uk_bin_collection/councils/SheffieldCityCouncil.py,sha256=9g9AeiackoWyej9EVlKUzywzAtMuBVD0f93ZryAUha8,2016
@@ -329,8 +329,8 @@ uk_bin_collection/uk_bin_collection/councils/YorkCouncil.py,sha256=I2kBYMlsD4bId
329
329
  uk_bin_collection/uk_bin_collection/councils/council_class_template/councilclasstemplate.py,sha256=EQWRhZ2pEejlvm0fPyOTsOHKvUZmPnxEYO_OWRGKTjs,1158
330
330
  uk_bin_collection/uk_bin_collection/create_new_council.py,sha256=m-IhmWmeWQlFsTZC4OxuFvtw5ZtB8EAJHxJTH4O59lQ,1536
331
331
  uk_bin_collection/uk_bin_collection/get_bin_data.py,sha256=YvmHfZqanwrJ8ToGch34x-L-7yPe31nB_x77_Mgl_vo,4545
332
- uk_bin_collection-0.144.0.dist-info/LICENSE,sha256=vABBUOzcrgfaTKpzeo-si9YVEun6juDkndqA8RKdKGs,1071
333
- uk_bin_collection-0.144.0.dist-info/METADATA,sha256=k-jkQ-brkbppOAbOHd39-gv751ReJOWBS72yj-zZSyI,19858
334
- uk_bin_collection-0.144.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
335
- uk_bin_collection-0.144.0.dist-info/entry_points.txt,sha256=36WCSGMWSc916S3Hi1ZkazzDKHaJ6CD-4fCEFm5MIao,90
336
- uk_bin_collection-0.144.0.dist-info/RECORD,,
332
+ uk_bin_collection-0.144.1.dist-info/LICENSE,sha256=vABBUOzcrgfaTKpzeo-si9YVEun6juDkndqA8RKdKGs,1071
333
+ uk_bin_collection-0.144.1.dist-info/METADATA,sha256=Pk5QeIPJ_FQYDxoe4UgUdqG8-vDxsX4CbzkE-EGVmzs,19858
334
+ uk_bin_collection-0.144.1.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
335
+ uk_bin_collection-0.144.1.dist-info/entry_points.txt,sha256=36WCSGMWSc916S3Hi1ZkazzDKHaJ6CD-4fCEFm5MIao,90
336
+ uk_bin_collection-0.144.1.dist-info/RECORD,,