The project is designed to provide standard utilization functions for improving the reusability of frequently used functions.
Project description
Utility for Research (URes)
Overview
URes (Utility for Research) is a versatile Python library that simplifies common research and development tasks. It offers a wide range of modules to handle everything from Docker container management to advanced data visualization and file operations.
Key Features
- Docker Management: Build, run, and manage Docker images and containers with an intuitive Python interface.
- Markdown and Zettelkasten: Create, manipulate, and organize Markdown documents, with support for the Zettelkasten note-taking method.
- Data Structures: Implement and use advanced data structures like Trees and Bi-Directional Links for complex data organization.
- File and Network Utilities: Simplify file system operations and network-related tasks with a collection of helper functions.
- Time and Date Converters: Easily convert between different time and date formats, including ISO 8601 and Unix timestamps.
- String Manipulation: A set of functions for common string operations, such as capitalization and unique ID generation.
- Advanced Plotting: A comprehensive, multi-backend visualization library for scientific research, data analysis, and machine learning.
Installation
pip install ures
Modules
Docker
The ures.docker module provides a high-level interface for managing Docker images and containers.
Key Features:
- Programmatically build Docker images from a
BuildConfigobject. - Run containers with detailed runtime configurations using
RuntimeConfig. - Orchestrate the building of multiple images with dependencies using
ImageOrchestrator.
Example:
from ures.docker import Image, BuildConfig, Containers
# Define build configuration
build_config = BuildConfig(
base_image="python:3.10-slim",
python_dependencies=["flask", "gunicorn"],
copies=[{"src": "./app", "dest": "/app"}],
entrypoint=["gunicorn", "-b", "0.0.0.0:80", "app:app"]
)
# Build the image
image = Image("my-web-app")
image.build_image(build_config, dest=".")
# Run the container
containers = Containers(image)
container = containers.create()
containers.run()
Markdown
The ures.markdown module offers tools for working with Markdown files, including those with YAML front matter. The Zettelkasten class extends this functionality for note-taking.
Key Features:
- Load, create, and manipulate Markdown files with
MarkdownDocument. - Manage YAML front matter with support for nested keys.
- Implement the Zettelkasten method with the
Zettelkastenclass, which includes mandatory metadata fields liketitle,type, andtags.
Example:
from ures.markdown import Zettelkasten
# Create a new Zettelkasten note
note = Zettelkasten(
title="My Research Note",
n_type="permanent",
tags=["research", "python"],
aliases=["research-note"]
)
# Add content
note.add_content("This is a sample research note.")
# Save to file
note.save("my_note.md")
Data Structures
The ures.data_structure module provides implementations of advanced data structures.
- TreeNode: A tree data structure with methods for adding, removing, and traversing nodes.
- BiDirectional: A bi-directional linked list that allows for easy traversal in both forward and backward directions.
File and Network Utilities
ures.files: A collection of functions for file system operations, such as recursively getting file paths, filtering files, and managing temporary directories.ures.network: Helper functions for network-related tasks, including IP address validation and generation.
Time and Date Converters
The ures.timedate module provides functions for converting between different time and date formats.
datetime_converter(): Converts adatetimeobject to a formatted string (ISO 8601 or custom).timestamp_converter(): Converts a Unix timestamp to a formatted string.time_now(): Returns the current time as a formatted string.
String Manipulation
The ures.string module offers a variety of string utility functions.
zettelkasten_id(): Generates a unique ID suitable for Zettelkasten notes.unique_id(): Creates a standard unique identifier.format_memory(): Formats a memory size into a human-readable string.capitalize_string(): Capitalizes each word in a string.
Development
To contribute to URes, please follow these steps:
- Clone the repository:
git clone https://github.com/stone-home/Python-URes.git
- Install the dependencies:
cd Python-URes poetry install
- Run the tests:
poetry run pytest
License
This project 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 ures-2.2.0.tar.gz.
File metadata
- Download URL: ures-2.2.0.tar.gz
- Upload date:
- Size: 111.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.4 CPython/3.11.13 Linux/6.11.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d0318389fc85b1a40b87012f8e3af6d2dfebeb2f748a52435aad88225cf2216e
|
|
| MD5 |
6f8b9f3a02156f61e7448b39f5654ddd
|
|
| BLAKE2b-256 |
423c7cb295d0f5ada2895553ca03a90a1a7610b5c06da40d0137285cab902153
|
File details
Details for the file ures-2.2.0-py3-none-any.whl.
File metadata
- Download URL: ures-2.2.0-py3-none-any.whl
- Upload date:
- Size: 128.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.4 CPython/3.11.13 Linux/6.11.0-1018-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c822cb625bc5cc658d4bf0de75559ef5056c5514089a37f7ef4ec2c72b5a206b
|
|
| MD5 |
a6cd989f39b26d0417b63d8f649b3a2f
|
|
| BLAKE2b-256 |
ccf7a7acf745ac76e97c52e4e5a3799c9711ef6d21d8a87bce8f8f4cbcacdd04
|