uk_bin_collection 0.74.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 (171) hide show
  1. uk_bin_collection/README.rst +0 -0
  2. uk_bin_collection/tests/council_feature_input_parity.py +79 -0
  3. uk_bin_collection/tests/features/environment.py +7 -0
  4. uk_bin_collection/tests/features/validate_council_outputs.feature +767 -0
  5. uk_bin_collection/tests/input.json +1077 -0
  6. uk_bin_collection/tests/output.schema +41 -0
  7. uk_bin_collection/tests/step_defs/step_helpers/file_handler.py +46 -0
  8. uk_bin_collection/tests/step_defs/test_validate_council.py +87 -0
  9. uk_bin_collection/tests/test_collect_data.py +104 -0
  10. uk_bin_collection/tests/test_common_functions.py +342 -0
  11. uk_bin_collection/uk_bin_collection/collect_data.py +133 -0
  12. uk_bin_collection/uk_bin_collection/common.py +292 -0
  13. uk_bin_collection/uk_bin_collection/councils/AdurAndWorthingCouncils.py +43 -0
  14. uk_bin_collection/uk_bin_collection/councils/ArunCouncil.py +97 -0
  15. uk_bin_collection/uk_bin_collection/councils/AylesburyValeCouncil.py +69 -0
  16. uk_bin_collection/uk_bin_collection/councils/BCPCouncil.py +51 -0
  17. uk_bin_collection/uk_bin_collection/councils/BarnetCouncil.py +180 -0
  18. uk_bin_collection/uk_bin_collection/councils/BarnsleyMBCouncil.py +109 -0
  19. uk_bin_collection/uk_bin_collection/councils/BasingstokeCouncil.py +72 -0
  20. uk_bin_collection/uk_bin_collection/councils/BathAndNorthEastSomersetCouncil.py +100 -0
  21. uk_bin_collection/uk_bin_collection/councils/BedfordBoroughCouncil.py +49 -0
  22. uk_bin_collection/uk_bin_collection/councils/BedfordshireCouncil.py +70 -0
  23. uk_bin_collection/uk_bin_collection/councils/BexleyCouncil.py +147 -0
  24. uk_bin_collection/uk_bin_collection/councils/BirminghamCityCouncil.py +119 -0
  25. uk_bin_collection/uk_bin_collection/councils/BlackburnCouncil.py +105 -0
  26. uk_bin_collection/uk_bin_collection/councils/BoltonCouncil.py +104 -0
  27. uk_bin_collection/uk_bin_collection/councils/BradfordMDC.py +103 -0
  28. uk_bin_collection/uk_bin_collection/councils/BrightonandHoveCityCouncil.py +137 -0
  29. uk_bin_collection/uk_bin_collection/councils/BristolCityCouncil.py +141 -0
  30. uk_bin_collection/uk_bin_collection/councils/BromleyBoroughCouncil.py +115 -0
  31. uk_bin_collection/uk_bin_collection/councils/BroxtoweBoroughCouncil.py +107 -0
  32. uk_bin_collection/uk_bin_collection/councils/BuckinghamshireCouncil.py +95 -0
  33. uk_bin_collection/uk_bin_collection/councils/BuryCouncil.py +65 -0
  34. uk_bin_collection/uk_bin_collection/councils/CalderdaleCouncil.py +123 -0
  35. uk_bin_collection/uk_bin_collection/councils/CannockChaseDistrictCouncil.py +65 -0
  36. uk_bin_collection/uk_bin_collection/councils/CardiffCouncil.py +172 -0
  37. uk_bin_collection/uk_bin_collection/councils/CastlepointDistrictCouncil.py +96 -0
  38. uk_bin_collection/uk_bin_collection/councils/CharnwoodBoroughCouncil.py +54 -0
  39. uk_bin_collection/uk_bin_collection/councils/ChelmsfordCityCouncil.py +127 -0
  40. uk_bin_collection/uk_bin_collection/councils/CheshireEastCouncil.py +32 -0
  41. uk_bin_collection/uk_bin_collection/councils/CheshireWestAndChesterCouncil.py +125 -0
  42. uk_bin_collection/uk_bin_collection/councils/ChorleyCouncil.py +134 -0
  43. uk_bin_collection/uk_bin_collection/councils/ConwyCountyBorough.py +27 -0
  44. uk_bin_collection/uk_bin_collection/councils/CrawleyBoroughCouncil.py +61 -0
  45. uk_bin_collection/uk_bin_collection/councils/CroydonCouncil.py +291 -0
  46. uk_bin_collection/uk_bin_collection/councils/DerbyshireDalesDistrictCouncil.py +100 -0
  47. uk_bin_collection/uk_bin_collection/councils/DoncasterCouncil.py +77 -0
  48. uk_bin_collection/uk_bin_collection/councils/DorsetCouncil.py +58 -0
  49. uk_bin_collection/uk_bin_collection/councils/DoverDistrictCouncil.py +41 -0
  50. uk_bin_collection/uk_bin_collection/councils/DurhamCouncil.py +49 -0
  51. uk_bin_collection/uk_bin_collection/councils/EastCambridgeshireCouncil.py +44 -0
  52. uk_bin_collection/uk_bin_collection/councils/EastDevonDC.py +74 -0
  53. uk_bin_collection/uk_bin_collection/councils/EastLindseyDistrictCouncil.py +108 -0
  54. uk_bin_collection/uk_bin_collection/councils/EastRidingCouncil.py +142 -0
  55. uk_bin_collection/uk_bin_collection/councils/EastSuffolkCouncil.py +112 -0
  56. uk_bin_collection/uk_bin_collection/councils/EastleighBoroughCouncil.py +70 -0
  57. uk_bin_collection/uk_bin_collection/councils/EnvironmentFirst.py +48 -0
  58. uk_bin_collection/uk_bin_collection/councils/ErewashBoroughCouncil.py +61 -0
  59. uk_bin_collection/uk_bin_collection/councils/FenlandDistrictCouncil.py +65 -0
  60. uk_bin_collection/uk_bin_collection/councils/ForestOfDeanDistrictCouncil.py +113 -0
  61. uk_bin_collection/uk_bin_collection/councils/GatesheadCouncil.py +118 -0
  62. uk_bin_collection/uk_bin_collection/councils/GedlingBoroughCouncil.py +1580 -0
  63. uk_bin_collection/uk_bin_collection/councils/GlasgowCityCouncil.py +55 -0
  64. uk_bin_collection/uk_bin_collection/councils/GuildfordCouncil.py +150 -0
  65. uk_bin_collection/uk_bin_collection/councils/HaltonBoroughCouncil.py +142 -0
  66. uk_bin_collection/uk_bin_collection/councils/HaringeyCouncil.py +59 -0
  67. uk_bin_collection/uk_bin_collection/councils/HarrogateBoroughCouncil.py +63 -0
  68. uk_bin_collection/uk_bin_collection/councils/HighPeakCouncil.py +134 -0
  69. uk_bin_collection/uk_bin_collection/councils/HullCityCouncil.py +48 -0
  70. uk_bin_collection/uk_bin_collection/councils/HuntingdonDistrictCouncil.py +44 -0
  71. uk_bin_collection/uk_bin_collection/councils/KingstonUponThamesCouncil.py +84 -0
  72. uk_bin_collection/uk_bin_collection/councils/KirkleesCouncil.py +130 -0
  73. uk_bin_collection/uk_bin_collection/councils/KnowsleyMBCouncil.py +139 -0
  74. uk_bin_collection/uk_bin_collection/councils/LancasterCityCouncil.py +71 -0
  75. uk_bin_collection/uk_bin_collection/councils/LeedsCityCouncil.py +137 -0
  76. uk_bin_collection/uk_bin_collection/councils/LisburnCastlereaghCityCouncil.py +101 -0
  77. uk_bin_collection/uk_bin_collection/councils/LiverpoolCityCouncil.py +65 -0
  78. uk_bin_collection/uk_bin_collection/councils/LondonBoroughHounslow.py +82 -0
  79. uk_bin_collection/uk_bin_collection/councils/LondonBoroughRedbridge.py +161 -0
  80. uk_bin_collection/uk_bin_collection/councils/MaldonDistrictCouncil.py +52 -0
  81. uk_bin_collection/uk_bin_collection/councils/MalvernHillsDC.py +57 -0
  82. uk_bin_collection/uk_bin_collection/councils/ManchesterCityCouncil.py +106 -0
  83. uk_bin_collection/uk_bin_collection/councils/MansfieldDistrictCouncil.py +38 -0
  84. uk_bin_collection/uk_bin_collection/councils/MertonCouncil.py +58 -0
  85. uk_bin_collection/uk_bin_collection/councils/MidAndEastAntrimBoroughCouncil.py +128 -0
  86. uk_bin_collection/uk_bin_collection/councils/MidSussexDistrictCouncil.py +80 -0
  87. uk_bin_collection/uk_bin_collection/councils/MiltonKeynesCityCouncil.py +54 -0
  88. uk_bin_collection/uk_bin_collection/councils/MoleValleyDistrictCouncil.py +98 -0
  89. uk_bin_collection/uk_bin_collection/councils/NeathPortTalbotCouncil.py +139 -0
  90. uk_bin_collection/uk_bin_collection/councils/NewarkAndSherwoodDC.py +52 -0
  91. uk_bin_collection/uk_bin_collection/councils/NewcastleCityCouncil.py +57 -0
  92. uk_bin_collection/uk_bin_collection/councils/NewhamCouncil.py +58 -0
  93. uk_bin_collection/uk_bin_collection/councils/NewportCityCouncil.py +203 -0
  94. uk_bin_collection/uk_bin_collection/councils/NorthEastDerbyshireDistrictCouncil.py +115 -0
  95. uk_bin_collection/uk_bin_collection/councils/NorthEastLincs.py +53 -0
  96. uk_bin_collection/uk_bin_collection/councils/NorthKestevenDistrictCouncil.py +45 -0
  97. uk_bin_collection/uk_bin_collection/councils/NorthLanarkshireCouncil.py +46 -0
  98. uk_bin_collection/uk_bin_collection/councils/NorthLincolnshireCouncil.py +58 -0
  99. uk_bin_collection/uk_bin_collection/councils/NorthNorfolkDistrictCouncil.py +108 -0
  100. uk_bin_collection/uk_bin_collection/councils/NorthNorthamptonshireCouncil.py +72 -0
  101. uk_bin_collection/uk_bin_collection/councils/NorthSomersetCouncil.py +76 -0
  102. uk_bin_collection/uk_bin_collection/councils/NorthTynesideCouncil.py +220 -0
  103. uk_bin_collection/uk_bin_collection/councils/NorthWestLeicestershire.py +114 -0
  104. uk_bin_collection/uk_bin_collection/councils/NorthYorkshire.py +58 -0
  105. uk_bin_collection/uk_bin_collection/councils/NorthumberlandCouncil.py +123 -0
  106. uk_bin_collection/uk_bin_collection/councils/NottinghamCityCouncil.py +36 -0
  107. uk_bin_collection/uk_bin_collection/councils/OldhamCouncil.py +51 -0
  108. uk_bin_collection/uk_bin_collection/councils/PortsmouthCityCouncil.py +131 -0
  109. uk_bin_collection/uk_bin_collection/councils/PrestonCityCouncil.py +97 -0
  110. uk_bin_collection/uk_bin_collection/councils/ReadingBoroughCouncil.py +30 -0
  111. uk_bin_collection/uk_bin_collection/councils/ReigateAndBansteadBoroughCouncil.py +81 -0
  112. uk_bin_collection/uk_bin_collection/councils/RenfrewshireCouncil.py +135 -0
  113. uk_bin_collection/uk_bin_collection/councils/RhonddaCynonTaffCouncil.py +80 -0
  114. uk_bin_collection/uk_bin_collection/councils/RochdaleCouncil.py +69 -0
  115. uk_bin_collection/uk_bin_collection/councils/RochfordCouncil.py +60 -0
  116. uk_bin_collection/uk_bin_collection/councils/RugbyBoroughCouncil.py +93 -0
  117. uk_bin_collection/uk_bin_collection/councils/RushcliffeBoroughCouncil.py +100 -0
  118. uk_bin_collection/uk_bin_collection/councils/RushmoorCouncil.py +81 -0
  119. uk_bin_collection/uk_bin_collection/councils/SalfordCityCouncil.py +70 -0
  120. uk_bin_collection/uk_bin_collection/councils/SevenoaksDistrictCouncil.py +106 -0
  121. uk_bin_collection/uk_bin_collection/councils/SheffieldCityCouncil.py +54 -0
  122. uk_bin_collection/uk_bin_collection/councils/ShropshireCouncil.py +45 -0
  123. uk_bin_collection/uk_bin_collection/councils/SolihullCouncil.py +48 -0
  124. uk_bin_collection/uk_bin_collection/councils/SomersetCouncil.py +203 -0
  125. uk_bin_collection/uk_bin_collection/councils/SouthAyrshireCouncil.py +73 -0
  126. uk_bin_collection/uk_bin_collection/councils/SouthCambridgeshireCouncil.py +65 -0
  127. uk_bin_collection/uk_bin_collection/councils/SouthGloucestershireCouncil.py +74 -0
  128. uk_bin_collection/uk_bin_collection/councils/SouthLanarkshireCouncil.py +78 -0
  129. uk_bin_collection/uk_bin_collection/councils/SouthNorfolkCouncil.py +91 -0
  130. uk_bin_collection/uk_bin_collection/councils/SouthOxfordshireCouncil.py +93 -0
  131. uk_bin_collection/uk_bin_collection/councils/SouthTynesideCouncil.py +98 -0
  132. uk_bin_collection/uk_bin_collection/councils/StAlbansCityAndDistrictCouncil.py +43 -0
  133. uk_bin_collection/uk_bin_collection/councils/StHelensBC.py +56 -0
  134. uk_bin_collection/uk_bin_collection/councils/StaffordshireMoorlandsDistrictCouncil.py +112 -0
  135. uk_bin_collection/uk_bin_collection/councils/StockportBoroughCouncil.py +39 -0
  136. uk_bin_collection/uk_bin_collection/councils/StokeOnTrentCityCouncil.py +79 -0
  137. uk_bin_collection/uk_bin_collection/councils/StratfordUponAvonCouncil.py +94 -0
  138. uk_bin_collection/uk_bin_collection/councils/SunderlandCityCouncil.py +100 -0
  139. uk_bin_collection/uk_bin_collection/councils/SwaleBoroughCouncil.py +52 -0
  140. uk_bin_collection/uk_bin_collection/councils/TamesideMBCouncil.py +62 -0
  141. uk_bin_collection/uk_bin_collection/councils/TandridgeDistrictCouncil.py +60 -0
  142. uk_bin_collection/uk_bin_collection/councils/TelfordAndWrekinCouncil.py +50 -0
  143. uk_bin_collection/uk_bin_collection/councils/TestValleyBoroughCouncil.py +203 -0
  144. uk_bin_collection/uk_bin_collection/councils/TonbridgeAndMallingBC.py +101 -0
  145. uk_bin_collection/uk_bin_collection/councils/TorbayCouncil.py +51 -0
  146. uk_bin_collection/uk_bin_collection/councils/TorridgeDistrictCouncil.py +154 -0
  147. uk_bin_collection/uk_bin_collection/councils/ValeofGlamorganCouncil.py +119 -0
  148. uk_bin_collection/uk_bin_collection/councils/ValeofWhiteHorseCouncil.py +103 -0
  149. uk_bin_collection/uk_bin_collection/councils/WakefieldCityCouncil.py +89 -0
  150. uk_bin_collection/uk_bin_collection/councils/WarwickDistrictCouncil.py +34 -0
  151. uk_bin_collection/uk_bin_collection/councils/WaverleyBoroughCouncil.py +119 -0
  152. uk_bin_collection/uk_bin_collection/councils/WealdenDistrictCouncil.py +86 -0
  153. uk_bin_collection/uk_bin_collection/councils/WelhatCouncil.py +73 -0
  154. uk_bin_collection/uk_bin_collection/councils/WestBerkshireCouncil.py +134 -0
  155. uk_bin_collection/uk_bin_collection/councils/WestLindseyDistrictCouncil.py +118 -0
  156. uk_bin_collection/uk_bin_collection/councils/WestLothianCouncil.py +103 -0
  157. uk_bin_collection/uk_bin_collection/councils/WestNorthamptonshireCouncil.py +34 -0
  158. uk_bin_collection/uk_bin_collection/councils/WestSuffolkCouncil.py +64 -0
  159. uk_bin_collection/uk_bin_collection/councils/WiganBoroughCouncil.py +97 -0
  160. uk_bin_collection/uk_bin_collection/councils/WiltshireCouncil.py +135 -0
  161. uk_bin_collection/uk_bin_collection/councils/WindsorAndMaidenheadCouncil.py +134 -0
  162. uk_bin_collection/uk_bin_collection/councils/WokingBoroughCouncil.py +114 -0
  163. uk_bin_collection/uk_bin_collection/councils/WyreCouncil.py +89 -0
  164. uk_bin_collection/uk_bin_collection/councils/YorkCouncil.py +45 -0
  165. uk_bin_collection/uk_bin_collection/councils/council_class_template/councilclasstemplate.py +33 -0
  166. uk_bin_collection/uk_bin_collection/get_bin_data.py +165 -0
  167. uk_bin_collection-0.74.0.dist-info/LICENSE +21 -0
  168. uk_bin_collection-0.74.0.dist-info/METADATA +247 -0
  169. uk_bin_collection-0.74.0.dist-info/RECORD +171 -0
  170. uk_bin_collection-0.74.0.dist-info/WHEEL +4 -0
  171. uk_bin_collection-0.74.0.dist-info/entry_points.txt +3 -0
