uk_bin_collection 0.114.5__tar.gz → 0.115.0__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (258) hide show
  1. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/PKG-INFO +1 -1
  2. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/pyproject.toml +1 -1
  3. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/tests/input.json +36 -0
  4. uk_bin_collection-0.115.0/uk_bin_collection/uk_bin_collection/councils/AntrimAndNewtonabbeyCouncil.py +53 -0
  5. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/BradfordMDC.py +36 -6
  6. uk_bin_collection-0.115.0/uk_bin_collection/uk_bin_collection/councils/BroxbourneCouncil.py +71 -0
  7. uk_bin_collection-0.115.0/uk_bin_collection/uk_bin_collection/councils/HertsmereBoroughCouncil.py +161 -0
  8. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/NuneatonBedworthBoroughCouncil.py +1 -1
  9. uk_bin_collection-0.115.0/uk_bin_collection/uk_bin_collection/councils/WarringtonBoroughCouncil.py +50 -0
  10. uk_bin_collection-0.115.0/uk_bin_collection/uk_bin_collection/councils/WestLancashireBoroughCouncil.py +114 -0
  11. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/LICENSE +0 -0
  12. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/README.md +0 -0
  13. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/README.rst +0 -0
  14. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/tests/council_feature_input_parity.py +0 -0
  15. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/tests/features/environment.py +0 -0
  16. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/tests/features/validate_council_outputs.feature +0 -0
  17. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/tests/output.schema +0 -0
  18. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/tests/step_defs/step_helpers/file_handler.py +0 -0
  19. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/tests/step_defs/test_validate_council.py +0 -0
  20. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/tests/test_collect_data.py +0 -0
  21. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/tests/test_common_functions.py +0 -0
  22. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/tests/test_conftest.py +0 -0
  23. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/tests/test_get_data.py +0 -0
  24. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/collect_data.py +0 -0
  25. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/common.py +0 -0
  26. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/AberdeenshireCouncil.py +0 -0
  27. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/AdurAndWorthingCouncils.py +0 -0
  28. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/ArdsAndNorthDownCouncil.py +0 -0
  29. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/ArmaghBanbridgeCraigavonCouncil.py +0 -0
  30. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/ArunCouncil.py +0 -0
  31. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/AshfordBoroughCouncil.py +0 -0
  32. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/AylesburyValeCouncil.py +0 -0
  33. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/BCPCouncil.py +0 -0
  34. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/BarnetCouncil.py +0 -0
  35. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/BarnsleyMBCouncil.py +0 -0
  36. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/BasildonCouncil.py +0 -0
  37. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/BasingstokeCouncil.py +0 -0
  38. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/BathAndNorthEastSomersetCouncil.py +0 -0
  39. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/BedfordBoroughCouncil.py +0 -0
  40. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/BedfordshireCouncil.py +0 -0
  41. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/BelfastCityCouncil.py +0 -0
  42. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/BexleyCouncil.py +0 -0
  43. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/BirminghamCityCouncil.py +0 -0
  44. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/BlabyDistrictCouncil.py +0 -0
  45. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/BlackburnCouncil.py +0 -0
  46. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/BoltonCouncil.py +0 -0
  47. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/BracknellForestCouncil.py +0 -0
  48. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/BrecklandCouncil.py +0 -0
  49. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/BrightonandHoveCityCouncil.py +0 -0
  50. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/BristolCityCouncil.py +0 -0
  51. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/BromleyBoroughCouncil.py +0 -0
  52. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/BromsgroveDistrictCouncil.py +0 -0
  53. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/BroxtoweBoroughCouncil.py +0 -0
  54. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/BuckinghamshireCouncil.py +0 -0
  55. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/BuryCouncil.py +0 -0
  56. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/CalderdaleCouncil.py +0 -0
  57. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/CannockChaseDistrictCouncil.py +0 -0
  58. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/CanterburyCityCouncil.py +0 -0
  59. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/CardiffCouncil.py +0 -0
  60. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/CarmarthenshireCountyCouncil.py +0 -0
  61. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/CastlepointDistrictCouncil.py +0 -0
  62. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/CharnwoodBoroughCouncil.py +0 -0
  63. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/ChelmsfordCityCouncil.py +0 -0
  64. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/CheshireEastCouncil.py +0 -0
  65. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/CheshireWestAndChesterCouncil.py +0 -0
  66. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/ChesterfieldBoroughCouncil.py +0 -0
  67. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/ChichesterDistrictCouncil.py +0 -0
  68. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/ChorleyCouncil.py +0 -0
  69. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/ColchesterCityCouncil.py +0 -0
  70. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/ConwyCountyBorough.py +0 -0
  71. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/CornwallCouncil.py +0 -0
  72. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/CotswoldDistrictCouncil.py +0 -0
  73. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/CoventryCityCouncil.py +0 -0
  74. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/CrawleyBoroughCouncil.py +0 -0
  75. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/CroydonCouncil.py +0 -0
  76. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/DacorumBoroughCouncil.py +0 -0
  77. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/DartfordBoroughCouncil.py +0 -0
  78. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/DerbyshireDalesDistrictCouncil.py +0 -0
  79. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/DoncasterCouncil.py +0 -0
  80. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/DorsetCouncil.py +0 -0
  81. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/DoverDistrictCouncil.py +0 -0
  82. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/DudleyCouncil.py +0 -0
  83. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/DurhamCouncil.py +0 -0
  84. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/EalingCouncil.py +0 -0
  85. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/EastAyrshireCouncil.py +0 -0
  86. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/EastCambridgeshireCouncil.py +0 -0
  87. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/EastDevonDC.py +0 -0
  88. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/EastHertsCouncil.py +0 -0
  89. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/EastLindseyDistrictCouncil.py +0 -0
  90. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/EastRenfrewshireCouncil.py +0 -0
  91. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/EastRidingCouncil.py +0 -0
  92. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/EastSuffolkCouncil.py +0 -0
  93. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/EastleighBoroughCouncil.py +0 -0
  94. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/ElmbridgeBoroughCouncil.py +0 -0
  95. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/EnfieldCouncil.py +0 -0
  96. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/EnvironmentFirst.py +0 -0
  97. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/EppingForestDistrictCouncil.py +0 -0
  98. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/ErewashBoroughCouncil.py +0 -0
  99. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/FalkirkCouncil.py +0 -0
  100. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/FarehamBoroughCouncil.py +0 -0
  101. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/FenlandDistrictCouncil.py +0 -0
  102. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/FifeCouncil.py +0 -0
  103. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/FlintshireCountyCouncil.py +0 -0
  104. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/ForestOfDeanDistrictCouncil.py +0 -0
  105. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/GatesheadCouncil.py +0 -0
  106. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/GedlingBoroughCouncil.py +0 -0
  107. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/GlasgowCityCouncil.py +0 -0
  108. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/GloucesterCityCouncil.py +0 -0
  109. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/GuildfordCouncil.py +0 -0
  110. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/HaltonBoroughCouncil.py +0 -0
  111. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/HarboroughDistrictCouncil.py +0 -0
  112. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/HaringeyCouncil.py +0 -0
  113. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/HarrogateBoroughCouncil.py +0 -0
  114. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/HighPeakCouncil.py +0 -0
  115. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/HighlandCouncil.py +0 -0
  116. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/HounslowCouncil.py +0 -0
  117. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/HullCityCouncil.py +0 -0
  118. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/HuntingdonDistrictCouncil.py +0 -0
  119. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/IslingtonCouncil.py +0 -0
  120. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/KingstonUponThamesCouncil.py +0 -0
  121. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/KirkleesCouncil.py +0 -0
  122. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/KnowsleyMBCouncil.py +0 -0
  123. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/LancasterCityCouncil.py +0 -0
  124. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/LeedsCityCouncil.py +0 -0
  125. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/LichfieldDistrictCouncil.py +0 -0
  126. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/LincolnCouncil.py +0 -0
  127. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/LisburnCastlereaghCityCouncil.py +0 -0
  128. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/LiverpoolCityCouncil.py +0 -0
  129. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughEaling.py +0 -0
  130. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughHarrow.py +0 -0
  131. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughHounslow.py +0 -0
  132. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughLambeth.py +0 -0
  133. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughRedbridge.py +0 -0
  134. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughSutton.py +0 -0
  135. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/LutonBoroughCouncil.py +0 -0
  136. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/MaldonDistrictCouncil.py +0 -0
  137. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/MalvernHillsDC.py +0 -0
  138. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/ManchesterCityCouncil.py +0 -0
  139. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/MansfieldDistrictCouncil.py +0 -0
  140. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/MertonCouncil.py +0 -0
  141. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/MidAndEastAntrimBoroughCouncil.py +0 -0
  142. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/MidDevonCouncil.py +0 -0
  143. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/MidSussexDistrictCouncil.py +0 -0
  144. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/MidlothianCouncil.py +0 -0
  145. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/MiltonKeynesCityCouncil.py +0 -0
  146. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/MoleValleyDistrictCouncil.py +0 -0
  147. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/NeathPortTalbotCouncil.py +0 -0
  148. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/NewForestCouncil.py +0 -0
  149. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/NewarkAndSherwoodDC.py +0 -0
  150. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/NewcastleCityCouncil.py +0 -0
  151. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/NewhamCouncil.py +0 -0
  152. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/NewportCityCouncil.py +0 -0
  153. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/NorthAyrshireCouncil.py +0 -0
  154. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/NorthEastDerbyshireDistrictCouncil.py +0 -0
  155. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/NorthEastLincs.py +0 -0
  156. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/NorthKestevenDistrictCouncil.py +0 -0
  157. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/NorthLanarkshireCouncil.py +0 -0
  158. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/NorthLincolnshireCouncil.py +0 -0
  159. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/NorthNorfolkDistrictCouncil.py +0 -0
  160. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/NorthNorthamptonshireCouncil.py +0 -0
  161. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/NorthSomersetCouncil.py +0 -0
  162. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/NorthTynesideCouncil.py +0 -0
  163. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/NorthWestLeicestershire.py +0 -0
  164. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/NorthYorkshire.py +0 -0
  165. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/NorthumberlandCouncil.py +0 -0
  166. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/NorwichCityCouncil.py +0 -0
  167. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/NottinghamCityCouncil.py +0 -0
  168. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/OldhamCouncil.py +0 -0
  169. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/OxfordCityCouncil.py +0 -0
  170. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/PerthAndKinrossCouncil.py +0 -0
  171. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/PlymouthCouncil.py +0 -0
  172. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/PortsmouthCityCouncil.py +0 -0
  173. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/PowysCouncil.py +0 -0
  174. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/PrestonCityCouncil.py +0 -0
  175. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/ReadingBoroughCouncil.py +0 -0
  176. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/ReigateAndBansteadBoroughCouncil.py +0 -0
  177. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/RenfrewshireCouncil.py +0 -0
  178. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/RhonddaCynonTaffCouncil.py +0 -0
  179. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/RochdaleCouncil.py +0 -0
  180. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/RochfordCouncil.py +0 -0
  181. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/RotherhamCouncil.py +0 -0
  182. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/RugbyBoroughCouncil.py +0 -0
  183. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/RushcliffeBoroughCouncil.py +0 -0
  184. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/RushmoorCouncil.py +0 -0
  185. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/SalfordCityCouncil.py +0 -0
  186. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/SeftonCouncil.py +0 -0
  187. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/SevenoaksDistrictCouncil.py +0 -0
  188. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/SheffieldCityCouncil.py +0 -0
  189. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/ShropshireCouncil.py +0 -0
  190. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/SolihullCouncil.py +0 -0
  191. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/SomersetCouncil.py +0 -0
  192. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/SouthAyrshireCouncil.py +0 -0
  193. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/SouthCambridgeshireCouncil.py +0 -0
  194. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/SouthDerbyshireDistrictCouncil.py +0 -0
  195. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/SouthGloucestershireCouncil.py +0 -0
  196. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/SouthKestevenDistrictCouncil.py +0 -0
  197. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/SouthLanarkshireCouncil.py +0 -0
  198. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/SouthNorfolkCouncil.py +0 -0
  199. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/SouthOxfordshireCouncil.py +0 -0
  200. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/SouthRibbleCouncil.py +0 -0
  201. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/SouthTynesideCouncil.py +0 -0
  202. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/SouthwarkCouncil.py +0 -0
  203. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/StAlbansCityAndDistrictCouncil.py +0 -0
  204. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/StHelensBC.py +0 -0
  205. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/StaffordBoroughCouncil.py +0 -0
  206. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/StaffordshireMoorlandsDistrictCouncil.py +0 -0
  207. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/StockportBoroughCouncil.py +0 -0
  208. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/StocktonOnTeesCouncil.py +0 -0
  209. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/StokeOnTrentCityCouncil.py +0 -0
  210. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/StratfordUponAvonCouncil.py +0 -0
  211. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/StroudDistrictCouncil.py +0 -0
  212. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/SunderlandCityCouncil.py +0 -0
  213. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/SwaleBoroughCouncil.py +0 -0
  214. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/SwanseaCouncil.py +0 -0
  215. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/SwindonBoroughCouncil.py +0 -0
  216. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/TamesideMBCouncil.py +0 -0
  217. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/TandridgeDistrictCouncil.py +0 -0
  218. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/TeignbridgeCouncil.py +0 -0
  219. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/TelfordAndWrekinCouncil.py +0 -0
  220. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/TendringDistrictCouncil.py +0 -0
  221. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/TestValleyBoroughCouncil.py +0 -0
  222. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/ThreeRiversDistrictCouncil.py +0 -0
  223. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/TonbridgeAndMallingBC.py +0 -0
  224. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/TorbayCouncil.py +0 -0
  225. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/TorridgeDistrictCouncil.py +0 -0
  226. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/TunbridgeWellsCouncil.py +0 -0
  227. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/UttlesfordDistrictCouncil.py +0 -0
  228. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/ValeofGlamorganCouncil.py +0 -0
  229. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/ValeofWhiteHorseCouncil.py +0 -0
  230. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/WakefieldCityCouncil.py +0 -0
  231. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/WalsallCouncil.py +0 -0
  232. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/WalthamForest.py +0 -0
  233. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/WarwickDistrictCouncil.py +0 -0
  234. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/WatfordBoroughCouncil.py +0 -0
  235. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/WaverleyBoroughCouncil.py +0 -0
  236. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/WealdenDistrictCouncil.py +0 -0
  237. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/WelhatCouncil.py +0 -0
  238. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/WestBerkshireCouncil.py +0 -0
  239. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/WestLindseyDistrictCouncil.py +0 -0
  240. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/WestLothianCouncil.py +0 -0
  241. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/WestMorlandAndFurness.py +0 -0
  242. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/WestNorthamptonshireCouncil.py +0 -0
  243. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/WestOxfordshireDistrictCouncil.py +0 -0
  244. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/WestSuffolkCouncil.py +0 -0
  245. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/WiganBoroughCouncil.py +0 -0
  246. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/WiltshireCouncil.py +0 -0
  247. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/WinchesterCityCouncil.py +0 -0
  248. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/WindsorAndMaidenheadCouncil.py +0 -0
  249. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/WirralCouncil.py +0 -0
  250. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/WokingBoroughCouncil.py +0 -0
  251. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/WokinghamBoroughCouncil.py +0 -0
  252. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/WorcesterCityCouncil.py +0 -0
  253. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/WychavonDistrictCouncil.py +0 -0
  254. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/WyreCouncil.py +0 -0
  255. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/YorkCouncil.py +0 -0
  256. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/councils/council_class_template/councilclasstemplate.py +0 -0
  257. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/uk_bin_collection/uk_bin_collection/create_new_council.py +0 -0
  258. {uk_bin_collection-0.114.5 → uk_bin_collection-0.115.0}/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.114.5
