mirror of https://github.com/exaloop/codon.git
21 lines
673 B
Python
21 lines
673 B
Python
# Copyright (C) 2022-2025 Exaloop Inc. <https://exaloop.io>
|
|
|
|
def splitext(p: str) -> Tuple[str, str]:
|
|
"""
|
|
Split the extension from a pathname.
|
|
Extension is everything from the last dot to the end, ignoring
|
|
leading dots. Returns "(root, ext)"; ext may be empty."""
|
|
sep = "/"
|
|
extsep = "."
|
|
|
|
sepIndex = p.rfind(sep)
|
|
dotIndex = p.rfind(extsep)
|
|
if dotIndex > sepIndex:
|
|
# skip all leading dots
|
|
filenameIndex = sepIndex + 1
|
|
while filenameIndex < dotIndex:
|
|
if p[filenameIndex : filenameIndex + 1] != extsep:
|
|
return p[:dotIndex], p[dotIndex:]
|
|
filenameIndex += 1
|
|
return p, p[:0]
|