示例#1
0
def test_create_model_with_custom_requirements(sklearn_model_obj, pandas_data):
    requirements = Requirements([
        InstallableRequirement('dumb', '0.4.1'),
        InstallableRequirement('art', '4.0')
    ])
    model = Model.create(sklearn_model_obj,
                         pandas_data,
                         custom_requirements=Requirements([Requirement()]))
    assert model is not None
    assert all(req in [r.module for r in requirements.installable]
               for req in model.requirements.installable)
示例#2
0
def test_resolve_requirements_arg():
    requirements = Requirements([
        InstallableRequirement('dumb', '0.4.1'),
        InstallableRequirement('art', '4.0')
    ])
    actual_reqs = resolve_requirements(requirements)
    assert actual_reqs == requirements
示例#3
0
文件: module.py 项目: geffy/ebonite
def get_object_requirements_old(obj) -> Requirements:
    if isinstance(obj, MutableSequence):
        return sum(get_object_requirements_old(o) for o in obj)
    if isinstance(obj, Mapping):
        return sum(get_object_requirements_old(o) for o in obj.keys()) + \
               sum(get_object_requirements_old(o) for o in obj.values())
    mod = get_object_base_module(obj)

    if mod is None:
        raise ValueError('Cant determine object module')
    elif mod.__name__ == 'builtins':
        return Requirements()
    if not is_installable_module(mod):
        return Requirements([CustomRequirement(mod.__name__)])
    else:
        return Requirements([get_module_as_requirement(mod)])
示例#4
0
def model(data, prediction):
    dataset_meta = DatasetAnalyzer.analyze(data)
    output_meta = DatasetAnalyzer.analyze(prediction)
    return Model('test model',
                 SklearnModelWrapper(),
                 input_meta=dataset_meta,
                 output_meta=output_meta,
                 requirements=Requirements([]))
示例#5
0
    def to_requirements(self):
        r = Requirements()

        for mod in self._modules:
            if is_installable_module(mod):
                r.add(get_module_as_requirement(get_base_module(mod)))
            elif is_local_module(mod):
                r.add(CustomRequirement.from_module(mod))
        return r
示例#6
0
    def _prepare_methods_and_requirements(self, input_data):
        requirements = Requirements()
        requirements += self._model_requirements()

        arg_type = DatasetAnalyzer.analyze(input_data)
        requirements += arg_type.requirements

        methods = {}
        for exposed, wrapped in self._exposed_methods_mapping().items():
            output_data = self._call_method(wrapped, input_data)
            out_type = DatasetAnalyzer.analyze(output_data)

            methods[exposed] = (wrapped, arg_type, out_type)
            requirements += out_type.requirements
        return methods, requirements
示例#7
0
文件: module.py 项目: geffy/ebonite
    def to_requirements(self):
        r = Requirements()

        for mod in list(sys.modules.values()):
            if not self._should_ignore(mod) and is_local_module(mod):
                r.add(CustomRequirement.from_module(mod))

                # add imports of this local module
                for obj in mod.__dict__.values():
                    self._add_requirement(obj)

        for mod in self._modules:
            r.add(get_module_as_requirement(get_base_module(mod)))
        return r
示例#8
0
    def analyze(cls, obj: AnyRequirements) -> Requirements:
        """
        Run RequirementHook hooks to analyze obj

        :param obj: objects to analyze
        :return: Instance of Requirements
        """
        obj = resolve_requirements(obj)
        to_process = list(obj.requirements)
        result = []
        for hook in cls.hooks:
            while len(to_process) > 0:
                req = to_process.pop()
                if hook.can_process(req):
                    result += hook.process(req).requirements
                else:
                    result.append(req)
            to_process = result
            result = []

        return Requirements(to_process)
示例#9
0
 def get_requirements(self):
     return Requirements([])
示例#10
0
文件: model.py 项目: zyfra/ebonite
 def _model_requirements(self) -> Requirements:
     if get_object_base_module(self.model) is sklearn:
         return Requirements([InstallableRequirement.from_module(sklearn)])
     # some sklearn compatible model (either from library or user code) - fallback
     return super()._model_requirements()
示例#11
0
 def process(self, obj: Requirement, **kwargs) -> Requirements:
     return Requirements([obj, UnixPackageRequirement('libgomp1')])
示例#12
0
 def requirements(self) -> Requirements:
     return sum([i.requirements for i in self.items], Requirements())
示例#13
0
 def requirements(self) -> Requirements:
     return sum([i.requirements for i in self.item_types.values()],
                Requirements())
示例#14
0
 def get_requirements(self):
     return Requirements([
         InstallableRequirement.from_str(
             f'dill=={get_module_version(dill)}')
     ])  # for example
示例#15
0
def model():
    return Model('test model',
                 SklearnModelWrapper(),
                 requirements=Requirements([]),
                 description='aaa')
示例#16
0
文件: dataset.py 项目: zyfra/ebonite
 def requirements(self) -> Requirements:
     return Requirements([InstallableRequirement.from_module(tf)
                          ]) + super().requirements.fget(self)
示例#17
0
 def process(self, obj: Requirement, **kwargs) -> Requirements:
     return Requirements([obj, InstallableRequirement('bbbb')])
示例#18
0
def model():
    return Model('test model',
                 SklearnModelWrapper(),
                 requirements=Requirements([]))
示例#19
0
 def requirements(self) -> Requirements:
     return Requirements()
示例#20
0
 def requirements(self) -> Requirements:
     return Requirements([InstallableRequirement.from_module(lgb)
                          ]) + self.inner.requirements
示例#21
0
 def _model_requirements(self) -> Requirements:
     return Requirements([
         InstallableRequirement.from_module(lib) for lib in self.libraries
     ])