3
+ Version: 0.115.0
4
4
  Summary: Python Lib to collect UK Bin Data
5
5
  Author: Robert Bradley
6
6
  Author-email: robbrad182@gmail.com
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "uk_bin_collection"
3
- version = "0.114.5"
3
+ version = "0.115.0"
4
4
  description = "Python Lib to collect UK Bin Data"
5
5
  readme = "README.md"
6
6
  authors = ["Robert Bradley <robbrad182@gmail.com>"]
@@ -12,6 +12,12 @@
12
12
  "wiki_name": "Adur and Worthing Councils",
13
13
  "wiki_note": "Replace XXXXXXXX with your UPRN. You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find it."
14
14
  },
15
+ "AntrimAndNewtonabbeyCouncil": {
16
+ "url": "https://antrimandnewtownabbey.gov.uk/residents/bins-recycling/bins-schedule/?Id=643",
17
+ "wiki_command_url_override": "https://antrimandnewtownabbey.gov.uk/residents/bins-recycling/bins-schedule/?Id=XXXX",
18
+ "wiki_name": "Antrim & Newtonabbey Council",
19
+ "wiki_note": "Navigate to [https://antrimandnewtownabbey.gov.uk/residents/bins-recycling/bins-schedule] and search for your street name. Use the URL with the ID to replace XXXXXXXX with your specific ID."
20
+ },
15
21
  "ArdsAndNorthDownCouncil": {
16
22
  "url": "https://www.ardsandnorthdown.gov.uk",
17
23
  "wiki_command_url_override": "https://www.ardsandnorthdown.gov.uk",
@@ -230,6 +236,13 @@
230
236
  "wiki_name": "Bromsgrove District Council",
231
237
  "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN."
232
238
  },
