Skip to content

tatterdemalion/easy_args

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

from easy_args import args_inject

@args_inject()
def foo():
    print(name + ' ' + lastname)

foo()
$ python example.py name=John lastname=Doe

John Doe

What is this?

easy_args injects system parameters to function scope.

Why?

Because i was trying to find an easy way to get named parameters like name=John with lesser effort. All the other solutions, including argparse are way to complicated for basic usage.

When should I use it?

When you do not really need to design a CLI application but a simple script with some parameters. easy_args does not support docs and help strings, does not validate parameters, does not raise sensible errors for missing parameters and probably never will. Also, use it with caution. We are actually injecting stuff into function scope here. Make sure the decorated functions are isolated from outside world.

Installation

pip install easy_args

Examples:

By using positional and keyword arguments

from easy_args import args

@args
def foo(*args, **kwargs):
    name = kwargs['name']
    lastname = kwargs['lastname']
    print(args)
    print(name + ' ' + lastname)

foo()
$ python example.py your name is name=John lastname=Doe

('your', 'name', 'is')
John Doe

By injecting keyword arguments to the function scope (As the example above)

from easy_args import args_inject

@args_inject()
def foo():
    print(name + ' ' + lastname)

foo()
$ python example.py name=John lastname=Doe

John Doe

You can also restrict required variables by function:

from easy_args import args_inject

@args_inject('name', 'times')
def foo():
    for i in range(int(times)):
        print(name)  # using lastname in this scope will raise a NameError here.

foo()
$ python example.py name=John lastname=Doe times=4

John
John
John
John

By using with statement

from easy_args import args_get

with args_get() as a:
    print(a.name + ' ' + a.lastname)
python example.py name=John lastname=Doe

John Doe

About

get system args easily

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages