pydarg
Pydarg is a python simple utility package providing a way to handle more deeply dictionary parameters of implemented function
REQUIREMENT
Require python 3.6+
INSTALLATION
Run this command line to fetch the package on Pypi
$ pip install pydarg
USAGE
This package provide a method "dct_arg" used as a decorator
Basic Usage
without any parameter, dct_arg unpacks the dictionary argument of function signature
@dct_arg
def example(foo,bar):
print(foo,bar)
param = {'foo':'1,'bar':'2','other':3}
example(param)
the main advantage of using dct_arg instead of **param is that it avoid binding extra argument, making it really useful for handling configuration dictionary having multiple of parameter.
those functions call would also be valid
example(foo='foo',bar='bar')
example({'foo':'foo_1'},bar='bar)
example({},'foo','bar')
It is also possible to override dct_arg's name by using keyword argument. making this line printing "foo_2" and "bar_2"
example({'foo':'foo_1','bar:'bar_1},'foo_2,bar='bar_2)
parameters
dct_arg(
_fct=None, *,
is_positional=True,
is_keyword=True,
name='dct_arg',
path="",
fetch_args=None
):
Where :
-
arg_type:
define what is the type of the dct_arg
- ArgType.POSITIONAL
- ArgType.KEY_WORD
- ArgType.BOTH,
-
name
represent the keyword name of the dct_arg
-
path
if the desired dct_arg is nested you you can specify the path with "/"
-
fetch_args
dictionary composed of key representing keyword parameter, and the path with "/" to fetch them in the dct_arg
Examples
fetch the nested dictionary argument named config
@dct_arg(name='config,path='child/subchild')
def example(e0, e1):
print(e1, e0)
example(config={'child': {'subchild': {'e1': 1, 'e0': 0}}})
example({'child': {'subchild': {'e1': 1}}}, e0=0)
since by default a dct_arg is a positional keyword both function call works
fetch the dct_arg itself as an argument
@dct_arg(fetch_args={'config': ""})
def example(config, e0):
pass
example(configuration={'e0': 0})
Metadata
Release files for pydarg 0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pydarg-0.1.tar.gz | 4.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pydarg-0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.5 kB
Release files / pydarg-0.1.tar.gz
| Download URL | pydarg-0.1.tar.gz |
|---|---|
| Size | 4.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
112304fa5b8a189492b762b17ec42a4f22bffe47209dc6b3fce51101314491fd
|
|
BLAKE2b-256 checksum How to use checksums |
f665d5ec339e68cbbbf5443a59d3e9ade6c262a0dc1185a30a963783e3c770e2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / pydarg-0.1-py3-none-any.whl
| Download URL | pydarg-0.1-py3-none-any.whl |
|---|---|
| Size | 4.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
984a951f5cd0590805d63d5233b7c54b72ab86febc3966542a3957e36d08cf10
|
|
BLAKE2b-256 checksum How to use checksums |
485640338449fd4f6486b050e7b5b05beec9fa526511046455f5527fb976ac05
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |