def test_python_requirements_field(self): req1 = PythonRequirement('foo==1.0') req2 = PythonRequirement('bar==1.0') self.assertNotEqual( PythonRequirementsField([req1]).fingerprint(), PythonRequirementsField([req2]).fingerprint(), )
def test_python_requirements_field_version_filter(self): """version_filter is a lambda and can't be hashed properly. Since in practice this is only ever used to differentiate between py3k and py2, it should use a tuple of strings or even just a flag instead. """ req1 = PythonRequirement('foo==1.0', version_filter=lambda py, pl: False) req2 = PythonRequirement('foo==1.0') self.assertEqual( PythonRequirementsField([req1]).fingerprint(), PythonRequirementsField([req2]).fingerprint(), )
def add_payload_fields(cls, build_graph, addresses, payload): python_reqs = set() for address in addresses: python_dependency = build_graph.get_target(address) python_reqs.update({str(r) for r in python_dependency.requirements}) payload.add_fields({ 'requirements': PythonRequirementsField(list(python_reqs) or []), }) return payload
def __init__(self, payload=None, requirements=None, **kwargs): """ :param requirements: pip requirements as `python_requirement <#python_requirement>`_\\s. :type requirements: List of python_requirement calls """ payload = payload or Payload() assert_list(requirements, expected_type=PythonRequirement, key_arg='requirements') payload.add_fields({ 'requirements': PythonRequirementsField(requirements or []), }) super().__init__(payload=payload, **kwargs)
def __init__(self, payload=None, requirements=None, **kwargs): """ :param requirements: pip requirements :type requirements: List of :ref:`python_requirement <bdict_python_requirement>`\s """ payload = payload or Payload() assert_list(requirements, expected_type=PythonRequirement) payload.add_fields({ 'requirements': PythonRequirementsField(requirements or []), }) super(PythonRequirementLibrary, self).__init__(payload=payload, **kwargs)