From 91a250cd3fe040e689e831f6285e03353f2d4c63 Mon Sep 17 00:00:00 2001 From: Mia Gohary Date: Thu, 9 Jul 2026 14:04:27 +0300 Subject: [PATCH] Fix NameError from TYPE_CHECKING-only annotations evaluated at runtime Several modules imported types (e.g. Molecule, Atom, ARCSpecies) only under `if TYPE_CHECKING:`, but referenced them unquoted in real function/class signatures. Since those names never exist at runtime, importing arc.common (and transitively the rest of the package) raised NameError. Same issue affected a few self-referencing class annotations (e.g. Level, SSHClient) and one genuinely missing import in parser.py. Add `from __future__ import annotations` to defer annotation evaluation across all 53 affected files, and add the missing TYPE_CHECKING import for ARCSpecies in arc/parser/parser.py. Co-Authored-By: Claude Sonnet 5 --- arc/checks/nmd.py | 2 ++ arc/checks/ts.py | 2 ++ arc/common.py | 2 ++ arc/family/family.py | 2 ++ arc/job/adapters/cfour.py | 2 ++ arc/job/adapters/common.py | 2 ++ arc/job/adapters/gaussian.py | 2 ++ arc/job/adapters/mockter.py | 2 ++ arc/job/adapters/molpro.py | 2 ++ arc/job/adapters/obabel.py | 2 ++ arc/job/adapters/orca.py | 2 ++ arc/job/adapters/psi_4.py | 2 ++ arc/job/adapters/qchem.py | 2 ++ arc/job/adapters/terachem.py | 2 ++ arc/job/adapters/torch_ani.py | 2 ++ arc/job/adapters/ts/autotst_ts.py | 2 ++ arc/job/adapters/ts/gcn_ts.py | 2 ++ arc/job/adapters/ts/heuristics.py | 2 ++ arc/job/adapters/ts/kinbot_ts.py | 2 ++ arc/job/adapters/ts/linear.py | 2 ++ arc/job/adapters/ts/linear_utils/addition.py | 2 ++ arc/job/adapters/ts/linear_utils/families.py | 2 ++ arc/job/adapters/ts/linear_utils/geom_utils.py | 2 ++ arc/job/adapters/ts/linear_utils/isomerization.py | 2 ++ arc/job/adapters/ts/linear_utils/local_geometry.py | 2 ++ arc/job/adapters/ts/linear_utils/math_zmat.py | 2 ++ arc/job/adapters/ts/linear_utils/migration_inference.py | 2 ++ arc/job/adapters/ts/linear_utils/path_spec.py | 2 ++ arc/job/adapters/ts/linear_utils/postprocess.py | 2 ++ arc/job/adapters/ts/orca_neb.py | 2 ++ arc/job/adapters/ts/xtb_gsm.py | 2 ++ arc/job/adapters/xtb_adapter.py | 2 ++ arc/job/factory.py | 2 ++ arc/job/pipe/pipe_planner.py | 2 ++ arc/job/pipe/pipe_run.py | 2 ++ arc/job/pipe/pipe_state.py | 2 ++ arc/job/ssh.py | 2 ++ arc/level.py | 2 ++ arc/mapping/driver.py | 2 ++ arc/mapping/engine.py | 2 ++ arc/parser/adapter.py | 2 ++ arc/parser/adapters/qchem.py | 2 ++ arc/parser/adapters/terachem.py | 2 ++ arc/parser/adapters/yaml.py | 2 ++ arc/parser/parser.py | 6 +++++- arc/plotter.py | 2 ++ arc/reaction/reaction.py | 2 ++ arc/scheduler.py | 2 ++ arc/species/converter.py | 2 ++ arc/species/species.py | 2 ++ arc/species/zmat.py | 2 ++ arc/statmech/arkane.py | 2 ++ arc/statmech/factory.py | 2 ++ 53 files changed, 109 insertions(+), 1 deletion(-) diff --git a/arc/checks/nmd.py b/arc/checks/nmd.py index 14e65ef247..9d7ecdc4cb 100644 --- a/arc/checks/nmd.py +++ b/arc/checks/nmd.py @@ -2,6 +2,8 @@ A module for checking the normal mode displacement of a TS. """ +from __future__ import annotations + import numpy as np from collections import Counter from itertools import product diff --git a/arc/checks/ts.py b/arc/checks/ts.py index 5e731f93de..96bf9bcb47 100644 --- a/arc/checks/ts.py +++ b/arc/checks/ts.py @@ -2,6 +2,8 @@ A module for checking the quality of TS-related calculations, contains helper functions for Scheduler. """ +from __future__ import annotations + from itertools import product import os diff --git a/arc/common.py b/arc/common.py index ef54b430e8..58559a8059 100644 --- a/arc/common.py +++ b/arc/common.py @@ -6,6 +6,8 @@ VERSION is the full ARC version, using `semantic versioning `_. """ +from __future__ import annotations + import ast import datetime import logging diff --git a/arc/family/family.py b/arc/family/family.py index 13fb418bd7..123d1960b6 100644 --- a/arc/family/family.py +++ b/arc/family/family.py @@ -2,6 +2,8 @@ A module for working with RMG reaction families. """ +from __future__ import annotations + from typing import TYPE_CHECKING import ast import functools diff --git a/arc/job/adapters/cfour.py b/arc/job/adapters/cfour.py index a704f23501..511609692a 100644 --- a/arc/job/adapters/cfour.py +++ b/arc/job/adapters/cfour.py @@ -7,6 +7,8 @@ http://slater.chemie.uni-mainz.de/cfour/index.php?n=Main.ListOfKeywordsInAlphabeticalOrder """ +from __future__ import annotations + import datetime import math import os diff --git a/arc/job/adapters/common.py b/arc/job/adapters/common.py index 06c8ccf605..bf2965660d 100644 --- a/arc/job/adapters/common.py +++ b/arc/job/adapters/common.py @@ -3,6 +3,8 @@ As such, it should not import any other ARC modules to avoid circular imports. """ +from __future__ import annotations + import datetime import os import shutil diff --git a/arc/job/adapters/gaussian.py b/arc/job/adapters/gaussian.py index 314e796641..27bcd0ec75 100644 --- a/arc/job/adapters/gaussian.py +++ b/arc/job/adapters/gaussian.py @@ -4,6 +4,8 @@ https://gaussian.com/ """ +from __future__ import annotations + import datetime import math import os diff --git a/arc/job/adapters/mockter.py b/arc/job/adapters/mockter.py index 0a022d2f60..d0b7b51da5 100644 --- a/arc/job/adapters/mockter.py +++ b/arc/job/adapters/mockter.py @@ -2,6 +2,8 @@ An adapter for dummy jobs, meant for testing and debugging only. """ +from __future__ import annotations + import datetime import os from typing import TYPE_CHECKING diff --git a/arc/job/adapters/molpro.py b/arc/job/adapters/molpro.py index 0ed556bf55..7d1811e86b 100644 --- a/arc/job/adapters/molpro.py +++ b/arc/job/adapters/molpro.py @@ -4,6 +4,8 @@ https://www.molpro.net/ """ +from __future__ import annotations + import datetime import math import os diff --git a/arc/job/adapters/obabel.py b/arc/job/adapters/obabel.py index 781cace586..26f9aa84ff 100644 --- a/arc/job/adapters/obabel.py +++ b/arc/job/adapters/obabel.py @@ -3,6 +3,8 @@ http://openbabel.org/docs/current/ """ +from __future__ import annotations + import datetime import os import subprocess diff --git a/arc/job/adapters/orca.py b/arc/job/adapters/orca.py index 190de98a1a..832ce4962a 100644 --- a/arc/job/adapters/orca.py +++ b/arc/job/adapters/orca.py @@ -4,6 +4,8 @@ https://orcaforum.kofo.mpg.de/app.php/portal """ +from __future__ import annotations + import datetime import math import os diff --git a/arc/job/adapters/psi_4.py b/arc/job/adapters/psi_4.py index 8d280f5ebc..7522936f2e 100644 --- a/arc/job/adapters/psi_4.py +++ b/arc/job/adapters/psi_4.py @@ -4,6 +4,8 @@ https://www.psicode.org/ """ +from __future__ import annotations + import datetime import math import os diff --git a/arc/job/adapters/qchem.py b/arc/job/adapters/qchem.py index 389ca244ae..3dd1b3880d 100644 --- a/arc/job/adapters/qchem.py +++ b/arc/job/adapters/qchem.py @@ -4,6 +4,8 @@ https://www.q-chem.com/ """ +from __future__ import annotations + import datetime import os from typing import TYPE_CHECKING diff --git a/arc/job/adapters/terachem.py b/arc/job/adapters/terachem.py index 49b9c5af0f..fafeed6fa9 100644 --- a/arc/job/adapters/terachem.py +++ b/arc/job/adapters/terachem.py @@ -4,6 +4,8 @@ http://www.petachem.com/products.html """ +from __future__ import annotations + import datetime import math import os diff --git a/arc/job/adapters/torch_ani.py b/arc/job/adapters/torch_ani.py index 3a122b6f5c..b50e3b5d31 100644 --- a/arc/job/adapters/torch_ani.py +++ b/arc/job/adapters/torch_ani.py @@ -6,6 +6,8 @@ ASE: https://wiki.fysik.dtu.dk/ase/index.html, https://core.ac.uk/download/84004505.pdf """ +from __future__ import annotations + import datetime import os from typing import TYPE_CHECKING diff --git a/arc/job/adapters/ts/autotst_ts.py b/arc/job/adapters/ts/autotst_ts.py index 28dfebb26e..dc01926250 100644 --- a/arc/job/adapters/ts/autotst_ts.py +++ b/arc/job/adapters/ts/autotst_ts.py @@ -4,6 +4,8 @@ https://github.com/ReactionMechanismGenerator/AutoTST """ +from __future__ import annotations + import datetime import os from typing import TYPE_CHECKING diff --git a/arc/job/adapters/ts/gcn_ts.py b/arc/job/adapters/ts/gcn_ts.py index 98df155916..3d15170535 100644 --- a/arc/job/adapters/ts/gcn_ts.py +++ b/arc/job/adapters/ts/gcn_ts.py @@ -7,6 +7,8 @@ https://chemrxiv.org/articles/Genereting_Transition_States_of_Isomerization_Reactions_with_Deep_Learning/12302084 """ +from __future__ import annotations + import datetime import os from typing import TYPE_CHECKING diff --git a/arc/job/adapters/ts/heuristics.py b/arc/job/adapters/ts/heuristics.py index 805ea97067..11abd92bb9 100644 --- a/arc/job/adapters/ts/heuristics.py +++ b/arc/job/adapters/ts/heuristics.py @@ -15,6 +15,8 @@ Can/should we try both? """ +from __future__ import annotations + import copy import datetime import itertools diff --git a/arc/job/adapters/ts/kinbot_ts.py b/arc/job/adapters/ts/kinbot_ts.py index d723003946..608c3a9eef 100644 --- a/arc/job/adapters/ts/kinbot_ts.py +++ b/arc/job/adapters/ts/kinbot_ts.py @@ -4,6 +4,8 @@ https://github.com/zadorlab/KinBot """ +from __future__ import annotations + import datetime from typing import TYPE_CHECKING diff --git a/arc/job/adapters/ts/linear.py b/arc/job/adapters/ts/linear.py index 8bf339f740..2bd797f6a3 100644 --- a/arc/job/adapters/ts/linear.py +++ b/arc/job/adapters/ts/linear.py @@ -132,6 +132,8 @@ degraded-mode smoke test). """ +from __future__ import annotations + import copy import datetime import math diff --git a/arc/job/adapters/ts/linear_utils/addition.py b/arc/job/adapters/ts/linear_utils/addition.py index f75ea06e6e..7ef85762fd 100644 --- a/arc/job/adapters/ts/linear_utils/addition.py +++ b/arc/job/adapters/ts/linear_utils/addition.py @@ -2,6 +2,8 @@ Fragment-based addition / dissociation TS geometry builders """ +from __future__ import annotations + from collections import deque from functools import partial from itertools import permutations, product diff --git a/arc/job/adapters/ts/linear_utils/families.py b/arc/job/adapters/ts/linear_utils/families.py index 7053051502..f98e0b4b06 100644 --- a/arc/job/adapters/ts/linear_utils/families.py +++ b/arc/job/adapters/ts/linear_utils/families.py @@ -22,6 +22,8 @@ unambiguously or the resulting geometry collides. """ +from __future__ import annotations + import logging from collections import deque from typing import TYPE_CHECKING diff --git a/arc/job/adapters/ts/linear_utils/geom_utils.py b/arc/job/adapters/ts/linear_utils/geom_utils.py index f7718b3de4..d1c8ef7339 100644 --- a/arc/job/adapters/ts/linear_utils/geom_utils.py +++ b/arc/job/adapters/ts/linear_utils/geom_utils.py @@ -13,6 +13,8 @@ * :func:`split_mol_at_bonds`: split a molecule into connected components after removing specified bonds. """ +from __future__ import annotations + from collections import deque from typing import TYPE_CHECKING from collections.abc import Sequence diff --git a/arc/job/adapters/ts/linear_utils/isomerization.py b/arc/job/adapters/ts/linear_utils/isomerization.py index 6d50919f2e..2778d45832 100644 --- a/arc/job/adapters/ts/linear_utils/isomerization.py +++ b/arc/job/adapters/ts/linear_utils/isomerization.py @@ -4,6 +4,8 @@ extracted from ``arc.job.adapters.ts.linear``. """ +from __future__ import annotations + from collections import defaultdict, deque from typing import TYPE_CHECKING diff --git a/arc/job/adapters/ts/linear_utils/local_geometry.py b/arc/job/adapters/ts/linear_utils/local_geometry.py index 94f8b6e715..cff24c0a3d 100644 --- a/arc/job/adapters/ts/linear_utils/local_geometry.py +++ b/arc/job/adapters/ts/linear_utils/local_geometry.py @@ -58,6 +58,8 @@ :mod:`arc.job.adapters.ts.linear_utils.migration_inference`. """ +from __future__ import annotations + from typing import TYPE_CHECKING from collections.abc import Sequence diff --git a/arc/job/adapters/ts/linear_utils/math_zmat.py b/arc/job/adapters/ts/linear_utils/math_zmat.py index 10170d2fde..5412f0f858 100644 --- a/arc/job/adapters/ts/linear_utils/math_zmat.py +++ b/arc/job/adapters/ts/linear_utils/math_zmat.py @@ -3,6 +3,8 @@ extracted from ``arc.job.adapters.ts.linear``. """ +from __future__ import annotations + import copy from typing import TYPE_CHECKING diff --git a/arc/job/adapters/ts/linear_utils/migration_inference.py b/arc/job/adapters/ts/linear_utils/migration_inference.py index fe0f8319da..cad3dbc1ce 100644 --- a/arc/job/adapters/ts/linear_utils/migration_inference.py +++ b/arc/job/adapters/ts/linear_utils/migration_inference.py @@ -32,6 +32,8 @@ or ``None``; they never mutate inputs. """ +from __future__ import annotations + from typing import TYPE_CHECKING from collections.abc import Sequence diff --git a/arc/job/adapters/ts/linear_utils/path_spec.py b/arc/job/adapters/ts/linear_utils/path_spec.py index 3ab7216df4..45b4d6d099 100644 --- a/arc/job/adapters/ts/linear_utils/path_spec.py +++ b/arc/job/adapters/ts/linear_utils/path_spec.py @@ -60,6 +60,8 @@ change generation policies. """ +from __future__ import annotations + from collections import deque from dataclasses import dataclass, field from enum import Enum diff --git a/arc/job/adapters/ts/linear_utils/postprocess.py b/arc/job/adapters/ts/linear_utils/postprocess.py index 56d064c3a1..39d1e66582 100644 --- a/arc/job/adapters/ts/linear_utils/postprocess.py +++ b/arc/job/adapters/ts/linear_utils/postprocess.py @@ -24,6 +24,8 @@ based on the ``FAMILY_POSTPROCESSORS`` registry. """ +from __future__ import annotations + from typing import TYPE_CHECKING from collections.abc import Callable, Sequence diff --git a/arc/job/adapters/ts/orca_neb.py b/arc/job/adapters/ts/orca_neb.py index 0647fd3169..7840c627ed 100644 --- a/arc/job/adapters/ts/orca_neb.py +++ b/arc/job/adapters/ts/orca_neb.py @@ -5,6 +5,8 @@ https://www.faccts.de/docs/orca/6.1/manual/contents/structurereactivity/neb.html """ +from __future__ import annotations + import datetime import os from typing import TYPE_CHECKING diff --git a/arc/job/adapters/ts/xtb_gsm.py b/arc/job/adapters/ts/xtb_gsm.py index bcf7d73bda..ea8a3779b1 100644 --- a/arc/job/adapters/ts/xtb_gsm.py +++ b/arc/job/adapters/ts/xtb_gsm.py @@ -12,6 +12,8 @@ Advanced GSM settings: https://github.com/ZimmermanGroup/molecularGSM/wiki#items-of-note-and-advanced-options """ +from __future__ import annotations + import datetime import os import shutil diff --git a/arc/job/adapters/xtb_adapter.py b/arc/job/adapters/xtb_adapter.py index 43ef76e51a..e041a030bf 100644 --- a/arc/job/adapters/xtb_adapter.py +++ b/arc/job/adapters/xtb_adapter.py @@ -6,6 +6,8 @@ run types: https://xtb-docs.readthedocs.io/en/latest/commandline.html?highlight=--grad#runtypes """ +from __future__ import annotations + import datetime import os from typing import TYPE_CHECKING diff --git a/arc/job/factory.py b/arc/job/factory.py index c6156d822a..16b885a648 100644 --- a/arc/job/factory.py +++ b/arc/job/factory.py @@ -2,6 +2,8 @@ A module for generating job adapters. """ +from __future__ import annotations + from typing import TYPE_CHECKING from arc.exceptions import JobError diff --git a/arc/job/pipe/pipe_planner.py b/arc/job/pipe/pipe_planner.py index 660ed5af8e..2a5fdfceb1 100644 --- a/arc/job/pipe/pipe_planner.py +++ b/arc/job/pipe/pipe_planner.py @@ -24,6 +24,8 @@ hitting ``min_tasks``. Wire when workload stats justify it. """ +from __future__ import annotations + from collections import Counter from typing import TYPE_CHECKING from collections.abc import Callable diff --git a/arc/job/pipe/pipe_run.py b/arc/job/pipe/pipe_run.py index 3c305117b2..a2068a93e7 100644 --- a/arc/job/pipe/pipe_run.py +++ b/arc/job/pipe/pipe_run.py @@ -12,6 +12,8 @@ All QA, troubleshooting, and downstream branching remain in mother ARC. """ +from __future__ import annotations + import json import os import stat diff --git a/arc/job/pipe/pipe_state.py b/arc/job/pipe/pipe_state.py index 7333938d14..5f9ef42e62 100644 --- a/arc/job/pipe/pipe_state.py +++ b/arc/job/pipe/pipe_state.py @@ -22,6 +22,8 @@ worker.log # per-attempt log """ +from __future__ import annotations + import fcntl import json import os diff --git a/arc/job/ssh.py b/arc/job/ssh.py index 6b1b78626f..1f6b19b437 100644 --- a/arc/job/ssh.py +++ b/arc/job/ssh.py @@ -6,6 +6,8 @@ * delete scratch files of a failed job: ssh nodeXX; rm scratch/dhdhdhd/job_number """ +from __future__ import annotations + import datetime import logging import os diff --git a/arc/level.py b/arc/level.py index d5dfe28443..799257ff14 100644 --- a/arc/level.py +++ b/arc/level.py @@ -2,6 +2,8 @@ A module for working with levels of theory. """ +from __future__ import annotations + import os from collections.abc import Iterable diff --git a/arc/mapping/driver.py b/arc/mapping/driver.py index e18fbb756f..516a0951ff 100644 --- a/arc/mapping/driver.py +++ b/arc/mapping/driver.py @@ -7,6 +7,8 @@ 3) If the reaction is supported by RMG, it is sent to the driver. Else, it is mapped with map_general_rxn. """ +from __future__ import annotations + from typing import TYPE_CHECKING from arc.common import logger diff --git a/arc/mapping/engine.py b/arc/mapping/engine.py index 98fa590f03..059d7d5a41 100644 --- a/arc/mapping/engine.py +++ b/arc/mapping/engine.py @@ -7,6 +7,8 @@ 3) The atom map is returned to the driver. """ +from __future__ import annotations + import numpy as np from collections import deque from itertools import product diff --git a/arc/parser/adapter.py b/arc/parser/adapter.py index 4f91dfda3e..9bdca5026e 100644 --- a/arc/parser/adapter.py +++ b/arc/parser/adapter.py @@ -2,6 +2,8 @@ A module for the abstract ESSAdapter class """ +from __future__ import annotations + import os import time from abc import ABC, abstractmethod diff --git a/arc/parser/adapters/qchem.py b/arc/parser/adapters/qchem.py index 22d4e18500..611dfcc7bb 100644 --- a/arc/parser/adapters/qchem.py +++ b/arc/parser/adapters/qchem.py @@ -2,6 +2,8 @@ An adapter for parsing Q-Chem log files. """ +from __future__ import annotations + from abc import ABC import numpy as np diff --git a/arc/parser/adapters/terachem.py b/arc/parser/adapters/terachem.py index 3677628781..445c2a5f07 100644 --- a/arc/parser/adapters/terachem.py +++ b/arc/parser/adapters/terachem.py @@ -2,6 +2,8 @@ An adapter for parsing CFOUR log files. """ +from __future__ import annotations + from abc import ABC import numpy as np diff --git a/arc/parser/adapters/yaml.py b/arc/parser/adapters/yaml.py index 0d63c17510..1ec5430221 100644 --- a/arc/parser/adapters/yaml.py +++ b/arc/parser/adapters/yaml.py @@ -2,6 +2,8 @@ An adapter for parsing YAML log files created by ARC for other packages. """ +from __future__ import annotations + from abc import ABC import numpy as np diff --git a/arc/parser/parser.py b/arc/parser/parser.py index 6775f62c26..7b588bfd82 100644 --- a/arc/parser/parser.py +++ b/arc/parser/parser.py @@ -2,9 +2,11 @@ A module for parsing information from various files. """ +from __future__ import annotations + import os import re -from typing import Any +from typing import TYPE_CHECKING, Any from collections.abc import Callable import numpy as np @@ -15,6 +17,8 @@ from arc.parser.factory import ess_factory from arc.species.converter import str_to_xyz +if TYPE_CHECKING: + from arc.species.species import ARCSpecies logger = get_logger() diff --git a/arc/plotter.py b/arc/plotter.py index be4f08b5d4..0744d9d077 100644 --- a/arc/plotter.py +++ b/arc/plotter.py @@ -2,6 +2,8 @@ A module for plotting and saving output files such as RMG libraries. """ +from __future__ import annotations + import matplotlib # Force matplotlib to not use any Xwindows backend. # This must be called before pylab, matplotlib.pyplot, or matplotlib.backends is imported. diff --git a/arc/reaction/reaction.py b/arc/reaction/reaction.py index 0dde981364..9af6fce467 100644 --- a/arc/reaction/reaction.py +++ b/arc/reaction/reaction.py @@ -2,6 +2,8 @@ A module for representing a reaction. """ +from __future__ import annotations + from arc.common import get_element_mass, get_logger from arc.exceptions import ReactionError, InputError from arc.family.family import ReactionFamily, get_reaction_family_products, check_family_name diff --git a/arc/scheduler.py b/arc/scheduler.py index 9a62477d86..fbed5f1e39 100644 --- a/arc/scheduler.py +++ b/arc/scheduler.py @@ -3,6 +3,8 @@ Includes spawning, terminating, checking, and troubleshooting various jobs """ +from __future__ import annotations + import datetime import itertools import os diff --git a/arc/species/converter.py b/arc/species/converter.py index 8e7ae42270..376df6441e 100644 --- a/arc/species/converter.py +++ b/arc/species/converter.py @@ -2,6 +2,8 @@ A module for performing various species-related format conversions. """ +from __future__ import annotations + import math import numpy as np import os diff --git a/arc/species/species.py b/arc/species/species.py index 4ed34eb98d..e7e273caf1 100644 --- a/arc/species/species.py +++ b/arc/species/species.py @@ -3,6 +3,8 @@ If the species is a transition state (TS), its ``ts_guesses`` attribute will have one or more ``TSGuess`` objects. """ +from __future__ import annotations + import datetime import numpy as np import os diff --git a/arc/species/zmat.py b/arc/species/zmat.py index 4a2df672d1..7bbc7b0a44 100644 --- a/arc/species/zmat.py +++ b/arc/species/zmat.py @@ -26,6 +26,8 @@ Dihedral angles may have any value. """ +from __future__ import annotations + import math import numpy as np import operator diff --git a/arc/statmech/arkane.py b/arc/statmech/arkane.py index 96de727e9a..1a8df26d58 100644 --- a/arc/statmech/arkane.py +++ b/arc/statmech/arkane.py @@ -2,6 +2,8 @@ An adapter for executing Arkane. """ +from __future__ import annotations + import os import re import shutil diff --git a/arc/statmech/factory.py b/arc/statmech/factory.py index 5dd8b8d1f9..c0587cedc7 100644 --- a/arc/statmech/factory.py +++ b/arc/statmech/factory.py @@ -2,6 +2,8 @@ A module for generating statmech adapters. """ +from __future__ import annotations + from typing import TYPE_CHECKING from arc.statmech.adapter import StatmechAdapter