Skip to content

Commit

Permalink
remove duplicate code
Browse files Browse the repository at this point in the history
  • Loading branch information
Bram van Dartel authored and github-actions[bot] committed Oct 30, 2022
1 parent 9f2b686 commit 3bacc40
Show file tree
Hide file tree
Showing 11 changed files with 184 additions and 515 deletions.
45 changes: 0 additions & 45 deletions custom_components/afvalwijzer/collector/deafvalapp.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

import requests

from ..common.waste_data_transformer import WasteDataTransformer
from ..const.const import _LOGGER, SENSOR_COLLECTORS_DEAFVALAPP


Expand Down Expand Up @@ -83,47 +82,3 @@ def _get_waste_data_provider(self):
"%Y-%m-%d"
)
self.waste_data_raw.append(temp)

##########################################################################
# COMMON CODE
##########################################################################
waste_data = WasteDataTransformer(
self.waste_data_raw,
self.exclude_pickup_today,
self.exclude_list,
self.default_label,
)

self._waste_data_with_today = waste_data.waste_data_with_today
self._waste_data_without_today = waste_data.waste_data_without_today
self._waste_data_custom = waste_data.waste_data_custom
self._waste_data_provider = waste_data.waste_data_provider
self._waste_types_provider = waste_data.waste_types_provider
self._waste_types_custom = waste_data.waste_types_custom

##########################################################################
# PROPERTIES FOR EXECUTION
##########################################################################
@property
def waste_data_with_today(self):
return self._waste_data_with_today

@property
def waste_data_without_today(self):
return self._waste_data_without_today

@property
def waste_data_provider(self):
return self._waste_data_provider

@property
def waste_types_provider(self):
return self._waste_types_provider

@property
def waste_data_custom(self):
return self._waste_data_custom

@property
def waste_types_custom(self):
return self._waste_types_custom
45 changes: 0 additions & 45 deletions custom_components/afvalwijzer/collector/icalendar.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

import requests

from ..common.waste_data_transformer import WasteDataTransformer
from ..const.const import _LOGGER, SENSOR_COLLECTORS_ICALENDAR


Expand Down Expand Up @@ -80,47 +79,3 @@ def _get_waste_data_provider(self): # sourcery skip: avoid-builtin-shadow
_LOGGER.debug(
f"No date or type extracted from event: date={date}, type={type}"
)

##########################################################################
# COMMON CODE
##########################################################################
waste_data = WasteDataTransformer(
self.waste_data_raw,
self.exclude_pickup_today,
self.exclude_list,
self.default_label,
)

self._waste_data_with_today = waste_data.waste_data_with_today
self._waste_data_without_today = waste_data.waste_data_without_today
self._waste_data_custom = waste_data.waste_data_custom
self._waste_data_provider = waste_data.waste_data_provider
self._waste_types_provider = waste_data.waste_types_provider
self._waste_types_custom = waste_data.waste_types_custom

##########################################################################
# PROPERTIES FOR EXECUTION
##########################################################################
@property
def waste_data_with_today(self):
return self._waste_data_with_today

@property
def waste_data_without_today(self):
return self._waste_data_without_today

@property
def waste_data_provider(self):
return self._waste_data_provider

@property
def waste_types_provider(self):
return self._waste_types_provider

@property
def waste_data_custom(self):
return self._waste_data_custom

@property
def waste_types_custom(self):
return self._waste_types_custom
144 changes: 144 additions & 0 deletions custom_components/afvalwijzer/collector/main_collector.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
from ..common.waste_data_transformer import WasteDataTransformer
from ..const.const import (
_LOGGER,
SENSOR_COLLECTOR_TO_URL,
SENSOR_COLLECTORS_AFVALWIJZER,
SENSOR_COLLECTORS_DEAFVALAPP,
SENSOR_COLLECTORS_ICALENDAR,
SENSOR_COLLECTORS_OPZET,
SENSOR_COLLECTORS_RD4,
SENSOR_COLLECTORS_XIMMIO,
)
from .deafvalapp import DeAfvalappCollector
from .icalendar import IcalendarCollector
from .mijnafvalwijzer import MijnAfvalWijzerCollector
from .opzet import OpzetCollector
from .rd4 import Rd4Collector
from .ximmio import XimmioCollector


class MainCollector(object):
def __init__(
self,
provider,
postal_code,
street_number,
suffix,
exclude_pickup_today,
exclude_list,
default_label,
):
self.provider = provider
self.postal_code = postal_code = postal_code.strip().upper()
self.street_number = street_number
self.suffix = suffix
self.exclude_pickup_today = exclude_pickup_today
self.exclude_list = exclude_list.strip().lower()
self.default_label = default_label

