Install & Compatibility
Where this runs
tested against v1.2.2 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 0.378s · 21.2MB
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 2.1s · import 0.346s · 22MB
19MB installed
● package 19MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
Input
✓ from cw_rpa import Input
Logger
✓ from cw_rpa import Logger
HttpClient
✓ from cw_rpa import HttpClient
✗ from cw_rpa import httpclient
The module is imported as `httpclient` (lowercase) but the class is `HttpClient` (camel case). Ensure you import the class directly for proper instantiation.
This quickstart demonstrates the usage of the `Input`, `Logger`, and `HttpClient` modules. It shows how to retrieve an input value (simulated via an environment variable), log informational and error messages, and make a simple HTTP GET request using the `HttpClient` for web service interaction.
from cw_rpa import Input, Logger, HttpClient
import os
# Initialize modules
input_handler = Input()
logger = Logger()
http_client = HttpClient()
# Example: Get an input value (simulating environment variable or form data)
username = os.environ.get('RPA_USERNAME', 'default_user')
logger.info(f"Retrieved username: {username}")
# Example: Send an HTTP GET request (replace with a real endpoint)
try:
# Using a placeholder URL for demonstration
test_url = "https://jsonplaceholder.typicode.com/posts/1"
response = http_client.third_party_integration("example_integration").get(url=test_url)
logger.info(f"HTTP GET Response Status: {response.status_code}")
logger.info(f"HTTP GET Response Body: {response.json()}")
except Exception as e:
logger.error(f"Error during HTTP request: {e}")
# Example: Log an error message
logger.error("This is an example error log.")
# Example: Log an exception (simulated)
try:
1 / 0
except ZeroDivisionError as e:
logger.exception(f"Caught an exception: {e}")
Debug
Known issues
gotchaRPA bots, including those built with `cw-rpa`, can be brittle and prone to breaking when target application user interfaces (UIs) change. Traditional RPA often relies on screen scraping or specific element locators, which can become invalid with UI updates. This requires frequent maintenance and adaptation of bot scripts.fixPrioritize robust element selectors (e.g., by ID, unique attributes rather than XPath/CSS that are highly dependent on structure) if possible. Implement comprehensive error handling and regular monitoring of bots in production. Design bots to be modular and easily adaptable to UI changes, isolating parts that interact with potentially unstable UI elements.
affects: All versions
gotchaWhen using the `HttpClient` module, ensure proper handling of authentication tokens and validation of request payloads. Mistakes in managing tokens or providing incorrect payload structures can lead to failed API calls and security vulnerabilities.fixLeverage the `HttpClient`'s mechanisms for managing authentication tokens. Utilize `http_client.validate_payload()` to ensure request bodies contain all necessary fields before sending. Implement secure storage and retrieval practices for sensitive credentials.
affects: All versions
breakingWhile not specifically documented for `cw-rpa`, other related RPA frameworks (like `rpaframework`) have experienced breaking changes where general keywords for 'Set Asset' and 'Get Asset' were replaced by more specific ones (e.g., `Set Text Asset`, `Get Text Asset`). Developers should be aware that similar shifts in API design might occur in the broader RPA ecosystem, potentially affecting how assets or work item data are handled.fixRefer to official release notes and documentation with each major version upgrade. Adopt a modular approach to bot development, isolating data handling logic to simplify future migrations or adaptations to API changes.
affects: Future major versions (potential)
Errors
Common errors & fixes
ModuleNotFoundError: No module named 'cw_rpa'
The `cw-rpa` package is either not installed in the Python environment, or there's a typo in the import statement.
fixEnsure the package is correctly installed using pip: `pip install cw-rpa`. Verify the import statement for any typos, typically `from cw_rpa import ...`.
from cw-rpa import Input
Python module names use underscores (`_`) instead of hyphens (`-`). While `pip install cw-rpa` uses a hyphen, the Python import statement must use an underscore for the module name.
fixReplace the hyphen with an underscore in the import statement: `from cw_rpa import Input`
AttributeError: cannot import name 'input' from 'cw_rpa' (most likely due to a circular import)
The module or class name `Input` is case-sensitive, and the developer attempted to import it with a lowercase 'i' (`input`) instead of the correct uppercase 'I' (`Input`), or there's a local file named `input.py` causing a conflict.
fixCorrect the case of the imported class name to `Input`: `from cw_rpa import Input`. Also, ensure no local file named `input.py` is shadowing the library's module.
AttributeError: 'Input' object has no attribute 'get_value'
The `get_value` method is likely being called on an uninitialized or incorrectly initialized `Input` object, or the method name is misspelled.
fixEnsure the `Input` module is properly imported and instantiated before calling its methods: `from cw_rpa import Input
input_handler = Input()
value = input_handler.get_value("variable_name")` Upgrade
Version history
1.2.2latest on PyPI · released Oct 13, 2025
Audit
Dependencies
No dependency data recorded yet.