MCPcopy
hub / github.com/modelscope/ms-swift / parse_line

Function parse_line

setup.py:44–76  ·  view source on GitHub ↗

Parse information from a line in a requirements text file

(line)

Source from the content-addressed store, hash-verified

42 require_fpath = fname
43
44 def parse_line(line):
45 """
46 Parse information from a line in a requirements text file
47 """
48 if line.startswith('-r '):
49 # Allow specifying requirements in other files
50 target = line.split(' ')[1]
51 relative_base = os.path.dirname(fname)
52 absolute_target = os.path.join(relative_base, target)
53 for info in parse_require_file(absolute_target):
54 yield info
55 else:
56 info = {'line': line}
57 if line.startswith('-e '):
58 info['package'] = line.split('#egg=')[1]
59 else:
60 # Remove versioning from the package
61 pat = '(' + '|'.join(['>=', '==', '>']) + ')'
62 parts = re.split(pat, line, maxsplit=1)
63 parts = [p.strip() for p in parts]
64
65 info['package'] = parts[0]
66 if len(parts) > 1:
67 op, rest = parts[1:]
68 if ';' in rest:
69 # Handle platform specific dependencies
70 # http://setuptools.readthedocs.io/en/latest/setuptools.html#declaring-platform-specific-dependencies
71 version, platform_deps = map(str.strip, rest.split(';'))
72 info['platform_deps'] = platform_deps
73 else:
74 version = rest # NOQA
75 info['version'] = (op, version)
76 yield info
77
78 def parse_require_file(fpath):
79 with open(fpath, 'r', encoding='utf-8') as f:

Callers 1

parse_require_fileFunction · 0.85

Calls 2

parse_require_fileFunction · 0.85
splitMethod · 0.80

Tested by

no test coverage detected