Skip to main content

Argumental

annotation descripters to put closuer on classes and objects to allow argparse to be easy to use

Argue.py

A tool to decorate a python class to create an argparse ready command line application

Here is an example application

#!/usr/bin/env python3

import os,re,sys,json

from Argumental.Argue import Argue

# the argument decorator
args = Argue()

# create a root level argparse argument.
@args.argument(short='v', flag=True)
def verbose():
	"""
	detailed output mode
	"""
	return False

## simple arg main code
# args.parse()
# print(args.verbose())
## or create a reusable decorated class for the command line

# create a subparser based on the class
@args.command(name="class", single=False) # True to bypass to methods
class MyClass(object):
	"""
	My Class
	"""

	# add an argparse value as a property, override class attributes
	@args.property(
		short='v',
		default='abc123',
		help='with built in setter and deleter'
	)
	def value(self): return

	# declare the method as a sub parser with method parameters
	@args.operation(
		name='method'
	)
	@args.parameter(
		param='myParameter',
		short='p',
		name='parameter',
		required=True,
		help='My Parameter'
	)
	@args.returns(
		type=dict,
		help='test values'
	)
	def myOperation(self, myParameter=None):
		"""
		My Operation
		"""
		return dict(
			myParameter=myParameter,
			value=self.value
		)


if __name__ == '__main__': args.execute()

output

$ ./MyClass.py -h

usage: Argue.py [-h] [-v] {class,args} ...

positional arguments:
  {class,args}   commands
    class        My Class
    args         print the values for the args

optional arguments:
  -h, --help     show this help message and exit
  -v, --verbose  detailed output mode

sub paser for class

$ ./MyClass.py class -h

usage: Argue.py class [-h] [-v VALUE] {method} ...

positional arguments:
  {method}              operations
    method              My Operation

optional arguments:
  -h, --help            show this help message and exit
  -v VALUE, --value VALUE
                        with built in setter and deleter, default=abc123

sub parser for method

$ ./MyClass.py class method -h

usage: Argue.py class method [-h] -p PARAMETER

optional arguments:
  -h, --help            show this help message and exit
  -p PARAMETER, --parameter PARAMETER
                        My Parameter

and calling the method

$ ./MyClass.py class -v myv method -p myp

{
    "myParameter": "myp",
    "value": "myv"
}

Metadata

Release files for Argumental 1.13

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Argumental 1.13
File Size Uploaded
Argumental-1.13.tar.gz 11.1 kB Details

Release files / Argumental-1.13.tar.gz

Download URL Argumental-1.13.tar.gz
Size 11.1 kB
Tags Source
SHA-256 checksum
How to use checksums
3eb0b93acbcb686d466f99e7000df44f21de233914bb034173a44f3f3acf475b
BLAKE2b-256 checksum
How to use checksums
9dc619f9a0b6bc16632ef1bbab7c5ba88a8f4466ae97a654f0ee9368cb8f0b6e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.3.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

Release history Release notifications | RSS feed

This release

1.13 This release

1 release file

1.12

1 release file

1.11

1 release file

1.10

1 release file

1.9

1 release file

1.8

1 release file

1.7

1 release file

1.6

1 release file

1.5

1 release file

1.4

1 release file

1.3

1 release file

1.2

1 release file

1.1

1 release file

1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page