Skip to content
This repository is currently being migrated. It's locked while the migration is in progress.
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 14 additions & 3 deletions build_swagger_spec.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
import sys
import argparse
import json
import pkg_resources
import importlib
import importlib.metadata
from flask_swagger import swagger

sys.path.append(os.getcwd())
Expand All @@ -15,11 +16,21 @@
parser.add_argument('--host', default=None)
parser.add_argument('--base-path', default=None)
parser.add_argument('--version', default=None, help='Specify a spec version')
parser.add_argument('--from-file-keyword', default=None, help='from file keyword')

args = parser.parse_args()


def run():
app = pkg_resources.EntryPoint.parse("x=%s" % args.app).resolve()
entries = importlib.metadata.entry_points(value=args.app)
print(f'build_swagger_spec.run: app: {args.app} entries: ({len(entries)}/{entries})')
for entry in entries:
pass

the_module = entry.module
the_var = entry.value.split(':')[1]
mod = importlib.import_module(the_module)
app = getattr(mod, the_var)

# load the base template
template = None
Expand All @@ -36,7 +47,7 @@ def run():
for d in rawdefs.keys():
template['definitions'][d] = rawdefs[d]

spec = swagger(app, template=template)
spec = swagger(app, template=template, from_file_keyword=args.from_file_keyword)
if args.host is not None:
spec['host'] = args.host
if args.base_path is not None:
Expand Down