def _test(self, requirement, name=None, version_specs=None, url=None): req = DetectedRequirement.parse(requirement) self.assertEqual(name, req.name) if version_specs is None: self.assertEqual([], req.version_specs) else: for spec in version_specs: self.assertTrue(spec in req.version_specs) self.assertEqual(url, req.url)
def from_setup_py(setup_file): try: contents = _load_file_contents(setup_file) ast = AstroidBuilder(MANAGER).string_build(contents) except SyntaxError: # if the setup file is broken, we can't do much about that... raise CouldNotParseRequirements walker = SetupWalker(ast) requirements = [] for req in walker.get_requires(): requirements.append(DetectedRequirement.parse(req, setup_file)) return requirements
def from_requirements_txt(requirements_file): # see http://www.pip-installer.org/en/latest/logic.html requirements = [] with open(requirements_file) as f: for req in f.readlines(): if req.strip() == '': # empty line continue if req.strip().startswith('#'): # this is a comment continue if req.strip().split()[0] in _PIP_OPTIONS: # this is a pip option continue detected = DetectedRequirement.parse(req, requirements_file) if detected is None: continue requirements.append(detected) return requirements
def from_requirements_txt(requirements_file): # see http://www.pip-installer.org/en/latest/logic.html requirements = [] with open(requirements_file) as f: for req in f.readlines(): if req.strip() == "": # empty line continue if req.strip().startswith("#"): # this is a comment continue if req.strip().split()[0] in _PIP_OPTIONS: # this is a pip option continue detected = DetectedRequirement.parse(req, requirements_file) if detected is None: continue requirements.append(detected) return requirements
def from_setup_py(setup_file): try: from astroid import AstroidBuildingException except ImportError: syntax_exceptions = (SyntaxError,) else: syntax_exceptions = (SyntaxError, AstroidBuildingException) try: contents = _load_file_contents(setup_file) ast = AstroidBuilder(MANAGER).string_build(contents) except syntax_exceptions: # if the setup file is broken, we can't do much about that... raise CouldNotParseRequirements walker = SetupWalker(ast) requirements = [] for req in walker.get_requires(): requirements.append(DetectedRequirement.parse(req, setup_file)) return [requirement for requirement in requirements if requirement is not None]
def from_setup_py(setup_file): try: from astroid import AstroidBuildingException except ImportError: syntax_exceptions = (SyntaxError, ) else: syntax_exceptions = (SyntaxError, AstroidBuildingException) try: contents = _load_file_contents(setup_file) ast = AstroidBuilder(MANAGER).string_build(contents) except syntax_exceptions: # if the setup file is broken, we can't do much about that... raise CouldNotParseRequirements walker = SetupWalker(ast) requirements = [] for req in walker.get_requires(): requirements.append(DetectedRequirement.parse(req, setup_file)) return requirements
def _expected(self, *requirements): return [DetectedRequirement.parse(req) for req in requirements]