PyMacro can automate your tasks inside of Python.
Project description
pymacro
PyMacro is a partial wrapper around pyautogui. PyMacro can automate your tasks all inside of Python - give it a try!
Features
- Object oriented
- Extra utility functions
- Asynchronous support
Installation
PyMacro can be easily downloaded with PIP:
pip install pymacro
You can install the latest version from this repository, too:
pip install git+https://github.com/jay3332/PyMacro
Example Usage
Basic Usage
from pymacro import Macro
macro = Macro()
macro.type("Hello, world!", interval=.15)
macro(wait=2)
Mouse/keyboard Macros
from pymacro import Macro
macro = Macro()
macro.move_mouse_relative((0, 50), seconds=0.5)
macro.click()
macro.key_press("enter")
macro(wait=0.5)
Repeat Macro Indefinitely
from pymacro import Macro
macro = Macro()
macro.click()
macro(wait=0.5, repeat=0, delay=0.1)
# Wait 0.5 seconds before starting the macro.
# Repeating 0 times tells pymacro to repeat this macro forever without end.
# Delay of 0.1 means to wait 0.1 seconds between every iteration of the loop.
Async Usage
import asyncio
from pymacro import Macro
macro = Macro()
macro.type("Hello, world!", interval=.15)
async def run_macro():
await macro.async_run(wait=2)
asyncio.run(run_macro())
Executing Functions
from pymacro import Macro
def fn():
print("This function is running.")
macro = Macro()
macro.execute(fn, times=5) # execute this function 5 times
macro()
Multi-tasking
Because PyMacro has asynchrounous support, it is possible to run two macros at once in the same program.
Multiple Macros at once (asyncio)
import pymacro
import asyncio
macro1 = pymacro.Macro()
macro2 = pymacro.Macro()
def print_one_to_ten():
for i in range(1, 11):
print(i)
macro1.execute(print_one_to_ten)
macro2.execute(print_one_to_ten)
loop = asyncio.get_event_loop()
loop.create_task(macro1.async_run())
loop.create_task(macro2.async_run())
Multiple Macros at once (threading)
âš This is not recommended - use asyncio if possible.
import pymacro
import threading
macro1 = pymacro.Macro()
macro2 = pymacro.Macro()
def print_one_to_ten():
for i in range(1, 11):
print(i)
macro1.execute(print_one_to_ten)
macro2.execute(print_one_to_ten)
runner1 = threading.Thread(target=macro1.run)
runner2 = threading.Thread(target=macro2.run)
runner1.start()
runner2.start()
Tips
Special Functions
import pymacro
macro = pymacro.Macro()
# Functions
macro.execute(function, times=1, interval=0, *args, **kwargs)
# End the macro early
macro.end(condition=True, wait=0)
macro()
Project details
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pymacro-0.1.1.tar.gz.
File metadata
- Download URL: pymacro-0.1.1.tar.gz
- Upload date:
- Size: 5.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aad622c3839f6741f2492695311c321fcf433e35ad8db74767aca7f5840ad424
|
|
| MD5 |
4ef23ab8b09d583ba6b803b6cce04477
|
|
| BLAKE2b-256 |
569cad4aeaa22be00305278734eb7fdae89b39b421bd5fed002d65af95d23531
|
File details
Details for the file pymacro-0.1.1-py3-none-any.whl.
File metadata
- Download URL: pymacro-0.1.1-py3-none-any.whl
- Upload date:
- Size: 5.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
450ec99f12919fc7b47f6d4ceea5064e7f227dcaa3a29d04512d0cc7d2dd3f49
|
|
| MD5 |
11decef38ce8304b726084b636a47f23
|
|
| BLAKE2b-256 |
c3809c28e854bbd97f9d27836a080bb31fae1c1d7698a0f43b476d81b7ceacde
|