Thoughtful is a python package by Thoughtful for helping manage automations with helpful packages like supervisor
Project description
thoughtful is a collection of open-source libraries and tools for Robot Process Automation (RPA) development. The goal of this project is to provide a set of for supervising bot execution, and enabling these bots to do more.
This project is:
- Open-source: GitHub
- Owned by thoughtful
- Licensed under the Apache License 2.0
Links:
thoughtful is available on PyPI and can be installed using pip:
pip install thoughtful
thoughtful officially supports Python 3.7+.
Libraries
This is a list of the available libraries in this project. API Reference and User Guide available on docs.
Supervisor
Supervisor is a Workflow Engine for Digital Workers that constructs and broadcasts a detailed and structured telemetric log, called the Run Report.
from thoughtful.supervisor import step, step_scope, supervise, set_step_status
# using the step decorator
@step("2")
def step_2(name: str) -> bool:
print(f'Hello {name}')
return True # some condition
def main() -> None:
# using the step_scope context manager
with step_scope('1') as step_context:
try:
print("Getting credentials")
# ...
except Exception as e:
# set step status using method
step_context.set_status("warning")
if not step_2():
# set step status using function
set_step_status("2", "fail")
if __name__ == '__main__':
with supervise():
main()
Screen Recorder
The ScreenRecorder library facilitates the recording of screen activity from a programmatic browser session and generates a video file of the recorded session.
Prerequisites
Ensure you have already downloaded FFmpeg
as it is utilized to create the video recording.
https://www.ffmpeg.org/download.html
Installation
Install the optional screen-recorder
extras
Poetry
poetry install -E screen-recorder
Pip
pip install thoughtful[screen-recorder]
Usage
WARNING: It is essential that you call end_recording
at the end of a recording.
If you do not call end_recording
, the recording threads will continue to run until your program ends and a
video will not be created.
from thoughtful.screen_recorder import ScreenRecorder, BrowserManager
from RPA.Browser.Selenium import Selenium # This dependency must be installed separately
class YoutubeScraper(ScreenRecorder):
def __init__(self) -> None:
self._selenium_instance = Selenium()
super().__init__(browser_manager=BrowserManager(instance=self._selenium_instance))
youtube_scraper = YoutubeScraper()
try:
# ... Perform actions here ...
finally:
if youtube_scraper:
# We recommend calling `end_recording` in a `finally` block to ensure that
# video processing occurs and all recording threads are terminated even if the Process fails
youtube_scraper.end_recording()
Contributing
Contributions to thoughtful are welcome!
To get started, see the contributing guide.
Made with ❤️ by
This project is open-source and licensed under the terms of the Apache License 2.0.
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
Hashes for thoughtful-2.8.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed742f7365733f2791350279b6e7da995a8869a7d2a4f8d66312d488a2cf44f2 |
|
MD5 | 3dd07fd940e0277cdb9ba0b088cae1b1 |
|
BLAKE2b-256 | e0412bf1c6996e0de6da98175dea68bdbff9d3bf5c5001126a87489d10213983 |