Python Requisites: A dynamic tool for the explicit declaration and analysis of dependencies in Python objects, streamlining the process of identifying and managing required elements in your code.
Project description
Python Requisites
Python Requisites is a dynamic tool for the explicit declaration and analysis of dependencies in Python objects, streamlining the process of identifying and managing required elements in your code.
Introduction
Python Requisites (or python-requisites
) provides an intuitive way to analyze and declare the dependencies in Python objects like functions, classes, and modules. This tool is particularly useful for developers looking to gain better insight into their code's structure and dependencies.
Features
- Explicit Dependency Declaration: Clearly outlines the dependencies within Python objects.
- Streamlined Analysis: Simplifies the process of identifying required arguments and dependencies in functions, classes, and modules.
- Easy Integration: Designed to seamlessly integrate with existing Python projects.
Installation
You can install Python Requisites using pip:
pip install python-requisites
Usage
This library provides a utility to collect function parameters dynamically, either as positional or keyword arguments. Below are examples demonstrating how to use this functionality:
Collecting Positional or Keyword Arguments
from requisites import collect_params
def sample_function(argument):
return argument
# Example 1: Collecting positional arguments
args, kwargs = collect_params(sample_function, "hello")
# args will be ("hello",)
# kwargs will be {}
assert sample_function(*args, **kwargs) == "hello"
# Example 2: Collecting keyword arguments
args, kwargs = collect_params(sample_function, argument="hello")
# args will be ()
# kwargs will be {"argument": "hello"}
assert sample_function(*args, **kwargs) == "hello"
# Example 3: Combining positional and keyword arguments
args, kwargs = collect_params(sample_function, "hello", argument="world")
# args will be ()
# kwargs will be {"argument": "world"}
assert sample_function(*args, **kwargs) == "world"
Collecting Parameters with Variable Arguments
from requisites import collect_params
def complex_function(a, b, *args, c, d=1, **kwargs):
return "OK"
# Example 1: Handling required parameters
args, kwargs = collect_params(complex_function, "hello", "world", c="see")
# args will be ("hello", "world")
# kwargs will be {"c": "see", "d": 1}
assert complex_function(*args, **kwargs) == "OK"
# Example 2: Handling extra positional and keyword arguments
args, kwargs = collect_params(complex_function, "hello", "world", "!", c="see", e="extra", f="fun")
# args will be ("hello", "world", "!")
# kwargs will be {"c": "see", "d": 1, "e": "extra", "f": "fun"}
assert complex_function(*args, **kwargs) == "OK"
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file python_requisites-0.1.0.tar.gz
.
File metadata
- Download URL: python_requisites-0.1.0.tar.gz
- Upload date:
- Size: 6.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.10.13 Darwin/23.1.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 533cd6924453b822c281aabe8283f3d9772e1b49c6c917d83cd7550d34231d52 |
|
MD5 | 1dd3be379e409eb8b23e141036fdb2d0 |
|
BLAKE2b-256 | a48e03e48f4bcde19234e04865f217a6d3bde1e72c7d10c83f31a4e5dab54ff1 |
File details
Details for the file python_requisites-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: python_requisites-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.10.13 Darwin/23.1.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4bf167b63df426f99c0f2791e9302568d9ed9aecc5f538495b788ee04c6d3266 |
|
MD5 | 3bda063406d216ccb05ed8ffc7cf67a6 |
|
BLAKE2b-256 | 485155f6260e067c3f07e0caa6ea3322fc4e3083a1c4f66c5955ebe3b5e737c3 |