Skip to content

Commit da39546

Browse files
committed
reduce Package() class complexity
1 parent 11228fa commit da39546

File tree

1 file changed

+15
-29
lines changed

1 file changed

+15
-29
lines changed

winpython/wppm.py

Lines changed: 15 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -26,40 +26,27 @@
2626
# Workaround for installing PyVISA on Windows from source:
2727
os.environ["HOME"] = os.environ["USERPROFILE"]
2828

29-
class BasePackage:
30-
def __init__(self, fname):
29+
class Package:
30+
"standardize a Package from filename or pip list"
31+
def __init__(self, fname, suggested_summary=None):
3132
self.fname = fname
33+
self.description = piptree.sum_up(suggested_summary) if suggested_summary else ""
3234
self.name = None
3335
self.version = None
34-
self.description = ""
36+
if fname.endswith((".zip", ".tar.gz", ".whl")):
37+
bname = Path(self.fname).name #wheel style name like "sqlite_bro-1.0.0..."
38+
infos = utils.get_source_package_infos(bname) # get name, version
39+
if infos is not None:
40+
self.name, self.version = infos
41+
self.name = utils.normalize(self.name)
3542
self.url = None
43+
self.files = []
44+
45+
setattr(self,'url',"https://pypi.org/project/" + self.name)
3646

3747
def __str__(self):
3848
return f"{self.name} {self.version}\r\n{self.description}\r\nWebsite: {self.url}"
39-
40-
41-
class Package(BasePackage):
42-
def __init__(self, fname, update=False, suggested_summary=None):
43-
BasePackage.__init__(self, fname)
44-
self.files = []
45-
self.extract_infos()
46-
if suggested_summary:
47-
setattr(self, 'description',
48-
piptree.sum_up(suggested_summary ))
49-
bname = fname.split("-")[0]
50-
setattr(self,'url',"https://pypi.org/project/" + bname)
51-
52-
def extract_infos(self):
53-
"Extract package (name, version) from filename (installer basename)"
54-
bname = Path(self.fname).name
55-
if bname.endswith((".zip", ".tar.gz", ".whl")):
56-
# distutils sdist
57-
infos = utils.get_source_package_infos(bname)
58-
if infos is not None:
59-
self.name, self.version = infos
60-
return
61-
raise NotImplementedError(f"Not supported package type {bname}")
62-
49+
6350

6451
class Distribution:
6552
def __init__(self, target=None, verbose=False, indent=False):
@@ -156,8 +143,7 @@ def get_installed_packages(self, update=False):
156143
# create pip package list
157144
wppm = [
158145
Package(
159-
f"{i[0].replace('-', '_').lower()}-{i[1]}-py3-none-any.whl",
160-
update=update,
146+
f"{i[0].replace('-', '_').lower()}-{i[1]}-py3-none-any.whl", #faking wheel
161147
suggested_summary=self.pip.summary(i[0]) if self.pip else None
162148
)
163149
for i in pip_list

0 commit comments

Comments
 (0)