Python и Swagger 2 - класс импорта для вложенного объекта работает некорректно - PullRequest
0 голосов
/ 06 февраля 2020

У меня проблема с генерацией кода из Swagger-Codegen.

Я создал следующие определения объектов с помощью Swagger:

...
definitions:
  Object1:
    type: "object"
    properties:
      id:
        type: "integer"
        format: "int64"
      obj2:
        $ref: "#/definitions/Object2"
  Object2:
    type: "object"
    properties:
      id:
        type: "integer"
        format: "int64"
      name:
        type: "string"
...

Затем я экспортировал файл YAML и сгенерировал заглушку. сервер для python - flask.

Когда я пытаюсь запустить сервер flask, я получаю сообщение об ошибке:

NameError: name 'Object2' is not defined

Файл __init__.py был автоматически создан и содержит импорт для классов обеих моделей:

from swagger.models.object1 import Object1
from swagger.models.object2 import Object2

Если я добавлю импорт в класс Object2, я получу эту ошибку вместо:

object1.py

from swagger.models import Object2
ImportError: cannot import name 'Object2' from partially initialized module 'swagger.models' (most likely due to a circular import)

Ошибка устраняется только в том случае, если я добавлю этот импорт в object1.py :

from swagger.models.object2 import Object2

Поскольку код генерируется и любые изменения будут можно ли импортировать класс Object2?

Я пытался отредактировать шаблон model.mustache , но не смог найти способ разрешить импорт Мне нужны модели.

Спасибо всем, кто может мне помочь.

...