LLNL / ATS

ATS - Automated Testing System - is an open-source, Python-based tool for automating the running of tests of an application across a broad range of high performance computers.
BSD 3-Clause "New" or "Revised" License
7 stars 5 forks source link

Resolve circular dependency in "executables.py" #24

Closed davidbloss closed 1 year ago

davidbloss commented 3 years ago

Problem

In "ats/src/ats/executables.py" the import statement

from configuration import machine

is called from within the Executable class' init function.

This is a circular dependency workaround since "configuration.py" imports "machines.py" "machines.py" imports "configuration.py" (the contents of machines.py are not imported yet) "configuration.py" imports "executables.py" and "executables.py" imports "configuration.machine" (more accurately: from configuration import machine).

For now the code works since Executable (in executables.py) does not try to reference configuration.machine until after it has been imported elsewhere.

Goal

Resolve dependencies so "from configuration import machine" can exist outside of the Executable.init() call.