Exemple #1
0
 def func(func_args):
     kwargs = func_args.get('kwargs', {})
     for value in kwargs.values():
         if dsl_functions.parse(value) != value:
             return _RAW
     kwargs['loader'] = loader
     function = module.load_attribute(func_args['name'])
     return function(**kwargs)
Exemple #2
0
 def func(func_args):
     kwargs = func_args.get('kwargs', {})
     for value in kwargs.values():
         if dsl_functions.parse(value) != value:
             return _RAW
     kwargs['loader'] = loader
     function = module.load_attribute(func_args['name'])
     return function(**kwargs)
Exemple #3
0
 def func(args):
     self._set_paths()
     function = module.load_attribute(command['function'])
     kwargs = vars(args)
     kwargs.pop('_functions_stack', None)
     state.current_loader.set(self)
     try:
         return function(**kwargs)
     finally:
         state.current_loader.clear()
Exemple #4
0
 def func(args):
     self._set_paths()
     function = module.load_attribute(command['function'])
     kwargs = vars(args)
     kwargs.pop('_functions_stack', None)
     state.current_loader.set(self)
     try:
         return function(**kwargs)
     finally:
         state.current_loader.clear()
Exemple #5
0
 def _add_args_to_func(self, func, args, skip_env):
     for arg in reversed(args):
         name = arg.pop('name')
         completer = arg.pop('completer', None)
         if completer:
             completer = module.load_attribute(completer)
             completer = Completer(None if skip_env else self._load_env,
                                   completer)
             arg['completer'] = completer
         name = name if isinstance(name, list) else [name]
         argh.arg(*name, **arg)(func)
Exemple #6
0
 def _add_args_to_func(self, func, args, skip_env):
     for arg in reversed(args):
         name = arg.pop('name')
         completer = arg.pop('completer', None)
         if completer:
             completer = module.load_attribute(completer)
             completer = Completer(None if skip_env else self._load_env,
                                   completer)
             arg['completer'] = completer
         name = name if isinstance(name, list) else [name]
         argh.arg(*name, **arg)(func)
Exemple #7
0
def setup_output(event_cls, verbose, env, command):
    if event_cls is None:
        event_cls = Event
    else:
        event_cls = module.load_attribute(event_cls)
        if hasattr(event_cls, "factory"):
            event_cls = event_cls.factory(env=env, verbose=verbose, command=command)
    logs.EVENT_CLASS = event_cls

    if not verbose:

        def stub(*_):
            pass

        logs.stdout_event_out = stub
Exemple #8
0
 def func(args):
     if (self.user_config.current == args.name
             and self.user_config.storage_dir and not args.reset):
         raise argh.CommandError('storage dir already configured. pass '
                                 '--reset to override.')
     storage_dir = args.storage_dir or os.getcwd()
     self.user_config.current = args.name
     self.user_config.editable = args.editable
     self.user_config.storage_dir = storage_dir
     self.user_config.storage_dir.mkdir_p()
     self._create_inputs(args, env_create.get('inputs', {}))
     self.user_config.macros_path.touch()
     after_env_create_func = self.config.hooks.after_env_create
     if after_env_create_func:
         after_env_create = module.load_attribute(after_env_create_func)
         after_env_create(self, **vars(args))
Exemple #9
0
 def func(args):
     if (self.user_config.current == args.name and
             self.user_config.storage_dir and not args.reset):
         raise argh.CommandError('storage dir already configured. pass '
                                 '--reset to override.')
     storage_dir = args.storage_dir or os.getcwd()
     self.user_config.current = args.name
     self.user_config.editable = args.editable
     self.user_config.storage_dir = storage_dir
     self.user_config.storage_dir.mkdir_p()
     self._create_inputs(args, env_create.get('inputs', {}))
     self.user_config.macros_path.touch()
     after_env_create_func = self.config.hooks.after_env_create
     if after_env_create_func:
         after_env_create = module.load_attribute(after_env_create_func)
         after_env_create(self, **vars(args))
