fileWriter = FileWriter(dstDirectory).setOptions(suffix='.json') elif dstFormat == 'null': if not mibStubs: mibStubs = NullCodeGen.baseMibs if not mibBorrowers: mibBorrowers = [('http://mibs.snmplabs.com/null/notexts/@mib@', False), ('http://mibs.snmplabs.com/null/fulltexts/@mib@', True)] if not dstDirectory: dstDirectory = '' # Compiler infrastructure codeGenerator = NullCodeGen() searchers = [StubSearcher(*mibStubs)] borrowers = [AnyFileBorrower(x[1], genTexts=mibBorrowers[x[0]][1]) for x in enumerate(getReadersFromUrls(*[m[0] for m in mibBorrowers], **dict(lowcaseMatching=False)))] fileWriter = CallbackWriter(lambda *x: None) else: sys.stderr.write('ERROR: unknown destination format: %s\r\n%s\r\n' % (dstFormat, helpMessage)) sys.exit(EX_USAGE) if verboseFlag: sys.stderr.write("""Source MIB repositories: %s Borrow missing/failed MIBs from: %s
from pysmi.borrower import PyFileBorrower from pysmi.writer import PyFileWriter from pysmi.parser import NullParser from pysmi.codegen import NullCodeGen from pysmi.compiler import MibCompiler # from pysmi import debug # debug.setLogger(debug.Debug('compiler')) inputMibs = ['BORROWED-MIB'] httpBorrowers = [('mibs.snmplabs.com', 80, '/pysnmp/notexts/@mib@')] dstDirectory = '.pysnmp-mibs' # Initialize compiler infrastructure mibCompiler = MibCompiler(NullParser(), NullCodeGen(), PyFileWriter(dstDirectory)) # check compiled/borrowed MIBs in our own productions mibCompiler.addSearchers(PyFileSearcher(dstDirectory)) # search for precompiled MIBs at Web sites mibCompiler.addBorrowers( *[PyFileBorrower(HttpReader(*x)) for x in httpBorrowers]) # run MIB compilation results = mibCompiler.compile(*inputMibs) print('Results: %s' % ', '.join(['%s:%s' % (x, results[x]) for x in results]))