try:
if provider in SENSOR_COLLECTORS_AFVALWIJZER:
collector = MijnAfvalWijzerCollector(
provider,
postal_code,
street_number,
suffix,
exclude_pickup_today,
exclude_list,
default_label,
)
elif provider in SENSOR_COLLECTORS_OPZET.keys():
collector = OpzetCollector(
provider,
postal_code,
street_number,
suffix,
exclude_pickup_today,
exclude_list,
default_label,
)
elif provider in SENSOR_COLLECTORS_XIMMIO.keys():
collector = XimmioCollector(
provider,
postal_code,
street_number,
suffix,
exclude_pickup_today,
exclude_list,
default_label,
)
elif provider in SENSOR_COLLECTORS_ICALENDAR.keys():
collector = IcalendarCollector(
provider,
postal_code,
street_number,
suffix,
exclude_pickup_today,
exclude_list,
default_label,
)
elif provider in SENSOR_COLLECTORS_DEAFVALAPP.keys():
collector = DeAfvalappCollector(
provider,
postal_code,
street_number,
suffix,
exclude_pickup_today,
exclude_list,
default_label,
)
elif provider in SENSOR_COLLECTORS_RD4.keys():
collector = Rd4Collector(
provider,
postal_code,
street_number,
suffix,
exclude_pickup_today,
exclude_list,
default_label,
)
else:
_LOGGER.error(f"Unknown provider: {provider}")
return False

except ValueError as err:
_LOGGER.error(f"Check afvalwijzer platform settings {err.args}")

waste_data_raw = collector.waste_data_raw

##########################################################################
# COMMON CODE
##########################################################################
self._waste_data = WasteDataTransformer(
waste_data_raw,
self.exclude_pickup_today,
self.exclude_list,
self.default_label,
)

##########################################################################
# PROPERTIES FOR EXECUTION
##########################################################################
@property
def waste_data_with_today(self):
return self._waste_data.waste_data_with_today

@property
def waste_data_without_today(self):
return self._waste_data.waste_data_without_today

@property
def waste_data_provider(self):
return self._waste_data.waste_data_provider

@property
def waste_types_provider(self):
return self._waste_data.waste_types_provider

@property
def waste_data_custom(self):
return self._waste_data.waste_data_custom

@property
def waste_types_custom(self):
return self._waste_data.waste_types_custom
48 changes: 0 additions & 48 deletions custom_components/afvalwijzer/collector/mijnafvalwijzer.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import requests

from ..common.waste_data_transformer import WasteDataTransformer
from ..const.const import (
_LOGGER,
SENSOR_COLLECTOR_TO_URL,
Expand Down Expand Up @@ -35,9 +34,6 @@ def __init__(
if self.provider == "rova":
self.provider = "inzamelkalender.rova"

self._get_waste_data_provider()

def _get_waste_data_provider(self):
try:
url = SENSOR_COLLECTOR_TO_URL["afvalwijzer_data_default"][0].format(
self.provider,
Expand Down Expand Up @@ -66,47 +62,3 @@ def _get_waste_data_provider(self):
)
except KeyError as exc:
raise KeyError(f"Invalid and/or no data received from {url}") from exc

##########################################################################
# COMMON CODE
##########################################################################
waste_data = WasteDataTransformer(
self.waste_data_raw,
self.exclude_pickup_today,
self.exclude_list,
self.default_label,
)

self._waste_data_with_today = waste_data.waste_data_with_today
self._waste_data_without_today = waste_data.waste_data_without_today
self._waste_data_custom = waste_data.waste_data_custom
self._waste_data_provider = waste_data.waste_data_provider
self._waste_types_provider = waste_data.waste_types_provider
self._waste_types_custom = waste_data.waste_types_custom

##########################################################################
# PROPERTIES FOR EXECUTION
##########################################################################
@property
def waste_data_with_today(self):
return self._waste_data_with_today

@property
def waste_data_without_today(self):
return self._waste_data_without_today

@property
def waste_data_provider(self):
return self._waste_data_provider

@property
def waste_types_provider(self):
return self._waste_types_provider

@property
def waste_data_custom(self):
return self._waste_data_custom

@property
def waste_types_custom(self):
return self._waste_types_custom
47 changes: 0 additions & 47 deletions custom_components/afvalwijzer/collector/opzet.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import requests

from ..common.waste_data_transformer import WasteDataTransformer
from ..const.const import _LOGGER, SENSOR_COLLECTORS_OPZET


Expand Down Expand Up @@ -127,49 +126,3 @@ def _get_waste_data_provider(self):

except ValueError as exc:
raise ValueError(f"Invalid and/or no data received from {url}") from exc

##########################################################################
# COMMON CODE
##########################################################################

waste_data = WasteDataTransformer(
self.waste_data_raw,
self.exclude_pickup_today,
self.exclude_list,
self.default_label,
)

self._waste_data_with_today = waste_data.waste_data_with_today
self._waste_data_without_today = waste_data.waste_data_without_today
self._waste_data_custom = waste_data.waste_data_custom
self._waste_data_provider = waste_data.waste_data_provider
self._waste_types_provider = waste_data.waste_types_provider
self._waste_types_custom = waste_data.waste_types_custom

##########################################################################
# PROPERTIES FOR EXECUTION
##########################################################################

@property
def waste_data_with_today(self):
return self._waste_data_with_today

@property
def waste_data_without_today(self):
return self._waste_data_without_today

@property
def waste_data_provider(self):
return self._waste_data_provider

@property
def waste_types_provider(self):
return self._waste_types_provider

@property
def waste_data_custom(self):
return self._waste_data_custom

@property
def waste_types_custom(self):
return self._waste_types_custom
Loading

0 comments on commit 3bacc40

Please sign in to comment.