@@ -0,0 +1,247 @@
1
+ Metadata-Version: 2.1
2
+ Name: uk_bin_collection
3
+ Version: 0.74.0
4
+ Summary: Python Lib to collect UK Bin Data
5
+ Author: Robert Bradley
6
+ Author-email: robbrad182@gmail.com
7
+ Requires-Python: >=3.11
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Programming Language :: Python :: 3.11
10
+ Classifier: Programming Language :: Python :: 3.12
11
+ Requires-Dist: bs4
12
+ Requires-Dist: holidays
13
+ Requires-Dist: lxml
14
+ Requires-Dist: pandas
15
+ Requires-Dist: python-dateutil
16
+ Requires-Dist: requests
17
+ Requires-Dist: selenium
18
+ Requires-Dist: tabulate (>=0.9.0,<0.10.0)
19
+ Requires-Dist: urllib3
20
+ Requires-Dist: webdriver-manager (>=4.0.1,<5.0.0)
21
+ Project-URL: issues, https://github.com/robbrad/UKBinCollectionData/issues
22
+ Description-Content-Type: text/markdown
23
+
24
+ [![Made with Python](https://img.shields.io/badge/Made%20With%20Python-red?style=for-the-badge&logo=python&logoColor=white&labelColor=red)](https://www.python.org)
25
+
26
+ [![HACS Badge](https://img.shields.io/badge/HACS-Custom-41BDF5.svg?style=for-the-badge)](https://github.com/robbrad/UKBinCollectionData)
27
+ [![Current Release](https://img.shields.io/github/v/release/robbrad/UKBinCollectionData?style=for-the-badge&filter=*)](https://github.com/robbrad/UKBinCollectionData/releases)
28
+ [![PyPi](https://img.shields.io/pypi/v/uk_bin_collection?label=PyPI&logo=pypi&style=for-the-badge&color=blue)](https://pypi.org/project/uk-bin-collection/)
29
+
30
+ [![GitHub license](https://img.shields.io/github/license/robbrad/UKBinCollectionData?style=for-the-badge)](https://github.com/robbrad/UKBinCollectionData/blob/master/LICENSE)
31
+ [![GitHub issues](https://img.shields.io/github/issues-raw/robbrad/UKBinCollectionData?style=for-the-badge)](https://github.com/robbrad/UKBinCollectionData/issues?q=is%3Aopen+is%3Aissue)
32
+ [![GitHub closed issues](https://img.shields.io/github/issues-closed-raw/robbrad/UKBinCollectionData?style=for-the-badge)](https://github.com/robbrad/UKBinCollectionData/issues?q=is%3Aissue+is%3Aclosed)
33
+ [![GitHub contributors](https://img.shields.io/github/contributors/robbrad/UKBinCollectionData?style=for-the-badge)](https://github.com/robbrad/UKBinCollectionData/graphs/contributors)
34
+
35
+ [![Test Councils](https://img.shields.io/github/actions/workflow/status/robbrad/UKBinCollectionData/behave.yml?style=for-the-badge&label=Test+Councils)](https://github.com/robbrad/UKBinCollectionData/actions/workflows/behave.yml)
36
+ ![Codecov](https://img.shields.io/codecov/c/gh/robbrad/UKBinCollectionData?style=for-the-badge)
37
+ [![CodeQL Analysis](https://img.shields.io/github/actions/workflow/status/robbrad/UKBinCollectionData/codeql-analysis.yml?style=for-the-badge&label=CodeQL+Analysis)](https://github.com/robbrad/UKBinCollectionData/actions/workflows/codeql-analysis.yml)
38
+ [![Publish Release](https://img.shields.io/github/actions/workflow/status/robbrad/UKBinCollectionData/release.yml?style=for-the-badge&label=Publish+Release)](https://github.com/robbrad/UKBinCollectionData/actions/workflows/release.yml)
39
+ [![Test Report Deployment](https://img.shields.io/github/actions/workflow/status/robbrad/UKBinCollectionData/pages%2Fpages-build-deployment?style=for-the-badge&label=Test+Report+Deployment)](https://github.com/robbrad/UKBinCollectionData/actions/workflows/pages/pages-build-deployment)
40
+
41
+ # UK Bin Collection Data (UKBCD)
42
+ This project aims to provide a neat and standard way of providing bin collection data in JSON format from UK councils that have no API to do so.
43
+
44
+ Why do this?
45
+ You might want to use this in a Home Automation - for example say you had an LED bar that lit up on the day of bin collection to the colour of the bin you want to take out, then this repo provides the data for that.
46
+
47
+ **PLEASE respect a councils infrastructure / usage policy and only collect data for your own personal use on a suitable frequency to your collection schedule.**
48
+
49
+ Most scripts make use of [Beautiful Soup 4](https://pypi.org/project/beautifulsoup4/) to scrape data, although others use different approaches, such as emulating web browser behaviour, or reading data from CSV files.
50
+
51
+ [![](https://img.shields.io/badge/-41BDF5?style=for-the-badge&logo=homeassistant&logoColor=white&label=HomeAssistant+Thread)](https://community.home-assistant.io/t/bin-waste-collection/55451)
52
+ [![](https://img.shields.io/badge/Request%20a%20council-gray?style=for-the-badge&logo=github&logoColor=white)](https://github.com/robbrad/UKBinCollectionData/issues/new/choose)
53
+
54
+ ---
55
+
56
+ ## Home Assistant Usage
57
+
58
+ ### Install with HACS (recommended)
59
+
60
+ 1. Ensure you have [HACS](https://hacs.xyz/) installed
61
+ 1. In the Home Assistant UI go to `HACS` > `Integrations` > `⋮` > `Custom repositories`.
62
+ 1. Enter `https://github.com/robbrad/UKBinCollectionData` in the `Repository` field.
63
+ 1. Select `Integration` as the category then click `ADD`.
64
+ 1. Click `+ Add Integration` and search for and select `UK Bin Collection Data` then click `Download`.
65
+ 1. Restart your Home Assistant.
66
+ 1. In the Home Assistant UI go to `Settings` > `Devices & Services` click `+ Add Integration` and search for `UK Bin Collection Data`.
67
+ 1. If your see a "URL of the remote Selenium web driver to use" field when setting up your council, you'll need to provide the URL to a web driver you've set up seperately such as [standalone-chrome](https://hub.docker.com/r/selenium/standalone-chrome).
68
+
69
+ ### Install manually
70
+
71
+ 1. Open the folder for your Home Assistant configuration (where you find `configuration.yaml`).
72
+ 1. If you do not have a `custom_components` folder there, you need to create it.
73
+ 1. [Download](https://github.com/robbrad/UKBinCollectionData/archive/refs/heads/master.zip) this repository then copy the folder `custom_components/uk_bin_collection` into the `custom_components` folder you found/created in the previous step.
74
+ 1. Restart your Home Assistant.
75
+ 1. In the Home Assistant UI go to `Settings` > `Devices & Services` click `+ Add Integration` and search for `UK Bin Collection Data`.
76
+
77
+ ---
78
+
79
+ ## Standalone Usage
80
+ ```commandline
81
+ PS G:\Projects\Python\UKBinCollectionData\uk_bin_collection\collect_data.py
82
+ usage: collect_data.py [-h] [-p POSTCODE] [-n NUMBER] [-u UPRN] module URL
83
+
84
+ positional arguments:
85
+ module Name of council module to use (required)
86
+ URL URL to parse (required)
87
+
88
+ options:
89
+ -h, --help show this help message (optional)
90
+ -p POSTCODE, --postcode POSTCODE Postcode to parse - should include (optional)
91
+ a space and be wrapped in double
92
+ quotes
93
+ -n NUMBER, --number NUMBER House number to parse (optional)
94
+ -u UPRN, --uprn UPRN UPRN to parse (optional)
95
+ ```
96
+
97
+ ### Quickstart
98
+ The basic command to execute a script is:
99
+ ```commandline
100
+ python collect_data.py <council_name> "<collection_url>"
101
+ ```
102
+ where ```council_name``` is the name of the council's .py script (without the .py) and ```collection_url``` is the URL to scrape.
103
+ The help documentation refers to these as "module" and "URL", respectively. Supported council scripts can be found in the `uk_bin_collection/uk_bin_collection/councils` folder.
104
+
105
+ Some scripts require additional parameters, for example, when a UPRN is not passed in a URL, or when the script is not scraping a web page.
106
+ For example, the Leeds City Council script needs two additional parameters - a postcode, and a house number. This is done like so:
107
+
108
+ ```commandline
109
+ python collect_data.py LeedsCityCouncil https://www.leeds.gov.uk/residents/bins-and-recycling/check-your-bin-day -p "LS1 2JG" -n 41
110
+ ```
111
+ - A **postcode** can be passed with `-p "postcode"` or `--postcode "postcode"`. The postcode must always include a space in the middle and
112
+ be wrapped in double quotes (due to how command line arguments are handled).
113
+ - A **house number** can be passed with `-n number` or `--number number`.
114
+ - A **UPRN reference** can be passed with `-u uprn` or `--uprn uprn`.
115
+
116
+ To check the parameters needed for your council's script, please check the [project wiki](https://github.com/robbrad/UKBinCollectionData/wiki) for more information.
117
+
118
+
119
+ ### Project dependencies
120
+ Some scripts rely on external packages to function. A list of required scripts for both development and execution can be found in the project's [PROJECT_TOML](https://github.com/robbrad/UKBinCollectionData/blob/feature/%2353_integration_tests/pyproject.toml)
121
+ Install can be done via
122
+ `poetry install` from within the root of the repo.
123
+
124
+ ---
125
+
126
+ ## UPRN Finder
127
+ Some councils make use of the UPRN (Unique property reference number) to identify your property. You can find yours [here](https://www.findmyaddress.co.uk/search) or [here](https://uprn.uk/).
128
+
129
+ ---
130
+
131
+ ## Requesting your council
132
+ To make a request for your council, first check the [Issues](https://github.com/robbrad/UKBinCollectionData/issues) page to make sure it has not already been requested. If not, please fill in a new [Council Request](https://github.com/robbrad/UKBinCollectionData/issues/new/choose) form, including as much information as possible, including:
133
+ - Name of the council
134
+ - URL to bin collections
135
+ - An example postcode and/or UPRN (whichever is relevant)
136
+ - Any further information
137
+
138
+ Please be aware that this project is run by volunteer contributors and completion depends on numerous factors - even with a request, we cannot guarantee if/when your council will get a script.
139
+
140
+ ---
141
+
142
+ ## Reports
143
+
144
+ - [3.11](https://robbrad.github.io/UKBinCollectionData/3.11/)
145
+ - [3.12](https://robbrad.github.io/UKBinCollectionData/3.12/)
146
+
147
+ ---
148
+ ## Docker API Server
149
+ We have created an API for this located under [uk_bin_collection_api_server](https://github.com/robbrad/UKBinCollectionData/uk_bin_collection_api_server)
150
+
151
+ ### Prerequisites
152
+
153
+ - Docker installed on your machine
154
+ - Python (if you plan to run the API locally without Docker)
155
+
156
+ ### Running the API with Docker
157
+
158
+ 1. Clone this repository.
159
+ 2. Navigate to the uk_bin_collection_api_server directory of the project.
160
+
161
+ #### Build the Docker Container
162
+
163
+ ```bash
164
+ docker build -t ukbc_api_server .
165
+ ```
166
+
167
+ ```
168
+ docker run -p 8080:8080 ukbc_api_server
169
+ ```
170
+
171
+ #### Accessing the API
172
+
173
+ Once the Docker container is running, you can access the API endpoints:
174
+
175
+ API Base URL: http://localhost:8080/api
176
+ Swagger UI: http://localhost:8080/api/ui/
177
+
178
+ #### API Documentation
179
+
180
+ The API documentation can be accessed via the Swagger UI. Use the Swagger UI to explore available endpoints, test different requests, and understand the API functionalities.
181
+
182
+ ![Swagger UI](SwaggerUI.png)
183
+
184
+ #### API Endpoints
185
+ `GET /bin_collection/{council}`
186
+
187
+ Description: Retrieves information about bin collection for the specified council.
188
+
189
+ Parameters:
190
+
191
+ council (required): Name of the council.
192
+ Other optional parameters: [Specify optional parameters if any]
193
+
194
+ Example Request:
195
+
196
+ ```bash
197
+ curl -X GET "http://localhost:8080/api/bin_collection/{council}" -H "accept: application/json"
198
+ ```
199
+
200
+ ## Docker Compose
201
+ This includes the Selenium standalone-chrome for Selenium based councils
202
+
203
+ ```
204
+ version: '3'
205
+
206
+ services:
207
+ ukbc_api_server:
208
+ build:
209
+ context: .
210
+ dockerfile: Dockerfile
211
+ ports:
212
+ - "8080:8080" # Adjust the ports as needed
213
+ depends_on:
214
+ - selenium
215
+
216
+ selenium:
217
+ image: selenium/standalone-chrome:latest
218
+ ports:
219
+ - "4444:4444"
220
+
221
+ ```
222
+ ### Run with
223
+ ```bash
224
+ sudo apt-get update
225
+ sudo apt-get install docker-compose
226
+
227
+ docker-compose up
228
+ ```
229
+
230
+ ---
231
+
232
+ ## FAQ
233
+ #### I've got an issue/support question - what do I do?
234
+ Please post in the [HomeAssistant thread](https://community.home-assistant.io/t/bin-waste-collection/55451) or raise a new (non council request) [issue](https://github.com/robbrad/UKBinCollectionData/issues/new).
235
+
236
+ #### I'd like to contribute, where do I start?
237
+ Contributions are always welcome! See ```CONTRIBUTING.md``` to get started. Please adhere to the project's [code of conduct](https://github.com/robbrad/UKBinCollectionData/blob/master/CODE_OF_CONDUCT.md).
238
+
239
+ - If you're new to coding/Python/BeautifulSoup, feel free to check [here](https://github.com/robbrad/UKBinCollectionData/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) for issues that are good for newcomers!
240
+ - If you would like to try writing your own scraper, feel free to fork this project and use existing scrapers as a base for your approach (or `councilclasstemplate.py`).
241
+
242
+ ## Contributors
243
+ <a href="https://github.com/robbrad/UKBinCollectionData/graphs/contributors">
244
+ <img src="https://contrib.rocks/image?repo=robbrad/UKBinCollectionData" alt="Image of contributors"/>
245
+ </a>
246
+
247
+
@@ -0,0 +1,171 @@
1
+ uk_bin_collection/README.rst,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ uk_bin_collection/tests/council_feature_input_parity.py,sha256=qS3JuQD__NomFiVvA0_xHL_kWRuvvRhLj_M30xUzcbg,3072
3
+ uk_bin_collection/tests/features/environment.py,sha256=VQZjJdJI_kZn08M0j5cUgvKT4k3iTw8icJge1DGOkoA,127
4
+ uk_bin_collection/tests/features/validate_council_outputs.feature,sha256=XIYnckDPBwBd7jTX2CN7Nv4mhUQsiJYOnYzvXVGfpdk,16246
5
+ uk_bin_collection/tests/input.json,sha256=5PCw3swXDYnnjX_IFUJEcY4sQ18jn_iLem0xOvj364U,53429
6
+ uk_bin_collection/tests/output.schema,sha256=ZwKQBwYyTDEM4G2hJwfLUVM-5v1vKRvRK9W9SS1sd18,1086
7
+ uk_bin_collection/tests/step_defs/step_helpers/file_handler.py,sha256=Ygzi4V0S1MIHqbdstUlIqtRIwnynvhu4UtpweJ6-5N8,1474
8
+ uk_bin_collection/tests/step_defs/test_validate_council.py,sha256=Pg3Z7c3zrebx1w-yIZ9xTJ3E-okVndlNIAJL-F46HKU,2962
9
+ uk_bin_collection/tests/test_collect_data.py,sha256=C5w1qfz_1CU37_T7UPdBk3nisMLobIeVHNl6EXrgfrQ,3316
10
+ uk_bin_collection/tests/test_common_functions.py,sha256=u_GlsHSWtFJd_4ilEuVbU-z6LMietwFGWl9IM2bKGHI,11147
11
+ uk_bin_collection/uk_bin_collection/collect_data.py,sha256=txdtYoPgWDHLPohGz_Wu9OLXOr8TpXyuIGn0WnsFbZQ,4383
12
+ uk_bin_collection/uk_bin_collection/common.py,sha256=yDDj5ITCb65vZ5VE6GMX8mVuDzUBQkbyc3sGLjuYD9A,9007
13
+ uk_bin_collection/uk_bin_collection/councils/AdurAndWorthingCouncils.py,sha256=ppbrmm-MzB1wOulK--CU_0j4P-djNf3ozMhHnmQFqLo,1511
14
+ uk_bin_collection/uk_bin_collection/councils/ArunCouncil.py,sha256=b7cxjLIWgM7MvOg9q-g_XKbq8tQ-e9bISsSE-ruwz70,3999
15
+ uk_bin_collection/uk_bin_collection/councils/AylesburyValeCouncil.py,sha256=LouqjspEMt1TkOGqWHs2zkxwOETIy3n7p64uKIlAgUg,2401
16
+ uk_bin_collection/uk_bin_collection/councils/BCPCouncil.py,sha256=W7QBx6Mgso8RYosuXsaYo3GGNAu-tiyBSmuYxr1JSOU,1707
17
+ uk_bin_collection/uk_bin_collection/councils/BarnetCouncil.py,sha256=rIoXMNudkEE-F184cAoFt11mLd1bT7JKA9ImL_MqHOc,7584
18
+ uk_bin_collection/uk_bin_collection/councils/BarnsleyMBCouncil.py,sha256=MgF_7XyIcIoNzFR0OJsjBkLCZKgWxBrV6nTcutMxO1Q,4244
19
+ uk_bin_collection/uk_bin_collection/councils/BasingstokeCouncil.py,sha256=VPWGljnH4C3q8qs5ZmCtqjNjgWQvviALzjk00q3EZeQ,2632
20
+ uk_bin_collection/uk_bin_collection/councils/BathAndNorthEastSomersetCouncil.py,sha256=N_TPiIv8VBzN3rY0p3JtLlxSEru-6k1wW4UNIhN5X1M,3709
21
+ uk_bin_collection/uk_bin_collection/councils/BedfordBoroughCouncil.py,sha256=CvGB7w9HMn7XyEtwfd9MWZE_HlZ75pDcaKMsQJz0xhk,1669
22
+ uk_bin_collection/uk_bin_collection/councils/BedfordshireCouncil.py,sha256=MbjOgQDJRSVXe1OW_0QuDosk9TIvoibIS29WwYxVTC8,2548
23
+ uk_bin_collection/uk_bin_collection/councils/BexleyCouncil.py,sha256=XiqoAI_2OdPiyT7MqheGwZBag5VBU3G-9Vj4HpD3boc,5383
24
+ uk_bin_collection/uk_bin_collection/councils/BirminghamCityCouncil.py,sha256=wIJgp7gjUL2zVALZNEz0YapDpvAXmriOswE03EqH49o,4130
25
+ uk_bin_collection/uk_bin_collection/councils/BlackburnCouncil.py,sha256=pk1J_23fi5Mf9qEUS8W7KcUg5uiFV4ZCNQ2Ic7q7nTo,4072
26
+ uk_bin_collection/uk_bin_collection/councils/BoltonCouncil.py,sha256=1IJANVYdimNXE9koiZB3Q8H8596V9irYFn_c8PXJJso,4006
27
+ uk_bin_collection/uk_bin_collection/councils/BradfordMDC.py,sha256=9EDTdhbGb8BQ5PLEw9eiWZ3BrS0TtoFpYOHQU44wc2k,4308
28
+ uk_bin_collection/uk_bin_collection/councils/BrightonandHoveCityCouncil.py,sha256=0XaOPc4BcpjKl5haniycaMqNgbXHiYuIuMghT1XhqBY,5807
29
+ uk_bin_collection/uk_bin_collection/councils/BristolCityCouncil.py,sha256=VT7k0AzcWL_h6E7Yr84NXs-FJ7qbYed7giR4HClHYE0,5575
30
+ uk_bin_collection/uk_bin_collection/councils/BromleyBoroughCouncil.py,sha256=IceQ7eJr0AqRW-MkOchjdmBpqEVHyKo9OJIhpGxZYUs,4771
31
+ uk_bin_collection/uk_bin_collection/councils/BroxtoweBoroughCouncil.py,sha256=VD2vTETCdYRxrew5LQDlHSDRNgXAvQoLh1-uCB65GqE,4457
32
+ uk_bin_collection/uk_bin_collection/councils/BuckinghamshireCouncil.py,sha256=qb6nKt04XOr55cMEagrum0rCPcUbrB-JaEupYv2Pw1o,3167
33
+ uk_bin_collection/uk_bin_collection/councils/BuryCouncil.py,sha256=H7wAxO1nfxkewVoRRolumq8bBJG04siE3jieFH3RGpQ,2632
34
+ uk_bin_collection/uk_bin_collection/councils/CalderdaleCouncil.py,sha256=AeTxjiiX11ZmMnA9qA_GK_dRcRJh3e0BM1gED6YmGv8,4985
35
+ uk_bin_collection/uk_bin_collection/councils/CannockChaseDistrictCouncil.py,sha256=ZamevXN8_Q8mRZOTESWtkb8jVyDXkTczcmhXMAVVSkM,2276
36
+ uk_bin_collection/uk_bin_collection/councils/CardiffCouncil.py,sha256=_k3sT_WR-gnjjt3tHQ-L2-keP9sdBV0ZeW7gHDzFPYo,7208
37
+ uk_bin_collection/uk_bin_collection/councils/CastlepointDistrictCouncil.py,sha256=JVPYUIlU2ISgbUSr5AOOXNK6IFQFtQmhZyYIMAOedD4,3858
38
+ uk_bin_collection/uk_bin_collection/councils/CharnwoodBoroughCouncil.py,sha256=tXfzMetN6wxahuGGRp2mIyCCDSL4F2aG61HhUxw6COQ,2172
39
+ uk_bin_collection/uk_bin_collection/councils/ChelmsfordCityCouncil.py,sha256=pEMQKNNTExYEqAyEn9ZMplwLVMly8R6tJeN5zNS_vpY,5074
40
+ uk_bin_collection/uk_bin_collection/councils/CheshireEastCouncil.py,sha256=pyCxi_UZQkRnuHnwynLFHiux-__UIgAqhcpI3c2mkfA,1132
41
+ uk_bin_collection/uk_bin_collection/councils/CheshireWestAndChesterCouncil.py,sha256=0uXeubLEoueEKDzryJ10A3F11aVz75FKFABLjxdocUU,4704
42
+ uk_bin_collection/uk_bin_collection/councils/ChorleyCouncil.py,sha256=A6HSR7bapz0X03sMzu0BXIke9wlsCpWhIddDXkfVFZc,5183
43
+ uk_bin_collection/uk_bin_collection/councils/ConwyCountyBorough.py,sha256=el75qv2QyfWZBU09tJLvD8vLQZ9pCg73u1NBFs6ybo8,1034
44
+ uk_bin_collection/uk_bin_collection/councils/CrawleyBoroughCouncil.py,sha256=rZIRiXp0rOkc20M9DpgxuhbykACip7LNjpn6ytDsnwk,2361
45
+ uk_bin_collection/uk_bin_collection/councils/CroydonCouncil.py,sha256=vaMbSKPmKZ2xzXuviTbENhAS20qzlIvdM3EpdHb505M,11593
46
+ uk_bin_collection/uk_bin_collection/councils/DerbyshireDalesDistrictCouncil.py,sha256=FAMmuOEtyAj5QT4WeTG0huf0u6i1QS2BB9rEGHewfos,3991
47
+ uk_bin_collection/uk_bin_collection/councils/DoncasterCouncil.py,sha256=b7pxoToXu6dBBYXsXmlwfPXE8BjHxt0hjCOBNlNgvX8,3118
48
+ uk_bin_collection/uk_bin_collection/councils/DorsetCouncil.py,sha256=sdSR5ryOSWHtK_0OKJ75LGOvMiUAnQCc3uwT3xfqZ_0,2304
49
+ uk_bin_collection/uk_bin_collection/councils/DoverDistrictCouncil.py,sha256=yDCelWF0O9tOgcweTXocrOwWzl2-jB8fYnPcIuS8vRQ,1808
50
+ uk_bin_collection/uk_bin_collection/councils/DurhamCouncil.py,sha256=6O8bNsQVYQbrCYQE9Rp0c_rtkcXuxR3s9J6jn4MK4_s,1695
51
+ uk_bin_collection/uk_bin_collection/councils/EastCambridgeshireCouncil.py,sha256=_iSifwbdSFhnuhdf4U42xMQjkWJUalTytKPV-QGSNYU,1500
52
+ uk_bin_collection/uk_bin_collection/councils/EastDevonDC.py,sha256=U0VwSNIldMv5nUoiXtFgjbE0m6Kb-8W2WZQGVCNF_WI,3261
53
+ uk_bin_collection/uk_bin_collection/councils/EastLindseyDistrictCouncil.py,sha256=QfXy3sXJe-D5xDlDooCRXufOEBtwY4OMA9qOT1PSTSs,4340
54
+ uk_bin_collection/uk_bin_collection/councils/EastRidingCouncil.py,sha256=XC0KE9tockQi0WJbRMnTF-SdDK7BEnXf9FlJkos1GFA,5232
55
+ uk_bin_collection/uk_bin_collection/councils/EastSuffolkCouncil.py,sha256=r3QVbpL9kIhwQB2gE8JAxGAnrhl-JGv5YII8bk15wZ8,4336
56
+ uk_bin_collection/uk_bin_collection/councils/EastleighBoroughCouncil.py,sha256=V4Vso4DvawFiezKlmXbTlJEK9Sjhz9nA8WeYjwtO2e4,2310
57
+ uk_bin_collection/uk_bin_collection/councils/EnvironmentFirst.py,sha256=_9QJYDHpdnYK5R6znvZk1w0F9GnPnI8G4b6I_p26h4U,1695
58
+ uk_bin_collection/uk_bin_collection/councils/ErewashBoroughCouncil.py,sha256=QTQA6NjZtTL2baDeerIQW1SQpawwu6kGDMGdVvYQRRo,2501
59
+ uk_bin_collection/uk_bin_collection/councils/FenlandDistrictCouncil.py,sha256=sFrnKzIE2tIcz0YrC6A9HcevzgNdf6E6_HLGMWDKtGw,2513
60
+ uk_bin_collection/uk_bin_collection/councils/ForestOfDeanDistrictCouncil.py,sha256=f-hjNxEI_MgnFInBCZb5OY2-5ta0Wg22EQ4608R7Fpw,4488
61
+ uk_bin_collection/uk_bin_collection/councils/GatesheadCouncil.py,sha256=nn-GDrbFgQVoYwrS_GXvajsgKPJpETaGIi735PhWQ3w,4585
62
+ uk_bin_collection/uk_bin_collection/councils/GedlingBoroughCouncil.py,sha256=3DpMsCmhUnLCYmfFHi_RtfF5CXxEaE-AbINVs_KKIYQ,58880
63
+ uk_bin_collection/uk_bin_collection/councils/GlasgowCityCouncil.py,sha256=IOgM8Wl-LpO1T-F9uU1FlVfPaEObpvsdP7S2h03Mycc,2528
64
+ uk_bin_collection/uk_bin_collection/councils/GuildfordCouncil.py,sha256=I2dbgRrqH5lwNtl6Bdlq227dGb7nnicmuqciGElcc3w,5679
65
+ uk_bin_collection/uk_bin_collection/councils/HaltonBoroughCouncil.py,sha256=aPDRWfmpX6cSmhNWOucyYiLnnqTPWlMU9XNr5rMw8LI,5820
66
+ uk_bin_collection/uk_bin_collection/councils/HaringeyCouncil.py,sha256=Fk3NRQUl_DHXXlEZ0C-mDW9d4TBomVC9m50WRVOC8Go,2362
67
+ uk_bin_collection/uk_bin_collection/councils/HarrogateBoroughCouncil.py,sha256=_g3fP5Nq-OUjgNrfRf4UEyFKzq0x8QK-4enh5RP1efA,2050
68
+ uk_bin_collection/uk_bin_collection/councils/HighPeakCouncil.py,sha256=yl_fp4II3Vtmax72PBFBcYtBwuPCnWs6GCd1OR07Jsk,4799
69
+ uk_bin_collection/uk_bin_collection/councils/HullCityCouncil.py,sha256=UHcesBoctFVcXDYuwfag43KbcJcopkEDzJ-54NxtK0Q,1851
70
+ uk_bin_collection/uk_bin_collection/councils/HuntingdonDistrictCouncil.py,sha256=dGyhhG6HRjQ2SPeiRwUPTGlk9dPIslagV2k0GjEOn1s,1587
71
+ uk_bin_collection/uk_bin_collection/councils/KingstonUponThamesCouncil.py,sha256=gJjQl6D-FnD-tj6BFdyBYsTuZJUF2BuwYTbHZ2i3zqM,3525
72
+ uk_bin_collection/uk_bin_collection/councils/KirkleesCouncil.py,sha256=u9ko_FVgOUheKZxi4Ds4C49Ir4UIq1kZSM8AOk0jFjs,4451
73
+ uk_bin_collection/uk_bin_collection/councils/KnowsleyMBCouncil.py,sha256=HNLvtaYkN5GXJ2CtzZRJ_BObCd1zblNq79Xsq7xI7WQ,5588
74
+ uk_bin_collection/uk_bin_collection/councils/LancasterCityCouncil.py,sha256=_wOByXM_IN1jSkeQq76kdPXkndDEO49_gqQiRSe74do,2535
75
+ uk_bin_collection/uk_bin_collection/councils/LeedsCityCouncil.py,sha256=_7VLv4Vn-NkEDBIdL0o3isjCNARphMdPvZmUA86T0Kk,5158
76
+ uk_bin_collection/uk_bin_collection/councils/LisburnCastlereaghCityCouncil.py,sha256=SChaWQkoOpwQ9W27vK3RMHGEyfz36UQQRbT7qJrRtxQ,3308
77
+ uk_bin_collection/uk_bin_collection/councils/LiverpoolCityCouncil.py,sha256=n17OqZrCGrPrnxGUfHc-RGkb4oJ9Bx6uUWiLdzxfQlY,2587
78
+ uk_bin_collection/uk_bin_collection/councils/LondonBoroughHounslow.py,sha256=UOeiOxGMvVMm2UFaqjmQpm7vxzqJNSSN8LM9lAUjs2c,3021
79
+ uk_bin_collection/uk_bin_collection/councils/LondonBoroughRedbridge.py,sha256=OObscOFJ3hVZwyly3Zc68NaVE4oOMLhm-MJqJsYoSkk,6588
80
+ uk_bin_collection/uk_bin_collection/councils/MaldonDistrictCouncil.py,sha256=PMVt2XFggttPmbWyrBrHJ-W6R_6-0ux1BkY1kj1IKzg,1997
81
+ uk_bin_collection/uk_bin_collection/councils/MalvernHillsDC.py,sha256=iQG0EkX2npBicvsGKQRYyBGSBvKVUbKvUvvwrC9xV1A,2100
82
+ uk_bin_collection/uk_bin_collection/councils/ManchesterCityCouncil.py,sha256=ZgBMja1jvuj1nWmHHAvrf0FH3_HuysPR7eEved1C_hY,4919
83
+ uk_bin_collection/uk_bin_collection/councils/MansfieldDistrictCouncil.py,sha256=F5AiTxImrnjE1k3ry96bfstOf5XSNBJS_4qqmymmh3w,1386
84
+ uk_bin_collection/uk_bin_collection/councils/MertonCouncil.py,sha256=3Y2Un4xXo1sCcMsudynODSzocV_mMofWkX2JqONDb5o,1997
85
+ uk_bin_collection/uk_bin_collection/councils/MidAndEastAntrimBoroughCouncil.py,sha256=gQq51G6DREYNNZofrKNFi8uRPH9dtW4Uilz869nAkw0,5221
86
+ uk_bin_collection/uk_bin_collection/councils/MidSussexDistrictCouncil.py,sha256=TUKo2GIY-S2m_RDOQoWdLeBWqTbAjW8tovx1luTtJfE,2705
87
+ uk_bin_collection/uk_bin_collection/councils/MiltonKeynesCityCouncil.py,sha256=3olsWa77L34vz-c7NgeGK9xmNuR4Ws_oAk5D4UpIkPw,2005
88
+ uk_bin_collection/uk_bin_collection/councils/MoleValleyDistrictCouncil.py,sha256=EBXsTVI4671Ym0FjWKq8swklIiWP7NdEQl2ajUt-HuI,3886
89
+ uk_bin_collection/uk_bin_collection/councils/NeathPortTalbotCouncil.py,sha256=z4TBvmMMdT0eiyRtWD_v2F8LgGvrmY7Wrq88grMcfM4,5489
90
+ uk_bin_collection/uk_bin_collection/councils/NewarkAndSherwoodDC.py,sha256=lAleYfCGUWCKOi7Ye_cjgfpI3pWwTcFctlYmh0hjebM,2140
91
+ uk_bin_collection/uk_bin_collection/councils/NewcastleCityCouncil.py,sha256=eJMX10CG9QO7FRhHSmUDL-jO_44qoK3_1ztNTAXhkbw,2085
92
+ uk_bin_collection/uk_bin_collection/councils/NewhamCouncil.py,sha256=klFqr2Km1BuQ4wERmjbXZzOvN1N0jnVmhTGRSVzVOaU,2086
93
+ uk_bin_collection/uk_bin_collection/councils/NewportCityCouncil.py,sha256=dPeDmxNT1QT6C_V30PZFHypqQrvppzE3qF12a5gF94E,8479
94
+ uk_bin_collection/uk_bin_collection/councils/NorthEastDerbyshireDistrictCouncil.py,sha256=znLMVOQbnTGDu87qK9586Zw4vWM3tJP3yEz29YYe-9w,4635
95
+ uk_bin_collection/uk_bin_collection/councils/NorthEastLincs.py,sha256=fYf438VZIaOaqPSwdTTWVjFTdrI0jGfFsxVzOc-QdkA,1817
96
+ uk_bin_collection/uk_bin_collection/councils/NorthKestevenDistrictCouncil.py,sha256=vYOCerJXr9LTP6F2wm4vpYNYbQaWNZ6yfHEQ33N_hTw,1681
97
+ uk_bin_collection/uk_bin_collection/councils/NorthLanarkshireCouncil.py,sha256=npK1V8D3SLNTSSKkfEpEPvVgXDFyhH_tAsuGogsVKQY,1763
98
+ uk_bin_collection/uk_bin_collection/councils/NorthLincolnshireCouncil.py,sha256=kCT82SU-etoGBehoIbbzGw_XS2YHllTw7lCCbdQj7UE,2467
99
+ uk_bin_collection/uk_bin_collection/councils/NorthNorfolkDistrictCouncil.py,sha256=GLvn9x6oxqKERBGQBHd1BAt4tvYkDgoJWtNEp8JqRkk,4299
100
+ uk_bin_collection/uk_bin_collection/councils/NorthNorthamptonshireCouncil.py,sha256=kcMN-5GBjYDM9F1BKfHoYeydub8SuDxHamJbSvJRZ68,2337
101
+ uk_bin_collection/uk_bin_collection/councils/NorthSomersetCouncil.py,sha256=EbFVnPYZIOkru5_Y75kjljM3Cr3HIJgP-SU6hxgf6tk,2754
102
+ uk_bin_collection/uk_bin_collection/councils/NorthTynesideCouncil.py,sha256=h2VzxJot0JjHX5IacfRBvZTxEBu5bdAlw_4CYnSXztM,11352
103
+ uk_bin_collection/uk_bin_collection/councils/NorthWestLeicestershire.py,sha256=bBujgKh5CmL5dS6nX45KZHxTSGN7Nxjhwlt25KB55IE,4568
104
+ uk_bin_collection/uk_bin_collection/councils/NorthYorkshire.py,sha256=2wTrr3VrZDp9-YtDPmWd649gXeWH4hbm2-Hw8Vau5Xs,1933
105
+ uk_bin_collection/uk_bin_collection/councils/NorthumberlandCouncil.py,sha256=6XbjdXqS-qYgXfVLbj65p8c1iJYTxZ9adQ7bJc6R4cw,4974
106
+ uk_bin_collection/uk_bin_collection/councils/NottinghamCityCouncil.py,sha256=SfjQ17er2heXzO6-PUVQFZqOK8akfJ4sQh1FJYgYxkM,1323
107
+ uk_bin_collection/uk_bin_collection/councils/OldhamCouncil.py,sha256=9dlesCxNoVXlmQaqZj7QFh00smnJbm1Gnjkr_Uvzurs,1771
108
+ uk_bin_collection/uk_bin_collection/councils/PortsmouthCityCouncil.py,sha256=EozZAHBPTzHTSNkwVBgtggjIZH5oA9Ds3qQSSoUIWNM,5572
109
+ uk_bin_collection/uk_bin_collection/councils/PrestonCityCouncil.py,sha256=OZhzZnEfvopgrqZw1ZrD9PYKjPos0Bw5Qn6Y5Z4cU98,3822
110
+ uk_bin_collection/uk_bin_collection/councils/ReadingBoroughCouncil.py,sha256=ZlQjU0IeKylGE9VlivSMh4XKwoLgntESPiylSOYkuD4,1009
111
+ uk_bin_collection/uk_bin_collection/councils/ReigateAndBansteadBoroughCouncil.py,sha256=_JEEPPzEWvWAqUTn_bkj0v6vOaTT6wTgOQ_fZrgRhNA,3235
112
+ uk_bin_collection/uk_bin_collection/councils/RenfrewshireCouncil.py,sha256=2TOFLOH5v7cazn6Y90IkaIc0CebHHpIRY9LGnNh5Z38,5093
113
+ uk_bin_collection/uk_bin_collection/councils/RhonddaCynonTaffCouncil.py,sha256=wInyVG_0wRrX_dRO9qbAzPhlXDseXapj2zQhsISw8gg,3233
114
+ uk_bin_collection/uk_bin_collection/councils/RochdaleCouncil.py,sha256=UTSwSw515VehGn4xkjjRhUlzS4lDj4hgna6y-4VW3uM,2379
115
+ uk_bin_collection/uk_bin_collection/councils/RochfordCouncil.py,sha256=_J2Eb5gec2Gmv_QYzKHT6sQleDnIHsn-5qf-T6TM9X0,2613
116
+ uk_bin_collection/uk_bin_collection/councils/RugbyBoroughCouncil.py,sha256=a5ySLmFvvY56QMA7-bk6MVBxRp5tPBIBg4navH0eYas,4306
117
+ uk_bin_collection/uk_bin_collection/councils/RushcliffeBoroughCouncil.py,sha256=ukzXtqLQ85K0F8zvE58Vmg6L9_sxfIX5qa8OARUCvvk,3989
118
+ uk_bin_collection/uk_bin_collection/councils/RushmoorCouncil.py,sha256=ZsGnXjoEaOS6U7fI0w7-uqxayAHdNVKsJi2fqIWEls8,3375
119
+ uk_bin_collection/uk_bin_collection/councils/SalfordCityCouncil.py,sha256=jJjAH_dM298VIJ4-SEy7agxUe8aFJ_sEPK_ZwmWJ9cE,2506
120
+ uk_bin_collection/uk_bin_collection/councils/SevenoaksDistrictCouncil.py,sha256=WLMsToyet8CMjAeGi5szg-YhEVN0148B_mOFHybZ8o0,4244
121
+ uk_bin_collection/uk_bin_collection/councils/SheffieldCityCouncil.py,sha256=9g9AeiackoWyej9EVlKUzywzAtMuBVD0f93ZryAUha8,2016
122
+ uk_bin_collection/uk_bin_collection/councils/ShropshireCouncil.py,sha256=6OIEhJmv-zLJiEo8WaJePA7JuhNRGkh2WohFLhzN8Kk,1477
123
+ uk_bin_collection/uk_bin_collection/councils/SolihullCouncil.py,sha256=gbTHjbdV46evGfLfF8rxVMQIgNZD-XPHgZeuyje7kGY,1609
124
+ uk_bin_collection/uk_bin_collection/councils/SomersetCouncil.py,sha256=zsbpknHcIWK1MVW0FreIcaEienbWs3c5q32KKGQl1IE,8479
125
+ uk_bin_collection/uk_bin_collection/councils/SouthAyrshireCouncil.py,sha256=03eapeXwxneKI4ccKPSHoviIbhmV1m90I-0WQ_s3KsY,2722
126
+ uk_bin_collection/uk_bin_collection/councils/SouthCambridgeshireCouncil.py,sha256=2DvHgy5EuopGyY4EV8us8B4BN82qt1N8RWMJszjenHc,2307
127
+ uk_bin_collection/uk_bin_collection/councils/SouthGloucestershireCouncil.py,sha256=ytQot0J7i6DTJo6hb9koTB1UpXLATKVeRU4FBF9kHRo,2412
128
+ uk_bin_collection/uk_bin_collection/councils/SouthLanarkshireCouncil.py,sha256=fj-eZI0yrvQVCv8GvhcovZ3b9bV6Xv_ws3IunWjnv4U,3126
129
+ uk_bin_collection/uk_bin_collection/councils/SouthNorfolkCouncil.py,sha256=ThO-oJ_n7hNRMl_n--rMPWKS6j-hkL_Ab7JBqKaylfg,3971
130
+ uk_bin_collection/uk_bin_collection/councils/SouthOxfordshireCouncil.py,sha256=zW4bN3hcqNoK_Y0-vPpuZs3K0LTPvApu6_v9K-D7WjE,3879
131
+ uk_bin_collection/uk_bin_collection/councils/SouthTynesideCouncil.py,sha256=dxXGrJfg_fn2IPTBgq6Duwy0WY8GYLafMuisaCjOnbs,3426
132
+ uk_bin_collection/uk_bin_collection/councils/StAlbansCityAndDistrictCouncil.py,sha256=mPZz6Za6kTSkrfHnj0OfwtnpRYR1dKvxbuFEKnWsiL8,1451
133
+ uk_bin_collection/uk_bin_collection/councils/StHelensBC.py,sha256=E3kxbreq1BAOegT7T85Mz88rBvAsxcPNn96nSJDETbI,2068
134
+ uk_bin_collection/uk_bin_collection/councils/StaffordshireMoorlandsDistrictCouncil.py,sha256=JbEdqwiKN6ML9g1gm1mHTyWQwSicK3m8TM_wIFp83Jw,4345
135
+ uk_bin_collection/uk_bin_collection/councils/StockportBoroughCouncil.py,sha256=v0HmioNVRoU1-9OnLJl2V3M5pVR1aVu1BgOLHFR1Sf4,1429
136
+ uk_bin_collection/uk_bin_collection/councils/StokeOnTrentCityCouncil.py,sha256=KM0EgWeO7mk8lkozX0RCTfMchXdjrfBqIjCiOtB09aM,2884
137
+ uk_bin_collection/uk_bin_collection/councils/StratfordUponAvonCouncil.py,sha256=DMTAcXT_lay8Cl1hBbzf_LN7-GwTDGxT3Ug9QJkaF9Y,3936
138
+ uk_bin_collection/uk_bin_collection/councils/SunderlandCityCouncil.py,sha256=2a4iaV1akC22J96877x6cOQ2CQKRAsBNT8uDLv9UPKU,3904
139
+ uk_bin_collection/uk_bin_collection/councils/SwaleBoroughCouncil.py,sha256=CCAjclhkCxwf_MkdrIif7MZpLfV5SPy7hyM7BE0TRPc,2048
140
+ uk_bin_collection/uk_bin_collection/councils/TamesideMBCouncil.py,sha256=k2TAAZG7n2S1BWVyxbE_-4-lZuzhOimCNz4yimUCOGk,1995
141
+ uk_bin_collection/uk_bin_collection/councils/TandridgeDistrictCouncil.py,sha256=KLVvM2NNq_DQylVe5dwO2l7qPahLHg08jJGLCv1MBQ4,2324
142
+ uk_bin_collection/uk_bin_collection/councils/TelfordAndWrekinCouncil.py,sha256=p1ZS5R4EGxbEWlRBrkGXgKwE_lkyBT-R60yKFFhVObc,1844
143
+ uk_bin_collection/uk_bin_collection/councils/TestValleyBoroughCouncil.py,sha256=ohbndldGHqx6AXKaJLNYWpSK4umKaBU6YaWlgYhR1HI,8479
144
+ uk_bin_collection/uk_bin_collection/councils/TonbridgeAndMallingBC.py,sha256=UlgnHDoi8ecav2H5-HqKNDpqW1J3RN-c___5c08_Q7I,4859
145
+ uk_bin_collection/uk_bin_collection/councils/TorbayCouncil.py,sha256=JW_BS7wkfxFsmx6taQtPAQWdBp1AfLrxs0XRQ2XZcSw,2029
146
+ uk_bin_collection/uk_bin_collection/councils/TorridgeDistrictCouncil.py,sha256=6gOO02pYU0cbj3LAHiBVNG4zkFMyIGbkE2jAye3KcGM,6386
147
+ uk_bin_collection/uk_bin_collection/councils/ValeofGlamorganCouncil.py,sha256=Phgb_ECiUOOkqOx6OsfsTHMCW5VQfRmOC2zgYIQhuZA,5044
148
+ uk_bin_collection/uk_bin_collection/councils/ValeofWhiteHorseCouncil.py,sha256=5nZLbU5YVKNsJ2X_wuybrNLFAzjVAxkazu-bYP4IGXw,4292
149
+ uk_bin_collection/uk_bin_collection/councils/WakefieldCityCouncil.py,sha256=cDOOMmryr5oAzOQQvhUoPwRzP7azaz-BXa3xlyWYUoE,4420
150
+ uk_bin_collection/uk_bin_collection/councils/WarwickDistrictCouncil.py,sha256=3WQrAxzYzKoV4LyOqNTp9xINVsNi1xW9t8etducGeag,1146
151
+ uk_bin_collection/uk_bin_collection/councils/WaverleyBoroughCouncil.py,sha256=nhGbhcGyeULLWhpkwRC1anZbQOmZxMhC-VRHIj2ZJlY,4661
152
+ uk_bin_collection/uk_bin_collection/councils/WealdenDistrictCouncil.py,sha256=SvSSaLkx7iJjzypAwKkaJwegXkSsIQtUOS2V605kz1A,3368
153
+ uk_bin_collection/uk_bin_collection/councils/WelhatCouncil.py,sha256=ikUft37dYNJghfe-_6Fskiq1JihqpLmLNj38QkKSUUA,2316
154
+ uk_bin_collection/uk_bin_collection/councils/WestBerkshireCouncil.py,sha256=4HKLHJFA6guvmiPW2xmTavqlgbPxxKV3KRgRwuAtqcY,5220
155
+ uk_bin_collection/uk_bin_collection/councils/WestLindseyDistrictCouncil.py,sha256=JFWUy4w0CKulGq16PfbRDKAdQEbokVEuabwlZYigdEU,4606
156
+ uk_bin_collection/uk_bin_collection/councils/WestLothianCouncil.py,sha256=MeAhF3j7M8UvArwmkN2tw_PdukFzg-KXs7A5I9BUOXE,4098
157
+ uk_bin_collection/uk_bin_collection/councils/WestNorthamptonshireCouncil.py,sha256=F1GeJUGND4DN_HuM6N0Elpeb0DAMm9_KeqG6qtIgZf4,1079
158
+ uk_bin_collection/uk_bin_collection/councils/WestSuffolkCouncil.py,sha256=06GdKwfpbyJ0me3S6WGtAjG0bmdEuH6IupqSnu5xDYM,2143
159
+ uk_bin_collection/uk_bin_collection/councils/WiganBoroughCouncil.py,sha256=YEbpbjkparhah4ahl6WZzI0mMHNrbKzdC6kA5gDQCUA,3745
160
+ uk_bin_collection/uk_bin_collection/councils/WiltshireCouncil.py,sha256=it2Oh5Kmq3lD30gAZgk2bzZPNCtJcFHyQO1NgOQtfvU,5653
161
+ uk_bin_collection/uk_bin_collection/councils/WindsorAndMaidenheadCouncil.py,sha256=triYeI4IIHF6_XMokF6BGAZkx_lPAXeGyuS9DEr5UxY,5553
162
+ uk_bin_collection/uk_bin_collection/councils/WokingBoroughCouncil.py,sha256=EUfFU1lNvV0Ry5CpdE2rBJ2zRfsPfi9hg0ux3wYAmzw,5202
163
+ uk_bin_collection/uk_bin_collection/councils/WyreCouncil.py,sha256=zDDa7n4K_zm5PgDL08A26gD9yOOsOhuexI3x2seaBF4,3511
164
+ uk_bin_collection/uk_bin_collection/councils/YorkCouncil.py,sha256=I2kBYMlsD4bIdsvmoSzBjJAvTTi6yPfJa8xjJx1ys2w,1490
165
+ uk_bin_collection/uk_bin_collection/councils/council_class_template/councilclasstemplate.py,sha256=4s9ODGPAwPqwXc8SrTX5Wlfmizs3_58iXUtHc4Ir86o,1162
166
+ uk_bin_collection/uk_bin_collection/get_bin_data.py,sha256=9qppF2oPkhmOoK8-ZkRIU1M6vhBh-yUCWAZEEd07iLk,5414
167
+ uk_bin_collection-0.74.0.dist-info/LICENSE,sha256=vABBUOzcrgfaTKpzeo-si9YVEun6juDkndqA8RKdKGs,1071
168
+ uk_bin_collection-0.74.0.dist-info/METADATA,sha256=CUB3a19tRQY1WdptH6xh650CdkPtMRrYxD5sRhaCOEQ,12594
169
+ uk_bin_collection-0.74.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
170
+ uk_bin_collection-0.74.0.dist-info/entry_points.txt,sha256=36WCSGMWSc916S3Hi1ZkazzDKHaJ6CD-4fCEFm5MIao,90
171
+ uk_bin_collection-0.74.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: poetry-core 1.9.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ uk_bin_collection=uk_bin_collection.uk_bin_collection.collect_data:run
3
+