* Code Cleanup (#158) * print coverage report * create sonar-project property file * install all py dependencies in one step * code cleanup * reduce cognitive complexity * do not build on *.yml changes * optimise versionstring handling (#159) - Reading the version string from the image updates it even if the image is re-pulled without re-deployment * fix linter warning * exclude *.pyi filese * ignore some rules for tests * cleanup (#160) * Sonar qube 3 (#163) fix SonarQube warnings in modbus.py * Sonar qube 3 (#164) * fix SonarQube warnings * Sonar qube 3 (#165) * cleanup * Add support for TSUN Titan inverter Fixes #161 * fix SonarQube warnings * fix error * rename field "config" * SonarQube reads flake8 output * don't stop on flake8 errors * flake8 scan only app/src for SonarQube * update flake8 run * ignore flake8 C901 * cleanup * fix linter warnings * ignore changed *.yml files * read sensor list solarman data packets * catch 'No route to' error and log only in debug mode * fix unit tests * add sensor_list configuration * adapt unit tests * fix SonarQube warnings * Sonar qube 3 (#166) * add unittests for mqtt.py * add mock * move test requirements into a file * fix unit tests * fix formating * initial version * fix SonarQube warning
15 lines
413 B
Python
15 lines
413 B
Python
from weakref import WeakValueDictionary
|
|
|
|
|
|
class Singleton(type):
|
|
_instances = WeakValueDictionary()
|
|
|
|
def __call__(cls, *args, **kwargs):
|
|
# logger_mqtt.debug('singleton: __call__')
|
|
if cls not in cls._instances:
|
|
instance = super(Singleton,
|
|
cls).__call__(*args, **kwargs)
|
|
cls._instances[cls] = instance
|
|
|
|
return cls._instances[cls]
|