aa-pytools
All Python tools you'll likely need to work with Automation Anywhere
aa-pytools is a comprehensive Python library designed to streamline integration between Python applications and Automation Anywhere RPA platform. It provides essential tools, decorators, and utilities that make RPA development more efficient and reliable.
🚀 Features
Core Functionality
- Advanced Logging System - Centralized, configurable logging with auto-configuration
- Safe Execution Decorator - Error handling with structured payloads and timing information
Automation Anywhere Integration
- Vault Credential Management - Secure credential fetching from Automation Anywhere vault
- Execution Management - Run and monitor Automation Anywhere executions from Python
- REST API Integration - Complete API client for Automation Anywhere services
Specialized Decorators
-
@safe_execute- Execute functions safely with comprehensive error handling -
@with_vault("SAP")- Automatic credential injection from vault -
@retry_on_failure- Intelligent retry mechanism for transient failures -
@timeout(30)- Execution timeout protection -
@transactional- Transaction management for complex operations -
@queue_worker("INVOICES")- Queue-based processing capabilities -
@aa_safe_run- Automation Anywhere-specific safe execution
📦 Installation
pip install aa-pytools
Requirements:
- Python 3.13 or higher
- No external dependencies for core functionality
🎯 Quick Start
Basic Usage
from aa_pytools.decorators import safe_execute
from aa_pytools.core import get_logger
# Use the safe execution decorator
@safe_execute
def risky_operation(data):
# Your code here
return process_data(data)
result = risky_operation(my_data)
if result["status"]:
print(f"Success: {result['result']}")
else:
print(f"Error: {result['error']}")
# Logging with auto-configuration
logger = get_logger("my_module")
logger.info("This message will be automatically formatted and handled")
Advanced Logging
from aa_pytools.core import configure_logging, get_logger
from pathlib import Path
# Configure custom logging
configure_logging(
level="DEBUG",
log_file=Path("logs/app.log"),
console=True,
format_string="%(asctime)s | %(name)s | %(levelname)s | %(message)s"
)
logger = get_logger("my_component")
logger.debug("Detailed debugging information")
📖 Documentation
Core Components
Logging System (aa_pytools.core)
- Auto-configuring loggers
- Flexible formatting options
- Console and file output
- Package-scoped logging hierarchy
Safe Execution (aa_pytools.decorators.safe_execute)
- Exception catching and structured error reporting
- Performance timing information
- Optional trace information for debugging
- JSON or dictionary return formats
API Reference
Detailed API documentation is available at https://aa-pytools.readthedocs.io (coming soon).
🧪 Development Status
This project is currently in early development (version 0.0.1).
Implemented:
- ✅ Core logging system with full configuration options
- ✅ Safe execution decorator with comprehensive error handling
- ✅ Complete test coverage for implemented features
- ✅ Modern Python packaging with uv and pyproject.toml
In Progress:
- 🔄 Vault integration for credential management
- 🔄 REST API client for Automation Anywhere
- 🔄 Execution management system
- 🔄 Additional specialized decorators
🤝 Contributing
We welcome contributions! Please see our Contributing Guide for detailed information on:
- Setting up the development environment
- Running tests and linting
- Making pull requests
- Code style and standards
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
Inspired by and built upon concepts from:
rpa-automationanywhere- Last update: June 5, 2025automation-anywhere- Last update: August 8, 2023
📞 Support
- 📧 Email: devaul.fs@gmail.com
- 🐛 Issues: GitHub Issues
- 💬 Discussions: GitHub Discussions
Created by @AND3SIL4 at Net Applications
ᴅᴇᴠᴇʟᴏᴘᴇᴅ ʙʏ:
▄████▄ ███ ██ ████▄ ████▄ ▄█████ ██ ██ ██ ██
██▄▄██ ██ ▀▄██ ██ ██ ▄▄██ ▀▀▀▄▄▄ ██ ██ ▀█████
██ ██ ██ ██ ████▀ ▄▄▄█▀ █████▀ ██ ██████ ██
ɪ ᴛʜɪɴᴋ, ᴛʜᴇʀᴇꜰᴏʀᴇ ɪ ᴀᴍ 🗿
Metadata
Release files for aa-pytools 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| aa_pytools-1.0.0.tar.gz | 10.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aa_pytools-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 19.4 kB
Release files / aa_pytools-1.0.0.tar.gz
| Download URL | aa_pytools-1.0.0.tar.gz |
|---|---|
| Size | 10.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0e8857ea4900fc469f4fde0d6b4e4a94b87a7144ce4265bb7f8549d02298efe0
|
|
BLAKE2b-256 checksum How to use checksums |
a278555b470e9a2d7c7651e8fbab71cf17639466053350b5e991c2eb88f21dc3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.11
|
Release files / aa_pytools-1.0.0-py3-none-any.whl
| Download URL | aa_pytools-1.0.0-py3-none-any.whl |
|---|---|
| Size | 8.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
10da7add5d96e40bef46c1ce63e258d10a6fa1e868059067f2546d0d00a52aee
|
|
BLAKE2b-256 checksum How to use checksums |
6f9ef18fcb9814ac2cf6d490a5464c0835a854fbd654cce1adcc880f45a0db38
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.11
|
Security for aa-pytools 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.