Mini Shell
#
# This file is part of pysmi software.
#
# Copyright (c) 2015-2019, Ilya Etingof <etingof@gmail.com>
# License: http://snmplabs.com/pysmi/license.html
#
from pysmi import error
from pysmi import debug
class AbstractBorrower(object):
genTexts = False
exts = ''
def __init__(self, reader, genTexts=False):
"""Creates an instance of *Borrower* class.
Args:
reader: a *reader* object
Keyword Args:
genText: indicates whether this borrower should be looking
for transformed MIBs that include human-oriented texts
"""
if genTexts is not None:
self.genTexts = genTexts
self._reader = reader
def __str__(self):
return '%s{%s, genTexts=%s, exts=%s}' % (self.__class__.__name__,
self._reader, self.genTexts,
self.exts)
def setOptions(self, **kwargs):
self._reader.setOptions(**kwargs)
for k in kwargs:
setattr(self, k, kwargs[k])
return self
def getData(self, mibname, **options):
if bool(options.get('genTexts')) != self.genTexts:
debug.logger & debug.flagBorrower and debug.logger(
'skipping incompatible borrower %s for file %s' % (self, mibname))
raise error.PySmiFileNotFoundError(mibname=mibname, reader=self._reader)
debug.logger & debug.flagBorrower and (
debug.logger('trying to borrow file %s from %s' % (mibname, self._reader))
)
if 'exts' not in options:
options['exts'] = self.exts
return self._reader.getData(mibname, **options)
Zerion Mini Shell 1.0