def test_comments_and_joins_case2(self): content = textwrap.dedent("""\ req1\\ # comment """) result = preprocess(content, None) assert list(result) == [(1, 'req1')]
def test_comments_and_joins_case2(self): content = textwrap.dedent("""\ req1\\ # comment """) result = preprocess(content, None) assert list(result) == [(1, 'req1')]
def test_comments_and_joins_case3(self): content = textwrap.dedent("""\ req1 \\ # comment req2 """) result = preprocess(content) assert list(result) == [(1, 'req1'), (3, 'req2')]
def test_comments_and_joins_case1(self) -> None: content = textwrap.dedent("""\ req1 \\ # comment \\ req2 """) result = preprocess(content) assert list(result) == [(1, "req1"), (3, "req2")]
def test_skip_regex_after_joining_case2(self, options): content = textwrap.dedent("""\ pattern \\ line2 line3 """) skip_requirements_regex = 'pattern' result = preprocess(content, skip_requirements_regex) assert list(result) == [(3, 'line3')]
def test_skip_regex_after_joining_case2(self, options): content = textwrap.dedent("""\ pattern \\ line2 line3 """) options.skip_requirements_regex = 'pattern' result = preprocess(content, options) assert list(result) == [(3, 'line3')]
def test_skip_regex_after_joining_case1(self, options): content = textwrap.dedent("""\ patt\\ ern line2 """) options.skip_requirements_regex = 'pattern' result = preprocess(content, options) assert list(result) == [(3, 'line2')]
def parse_requirements(content, session=PipSession(), *args, **kwargs): """Customize pip parse_requirements.""" _content = get_file_content(content, session=session) lines_enum = pip_req.preprocess(_content, None) for line_number, line in lines_enum: try: req_iter = pip_req.process_line(line, 'requirements.txt', line_number, None, None, None, session, None, use_pep517=None, constraint=None) for req in req_iter: if req.name: yield normalize_name(req.name) except Exception as _exc: logger.error('IGNORE: {} T(EXC):{} T(con):{}' .format(str(_exc), type(_exc), type(content))) logger.error('IGNORE CONTENT: {}'.format(content))
def parse_install_requirements( requirements_lock: str, extra_pip_args: List[str]) -> List[Tuple[InstallRequirement, str]]: ps = PipSession() # This is roughly taken from pip._internal.req.req_file.parse_requirements # (https://github.com/pypa/pip/blob/21.0.1/src/pip/_internal/req/req_file.py#L127) in order to keep # the original line (sort-of, its preprocessed) from the requirements_lock file around, to pass to sub repos # as the requirement. line_parser = get_line_parser(finder=None) parser = RequirementsFileParser(ps, line_parser) install_req_and_lines: List[Tuple[InstallRequirement, str]] = [] _, content = get_file_content(requirements_lock, ps) for parsed_line, (_, line) in zip( parser.parse(requirements_lock, constraint=False), preprocess(content)): if parsed_line.is_requirement: install_req_and_lines.append( (constructors.install_req_from_line(parsed_line.requirement), line)) else: extra_pip_args.extend(shlex.split(line)) return install_req_and_lines
def test_skip_regex_no_options(self): pattern = None line = '--extra-index-url Good' assert [(1, line)] == list(preprocess(line, pattern))