У меня есть автоматически сгенерированный код из swagger-codegen. Это некоторый контекст:
swagger_client
├── api
│ ├── foo_api.py
│ ├── __init__.py
├── api_client.py
├── configuration.py
├── __init__.py
├── models
│ ├── foo_function.py
│ ├── __init__.py
└── rest.py
cat swagger_client/api/__init__.py
from __future__ import absolute_import
# flake8: noqa
# import apis into api package
from swagger_client.api.foo_api import FooApi
... #(multi imports)
Теперь я хочу добавить этот пакет как субмодуль в другой модуль как workflows/bar/swagger_client
и использовать его в bar/
. Структура каталогов должна выглядеть следующим образом:
workflows
├── __init__.py
├── bar
│ ├── bar_function.py
│ ├── __init__.py
└── swagger_client
Чтобы это работало, мне нужно изменить все относительные пути импорта во многих различных файлах, таких как swagger_client/api/__init__.py
.
from swagger_client.api.foo_api import FooApi --> from workflows.bar.swagger_client.api.foo_api import FooApi
Из-за организационной структуры каталогов я не могу сохранить swagger_client
в root. Как мне сделать swagger_client
как подмодуль? Изменение всех относительных путей не кажется лучшим способом, так как этот автоматически сгенерированный код можно заменить в любое время (весь смысл автогенерации). Как люди используют такой автоматически сгенерированный код?