diff --git a/build_swagger_spec.py b/build_swagger_spec.py index 5f1be2c..c9f9412 100644 --- a/build_swagger_spec.py +++ b/build_swagger_spec.py @@ -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()) @@ -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 @@ -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: