def parse_args(self): parser = ArgumentParser() parser.add_argument('base_path') parser.add_argument('-d', '--debug', action='store_true', default=False) parser.add_argument('-p', '--progress', action='store_true', default=False) parser.add_argument('-c', '--collection', action='append') parser.add_argument('-f', '--format', action='append') parser.add_argument('-s', '--source', action='append', required=True) # Discover installed plugins PluginManager.discover() # Add arguments from updater sources for _, source in PluginManager.list_ordered('database-updater'): for argument in source.__parameters__: if 'name' not in argument: log.warn('Invalid source argument: %r', argument) continue parser.add_argument( '--%s-%s' % (source.__key__, argument['name']), **argument.get('kwargs', {})) # Parse command line arguments return parser.parse_args()
def __init__(self, sources, collections=None, formats=None): self.collections = collections # Discover installed plugins PluginManager.discover() # Retrieve formats self.formats = dict( self._load_plugins('format', formats or DEFAULT_FORMATS)) # Retrieve sources self.sources = dict( self._load_plugins('database-updater', sources, construct=False))
def __init__(self, sources, collections=None, formats=None): self.collections = collections # Discover installed plugins PluginManager.discover() # Retrieve formats self.formats = dict(self._load_plugins( 'format', formats or DEFAULT_FORMATS )) # Retrieve sources self.sources = dict(self._load_plugins( 'database-updater', sources, construct=False ))
def parse_args(self): parser = ArgumentParser() parser.add_argument('base_path') parser.add_argument('-d', '--debug', action='store_true', default=False) parser.add_argument('-p', '--progress', action='store_true', default=False) parser.add_argument('-c', '--collection', action='append') parser.add_argument('-f', '--format', action='append') parser.add_argument('-s', '--source', action='append', required=True) # Discover installed plugins PluginManager.discover() # Add arguments from updater sources for _, source in PluginManager.list_ordered('database-updater'): for argument in source.__parameters__: if 'name' not in argument: log.warn('Invalid source argument: %r', argument) continue parser.add_argument('--%s-%s' % (source.__key__, argument['name']), **argument.get('kwargs', {})) # Parse command line arguments return parser.parse_args()