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

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)

Source distribution for pydarg 0.1
File Size Uploaded
pydarg-0.1.tar.gz 4.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pydarg 0.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1 This release

2 release files

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