239
+ "BroxbourneCouncil": {
240
+ "url": "https://www.broxbourne.gov.uk",
241
+ "uprn": "148048608",
242
+ "postcode": "EN8 7FL",
243
+ "wiki_name": "Broxbourne Council",
244
+ "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN."
245
+ },
233
246
  "BroxtoweBoroughCouncil": {
234
247
  "postcode": "NG16 2LY",
235
248
  "skip_get_url": true,
@@ -736,6 +749,15 @@
736
749
  "wiki_name": "Harrogate Borough Council",
737
750
  "wiki_note": "Pass the UPRN, which can be found at [this site](https://secure.harrogate.gov.uk/inmyarea). URL doesn't need to be passed."
738
751
  },
752
+ "HertsmereBoroughCouncil": {
753
+ "house_number": "1",
754
+ "postcode": "WD7 9HZ",
755
+ "skip_get_url": true,
756
+ "url": "https://www.hertsmere.gov.uk",
757
+ "web_driver": "http://selenium:4444",
758
+ "wiki_name": "Hertsmere Borough Council",
759
+ "wiki_note": "Provide your house number in the `house_number` parameter and postcode in the `postcode` parameter."
760
+ },
739
761
  "HighlandCouncil": {
740
762
  "url": "https://www.highland.gov.uk",
741
763
  "wiki_command_url_override": "https://www.highland.gov.uk",
@@ -1664,6 +1686,13 @@
1664
1686
  "wiki_name": "Waltham Forest",
1665
1687
  "wiki_note": "Use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find your UPRN."
1666
1688
  },
