python-terminusgps 24.4.0__tar.gz → 25.0.0__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.
Files changed (232) hide show
  1. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/PKG-INFO +1 -1
  2. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/pyproject.toml +1 -1
  3. python_terminusgps-25.0.0/terminusgps/twilio/caller.py +102 -0
  4. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/uv.lock +1 -1
  5. python_terminusgps-24.4.0/terminusgps/twilio/caller.py +0 -63
  6. python_terminusgps-24.4.0/terminusgps/twilio/logger.py +0 -29
  7. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/.gitignore +0 -0
  8. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/COPYING +0 -0
  9. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/README.md +0 -0
  10. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/Makefile +0 -0
  11. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/coverage/c.txt +0 -0
  12. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/coverage/python.txt +0 -0
  13. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/coverage/undoc.pickle +0 -0
  14. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/doctrees/authorizenet/auth.doctree +0 -0
  15. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/doctrees/authorizenet/index.doctree +0 -0
  16. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/doctrees/authorizenet/profiles.doctree +0 -0
  17. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/doctrees/authorizenet/utils.doctree +0 -0
  18. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/doctrees/aws/index.doctree +0 -0
  19. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/doctrees/aws/secrets.doctree +0 -0
  20. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/doctrees/environment.pickle +0 -0
  21. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/doctrees/index.doctree +0 -0
  22. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/doctrees/settings.doctree +0 -0
  23. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/doctrees/twilio/caller.doctree +0 -0
  24. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/doctrees/twilio/index.doctree +0 -0
  25. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/doctrees/twilio/settings.doctree +0 -0
  26. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/doctrees/wialon/constants.doctree +0 -0
  27. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/doctrees/wialon/errors.doctree +0 -0
  28. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/doctrees/wialon/examples.doctree +0 -0
  29. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/doctrees/wialon/flags.doctree +0 -0
  30. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/doctrees/wialon/index.doctree +0 -0
  31. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/doctrees/wialon/items.doctree +0 -0
  32. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/doctrees/wialon/session.doctree +0 -0
  33. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/doctrees/wialon/settings.doctree +0 -0
  34. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/doctrees/wialon/utils.doctree +0 -0
  35. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_modules/index.html +0 -0
  36. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_modules/terminusgps/authorizenet/auth.html +0 -0
  37. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_modules/terminusgps/authorizenet/errors.html +0 -0
  38. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_modules/terminusgps/authorizenet/profiles/addresses.html +0 -0
  39. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_modules/terminusgps/authorizenet/profiles/base.html +0 -0
  40. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_modules/terminusgps/authorizenet/profiles/customers.html +0 -0
  41. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_modules/terminusgps/authorizenet/profiles/payments.html +0 -0
  42. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_modules/terminusgps/authorizenet/utils.html +0 -0
  43. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_modules/terminusgps/aws/secrets.html +0 -0
  44. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_modules/terminusgps/twilio/caller.html +0 -0
  45. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_modules/terminusgps/wialon/items/base.html +0 -0
  46. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_modules/terminusgps/wialon/items/geofence.html +0 -0
  47. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_modules/terminusgps/wialon/items/notification.html +0 -0
  48. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_modules/terminusgps/wialon/items/resource.html +0 -0
  49. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_modules/terminusgps/wialon/items/retranslator.html +0 -0
  50. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_modules/terminusgps/wialon/items/route.html +0 -0
  51. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_modules/terminusgps/wialon/items/unit.html +0 -0
  52. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_modules/terminusgps/wialon/items/unit_group.html +0 -0
  53. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_modules/terminusgps/wialon/items/user.html +0 -0
  54. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_modules/terminusgps/wialon/session.html +0 -0
  55. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_modules/terminusgps/wialon/utils.html +0 -0
  56. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_modules/wialon/api.html +0 -0
  57. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_sources/authorizenet/auth.rst.txt +0 -0
  58. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_sources/authorizenet/index.rst.txt +0 -0
  59. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_sources/authorizenet/profiles.rst.txt +0 -0
  60. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_sources/authorizenet/utils.rst.txt +0 -0
  61. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_sources/aws/index.rst.txt +0 -0
  62. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_sources/aws/secrets.rst.txt +0 -0
  63. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_sources/index.rst.txt +0 -0
  64. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_sources/settings.rst.txt +0 -0
  65. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_sources/twilio/caller.rst.txt +0 -0
  66. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_sources/twilio/index.rst.txt +0 -0
  67. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_sources/twilio/settings.rst.txt +0 -0
  68. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_sources/wialon/constants.rst.txt +0 -0
  69. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_sources/wialon/errors.rst.txt +0 -0
  70. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_sources/wialon/examples.rst.txt +0 -0
  71. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_sources/wialon/flags.rst.txt +0 -0
  72. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_sources/wialon/index.rst.txt +0 -0
  73. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_sources/wialon/items.rst.txt +0 -0
  74. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_sources/wialon/session.rst.txt +0 -0
  75. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_sources/wialon/settings.rst.txt +0 -0
  76. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_sources/wialon/utils.rst.txt +0 -0
  77. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/0fc70aa4dfe4d16d7073.woff +0 -0
  78. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/583e3f428bf2362b546d.woff +0 -0
  79. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/5be6ec379613f10aea3f.woff +0 -0
  80. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/76c1862325ea6f70eeff.woff2 +0 -0
  81. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/83710c128240451d95af.woff +0 -0
  82. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/_sphinx_javascript_frameworks_compat.js +0 -0
  83. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/a63d39a1c104a2b3e87e.woff2 +0 -0
  84. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/autoclasstoc.css +0 -0
  85. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/awesome-docsearch.css +0 -0
  86. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/awesome-docsearch.js +0 -0
  87. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/awesome-sphinx-design.css +0 -0
  88. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/awesome-sphinx-design.js +0 -0
  89. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/b659956119f91f2342bc.woff2 +0 -0
  90. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/basic.css +0 -0
  91. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/bb50084be2b43ba7b98c.woff2 +0 -0
  92. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/ce1e40901d7a0d88d483.woff2 +0 -0
  93. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/css/badge_only.css +0 -0
  94. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
  95. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
  96. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
  97. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
  98. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/css/fonts/fontawesome-webfont.eot +0 -0
  99. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/css/fonts/fontawesome-webfont.svg +0 -0
  100. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/css/fonts/fontawesome-webfont.ttf +0 -0
  101. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/css/fonts/fontawesome-webfont.woff +0 -0
  102. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
  103. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/css/fonts/lato-bold-italic.woff +0 -0
  104. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/css/fonts/lato-bold-italic.woff2 +0 -0
  105. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/css/fonts/lato-bold.woff +0 -0
  106. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/css/fonts/lato-bold.woff2 +0 -0
  107. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/css/fonts/lato-normal-italic.woff +0 -0
  108. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/css/fonts/lato-normal-italic.woff2 +0 -0
  109. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/css/fonts/lato-normal.woff +0 -0
  110. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/css/fonts/lato-normal.woff2 +0 -0
  111. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/css/theme.css +0 -0
  112. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/d04352f240062b100fba.woff2 +0 -0
  113. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/doctools.js +0 -0
  114. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/documentation_options.js +0 -0
  115. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/f1cdf5c21de970ee0592.woff +0 -0
  116. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/fd994e8d90d9cab651b0.woff +0 -0
  117. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/file.png +0 -0
  118. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/fonts/Lato/lato-bold.eot +0 -0
  119. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/fonts/Lato/lato-bold.ttf +0 -0
  120. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/fonts/Lato/lato-bold.woff +0 -0
  121. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/fonts/Lato/lato-bold.woff2 +0 -0
  122. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/fonts/Lato/lato-bolditalic.eot +0 -0
  123. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
  124. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/fonts/Lato/lato-bolditalic.woff +0 -0
  125. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
  126. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/fonts/Lato/lato-italic.eot +0 -0
  127. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/fonts/Lato/lato-italic.ttf +0 -0
  128. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/fonts/Lato/lato-italic.woff +0 -0
  129. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/fonts/Lato/lato-italic.woff2 +0 -0
  130. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/fonts/Lato/lato-regular.eot +0 -0
  131. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/fonts/Lato/lato-regular.ttf +0 -0
  132. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/fonts/Lato/lato-regular.woff +0 -0
  133. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/fonts/Lato/lato-regular.woff2 +0 -0
  134. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
  135. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
  136. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
  137. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
  138. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
  139. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
  140. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
  141. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
  142. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/jquery.js +0 -0
  143. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/js/badge_only.js +0 -0
  144. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/js/theme.js +0 -0
  145. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/js/versions.js +0 -0
  146. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/language_data.js +0 -0
  147. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/minus.png +0 -0
  148. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/plus.png +0 -0
  149. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/pygments.css +0 -0
  150. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/searchtools.js +0 -0
  151. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/sphinx_highlight.js +0 -0
  152. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/theme.css +0 -0
  153. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/theme.js +0 -0
  154. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/_static/theme.js.LICENSE.txt +0 -0
  155. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/authorizenet/auth.html +0 -0
  156. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/authorizenet/index.html +0 -0
  157. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/authorizenet/profiles.html +0 -0
  158. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/authorizenet/utils.html +0 -0
  159. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/aws/index.html +0 -0
  160. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/aws/secrets.html +0 -0
  161. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/genindex.html +0 -0
  162. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/index.html +0 -0
  163. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/objects.inv +0 -0
  164. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/py-modindex.html +0 -0
  165. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/search.html +0 -0
  166. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/searchindex.js +0 -0
  167. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/settings.html +0 -0
  168. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/twilio/caller.html +0 -0
  169. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/twilio/index.html +0 -0
  170. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/twilio/settings.html +0 -0
  171. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/wialon/constants.html +0 -0
  172. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/wialon/errors.html +0 -0
  173. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/wialon/examples.html +0 -0
  174. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/wialon/flags.html +0 -0
  175. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/wialon/index.html +0 -0
  176. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/wialon/items.html +0 -0
  177. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/wialon/session.html +0 -0
  178. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/wialon/settings.html +0 -0
  179. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/html/wialon/utils.html +0 -0
  180. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/linkcheck/output.json +0 -0
  181. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/build/linkcheck/output.txt +0 -0
  182. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/make.bat +0 -0
  183. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/source/authorizenet/auth.rst +0 -0
  184. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/source/authorizenet/index.rst +0 -0
  185. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/source/authorizenet/profiles.rst +0 -0
  186. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/source/authorizenet/utils.rst +0 -0
  187. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/source/aws/index.rst +0 -0
  188. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/source/aws/secrets.rst +0 -0
  189. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/source/conf.py +0 -0
  190. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/source/index.rst +0 -0
  191. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/source/settings.rst +0 -0
  192. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/source/twilio/caller.rst +0 -0
  193. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/source/twilio/index.rst +0 -0
  194. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/source/wialon/constants.rst +0 -0
  195. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/source/wialon/errors.rst +0 -0
  196. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/source/wialon/examples.rst +0 -0
  197. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/source/wialon/flags.rst +0 -0
  198. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/source/wialon/index.rst +0 -0
  199. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/source/wialon/items.rst +0 -0
  200. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/source/wialon/session.rst +0 -0
  201. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/docs/source/wialon/utils.rst +0 -0
  202. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/__init__.py +0 -0
  203. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/authorizenet/__init__.py +0 -0
  204. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/authorizenet/auth.py +0 -0
  205. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/authorizenet/errors.py +0 -0
  206. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/authorizenet/profiles/__init__.py +0 -0
  207. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/authorizenet/profiles/addresses.py +0 -0
  208. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/authorizenet/profiles/base.py +0 -0
  209. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/authorizenet/profiles/customers.py +0 -0
  210. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/authorizenet/profiles/payments.py +0 -0
  211. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/authorizenet/subscriptions/__init__.py +0 -0
  212. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/authorizenet/subscriptions/subscriptions.py +0 -0
  213. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/authorizenet/utils.py +0 -0
  214. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/aws/__init__.py +0 -0
  215. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/aws/secrets.py +0 -0
  216. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/aws/ses.py +0 -0
  217. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/settings.py +0 -0
  218. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/twilio/__init__.py +0 -0
  219. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/wialon/__init__.py +0 -0
  220. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/wialon/constants.py +0 -0
  221. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/wialon/flags.py +0 -0
  222. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/wialon/items/__init__.py +0 -0
  223. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/wialon/items/base.py +0 -0
  224. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/wialon/items/resource.py +0 -0
  225. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/wialon/items/retranslator.py +0 -0
  226. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/wialon/items/route.py +0 -0
  227. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/wialon/items/unit.py +0 -0
  228. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/wialon/items/unit_group.py +0 -0
  229. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/wialon/items/user.py +0 -0
  230. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/wialon/logger.py +0 -0
  231. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/wialon/session.py +0 -0
  232. {python_terminusgps-24.4.0 → python_terminusgps-25.0.0}/terminusgps/wialon/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-terminusgps
