diff --git a/.github/workflows/docs-check.yml b/.github/workflows/docs-check.yml index 09d16a3..f29e4b3 100644 --- a/.github/workflows/docs-check.yml +++ b/.github/workflows/docs-check.yml @@ -7,6 +7,7 @@ on: jobs: build: + name: Docs Check runs-on: ubuntu-latest steps: diff --git a/.github/workflows/docs-deploy.yml b/.github/workflows/docs-deploy.yml index 0889c69..c062b89 100644 --- a/.github/workflows/docs-deploy.yml +++ b/.github/workflows/docs-deploy.yml @@ -12,6 +12,7 @@ permissions: jobs: build: + name: Docs Deploy runs-on: ubuntu-latest steps: diff --git a/src/einspect/views/view_function.py b/src/einspect/views/view_function.py index ce3178b..b637e42 100644 --- a/src/einspect/views/view_function.py +++ b/src/einspect/views/view_function.py @@ -147,18 +147,18 @@ def vectorcall(self, value: Callable) -> None: self._pyobject.vectorcall = vectorcallfunc(value) @property - def func_version(self) -> int: + def version(self) -> int: if Version.PY_3_11.below(): raise AttributeError( - "PyFunctionObject does not have func_version below Python 3.11" + "PyFunctionObject does not have version below Python 3.11" ) return self._pyobject.func_version - @func_version.setter + @version.setter @unsafe - def func_version(self, value: int) -> None: + def version(self, value: int) -> None: if Version.PY_3_11.below(): raise AttributeError( - "PyFunctionObject does not have func_version below Python 3.11" + "PyFunctionObject does not have version below Python 3.11" ) self._pyobject.func_version = value diff --git a/tests/views/test_view_function.py b/tests/views/test_view_function.py index 35af6af..f604cb8 100644 --- a/tests/views/test_view_function.py +++ b/tests/views/test_view_function.py @@ -2,6 +2,7 @@ import sys from types import FunctionType +from unittest.mock import patch import pytest @@ -47,6 +48,24 @@ def test_builtins(self): v = self.view_type(obj) assert v.builtins == obj.__globals__["__builtins__"] + @pytest.mark.skipif(sys.version_info < (3, 11), reason="Python 3.11+ only") + def test_version(self): + obj = self.get_obj() + v = self.view_type(obj) + assert v.version == v._pyobject.func_version + with v.unsafe(): + v.version = v._pyobject.func_version + + @patch("einspect.compat.sys.version_info", (3, 10)) + def test_version_error(self): + """FunctionView.version should raise AttributeError on Python < 3.11""" + obj = self.get_obj() + v = self.view_type(obj) + with pytest.raises(AttributeError): + _ = v.version + with pytest.raises(AttributeError), v.unsafe(): + v.version = 0 + def test_globals(self): # noinspection PyUnresolvedReferences def foo():