Пример #1
0
def test_optional_wrong_version():
    with pytest.raises(ImportError):
        import_optional_dependency("skimage", min_version="999")

    with pytest.warns(UserWarning, match="MorphoCut requires version.+"):
        import_optional_dependency("skimage",
                                   min_version="999",
                                   on_version="warn")
Пример #2
0
    def __init__(self, path: RawOrVariable[str], **kwargs):
        super().__init__()

        self.path = path
        self.kwargs = kwargs

        import_optional_dependency("av")
        self._pims = import_optional_dependency("pims")
Пример #3
0
 def __init__(self,
              description: Optional[RawOrVariable[str]] = None,
              monitor_interval=None):
     super().__init__()
     self._tqdm = import_optional_dependency("tqdm")
     self.description = description
     self.monitor_interval = monitor_interval
Пример #4
0
    def __init__(
        self,
        archive_fn: str,
        fnames_images: MaybeList[RawOrVariable[Tuple[str, ...]]],
        meta: RawOrVariable[Mapping],
        meta_fn: str = "ecotaxa_export.tsv",
        store_types: bool = True,
    ):
        super().__init__()
        self.archive_fn = archive_fn

        if isinstance(fnames_images, tuple):
            fnames_images = [fnames_images]

        if not isinstance(fnames_images, list):
            raise ValueError(
                "Unexpected type for fnames_images: needs to be a tuple or a list of tuples"
            )

        self.fnames_images = fnames_images
        self.meta = meta
        self.meta_fn = meta_fn
        self.store_types = store_types

        self._pd = import_optional_dependency("pandas")
Пример #5
0
    def __init__(
        self,
        path: RawOrVariable[str],
        meta: RawOrVariable[bool],
        series: Optional[RawOrVariable[int]] = None,
        **kwargs,
    ):
        super().__init__()

        self.path = path
        self.meta = meta
        self.series = series
        self.kwargs = kwargs

        import_optional_dependency("jpype")
        self._pims = import_optional_dependency("pims")
Пример #6
0
 def __init__(
     self,
     archive_fn: RawOrVariable[str],
     img_rank: MaybeTuple[RawOrVariable[int]] = 1,
 ):
     super().__init__()
     self.archive_fn = archive_fn
     self.img_rank = img_rank
     self._pd = import_optional_dependency("pandas")
Пример #7
0
    def __init__(
        self,
        path_or_buf,
        data: RawOrVariable[Mapping],
        columns: Optional[Collection] = None,
        drop_duplicates_subset: Optional[Collection] = None,
        writer=_default_writer,
    ):
        super().__init__()

        self.path_or_buf = path_or_buf
        self.data = data
        self.columns = columns
        self.drop_duplicates_subset = drop_duplicates_subset
        self.dataframe = []  # type: List[Mapping]
        self.writer = writer

        self._pd = import_optional_dependency("pandas")
Пример #8
0
    def __init__(self, model: Callable, image: RawOrVariable):
        super().__init__()
        self.model = model
        self.image = image

        self._torch = import_optional_dependency(
            "torch", "Visit https://pytorch.org/ for instructions.", "1.2")
        import torch.utils.data

        self._torch_utils_data = torch.utils.data

        class _StreamDataset(torch.utils.data.IterableDataset):
            def __init__(self, node, stream):
                self.node = node
                self.stream = stream

            def __iter__(self):
                with closing_if_closable(self.stream) as stream:
                    for obj in stream:
                        yield (self.node.prepare_input(obj, ("image", )),
                               _Envelope(obj))

        self._StreamDataset = _StreamDataset
Пример #9
0
    def __init__(
        self,
        fmt: RawOrVariable[str],
        string: RawOrVariable,
        case_sensitive: bool = False,
    ):
        super().__init__()

        self.fmt = fmt
        self.string = string
        self.case_sensitive = case_sensitive

        self._parse = import_optional_dependency("parse")

        @self._parse.with_pattern(".*")
        def parse_greedystar(text):
            return text

        self._extra_types = {"greedy": parse_greedystar}

        if not isinstance(fmt, Variable):
            self._parser = self._compile(fmt)
        else:
            self._parser = None
Пример #10
0
    def __init__(self,
                 filename: str,
                 data: RawOrVariable[Mapping] = None,
                 on=None,
                 fields: Sequence = None):
        super().__init__()

        self.data = data
        self.on = on

        pd = import_optional_dependency("pandas")

        ext = os.path.splitext(filename)[1]

        if ext in (".xls", ".xlsx"):
            dataframe = pd.read_excel(filename, usecols=fields)
        else:
            with open('example.csv', newline='') as csvfile:
                dialect = csv.Sniffer().sniff(csvfile.read(1024))
            dataframe = pd.read_csv(filename, dialect=dialect, usecols=fields)

        dataframe.set_index(self.on, inplace=True, verify_integrity=True)

        self.dataframe = dataframe
Пример #11
0
def test_optional_hit():
    import_optional_dependency("morphocut")
    import_optional_dependency("skimage", min_version="0.16")
Пример #12
0
def test_optional_miss():
    with pytest.raises(ImportError):
        import_optional_dependency("foo_bar_baz")

    assert import_optional_dependency("foo_bar_baz",
                                      raise_on_missing=False) == None