mirror of
https://github.com/opendatalab/MinerU.git
synced 2026-03-27 11:08:32 +07:00
38 lines
1.4 KiB
Python
38 lines
1.4 KiB
Python
import click
|
|
|
|
|
|
def arg_parse(ctx: 'click.Context') -> dict:
|
|
# 解析额外参数
|
|
extra_kwargs = {}
|
|
i = 0
|
|
while i < len(ctx.args):
|
|
arg = ctx.args[i]
|
|
if arg.startswith('--'):
|
|
param_name = arg[2:].replace('-', '_') # 转换参数名格式
|
|
i += 1
|
|
if i < len(ctx.args) and not ctx.args[i].startswith('--'):
|
|
# 参数有值
|
|
try:
|
|
# 尝试转换为适当的类型
|
|
if ctx.args[i].lower() == 'true':
|
|
extra_kwargs[param_name] = True
|
|
elif ctx.args[i].lower() == 'false':
|
|
extra_kwargs[param_name] = False
|
|
elif '.' in ctx.args[i]:
|
|
try:
|
|
extra_kwargs[param_name] = float(ctx.args[i])
|
|
except ValueError:
|
|
extra_kwargs[param_name] = ctx.args[i]
|
|
else:
|
|
try:
|
|
extra_kwargs[param_name] = int(ctx.args[i])
|
|
except ValueError:
|
|
extra_kwargs[param_name] = ctx.args[i]
|
|
except:
|
|
extra_kwargs[param_name] = ctx.args[i]
|
|
else:
|
|
# 布尔型标志参数
|
|
extra_kwargs[param_name] = True
|
|
i -= 1
|
|
i += 1
|
|
return extra_kwargs |