Skip to main content

Native Mac OS UI elements with python

Project description


aquaui

Display native dialogs, alerts, notifications, color pickers, and more with Python

GitHub Workflow Status Version PyPI - Downloads MIT Buy Me A Coffee

💥 This library is still a work in progress.

Useful links

Features

  • Display dialogs
    • Dialog prompts
    • Icon support
  • Alerts
  • Choice dialogs
  • Notifications
    • Customize title, subtitle, and informational text
    • Customize icon
    • Schedulable
    • Callbacks (button pressed, reply text) – relevant stackoverflow answer
    • Fallback (AppleScript) notifications
  • Color picker
  • File/folder picker

Documentation

Find the documentation in the docs/ folder

Examples

See the examples/ directory. Feel free to make a pull request to add more examples.

Show a dialog with the buttons "Go" (default) and "No" (to cancel) with the caution icon:

from aquaui import Dialog, Buttons, Icon

buttons = Buttons(["Go", "No"], default_button="Go", cancel_button="No")
result = Dialog("Hello!").with_buttons(buttons).with_icon(Icon.CAUTION).show()

Execute functions based on the button clicked:

from aquaui import Dialog, Buttons

button_one = "One"
button_two = "Two"
buttons = Buttons([button_one, button_two])

result = Dialog("Press a button").with_buttons(buttons).show()

if result.button_returned == button_one:
  print("Button One was pressed")
elif result.button_returned == button_two:
  print("Button Two was pressed")

Display a choice dialog with the options "Netflix" and "Prime Video"

from aquaui import Choice

provider = Choice("Choose the streaming platform").with_choices(["Netflix", "Prime Video"]).show()
print(provider)

If this example interests you, check out my other library Flixpy.

Display a notification:

Warning: please read the documentation before using notifications. There are additional dependencies to install.

from aquaui.notification.native_notification import Notification

notification = (
    Notification("Hello!")
    .with_subtitle("This is the subtitle!")
    .with_informative_text("Isn't this informative?")
    .with_identity_image("assets/folder.png")  # the image on the right of the notification
    .send()
)

Schedule a notification:

from aquaui.notification.native_notification import Notification

notification = Notification("Your pizza is here!").with_delay(15).send()
# 15 seconds delay

Build setup

Clone or fork the repository, then run

poetry shell

poetry install
pre-commit install

Make changes, then run tests with

pytest tests

Ensure that all tests pass.

Recommended editor settings
{
  "python.formatting.provider": "black",
  "editor.formatOnSave": true,
  "[python]": {
    "editor.insertSpaces": true,
    "editor.detectIndentation": false,
    "editor.tabSize": 4
  },
  "python.linting.enabled": true,
  "python.linting.flake8Enabled": true,
  "python.linting.pylintEnabled": false,
  "python.pythonPath": "/Users/yourusername/.../aquaui-UIHDsdfS-py3.7"
}

License

MIT

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

aquaui-0.0.1.post2.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

aquaui-0.0.1.post2-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file aquaui-0.0.1.post2.tar.gz.

File metadata

  • Download URL: aquaui-0.0.1.post2.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.7.6 Darwin/20.1.0

File hashes

Hashes for aquaui-0.0.1.post2.tar.gz
Algorithm Hash digest
SHA256 417fe82e6d4e9212e738e483bbd5a3e883bf4b264c0c3b582289b6b865f48b80
MD5 4371560be49eb5feb00c69894d95e818
BLAKE2b-256 eaf93b8219f0f604eb04865b5e3e5d59f1e1e934737beb4ead48a043886435f5

See more details on using hashes here.

File details

Details for the file aquaui-0.0.1.post2-py3-none-any.whl.

File metadata

  • Download URL: aquaui-0.0.1.post2-py3-none-any.whl
  • Upload date:
  • Size: 10.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.7.6 Darwin/20.1.0

File hashes

Hashes for aquaui-0.0.1.post2-py3-none-any.whl
Algorithm Hash digest
SHA256 96a16d452d31161bd9c2186f4e0d1333636126f6669094922f485b97d3fbe5cc
MD5 373871fdbf6976b93f7e38cfa01a79c0
BLAKE2b-256 b9ee76a4df50ff67428d40a0d67dcbe8298a40d15de13d5ecaeb672da03bf045

See more details on using hashes here.

Supported by

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