Exemple #10
0
def setup_output(event_cls, verbose, env, command):
    if event_cls is None:
        event_cls = Event
    else:
        event_cls = module.load_attribute(event_cls)
        if hasattr(event_cls, 'factory'):
            event_cls = event_cls.factory(env=env,
                                          verbose=verbose,
                                          command=command)
    logs.EVENT_CLASS = event_cls

    if not verbose:

        def stub(*_):
            pass

        logs.stdout_event_out = stub
Exemple #11
0
 def _init_command(self, reset=False):
     local_dir = self.user_config.storage_dir / self._name
     if local_dir.exists():
         if reset:
             shutil.rmtree(local_dir)
         else:
             raise argh.CommandError('Already initialized, pass --reset '
                                     'to re-initialize.')
     inputs = self.user_config.inputs
     temp_dir = path(tempfile.mkdtemp(
         prefix='{}-blueprint-dir-'.format(self.config.name)))
     blueprint_dir = temp_dir / 'blueprint'
     try:
         shutil.copytree(self.config.blueprint_dir, blueprint_dir)
         sys.path.append(blueprint_dir)
         blueprint_path = (blueprint_dir /
                           self.config.blueprint_path.basename())
         before_init_func = self.config.hooks.before_init
         if before_init_func:
             blueprint = yaml.safe_load(blueprint_path.text())
             before_init = module.load_attribute(before_init_func)
             before_init(blueprint=blueprint,
                         inputs=inputs,
                         loader=self)
             blueprint_path.write_text(yaml.safe_dump(blueprint))
         local.init_env(blueprint_path=blueprint_path,
                        inputs=inputs,
                        name=self._name,
                        storage=self._storage(),
                        ignored_modules=self.config.ignored_modules)
     finally:
         shutil.rmtree(temp_dir, ignore_errors=True)
     if self.user_config.editable:
         resources_path = (self.user_config.storage_dir / self._name /
                           'resources')
         shutil.rmtree(resources_path, ignore_errors=True)
         os.symlink(self.config.blueprint_dir, resources_path)
Exemple #12
0
 def _init_command(self, reset=False):
     local_dir = self.user_config.storage_dir / self._name
     if local_dir.exists():
         if reset:
             shutil.rmtree(local_dir)
         else:
             raise argh.CommandError('Already initialized, pass --reset '
                                     'to re-initialize.')
     inputs = self.user_config.inputs
     temp_dir = path(tempfile.mkdtemp(
         prefix='{}-blueprint-dir-'.format(self.config.name)))
     blueprint_dir = temp_dir / 'blueprint'
     try:
         shutil.copytree(self.config.blueprint_dir, blueprint_dir)
         sys.path.append(blueprint_dir)
         blueprint_path = (blueprint_dir /
                           self.config.blueprint_path.basename())
         before_init_func = self.config.hooks.before_init
         if before_init_func:
             blueprint = yaml.safe_load(blueprint_path.text())
             before_init = module.load_attribute(before_init_func)
             before_init(blueprint=blueprint,
                         inputs=inputs,
                         loader=self)
             blueprint_path.write_text(yaml.safe_dump(blueprint))
         local.init_env(blueprint_path=blueprint_path,
                        inputs=inputs,
                        name=self._name,
                        storage=self._storage(),
                        ignored_modules=self.config.ignored_modules)
     finally:
         shutil.rmtree(temp_dir, ignore_errors=True)
     if self.user_config.editable:
         resources_path = (self.user_config.storage_dir / self._name /
                           'resources')
         shutil.rmtree(resources_path, ignore_errors=True)
         os.symlink(self.config.blueprint_dir, resources_path)
Exemple #13
0
 def test_load_attribute(self):
     attribute_path = '{}:TEST_ATTRIBUTE'.format(__name__)
     attribute = module.load_attribute(attribute_path)
     self.assertIs(TEST_ATTRIBUTE, attribute)
Exemple #14
0
 def test_load_attribute(self):
     attribute_path = '{}:TEST_ATTRIBUTE'.format(__name__)
     attribute = module.load_attribute(attribute_path)
     self.assertIs(TEST_ATTRIBUTE, attribute)