uk_bin_collection 0.152.1__tar.gz → 0.152.2__tar.gz

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 (352) hide show
  1. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/PKG-INFO +179 -1
  2. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/README.md +178 -0
  3. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/pyproject.toml +1 -1
  4. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/CheshireEastCouncil.py +0 -1
  5. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/NorthLincolnshireCouncil.py +2 -1
  6. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/LICENSE +0 -0
  7. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/Local_Authority_Boundaries.geojson +0 -0
  8. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/README.rst +0 -0
  9. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/compare_lad_codes.py +0 -0
  10. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/map.html +0 -0
  11. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/tests/check_selenium_url_in_input.json.py +0 -0
  12. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/tests/council_feature_input_parity.py +0 -0
  13. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/tests/features/environment.py +0 -0
  14. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/tests/features/validate_council_outputs.feature +0 -0
  15. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/tests/generate_map_test_results.py +0 -0
  16. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/tests/input.json +0 -0
  17. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/tests/output.schema +0 -0
  18. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/tests/step_defs/step_helpers/file_handler.py +0 -0
  19. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/tests/step_defs/test_validate_council.py +0 -0
  20. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/tests/test_collect_data.py +0 -0
  21. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/tests/test_common_functions.py +0 -0
  22. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/tests/test_conftest.py +0 -0
  23. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/tests/test_get_data.py +0 -0
  24. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/collect_data.py +0 -0
  25. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/common.py +0 -0
  26. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/AberdeenCityCouncil.py +0 -0
  27. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/AberdeenshireCouncil.py +0 -0
  28. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/AdurAndWorthingCouncils.py +0 -0
  29. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/AmberValleyBoroughCouncil.py +0 -0
  30. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/AngusCouncil.py +0 -0
  31. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/AntrimAndNewtonabbeyCouncil.py +0 -0
  32. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/ArdsAndNorthDownCouncil.py +0 -0
  33. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/ArgyllandButeCouncil.py +0 -0
  34. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/ArmaghBanbridgeCraigavonCouncil.py +0 -0
  35. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/ArunCouncil.py +0 -0
  36. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/AshfieldDistrictCouncil.py +0 -0
  37. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/AshfordBoroughCouncil.py +0 -0
  38. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/AylesburyValeCouncil.py +0 -0
  39. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BCPCouncil.py +0 -0
  40. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BaberghDistrictCouncil.py +0 -0
  41. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BarkingDagenham.py +0 -0
  42. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BarnetCouncil.py +0 -0
  43. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BarnsleyMBCouncil.py +0 -0
  44. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BasildonCouncil.py +0 -0
  45. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BasingstokeCouncil.py +0 -0
  46. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BathAndNorthEastSomersetCouncil.py +0 -0
  47. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BedfordBoroughCouncil.py +0 -0
  48. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BedfordshireCouncil.py +0 -0
  49. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BelfastCityCouncil.py +0 -0
  50. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BexleyCouncil.py +0 -0
  51. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BirminghamCityCouncil.py +0 -0
  52. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BlabyDistrictCouncil.py +0 -0
  53. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BlackburnCouncil.py +0 -0
  54. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BlaenauGwentCountyBoroughCouncil.py +0 -0
  55. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BolsoverCouncil.py +0 -0
  56. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BoltonCouncil.py +0 -0
  57. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BostonBoroughCouncil.py +0 -0
  58. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BracknellForestCouncil.py +0 -0
  59. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BradfordMDC.py +0 -0
  60. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BraintreeDistrictCouncil.py +0 -0
  61. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BrecklandCouncil.py +0 -0
  62. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BrentCouncil.py +0 -0
  63. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BrightonandHoveCityCouncil.py +0 -0
  64. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BristolCityCouncil.py +0 -0
  65. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BroadlandDistrictCouncil.py +0 -0
  66. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BromleyBoroughCouncil.py +0 -0
  67. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BromsgroveDistrictCouncil.py +0 -0
  68. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BroxbourneCouncil.py +0 -0
  69. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BroxtoweBoroughCouncil.py +0 -0
  70. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BuckinghamshireCouncil.py +0 -0
  71. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BurnleyBoroughCouncil.py +0 -0
  72. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/BuryCouncil.py +0 -0
  73. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/CalderdaleCouncil.py +0 -0
  74. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/CambridgeCityCouncil.py +0 -0
  75. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/CannockChaseDistrictCouncil.py +0 -0
  76. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/CanterburyCityCouncil.py +0 -0
  77. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/CardiffCouncil.py +0 -0
  78. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/CarmarthenshireCountyCouncil.py +0 -0
  79. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/CastlepointDistrictCouncil.py +0 -0
  80. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/CeredigionCountyCouncil.py +0 -0
  81. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/CharnwoodBoroughCouncil.py +0 -0
  82. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/ChelmsfordCityCouncil.py +0 -0
  83. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/CheltenhamBoroughCouncil.py +0 -0
  84. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/CherwellDistrictCouncil.py +0 -0
  85. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/CheshireWestAndChesterCouncil.py +0 -0
  86. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/ChesterfieldBoroughCouncil.py +0 -0
  87. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/ChichesterDistrictCouncil.py +0 -0
  88. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/ChorleyCouncil.py +0 -0
  89. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/ColchesterCityCouncil.py +0 -0
  90. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/ConwyCountyBorough.py +0 -0
  91. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/CopelandBoroughCouncil.py +0 -0
  92. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/CornwallCouncil.py +0 -0
  93. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/CotswoldDistrictCouncil.py +0 -0
  94. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/CoventryCityCouncil.py +0 -0
  95. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/CrawleyBoroughCouncil.py +0 -0
  96. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/CroydonCouncil.py +0 -0
  97. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/CumberlandAllerdaleCouncil.py +0 -0
  98. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/CumberlandCouncil.py +0 -0
  99. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/DacorumBoroughCouncil.py +0 -0
  100. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/DartfordBoroughCouncil.py +0 -0
  101. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/DenbighshireCouncil.py +0 -0
  102. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/DerbyCityCouncil.py +0 -0
  103. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/DerbyshireDalesDistrictCouncil.py +0 -0
  104. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/DoncasterCouncil.py +0 -0
  105. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/DorsetCouncil.py +0 -0
  106. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/DoverDistrictCouncil.py +0 -0
  107. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/DudleyCouncil.py +0 -0
  108. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/DundeeCityCouncil.py +0 -0
  109. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/DurhamCouncil.py +0 -0
  110. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/EalingCouncil.py +0 -0
  111. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/EastAyrshireCouncil.py +0 -0
  112. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/EastCambridgeshireCouncil.py +0 -0
  113. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/EastDevonDC.py +0 -0
  114. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/EastHertsCouncil.py +0 -0
  115. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/EastLindseyDistrictCouncil.py +0 -0
  116. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/EastLothianCouncil.py +0 -0
  117. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/EastRenfrewshireCouncil.py +0 -0
  118. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/EastRidingCouncil.py +0 -0
  119. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/EastStaffordshireBoroughCouncil.py +0 -0
  120. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/EastSuffolkCouncil.py +0 -0
  121. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/EastbourneBoroughCouncil.py +0 -0
  122. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/EastleighBoroughCouncil.py +0 -0
  123. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/EdinburghCityCouncil.py +0 -0
  124. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/ElmbridgeBoroughCouncil.py +0 -0
  125. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/EnfieldCouncil.py +0 -0
  126. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/EnvironmentFirst.py +0 -0
  127. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/EppingForestDistrictCouncil.py +0 -0
  128. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/EpsomandEwellBoroughCouncil.py +0 -0
  129. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/ErewashBoroughCouncil.py +0 -0
  130. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/ExeterCityCouncil.py +0 -0
  131. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/FalkirkCouncil.py +0 -0
  132. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/FarehamBoroughCouncil.py +0 -0
  133. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/FenlandDistrictCouncil.py +0 -0
  134. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/FermanaghOmaghDistrictCouncil.py +0 -0
  135. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/FifeCouncil.py +0 -0
  136. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/FlintshireCountyCouncil.py +0 -0
  137. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/FolkstoneandHytheDistrictCouncil.py +0 -0
  138. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/ForestOfDeanDistrictCouncil.py +0 -0
  139. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/FyldeCouncil.py +0 -0
  140. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/GatesheadCouncil.py +0 -0
  141. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/GedlingBoroughCouncil.py +0 -0
  142. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/GlasgowCityCouncil.py +0 -0
  143. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/GloucesterCityCouncil.py +0 -0
  144. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/GooglePublicCalendarCouncil.py +0 -0
  145. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/GraveshamBoroughCouncil.py +0 -0
  146. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/GreatYarmouthBoroughCouncil.py +0 -0
  147. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/GuildfordCouncil.py +0 -0
  148. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/GwyneddCouncil.py +0 -0
  149. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/HackneyCouncil.py +0 -0
  150. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/HaltonBoroughCouncil.py +0 -0
  151. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/HarboroughDistrictCouncil.py +0 -0
  152. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/HaringeyCouncil.py +0 -0
  153. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/HarrogateBoroughCouncil.py +0 -0
  154. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/HartDistrictCouncil.py +0 -0
  155. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/HartlepoolBoroughCouncil.py +0 -0
  156. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/HastingsBoroughCouncil.py +0 -0
  157. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/HerefordshireCouncil.py +0 -0
  158. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/HertsmereBoroughCouncil.py +0 -0
  159. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/HighPeakCouncil.py +0 -0
  160. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/HighlandCouncil.py +0 -0
  161. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/Hillingdon.py +0 -0
  162. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/HinckleyandBosworthBoroughCouncil.py +0 -0
  163. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/HorshamDistrictCouncil.py +0 -0
  164. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/HullCityCouncil.py +0 -0
  165. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/HuntingdonDistrictCouncil.py +0 -0
  166. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/HyndburnBoroughCouncil.py +0 -0
  167. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/IpswichBoroughCouncil.py +0 -0
  168. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/IslingtonCouncil.py +0 -0
  169. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/KingsLynnandWestNorfolkBC.py +0 -0
  170. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/KingstonUponThamesCouncil.py +0 -0
  171. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/KirkleesCouncil.py +0 -0
  172. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/KnowsleyMBCouncil.py +0 -0
  173. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/LancasterCityCouncil.py +0 -0
  174. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/LeedsCityCouncil.py +0 -0
  175. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/LeicesterCityCouncil.py +0 -0
  176. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/LewesDistrictCouncil.py +0 -0
  177. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/LichfieldDistrictCouncil.py +0 -0
  178. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/LincolnCouncil.py +0 -0
  179. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/LisburnCastlereaghCityCouncil.py +0 -0
  180. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/LiverpoolCityCouncil.py +0 -0
  181. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughEaling.py +0 -0
  182. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughHarrow.py +0 -0
  183. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughHavering.py +0 -0
  184. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughHounslow.py +0 -0
  185. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughLambeth.py +0 -0
  186. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughLewisham.py +0 -0
  187. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughOfRichmondUponThames.py +0 -0
  188. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughRedbridge.py +0 -0
  189. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughSutton.py +0 -0
  190. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/LutonBoroughCouncil.py +0 -0
  191. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/MaidstoneBoroughCouncil.py +0 -0
  192. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/MaldonDistrictCouncil.py +0 -0
  193. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/MalvernHillsDC.py +0 -0
  194. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/ManchesterCityCouncil.py +0 -0
  195. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/MansfieldDistrictCouncil.py +0 -0
  196. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/MedwayCouncil.py +0 -0
  197. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/MeltonBoroughCouncil.py +0 -0
  198. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/MertonCouncil.py +0 -0
  199. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/MidAndEastAntrimBoroughCouncil.py +0 -0
  200. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/MidDevonCouncil.py +0 -0
  201. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/MidSuffolkDistrictCouncil.py +0 -0
  202. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/MidSussexDistrictCouncil.py +0 -0
  203. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/MidUlsterDistrictCouncil.py +0 -0
  204. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/MiddlesbroughCouncil.py +0 -0
  205. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/MidlothianCouncil.py +0 -0
  206. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/MiltonKeynesCityCouncil.py +0 -0
  207. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/MoleValleyDistrictCouncil.py +0 -0
  208. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/MonmouthshireCountyCouncil.py +0 -0
  209. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/MorayCouncil.py +0 -0
  210. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/NeathPortTalbotCouncil.py +0 -0
  211. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/NewForestCouncil.py +0 -0
  212. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/NewarkAndSherwoodDC.py +0 -0
  213. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/NewcastleCityCouncil.py +0 -0
  214. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/NewcastleUnderLymeCouncil.py +0 -0
  215. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/NewhamCouncil.py +0 -0
  216. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/NewportCityCouncil.py +0 -0
  217. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/NorthAyrshireCouncil.py +0 -0
  218. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/NorthDevonCountyCouncil.py +0 -0
  219. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/NorthEastDerbyshireDistrictCouncil.py +0 -0
  220. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/NorthEastLincs.py +0 -0
  221. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/NorthHertfordshireDistrictCouncil.py +0 -0
  222. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/NorthKestevenDistrictCouncil.py +0 -0
  223. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/NorthLanarkshireCouncil.py +0 -0
  224. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/NorthNorfolkDistrictCouncil.py +0 -0
  225. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/NorthNorthamptonshireCouncil.py +0 -0
  226. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/NorthSomersetCouncil.py +0 -0
  227. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/NorthTynesideCouncil.py +0 -0
  228. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/NorthWestLeicestershire.py +0 -0
  229. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/NorthYorkshire.py +0 -0
  230. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/NorthumberlandCouncil.py +0 -0
  231. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/NorwichCityCouncil.py +0 -0
  232. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/NottinghamCityCouncil.py +0 -0
  233. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/NuneatonBedworthBoroughCouncil.py +0 -0
  234. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/OadbyAndWigstonBoroughCouncil.py +0 -0
  235. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/OldhamCouncil.py +0 -0
  236. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/OxfordCityCouncil.py +0 -0
  237. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/PembrokeshireCountyCouncil.py +0 -0
  238. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/PerthAndKinrossCouncil.py +0 -0
  239. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/PeterboroughCityCouncil.py +0 -0
  240. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/PlymouthCouncil.py +0 -0
  241. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/PortsmouthCityCouncil.py +0 -0
  242. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/PowysCouncil.py +0 -0
  243. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/PrestonCityCouncil.py +0 -0
  244. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/ReadingBoroughCouncil.py +0 -0
  245. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/RedcarandClevelandCouncil.py +0 -0
  246. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/RedditchBoroughCouncil.py +0 -0
  247. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/ReigateAndBansteadBoroughCouncil.py +0 -0
  248. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/RenfrewshireCouncil.py +0 -0
  249. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/RhonddaCynonTaffCouncil.py +0 -0
  250. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/RochdaleCouncil.py +0 -0
  251. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/RochfordCouncil.py +0 -0
  252. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/RotherDistrictCouncil.py +0 -0
  253. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/RotherhamCouncil.py +0 -0
  254. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/RoyalBoroughofGreenwich.py +0 -0
  255. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/RugbyBoroughCouncil.py +0 -0
  256. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/RunnymedeBoroughCouncil.py +0 -0
  257. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/RushcliffeBoroughCouncil.py +0 -0
  258. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/RushmoorCouncil.py +0 -0
  259. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SalfordCityCouncil.py +0 -0
  260. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SandwellBoroughCouncil.py +0 -0
  261. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SeftonCouncil.py +0 -0
  262. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SevenoaksDistrictCouncil.py +0 -0
  263. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SheffieldCityCouncil.py +0 -0
  264. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/ShropshireCouncil.py +0 -0
  265. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SloughBoroughCouncil.py +0 -0
  266. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SolihullCouncil.py +0 -0
  267. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SomersetCouncil.py +0 -0
  268. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SouthAyrshireCouncil.py +0 -0
  269. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SouthCambridgeshireCouncil.py +0 -0
  270. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SouthDerbyshireDistrictCouncil.py +0 -0
  271. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SouthGloucestershireCouncil.py +0 -0
  272. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SouthHamsDistrictCouncil.py +0 -0
  273. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SouthHollandDistrictCouncil.py +0 -0
  274. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SouthKestevenDistrictCouncil.py +0 -0
  275. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SouthLanarkshireCouncil.py +0 -0
  276. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SouthNorfolkCouncil.py +0 -0
  277. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SouthOxfordshireCouncil.py +0 -0
  278. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SouthRibbleCouncil.py +0 -0
  279. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SouthStaffordshireDistrictCouncil.py +0 -0
  280. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SouthTynesideCouncil.py +0 -0
  281. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SouthamptonCityCouncil.py +0 -0
  282. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SouthwarkCouncil.py +0 -0
  283. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SpelthorneBoroughCouncil.py +0 -0
  284. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/StAlbansCityAndDistrictCouncil.py +0 -0
  285. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/StHelensBC.py +0 -0
  286. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/StaffordBoroughCouncil.py +0 -0
  287. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/StaffordshireMoorlandsDistrictCouncil.py +0 -0
  288. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/StevenageBoroughCouncil.py +0 -0
  289. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/StirlingCouncil.py +0 -0
  290. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/StockportBoroughCouncil.py +0 -0
  291. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/StocktonOnTeesCouncil.py +0 -0
  292. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/StokeOnTrentCityCouncil.py +0 -0
  293. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/StratfordUponAvonCouncil.py +0 -0
  294. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/StroudDistrictCouncil.py +0 -0
  295. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SunderlandCityCouncil.py +0 -0
  296. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SurreyHeathBoroughCouncil.py +0 -0
  297. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SwaleBoroughCouncil.py +0 -0
  298. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SwanseaCouncil.py +0 -0
  299. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/SwindonBoroughCouncil.py +0 -0
  300. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/TamesideMBCouncil.py +0 -0
  301. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/TandridgeDistrictCouncil.py +0 -0
  302. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/TeignbridgeCouncil.py +0 -0
  303. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/TelfordAndWrekinCouncil.py +0 -0
  304. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/TendringDistrictCouncil.py +0 -0
  305. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/TestValleyBoroughCouncil.py +0 -0
  306. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/TewkesburyBoroughCouncil.py +0 -0
  307. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/ThanetDistrictCouncil.py +0 -0
  308. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/ThreeRiversDistrictCouncil.py +0 -0
  309. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/ThurrockCouncil.py +0 -0
  310. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/TonbridgeAndMallingBC.py +0 -0
  311. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/TorbayCouncil.py +0 -0
  312. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/TorridgeDistrictCouncil.py +0 -0
  313. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/TunbridgeWellsCouncil.py +0 -0
  314. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/UttlesfordDistrictCouncil.py +0 -0
  315. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/ValeofGlamorganCouncil.py +0 -0
  316. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/ValeofWhiteHorseCouncil.py +0 -0
  317. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WakefieldCityCouncil.py +0 -0
  318. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WalsallCouncil.py +0 -0
  319. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WalthamForest.py +0 -0
  320. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WandsworthCouncil.py +0 -0
  321. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WarringtonBoroughCouncil.py +0 -0
  322. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WarwickDistrictCouncil.py +0 -0
  323. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WatfordBoroughCouncil.py +0 -0
  324. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WaverleyBoroughCouncil.py +0 -0
  325. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WealdenDistrictCouncil.py +0 -0
  326. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WelhatCouncil.py +0 -0
  327. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WestBerkshireCouncil.py +0 -0
  328. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WestDunbartonshireCouncil.py +0 -0
  329. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WestLancashireBoroughCouncil.py +0 -0
  330. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WestLindseyDistrictCouncil.py +0 -0
  331. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WestLothianCouncil.py +0 -0
  332. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WestMorlandAndFurness.py +0 -0
  333. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WestNorthamptonshireCouncil.py +0 -0
  334. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WestOxfordshireDistrictCouncil.py +0 -0
  335. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WestSuffolkCouncil.py +0 -0
  336. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WiganBoroughCouncil.py +0 -0
  337. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WiltshireCouncil.py +0 -0
  338. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WinchesterCityCouncil.py +0 -0
  339. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WindsorAndMaidenheadCouncil.py +0 -0
  340. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WirralCouncil.py +0 -0
  341. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WokingBoroughCouncil.py +0 -0
  342. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WokinghamBoroughCouncil.py +0 -0
  343. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WolverhamptonCityCouncil.py +0 -0
  344. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WorcesterCityCouncil.py +0 -0
  345. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WrexhamCountyBoroughCouncil.py +0 -0
  346. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WychavonDistrictCouncil.py +0 -0
  347. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WyreCouncil.py +0 -0
  348. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/WyreForestDistrictCouncil.py +0 -0
  349. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/YorkCouncil.py +0 -0
  350. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/councils/council_class_template/councilclasstemplate.py +0 -0
  351. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/create_new_council.py +0 -0
  352. {uk_bin_collection-0.152.1 → uk_bin_collection-0.152.2}/uk_bin_collection/uk_bin_collection/get_bin_data.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: uk_bin_collection
3
- Version: 0.152.1
3
+ Version: 0.152.2
4
4
  Summary: Python Lib to collect UK Bin Data
5
5
  Author: Robert Bradley
6
6
  Author-email: robbrad182@gmail.com
@@ -398,6 +398,184 @@ Open the map viewer in VS Code:
398
398
  ![Test Results Map](test_results_map.png)
399
399
 
400
400
  ---
401
+ ## ICS Calendar Generation
402
+
403
+ You can convert bin collection data to an ICS calendar file that can be imported into calendar applications like Google Calendar, Apple Calendar, Microsoft Outlook, etc.
404
+
405
+ ### Overview
406
+
407
+ The `bin_to_ics.py` script allows you to:
408
+ - Convert JSON output from bin collection data into ICS calendar events
409
+ - Group multiple bin collections on the same day into a single event
410
+ - Create all-day events (default) or timed events
411
+ - Add optional reminders/alarms to events
412
+ - Customize the calendar name
413
+
414
+ ### Requirements
415
+
416
+ - Python 3.6 or higher
417
+ - The `icalendar` package, which can be installed with:
418
+ ```bash
419
+ pip install icalendar
420
+ ```
421
+
422
+ ### Basic Usage
423
+
424
+ ```bash
425
+ # Basic usage with stdin input and default output file (bin.ics)
426
+ python bin_to_ics.py < bin_data.json
427
+
428
+ # Specify input and output files
429
+ python bin_to_ics.py -i bin_data.json -o my_calendar.ics
430
+
431
+ # Custom calendar name
432
+ python bin_to_ics.py -i bin_data.json -o my_calendar.ics -n "My Bin Collections"
433
+ ```
434
+
435
+ ### Options
436
+
437
+ ```
438
+ --input, -i Input JSON file (if not provided, read from stdin)
439
+ --output, -o Output ICS file (default: bin.ics)
440
+ --name, -n Calendar name (default: Bin Collections)
441
+ --alarms, -a Comma-separated list of alarm times before event (e.g., "1d,2h,30m")
442
+ --no-all-day Create timed events instead of all-day events
443
+ ```
444
+
445
+ ### Examples
446
+
447
+ #### Adding Reminders (Alarms)
448
+
449
+ Add reminders 1 day and 2 hours before each collection:
450
+
451
+ ```bash
452
+ python bin_to_ics.py -i bin_data.json -a "1d,2h"
453
+ ```
454
+
455
+ The time format supports:
456
+ - Days: `1d`, `2day`, `3days`
457
+ - Hours: `1h`, `2hour`, `3hours`
458
+ - Minutes: `30m`, `45min`, `60mins`, `90minutes`
459
+
460
+ #### Creating Timed Events
461
+
462
+ By default, events are created as all-day events. To create timed events instead (default time: 7:00 AM):
463
+
464
+ ```bash
465
+ python bin_to_ics.py -i bin_data.json --no-all-day
466
+ ```
467
+
468
+ ### Integration with Bin Collection Data Retriever
469
+
470
+ You can pipe the output from the bin collection data retriever directly to the ICS generator. The required parameters (postcode, house number, UPRN, etc.) depend on the specific council implementation - refer to the [Quickstart](#quickstart) section above or check the [project wiki](https://github.com/robbrad/UKBinCollectionData/wiki) for details about your council.
471
+
472
+ ```bash
473
+ python uk_bin_collection/uk_bin_collection/collect_data.py CouncilName "URL" [OPTIONS] |
474
+ python bin_to_ics.py [OPTIONS]
475
+ ```
476
+
477
+ #### Complete Example for a Council
478
+
479
+ ```bash
480
+ python uk_bin_collection/uk_bin_collection/collect_data.py CouncilName \
481
+ "council_url" \
482
+ -p "YOUR_POSTCODE" \
483
+ -n "YOUR_HOUSE_NUMBER" \
484
+ -w "http://localhost:4444/wd/hub" |
485
+ python bin_to_ics.py \
486
+ --name "My Bin Collections" \
487
+ --output my_bins.ics \
488
+ --alarms "1d,12h"
489
+ ```
490
+
491
+ This will:
492
+ 1. Fetch bin collection data for your address from your council's website
493
+ 2. Convert it to an ICS file named "my_bins.ics"
494
+ 3. Set the calendar name to "My Bin Collections"
495
+ 4. Add reminders 1 day and 12 hours before each collection
496
+
497
+ For postcode lookup and UPRN information, please check the [UPRN Finder](#uprn-finder) section above.
498
+
499
+ ### Using the Calendar
500
+
501
+ You have two options for using the generated ICS file:
502
+
503
+ #### 1. Importing the Calendar
504
+
505
+ You can directly import the ICS file into your calendar application:
506
+
507
+ - **Google Calendar**: Go to Settings > Import & export > Import
508
+ - **Apple Calendar**: File > Import
509
+ - **Microsoft Outlook**: File > Open & Export > Import/Export > Import an iCalendar (.ics)
510
+
511
+ Note: Importing creates a static copy of the calendar events. If bin collection dates change, you'll need to re-import the calendar.
512
+
513
+ #### 2. Subscribing to the Calendar
514
+
515
+ If you host the ICS file on a publicly accessible web server, you can subscribe to it as an internet calendar:
516
+
517
+ - **Google Calendar**: Go to "Other calendars" > "+" > "From URL" > Enter the URL of your hosted ICS file
518
+ - **Apple Calendar**: File > New Calendar Subscription > Enter the URL
519
+ - **Microsoft Outlook**: File > Account Settings > Internet Calendars > New > Enter the URL
520
+
521
+ Benefits of subscribing:
522
+ - Calendar automatically updates when the source file changes
523
+ - No need to manually re-import when bin collection dates change
524
+ - Easily share the calendar with household members
525
+
526
+ You can set up a cron job or scheduled task to regularly:
527
+ 1. Retrieve the latest bin collection data
528
+ 2. Generate a fresh ICS file
529
+ 3. Publish it to a web-accessible location
530
+
531
+ ### Additional Examples and Use Cases
532
+
533
+ #### Automation with Cron Jobs
534
+
535
+ Create a weekly update script on a Linux/Mac system:
536
+
537
+ ```bash
538
+ #!/bin/bash
539
+ # File: update_bin_calendar.sh
540
+
541
+ # Set variables
542
+ COUNCIL="YourCouncilName"
543
+ COUNCIL_URL="https://your-council-website.gov.uk/bins"
544
+ POSTCODE="YOUR_POSTCODE"
545
+ HOUSE_NUMBER="YOUR_HOUSE_NUMBER"
546
+ OUTPUT_DIR="/var/www/html/calendars" # Web-accessible directory
547
+ CALENDAR_NAME="Household Bins"
548
+
549
+ # Ensure output directory exists
550
+ mkdir -p $OUTPUT_DIR
551
+
552
+ # Run the collector and generate the calendar
553
+ cd /path/to/UKBinCollectionData && \
554
+ python uk_bin_collection/uk_bin_collection/collect_data.py $COUNCIL "$COUNCIL_URL" \
555
+ -p "$POSTCODE" -n "$HOUSE_NUMBER" | \
556
+ python bin_to_ics.py --name "$CALENDAR_NAME" --output "$OUTPUT_DIR/bins.ics" --alarms "1d,6h"
557
+
558
+ # Add timestamp to show last update time
559
+ echo "Calendar last updated: $(date)" > "$OUTPUT_DIR/last_update.txt"
560
+ ```
561
+
562
+ Make the script executable:
563
+ ```bash
564
+ chmod +x update_bin_calendar.sh
565
+ ```
566
+
567
+ Add to crontab to run weekly (every Monday at 2 AM):
568
+ ```bash
569
+ 0 2 * * 1 /path/to/update_bin_calendar.sh
570
+ ```
571
+
572
+ **Google Assistant/Alexa Integration**
573
+
574
+ If you have your calendar connected to Google Calendar or Outlook, you can ask your smart assistant about upcoming bin collections:
575
+
576
+ - "Hey Google, when is my next bin collection?"
577
+ - "Alexa, what's on my calendar tomorrow?" (will include bin collections)
578
+
401
579
  ## Docker API Server
402
580
  We have created an API for this located under [uk_bin_collection_api_server](https://github.com/robbrad/UKBinCollectionData/uk_bin_collection_api_server)
403
581
 
@@ -374,6 +374,184 @@ Open the map viewer in VS Code:
374
374
  ![Test Results Map](test_results_map.png)
375
375
 
376
376
  ---
377
+ ## ICS Calendar Generation
378
+
379
+ You can convert bin collection data to an ICS calendar file that can be imported into calendar applications like Google Calendar, Apple Calendar, Microsoft Outlook, etc.
380
+
381
+ ### Overview
382
+
383
+ The `bin_to_ics.py` script allows you to:
384
+ - Convert JSON output from bin collection data into ICS calendar events
385
+ - Group multiple bin collections on the same day into a single event
386
+ - Create all-day events (default) or timed events
387
+ - Add optional reminders/alarms to events
388
+ - Customize the calendar name
389
+
390
+ ### Requirements
391
+
392
+ - Python 3.6 or higher
393
+ - The `icalendar` package, which can be installed with:
394
+ ```bash
395
+ pip install icalendar
396
+ ```
397
+
398
+ ### Basic Usage
399
+
400
+ ```bash
401
+ # Basic usage with stdin input and default output file (bin.ics)
402
+ python bin_to_ics.py < bin_data.json
403
+
404
+ # Specify input and output files
405
+ python bin_to_ics.py -i bin_data.json -o my_calendar.ics
406
+
407
+ # Custom calendar name
408
+ python bin_to_ics.py -i bin_data.json -o my_calendar.ics -n "My Bin Collections"
409
+ ```
410
+
411
+ ### Options
412
+
413
+ ```
414
+ --input, -i Input JSON file (if not provided, read from stdin)
415
+ --output, -o Output ICS file (default: bin.ics)
416
+ --name, -n Calendar name (default: Bin Collections)
417
+ --alarms, -a Comma-separated list of alarm times before event (e.g., "1d,2h,30m")
418
+ --no-all-day Create timed events instead of all-day events
419
+ ```
420
+
421
+ ### Examples
422
+
423
+ #### Adding Reminders (Alarms)
424
+
425
+ Add reminders 1 day and 2 hours before each collection:
426
+
427
+ ```bash
428
+ python bin_to_ics.py -i bin_data.json -a "1d,2h"
429
+ ```
430
+
431
+ The time format supports:
432
+ - Days: `1d`, `2day`, `3days`
433
+ - Hours: `1h`, `2hour`, `3hours`
434
+ - Minutes: `30m`, `45min`, `60mins`, `90minutes`
435
+
436
+ #### Creating Timed Events
437
+
438
+ By default, events are created as all-day events. To create timed events instead (default time: 7:00 AM):
439
+
440
+ ```bash
441
+ python bin_to_ics.py -i bin_data.json --no-all-day
442
+ ```
443
+
444
+ ### Integration with Bin Collection Data Retriever
445
+
446
+ You can pipe the output from the bin collection data retriever directly to the ICS generator. The required parameters (postcode, house number, UPRN, etc.) depend on the specific council implementation - refer to the [Quickstart](#quickstart) section above or check the [project wiki](https://github.com/robbrad/UKBinCollectionData/wiki) for details about your council.
447
+
448
+ ```bash
449
+ python uk_bin_collection/uk_bin_collection/collect_data.py CouncilName "URL" [OPTIONS] |
450
+ python bin_to_ics.py [OPTIONS]
451
+ ```
452
+
453
+ #### Complete Example for a Council
454
+
455
+ ```bash
456
+ python uk_bin_collection/uk_bin_collection/collect_data.py CouncilName \
457
+ "council_url" \
458
+ -p "YOUR_POSTCODE" \
459
+ -n "YOUR_HOUSE_NUMBER" \
460
+ -w "http://localhost:4444/wd/hub" |
461
+ python bin_to_ics.py \
462
+ --name "My Bin Collections" \
463
+ --output my_bins.ics \
464
+ --alarms "1d,12h"
465
+ ```
466
+
467
+ This will:
468
+ 1. Fetch bin collection data for your address from your council's website
469
+ 2. Convert it to an ICS file named "my_bins.ics"
470
+ 3. Set the calendar name to "My Bin Collections"
471
+ 4. Add reminders 1 day and 12 hours before each collection
472
+
473
+ For postcode lookup and UPRN information, please check the [UPRN Finder](#uprn-finder) section above.
474
+
475
+ ### Using the Calendar
476
+
477
+ You have two options for using the generated ICS file:
478
+
479
+ #### 1. Importing the Calendar
480
+
481
+ You can directly import the ICS file into your calendar application:
482
+
483
+ - **Google Calendar**: Go to Settings > Import & export > Import
484
+ - **Apple Calendar**: File > Import
485
+ - **Microsoft Outlook**: File > Open & Export > Import/Export > Import an iCalendar (.ics)
486
+
487
+ Note: Importing creates a static copy of the calendar events. If bin collection dates change, you'll need to re-import the calendar.
488
+
489
+ #### 2. Subscribing to the Calendar
490
+
491
+ If you host the ICS file on a publicly accessible web server, you can subscribe to it as an internet calendar:
492
+
493
+ - **Google Calendar**: Go to "Other calendars" > "+" > "From URL" > Enter the URL of your hosted ICS file
494
+ - **Apple Calendar**: File > New Calendar Subscription > Enter the URL
495
+ - **Microsoft Outlook**: File > Account Settings > Internet Calendars > New > Enter the URL
496
+
497
+ Benefits of subscribing:
498
+ - Calendar automatically updates when the source file changes
499
+ - No need to manually re-import when bin collection dates change
500
+ - Easily share the calendar with household members
501
+
502
+ You can set up a cron job or scheduled task to regularly:
503
+ 1. Retrieve the latest bin collection data
504
+ 2. Generate a fresh ICS file
505
+ 3. Publish it to a web-accessible location
506
+
507
+ ### Additional Examples and Use Cases
508
+
509
+ #### Automation with Cron Jobs
510
+
511
+ Create a weekly update script on a Linux/Mac system:
512
+
513
+ ```bash
514
+ #!/bin/bash
515
+ # File: update_bin_calendar.sh
516
+
517
+ # Set variables
518
+ COUNCIL="YourCouncilName"
519
+ COUNCIL_URL="https://your-council-website.gov.uk/bins"
520
+ POSTCODE="YOUR_POSTCODE"
521
+ HOUSE_NUMBER="YOUR_HOUSE_NUMBER"
522
+ OUTPUT_DIR="/var/www/html/calendars" # Web-accessible directory
523
+ CALENDAR_NAME="Household Bins"
524
+
525
+ # Ensure output directory exists
526
+ mkdir -p $OUTPUT_DIR
527
+
528
+ # Run the collector and generate the calendar
529
+ cd /path/to/UKBinCollectionData && \
530
+ python uk_bin_collection/uk_bin_collection/collect_data.py $COUNCIL "$COUNCIL_URL" \
531
+ -p "$POSTCODE" -n "$HOUSE_NUMBER" | \
532
+ python bin_to_ics.py --name "$CALENDAR_NAME" --output "$OUTPUT_DIR/bins.ics" --alarms "1d,6h"
533
+
534
+ # Add timestamp to show last update time
535
+ echo "Calendar last updated: $(date)" > "$OUTPUT_DIR/last_update.txt"
536
+ ```
537
+
538
+ Make the script executable:
539
+ ```bash
540
+ chmod +x update_bin_calendar.sh
541
+ ```
542
+
543
+ Add to crontab to run weekly (every Monday at 2 AM):
544
+ ```bash
545
+ 0 2 * * 1 /path/to/update_bin_calendar.sh
546
+ ```
547
+
548
+ **Google Assistant/Alexa Integration**
549
+
550
+ If you have your calendar connected to Google Calendar or Outlook, you can ask your smart assistant about upcoming bin collections:
551
+
552
+ - "Hey Google, when is my next bin collection?"
553
+ - "Alexa, what's on my calendar tomorrow?" (will include bin collections)
554
+
377
555
  ## Docker API Server
378
556
  We have created an API for this located under [uk_bin_collection_api_server](https://github.com/robbrad/UKBinCollectionData/uk_bin_collection_api_server)
379
557
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "uk_bin_collection"
3
- version = "0.152.1"
3
+ version = "0.152.2"
4
4
  description = "Python Lib to collect UK Bin Data"
5
5
  readme = "README.md"
6
6
  authors = ["Robert Bradley <robbrad182@gmail.com>"]
@@ -9,7 +9,6 @@ from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataC
9
9
  This module provides bin collection data for Cheshire East Council.
10
10
  """
11
11
 
12
-
13
12
  class CouncilClass(AbstractGetBinDataClass):
14
13
  """
15
14
  A class to fetch and parse bin collection data for Cheshire East Council.
@@ -46,7 +46,8 @@ class CouncilClass(AbstractGetBinDataClass):
46
46
  "type": bin_type,
47
47
  "collectionDate": get_next_occurrence_from_day_month(
48
48
  datetime.strptime(
49
- c["BinCollectionDate"].replace(" (*)", "").strip()
49
+ remove_ordinal_indicator_from_date_string(
50
+ c["BinCollectionDate"].replace(" (*)", "").strip())
50
51
  + " "
51
52
  + datetime.now().strftime("%Y"),
52
53
  "%A %d %B %Y",