Skip to main content

Command line based invoke framework.

Project description

Installing

pip3 install throttle

Usage

import lineopt

# dict w/ extra methods
state = lineopt.State()

@state.sub('echo')
def state_0(argument):

  return argument

@state_0.sub('loud')
def state_0_0(argument):

  return argument.upper()

flags = {'-c': 'content', '-s': 'meddle'}

@state_0.sub('fancy', flags)
def state_0_1(arguments):

  content = arguments['-c']

  meddle = arguments.get('-s', ' ')

  return meddle.join(content)

starts = ('!', '.')

def parse(value, starts = starts):

  try:

    (start, names, argument, function) = state.context(starts, value)

  except (KeyError, ValueError) as error:

    raise

    result = repr(error)

  else:

    result = function(argument)

  print(result)

say = 'vocalizing is fun' # argument

parse(f'!echo {say}') # vocalizing is fun
parse(f'.echo.loud {say}') # VOCALIZING IS FUN
parse(f'!echo.fancy -c {say}') # v o c a l i z i n g   i s   f u n
parse(f'.echo.fancy {say} -s ~') # v~o~c~a~l~i~z~i~n~g~ ~i~s~ ~f~u~n
parse(f'-echo.loud {say}') # ValueError: 'invalid start'
parse(f'.fancy {say}') # KeyError: 'fancy' (only sub of echo)

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

lineopt-0.0.4.tar.gz (3.1 kB view details)

Uploaded Source

Built Distribution

lineopt-0.0.4-py3-none-any.whl (3.9 kB view details)

Uploaded Python 3

File details

Details for the file lineopt-0.0.4.tar.gz.

File metadata

  • Download URL: lineopt-0.0.4.tar.gz
  • Upload date:
  • Size: 3.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.8.0rc1

File hashes

Hashes for lineopt-0.0.4.tar.gz
Algorithm Hash digest
SHA256 a09f7bfeb61705322c19427353a22010aefdad59b7aa160d72ff0ad2202c912e
MD5 ece92a4cb060a5ca5644ff575daf9901
BLAKE2b-256 a9efa6f18156329c53ae3bbd1f5553ef5f298e573d32380eb93e5c4587578f9e

See more details on using hashes here.

File details

Details for the file lineopt-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: lineopt-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 3.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.8.0rc1

File hashes

Hashes for lineopt-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 c10c6fa909806c8a5c94111f49b3357c92aa1f7b6ebe604b38b19797d409dd90
MD5 0a8d432fe139751d6023d6e10d6d5346
BLAKE2b-256 7db9c1801f53569da336cc34a8c281686ec31e0b1b1a74b4a476fcc995c9da84

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page