Skip to main content

Shared components to use in RPA projects

Project description

MBU Dev Shared Components

PyPI version License: MIT

Overview

MBU Dev Shared Components is a Python library that provides helper modules to streamline Robotic Process Automation (RPA) development.

Features

  • Office365 Integration:
    • SharePoint
    • Excel
  • SAP Integration
  • Solteq Tand Integration
  • Utility Modules:
    • JSON handling
    • Fernet encryption

Installation

Install the package using pip:

pip install mbu-dev-shared-components


# Dynamic SQL Query Builder

This repository provides a **generic function** to dynamically build SQL `WHERE` clauses using filters. It supports:

- **Equality (`=`)**  
- **LIKE (`%search%`)**  
- **IN (`column IN (value1, value2, ...)`)**  
- **BETWEEN (`column BETWEEN value1 AND value2`)**  
- **AND & OR Conditions**  
- **ORDER BY (`ORDER BY column ASC/DESC`)**  

---

## 📌 How to Use the `check_if_event_exists` Function

| **Usage Type** | **Example Function Call** | **Generated SQL WHERE Clause** |
|--------------|--------------------------------------|--------------------------------------------|
| **1. Basic Equality Filtering** | ```python self.check_if_event_exists(filters={"p.cpr": "123456-7890", "e.event_name": "Some Clinic"}) ``` | `WHERE 1=1 AND p.cpr = ? AND e.event_name = ?` |
| **2. LIKE Filtering** (Partial Match) | ```python self.check_if_event_exists(filters={"e.event_name": "%Clinic%"}) ``` | `WHERE 1=1 AND e.event_name LIKE ?` |
| **3. IN Filtering** (Multiple Values) | ```python self.check_if_event_exists(filters={"e.event_message": ["Scheduled", "Pending"]}) ``` | `WHERE 1=1 AND e.event_message IN (?, ?)` |
| **4. BETWEEN Filtering** (Range) | ```python self.check_if_event_exists(filters={"e.eventTriggerDate": ("2024-01-01", "2024-12-31")}) ``` | `WHERE 1=1 AND e.eventTriggerDate BETWEEN ? AND ?` |
| **5. Multiple AND Conditions** | ```python self.check_if_event_exists(filters={"p.cpr": "123456-7890", "e.event_message": "Scheduled", "e.archived": 0}) ``` | `WHERE 1=1 AND p.cpr = ? AND e.event_message = ? AND e.archived = ?` |
| **6. OR Conditions (Single Group)** | ```python self.check_if_event_exists(or_filters=[{"e.event_name": "Clinic A"}, {"e.event_name": "Clinic B"}]) ``` | `WHERE 1=1 AND (e.event_name = ? OR e.event_name = ?)` |
| **7. OR with Multiple Conditions** | ```python self.check_if_event_exists(or_filters=[{"e.event_name": "Clinic A", "e.event_message": "Scheduled"}, {"e.event_name": "Clinic B"}]) ``` | `WHERE 1=1 AND ((e.event_name = ? AND e.event_message = ?) OR (e.event_name = ?))` |
| **8. AND & OR Combined** | ```python self.check_if_event_exists(filters={"e.archived": 0}, or_filters=[{"e.event_name": "Clinic A"}, {"e.event_name": "Clinic B"}]) ``` | `WHERE 1=1 AND e.archived = ? AND (e.event_name = ? OR e.event_name = ?)` |
| **9. LIKE with OR** | ```python self.check_if_event_exists(or_filters=[{"e.event_message": "%Scheduled%"}, {"e.event_message": "%Pending%"}]) ``` | `WHERE 1=1 AND (e.event_message LIKE ? OR e.event_message LIKE ?)` |
| **10. Complex AND, OR, LIKE, IN Combined** | ```python self.check_if_event_exists(filters={"p.cpr": "123456-7890", "e.event_message": ["Scheduled", "Pending"]}, or_filters=[{"e.event_name": "%Hospital%"}, {"e.event_name": "%Clinic%"}]) ``` | `WHERE 1=1 AND p.cpr = ? AND e.event_message IN (?, ?) AND (e.event_name LIKE ? OR e.event_name LIKE ?)` |
| **11. ORDER BY (Ascending)** | ```python self.check_if_event_exists(filters={"p.cpr": "123456-7890"}, order_by="e.timestamp", order_direction="ASC") ``` | `WHERE 1=1 AND p.cpr = ? ORDER BY e.timestamp ASC` |
| **12. ORDER BY (Descending)** | ```python self.check_if_event_exists(filters={"p.cpr": "123456-7890"}, order_by="e.timestamp", order_direction="DESC") ``` | `WHERE 1=1 AND p.cpr = ? ORDER BY e.timestamp DESC` |
| **13. ORDER BY with Multiple Filters** | ```python self.check_if_event_exists(filters={"e.event_message": "Scheduled"}, order_by="e.eventTriggerDate", order_direction="DESC") ``` | `WHERE 1=1 AND e.event_message = ? ORDER BY e.eventTriggerDate DESC` |
=======

Project details


Release history Release notifications | RSS feed

This version

3.0.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mbu_dev_shared_components-3.0.0.tar.gz (48.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mbu_dev_shared_components-3.0.0-py3-none-any.whl (60.5 kB view details)

Uploaded Python 3

File details

Details for the file mbu_dev_shared_components-3.0.0.tar.gz.

File metadata

File hashes

Hashes for mbu_dev_shared_components-3.0.0.tar.gz
Algorithm Hash digest
SHA256 c72a18e8d1ac60db28bddb836628c2068ea4bfc8c6d1004843ee026e52e3ca81
MD5 fd6737b4e823c27c401edbc5c6bd96b3
BLAKE2b-256 09a0a7b39fdeafdb999fa616eb34ddb7123f7629a24e227b67d94a43d3e21a5a

See more details on using hashes here.

Provenance

The following attestation bundles were made for mbu_dev_shared_components-3.0.0.tar.gz:

Publisher: publish_to_pypi.yml on AAK-MBU/MBU-dev-shared-components

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mbu_dev_shared_components-3.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mbu_dev_shared_components-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 70ef84945e020e9c8f35d354770b379a105067f8f2a08e99944fae3347ba9576
MD5 df10b67f6380f363cf85b9ea9a26153b
BLAKE2b-256 45746fb32334fdf1cfa51e00ca525943bcd008327b19b59b51621b523eed02e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for mbu_dev_shared_components-3.0.0-py3-none-any.whl:

Publisher: publish_to_pypi.yml on AAK-MBU/MBU-dev-shared-components

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page