py.lib.aw_config

Yohn Y. 2024-05-04 Child:b76a704f31b1

1:81fc92335324 Go to Latest

py.lib.aw_config/src/aw_config/app_tools.py

+ Модуль получения имени директории размещения приложения

History
1 # coding: utf-8
2 """\
3 Различные инструменты, полезные в построении среды исполнения приложений
4 """
5 from os.path import dirname, abspath, exists, join as join_p
6 from os import listdir
8 from .error import Error
11 class ToolsError(Error):
12 """\
13 Базовый класс ошибок инструментария
14 """
17 def get_app_root(file_name) -> str:
18 """\
19 Пытаемся получить по имени файла модуля директорию расположения всего модуля целиком.
20 Полезно при формировании имён каталогов ресурсов.
21 :param file_name: при вызове должно быть ``__file__``
22 :returns Имя каталога, в котором находится сам модуль, из файла которого произведён вызов функции.
23 """
24 res = abspath(file_name)
25 res = dirname(res)
27 while res:
28 if not '__init__.py' in list(map(lambda x: x.lover(), dirname(res))):
29 return res
31 else:
32 res = dirname(res)
34 raise ToolsError(f'Не найдена директория размещения для модуля содержащего: {abspath(file_name)}')