File tree Expand file tree Collapse file tree 2 files changed +19
-0
lines changed Expand file tree Collapse file tree 2 files changed +19
-0
lines changed Original file line number Diff line number Diff 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+
487493def sys_tags (* , warn : bool = False ) -> Iterator [Tag ]:
488494 """
489495 Returns the sequence of tag triples for the running interpreter.
Original file line number Diff line number Diff 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 } "
You can’t perform that action at this time.
0 commit comments