uk_bin_collection 0.103.0__tar.gz → 0.105.0__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (233) hide show
  1. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/PKG-INFO +1 -1
  2. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/pyproject.toml +1 -1
  3. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/tests/input.json +66 -1
  4. uk_bin_collection-0.105.0/uk_bin_collection/uk_bin_collection/councils/AberdeenshireCouncil.py +52 -0
  5. uk_bin_collection-0.105.0/uk_bin_collection/uk_bin_collection/councils/CanterburyCityCouncil.py +54 -0
  6. uk_bin_collection-0.105.0/uk_bin_collection/uk_bin_collection/councils/CoventryCityCouncil.py +51 -0
  7. uk_bin_collection-0.105.0/uk_bin_collection/uk_bin_collection/councils/HarboroughDistrictCouncil.py +58 -0
  8. uk_bin_collection-0.105.0/uk_bin_collection/uk_bin_collection/councils/LutonBoroughCouncil.py +81 -0
  9. uk_bin_collection-0.105.0/uk_bin_collection/uk_bin_collection/councils/SwindonBoroughCouncil.py +56 -0
  10. uk_bin_collection-0.105.0/uk_bin_collection/uk_bin_collection/councils/TeignbridgeCouncil.py +59 -0
  11. uk_bin_collection-0.105.0/uk_bin_collection/uk_bin_collection/councils/WatfordBoroughCouncil.py +72 -0
  12. uk_bin_collection-0.105.0/uk_bin_collection/uk_bin_collection/councils/WestOxfordshireDistrictCouncil.py +113 -0
  13. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/LICENSE +0 -0
  14. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/README.md +0 -0
  15. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/README.rst +0 -0
  16. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/tests/council_feature_input_parity.py +0 -0
  17. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/tests/features/environment.py +0 -0
  18. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/tests/features/validate_council_outputs.feature +0 -0
  19. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/tests/output.schema +0 -0
  20. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/tests/step_defs/step_helpers/file_handler.py +0 -0
  21. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/tests/step_defs/test_validate_council.py +0 -0
  22. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/tests/test_collect_data.py +0 -0
  23. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/tests/test_common_functions.py +0 -0
  24. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/tests/test_conftest.py +0 -0
  25. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/tests/test_get_data.py +0 -0
  26. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/collect_data.py +0 -0
  27. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/common.py +0 -0
  28. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/AdurAndWorthingCouncils.py +0 -0
  29. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/ArmaghBanbridgeCraigavonCouncil.py +0 -0
  30. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/ArunCouncil.py +0 -0
  31. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/AylesburyValeCouncil.py +0 -0
  32. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/BCPCouncil.py +0 -0
  33. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/BarnetCouncil.py +0 -0
  34. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/BarnsleyMBCouncil.py +0 -0
  35. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/BasildonCouncil.py +0 -0
  36. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/BasingstokeCouncil.py +0 -0
  37. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/BathAndNorthEastSomersetCouncil.py +0 -0
  38. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/BedfordBoroughCouncil.py +0 -0
  39. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/BedfordshireCouncil.py +0 -0
  40. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/BelfastCityCouncil.py +0 -0
  41. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/BexleyCouncil.py +0 -0
  42. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/BirminghamCityCouncil.py +0 -0
  43. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/BlackburnCouncil.py +0 -0
  44. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/BoltonCouncil.py +0 -0
  45. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/BracknellForestCouncil.py +0 -0
  46. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/BradfordMDC.py +0 -0
  47. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/BrightonandHoveCityCouncil.py +0 -0
  48. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/BristolCityCouncil.py +0 -0
  49. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/BromleyBoroughCouncil.py +0 -0
  50. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/BroxtoweBoroughCouncil.py +0 -0
  51. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/BuckinghamshireCouncil.py +0 -0
  52. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/BuryCouncil.py +0 -0
  53. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/CalderdaleCouncil.py +0 -0
  54. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/CannockChaseDistrictCouncil.py +0 -0
  55. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/CardiffCouncil.py +0 -0
  56. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/CastlepointDistrictCouncil.py +0 -0
  57. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/CharnwoodBoroughCouncil.py +0 -0
  58. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/ChelmsfordCityCouncil.py +0 -0
  59. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/CheshireEastCouncil.py +0 -0
  60. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/CheshireWestAndChesterCouncil.py +0 -0
  61. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/ChichesterDistrictCouncil.py +0 -0
  62. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/ChorleyCouncil.py +0 -0
  63. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/ColchesterCityCouncil.py +0 -0
  64. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/ConwyCountyBorough.py +0 -0
  65. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/CornwallCouncil.py +0 -0
  66. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/CrawleyBoroughCouncil.py +0 -0
  67. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/CroydonCouncil.py +0 -0
  68. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/DacorumBoroughCouncil.py +0 -0
  69. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/DartfordBoroughCouncil.py +0 -0
  70. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/DerbyshireDalesDistrictCouncil.py +0 -0
  71. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/DoncasterCouncil.py +0 -0
  72. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/DorsetCouncil.py +0 -0
  73. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/DoverDistrictCouncil.py +0 -0
  74. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/DudleyCouncil.py +0 -0
  75. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/DurhamCouncil.py +0 -0
  76. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/EalingCouncil.py +0 -0
  77. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/EastCambridgeshireCouncil.py +0 -0
  78. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/EastDevonDC.py +0 -0
  79. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/EastLindseyDistrictCouncil.py +0 -0
  80. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/EastRenfrewshireCouncil.py +0 -0
  81. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/EastRidingCouncil.py +0 -0
  82. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/EastSuffolkCouncil.py +0 -0
  83. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/EastleighBoroughCouncil.py +0 -0
  84. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/ElmbridgeBoroughCouncil.py +0 -0
  85. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/EnfieldCouncil.py +0 -0
  86. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/EnvironmentFirst.py +0 -0
  87. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/EppingForestDistrictCouncil.py +0 -0
  88. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/ErewashBoroughCouncil.py +0 -0
  89. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/FalkirkCouncil.py +0 -0
  90. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/FarehamBoroughCouncil.py +0 -0
  91. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/FenlandDistrictCouncil.py +0 -0
  92. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/ForestOfDeanDistrictCouncil.py +0 -0
  93. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/GatesheadCouncil.py +0 -0
  94. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/GedlingBoroughCouncil.py +0 -0
  95. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/GlasgowCityCouncil.py +0 -0
  96. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/GloucesterCityCouncil.py +0 -0
  97. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/GuildfordCouncil.py +0 -0
  98. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/HaltonBoroughCouncil.py +0 -0
  99. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/HaringeyCouncil.py +0 -0
  100. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/HarrogateBoroughCouncil.py +0 -0
  101. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/HighPeakCouncil.py +0 -0
  102. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/HighlandCouncil.py +0 -0
  103. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/HounslowCouncil.py +0 -0
  104. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/HullCityCouncil.py +0 -0
  105. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/HuntingdonDistrictCouncil.py +0 -0
  106. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/IslingtonCouncil.py +0 -0
  107. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/KingstonUponThamesCouncil.py +0 -0
  108. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/KirkleesCouncil.py +0 -0
  109. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/KnowsleyMBCouncil.py +0 -0
  110. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/LancasterCityCouncil.py +0 -0
  111. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/LeedsCityCouncil.py +0 -0
  112. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/LichfieldDistrictCouncil.py +0 -0
  113. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/LincolnCouncil.py +0 -0
  114. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/LisburnCastlereaghCityCouncil.py +0 -0
  115. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/LiverpoolCityCouncil.py +0 -0
  116. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughEaling.py +0 -0
  117. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughHarrow.py +0 -0
  118. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughHounslow.py +0 -0
  119. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughLambeth.py +0 -0
  120. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/LondonBoroughRedbridge.py +0 -0
  121. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/MaldonDistrictCouncil.py +0 -0
  122. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/MalvernHillsDC.py +0 -0
  123. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/ManchesterCityCouncil.py +0 -0
  124. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/MansfieldDistrictCouncil.py +0 -0
  125. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/MertonCouncil.py +0 -0
  126. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/MidAndEastAntrimBoroughCouncil.py +0 -0
  127. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/MidSussexDistrictCouncil.py +0 -0
  128. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/MidlothianCouncil.py +0 -0
  129. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/MiltonKeynesCityCouncil.py +0 -0
  130. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/MoleValleyDistrictCouncil.py +0 -0
  131. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/NeathPortTalbotCouncil.py +0 -0
  132. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/NewForestCouncil.py +0 -0
  133. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/NewarkAndSherwoodDC.py +0 -0
  134. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/NewcastleCityCouncil.py +0 -0
  135. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/NewhamCouncil.py +0 -0
  136. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/NewportCityCouncil.py +0 -0
  137. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/NorthAyrshireCouncil.py +0 -0
  138. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/NorthEastDerbyshireDistrictCouncil.py +0 -0
  139. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/NorthEastLincs.py +0 -0
  140. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/NorthKestevenDistrictCouncil.py +0 -0
  141. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/NorthLanarkshireCouncil.py +0 -0
  142. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/NorthLincolnshireCouncil.py +0 -0
  143. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/NorthNorfolkDistrictCouncil.py +0 -0
  144. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/NorthNorthamptonshireCouncil.py +0 -0
  145. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/NorthSomersetCouncil.py +0 -0
  146. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/NorthTynesideCouncil.py +0 -0
  147. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/NorthWestLeicestershire.py +0 -0
  148. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/NorthYorkshire.py +0 -0
  149. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/NorthumberlandCouncil.py +0 -0
  150. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/NorwichCityCouncil.py +0 -0
  151. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/NottinghamCityCouncil.py +0 -0
  152. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/OldhamCouncil.py +0 -0
  153. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/PerthAndKinrossCouncil.py +0 -0
  154. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/PlymouthCouncil.py +0 -0
  155. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/PortsmouthCityCouncil.py +0 -0
  156. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/PrestonCityCouncil.py +0 -0
  157. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/ReadingBoroughCouncil.py +0 -0
  158. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/ReigateAndBansteadBoroughCouncil.py +0 -0
  159. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/RenfrewshireCouncil.py +0 -0
  160. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/RhonddaCynonTaffCouncil.py +0 -0
  161. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/RochdaleCouncil.py +0 -0
  162. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/RochfordCouncil.py +0 -0
  163. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/RotherhamCouncil.py +0 -0
  164. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/RugbyBoroughCouncil.py +0 -0
  165. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/RushcliffeBoroughCouncil.py +0 -0
  166. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/RushmoorCouncil.py +0 -0
  167. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/SalfordCityCouncil.py +0 -0
  168. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/SevenoaksDistrictCouncil.py +0 -0
  169. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/SheffieldCityCouncil.py +0 -0
  170. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/ShropshireCouncil.py +0 -0
  171. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/SolihullCouncil.py +0 -0
  172. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/SomersetCouncil.py +0 -0
  173. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/SouthAyrshireCouncil.py +0 -0
  174. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/SouthCambridgeshireCouncil.py +0 -0
  175. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/SouthDerbyshireDistrictCouncil.py +0 -0
  176. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/SouthGloucestershireCouncil.py +0 -0
  177. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/SouthKestevenDistrictCouncil.py +0 -0
  178. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/SouthLanarkshireCouncil.py +0 -0
  179. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/SouthNorfolkCouncil.py +0 -0
  180. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/SouthOxfordshireCouncil.py +0 -0
  181. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/SouthRibbleCouncil.py +0 -0
  182. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/SouthTynesideCouncil.py +0 -0
  183. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/SouthwarkCouncil.py +0 -0
  184. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/StAlbansCityAndDistrictCouncil.py +0 -0
  185. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/StHelensBC.py +0 -0
  186. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/StaffordBoroughCouncil.py +0 -0
  187. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/StaffordshireMoorlandsDistrictCouncil.py +0 -0
  188. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/StockportBoroughCouncil.py +0 -0
  189. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/StokeOnTrentCityCouncil.py +0 -0
  190. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/StratfordUponAvonCouncil.py +0 -0
  191. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/StroudDistrictCouncil.py +0 -0
  192. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/SunderlandCityCouncil.py +0 -0
  193. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/SwaleBoroughCouncil.py +0 -0
  194. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/SwanseaCouncil.py +0 -0
  195. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/TamesideMBCouncil.py +0 -0
  196. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/TandridgeDistrictCouncil.py +0 -0
  197. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/TelfordAndWrekinCouncil.py +0 -0
  198. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/TendringDistrictCouncil.py +0 -0
  199. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/TestValleyBoroughCouncil.py +0 -0
  200. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/ThreeRiversDistrictCouncil.py +0 -0
  201. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/TonbridgeAndMallingBC.py +0 -0
  202. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/TorbayCouncil.py +0 -0
  203. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/TorridgeDistrictCouncil.py +0 -0
  204. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/TunbridgeWellsCouncil.py +0 -0
  205. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/UttlesfordDistrictCouncil.py +0 -0
  206. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/ValeofGlamorganCouncil.py +0 -0
  207. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/ValeofWhiteHorseCouncil.py +0 -0
  208. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/WakefieldCityCouncil.py +0 -0
  209. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/WalsallCouncil.py +0 -0
  210. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/WalthamForest.py +0 -0
  211. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/WarwickDistrictCouncil.py +0 -0
  212. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/WaverleyBoroughCouncil.py +0 -0
  213. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/WealdenDistrictCouncil.py +0 -0
  214. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/WelhatCouncil.py +0 -0
  215. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/WestBerkshireCouncil.py +0 -0
  216. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/WestLindseyDistrictCouncil.py +0 -0
  217. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/WestLothianCouncil.py +0 -0
  218. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/WestMorlandAndFurness.py +0 -0
  219. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/WestNorthamptonshireCouncil.py +0 -0
  220. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/WestSuffolkCouncil.py +0 -0
  221. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/WiganBoroughCouncil.py +0 -0
  222. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/WiltshireCouncil.py +0 -0
  223. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/WinchesterCityCouncil.py +0 -0
  224. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/WindsorAndMaidenheadCouncil.py +0 -0
  225. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/WirralCouncil.py +0 -0
  226. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/WokingBoroughCouncil.py +0 -0
  227. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/WokinghamBoroughCouncil.py +0 -0
  228. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/WychavonDistrictCouncil.py +0 -0
  229. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/WyreCouncil.py +0 -0
  230. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/YorkCouncil.py +0 -0
  231. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/councils/council_class_template/councilclasstemplate.py +0 -0
  232. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.0}/uk_bin_collection/uk_bin_collection/create_new_council.py +0 -0
  233. {uk_bin_collection-0.103.0 → uk_bin_collection-0.105.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.103.0
3
+ Version: 0.105.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.103.0"
3
+ version = "0.105.0"
4
4
  description = "Python Lib to collect UK Bin Data"
5
5
  readme = "README.md"
6
6
  authors = ["Robert Bradley <robbrad182@gmail.com>"]
@@ -1,4 +1,11 @@
1
1
  {
2
+ "AberdeenshireCouncil": {
3
+ "url": "https://online.aberdeenshire.gov.uk",
4
+ "wiki_command_url_override": "https://online.aberdeenshire.gov.uk",
5
+ "uprn": "151176430",
6
+ "wiki_name": "Aberdeenshire Council",
7
+ "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN."
8
+ },
2
9
  "AdurAndWorthingCouncils": {
3
10
  "url": "https://www.adur-worthing.gov.uk/bin-day/?brlu-selected-address=100061878829",
4
11
  "wiki_command_url_override": "https://www.adur-worthing.gov.uk/bin-day/?brlu-selected-address=XXXXXXXX",
@@ -201,6 +208,13 @@
201
208
  "wiki_name": "Cannock Chase District Council",
202
209
  "wiki_note": "To get the UPRN, you can use [FindMyAddress](https://www.findmyaddress.co.uk/search)"
203
210
  },
211
+ "CanterburyCityCouncil": {
212
+ "url": "https://www.canterbury.gov.uk",
213
+ "wiki_command_url_override": "https://www.canterbury.gov.uk",
214
+ "uprn": "10094583181",
215
+ "wiki_name": "Canterbury City Council",
216
+ "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN."
217
+ },
204
218
  "CardiffCouncil": {
205
219
  "skip_get_url": true,
206
220
  "uprn": "100100112419",
@@ -285,6 +299,12 @@
285
299
  "wiki_name": "Cornwall Council",
286
300
  "wiki_note": "Use https://uprn.uk/ to find your UPRN."
287
301
  },
302
+ "CoventryCityCouncil": {
303
+ "url": "https://www.coventry.gov.uk/directory-record/56384/abberton-way-",
304
+ "wiki_command_url_override": "https://www.coventry.gov.uk/directory_record/XXXXXX/XXXXXX",
305
+ "wiki_name": "Coventry City Council",
306
+ "wiki_note": "Follow the instructions [here](https://www.coventry.gov.uk/bin-collection-calendar) until you get the page that shows the weekly collections for your address then copy the URL and replace the URL in the command."
307
+ },
288
308
  "CrawleyBoroughCouncil": {
289
309
  "house_number": "9701076",
290
310
  "skip_get_url": true,
@@ -523,6 +543,13 @@
523
543
  "wiki_name": "Halton Borough Council",
524
544
  "wiki_note": "Pass the House number and post code"
525
545
  },
546
+ "HarboroughDistrictCouncil": {
547
+ "url": "https://www.harborough.gov.uk",
548
+ "wiki_command_url_override": "https://www.harborough.gov.uk",
549
+ "uprn": "100030489072",
550
+ "wiki_name": "Harborough District Council",
551
+ "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN."
552
+ },
526
553
  "HaringeyCouncil": {
527
554
  "skip_get_url": true,
528
555
  "uprn": "100021203052",
@@ -681,6 +708,13 @@
681
708
  "wiki_name": "London Borough Redbridge",
682
709
  "wiki_note": "Follow the instructions [here](https://my.redbridge.gov.uk/RecycleRefuse) until you get the page listing your \"Address\" then copy the entire address text and use that in the house number field."
683
710
  },
711
+ "LutonBoroughCouncil": {
712
+ "url": "https://myforms.luton.gov.uk",
713
+ "wiki_command_url_override": "https://myforms.luton.gov.uk",
714
+ "uprn": "100080155778",
715
+ "wiki_name": "Luton Borough Council",
716
+ "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN."
717
+ },
684
718
  "MaldonDistrictCouncil": {
685
719
  "skip_get_url": true,
686
720
  "uprn": "100090557253",
@@ -720,7 +754,7 @@
720
754
  "wiki_note": "Pass the house name/number plus the name of the street with the postcode parameter, wrapped in double quotes. Check the address in the web site first. This version will only pick the first SHOW button returned by the search or if it is fully unique. The search is not very predictable (e.g. house number 4 returns 14,24,4,44 etc.)."
721
755
  },
722
756
  "MidlothianCouncil": {
723
- "url": "https://www.midlothian.gov.uk/directory_record/92551426/glenesk_bonnyrigg_eh19_3je",
757
+ "url": "https://www.midlothian.gov.uk/directory_record/92594377/glenesk_bonnyrigg_eh19_3je",
724
758
  "wiki_command_url_override": "https://www.midlothian.gov.uk/directory_record/XXXXXX/XXXXXX",
725
759
  "wiki_name": "Midlothian Council",
726
760
  "wiki_note": "Follow the instructions [here](https://www.midlothian.gov.uk/info/1054/bins_and_recycling/343/bin_collection_days) until you get the page that shows the weekly collections for your address then copy the URL and replace the URL in the command."
@@ -1189,6 +1223,13 @@
1189
1223
  "url": "https://www1.swansea.gov.uk/recyclingsearch/",
1190
1224
  "wiki_name": "SwanseaCouncil"
1191
1225
  },
1226
+ "SwindonBoroughCouncil": {
1227
+ "url": "https://www.swindon.gov.uk",
1228
+ "wiki_command_url_override": "https://www.swindon.gov.uk",
1229
+ "uprn": "10022793351",
1230
+ "wiki_name": "Swindon Borough Council",
1231
+ "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN."
1232
+ },
1192
1233
  "TamesideMBCouncil": {
1193
1234
  "skip_get_url": true,
1194
1235
  "uprn": "100012835362",
@@ -1201,6 +1242,14 @@
1201
1242
  "url": "https://tdcws01.tandridge.gov.uk/TDCWebAppsPublic/tfaBranded/408?utm_source=pressrelease&utm_medium=smposts&utm_campaign=check_my_bin_day",
1202
1243
  "wiki_name": "Tandridge District Council"
1203
1244
  },
1245
+ "TeignbridgeCouncil": {
1246
+ "url": "https://www.google.co.uk",
1247
+ "wiki_command_url_override": "https://www.google.co.uk",
1248
+ "uprn": "100040338776",
1249
+ "web_driver": "http://selenium:4444",
1250
+ "wiki_name": "Teignbridge Council",
1251
+ "wiki_note": "Provide Google as the URL as the real URL breaks the integration. You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN."
1252
+ },
1204
1253
  "TelfordAndWrekinCouncil": {
1205
1254
  "skip_get_url": true,
1206
1255
  "uprn": "000452015013",
@@ -1310,6 +1359,13 @@
1310
1359
  "wiki_name": "Warwick District Council",
1311
1360
  "wiki_note": "Replace XXXXXXXX with UPRN."
1312
1361
  },
1362
+ "WatfordBoroughCouncil": {
1363
+ "url": "https://www.watford.gov.uk",
1364
+ "wiki_command_url_override": "https://www.watford.gov.uk",
1365
+ "uprn": "100080942183",
1366
+ "wiki_name": "Watford Borough Council",
1367
+ "wiki_note": "You will need to use [FindMyAddress](https://www.findmyaddress.co.uk/search) to find the UPRN."
1368
+ },
1313
1369
  "WaverleyBoroughCouncil": {
1314
1370
  "house_number": "23",
1315
1371
  "postcode": "GU9 9QG",
@@ -1369,6 +1425,15 @@
1369
1425
  "url": "https://www.northampton.gov.uk/info/200084/bins-waste-and-recycling/1602/check-your-collection-day",
1370
1426
  "wiki_name": "West Northamptonshire Council"
1371
1427
  },
1428
+ "WestOxfordshireDistrictCouncil": {
1429
+ "house_number": "24",
1430
+ "postcode": "OX28 1YA",
1431
+ "skip_get_url": true,
1432
+ "url": "https://community.westoxon.gov.uk/s/waste-collection-enquiry",
1433
+ "web_driver": "http://selenium:4444",
1434
+ "wiki_name": "West Oxfordshire District Council",
1435
+ "wiki_note": "Pass the full address in the house number and postcode in"
1436
+ },
1372
1437
  "WestSuffolkCouncil": {
1373
1438
  "postcode": "IP28 6DR",
1374
1439
  "skip_get_url": true,
@@ -0,0 +1,52 @@
1
+ import requests
2
+ from bs4 import BeautifulSoup
3
+
4
+ from uk_bin_collection.uk_bin_collection.common import *
5
+ from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass
6
+
7
+
8
+ # import the wonderful Beautiful Soup and the URL grabber
9
+ class CouncilClass(AbstractGetBinDataClass):
10
+ """
11
+ Concrete classes have to implement all abstract operations of the
12
+ base class. They can also override some operations with a default
13
+ implementation.
14
+ """
15
+
16
+ def parse_data(self, page: str, **kwargs) -> dict:
17
+
18
+ user_uprn = kwargs.get("uprn")
19
+ check_uprn(user_uprn)
20
+ bindata = {"bins": []}
21
+
22
+ URI = f"https://online.aberdeenshire.gov.uk/Apps/Waste-Collections/Routes/Route/{user_uprn}"
23
+
24
+ # Make the GET request
25
+ response = requests.get(URI)
26
+
27
+ soup = BeautifulSoup(response.content, features="html.parser")
28
+ soup.prettify()
29
+
30
+ for collection in soup.find("table").find("tbody").find_all("tr"):
31
+ th = collection.find("th")
32
+ if th:
33
+ continue
34
+ td = collection.find_all("td")
35
+ collection_date = datetime.strptime(
36
+ td[0].text,
37
+ "%d/%m/%Y %A",
38
+ )
39
+ bin_type = td[1].text.split(" and ")
40
+
41
+ for bin in bin_type:
42
+ dict_data = {
43
+ "type": bin,
44
+ "collectionDate": collection_date.strftime(date_format),
45
+ }
46
+ bindata["bins"].append(dict_data)
47
+
48
+ bindata["bins"].sort(
49
+ key=lambda x: datetime.strptime(x.get("collectionDate"), "%d/%m/%Y")
50
+ )
51
+
52
+ return bindata
@@ -0,0 +1,54 @@
1
+ import time
2
+
3
+ import requests
4
+
5
+ from uk_bin_collection.uk_bin_collection.common import *
6
+ from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass
7
+
8
+
9
+ # import the wonderful Beautiful Soup and the URL grabber
10
+ class CouncilClass(AbstractGetBinDataClass):
11
+ """
12
+ Concrete classes have to implement all abstract operations of the
13
+ base class. They can also override some operations with a default
14
+ implementation.
15
+ """
16
+
17
+ def parse_data(self, page: str, **kwargs) -> dict:
18
+
19
+ user_uprn = kwargs.get("uprn")
20
+ check_uprn(user_uprn)
21
+ bindata = {"bins": []}
22
+
23
+ data = {"uprn": user_uprn, "usrn": "1"}
24
+
25
+ URI = (
26
+ "https://zbr7r13ke2.execute-api.eu-west-2.amazonaws.com/Beta/get-bin-dates"
27
+ )
28
+
29
+ # Make the GET request
30
+ response = requests.post(URI, json=data)
31
+ response.raise_for_status()
32
+
33
+ # Parse the JSON response
34
+ bin_collection = json.loads(response.json()["dates"])
35
+ collections = {
36
+ "General": bin_collection["blackBinDay"],
37
+ "Recycling": bin_collection["recyclingBinDay"],
38
+ "Food": bin_collection["foodBinDay"],
39
+ "Garden": bin_collection["gardenBinDay"],
40
+ }
41
+ # Loop through each collection in bin_collection
42
+ for collection in collections:
43
+ print(collection)
44
+
45
+ if len(collections[collection]) <= 0:
46
+ continue
47
+ for date in collections[collection]:
48
+ date = (
49
+ datetime.strptime(date, "%Y-%m-%dT%H:%M:%S").strftime("%d/%m/%Y"),
50
+ )
51
+ dict_data = {"type": collection, "collectionDate": date[0]}
52
+ bindata["bins"].append(dict_data)
53
+
54
+ return bindata
@@ -0,0 +1,51 @@
1
+ import requests
2
+ from bs4 import BeautifulSoup
3
+ from dateutil.relativedelta import relativedelta
4
+
5
+ from uk_bin_collection.uk_bin_collection.common import *
6
+ from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass
7
+
8
+
9
+ # import the wonderful Beautiful Soup and the URL grabber
10
+ class CouncilClass(AbstractGetBinDataClass):
11
+ """
12
+ Concrete classes have to implement all abstract operations of the
13
+ base class. They can also override some operations with a default
14
+ implementation.
15
+ """
16
+
17
+ def parse_data(self, page: str, **kwargs) -> dict:
18
+
19
+ bindata = {"bins": []}
20
+ curr_date = datetime.today()
21
+
22
+ soup = BeautifulSoup(page.content, features="html.parser")
23
+ button = soup.find("a", text="Find out which bin will be collected when.")
24
+
25
+ if button["href"]:
26
+ URI = button["href"]
27
+ # Make the GET request
28
+ response = requests.get(URI)
29
+ soup = BeautifulSoup(response.content, features="html.parser")
30
+ divs = soup.find_all("div", {"class": "editor"})
31
+ for div in divs:
32
+ lis = div.find_all("li")
33
+ for li in lis:
34
+ collection = li.text.split(": ")
35
+ collection_date = datetime.strptime(
36
+ collection[0],
37
+ "%A %d %B",
38
+ ).replace(year=curr_date.year)
39
+ if curr_date.month == 12 and collection_date.month == 1:
40
+ collection_date = collection_date + relativedelta(years=1)
41
+ bin_types = collection[1].split(" and ")
42
+ for bin_type in bin_types:
43
+ dict_data = {
44
+ "type": bin_type,
45
+ "collectionDate": collection_date.strftime("%d/%m/%Y"),
46
+ }
47
+ bindata["bins"].append(dict_data)
48
+ else:
49
+ print("Failed to find bin schedule")
50
+
51
+ return bindata
@@ -0,0 +1,58 @@
1
+ import requests
2
+ from bs4 import BeautifulSoup
3
+
4
+ from uk_bin_collection.uk_bin_collection.common import *
5
+ from uk_bin_collection.uk_bin_collection.get_bin_data import AbstractGetBinDataClass
6
+
7
+
8
+ # import the wonderful Beautiful Soup and the URL grabber
9
+ class CouncilClass(AbstractGetBinDataClass):
10
+ """
11
+ Concrete classes have to implement all abstract operations of the
12
+ base class. They can also override some operations with a default
13
+ implementation.
14
+ """
15
+
16
+ def parse_data(self, page: str, **kwargs) -> dict:
17
+
18
+ user_uprn = kwargs.get("uprn")
19
+ check_uprn(user_uprn)
20
+ bindata = {"bins": []}
21
+
22
+ URI = "https://harborough.fccenvironment.co.uk/detail-address"
23
+
24
+ headers = {
25
+ "Content-Type": "application/json",
26
+ "User-Agent": "Mozilla/5.0",
27
+ "Referer": "https://harborough.fccenvironment.co.uk/",
28
+ }
29
+ params = {"Uprn": user_uprn}
30
+ response = requests.post(URI, headers=headers, json=params)
31
+
32
+ soup = BeautifulSoup(response.content, features="html.parser")
33
+ bin_collection = soup.find(
34
+ "div", {"class": "blocks block-your-next-scheduled-bin-collection-days"}
35
+ )
36
+ lis = bin_collection.find_all("li")
37
+ for li in lis:
38
+ try:
39
+ split = re.match(r"(.+)\s(\d{1,2} \w+ \d{4})$", li.text)
40
+ bin_type = split.group(1).strip()
41
+ date = split.group(2)
42
+
43
+ dict_data = {
44
+ "type": bin_type,
45
+ "collectionDate": datetime.strptime(
46
+ date,
47
+ "%d %B %Y",
48
+ ).strftime("%d/%m/%Y"),
49
+ }
50
+ bindata["bins"].append(dict_data)
51
+ except:
52
+ continue
53
+
54
+ bindata["bins"].sort(
55
+ key=lambda x: datetime.strptime(x.get("collectionDate"), "%d/%m/%Y")
56
+ )
57
+
58
+ return bindata
@@ -0,0 +1,81 @@
1
+ import time
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
+ # import the wonderful Beautiful Soup and the URL grabber
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
+
20
+ user_uprn = kwargs.get("uprn")
21
+ check_uprn(user_uprn)
22
+ bindata = {"bins": []}
23
+
24
+ SESSION_URL = "https://myforms.luton.gov.uk/authapi/isauthenticated?uri=https%253A%252F%252Fmyforms.luton.gov.uk%252Fservice%252FFind_my_bin_collection_date&hostname=myforms.luton.gov.uk&withCredentials=true"
25
+
26
+ API_URL = "https://myforms.luton.gov.uk/apibroker/runLookup"
27
+
28
+ data = {
29
+ "formValues": {
30
+ "Find my bin collection date": {
31
+ "id": {
32
+ "value": f"1-{user_uprn}",
33
+ },
34
+ },
35
+ }
36
+ }
37
+
38
+ headers = {
39
+ "Content-Type": "application/json",
40
+ "Accept": "application/json",
41
+ "User-Agent": "Mozilla/5.0",
42
+ "X-Requested-With": "XMLHttpRequest",
43
+ "Referer": "https://myforms.luton.gov.uk/fillform/?iframe_id=fillform-frame-1&db_id=",
44
+ }
45
+ s = requests.session()
46
+ r = s.get(SESSION_URL)
47
+ r.raise_for_status()
48
+ session_data = r.json()
49
+ sid = session_data["auth-session"]
50
+ params = {
51
+ "id": "65cb710f8d525",
52
+ "repeat_against": "",
53
+ "noRetry": "true",
54
+ "getOnlyTokens": "undefined",
55
+ "log_id": "",
56
+ "app_name": "AF-Renderer::Self",
57
+ # unix_timestamp
58
+ "_": str(int(time.time() * 1000)),
59
+ "sid": sid,
60
+ }
61
+ r = s.post(API_URL, json=data, headers=headers, params=params)
62
+ r.raise_for_status()
63
+ data = r.json()
64
+ rows_data = data["integration"]["transformed"]["rows_data"][f"{user_uprn}"]
65
+
66
+ soup = BeautifulSoup(rows_data["html"], features="html.parser")
67
+ soup.prettify()
68
+ for collection in soup.find_all("tr"):
69
+ tds = collection.find_all("td")
70
+ bin_type = tds[1].text
71
+ collection_date = datetime.strptime(
72
+ tds[0].text,
73
+ "%A %d %b %Y",
74
+ )
75
+ dict_data = {
76
+ "type": bin_type,
77
+ "collectionDate": collection_date.strftime(date_format),
78
+ }
79
+ bindata["bins"].append(dict_data)
80
+
81
+ return bindata
@@ -0,0 +1,56 @@
1
+ import time
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
+ # import the wonderful Beautiful Soup and the URL grabber
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
+
20
+ user_uprn = kwargs.get("uprn")
21
+ check_uprn(user_uprn)
22
+ bindata = {"bins": []}
23
+
24
+ URI = f"https://www.swindon.gov.uk/info/20122/rubbish_and_recycling_collection_days?addressList={user_uprn}&uprnSubmit=Yes"
25
+
26
+ # Make the GET request
27
+ response = requests.get(URI)
28
+
29
+ # Parse the JSON response
30
+ soup = BeautifulSoup(response.text, "html.parser")
31
+
32
+ bin_collection_content = soup.find_all(
33
+ "div", {"class": "bin-collection-content"}
34
+ )
35
+ for content in bin_collection_content:
36
+ content_left = content.find("div", {"class": "content-left"})
37
+ content_right = content.find("div", {"class": "content-right"})
38
+ if content_left and content_right:
39
+
40
+ bin_types = content_left.find("h3").text.split(" and ")
41
+ for bin_type in bin_types:
42
+
43
+ collection_date = datetime.strptime(
44
+ content_right.find(
45
+ "span", {"class": "nextCollectionDate"}
46
+ ).text,
47
+ "%A, %d %B %Y",
48
+ ).strftime(date_format)
49
+
50
+ dict_data = {
51
+ "type": bin_type,
52
+ "collectionDate": collection_date,
53
+ }
54
+ bindata["bins"].append(dict_data)
55
+
56
+ return bindata
@@ -0,0 +1,59 @@
1
+ from bs4 import BeautifulSoup
2
+ from selenium.webdriver.common.by import By
3
+ from selenium.webdriver.support import expected_conditions as EC
4
+ from selenium.webdriver.support.wait import WebDriverWait
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
+ # import the wonderful Beautiful Soup and the URL grabber
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
+
20
+ user_uprn = kwargs.get("uprn")
21
+ web_driver = kwargs.get("web_driver")
22
+ headless = kwargs.get("headless")
23
+ check_uprn(user_uprn)
24
+ bindata = {"bins": []}
25
+
26
+ URI = f"https://www.teignbridge.gov.uk/repositories/hidden-pages/bin-finder?uprn={user_uprn}"
27
+
28
+ driver = create_webdriver(web_driver, headless, None, __name__)
29
+ driver.get(URI)
30
+
31
+ soup = BeautifulSoup(driver.page_source, features="html.parser")
32
+
33
+ collection_dates = soup.find_all(
34
+ "h3"
35
+ ) # Assuming bin types are inside <h3> tags
36
+ bin_type_headers = soup.find_all(
37
+ "div", {"class": "binInfoContainer"}
38
+ ) # Assuming collection dates are inside <p> tags
39
+
40
+ # Iterate over the results and extract bin type and collection dates
41
+ for i, date in enumerate(collection_dates):
42
+ collection_date = date.get_text(strip=True)
43
+
44
+ bin_types = bin_type_headers[i].find_all("div")
45
+ for bin_type in bin_types:
46
+ dict_data = {
47
+ "type": bin_type.text.strip(),
48
+ "collectionDate": datetime.strptime(
49
+ collection_date,
50
+ "%d %B %Y%A",
51
+ ).strftime("%d/%m/%Y"),
52
+ }
53
+ bindata["bins"].append(dict_data)
54
+
55
+ bindata["bins"].sort(
56
+ key=lambda x: datetime.strptime(x.get("collectionDate"), "%d/%m/%Y")
57
+ )
58
+
59
+ return bindata
@@ -0,0 +1,72 @@
1
+ import time
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
+ # import the wonderful Beautiful Soup and the URL grabber
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
+
20
+ user_uprn = kwargs.get("uprn")
21
+ check_uprn(user_uprn)
22
+ bindata = {"bins": []}
23
+
24
+ SESSION_URL = "https://watfordbc-self.achieveservice.com/authapi/isauthenticated?uri=https%253A%252F%252Fwatfordbc-self.achieveservice.com%252Fen%252Fservice%252FBin_collections%253Faccept%253Dyes%2526consentMessageIds%255B%255D%253D4&hostname=watfordbc-self.achieveservice.com&withCredentials=true"
25
+
26
+ API_URL = "https://watfordbc-self.achieveservice.com/apibroker/runLookup"
27
+
28
+ data = {
29
+ "formValues": {
30
+ "Address": {
31
+ "echoUprn": {"value": user_uprn},
32
+ },
33
+ },
34
+ }
35
+
36
+ headers = {
37
+ "Content-Type": "application/json",
38
+ "Accept": "application/json",
39
+ "User-Agent": "Mozilla/5.0",
40
+ "X-Requested-With": "XMLHttpRequest",
41
+ "Referer": "https://watfordbc-self.achieveservice.com/fillform/?iframe_id=fillform-frame-1&db_id=",
42
+ }
43
+ s = requests.session()
44
+ r = s.get(SESSION_URL)
45
+ r.raise_for_status()
46
+ session_data = r.json()
47
+ sid = session_data["auth-session"]
48
+ params = {
49
+ "id": "5e79edf15b2ec",
50
+ "repeat_against": "",
51
+ "noRetry": "true",
52
+ "getOnlyTokens": "undefined",
53
+ "log_id": "",
54
+ "app_name": "AF-Renderer::Self",
55
+ # unix_timestamp
56
+ "_": str(int(time.time() * 1000)),
57
+ "sid": sid,
58
+ }
59
+ r = s.post(API_URL, json=data, headers=headers, params=params)
60
+ r.raise_for_status()
61
+ data = r.json()
62
+ dispHTML = data["integration"]["transformed"]["rows_data"]["0"]["dispHTML"]
63
+ soup = BeautifulSoup(dispHTML, features="html.parser")
64
+
65
+ collections = soup.find_all("li")
66
+ for collection in collections:
67
+ bin_type = collection.find("h3").text
68
+ collection_date = collection.find("strong").text.strip()
69
+ dict_data = {"type": bin_type, "collectionDate": collection_date}
70
+ bindata["bins"].append(dict_data)
71
+
72
+ return bindata