В Интернете я нашел пример файла конфигурации для создания базы журнала и цветового журнала.
Структура файла
main.py
directory.py
client.py
/utils/log.py
main, directory and client
у всех есть from utils.log import init_logger
, которая является функцией внутри моего log.py.
Для обработки main.py
импортирует функцию из directory.py
, которая импортирует функцию из client.py
.
VSCODE жалуется, что модули не могут быть импортированы , но скрипт работает нормально, без ошибок, за исключением жалоб vscode.
Я думаю, что у меня проблема с циклической зависимостью, но я не могу понять, как я должен делиться конфигурацией регистрации между всеми моими файлами, не импортируя ее .
main.py
"""
Setup Trusts Between Directories
"""
import json
from utils.log import init_logger
from directory import stage
###############
def main():
"""
MAIN TRUST FUNCTION
"""
## Initialize Logger
if __name__ == "__main__":
logger = init_logger(__name__, testing_mode=False)
logger.info("Running Creator")
## Get Outputs
new_dirs = get_output("newDirectoryIds")
config_dirs = get_output("configDirectories")
## Get Directory Stage
stage(new_dirs, config_dirs)
###############
## Run Main Function
main()
directory.py
"""
directory.py
- Loops Through List of Directories
- Returns back when stage is Active or Failed
"""
import time
from utils.log import init_logger
from get_client import get_new_client
###########
def stage(new_dirs, config_dirs):
"""
Returns Directory Stage Value
- Loops until Directory is Failed or Active
"""
## Initialize Logger
logger = init_logger(__name__, testing_mode=True)
for config_dir in config_dirs:
## Get Describe Directory Services Client
ds_client = get_new_client(config_dir["account"], "ds", "us-west-
2")
## Get All Directories in Account
temp_dirs = ds_client.describe_directories()