Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def from_pattern(source):
source = re.sub(r'([\[\]\(\)\|]|\.\.\.)', r' \1 ', source)
source = [s for s in re.split('\s+|(\S*<.*?>)', source) if s]
return Tokens(source, error=DocoptLanguageError)
usage_sections = parse_section('usage:', doc)
if len(usage_sections) == 0:
raise DocoptLanguageError('"usage:" (case-insensitive) not found.')
if len(usage_sections) > 1:
raise DocoptLanguageError('More than one "usage:" (case-insensitive).')
DocoptExit.usage = usage_sections[0]
options = parse_defaults(doc)
pattern = parse_pattern(formal_usage(DocoptExit.usage), options)
# [default] syntax for argument is disabled
#for a in pattern.flat(Argument):
# same_name = [d for d in arguments if d.name == a.name]
# if same_name:
# a.value = same_name[0].value
argv = parse_argv(Tokens(argv), list(options), options_first)
pattern_options = set(pattern.flat(Option))
for options_shortcut in pattern.flat(OptionsShortcut):
doc_options = parse_defaults(doc)
options_shortcut.children = list(set(doc_options) - pattern_options)
#if any_options:
# options_shortcut.children += [Option(o.short, o.long, o.argcount)
# for o in argv if type(o) is Option]
extras(help, version, argv, doc)
matched, left, collected = pattern.fix().match(argv)
if matched and left == []: # better error message if left?
return Dict((a.name, a.value) for a in (pattern.flat() + collected))
raise DocoptExit()
def from_pattern(source):
source = re.sub(r'([\[\]\(\)\|]|\.\.\.)', r' \1 ', source)
source = [s for s in re.split('\s+|(\S*<.*?>)', source) if s]
return Tokens(source, error=DocoptLanguageError)
usage_sections = parse_section('usage:', doc)
if len(usage_sections) == 0:
raise DocoptLanguageError('"usage:" (case-insensitive) not found.')
if len(usage_sections) > 1:
raise DocoptLanguageError('More than one "usage:" (case-insensitive).')
DocoptExit.usage = usage_sections[0]
options = parse_defaults(doc)
pattern = parse_pattern(formal_usage(DocoptExit.usage), options)
# [default] syntax for argument is disabled
#for a in pattern.flat(Argument):
# same_name = [d for d in arguments if d.name == a.name]
# if same_name:
# a.value = same_name[0].value
argv = parse_argv(Tokens(argv), list(options), options_first)
pattern_options = set(pattern.flat(Option))
for options_shortcut in pattern.flat(OptionsShortcut):
doc_options = parse_defaults(doc)
options_shortcut.children = list(set(doc_options) - pattern_options)
#if any_options:
# options_shortcut.children += [Option(o.short, o.long, o.argcount)
# for o in argv if type(o) is Option]
extras(help, version, argv, doc)
matched, left, collected = pattern.fix().match(argv)
if matched and left == []: # better error message if left?
return Dict((a.name, a.value) for a in (pattern.flat() + collected))
raise DocoptExit()
else:
self.descriptor = {
"inputs": []
}
self.docopt_str = docopt_str
self.dependencies = {}
self.all_desc_and_type = {}
self.unique_ids = {}
options = dcpt.parse_defaults(docopt_str)
self.pattern = dcpt.parse_pattern(
dcpt.formal_usage(dcpt.parse_section('usage:', docopt_str)[0]),
options)
argv = dcpt.parse_argv(dcpt.Tokens(sys.argv[1:]), list(options), False)
pattern_options = set(self.pattern.flat(dcpt.Option))
for options_shortcut in self.pattern.flat(dcpt.OptionsShortcut):
doc_options = dcpt.parse_defaults(docopt_str)
options_shortcut.children = list(set(doc_options) - pattern_options)
matched, left, collected = self.pattern.fix().match(argv)
def docoptToArgumentParser(self, docopt_str):
# initial doc validation
extc_dict = dcpt.docopt(docopt_str)
usage_sections = dcpt.parse_section('usage:', docopt_str)
options = dcpt.parse_defaults(docopt_str)
pattern = dcpt.parse_pattern(
dcpt.formal_usage(usage_sections[0]), options)
argv = dcpt.parse_argv(dcpt.Tokens(sys.argv[1:]), list(options), False)
pattern_options = set(pattern.flat(dcpt.Option))
for options_shortcut in pattern.flat(dcpt.OptionsShortcut):
doc_options = dcpt.parse_defaults(docopt_str)
options_shortcut.children = list(set(doc_options) - pattern_options)
matched, left, collected = pattern.fix().match(argv)
# can loop through to compare extracted params with extc_dict
# and add param to argparser for each prm
for prm in pattern.flat() + collected:
print(prm)