Hnady python functions
Project description
lionfuncs
A Python utility library for robust asynchronous programming, file system operations, and network interactions.
Overview
lionfuncs provides a core set of reusable utilities designed to simplify
common programming tasks with a focus on reliability and performance. It offers
a comprehensive suite of tools for asynchronous operations, file system
interactions, network calls, concurrency management, error handling, and general
utilities.
Key Features
- Async Utilities: Powerful tools like
alcallandbcallfor concurrent execution with fine-grained control - Concurrency Management: Primitives such as
BoundedQueueandWorkQueuefor managing concurrent workloads - File System Operations: Utilities for reading, writing, and processing files with both sync and async APIs
- Network Client: Resilient HTTP client with built-in circuit breaker, retry, and rate limiting capabilities
- Error Handling: Standardized error types and handling mechanisms
- Media Processing: Optional utilities for working with images and PDFs
Installation
Basic Installation
pip install lionfuncs
Installation with Media Utilities
To use the media utilities (e.g., pdf_to_images), install with the media
extra:
pip install lionfuncs[media]
Quick Start
Asynchronous Operations
import asyncio
from lionfuncs.async_utils import alcall
async def process_item(item):
await asyncio.sleep(0.1) # Simulate some async work
return item * 2
async def main():
items = [1, 2, 3, 4, 5]
# Process all items concurrently with a max concurrency of 3
results = await alcall(items, process_item, max_concurrent=3)
print(results) # [2, 4, 6, 8, 10]
asyncio.run(main())
File System Operations
import asyncio
from lionfuncs.file_system import read_file, save_to_file
async def main():
# Read a file
content = await read_file("example.txt")
# Process the content
processed_content = content.upper()
# Save the processed content
await save_to_file(processed_content, "output", "example_processed.txt")
asyncio.run(main())
Network Operations
import asyncio
from lionfuncs.network import AsyncAPIClient, circuit_breaker, with_retry
# Apply resilience patterns with decorators
@circuit_breaker(failure_threshold=3, recovery_time=10.0)
@with_retry(max_retries=3, base_delay=1.0, backoff_factor=2.0)
async def fetch_data(client, endpoint):
return await client.request("GET", endpoint)
async def main():
async with AsyncAPIClient(base_url="https://api.example.com") as client:
data = await fetch_data(client, "/data")
print(data)
asyncio.run(main())
Documentation
For comprehensive documentation, including detailed API references and usage guides, visit:
Contributing
We welcome contributions to lionfuncs! Please see our
Contribution Guidelines for details on how to
get started, coding standards, and the pull request process.
License
lionfuncs is licensed under the MIT License. See the LICENSE file
for details.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lionfuncs-3.1.1.tar.gz.
File metadata
- Download URL: lionfuncs-3.1.1.tar.gz
- Upload date:
- Size: 294.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3f5249c7a50ce497c7ee353d0c556051a34ab3fceb682729844ceae9b33abf2
|
|
| MD5 |
aff24dcce76f5773b0dda39fdd8ab375
|
|
| BLAKE2b-256 |
5592be13deb0d5db6ad69237a26cb0c0e328b82762259f58a1ca60d6b0dfe63a
|
File details
Details for the file lionfuncs-3.1.1-py3-none-any.whl.
File metadata
- Download URL: lionfuncs-3.1.1-py3-none-any.whl
- Upload date:
- Size: 48.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9bb26999605dc9d92e335e8dbef2c2a08d65192f53a8f7e3f99c812abec3b6c
|
|
| MD5 |
7b37b13309bc260e0ed60a793f99da5a
|
|
| BLAKE2b-256 |
d176acd52601a4b9304d1a4337f39c8b3f757b911c1581ebd6447cc4d9421388
|