1689
+ "WarringtonBoroughCouncil": {
1690
+ "url": "https://www.warrington.gov.uk",
1691
+ "wiki_command_url_override": "https://www.warrington.gov.uk",
1692
+ "uprn": "10094964379",
1693
+ "wiki_name": "Warrington Borough Council",
1694
+ "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN."
1695
+ },
1667
1696
  "WarwickDistrictCouncil": {
1668
1697
  "url": "https://estates7.warwickdc.gov.uk/PropertyPortal/Property/Recycling/100070263793",
1669
1698
  "wiki_command_url_override": "https://estates7.warwickdc.gov.uk/PropertyPortal/Property/Recycling/XXXXXXXX",
@@ -1715,6 +1744,13 @@
1715
1744
  "wiki_name": "West Berkshire Council",
1716
1745
  "wiki_note": "Provide your house number in the `house_number` parameter and postcode in the `postcode` parameter."
1717
1746
  },
1747
+ "WestLancashireBoroughCouncil": {
1748
+ "url": "https://www.westlancs.gov.uk",
1749
+ "uprn": "10012343339",
1750
+ "postcode": "WN8 0HR",
1751
+ "wiki_name": "West Lancashire Borough Council",
1752
+ "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN."
1753
+ },
1718
1754
  "WestLindseyDistrictCouncil": {
1719
1755
  "house_number": "PRIVATE ACCOMMODATION",
1720
1756
  "postcode": "LN8 2AR",
@@ -0,0 +1,53 @@
1
+ from bs4 import BeautifulSoup
2
+
3
+ from uk_bin_collection.uk_bin_collection.common import *
4
+ from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass
5
+
6
+
7
+ # import the wonderful Beautiful Soup and the URL grabber
8
+ class CouncilClass(AbstractGetBinDataClass):
9
+ """
10
+ Concrete classes have to implement all abstract operations of the
11
+ base class. They can also override some operations with a default
12
+ implementation.
13
+ """
14
+
15
+ def parse_data(self, page: str, **kwargs) -> dict:
16
+
17
+ bindata = {"bins": []}
18
+
19
+ soup = BeautifulSoup(page.content, "html.parser")
20
+ soup.prettify
21
+
22
+ collection_divs = soup.select("div.feature-box.bins")
23
+ if not collection_divs:
24
+ raise Exception("No collections found")
25
+
26
+ for collection_div in collection_divs:
27
+ date_p = collection_div.select_one("p.date")
28
+ if not date_p:
29
+ continue
30
+
31
+ # Thu 22 Aug, 2024
32
+ date_ = datetime.strptime(date_p.text.strip(), "%a %d %b, %Y").strftime(
33
+ "%d/%m/%Y"
34
+ )
35
+ bins = collection_div.select("li")
36
+ if not bins:
37
+ continue
38
+ for bin in bins:
39
+ if not bin.text.strip():
40
+ continue
41
+ bin_type = bin.text.strip()
42
+
43
+ dict_data = {
44
+ "type": bin_type,
45
+ "collectionDate": date_,
46
+ }
47
+ bindata["bins"].append(dict_data)
48
+
49
+ bindata["bins"].sort(
50
+ key=lambda x: datetime.strptime(x.get("collectionDate"), "%d/%m/%Y")
51
+ )
52
+
53
+ return bindata
@@ -1,3 +1,5 @@
1
+ import re
2
+
1
3
  import requests
2
4
  from bs4 import BeautifulSoup
3
5
 
@@ -89,12 +91,40 @@ class CouncilClass(AbstractGetBinDataClass):
89
91
  )
