コード例 #1
0
 def __init__(self, name, path=None, file_name=None, parent=None):
     self.name = name
     self.file = file_name
     self.path = path
     self.code = None
     self.parent = parent
     self.global_names = set()
     self.exclude_names = set()
     self.ignore_names = set()
     self.source_is_zip_file = False
     self.in_import = True
     self.store_in_file_system = True
     # distribution files (metadata)
     dist_files = []
     packages = [name]
     try:
         requires = importlib_metadata.requires(packages[0])
     except importlib_metadata.PackageNotFoundError:
         requires = None
     if requires is not None:
         packages += [req.partition(" ")[0] for req in requires]
     for package_name in packages:
         try:
             files = importlib_metadata.files(package_name)
         except importlib_metadata.PackageNotFoundError:
             files = None
         if files is not None:
             # cache file names to use in write modules
             for file in files:
                 if not file.match("*.dist-info/*"):
                     continue
                 dist_path = str(file.locate())
                 arc_path = file.as_posix()
                 dist_files.append((dist_path, arc_path))
     self.dist_files = dist_files
コード例 #2
0
    def test_file_hash_repr(self):
        try:
            assertRegex = self.assertRegex
        except AttributeError:
            # Python 2
            assertRegex = self.assertRegexpMatches

        util = [p for p in files('distinfo-pkg') if p.name == 'mod.py'][0]
        assertRegex(repr(util.hash), '<FileHash mode: sha256 value: .*>')
コード例 #3
0
def get_ranger_script():
    scripts = importlib_metadata.files("ranger-fm")
    if scripts is not None:
        ranger_script_paths = [
            path for path in scripts if path.name == "ranger"
        ]
        if ranger_script_paths:
            return ranger_script_paths[0].locate().resolve()
    return shutil.which("ranger")
コード例 #4
0
ファイル: utils.py プロジェクト: everton137/derex.runner
def abspath_from_egg(egg: str, path: str) -> Optional[Path]:
    """Given a path relative to the egg root, find the absolute
    filesystem path for that resource.
    For instance this file's absolute path can be found passing
    derex/runner/utils.py
    to this function.
    """
    for file in importlib_metadata.files(egg):
        if str(file) == path:
            return file.locate()
    return None
コード例 #5
0
def _get_importlib_metadata_files(package_name):  # type: (str) -> None
    """Retrieve information about files present for the given package."""
    import sys
    from importlib_metadata import files
    import json

    print(
        json.dumps([{
            "hash": f.hash.__dict__ if f.hash else None,
            "size": f.size,
            "path": str(f)
        } for f in files(package_name)], ), )
    sys.exit(0)
コード例 #6
0
    def test_file_hash_repr(self):
        try:
            assertRegex = self.assertRegex
        except AttributeError:
            # Python 2
            assertRegex = self.assertRegexpMatches

        util = [
            p for p in importlib_metadata.files('wheel')
            if p.name == 'util.py'
            ][0]
        assertRegex(
            repr(util.hash),
            '<FileHash mode: sha256 value: .*>')
コード例 #7
0
def _get_importlib_metadata_files(package_name):  # type: (str) -> None
    """Retrieve information about files present for the given package."""
    import sys
    try:
        import importlib_metadata
    except ImportError:
        import importlib.metadata as importlib_metadata  # type: ignore
    import json

    print(
        json.dumps([{
            "hash": f.hash.__dict__ if f.hash else None,
            "size": f.size,
            "path": str(f)
        } for f in importlib_metadata.files(package_name)], ), )
    sys.exit(0)
コード例 #8
0
ファイル: module.py プロジェクト: roshangardi/cx_Freeze
 def _cache_dist_info(self, package_name) -> None:
     """Cache the dist-info files."""
     try:
         files = importlib_metadata.files(package_name)
     except importlib_metadata.PackageNotFoundError:
         files = None
     if files is None:
         return
     # select only dist-info files
     files = [file for file in files if file.match("*.dist-info/*")]
     if files:
         for file in files:
             dist_path = os.path.join(
                 self.rootcachedir.name, os.path.normpath(file.as_posix())
             )
             os.makedirs(os.path.dirname(dist_path), exist_ok=True)
             shutil.copyfile(str(file.locate()), dist_path)
             self.dist_files.append(file.as_posix())
コード例 #9
0
def read_config_from_master_package() -> Config:
    entry_points = importlib_metadata.entry_points().get(
        "pyfony.bootstrap", ())

    if not entry_points:
        raise Exception(
            "pyfony.bootstrap entry points is missing in the master package, try rebuilding the package"
        )

    if hasattr(tuple(entry_points)[0], "dist"):
        dist_path = tuple(entry_points)[0].dist
    else:
        package_name = entry_points.value
        dist_path = files(package_name)[0].dist

    raw_config = json.loads(dist_path.read_text("bootstrap_config.json"))

    return pyfony_config_factory.create(raw_config,
                                        "pyfony.bootstrap entry point")
コード例 #10
0
 def test_read_text(self):
     top_level = [
         path for path in importlib_metadata.files('importlib_metadata')
         if path.name == 'top_level.txt'
         ][0]
     self.assertEqual(top_level.read_text(), 'importlib_metadata\n')
コード例 #11
0
 def test_files_dist_info(self):
     self._test_files(importlib_metadata.files('distinfo-pkg'))
コード例 #12
0
 def test_files_egg_info(self):
     self._test_files(importlib_metadata.files('egginfo-pkg'))
コード例 #13
0
 def test_files(self):
     for file in files('example'):
         path = str(file.dist.locate_file(file))
         assert '.egg/' in path, path
コード例 #14
0
ファイル: source.py プロジェクト: wo0dyn/raincoat
def get_distributed_files(package):
    return {str(f): f for f in importlib_metadata.files(package) or []}
コード例 #15
0
def get_dist_files(dist):
    for path in files(dist.project_name):
        path = os.path.normpath(os.path.join(dist.location, path))
        yield path
コード例 #16
0
 def test_read_text(self):
     top_level = [
         path for path in files('egginfo-pkg')
         if path.name == 'top_level.txt'
     ][0]
     self.assertEqual(top_level.read_text(), 'mod\n')
コード例 #17
0
 def test_files_egg_info(self):
     self._test_files(files('egginfo-pkg'))
コード例 #18
0
 def test_files_dist_info(self):
     self._test_files(importlib_metadata.files('pip'))
コード例 #19
0
 def test_file_hash_repr(self):
     util = [p for p in files('distinfo-pkg') if p.name == 'mod.py'][0]
     self.assertRegex(repr(util.hash), '<FileHash mode: sha256 value: .*>')
コード例 #20
0
ファイル: test_zip.py プロジェクト: tkattan1/KitchenSupply
 def test_files(self):
     files = importlib_metadata.files('example')
     for file in files:
         path = str(file.dist.locate_file(file))
         assert '.whl/' in path, path
コード例 #21
0
 def __init__(self, dist, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.dist = dist
     self.files = [
         str(pp.locate()) for pp in importlib_metadata.files(dist)
     ]
コード例 #22
0
 def test_files_dist_info(self):
     self._test_files(files('distinfo-pkg'))