Skip to content

Commit 918ba1b

Browse files
committed
Swift: make generator.run accept options
1 parent 6cbfb5a commit 918ba1b

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

swift/codegen/lib/generator.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,29 @@
33
import argparse
44
import logging
55
import sys
6+
from typing import Set
67

78
from . import options, render
89

910

10-
def _parse(tags):
11+
def _parse(tags: Set[str]) -> argparse.Namespace:
1112
parser = argparse.ArgumentParser()
1213
for opt in options.get(tags):
1314
opt.add_to(parser)
14-
ret = parser.parse_args()
15-
log_level = logging.DEBUG if ret.verbose else logging.INFO
16-
logging.basicConfig(format="{levelname} {message}", style='{', level=log_level)
17-
return ret
15+
return parser.parse_args()
1816

1917

20-
def run(*modules):
18+
def run(*modules, **kwargs):
2119
""" run generation functions in specified in `modules`, or in current module by default
2220
"""
2321
if modules:
24-
opts = _parse({t for m in modules for t in m.tags})
22+
if kwargs:
23+
opts = argparse.Namespace(**kwargs)
24+
else:
25+
opts = _parse({t for m in modules for t in m.tags})
26+
log_level = logging.DEBUG if opts.verbose else logging.INFO
27+
logging.basicConfig(format="{levelname} {message}", style='{', level=log_level)
2528
for m in modules:
2629
m.generate(opts, render.Renderer())
2730
else:
28-
run(sys.modules["__main__"])
31+
run(sys.modules["__main__"], **kwargs)

0 commit comments

Comments
 (0)