90
92
  ).strftime(date_format)
91
93
 
92
- # Build data dict for each entry
93
- dict_data = {
94
- "type": bin_type,
95
- "collectionDate": bin_date,
96
- }
97
- data["bins"].append(dict_data)
94
+ # Build data dict for each entry
95
+ dict_data = {
96
+ "type": bin_type,
97
+ "collectionDate": bin_date,
98
+ }
99
+ data["bins"].append(dict_data)
100
+
101
+ for bin in soup.find_all(attrs={"id": re.compile(r"CTID-D0TUYGxO-\d+-A")}):
102
+ dict_data = {
103
+ "type": "General Waste",
104
+ "collectionDate": datetime.strptime(
105
+ bin.text.strip(),
106
+ "%a %b %d %Y",
107
+ ).strftime(date_format),
108
+ }
109
+ data["bins"].append(dict_data)
110
+ for bin in soup.find_all(attrs={"id": re.compile(r"CTID-d3gapLk-\d+-A")}):
111
+ dict_data = {
112
+ "type": "Recycling Waste",
113
+ "collectionDate": datetime.strptime(
114
+ bin.text.strip(),
115
+ "%a %b %d %Y",
116
+ ).strftime(date_format),
117
+ }
118
+ data["bins"].append(dict_data)
119
+ for bin in soup.find_all(attrs={"id": re.compile(r"CTID-L8OidMPA-\d+-A")}):
120
+ dict_data = {
121
+ "type": "Garden Waste (Subscription Only)",
122
+ "collectionDate": datetime.strptime(
123
+ bin.text.strip(),
124
+ "%a %b %d %Y",
125
+ ).strftime(date_format),
126
+ }
127
+ data["bins"].append(dict_data)
98
128
 
