###### ## ## ## ## ## ## ## ## ## ###### ##### ## ## ## ## ## ## ## ###### ## ## (IMG) Logo (HTM) View On GitHub (HTM) Support Development Python for Automation, or PyXA for short, is a wrapper around several macOS frameworks that enables AppleScript- and JXA-like control over macOS applications from within Python. PyXA's objects and methods are based on applications' scripting dictionaries and coupled with additional automation features supported by Apple's macOS APIs. PyXA was created with the goals of: 1. Simplifying the way automation tasks can be accomplished via Python 2. Introducing new features to macOS application scripting by simplifying complex procedures into simple, declarative methods 3. Disambiguating the capabilities of application scripting on macOS by providing easy-to-follow documentation throughout the entire project PyXA fills a gap where currently available frameworks ultimately fall short: it aims to be easy to learn for users accustomed to Python (or users who must use Python). To that end, the package's documentation contains numerous examples of how to use just about every method, and additional examples are provided covering specific use cases. PyXA's code also serves as a source of examples for how to use PyObjC to interact with various macOS frameworks. PyXA is not intended to replace AppleScript or even to cover 100% of AppleScript's capabilities. Instead, PyXA is meant to provide general convenience in accomplishing AppleScript and other automation tasks via Python, for the most commonly used applications. If you need a complete Apple Event bridge, or if you find that PyXA cannot handle your particular use case, consider using appscript or one of its derivatives. If you just need something that works in most circumstances, that has abundant examples for you to reference, and supports some additional automation features (such as opening Maps to a specific address), then PyXA might be a good fit for yo Feature Overview - Support for most AppleScript commands in built-in macOS applications and some third-party applications (in progress) - Scripting capabilities for several non-scriptable applications by using - Support for direct operations on non-scriptable applications (e.g. PyXA. - Command Chaining similar to JXA (e.g. PyXA.application("Reminders").list - Properties of scriptable elements accessible via object attributes (e.g. - Support for UI scripting of non-scriptable applications - Fast enumeration of scriptable objects - Automatic translation of clipboard items to PyXA objects - Support for compiling and executing AppleScript scripts via NSAppleScrip - Full access to and control over the system clipboard - Support for dialogs, alerts, file/color pickers, and notifications - Classes for speech and speech recognition - Ability to create custom menu bar items Examples (TXT) Example 1 - Open URL in Safari (TXT) Example 2 - Print Current Track Information (TXT) Example 3 - Create New Note With Calendar/Reminders Agenda Menu (DIR) root