Ignore empty requirements/constraints when building lower-constraints
Some constraints files[1] contain valid data but we want to ignore them when generating a combined lower-constraints.txt, rather than erroring out: [tony@thor requirements]$ time .tox/venv/bin/build-lower-constraints ../*/lower-constraints.txt > tjmaxx.txt Traceback (most recent call last): File ".tox/venv/bin/build-lower-constraints", line 10, in <module> sys.exit(main()) File "/home/tony/projects/openstack/openstack/requirements/openstack_requirements/cmds/build_lower_constraints.py", line 71, in main merged = list(merge_constraints_sets(constraints_sets)) File "/home/tony/projects/openstack/openstack/requirements/openstack_requirements/cmds/build_lower_constraints.py", line 53, in merge_constraints_sets val = max((c[0] for c in constraints), key=get_requirements_version) File "/home/tony/projects/openstack/openstack/requirements/openstack_requirements/cmds/build_lower_constraints.py", line 43, in get_requirements_version raise ValueError('could not find version for {}'.format(req)) ValueError: could not find version for Requirement(package='', location='', specifiers='', markers='', comment='# flake8==2.5.5', extras=frozenset()) Let's just ignore comments in those files. [1] http://git.openstack.org/cgit/openstack/zaqar/tree/lower-constraints.txt#n28 Change-Id: Ie347ab273a1b239d9d264704482d3202dc4e4c74
This commit is contained in:
parent
961a537e0d
commit
8bc094cf9e
@ -48,7 +48,8 @@ def merge_constraints_sets(constraints_sets):
|
||||
all_constraints = collections.defaultdict(list)
|
||||
for constraints_set in constraints_sets:
|
||||
for constraint_name, constraint in constraints_set.items():
|
||||
all_constraints[constraint_name].extend(constraint)
|
||||
if constraint_name:
|
||||
all_constraints[constraint_name].extend(constraint)
|
||||
for constraint_name, constraints in sorted(all_constraints.items()):
|
||||
val = max((c[0] for c in constraints), key=get_requirements_version)
|
||||
yield val.to_line()
|
||||
|
@ -55,3 +55,15 @@ class BuildLowerConstraintsTest(testtools.TestCase):
|
||||
expected,
|
||||
list(build_lower_constraints.merge_constraints_sets(inputs))
|
||||
)
|
||||
|
||||
def test_one_input_file_with_comments(self):
|
||||
inputs = [
|
||||
requirement.parse('package==1.2.3\n # package2==0.9.8'),
|
||||
]
|
||||
expected = [
|
||||
'package==1.2.3\n',
|
||||
]
|
||||
self.assertEqual(
|
||||
expected,
|
||||
list(build_lower_constraints.merge_constraints_sets(inputs))
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user