From 581c8ee0872fed0efc7abbe99afe00c8ae1cdebb Mon Sep 17 00:00:00 2001 From: Dmitri Bogomolov <4glitch@gmail.com> Date: Tue, 7 May 2019 15:25:25 +0300 Subject: [PATCH] Style fixes and pylint hint in inventory --- src/inventory.py | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/src/inventory.py b/src/inventory.py index 7432b0f1..4b9ad226 100644 --- a/src/inventory.py +++ b/src/inventory.py @@ -1,26 +1,41 @@ -from bmconfigparser import BMConfigParser -from singleton import Singleton +"""The Inventory singleton""" # TODO make this dynamic, and watch out for frozen, like with messagetypes import storage.sqlite import storage.filesystem +from bmconfigparser import BMConfigParser +from singleton import Singleton + @Singleton class Inventory(): + """ + Inventory singleton class which uses storage backends + to manage the inventory. + """ def __init__(self): - #super(self.__class__, self).__init__() self._moduleName = BMConfigParser().safeGet("inventory", "storage") - self._inventoryClass = getattr(getattr(storage, self._moduleName), "{}Inventory".format(self._moduleName.title())) + self._inventoryClass = getattr( + getattr(storage, self._moduleName), + "{}Inventory".format(self._moduleName.title()) + ) self._realInventory = self._inventoryClass() self.numberOfInventoryLookupsPerformed = 0 # cheap inheritance copied from asyncore def __getattr__(self, attr): + if attr == "__contains__": + self.numberOfInventoryLookupsPerformed += 1 try: - if attr == "__contains__": - self.numberOfInventoryLookupsPerformed += 1 realRet = getattr(self._realInventory, attr) except AttributeError: - raise AttributeError("%s instance has no attribute '%s'" %(self.__class__.__name__, attr)) + raise AttributeError( + "%s instance has no attribute '%s'" % + (self.__class__.__name__, attr) + ) else: return realRet + + # hint for pylint: this is dictionary like object + def __getitem__(self, key): + return self._realInventory[key]