usse/funda-scraper/venv/lib/python3.10/site-packages/pkginfo/develop.py

47 lines
1.5 KiB
Python

import io
import os
import sys
import warnings
from .distribution import Distribution
def _gather_py2(top, candidates): #pragma NO COVER Py3k
def _filter(candidates, dirname, fnames):
for fname in fnames:
fqn = os.path.join(dirname, fname)
if os.path.isdir(fqn):
if fname == 'EGG-INFO' or fname.endswith('.egg-info'):
candidates.append(fqn)
os.path.walk(top, _filter, candidates)
def _gather_py3(top, candidates): #pragma NO COVER Python2
for dirpath, dirnames, fnames in os.walk(top):
for dirname in dirnames:
fqn = os.path.join(dirpath, dirname)
if dirname == 'EGG-INFO' or dirname.endswith('.egg-info'):
candidates.append(fqn)
if sys.version_info[0] < 3: #pragma NO COVER Python2
_gather = _gather_py2
else: #pragma NO COVER Py3k
_gather = _gather_py3
class Develop(Distribution):
def __init__(self, path, metadata_version=None):
self.path = os.path.abspath(
os.path.normpath(
os.path.expanduser(path)))
self.metadata_version = metadata_version
self.extractMetadata()
def read(self):
candidates = [self.path]
_gather(self.path, candidates)
for candidate in candidates:
path = os.path.join(candidate, 'PKG-INFO')
if os.path.exists(path):
with io.open(path, errors='ignore') as f:
return f.read()
warnings.warn('No PKG-INFO found for path: %s' % self.path)