From 96890c2ffa6bd48dacdc1c1f7e93655f5bbc34c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Alexandre=20C=C3=B4t=C3=A9?= Date: Tue, 3 Feb 2026 13:06:46 -0500 Subject: [PATCH 1/4] In Python 3.13, locals() return a snapshot of the local scope. --- textworld/envs/pddl/textgen/__init__.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/textworld/envs/pddl/textgen/__init__.py b/textworld/envs/pddl/textgen/__init__.py index 27826a4d..6d233973 100644 --- a/textworld/envs/pddl/textgen/__init__.py +++ b/textworld/envs/pddl/textgen/__init__.py @@ -93,8 +93,7 @@ def __repr__(self): def derive(self, context=None): context = context or self.context - locals().update(context["variables"]) - value = eval(self.expression) + value = eval(self.expression, None, context["variables"]) return [TerminalSymbol(value)] From 8420386e3cedbbd725bd3435d5b9b80133230e7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Alexandre=20C=C3=B4t=C3=A9?= Date: Tue, 3 Feb 2026 13:07:29 -0500 Subject: [PATCH 2/4] Bump version to 1.7.1 --- textworld/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/textworld/version.py b/textworld/version.py index 0e1a38d3..48c2f6b0 100644 --- a/textworld/version.py +++ b/textworld/version.py @@ -1 +1 @@ -__version__ = '1.7.0' +__version__ = '1.7.1' From 4944375f75ee5f9c9fe4d26d60df7e8d5258a85d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Alexandre=20C=C3=B4t=C3=A9?= Date: Tue, 3 Feb 2026 13:19:53 -0500 Subject: [PATCH 3/4] Add python 3.14 runner --- .github/workflows/tests.yml | 2 +- requirements-full.txt | 3 ++- requirements.txt | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index d71dde5f..ea3a0ad9 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -13,7 +13,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, macos-latest-large, macos-latest] - python: ['3.10', '3.12'] + python: ['3.10', '3.12', '3.14'] steps: - uses: actions/checkout@v5 - name: Use Python ${{ matrix.python }} diff --git a/requirements-full.txt b/requirements-full.txt index dda5d833..2ecec41f 100644 --- a/requirements-full.txt +++ b/requirements-full.txt @@ -1,5 +1,6 @@ # Main dependencies -numpy>=1.14.5 +# Note: NumPy support for Python 3.14 is not stable yet. Use Python 3.13 or earlier. +numpy>=1.14.5; python_version < '3.14' tqdm>=4.17.1 networkx>=2 more_itertools diff --git a/requirements.txt b/requirements.txt index 8a1184c0..e9c2a936 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,6 @@ # Main dependencies -numpy>=1.14.5 +# Note: NumPy support for Python 3.14 is not stable yet. Use Python 3.13 or earlier. +numpy>=1.14.5; python_version < '3.14' tqdm>=4.17.1 networkx>=2 more_itertools From 4a5b0f080ee32814f125615a8aee48640fea777c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Alexandre=20C=C3=B4t=C3=A9?= Date: Tue, 3 Feb 2026 14:03:04 -0500 Subject: [PATCH 4/4] Do not use bare except --- textworld/envs/wrappers/tw_inform7.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/textworld/envs/wrappers/tw_inform7.py b/textworld/envs/wrappers/tw_inform7.py index 0c115ea2..0d6eab4a 100644 --- a/textworld/envs/wrappers/tw_inform7.py +++ b/textworld/envs/wrappers/tw_inform7.py @@ -137,7 +137,7 @@ def _gather_infos(self): if self.state[info] is not None and type(self.state[info]) is not int: try: self.state[info] = int(self.state[info].strip()) - except: + except ValueError: self.state[info] = int(self.state[info].strip().split("\n")[0]) self.state["won"] = '*** The End ***' in self.state["feedback"]