MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / main

Function main

tools/trace_orm_adapter.py:158–215  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

156
157
158def main():
159 global DEBUG_ADAPT_STEP
160
161 parser = argparse.ArgumentParser()
162 parser.add_argument(
163 "-d", "--debug", type=int, help="breakpoint at this adaptation step"
164 )
165 parser.add_argument(
166 "-m",
167 "--module",
168 type=str,
169 help="import module name instead of running a script",
170 )
171 parser.add_argument(
172 "args", metavar="N", type=str, nargs="*", help="additional arguments"
173 )
174
175 argparse_args = []
176 sys_argv = list(sys.argv)
177
178 progname = sys_argv.pop(0)
179
180 # this is a little crazy, works at the moment for:
181 # module w args:
182 # python tools/trace_orm_adapter.py -m pytest test/orm/test_query.py -s
183 # script:
184 # python tools/trace_orm_adapter.py test3.py
185 has_module = False
186 while sys_argv:
187 arg = sys_argv.pop(0)
188 if arg in ("-m", "--module", "-d", "--debug"):
189 argparse_args.append(arg)
190 argparse_args.append(sys_argv.pop(0))
191 has_module = arg in ("-m", "--module")
192 else:
193 if not has_module:
194 argparse_args.append(arg)
195 else:
196 sys_argv.insert(0, arg)
197 break
198
199 options = parser.parse_args(argparse_args)
200 sys.argv = ["program.py"] + sys_argv
201
202 if options.module == "pytest":
203 sys.argv.extend(["--capture", "sys"])
204
205 import runpy
206
207 if options.debug:
208 DEBUG_ADAPT_STEP = options.debug
209
210 if options.module:
211 runpy.run_module(options.module, run_name="__main__")
212 else:
213 progname = options.args[0]
214
215 runpy.run_path(progname)

Callers 1

Calls 4

popMethod · 0.45
appendMethod · 0.45
insertMethod · 0.45
extendMethod · 0.45

Tested by

no test coverage detected