3
- Version: 24.4.0
3
+ Version: 25.0.0
4
4
  Summary: Provides abstractions/utilities for working with Wialon API, Authorize.NET API, AWS API, and more.
5
5
  Project-URL: Documentation, https://app.terminusgps.com/docs/apps/python-terminusgps/index.html
6
6
  Project-URL: Repository, https://github.com/terminusgps/python-terminusgps
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "python-terminusgps"
3
- version = "24.4.0"
3
+ version = "25.0.0"
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" } ]
@@ -0,0 +1,102 @@
1
+ import asyncio
2
+ from typing import Any
3
+
4
+ import twilio.rest
5
+ from django.conf import settings
6
+ from django.core.exceptions import ImproperlyConfigured
7
+ from twilio.http.async_http_client import AsyncTwilioHttpClient
8
+
9
+ if not hasattr(settings, "TWILIO_SID"):
10
+ raise ImproperlyConfigured("'TWILIO_SID' setting is required.")
11
+ if not hasattr(settings, "TWILIO_TOKEN"):
12
+ raise ImproperlyConfigured("'TWILIO_TOKEN' setting is required.")
13
+ if not hasattr(settings, "TWILIO_FROM_NUMBER"):
14
+ raise ImproperlyConfigured("'TWILIO_FROM_NUMBER' setting is required.")
15
+ if not hasattr(settings, "TWILIO_MESSAGING_SID"):
16
+ raise ImproperlyConfigured("'TWILIO_MESSAGING_SID' setting is required.")
17
+
18
+
19
+ class TwilioCaller:
20
+ def __init__(self) -> None:
21
+ """Sets Twilio messaging session variables."""
22
+ self.client_sid = settings.TWILIO_SID
23
+ self.client_token = settings.TWILIO_TOKEN
24
+ self.from_number = settings.TWILIO_FROM_NUMBER
25
+ self.messaging_sid = settings.TWILIO_MESSAGING_SID
26
+
27
+ def __enter__(self) -> "TwilioCaller":
28
+ """Creates an asyncronous Twilio client."""
29
+ self.client = twilio.rest.Client(
30
+ self.client_sid, self.client_token, http_client=AsyncTwilioHttpClient()
31
+ )
32
+ return self
33
+
34
+ def __exit__(self, exc_type, exc_value, exc_tb) -> None:
35
+ return None
36
+
37
+ async def create_notification(
38
+ self, to_number: str, message: str, method: str = "sms"
39
+ ) -> asyncio.Task[Any]:
40
+ """
41
+ Returns an awaitable notification task.
42
+
43
+ Available methods are ``"sms"``, ``"call"`` and ``"phone"``.
44
+
45
+ :param to_number: A phone number to notify.
46
+ :type to_number: :py:obj:`str`
47
+ :param message: A notification message.
48
+ :type message: :py:obj:`str`
49
+ :param method: A notification method. Default is ``"sms"``.
50
+ :type method: :py:obj:`str`
51
+ :returns: An awaitable task.
52
+ :rtype: :py:obj:`~asyncio.Task`
53
+
54
+ """
55
+ match method:
56
+ case "sms":
57
+ return asyncio.create_task(
58
+ self.create_sms(to_number=to_number, message=message)
59
+ )
60
+ case "call" | "phone":
61
+ return asyncio.create_task(
62
+ self.create_call(to_number=to_number, message=message)
63
+ )
64
+ case _:
65
+ raise ValueError(f"Unsupported TwilioCaller method '{method}'.")
66
+
67
+ async def create_call(self, to_number: str, message: str) -> None:
68
+ """
69
+ Calls ``to_number`` and reads ``message`` aloud.
70
+
71
+ :param to_number: A phone number.
72
+ :type to_number: :py:obj:`str`
73
+ :param message: A message to be read aloud.
74
+ :type message: :py:obj:`str`
75
+ :returns: Nothing.
76
+ :rtype: :py:obj:`None`
77
+
78
+ """
79
+ await self.client.calls.create_async(
80
+ to=to_number,
81
+ from_=self.from_number,
82
+ twiml=f"<Response><Say>{message}</Say></Response>",
83
+ )
84
+
85
+ async def create_sms(self, to_number: str, message: str) -> None:
86
+ """
87
+ Texts ``message`` to ``to_number``.
88
+
89
+ :param to_number: A phone number.
90
+ :type to_number: :py:obj:`str`
91
+ :param message: A message to be texted.
92
+ :type message: :py:obj:`str`
93
+ :returns: Nothing.
94
+ :rtype: :py:obj:`None`
95
+
96
+ """
97
+ await self.client.messages.create_async(
98
+ to=to_number,
99
+ from_=self.from_number,
100
+ body=message,
101
+ messaging_service_sid=self.messaging_sid,
102
+ )
@@ -848,7 +848,7 @@ wheels = [
848
848
 
849
849
  [[package]]
850
850
  name = "python-terminusgps"
851
- version = "24.4.0"
851
+ version = "25.0.0"
852
852
  source = { editable = "." }
853
853
  dependencies = [
854
854
  { name = "argparse" },
@@ -1,63 +0,0 @@
1
- import asyncio
2
- import logging
3
- from typing import Any
4
-
5
- import twilio.rest
6
- from django.conf import settings
7
- from twilio.http.async_http_client import AsyncTwilioHttpClient
8
-
9
- from terminusgps.twilio.logger import TwilioLogger
10
-
11
-
12
- class TwilioCaller:
13
- def __init__(self, log_level: int = logging.CRITICAL) -> None:
14
- self.client_sid = settings.TWILIO_SID
15
- self.client_token = settings.TWILIO_TOKEN
16
- self.from_number = settings.TWILIO_FROM_NUMBER
17
- self.messaging_sid = settings.TWILIO_MESSAGING_SID
18
- self.logger = TwilioLogger(
19
- logging.getLogger(self.__class__.__name__), level=log_level
20
- ).get_logger()
21
-
22
- def __enter__(self) -> "TwilioCaller":
23
- self.client = twilio.rest.Client(
24
- self.client_sid, self.client_token, http_client=AsyncTwilioHttpClient()
25
- )
26
- return self
27
-
28
- def __exit__(self, exc_type, exc_value, exc_tb) -> None:
29
- return None
30
-
31
- async def create_notification(
32
- self, to_number: str, message: str, method: str = "sms"
33
- ) -> asyncio.Task[Any]:
34
- self.logger.debug(
35
- f"Creating '{method}' notification targeting '{to_number}'..."
36
- )
37
- match method:
38
- case "sms":
39
- task = asyncio.create_task(
40
- self.create_sms(to_number=to_number, message=message)
41
- )
42
- case "call" | "phone":
43
- task = asyncio.create_task(
44
- self.create_call(to_number=to_number, message=message)
45
- )
46
- case _:
47
- raise ValueError(f"Unsupported TwilioCaller method '{method}'.")
48
- return task
49
-
50
- async def create_call(self, to_number: str, message: str) -> None:
51
- await self.client.calls.create_async(
52
- to=to_number,
53
- from_=self.from_number,
54
- twiml=f"<Response><Say>{message}</Say></Response>",
55
- )
56
-
57
- async def create_sms(self, to_number: str, message: str) -> None:
58
- await self.client.messages.create_async(
59
- to=to_number,
60
- from_=self.from_number,
61
- body=message,
62
- messaging_service_sid=self.messaging_sid,
63
- )
@@ -1,29 +0,0 @@
1
- import logging
2
-
3
-
4
- class TwilioLogger:
5
- def __init__(
6
- self,
7
- logger: logging.Logger,
8
- level: int = logging.DEBUG,
9
- format: str = "%(name)s - %(levelname)s - %(asctime)s - %(message)s",
10
- use_stream_handler: bool = True,
11
- use_file_handler: bool = False,
12
- filename: str = "twilio_debug.log",
13
- ) -> None:
14
- self.logger = logger
15
- self.logger.setLevel(level)
16
- formatter = logging.Formatter(format)
17
-
18
- if use_stream_handler and not self.logger.handlers:
19
- stream_handler = logging.StreamHandler()
20
- stream_handler.setFormatter(formatter)
21
- self.logger.addHandler(stream_handler)
22
-
23
- if use_file_handler and not self.logger.handlers:
24
- file_handler = logging.FileHandler(filename)
25
- file_handler.setFormatter(formatter)
26
- self.logger.addHandler(file_handler)
27
-
28
- def get_logger(self) -> logging.Logger:
29
- return self.logger