python-terminusgps 33.3.0__tar.gz → 33.3.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of python-terminusgps might be problematic. Click here for more details.
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/PKG-INFO +2 -1
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/pyproject.toml +2 -1
- python_terminusgps-33.3.1/terminusgps/aws/notifier.py +49 -0
- python_terminusgps-33.3.1/terminusgps/django/validators.py +93 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/uv.lock +81 -10
- python_terminusgps-33.3.0/terminusgps/aws/connect.py +0 -21
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/.gitignore +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/COPYING +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/README.md +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/Makefile +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/coverage/c.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/coverage/python.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/coverage/undoc.pickle +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/authorizenet/auth.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/authorizenet/constants.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/authorizenet/controllers.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/authorizenet/examples.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/authorizenet/index.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/authorizenet/profiles.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/authorizenet/subscriptions.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/authorizenet/utils.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/aws/index.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/aws/secrets.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/aws/utils.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/django/forms.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/django/index.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/django/mixins.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/django/settings.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/environment.pickle +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/index.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/mixins.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/settings.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/twilio/caller.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/twilio/examples.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/twilio/index.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/twilio/settings.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/validators.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/wialon/constants.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/wialon/errors.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/wialon/examples.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/wialon/flags.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/wialon/index.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/wialon/items.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/wialon/session.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/wialon/settings.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/wialon/utils.doctree +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/index.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/authorizenet/auth.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/authorizenet/constants.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/authorizenet/controllers.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/authorizenet/errors.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/authorizenet/profiles/addresses.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/authorizenet/profiles/base.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/authorizenet/profiles/customers.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/authorizenet/profiles/payments.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/authorizenet/profiles/subscriptions.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/authorizenet/subscriptions/subscriptions.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/authorizenet/utils.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/aws/secrets.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/django/forms/fields.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/django/forms/widgets.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/django/forms.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/django/mixins.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/mixins.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/twilio/caller.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/wialon/constants.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/wialon/flags.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/wialon/items/base.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/wialon/items/geofence.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/wialon/items/notification.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/wialon/items/resource.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/wialon/items/retranslator.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/wialon/items/route.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/wialon/items/unit.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/wialon/items/unit_group.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/wialon/items/user.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/wialon/session.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/terminusgps/wialon/utils.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/wialon/api.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/authorizenet/auth.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/authorizenet/constants.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/authorizenet/controllers.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/authorizenet/examples.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/authorizenet/index.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/authorizenet/profiles.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/authorizenet/subscriptions.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/authorizenet/utils.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/aws/index.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/aws/secrets.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/aws/utils.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/django/forms.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/django/index.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/django/mixins.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/django/settings.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/index.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/mixins.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/settings.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/twilio/caller.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/twilio/examples.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/twilio/index.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/twilio/settings.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/validators.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/wialon/constants.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/wialon/errors.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/wialon/examples.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/wialon/flags.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/wialon/index.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/wialon/items.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/wialon/session.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/wialon/settings.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/wialon/utils.rst.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/0fc70aa4dfe4d16d7073.woff +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/583e3f428bf2362b546d.woff +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/5be6ec379613f10aea3f.woff +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/76c1862325ea6f70eeff.woff2 +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/83710c128240451d95af.woff +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/_sphinx_javascript_frameworks_compat.js +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/a63d39a1c104a2b3e87e.woff2 +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/autoclasstoc.css +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/awesome-docsearch.css +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/awesome-docsearch.js +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/awesome-sphinx-design.css +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/awesome-sphinx-design.js +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/b659956119f91f2342bc.woff2 +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/basic.css +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/bb50084be2b43ba7b98c.woff2 +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/ce1e40901d7a0d88d483.woff2 +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/css/badge_only.css +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/css/fonts/fontawesome-webfont.eot +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/css/fonts/fontawesome-webfont.svg +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/css/fonts/fontawesome-webfont.ttf +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/css/fonts/fontawesome-webfont.woff +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/css/fonts/lato-bold-italic.woff +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/css/fonts/lato-bold-italic.woff2 +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/css/fonts/lato-bold.woff +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/css/fonts/lato-bold.woff2 +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/css/fonts/lato-normal-italic.woff +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/css/fonts/lato-normal-italic.woff2 +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/css/fonts/lato-normal.woff +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/css/fonts/lato-normal.woff2 +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/css/theme.css +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/d04352f240062b100fba.woff2 +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/doctools.js +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/documentation_options.js +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/f1cdf5c21de970ee0592.woff +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/fd994e8d90d9cab651b0.woff +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/file.png +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/fonts/Lato/lato-bold.eot +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/fonts/Lato/lato-bold.ttf +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/fonts/Lato/lato-bold.woff +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/fonts/Lato/lato-bold.woff2 +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/fonts/Lato/lato-bolditalic.eot +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/fonts/Lato/lato-bolditalic.woff +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/fonts/Lato/lato-italic.eot +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/fonts/Lato/lato-italic.ttf +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/fonts/Lato/lato-italic.woff +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/fonts/Lato/lato-italic.woff2 +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/fonts/Lato/lato-regular.eot +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/fonts/Lato/lato-regular.ttf +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/fonts/Lato/lato-regular.woff +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/fonts/Lato/lato-regular.woff2 +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/jquery.js +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/js/badge_only.js +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/js/theme.js +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/js/versions.js +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/language_data.js +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/minus.png +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/plus.png +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/pygments.css +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/searchtools.js +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/sphinx_highlight.js +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/theme.css +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/theme.js +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_static/theme.js.LICENSE.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/authorizenet/auth.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/authorizenet/constants.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/authorizenet/controllers.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/authorizenet/examples.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/authorizenet/index.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/authorizenet/profiles.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/authorizenet/subscriptions.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/authorizenet/utils.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/aws/index.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/aws/secrets.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/aws/utils.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/django/forms.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/django/index.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/django/mixins.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/django/settings.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/genindex.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/index.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/mixins.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/objects.inv +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/py-modindex.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/search.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/searchindex.js +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/settings.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/twilio/caller.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/twilio/examples.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/twilio/index.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/twilio/settings.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/validators.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/wialon/constants.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/wialon/errors.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/wialon/examples.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/wialon/flags.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/wialon/index.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/wialon/items.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/wialon/session.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/wialon/settings.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/wialon/utils.html +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/linkcheck/output.json +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/linkcheck/output.txt +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/make.bat +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/source/authorizenet/auth.rst +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/source/authorizenet/constants.rst +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/source/authorizenet/controllers.rst +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/source/authorizenet/examples.rst +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/source/authorizenet/index.rst +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/source/authorizenet/profiles.rst +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/source/authorizenet/utils.rst +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/source/aws/index.rst +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/source/aws/secrets.rst +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/source/aws/utils.rst +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/source/conf.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/source/django/forms.rst +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/source/django/index.rst +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/source/django/mixins.rst +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/source/django/settings.rst +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/source/index.rst +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/source/twilio/caller.rst +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/source/twilio/examples.rst +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/source/twilio/index.rst +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/source/wialon/constants.rst +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/source/wialon/errors.rst +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/source/wialon/examples.rst +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/source/wialon/flags.rst +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/source/wialon/index.rst +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/source/wialon/items.rst +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/source/wialon/session.rst +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/source/wialon/utils.rst +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/__init__.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/authorizenet/__init__.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/authorizenet/auth.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/authorizenet/constants.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/authorizenet/controllers.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/authorizenet/profiles/__init__.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/authorizenet/profiles/addresses.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/authorizenet/profiles/base.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/authorizenet/profiles/customers.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/authorizenet/profiles/payments.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/authorizenet/profiles/subscriptions.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/authorizenet/tests/__init__.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/authorizenet/tests/test_auth.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/authorizenet/tests/test_profiles.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/authorizenet/tests/test_utils.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/authorizenet/utils.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/aws/__init__.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/aws/secrets.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/aws/utils.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/django/__init__.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/django/forms/__init__.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/django/forms/fields.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/django/forms/forms.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/django/forms/widgets.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/django/mixins.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/django/settings.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/django/tests/test_forms.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/django/tests/test_mixins.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/django/tests/test_utils.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/django/utils.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/twilio/__init__.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/twilio/caller.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/twilio/tests/__init__.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/twilio/tests/test_caller.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/twilio/tests/test_validators.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/twilio/validators.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/wialon/__init__.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/wialon/constants.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/wialon/flags.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/wialon/items/__init__.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/wialon/items/base.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/wialon/items/resource.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/wialon/items/retranslator.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/wialon/items/route.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/wialon/items/unit.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/wialon/items/unit_group.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/wialon/items/user.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/wialon/session.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/wialon/tests/__init__.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/wialon/tests/test_items.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/wialon/tests/test_session.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/wialon/tests/test_utils.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/wialon/utils.py +0 -0
- {python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/terminusgps/wialon/validators.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-terminusgps
|
|
3
|
-
Version: 33.3.
|
|
3
|
+
Version: 33.3.1
|
|
4
4
|
Summary: Provides abstractions/utilities for working with Wialon API, Authorize.NET API, AWS API, and more.
|
|
5
5
|
Project-URL: Documentation, https://docs.terminusgps.com
|
|
6
6
|
Project-URL: Repository, https://github.com/terminusgps/python-terminusgps
|
|
@@ -12,6 +12,7 @@ Classifier: Programming Language :: Python :: 3
|
|
|
12
12
|
Classifier: Programming Language :: Python :: 3.12
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.13
|
|
14
14
|
Requires-Python: >=3.12
|
|
15
|
+
Requires-Dist: aiobotocore>=2.21.1
|
|
15
16
|
Requires-Dist: argparse>=1.4.0
|
|
16
17
|
Requires-Dist: authorizenet>=1.1.5
|
|
17
18
|
Requires-Dist: boto3>=1.34.144
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "python-terminusgps"
|
|
3
|
-
version = "33.3.
|
|
3
|
+
version = "33.3.1"
|
|
4
4
|
description = "Provides abstractions/utilities for working with Wialon API, Authorize.NET API, AWS API, and more."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
authors = [ {name = "Blake Nall", email = "blake@terminusgps.com" } ]
|
|
@@ -13,6 +13,7 @@ classifiers = [
|
|
|
13
13
|
]
|
|
14
14
|
requires-python = ">=3.12"
|
|
15
15
|
dependencies = [
|
|
16
|
+
"aiobotocore>=2.21.1",
|
|
16
17
|
"argparse>=1.4.0",
|
|
17
18
|
"authorizenet>=1.1.5",
|
|
18
19
|
"boto3>=1.34.144",
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
import uuid
|
|
3
|
+
from contextlib import AsyncExitStack
|
|
4
|
+
|
|
5
|
+
from aiobotocore.session import AioSession
|
|
6
|
+
|
|
7
|
+
from terminusgps.django.validators import validate_e164_phone_number
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class AWSNotifier:
|
|
11
|
+
def __init__(self, region: str = "us-east-1") -> None:
|
|
12
|
+
self._client = None
|
|
13
|
+
self._region = region
|
|
14
|
+
self._exit_stack = AsyncExitStack()
|
|
15
|
+
|
|
16
|
+
async def __aenter__(self):
|
|
17
|
+
session = AioSession()
|
|
18
|
+
self._client = await self._exit_stack.enter_async_context(
|
|
19
|
+
session.create_client("sns")
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
async def __aexit__(self, exc_type, exc_val, exc_tb):
|
|
23
|
+
await self._exit_stack.__aexit__(exc_type, exc_val, exc_tb)
|
|
24
|
+
|
|
25
|
+
async def send_sms(
|
|
26
|
+
self, phone_number: str, message: str, message_id: str, group_id: str
|
|
27
|
+
) -> dict:
|
|
28
|
+
validate_e164_phone_number(phone_number)
|
|
29
|
+
await self._client.publish(
|
|
30
|
+
**{
|
|
31
|
+
"PhoneNumber": phone_number,
|
|
32
|
+
"Message": message,
|
|
33
|
+
"MessageDeduplicationId": message_id,
|
|
34
|
+
"MessageGroupId": group_id,
|
|
35
|
+
}
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
async def main() -> None:
|
|
40
|
+
notifier = AWSNotifier()
|
|
41
|
+
message_id = str(uuid.uuid4())
|
|
42
|
+
await notifier.send_sms(
|
|
43
|
+
"+17133049421", "This is a test message", message_id, "message-group"
|
|
44
|
+
)
|
|
45
|
+
return
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
if __name__ == "__main__":
|
|
49
|
+
asyncio.run(main())
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
from django.core.exceptions import ValidationError
|
|
2
|
+
from django.utils.translation import gettext_lazy as _
|
|
3
|
+
|
|
4
|
+
VALID_COUNTRY_CODES = ("+1", "+52")
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def validate_e164_phone_number(value: str) -> None:
|
|
8
|
+
"""Raises :py:exec:`~django.core.exceptions.ValidationError` if the value is not a valid `E.164 <https://en.wikipedia.org/wiki/E.164>`_ formatted phone number."""
|
|
9
|
+
if not value.startswith("+"):
|
|
10
|
+
raise ValidationError(
|
|
11
|
+
_("E.164 phone number must begin with a '+', got '%(char)s'."),
|
|
12
|
+
code="invalid",
|
|
13
|
+
params={"char": value[0]},
|
|
14
|
+
)
|
|
15
|
+
if " " in value:
|
|
16
|
+
raise ValidationError(
|
|
17
|
+
_("E.164 phone number cannot contain spaces, got '%(value)s'."),
|
|
18
|
+
code="invalid",
|
|
19
|
+
params={"value": value},
|
|
20
|
+
)
|
|
21
|
+
if "-" in value:
|
|
22
|
+
raise ValidationError(
|
|
23
|
+
_("E.164 phone number cannot contain hyphens, got '%(value)s'."),
|
|
24
|
+
code="invalid",
|
|
25
|
+
params={"value": value},
|
|
26
|
+
)
|
|
27
|
+
if len(value) < 12:
|
|
28
|
+
raise ValidationError(
|
|
29
|
+
_(
|
|
30
|
+
"E.164 phone number cannot be less than 12 characters in length, got %(len)s."
|
|
31
|
+
),
|
|
32
|
+
code="invalid",
|
|
33
|
+
params={"len": len(value)},
|
|
34
|
+
)
|
|
35
|
+
if len(value) > 15:
|
|
36
|
+
raise ValidationError(
|
|
37
|
+
_(
|
|
38
|
+
"E.164 phone number cannot be greater than 15 characters in length, got %(len)s."
|
|
39
|
+
),
|
|
40
|
+
code="invalid",
|
|
41
|
+
params={"len": len(value)},
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
country_code: str = value[:-10]
|
|
45
|
+
area_code: str = value[-10:-7]
|
|
46
|
+
subscriber_number: str = value[-7:]
|
|
47
|
+
|
|
48
|
+
if len(country_code) < 2 or len(country_code) > 5:
|
|
49
|
+
raise ValidationError(
|
|
50
|
+
_(
|
|
51
|
+
"E.164 phone number country code must be between 2 and 5 characters in length, got %(len)s."
|
|
52
|
+
),
|
|
53
|
+
code="invalid",
|
|
54
|
+
params={"len": len(country_code)},
|
|
55
|
+
)
|
|
56
|
+
if country_code not in VALID_COUNTRY_CODES:
|
|
57
|
+
raise ValidationError(
|
|
58
|
+
_(
|
|
59
|
+
"E.164 phone number cannot contain an invalid country code, got '%(country_code)s'."
|
|
60
|
+
),
|
|
61
|
+
code="invalid",
|
|
62
|
+
params={"country_code": country_code},
|
|
63
|
+
)
|
|
64
|
+
if not len(area_code) == 3:
|
|
65
|
+
raise ValidationError(
|
|
66
|
+
_(
|
|
67
|
+
"E.164 phone number must contain a 3-digit area code, got '%(area_code)s'."
|
|
68
|
+
),
|
|
69
|
+
code="invalid",
|
|
70
|
+
params={"area_code": area_code},
|
|
71
|
+
)
|
|
72
|
+
if not area_code.isdigit():
|
|
73
|
+
raise ValidationError(
|
|
74
|
+
_("E.164 phone number must have a valid area code, got '%(area_code)s'"),
|
|
75
|
+
code="invalid",
|
|
76
|
+
params={"area_code": area_code},
|
|
77
|
+
)
|
|
78
|
+
if not len(subscriber_number) == 7:
|
|
79
|
+
raise ValidationError(
|
|
80
|
+
_(
|
|
81
|
+
"E.164 phone number must contain a 7-digit subscriber number, got '%(subscriber_number)s'."
|
|
82
|
+
),
|
|
83
|
+
code="invalid",
|
|
84
|
+
params={"subscriber_number": subscriber_number},
|
|
85
|
+
)
|
|
86
|
+
if not subscriber_number.isdigit():
|
|
87
|
+
raise ValidationError(
|
|
88
|
+
_(
|
|
89
|
+
"E.164 phone number must have a valid subscriber number, got '%(subscriber_number)s'"
|
|
90
|
+
),
|
|
91
|
+
code="invalid",
|
|
92
|
+
params={"subscriber_number": subscriber_number},
|
|
93
|
+
)
|
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
version = 1
|
|
2
2
|
requires-python = ">=3.12"
|
|
3
3
|
|
|
4
|
+
[[package]]
|
|
5
|
+
name = "aiobotocore"
|
|
6
|
+
version = "2.21.1"
|
|
7
|
+
source = { registry = "https://pypi.org/simple" }
|
|
8
|
+
dependencies = [
|
|
9
|
+
{ name = "aiohttp" },
|
|
10
|
+
{ name = "aioitertools" },
|
|
11
|
+
{ name = "botocore" },
|
|
12
|
+
{ name = "jmespath" },
|
|
13
|
+
{ name = "multidict" },
|
|
14
|
+
{ name = "python-dateutil" },
|
|
15
|
+
{ name = "wrapt" },
|
|
16
|
+
]
|
|
17
|
+
sdist = { url = "https://files.pythonhosted.org/packages/d2/dc/f5f872fb01ce37c09525cedc7ecfad7002ffe2a8a23f77d7d2c234399b51/aiobotocore-2.21.1.tar.gz", hash = "sha256:010357f43004413e92a9d066bb0db1f241aeb29ffed306e9197061ffc94e6577", size = 108900 }
|
|
18
|
+
wheels = [
|
|
19
|
+
{ url = "https://files.pythonhosted.org/packages/95/67/026598918f92145156f2feb7957f57daefda20375cc2ac1a0692a9b8010b/aiobotocore-2.21.1-py3-none-any.whl", hash = "sha256:bd7c49a6d6f8a3d9444b0a94417c8da13813b5c7eec1c4f0ec2db7e8ce8f23e7", size = 78313 },
|
|
20
|
+
]
|
|
21
|
+
|
|
4
22
|
[[package]]
|
|
5
23
|
name = "aiohappyeyeballs"
|
|
6
24
|
version = "2.6.1"
|
|
@@ -71,6 +89,15 @@ wheels = [
|
|
|
71
89
|
{ url = "https://files.pythonhosted.org/packages/1a/99/84ba7273339d0f3dfa57901b846489d2e5c2cd731470167757f1935fffbd/aiohttp_retry-2.9.1-py3-none-any.whl", hash = "sha256:66d2759d1921838256a05a3f80ad7e724936f083e35be5abb5e16eed6be6dc54", size = 9981 },
|
|
72
90
|
]
|
|
73
91
|
|
|
92
|
+
[[package]]
|
|
93
|
+
name = "aioitertools"
|
|
94
|
+
version = "0.12.0"
|
|
95
|
+
source = { registry = "https://pypi.org/simple" }
|
|
96
|
+
sdist = { url = "https://files.pythonhosted.org/packages/06/de/38491a84ab323b47c7f86e94d2830e748780525f7a10c8600b67ead7e9ea/aioitertools-0.12.0.tar.gz", hash = "sha256:c2a9055b4fbb7705f561b9d86053e8af5d10cc845d22c32008c43490b2d8dd6b", size = 19369 }
|
|
97
|
+
wheels = [
|
|
98
|
+
{ url = "https://files.pythonhosted.org/packages/85/13/58b70a580de00893223d61de8fea167877a3aed97d4a5e1405c9159ef925/aioitertools-0.12.0-py3-none-any.whl", hash = "sha256:fc1f5fac3d737354de8831cbba3eb04f79dd649d8f3afb4c5b114925e662a796", size = 24345 },
|
|
99
|
+
]
|
|
100
|
+
|
|
74
101
|
[[package]]
|
|
75
102
|
name = "aiosignal"
|
|
76
103
|
version = "1.3.2"
|
|
@@ -168,30 +195,30 @@ wheels = [
|
|
|
168
195
|
|
|
169
196
|
[[package]]
|
|
170
197
|
name = "boto3"
|
|
171
|
-
version = "1.
|
|
198
|
+
version = "1.37.1"
|
|
172
199
|
source = { registry = "https://pypi.org/simple" }
|
|
173
200
|
dependencies = [
|
|
174
201
|
{ name = "botocore" },
|
|
175
202
|
{ name = "jmespath" },
|
|
176
203
|
{ name = "s3transfer" },
|
|
177
204
|
]
|
|
178
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
205
|
+
sdist = { url = "https://files.pythonhosted.org/packages/21/8c/c2af03daafaacea1db1823d23073facffa75818b61d376c3be77dd297ae8/boto3-1.37.1.tar.gz", hash = "sha256:96d18f7feb0c1fcb95f8837b74b6c8880e1b4e35ce5f8a8f8cb243a090c278ed", size = 111175 }
|
|
179
206
|
wheels = [
|
|
180
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
207
|
+
{ url = "https://files.pythonhosted.org/packages/63/ec/e722c53c9dc41e8df094587c32e19409bace8b43b5eb31fe3536ca57a38b/boto3-1.37.1-py3-none-any.whl", hash = "sha256:4320441f904435a1b85e6ecb81793192e522c737cc9ed6566014e29f0a11cb22", size = 139338 },
|
|
181
208
|
]
|
|
182
209
|
|
|
183
210
|
[[package]]
|
|
184
211
|
name = "botocore"
|
|
185
|
-
version = "1.
|
|
212
|
+
version = "1.37.1"
|
|
186
213
|
source = { registry = "https://pypi.org/simple" }
|
|
187
214
|
dependencies = [
|
|
188
215
|
{ name = "jmespath" },
|
|
189
216
|
{ name = "python-dateutil" },
|
|
190
217
|
{ name = "urllib3" },
|
|
191
218
|
]
|
|
192
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
219
|
+
sdist = { url = "https://files.pythonhosted.org/packages/e5/01/3083bff25fd91193162298920cb093b9095609408416526d52b2826965b7/botocore-1.37.1.tar.gz", hash = "sha256:b194db8fb2a0ffba53568c364ae26166e7eec0445496b2ac86a6e142f3dd982f", size = 13578835 }
|
|
193
220
|
wheels = [
|
|
194
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
221
|
+
{ url = "https://files.pythonhosted.org/packages/3d/20/352b2bf99f93ba18986615841786cbd0d38f7856bd49d4e154a540f04afe/botocore-1.37.1-py3-none-any.whl", hash = "sha256:c1db1bfc5d8c6b3b6d1ca6794f605294b4264e82a7e727b88e0fef9c2b9fbb9c", size = 13359164 },
|
|
195
222
|
]
|
|
196
223
|
|
|
197
224
|
[[package]]
|
|
@@ -925,9 +952,10 @@ wheels = [
|
|
|
925
952
|
|
|
926
953
|
[[package]]
|
|
927
954
|
name = "python-terminusgps"
|
|
928
|
-
version = "33.3.
|
|
955
|
+
version = "33.3.1"
|
|
929
956
|
source = { editable = "." }
|
|
930
957
|
dependencies = [
|
|
958
|
+
{ name = "aiobotocore" },
|
|
931
959
|
{ name = "argparse" },
|
|
932
960
|
{ name = "authorizenet" },
|
|
933
961
|
{ name = "boto3" },
|
|
@@ -950,6 +978,7 @@ dev = [
|
|
|
950
978
|
|
|
951
979
|
[package.metadata]
|
|
952
980
|
requires-dist = [
|
|
981
|
+
{ name = "aiobotocore", specifier = ">=2.21.1" },
|
|
953
982
|
{ name = "argparse", specifier = ">=1.4.0" },
|
|
954
983
|
{ name = "authorizenet", specifier = ">=1.1.5" },
|
|
955
984
|
{ name = "boto3", specifier = ">=1.34.144" },
|
|
@@ -1037,14 +1066,14 @@ wheels = [
|
|
|
1037
1066
|
|
|
1038
1067
|
[[package]]
|
|
1039
1068
|
name = "s3transfer"
|
|
1040
|
-
version = "0.
|
|
1069
|
+
version = "0.11.3"
|
|
1041
1070
|
source = { registry = "https://pypi.org/simple" }
|
|
1042
1071
|
dependencies = [
|
|
1043
1072
|
{ name = "botocore" },
|
|
1044
1073
|
]
|
|
1045
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1074
|
+
sdist = { url = "https://files.pythonhosted.org/packages/39/24/1390172471d569e281fcfd29b92f2f73774e95972c965d14b6c802ff2352/s3transfer-0.11.3.tar.gz", hash = "sha256:edae4977e3a122445660c7c114bba949f9d191bae3b34a096f18a1c8c354527a", size = 148042 }
|
|
1046
1075
|
wheels = [
|
|
1047
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1076
|
+
{ url = "https://files.pythonhosted.org/packages/e4/81/48c41b554a54d75d4407740abb60e3a102ae416284df04d1dbdcbe3dbf24/s3transfer-0.11.3-py3-none-any.whl", hash = "sha256:ca855bdeb885174b5ffa95b9913622459d4ad8e331fc98eb01e6d5eb6a30655d", size = 84246 },
|
|
1048
1077
|
]
|
|
1049
1078
|
|
|
1050
1079
|
[[package]]
|
|
@@ -1273,6 +1302,48 @@ wheels = [
|
|
|
1273
1302
|
{ url = "https://files.pythonhosted.org/packages/e1/07/c6fe3ad3e685340704d314d765b7912993bcb8dc198f0e7a89382d37974b/win32_setctime-1.2.0-py3-none-any.whl", hash = "sha256:95d644c4e708aba81dc3704a116d8cbc974d70b3bdb8be1d150e36be6e9d1390", size = 4083 },
|
|
1274
1303
|
]
|
|
1275
1304
|
|
|
1305
|
+
[[package]]
|
|
1306
|
+
name = "wrapt"
|
|
1307
|
+
version = "1.17.2"
|
|
1308
|
+
source = { registry = "https://pypi.org/simple" }
|
|
1309
|
+
sdist = { url = "https://files.pythonhosted.org/packages/c3/fc/e91cc220803d7bc4db93fb02facd8461c37364151b8494762cc88b0fbcef/wrapt-1.17.2.tar.gz", hash = "sha256:41388e9d4d1522446fe79d3213196bd9e3b301a336965b9e27ca2788ebd122f3", size = 55531 }
|
|
1310
|
+
wheels = [
|
|
1311
|
+
{ url = "https://files.pythonhosted.org/packages/a1/bd/ab55f849fd1f9a58ed7ea47f5559ff09741b25f00c191231f9f059c83949/wrapt-1.17.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d5e2439eecc762cd85e7bd37161d4714aa03a33c5ba884e26c81559817ca0925", size = 53799 },
|
|
1312
|
+
{ url = "https://files.pythonhosted.org/packages/53/18/75ddc64c3f63988f5a1d7e10fb204ffe5762bc663f8023f18ecaf31a332e/wrapt-1.17.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3fc7cb4c1c744f8c05cd5f9438a3caa6ab94ce8344e952d7c45a8ed59dd88392", size = 38821 },
|
|
1313
|
+
{ url = "https://files.pythonhosted.org/packages/48/2a/97928387d6ed1c1ebbfd4efc4133a0633546bec8481a2dd5ec961313a1c7/wrapt-1.17.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8fdbdb757d5390f7c675e558fd3186d590973244fab0c5fe63d373ade3e99d40", size = 38919 },
|
|
1314
|
+
{ url = "https://files.pythonhosted.org/packages/73/54/3bfe5a1febbbccb7a2f77de47b989c0b85ed3a6a41614b104204a788c20e/wrapt-1.17.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bb1d0dbf99411f3d871deb6faa9aabb9d4e744d67dcaaa05399af89d847a91d", size = 88721 },
|
|
1315
|
+
{ url = "https://files.pythonhosted.org/packages/25/cb/7262bc1b0300b4b64af50c2720ef958c2c1917525238d661c3e9a2b71b7b/wrapt-1.17.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d18a4865f46b8579d44e4fe1e2bcbc6472ad83d98e22a26c963d46e4c125ef0b", size = 80899 },
|
|
1316
|
+
{ url = "https://files.pythonhosted.org/packages/2a/5a/04cde32b07a7431d4ed0553a76fdb7a61270e78c5fd5a603e190ac389f14/wrapt-1.17.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc570b5f14a79734437cb7b0500376b6b791153314986074486e0b0fa8d71d98", size = 89222 },
|
|
1317
|
+
{ url = "https://files.pythonhosted.org/packages/09/28/2e45a4f4771fcfb109e244d5dbe54259e970362a311b67a965555ba65026/wrapt-1.17.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6d9187b01bebc3875bac9b087948a2bccefe464a7d8f627cf6e48b1bbae30f82", size = 86707 },
|
|
1318
|
+
{ url = "https://files.pythonhosted.org/packages/c6/d2/dcb56bf5f32fcd4bd9aacc77b50a539abdd5b6536872413fd3f428b21bed/wrapt-1.17.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9e8659775f1adf02eb1e6f109751268e493c73716ca5761f8acb695e52a756ae", size = 79685 },
|
|
1319
|
+
{ url = "https://files.pythonhosted.org/packages/80/4e/eb8b353e36711347893f502ce91c770b0b0929f8f0bed2670a6856e667a9/wrapt-1.17.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e8b2816ebef96d83657b56306152a93909a83f23994f4b30ad4573b00bd11bb9", size = 87567 },
|
|
1320
|
+
{ url = "https://files.pythonhosted.org/packages/17/27/4fe749a54e7fae6e7146f1c7d914d28ef599dacd4416566c055564080fe2/wrapt-1.17.2-cp312-cp312-win32.whl", hash = "sha256:468090021f391fe0056ad3e807e3d9034e0fd01adcd3bdfba977b6fdf4213ea9", size = 36672 },
|
|
1321
|
+
{ url = "https://files.pythonhosted.org/packages/15/06/1dbf478ea45c03e78a6a8c4be4fdc3c3bddea5c8de8a93bc971415e47f0f/wrapt-1.17.2-cp312-cp312-win_amd64.whl", hash = "sha256:ec89ed91f2fa8e3f52ae53cd3cf640d6feff92ba90d62236a81e4e563ac0e991", size = 38865 },
|
|
1322
|
+
{ url = "https://files.pythonhosted.org/packages/ce/b9/0ffd557a92f3b11d4c5d5e0c5e4ad057bd9eb8586615cdaf901409920b14/wrapt-1.17.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6ed6ffac43aecfe6d86ec5b74b06a5be33d5bb9243d055141e8cabb12aa08125", size = 53800 },
|
|
1323
|
+
{ url = "https://files.pythonhosted.org/packages/c0/ef/8be90a0b7e73c32e550c73cfb2fa09db62234227ece47b0e80a05073b375/wrapt-1.17.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:35621ae4c00e056adb0009f8e86e28eb4a41a4bfa8f9bfa9fca7d343fe94f998", size = 38824 },
|
|
1324
|
+
{ url = "https://files.pythonhosted.org/packages/36/89/0aae34c10fe524cce30fe5fc433210376bce94cf74d05b0d68344c8ba46e/wrapt-1.17.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a604bf7a053f8362d27eb9fefd2097f82600b856d5abe996d623babd067b1ab5", size = 38920 },
|
|
1325
|
+
{ url = "https://files.pythonhosted.org/packages/3b/24/11c4510de906d77e0cfb5197f1b1445d4fec42c9a39ea853d482698ac681/wrapt-1.17.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cbabee4f083b6b4cd282f5b817a867cf0b1028c54d445b7ec7cfe6505057cf8", size = 88690 },
|
|
1326
|
+
{ url = "https://files.pythonhosted.org/packages/71/d7/cfcf842291267bf455b3e266c0c29dcb675b5540ee8b50ba1699abf3af45/wrapt-1.17.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:49703ce2ddc220df165bd2962f8e03b84c89fee2d65e1c24a7defff6f988f4d6", size = 80861 },
|
|
1327
|
+
{ url = "https://files.pythonhosted.org/packages/d5/66/5d973e9f3e7370fd686fb47a9af3319418ed925c27d72ce16b791231576d/wrapt-1.17.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8112e52c5822fc4253f3901b676c55ddf288614dc7011634e2719718eaa187dc", size = 89174 },
|
|
1328
|
+
{ url = "https://files.pythonhosted.org/packages/a7/d3/8e17bb70f6ae25dabc1aaf990f86824e4fd98ee9cadf197054e068500d27/wrapt-1.17.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9fee687dce376205d9a494e9c121e27183b2a3df18037f89d69bd7b35bcf59e2", size = 86721 },
|
|
1329
|
+
{ url = "https://files.pythonhosted.org/packages/6f/54/f170dfb278fe1c30d0ff864513cff526d624ab8de3254b20abb9cffedc24/wrapt-1.17.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:18983c537e04d11cf027fbb60a1e8dfd5190e2b60cc27bc0808e653e7b218d1b", size = 79763 },
|
|
1330
|
+
{ url = "https://files.pythonhosted.org/packages/4a/98/de07243751f1c4a9b15c76019250210dd3486ce098c3d80d5f729cba029c/wrapt-1.17.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:703919b1633412ab54bcf920ab388735832fdcb9f9a00ae49387f0fe67dad504", size = 87585 },
|
|
1331
|
+
{ url = "https://files.pythonhosted.org/packages/f9/f0/13925f4bd6548013038cdeb11ee2cbd4e37c30f8bfd5db9e5a2a370d6e20/wrapt-1.17.2-cp313-cp313-win32.whl", hash = "sha256:abbb9e76177c35d4e8568e58650aa6926040d6a9f6f03435b7a522bf1c487f9a", size = 36676 },
|
|
1332
|
+
{ url = "https://files.pythonhosted.org/packages/bf/ae/743f16ef8c2e3628df3ddfd652b7d4c555d12c84b53f3d8218498f4ade9b/wrapt-1.17.2-cp313-cp313-win_amd64.whl", hash = "sha256:69606d7bb691b50a4240ce6b22ebb319c1cfb164e5f6569835058196e0f3a845", size = 38871 },
|
|
1333
|
+
{ url = "https://files.pythonhosted.org/packages/3d/bc/30f903f891a82d402ffb5fda27ec1d621cc97cb74c16fea0b6141f1d4e87/wrapt-1.17.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:4a721d3c943dae44f8e243b380cb645a709ba5bd35d3ad27bc2ed947e9c68192", size = 56312 },
|
|
1334
|
+
{ url = "https://files.pythonhosted.org/packages/8a/04/c97273eb491b5f1c918857cd26f314b74fc9b29224521f5b83f872253725/wrapt-1.17.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:766d8bbefcb9e00c3ac3b000d9acc51f1b399513f44d77dfe0eb026ad7c9a19b", size = 40062 },
|
|
1335
|
+
{ url = "https://files.pythonhosted.org/packages/4e/ca/3b7afa1eae3a9e7fefe499db9b96813f41828b9fdb016ee836c4c379dadb/wrapt-1.17.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e496a8ce2c256da1eb98bd15803a79bee00fc351f5dfb9ea82594a3f058309e0", size = 40155 },
|
|
1336
|
+
{ url = "https://files.pythonhosted.org/packages/89/be/7c1baed43290775cb9030c774bc53c860db140397047cc49aedaf0a15477/wrapt-1.17.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d615e4fe22f4ad3528448c193b218e077656ca9ccb22ce2cb20db730f8d306", size = 113471 },
|
|
1337
|
+
{ url = "https://files.pythonhosted.org/packages/32/98/4ed894cf012b6d6aae5f5cc974006bdeb92f0241775addad3f8cd6ab71c8/wrapt-1.17.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a5aaeff38654462bc4b09023918b7f21790efb807f54c000a39d41d69cf552cb", size = 101208 },
|
|
1338
|
+
{ url = "https://files.pythonhosted.org/packages/ea/fd/0c30f2301ca94e655e5e057012e83284ce8c545df7661a78d8bfca2fac7a/wrapt-1.17.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a7d15bbd2bc99e92e39f49a04653062ee6085c0e18b3b7512a4f2fe91f2d681", size = 109339 },
|
|
1339
|
+
{ url = "https://files.pythonhosted.org/packages/75/56/05d000de894c4cfcb84bcd6b1df6214297b8089a7bd324c21a4765e49b14/wrapt-1.17.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:e3890b508a23299083e065f435a492b5435eba6e304a7114d2f919d400888cc6", size = 110232 },
|
|
1340
|
+
{ url = "https://files.pythonhosted.org/packages/53/f8/c3f6b2cf9b9277fb0813418e1503e68414cd036b3b099c823379c9575e6d/wrapt-1.17.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:8c8b293cd65ad716d13d8dd3624e42e5a19cc2a2f1acc74b30c2c13f15cb61a6", size = 100476 },
|
|
1341
|
+
{ url = "https://files.pythonhosted.org/packages/a7/b1/0bb11e29aa5139d90b770ebbfa167267b1fc548d2302c30c8f7572851738/wrapt-1.17.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c82b8785d98cdd9fed4cac84d765d234ed3251bd6afe34cb7ac523cb93e8b4f", size = 106377 },
|
|
1342
|
+
{ url = "https://files.pythonhosted.org/packages/6a/e1/0122853035b40b3f333bbb25f1939fc1045e21dd518f7f0922b60c156f7c/wrapt-1.17.2-cp313-cp313t-win32.whl", hash = "sha256:13e6afb7fe71fe7485a4550a8844cc9ffbe263c0f1a1eea569bc7091d4898555", size = 37986 },
|
|
1343
|
+
{ url = "https://files.pythonhosted.org/packages/09/5e/1655cf481e079c1f22d0cabdd4e51733679932718dc23bf2db175f329b76/wrapt-1.17.2-cp313-cp313t-win_amd64.whl", hash = "sha256:eaf675418ed6b3b31c7a989fd007fa7c3be66ce14e5c3b27336383604c9da85c", size = 40750 },
|
|
1344
|
+
{ url = "https://files.pythonhosted.org/packages/2d/82/f56956041adef78f849db6b289b282e72b55ab8045a75abad81898c28d19/wrapt-1.17.2-py3-none-any.whl", hash = "sha256:b18f2d1533a71f069c7f82d524a52599053d4c7166e9dd374ae2136b7f40f7c8", size = 23594 },
|
|
1345
|
+
]
|
|
1346
|
+
|
|
1276
1347
|
[[package]]
|
|
1277
1348
|
name = "yarl"
|
|
1278
1349
|
version = "1.20.0"
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import datetime
|
|
2
|
-
|
|
3
|
-
import jwt
|
|
4
|
-
from django.conf import settings
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
def get_aws_connect_jwt(widget_id: str, expires_in: int = 500) -> str:
|
|
8
|
-
if expires_in > 600:
|
|
9
|
-
raise ValueError(f"'expires_in' must be less than 600, got '{expires_in}'.")
|
|
10
|
-
|
|
11
|
-
payload = {
|
|
12
|
-
"sub": widget_id,
|
|
13
|
-
"iat": datetime.datetime.utcnow(),
|
|
14
|
-
"exp": datetime.datetime.utcnow() - datetime.timedelta(seconds=expires_in),
|
|
15
|
-
"segmentAttributes": {"connect:Subtype": {"ValueString": "connect:Guide"}},
|
|
16
|
-
}
|
|
17
|
-
header = {"typ": "JWT", "alg": "HS256"}
|
|
18
|
-
encoded_token = jwt.encode(
|
|
19
|
-
payload, settings.CONNECT_SECRET, algorithm=header["alg"], headers=header
|
|
20
|
-
)
|
|
21
|
-
return encoded_token
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/aws/index.doctree
RENAMED
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/aws/secrets.doctree
RENAMED
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/aws/utils.doctree
RENAMED
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/django/forms.doctree
RENAMED
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/django/index.doctree
RENAMED
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/django/mixins.doctree
RENAMED
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/django/settings.doctree
RENAMED
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/environment.pickle
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/settings.doctree
RENAMED
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/twilio/caller.doctree
RENAMED
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/twilio/examples.doctree
RENAMED
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/twilio/index.doctree
RENAMED
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/twilio/settings.doctree
RENAMED
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/validators.doctree
RENAMED
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/wialon/constants.doctree
RENAMED
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/wialon/errors.doctree
RENAMED
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/wialon/examples.doctree
RENAMED
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/wialon/flags.doctree
RENAMED
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/wialon/index.doctree
RENAMED
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/wialon/items.doctree
RENAMED
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/wialon/session.doctree
RENAMED
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/wialon/settings.doctree
RENAMED
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/doctrees/wialon/utils.doctree
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_modules/wialon/api.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/aws/index.rst.txt
RENAMED
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/aws/secrets.rst.txt
RENAMED
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/aws/utils.rst.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/index.rst.txt
RENAMED
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/mixins.rst.txt
RENAMED
|
File without changes
|
{python_terminusgps-33.3.0 → python_terminusgps-33.3.1}/docs/build/html/_sources/settings.rst.txt
RENAMED
|
File without changes
|