Fritzhome
has 57 functions (exceeds 30 allowed). Consider refactoring.
class Fritzhome(object):
"""Fritzhome object to communicate with the device."""
_sid = None
_session = None
File fritzhome.py
has 410 lines of code (exceeds 250 allowed). Consider refactoring.
"""The main fritzhome handling class."""
from __future__ import print_function
Function list_all
has a Cognitive Complexity of 28 (exceeds 13 allowed). Consider refactoring.
def list_all(fritz, args):
"""Command that prints all device information."""
devices = fritz.get_devices()
for device in devices:
Similar blocks of code found in 2 locations. Consider refactoring.
if device.has_blind:
print(" Blind:")
print(" level=%s" % device.level)
print(" levelpercentage=%s" % device.levelpercentage)
print(" endpositionset=%s" % device.endpositionsset)
Similar blocks of code found in 2 locations. Consider refactoring.
if device.has_powermeter:
print(" Powermeter:")
print(" power=%s" % device.power)
print(" energy=%s" % device.energy)
print(" voltage=%s" % device.voltage)
File cli.py
has 265 lines of code (exceeds 250 allowed). Consider refactoring.
"""A simple CLI tool."""
from __future__ import print_function
Function main
has 74 lines of code (exceeds 45 allowed). Consider refactoring.
def main(args=None):
"""Enter the main function of the CLI tool."""
parser = argparse.ArgumentParser(description="Fritz!Box Smarthome CLI tool.")
parser.add_argument(
"-v", action="store_true", dest="verbose", help="be more verbose"
Similar blocks of code found in 2 locations. Consider refactoring.
def _update_blind_from_node(self, node):
_LOGGER.debug("update blind device")
blind_element = node.find("blind")
try:
self.endpositionsset = self.get_node_value_as_int_as_bool(
pyfritzhome/devicetypes/fritzhomedevicehumidity.py on lines 31..38 Similar blocks of code found in 2 locations. Consider refactoring.
def _update_humidity_from_node(self, node):
_LOGGER.debug("update humidity device")
humidity_element = node.find("humidity")
try:
self.rel_humidity = self.get_node_value_as_int(
pyfritzhome/devicetypes/fritzhomedeviceblind.py on lines 31..38 Similar blocks of code found in 8 locations. Consider refactoring.
def _update_from_node(self, node):
super()._update_from_node(node)
if self.present is False:
return
pyfritzhome/devicetypes/fritzhomedevicealarm.py on lines 17..23 pyfritzhome/devicetypes/fritzhomedeviceblind.py on lines 17..23 pyfritzhome/devicetypes/fritzhomedevicehumidity.py on lines 17..23 pyfritzhome/devicetypes/fritzhomedevicelevel.py on lines 18..24 pyfritzhome/devicetypes/fritzhomedeviceswitch.py on lines 19..25 pyfritzhome/devicetypes/fritzhomedevicetemperature.py on lines 18..24 pyfritzhome/devicetypes/fritzhomedevicethermostat.py on lines 34..40 Similar blocks of code found in 8 locations. Consider refactoring.
def _update_from_node(self, node):
super()._update_from_node(node)
if self.present is False:
return
pyfritzhome/devicetypes/fritzhomedevicealarm.py on lines 17..23 pyfritzhome/devicetypes/fritzhomedeviceblind.py on lines 17..23 pyfritzhome/devicetypes/fritzhomedevicehumidity.py on lines 17..23 pyfritzhome/devicetypes/fritzhomedevicelevel.py on lines 18..24 pyfritzhome/devicetypes/fritzhomedevicepowermeter.py on lines 20..26 pyfritzhome/devicetypes/fritzhomedeviceswitch.py on lines 19..25 pyfritzhome/devicetypes/fritzhomedevicetemperature.py on lines 18..24 Similar blocks of code found in 8 locations. Consider refactoring.
def _update_from_node(self, node):
super()._update_from_node(node)
if self.present is False:
return
pyfritzhome/devicetypes/fritzhomedevicealarm.py on lines 17..23 pyfritzhome/devicetypes/fritzhomedeviceblind.py on lines 17..23 pyfritzhome/devicetypes/fritzhomedevicehumidity.py on lines 17..23 pyfritzhome/devicetypes/fritzhomedevicepowermeter.py on lines 20..26 pyfritzhome/devicetypes/fritzhomedeviceswitch.py on lines 19..25 pyfritzhome/devicetypes/fritzhomedevicetemperature.py on lines 18..24 pyfritzhome/devicetypes/fritzhomedevicethermostat.py on lines 34..40 Similar blocks of code found in 8 locations. Consider refactoring.
def _update_from_node(self, node):
super()._update_from_node(node)
if self.present is False:
return
pyfritzhome/devicetypes/fritzhomedevicealarm.py on lines 17..23 pyfritzhome/devicetypes/fritzhomedeviceblind.py on lines 17..23 pyfritzhome/devicetypes/fritzhomedevicehumidity.py on lines 17..23 pyfritzhome/devicetypes/fritzhomedevicelevel.py on lines 18..24 pyfritzhome/devicetypes/fritzhomedevicepowermeter.py on lines 20..26 pyfritzhome/devicetypes/fritzhomedeviceswitch.py on lines 19..25 pyfritzhome/devicetypes/fritzhomedevicethermostat.py on lines 34..40 Similar blocks of code found in 8 locations. Consider refactoring.
def _update_from_node(self, node):
super()._update_from_node(node)
if self.present is False:
return
pyfritzhome/devicetypes/fritzhomedeviceblind.py on lines 17..23 pyfritzhome/devicetypes/fritzhomedevicehumidity.py on lines 17..23 pyfritzhome/devicetypes/fritzhomedevicelevel.py on lines 18..24 pyfritzhome/devicetypes/fritzhomedevicepowermeter.py on lines 20..26 pyfritzhome/devicetypes/fritzhomedeviceswitch.py on lines 19..25 pyfritzhome/devicetypes/fritzhomedevicetemperature.py on lines 18..24 pyfritzhome/devicetypes/fritzhomedevicethermostat.py on lines 34..40 Similar blocks of code found in 8 locations. Consider refactoring.
def _update_from_node(self, node):
super()._update_from_node(node)
if self.present is False:
return
pyfritzhome/devicetypes/fritzhomedevicealarm.py on lines 17..23 pyfritzhome/devicetypes/fritzhomedeviceblind.py on lines 17..23 pyfritzhome/devicetypes/fritzhomedevicelevel.py on lines 18..24 pyfritzhome/devicetypes/fritzhomedevicepowermeter.py on lines 20..26 pyfritzhome/devicetypes/fritzhomedeviceswitch.py on lines 19..25 pyfritzhome/devicetypes/fritzhomedevicetemperature.py on lines 18..24 pyfritzhome/devicetypes/fritzhomedevicethermostat.py on lines 34..40 Similar blocks of code found in 8 locations. Consider refactoring.
def _update_from_node(self, node):
super()._update_from_node(node)
if self.present is False:
return
pyfritzhome/devicetypes/fritzhomedevicealarm.py on lines 17..23 pyfritzhome/devicetypes/fritzhomedevicehumidity.py on lines 17..23 pyfritzhome/devicetypes/fritzhomedevicelevel.py on lines 18..24 pyfritzhome/devicetypes/fritzhomedevicepowermeter.py on lines 20..26 pyfritzhome/devicetypes/fritzhomedeviceswitch.py on lines 19..25 pyfritzhome/devicetypes/fritzhomedevicetemperature.py on lines 18..24 pyfritzhome/devicetypes/fritzhomedevicethermostat.py on lines 34..40 Similar blocks of code found in 8 locations. Consider refactoring.
def _update_from_node(self, node):
super()._update_from_node(node)
if self.present is False:
return
pyfritzhome/devicetypes/fritzhomedevicealarm.py on lines 17..23 pyfritzhome/devicetypes/fritzhomedeviceblind.py on lines 17..23 pyfritzhome/devicetypes/fritzhomedevicehumidity.py on lines 17..23 pyfritzhome/devicetypes/fritzhomedevicelevel.py on lines 18..24 pyfritzhome/devicetypes/fritzhomedevicepowermeter.py on lines 20..26 pyfritzhome/devicetypes/fritzhomedevicetemperature.py on lines 18..24 pyfritzhome/devicetypes/fritzhomedevicethermostat.py on lines 34..40 Similar blocks of code found in 2 locations. Consider refactoring.
if hkr_element.find("batterylow") is not None:
self.battery_low = self.get_node_value_as_int_as_bool(
hkr_element, "batterylow"
)
self.battery_level = int(
pyfritzhome/devicetypes/fritzhomedevicebase.py on lines 63..65 Similar blocks of code found in 2 locations. Consider refactoring.
try:
self.battery_low = self.get_node_value_as_int_as_bool(node, "batterylow")
self.battery_level = int(self.get_node_value_as_int(node, "battery"))
pyfritzhome/devicetypes/fritzhomedevicethermostat.py on lines 74..79