Skip to main content

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})

Download files

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

Source Distribution

pydarg-0.1.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pydarg-0.1-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

Details for the file pydarg-0.1.tar.gz.

File metadata

  • Download URL: pydarg-0.1.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pydarg-0.1.tar.gz
Algorithm Hash digest
SHA256 112304fa5b8a189492b762b17ec42a4f22bffe47209dc6b3fce51101314491fd
MD5 0d0c8a774efb98b0e3442fd55c8dac0a
BLAKE2b-256 f665d5ec339e68cbbbf5443a59d3e9ade6c262a0dc1185a30a963783e3c770e2

See more details on using hashes here.

File details

Details for the file pydarg-0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for pydarg-0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 984a951f5cd0590805d63d5233b7c54b72ab86febc3966542a3957e36d08cf10
MD5 35babcf75a7ff442562fdfbecea1077a
BLAKE2b-256 485640338449fd4f6486b050e7b5b05beec9fa526511046455f5527fb976ac05

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page