MCPcopy Create free account
hub / github.com/nodejs/node / parse_sdist_filename

Function parse_sdist_filename

tools/gyp/pylib/packaging/utils.py:146–172  ·  view source on GitHub ↗
(filename: str)

Source from the content-addressed store, hash-verified

144
145
146def parse_sdist_filename(filename: str) -> Tuple[NormalizedName, Version]:
147 if filename.endswith(".tar.gz"):
148 file_stem = filename[: -len(".tar.gz")]
149 elif filename.endswith(".zip"):
150 file_stem = filename[: -len(".zip")]
151 else:
152 raise InvalidSdistFilename(
153 f"Invalid sdist filename (extension must be '.tar.gz' or '.zip'):"
154 f" {filename}"
155 )
156
157 # We are requiring a PEP 440 version, which cannot contain dashes,
158 # so we split on the last dash.
159 name_part, sep, version_part = file_stem.rpartition("-")
160 if not sep:
161 raise InvalidSdistFilename(f"Invalid sdist filename: {filename}")
162
163 name = canonicalize_name(name_part)
164
165 try:
166 version = Version(version_part)
167 except InvalidVersion as e:
168 raise InvalidSdistFilename(
169 f"Invalid sdist filename (invalid version): {filename}"
170 ) from e
171
172 return (name, version)

Callers

nothing calls this directly

Calls 4

canonicalize_nameFunction · 0.85
VersionClass · 0.70
rpartitionMethod · 0.45

Tested by

no test coverage detected