Skip to content

Commit 4ecc5ee

Browse files
committed
tags: add interpreter_abi
Signed-off-by: Filipe Laíns <[email protected]>
1 parent 606c71a commit 4ecc5ee

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

packaging/tags.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -484,6 +484,12 @@ def _version_nodot(version: PythonVersion) -> str:
484484
return "".join(map(str, version))
485485

486486

487+
def interpreter_abi() -> str:
488+
if interpreter_name() == "cp":
489+
return _cpython_abis(sys.version_info[:2])[0]
490+
return next(_generic_abi())
491+
492+
487493
def sys_tags(*, warn: bool = False) -> Iterator[Tag]:
488494
"""
489495
Returns the sequence of tag triples for the running interpreter.

tests/test_tags.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1239,3 +1239,16 @@ def test_cpython_first_none_any_tag(self, monkeypatch):
12391239

12401240
interpreter = f"cp{tags.interpreter_version()}"
12411241
assert tag == tags.Tag(interpreter, "none", "any")
1242+
1243+
1244+
def test_interpreter_abi(monkeypatch):
1245+
monkeypatch.setattr(tags, "interpreter_name", lambda: "pp")
1246+
monkeypatch.setattr(
1247+
sysconfig, "get_config_var", {"SOABI": "pypy39-pp73"}.__getitem__
1248+
)
1249+
assert tags.interpreter_abi() == "pypy39_pp73"
1250+
1251+
config = {"Py_DEBUG": 0, "WITH_PYMALLOC": 0, "Py_UNICODE_SIZE": 2}
1252+
monkeypatch.setattr(sysconfig, "get_config_var", config.__getitem__)
1253+
monkeypatch.setattr(tags, "interpreter_name", lambda: "cp")
1254+
assert tags.interpreter_abi() == f"cp{sys.version_info.major}{sys.version_info.minor}"

0 commit comments

Comments
 (0)