RPA Suite
A comprehensive Python toolkit for Robotic Process Automation (RPA) development
Documentation • Installation • Quick Start • Features • Contributing
Overview
RPA Suite is a powerful and versatile Python library designed to streamline and optimize the development of Robotic Process Automation (RPA) projects. Built with simplicity and efficiency in mind, it provides a comprehensive set of tools that make automation development faster, more reliable, and more maintainable.
Whether you're working with Selenium, Botcity, or building custom automation solutions, RPA Suite offers the essential utilities you need to accelerate your development process.
Key Features
- 🕐 Time Management - Schedule executions, wait for specific times, and manage time-based automation flows
- 📧 Email Automation - Send emails via SMTP with HTML support and attachments
- 📝 Logging System - Comprehensive logging with file and stream support using Loguru
- 📁 File Operations - Screenshot capture, file counting, and flag file management
- 🗂️ Directory Management - Create and manage temporary directories with ease
- 🔍 Text Processing - Pattern matching, regex operations, and text validation
- 🌐 Browser Automation - Selenium-based browser control with Chrome support (optional)
- ⚡ Parallel & Async Execution - Run processes in parallel or asynchronously
- 🤖 Desktop Automation - PyAutoGUI-based desktop automation (Artemis module)
- 📄 OCR with AI - Document conversion with OCR capabilities (Iris module - optional)
- 💾 Database Tracking - Complete execution tracking and management system with multi-database support (SQLite, PostgreSQL, MySQL, SQL Server)
- 🎨 Colored Console Output - Beautiful terminal output with color-coded messages
- ✅ Data Validation - Email validation and pattern checking utilities
Installation
Basic Installation
Install RPA Suite using pip:
pip install rpa-suite
Or using conda:
conda install -c conda-forge rpa-suite
Optional Dependencies
Install only the extras you need:
# Browser automation (Selenium)
pip install rpa-suite[browser]
# Fuzzy image matching for Artemis (confidence)
pip install rpa-suite[opencv]
# OCR with AI (Iris module)
pip install rpa-suite[ocr]
# HTML dashboard (Flask)
pip install rpa-suite[dashboard]
# Database backends (SQLite is built-in)
pip install rpa-suite[postgres]
pip install rpa-suite[mysql]
pip install rpa-suite[sqlserver]
# All optional features
pip install rpa-suite[all]
Desktop automation (Artemis) is included in the base install (pyautogui). Fuzzy matching via confidence needs the optional extra rpa-suite[opencv].
Quick Start
After installation, import and use RPA Suite immediately:
from rpa_suite import rpa
# Send an email
rpa.email.send_smtp(
email_user="your@email.com",
email_password="your_password",
email_to="recipient@email.com",
subject_title="Hello from RPA Suite",
body_message="<p>This is a test email</p>"
)
# Schedule a function to run at a specific time
rpa.clock.exec_at_hour('14:30', my_function, arg1, arg2)
# Wait before executing a function
rpa.clock.wait_for_exec(30, my_function)
# Take a screenshot
rpa.file.screen_shot(filename="screenshot.png")
# Print colored messages
rpa.success_print("Operation completed successfully!")
rpa.error_print("An error occurred!")
Database Module Example
Track your automation executions with the Database module. Prefer process_queue() (or claim_next_item_from_queue()) over a manual peek + start — claim is atomic.
from rpa_suite import rpa
# Initialize database (SQLite by default)
db = rpa.database()
# Start tracking an execution
exec_id = db.start_execution(automation_name="My Automation Bot")
# Add items to the processing queue
db.add_items(execution_id=exec_id, items=[
{"item_identifier": "invoice_001", "item_data": {"value": 150.00}},
{"item_identifier": "invoice_002", "item_data": {"value": 320.50}},
])
def handle_item(item: dict) -> str:
# ... your processing logic here ...
return f"Processed {item['item_identifier']}"
stats = db.process_queue(exec_id, handler=handle_item)
db.add_log_info(f"Queue done: {stats}", execution_id=exec_id)
db.finish_execution(exec_id, status="completed")
# Check the results
stats = db.get_statistics(execution_id=exec_id)
Requirements
Core Dependencies
- Python 3.11+
- colorama
- email-validator
- loguru
- pillow
- pyautogui
- requests
Optional Dependencies
rpa-suite[browser]— selenium, webdriver-managerrpa-suite[opencv]— opencv-python (Artemisconfidence)rpa-suite[ocr]— docling (Iris)rpa-suite[dashboard]— flaskrpa-suite[postgres]— psycopg2-binaryrpa-suite[mysql]— mysql-connector-pythonrpa-suite[sqlserver]— pyodbc (plus a system ODBC driver)
Features in Detail
Time Management (Clock Module)
Control execution timing and scheduling:
exec_at_hour()- Execute functions at specific timeswait_for_exec()- Wait before executing functionsexec_and_wait()- Execute and wait pattern
Email (Email Module)
Send emails with full SMTP support:
- HTML email support
- File attachments
- Custom SMTP configuration
- Email validation
Logging (Log Module)
Comprehensive logging system based on Loguru:
- File and console logging
- Multiple log levels (debug, info, warning, error, critical)
- Configurable log formats
- Automatic log rotation
File Operations (File Module)
File and screenshot management:
- Screenshot capture with custom naming
- Flag file creation/deletion for process tracking
- File counting with extension filtering
Database Tracking (Database Module)
Complete execution lifecycle management:
- Multi-database support (SQLite, PostgreSQL, MySQL, SQL Server)
- Execution tracking with status management
- Atomic item queue (
claim_next_item_from_queue,process_queue) - Automatic interruption detection
- Reprocessing capabilities
- Comprehensive statistics and reporting
- Structured logging integration
Module Structure
Core Modules
- clock - Time management and scheduling
- date - Date and time formatting utilities
- email - SMTP email sending
- file - File operations and screenshots
- directory - Directory management
- log - Logging system
- printer - Colored console output
- regex - Pattern matching and regex operations
- validate - Data validation utilities
- notifier - Slack / Teams / Telegram webhooks
- retry - Retry decorator with backoff
Advanced Modules
- database - Execution tracking and database management (SQLite, PostgreSQL, MySQL, SQL Server)
- browser - Selenium-based browser automation (
pip install rpa-suite[browser]) - parallel - Parallel process execution (
rpa.parallel) - asyn - Asynchronous execution (
rpa.asyn) - artemis - Desktop automation with PyAutoGUI (
pip install rpa-suite[opencv]forconfidence) - iris - OCR and document conversion (
pip install rpa-suite[ocr])
Database Module Methods
Execution Management:
start_execution()- Start tracking a new executionfinish_execution()- Complete an executionget_execution()- Retrieve execution detailsget_executions()- List executions with filteringdetect_and_mark_interrupted_executions()- Auto-detect and mark interrupted executions
Item Processing:
add_item()- Add item to processing queueadd_items()- Batch add itemsclaim_next_item_from_queue()- Atomically claim the next item (preferred)process_queue()- Claim → handler → finish loopget_next_item_from_queue()- Read-only peek; does not change statusstart_processing_item()- Mark item as processing (non-atomic alternative)update_checkpoint()- Update processing checkpointfinish_item()- Complete item processingget_item()- Get item detailsget_items()- List items with filteringdetect_and_mark_interrupted_items()- Auto-detect and mark interrupted items
Reprocessing:
is_reprocessable()- Check if an item is eligible for reprocessingcan_reprocess_execution()- Check if execution can be reprocessedreprocess_interrupted_execution()- Restart interrupted executioncan_reprocess_item()- Check if item can be reprocessedreprocess_interrupted_item()- Restart interrupted itemreprocess_items_from_execution()- Batch reprocess eligible items from an execution
Maintenance (Safe):
clear_pending_items()- Remove pending itemsclear_interrupted_items()- Remove interrupted itemsclear_interrupted_executions()- Remove interrupted executions
Maintenance (Protected - requires confirmation code):
clear_successful_items()- Remove successful itemsclear_failed_items()- Remove failed itemsclear_successful_executions()- Remove successful executionsclear_failed_executions()- Remove failed executions
Maintenance (Full - requires confirmation):
clear_executions_table()- Clear all executionsclear_items_table()- Clear all itemsclear_logs_table()- Clear all logsclear_database()- Clear entire database
Logging:
add_log()- Add log entry with custom leveladd_log_debug()- Add DEBUG level logadd_log_info()- Add INFO level logadd_log_warn()/add_log_warning()- Add WARNING level logadd_log_error()- Add ERROR level logadd_log_critical()- Add CRITICAL level logadd_log_success()- Add SUCCESS level logget_logs()- Retrieve execution logsclear_logs()- Clear execution logs
Statistics:
get_statistics()- Get comprehensive statistics
Documentation
For detailed documentation, usage examples, and API reference, visit:
- GitHub Wiki - Complete documentation and guides
- PyPI Project Page - Package information and releases
Contributing
Contributions are welcome! If you'd like to contribute to RPA Suite:
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Author
Camilo Costa de Carvalho
- GitHub: @CamiloCCarvalho
- LinkedIn: camilocostac
- Email: camilo.costa1993@gmail.com
Made with ❤️ for the RPA community
Release files for rpa-suite 1.9.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 | |
|---|---|---|---|
| rpa_suite-1.9.0.tar.gz | 105.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rpa_suite-1.9.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 233.8 kB
Release files / rpa_suite-1.9.0.tar.gz
| Download URL | rpa_suite-1.9.0.tar.gz |
|---|---|
| Size | 105.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4c6741e153740eaff27e5f049b636a3d2e54931019caef1ece55ebf71e2fa352
|
|
BLAKE2b-256 checksum How to use checksums |
ced44145dc90f31764f81c79c85f5884441aa9974cc4a064502a0212762f6e2e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.3
|
Release files / rpa_suite-1.9.0-py3-none-any.whl
| Download URL | rpa_suite-1.9.0-py3-none-any.whl |
|---|---|
| Size | 128.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ad5986e8a3b683027d209a73fb657d6164763d4f49d60e7356570a5647cd8e14
|
|
BLAKE2b-256 checksum How to use checksums |
bb8a77cff261b97e8c7230b4e4ab053c1e5623c27ff2627c91a43608b8e6752d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.3
|