python: использовать пакет как субмодуль - PullRequest
0 голосов
/ 23 марта 2020

У меня есть автоматически сгенерированный код из 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 как подмодуль? Изменение всех относительных путей не кажется лучшим способом, так как этот автоматически сгенерированный код можно заменить в любое время (весь смысл автогенерации). Как люди используют такой автоматически сгенерированный код?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...