MCPcopy Create free account
hub / github.com/aboutcode-org/scancode-toolkit / splitext

Function splitext

src/commoncode/fileutils.py:265–298  ·  view source on GitHub ↗

Return a tuple of strings (basename, extension) for a path. The basename is the file name minus its extension. Return an empty extension string for a directory.

(path, force_posix=False)

Source from the content-addressed store, hash-verified

263
264# TODO: FIXME: this is badly broken!!!!
265def splitext(path, force_posix=False):
266 """
267 Return a tuple of strings (basename, extension) for a path. The basename is
268 the file name minus its extension. Return an empty extension string for a
269 directory.
270 """
271 base_name = ""
272 extension = ""
273 if not path:
274 return base_name, extension
275
276 is_dir = path.endswith(
277 (
278 "\\",
279 "/",
280 )
281 )
282 path = as_posixpath(path).strip("/")
283 name = resource_name(path, force_posix)
284 if is_dir:
285 # directories never have an extension
286 base_name = name
287 extension = ""
288 elif name.startswith(".") and "." not in name[1:]:
289 # .dot files base name is the full name and they do not have an extension
290 base_name = name
291 extension = ""
292 else:
293 base_name, extension = posixpath.splitext(name)
294 # handle composed extensions of tar.gz, tar.bz2, zx,etc
295 if base_name.endswith(".tar"):
296 base_name, extension2 = posixpath.splitext(base_name)
297 extension = extension2 + extension
298 return base_name, extension
299
300
301#

Callers 8

fixed_width_file_nameFunction · 0.90
file_base_nameFunction · 0.85
file_extensionFunction · 0.85
simple-setup.pyFile · 0.85
saneyaml_setup.pyFile · 0.85
setup.pyFile · 0.85
setup.pyFile · 0.85

Calls 2

as_posixpathFunction · 0.85
resource_nameFunction · 0.85

Tested by

no test coverage detected