99
129
  data["bins"].sort(
100
130
  key=lambda x: datetime.strptime(x.get("collectionDate"), date_format)
@@ -0,0 +1,71 @@
1
+ from datetime import datetime
2
+
3
+ import requests
4
+ from bs4 import BeautifulSoup
5
+
6
+ from uk_bin_collection.uk_bin_collection.common import *
7
+ from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass
8
+
9
+
10
+ class CouncilClass(AbstractGetBinDataClass):
11
+ """
12
+ Concrete classes have to implement all abstract operations of the
13
+ base class. They can also override some operations with a default
14
+ implementation.
15
+ """
16
+
17
+ def parse_data(self, page: str, **kwargs) -> dict:
18
+ user_uprn = kwargs.get("uprn")
19
+ user_postcode = kwargs.get("postcode")
20
+ check_uprn(user_uprn)
21
+ check_postcode(user_postcode)
22
+ bindata = {"bins": []}
23
+
24
+ API_URL = "https://www.broxbourne.gov.uk/xfp/form/205"
25
+
26
+ post_data = {
27
+ "page": "490",
28
+ "locale": "en_GB",
29
+ "qacf7e570cf99fae4cb3a2e14d5a75fd0d6561058_0_0": user_postcode,
30
+ "qacf7e570cf99fae4cb3a2e14d5a75fd0d6561058_1_0": user_uprn,
31
+ "next": "Next",
32
+ }
33
+
34
+ r = requests.post(API_URL, data=post_data)
35
+ r.raise_for_status()
36
+
37
+ soup = BeautifulSoup(r.content, features="html.parser")
38
+ soup.prettify()
39
+
40
+ form__instructions = soup.find(attrs={"class": "form__instructions"})
41
+ table = form__instructions.find("table")
42
+
43
+ rows = table.find_all("tr")
44
+
45
+ current_year = datetime.now().year
46
+
47
+ # Process each row into a list of dictionaries
48
+ for row in rows[1:]: # Skip the header row
49
+ columns = row.find_all("td")
50
+ collection_date = (
51
+ columns[0].get_text(separator=" ").replace("\xa0", " ").strip()
52
+ )
53
+ service = columns[1].get_text(separator=" ").replace("\xa0", " ").strip()
54
+
55
+ collection_date = datetime.strptime(collection_date, "%a %d %b")
56
+
57
+ if collection_date.month == 1:
58
+ collection_date = collection_date.replace(year=current_year + 1)
59
+ else:
60
+ collection_date = collection_date.replace(year=current_year)
61
+
62
+ dict_data = {
63
+ "type": service,
64
+ "collectionDate": (collection_date).strftime(date_format),
65
+ }
66
+ bindata["bins"].append(dict_data)
67
+
68
+ bindata["bins"].sort(
69
+ key=lambda x: datetime.strptime(x.get("collectionDate"), "%d/%m/%Y")
70
+ )
71
+ return bindata
@@ -0,0 +1,161 @@
1
+ import re
2
+ import time
3
+
4
+ import requests
5
+ from bs4 import BeautifulSoup
6
+ from selenium.webdriver.common.by import By
7
+ from selenium.webdriver.support import expected_conditions as EC
8
+ from selenium.webdriver.support.ui import Select
9
+ from selenium.webdriver.support.wait import WebDriverWait
10
+
11
+ from uk_bin_collection.uk_bin_collection.common import *
12
+ from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass
13
+
14
+
15
+ # import the wonderful Beautiful Soup and the URL grabber
16
+ class CouncilClass(AbstractGetBinDataClass):
17
+ """
18
+ Concrete classes have to implement all abstract operations of the
19
+ base class. They can also override some operations with a default
20
+ implementation.
21
+ """
22
+
23
+ def parse_data(self, page: str, **kwargs) -> dict:
24
+
25
+ user_paon = kwargs.get("paon")
26
+ user_postcode = kwargs.get("postcode")
27
+ web_driver = kwargs.get("web_driver")
28
+ headless = kwargs.get("headless")
29
+ check_paon(user_paon)
30
+ check_postcode(user_postcode)
31
+ bindata = {"bins": []}
32
+
33
+ URI_1 = "https://www.hertsmere.gov.uk/Environment-Refuse-and-Recycling/Recycling--Waste/Bin-collections/Collections-and-calendar.aspx"
34
+ URI_2 = "https://hertsmere-services.onmats.com/w/webpage/round-search"
35
+
36
+ # Create Selenium webdriver
37
+ driver = create_webdriver(web_driver, headless, None, __name__)
38
+ driver.get(URI_1)
39
+
40
+ soup = BeautifulSoup(driver.page_source, "html.parser")
41
+
42
+ current_week = (soup.find("li", class_="current")).text.strip()
43
+
44
+ strong = soup.find_all("strong", text=re.compile(r"^Week"))
45
+
46
+ bin_weeks = []
47
+ for tag in strong:
48
+ parent = tag.parent
49
+ bin_type = (
50
+ (parent.text).split("-")[1].strip().replace("\xa0", " ").split(" and ")
51
+ )
52
+ for bin in bin_type:
53
+ dict_data = {
54
+ "week": tag.text.replace("\xa0", " "),
55
+ "bin_type": bin,
56
+ }
57
+ bin_weeks.append(dict_data)
58
+
59
+ driver.get(URI_2)
60
+
61
+ # Wait for the postcode field to appear then populate it
62
+ inputElement_postcode = WebDriverWait(driver, 30).until(
63
+ EC.presence_of_element_located(
64
+ (
65
+ By.CLASS_NAME,
66
+ "relation_path_type_ahead_search",
67
+ )
68
+ )
69
+ )
70
+ inputElement_postcode.send_keys(user_postcode)
71
+
72
+ WebDriverWait(driver, 10).until(
73
+ EC.element_to_be_clickable(
74
+ (
75
+ By.XPATH,
76
+ f"//ul[@class='result_list']/li[starts-with(@aria-label, '{user_paon}')]",
77
+ )
78
+ )
79
+ ).click()
80
+
81
+ WebDriverWait(driver, timeout=10).until(
82
+ EC.element_to_be_clickable(
83
+ (
84
+ By.CSS_SELECTOR,
85
+ "input.fragment_presenter_template_edit.btn.bg-primary.btn-medium[type='submit']",
86
+ )
87
+ )
88
+ ).click()
89
+
90
+ WebDriverWait(driver, timeout=10).until(
91
+ EC.presence_of_element_located(
92
+ (By.XPATH, "//h3[contains(text(), 'Collection days')]")
93
+ )
94
+ )
95
+
96
+ soup = BeautifulSoup(driver.page_source, "html.parser")
97
+
98
+ table = soup.find("table", class_="table listing table-striped")
99
+
100
+ # Check if the table was found
101
+ if table:
102
+ # Extract table rows and cells
103
+ table_data = []
104
+ for row in table.find("tbody").find_all("tr"):
105
+ # Extract cell data from each <td> tag
106
+ row_data = [cell.get_text(strip=True) for cell in row.find_all("td")]
107
+ table_data.append(row_data)
108
+
109
+ else:
110
+ print("Table not found.")
111
+
112
+ collection_day = (table_data[0])[1]
113
+
114
+ current_week_bins = [bin for bin in bin_weeks if bin["week"] == current_week]
115
+ next_week_bins = [bin for bin in bin_weeks if bin["week"] != current_week]
116
+
117
+ days_of_week = [
118
+ "Monday",
119
+ "Tuesday",
120
+ "Wednesday",
121
+ "Thursday",
122
+ "Friday",
123
+ "Saturday",
124
+ "Sunday",
125
+ ]
126
+
127
+ today = datetime.now()
128
+ today_idx = today.weekday() # Monday is 0 and Sunday is 6
129
+ target_idx = days_of_week.index(collection_day)
130
+
131
+ days_until_target = (target_idx - today_idx) % 7
132
+ if days_until_target == 0:
133
+ next_day = today
134
+ else:
135
+ next_day = today + timedelta(days=days_until_target)
136
+
137
+ current_week_dates = get_dates_every_x_days(next_day, 14, 7)
138
+ next_week_date = next_day + timedelta(days=7)
139
+ next_week_dates = get_dates_every_x_days(next_week_date, 14, 7)
140
+
141
+ for date in current_week_dates:
142
+ for bin in current_week_bins:
143
+ dict_data = {
144
+ "type": bin["bin_type"],
145
+ "collectionDate": date,
146
+ }
147
+ bindata["bins"].append(dict_data)
148
+
149
+ for date in next_week_dates:
150
+ for bin in next_week_bins:
151
+ dict_data = {
152
+ "type": bin["bin_type"],
153
+ "collectionDate": date,
154
+ }
155
+ bindata["bins"].append(dict_data)
156
+
157
+ bindata["bins"].sort(
158
+ key=lambda x: datetime.strptime(x.get("collectionDate"), "%d/%m/%Y")
159
+ )
160
+
161
+ return bindata
@@ -36,7 +36,7 @@ class CouncilClass(AbstractGetBinDataClass):
36
36
  for date in v:
37
37
  dict_data = {
38
38
  "type": k,
39
- "collectionDate": date
39
+ "collectionDate": datetime.strptime(date, "%Y-%m-%d").strftime(date_format)
40
40
  }
41
41
  data["bins"].append(dict_data)
42
42
 
@@ -0,0 +1,50 @@
1
+ import requests
2
+
3
+ from uk_bin_collection.uk_bin_collection.common import *
4
+ from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass
5
+
6
+
7
+ # import the wonderful Beautiful Soup and the URL grabber
8
+ class CouncilClass(AbstractGetBinDataClass):
9
+ """
10
+ Concrete classes have to implement all abstract operations of the
11
+ base class. They can also override some operations with a default
12
+ implementation.
13
+ """
14
+
15
+ def parse_data(self, page: str, **kwargs) -> dict:
16
+
17
+ user_uprn = kwargs.get("uprn")
18
+ check_uprn(user_uprn)
19
+ bindata = {"bins": []}
20
+
21
+ URI = f"https://www.warrington.gov.uk/bin-collections/get-jobs/{user_uprn}"
22
+
23
+ # Make the GET request
24
+ response = requests.get(URI)
25
+
26
+ # Parse the JSON response
27
+ bin_collection = response.json()
28
+
29
+ # Loop through each collection in bin_collection
30
+ for collection in bin_collection["schedule"]:
31
+ bin_type = collection["Name"]
32
+ collection_dates = collection["ScheduledStart"]
33
+
34
+ print(f"Bin Type: {bin_type}")
35
+ print(f"Collection Date: {collection_dates}")
36
+
37
+ dict_data = {
38
+ "type": bin_type,
39
+ "collectionDate": datetime.strptime(
40
+ collection_dates,
41
+ "%Y-%m-%dT%H:%M:%S",
42
+ ).strftime(date_format),
43
+ }
44
+ bindata["bins"].append(dict_data)
45
+
46
+ bindata["bins"].sort(
47
+ key=lambda x: datetime.strptime(x.get("collectionDate"), "%d/%m/%Y")
48
+ )
49
+
50
+ return bindata
@@ -0,0 +1,114 @@
1
+ import re
2
+ from datetime import datetime
3
+
4
+ import requests
5
+ from bs4 import BeautifulSoup
6
+
7
+ from uk_bin_collection.uk_bin_collection.common import *
8
+ from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass
9
+
10
+
11
+ class CouncilClass(AbstractGetBinDataClass):
12
+ """
13
+ Concrete classes have to implement all abstract operations of the
14
+ base class. They can also override some operations with a default
15
+ implementation.
16
+ """
17
+
18
+ def parse_data(self, page: str, **kwargs) -> dict:
19
+ user_uprn = kwargs.get("uprn")
20
+ user_postcode = kwargs.get("postcode")
21
+ check_uprn(user_uprn)
22
+ check_postcode(user_postcode)
23
+ bindata = {"bins": []}
24
+
25
+ user_postcode = user_postcode.replace(" ", "+")
26
+
27
+ API_URL = (
28
+ f"https://your.westlancs.gov.uk/yourwestlancs.aspx?address={user_postcode}"
29
+ )
30
+
31
+ session = requests.Session()
32
+ response = session.get(API_URL)
33
+ soup = BeautifulSoup(response.content, "html.parser")
34
+
35
+ soup = BeautifulSoup(response.content, features="html.parser")
36
+ soup.prettify()
37
+
38
+ pattern = r"SELECT\$\d+"
39
+
40
+ # Loop through each row to find the one with the target UPRN
41
+ for row in soup.find("table", class_="striped-table").find_all("tr"):
42
+ cells = row.find_all("td")
43
+ if len(cells) > 2 and cells[2].get_text(strip=True) == user_uprn:
44
+ link = row.find("a", href=True)
45
+ if link:
46
+ match = re.search(pattern, link["href"])
47
+
48
+ # Extract important form data like __VIEWSTATE and __EVENTVALIDATION
49
+ viewstate = soup.find("input", {"name": "__VIEWSTATE"})["value"]
50
+ eventvalidation = soup.find("input", {"name": "__EVENTVALIDATION"})[
51
+ "value"
52
+ ]
53
+
54
+ # Parameters for the "click" - usually __EVENTTARGET and __EVENTARGUMENT
55
+ post_data = {
56
+ "__VIEWSTATE": viewstate,
57
+ "__EVENTVALIDATION": eventvalidation,
58
+ "__EVENTTARGET": "ctl00$MainContent$GridView1",
59
+ "__EVENTARGUMENT": match.group(
60
+ 0
61
+ ), # Modify as needed for the specific link
62
+ }
63
+
64
+ post_response = session.post(API_URL, data=post_data)
65
+
66
+ soup = BeautifulSoup(post_response.text, features="html.parser")
67
+ StreetSceneTable = soup.find("table", {"id": "StreetSceneTable"})
68
+
69
+ if StreetSceneTable:
70
+
71
+ # Extract each collection date or information by locating the span elements
72
+ refuse_collection = soup.find(
73
+ "span", id="ctl00_MainContent_lbNextDomRoundZones"
74
+ ).text.strip()
75
+ recycling_collection = soup.find(
76
+ "span", id="ctl00_MainContent_lbNextRecRoundZones"
77
+ ).text.strip()
78
+ garden_waste_collection = soup.find(
79
+ "span", id="ctl00_MainContent_lbNextGardenRoundZones"
80
+ ).text.strip()
81
+
82
+ # Structure the extracted data in a dictionary
83
+ bin_schedule = [
84
+ {
85
+ "Service": "Refuse Collection",
86
+ "Date": refuse_collection,
87
+ },
88
+ {
89
+ "Service": "Recycling Collection",
90
+ "Date": recycling_collection,
91
+ },
92
+ {
93
+ "Service": "Garden Waste Collection",
94
+ "Date": garden_waste_collection,
95
+ },
96
+ ]
97
+
98
+ if bin_schedule:
99
+ for service in bin_schedule:
100
+ if service["Date"] != "Not subscribed":
101
+ dict_data = {
102
+ "type": service["Service"],
103
+ "collectionDate": service["Date"],
104
+ }
105
+ bindata["bins"].append(dict_data)
106
+
107
+ else:
108
+ print("No link found in the row with the target UPRN.")
109
+ break
110
+
111
+ bindata["bins"].sort(
112
+ key=lambda x: datetime.strptime(x.get("collectionDate"), "%d/%m/%Y")
113
+ )
114
+ return bindata