Fix missing removeprefix in pseudo_builder.py
This commit is contained in:
parent
d876639c3e
commit
8585380eae
@ -12,6 +12,7 @@ import toml
|
||||
from wheel.wheelfile import WheelFile
|
||||
|
||||
import release_gitter as rg
|
||||
from release_gitter import removeprefix
|
||||
|
||||
|
||||
PACKAGE_NAME = "pseudo"
|
||||
@ -71,7 +72,7 @@ class _PseudoBuildBackend:
|
||||
print("Prepare meta", metadata_directory, config_settings)
|
||||
|
||||
metadata = read_metadata()
|
||||
version = metadata.version.removeprefix("v")
|
||||
version = removeprefix(metadata.version, "v")
|
||||
|
||||
# Returns distinfo dir?
|
||||
dist_info = Path(metadata_directory) / f"{PACKAGE_NAME}-{version}.dist-info"
|
||||
@ -118,7 +119,7 @@ class _PseudoBuildBackend:
|
||||
metadata_directory = Path(metadata_directory)
|
||||
|
||||
metadata = read_metadata()
|
||||
version = metadata.version.removeprefix("v")
|
||||
version = removeprefix(metadata.version, "v")
|
||||
|
||||
wheel_directory = Path(wheel_directory)
|
||||
wheel_directory.mkdir(exist_ok=True)
|
||||
|
@ -28,6 +28,24 @@ class InvalidRemoteError(ValueError):
|
||||
pass
|
||||
|
||||
|
||||
def removeprefix(s: str, pre: str) -> str:
|
||||
# Duplicate str.removeprefix for py<3.9
|
||||
try:
|
||||
return s.removeprefix(pre) # type: ignore
|
||||
except AttributeError:
|
||||
# Py < 3.9
|
||||
return s[len(pre) :] if s and s.startswith(pre) else s
|
||||
|
||||
|
||||
def removesuffix(s: str, suf: str) -> str:
|
||||
# Duplicate str.removesuffix for py<3.9
|
||||
try:
|
||||
return s.removesuffix(suf) # type: ignore
|
||||
except AttributeError:
|
||||
# Py < 3.9
|
||||
return s[: -len(suf)] if s and s.endswith(suf) else s
|
||||
|
||||
|
||||
@dataclass
|
||||
class GitRemoteInfo:
|
||||
hostname: str
|
||||
@ -93,14 +111,7 @@ def parse_git_remote(git_url: Optional[str] = None) -> GitRemoteInfo:
|
||||
f"{path[1:3]} Could not parse owner and repo from URL {git_url}"
|
||||
)
|
||||
|
||||
repo = path[2]
|
||||
try:
|
||||
repo = repo.removesuffix(".git") # type: ignore
|
||||
except AttributeError:
|
||||
# Py < 3.9
|
||||
repo = repo[: -len(".git")] if repo and repo.endswith(".git") else repo
|
||||
|
||||
return GitRemoteInfo(u.hostname, path[1], repo)
|
||||
return GitRemoteInfo(u.hostname, path[1], removesuffix(path[2], ".git"))
|
||||
|
||||
|
||||
def parse_cargo_version(p: Path) -> str:
|
||||
|
@ -20,7 +20,7 @@ class TestExpression(NamedTuple):
|
||||
args: list[Any]
|
||||
kwargs: dict[str, Any]
|
||||
expected: Any
|
||||
exception: Optional[type[Exception]]
|
||||
exception: Optional[type[Exception]] = None
|
||||
|
||||
def run(self, f: Callable):
|
||||
with self.t.subTest(f=f, args=self.args, kwargs=self.kwargs):
|
||||
@ -38,6 +38,15 @@ class TestExpression(NamedTuple):
|
||||
raise
|
||||
|
||||
|
||||
class TestGeneral(unittest.TestCase):
|
||||
def test_removesuffix(self):
|
||||
for test_case in (
|
||||
TestExpression(self, ["repo.git", ".git"], {}, "repo"),
|
||||
TestExpression(self, ["repo", ".git"], {}, "repo"),
|
||||
):
|
||||
test_case.run(release_gitter.removesuffix)
|
||||
|
||||
|
||||
class TestRemoteInfo(unittest.TestCase):
|
||||
def test_parse_remote_info(self):
|
||||
for test_case in (
|
||||
|
Loading…
Reference in New Issue
Block a user