requirements markers clean up (#10179)
* requirements markers clean up * formatting & comments * typos
This commit is contained in:
1 parent
0d64afc2c8
commit
acf8cacfbc
1 file changed
+25
-14
+25
-14
@@ -99,29 +99,33 @@ class CustomBuild(build):
|
||||
|
||||
egg_info = list(src.glob('**/*.egg-info'))
|
||||
if egg_info:
|
||||
|
||||
def raw_req(req):
|
||||
req.marker = None
|
||||
return str(req)
|
||||
|
||||
distributions = pkg_resources.find_distributions(str(Path(egg_info[0]).parent))
|
||||
for dist in distributions:
|
||||
self.announce(f'Distribution: {dist.egg_name()}', level=log.INFO)
|
||||
dmap = dist._build_dep_map() # pylint: disable=W0212
|
||||
|
||||
# load install_requires list
|
||||
install_requires = list(sorted(map(raw_req, dist.requires())))
|
||||
self.announce(f'Install requires: {install_requires}', level=log.INFO)
|
||||
if cmp_data.get("extract_requirements"):
|
||||
# install requires {None: [requirements]}
|
||||
install_requires = sorted(map(str, dmap.get(None, [])))
|
||||
self.announce(f'Install requires: {install_requires}', level=log.INFO)
|
||||
self.distribution.install_requires.extend(install_requires)
|
||||
|
||||
# load extras_require
|
||||
if cmp_data.get("extract_extras"):
|
||||
for extra in dist.extras:
|
||||
# conditional requirements {':<condition>': [requirements]}
|
||||
conditionals_req = dict(filter(lambda x: x[0] is not None and x[0].split(':')[0] == '', dmap.items()))
|
||||
self.announce(f'Install requires with marker: {conditionals_req}', level=log.INFO)
|
||||
for extra, req in conditionals_req.items():
|
||||
if extra not in self.distribution.extras_require:
|
||||
self.distribution.extras_require[extra] = []
|
||||
extras_require = set(map(raw_req, dist.requires((extra,))))
|
||||
self.announce(f'Extras: {extra}:{extras_require}', level=log.INFO)
|
||||
self.distribution.extras_require[extra].extend(extras_require)
|
||||
self.distribution.extras_require[extra].extend(sorted(map(str, req)))
|
||||
|
||||
if cmp_data.get("extract_extras"):
|
||||
# extra requirements {'marker:<condition>': [requirements]}
|
||||
extras = dict(filter(lambda x: x[0] is not None and x[0].split(':')[0] != '', dmap.items()))
|
||||
for extra, req in extras.items():
|
||||
self.announce(f'Extras: {extra}:{req}', level=log.INFO)
|
||||
if extra not in self.distribution.extras_require:
|
||||
self.distribution.extras_require[extra] = []
|
||||
self.distribution.extras_require[extra].extend(sorted(map(str, req)))
|
||||
|
||||
# extract console scripts
|
||||
if cmp_data.get("extract_entry_points"):
|
||||
@@ -141,6 +145,13 @@ class CustomBuild(build):
|
||||
(dst / path_rel.parent).mkdir(exist_ok=True, parents=True)
|
||||
shutil.copyfile(path, dst / path_rel)
|
||||
|
||||
# remove duplications in requirements
|
||||
reqs_set = set(map(lambda x: x.lower(), self.distribution.install_requires))
|
||||
self.distribution.install_requires = sorted(reqs_set)
|
||||
for extra, req in self.distribution.extras_require.items():
|
||||
unique_req = list(set(map(lambda x: x.lower(), req)))
|
||||
self.distribution.extras_require[extra] = unique_req
|
||||
|
||||
# add dependecy on runtime package
|
||||
runtime_req = [f'openvino=={self.distribution.get_version()}']
|
||||
self.distribution.install_requires.extend(runtime_req)
|
||||
|
||||
Reference in new issue
Block a user