Skip to main content

Command line based argument parse framework.

Project description

Installing

pip3 install flagopt

Battleship

import flagopt

usage = '-x [spot] -y [spot]'

flags = flagopt.trace(usage)

content = '-x C -y 7'

args = flagopt.snip(flags, content)

print('hit at', args['-x'], args['-y'])

Actions

import flagopt

flags = {
  '-move': {
    '-x': 'distance',
    '-y': 'distance'
  },
  '-craft': 'recipe',
  '-scavenge': {
    '-target': 'resource',
    '-finish': {
      '-time': 'hours',
      '-time': 'amount'
    }
  },
  '-rest': 'hours',
  '-target': 'human | animal'
}

# show how to use this
usage = flagopt.draw(flags)

content = (
  # move right linearly
  '-move -x 10 '
  # then move diagonally right and down;
  # no need to explicitly pass the first flag (-x)
  '-move 5 -y -5 '
  # backslash is used as an escape character;
  # -target will be ignored during the first parse scan
  # and the backslash will be removed so that -target can
  # be considered during the next scan for -scavenge;
  # multiple backslashes can be used to achieve other
  # amounts of iterations for this effect
  '-scavenge \-target wood '
  # arguments can be passed multiple times (-time);
  # scavenge for 3 hours and 60 more wood after that
  '-finish -time 3 -limit 60 '
  # or until 5 hours have passed
  '-finish -time 5'
  # rest for 4 hours, craft a tent, rest for another 3;
  # there is no space between 5 and -rest (line above);
  # spaces do not matter for flags and are stripped away
  # unless there is an escape character before / after
  '-rest 4      '
  # you can pass empty flags,
  # their presence is indicated with an empty string
  '--debug '
  # im bad at coming up with examples
  '-craft spear '
  # especially when they involve games
  '-target rabbit '
  # time to sleep now
  '-rest 3'
)

args = flagopt.snip(flags, content)

moves = args.getall('-move')

print(moves)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flagopt-0.1.4.tar.gz (5.1 kB view hashes)

Uploaded source

Built Distribution

flagopt-0.1.4-py3-none-any.whl (5.8 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page