python-terminusgps 37.6.7__tar.gz → 37.6.8__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.

Files changed (337) hide show
  1. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/PKG-INFO +1 -1
  2. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/authorizenet/index.doctree +0 -0
  3. python_terminusgps-37.6.8/docs/build/doctrees/authorizenet/validators.doctree +0 -0
  4. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/environment.pickle +0 -0
  5. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/index.html +9 -7
  6. python_terminusgps-37.6.8/docs/build/html/_modules/terminusgps/authorizenet/validators.html +327 -0
  7. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/wialon/items/resource.html +8 -7
  8. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/authorizenet/index.rst.txt +1 -0
  9. python_terminusgps-37.6.8/docs/build/html/_sources/authorizenet/validators.rst.txt +31 -0
  10. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/documentation_options.js +1 -1
  11. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/authorizenet/auth.html +8 -7
  12. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/authorizenet/constants.html +8 -7
  13. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/authorizenet/controllers.html +8 -7
  14. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/authorizenet/examples.html +8 -7
  15. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/authorizenet/index.html +15 -7
  16. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/authorizenet/profiles.html +8 -7
  17. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/authorizenet/utils.html +9 -8
  18. python_terminusgps-37.6.8/docs/build/html/authorizenet/validators.html +255 -0
  19. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/aws/index.html +9 -8
  20. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/aws/notifications.html +8 -7
  21. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/aws/secrets.html +8 -7
  22. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/django/forms.html +8 -7
  23. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/django/index.html +8 -7
  24. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/django/mixins.html +8 -7
  25. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/django/settings.html +8 -7
  26. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/django/validators.html +8 -7
  27. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/genindex.html +27 -11
  28. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/index.html +7 -6
  29. python_terminusgps-37.6.8/docs/build/html/objects.inv +0 -0
  30. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/py-modindex.html +12 -6
  31. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/search.html +8 -7
  32. python_terminusgps-37.6.8/docs/build/html/searchindex.js +1 -0
  33. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/twilio/caller.html +8 -7
  34. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/twilio/examples.html +8 -7
  35. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/twilio/index.html +8 -7
  36. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/wialon/constants.html +8 -7
  37. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/wialon/errors.html +8 -7
  38. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/wialon/examples.html +8 -7
  39. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/wialon/flags.html +8 -7
  40. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/wialon/index.html +8 -7
  41. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/wialon/items.html +8 -7
  42. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/wialon/session.html +8 -7
  43. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/wialon/utils.html +8 -7
  44. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/authorizenet/index.rst +1 -0
  45. python_terminusgps-37.6.8/docs/source/authorizenet/validators.rst +31 -0
  46. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/conf.py +1 -1
  47. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/pyproject.toml +1 -1
  48. python_terminusgps-37.6.8/terminusgps/authorizenet/validators.py +113 -0
  49. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/uv.lock +4 -4
  50. python_terminusgps-37.6.7/docs/build/html/objects.inv +0 -0
  51. python_terminusgps-37.6.7/docs/build/html/searchindex.js +0 -1
  52. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/.gitignore +0 -0
  53. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/COPYING +0 -0
  54. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/README.md +0 -0
  55. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/Makefile +0 -0
  56. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/coverage/c.txt +0 -0
  57. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/coverage/python.txt +0 -0
  58. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/coverage/undoc.pickle +0 -0
  59. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/authorizenet/auth.doctree +0 -0
  60. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/authorizenet/constants.doctree +0 -0
  61. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/authorizenet/controllers.doctree +0 -0
  62. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/authorizenet/examples.doctree +0 -0
  63. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/authorizenet/profiles.doctree +0 -0
  64. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/authorizenet/subscriptions.doctree +0 -0
  65. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/authorizenet/utils.doctree +0 -0
  66. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/aws/index.doctree +0 -0
  67. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/aws/notifications.doctree +0 -0
  68. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/aws/secrets.doctree +0 -0
  69. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/aws/speech.doctree +0 -0
  70. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/aws/utils.doctree +0 -0
  71. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/django/forms.doctree +0 -0
  72. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/django/index.doctree +0 -0
  73. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/django/mixins.doctree +0 -0
  74. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/django/settings.doctree +0 -0
  75. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/django/validators.doctree +0 -0
  76. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/index.doctree +0 -0
  77. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/mixins.doctree +0 -0
  78. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/settings.doctree +0 -0
  79. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/twilio/caller.doctree +0 -0
  80. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/twilio/examples.doctree +0 -0
  81. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/twilio/index.doctree +0 -0
  82. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/twilio/settings.doctree +0 -0
  83. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/validators.doctree +0 -0
  84. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/wialon/constants.doctree +0 -0
  85. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/wialon/errors.doctree +0 -0
  86. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/wialon/examples.doctree +0 -0
  87. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/wialon/flags.doctree +0 -0
  88. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/wialon/index.doctree +0 -0
  89. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/wialon/items.doctree +0 -0
  90. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/wialon/session.doctree +0 -0
  91. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/wialon/settings.doctree +0 -0
  92. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/doctrees/wialon/utils.doctree +0 -0
  93. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/authorizenet/auth.html +0 -0
  94. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/authorizenet/constants.html +0 -0
  95. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/authorizenet/controllers.html +0 -0
  96. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/authorizenet/errors.html +0 -0
  97. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/authorizenet/profiles/addresses.html +0 -0
  98. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/authorizenet/profiles/base.html +0 -0
  99. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/authorizenet/profiles/customers.html +0 -0
  100. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/authorizenet/profiles/payments.html +0 -0
  101. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/authorizenet/profiles/subscriptions.html +0 -0
  102. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/authorizenet/subscriptions/subscriptions.html +0 -0
  103. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/authorizenet/utils.html +0 -0
  104. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/aws/notifications.html +0 -0
  105. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/aws/secrets.html +0 -0
  106. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/aws/speech.html +0 -0
  107. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/django/forms/fields.html +0 -0
  108. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/django/forms/renderer.html +0 -0
  109. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/django/forms/widgets.html +0 -0
  110. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/django/forms.html +0 -0
  111. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/django/mixins.html +0 -0
  112. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/django/validators.html +0 -0
  113. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/mixins.html +0 -0
  114. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/twilio/caller.html +0 -0
  115. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/wialon/constants.html +0 -0
  116. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/wialon/flags.html +0 -0
  117. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/wialon/items/base.html +0 -0
  118. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/wialon/items/geofence.html +0 -0
  119. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/wialon/items/notification.html +0 -0
  120. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/wialon/items/retranslator.html +0 -0
  121. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/wialon/items/route.html +0 -0
  122. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/wialon/items/unit.html +0 -0
  123. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/wialon/items/unit_group.html +0 -0
  124. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/wialon/items/user.html +0 -0
  125. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/wialon/session.html +0 -0
  126. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/terminusgps/wialon/utils.html +0 -0
  127. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_modules/wialon/api.html +0 -0
  128. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/authorizenet/auth.rst.txt +0 -0
  129. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/authorizenet/constants.rst.txt +0 -0
  130. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/authorizenet/controllers.rst.txt +0 -0
  131. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/authorizenet/examples.rst.txt +0 -0
  132. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/authorizenet/profiles.rst.txt +0 -0
  133. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/authorizenet/subscriptions.rst.txt +0 -0
  134. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/authorizenet/utils.rst.txt +0 -0
  135. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/aws/index.rst.txt +0 -0
  136. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/aws/notifications.rst.txt +0 -0
  137. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/aws/secrets.rst.txt +0 -0
  138. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/aws/speech.rst.txt +0 -0
  139. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/aws/utils.rst.txt +0 -0
  140. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/django/forms.rst.txt +0 -0
  141. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/django/index.rst.txt +0 -0
  142. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/django/mixins.rst.txt +0 -0
  143. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/django/settings.rst.txt +0 -0
  144. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/django/validators.rst.txt +0 -0
  145. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/index.rst.txt +0 -0
  146. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/mixins.rst.txt +0 -0
  147. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/settings.rst.txt +0 -0
  148. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/twilio/caller.rst.txt +0 -0
  149. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/twilio/examples.rst.txt +0 -0
  150. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/twilio/index.rst.txt +0 -0
  151. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/twilio/settings.rst.txt +0 -0
  152. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/validators.rst.txt +0 -0
  153. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/wialon/constants.rst.txt +0 -0
  154. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/wialon/errors.rst.txt +0 -0
  155. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/wialon/examples.rst.txt +0 -0
  156. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/wialon/flags.rst.txt +0 -0
  157. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/wialon/index.rst.txt +0 -0
  158. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/wialon/items.rst.txt +0 -0
  159. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/wialon/session.rst.txt +0 -0
  160. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/wialon/settings.rst.txt +0 -0
  161. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_sources/wialon/utils.rst.txt +0 -0
  162. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/0fc70aa4dfe4d16d7073.woff +0 -0
  163. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/583e3f428bf2362b546d.woff +0 -0
  164. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/5be6ec379613f10aea3f.woff +0 -0
  165. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/76c1862325ea6f70eeff.woff2 +0 -0
  166. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/83710c128240451d95af.woff +0 -0
  167. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/_sphinx_javascript_frameworks_compat.js +0 -0
  168. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/a63d39a1c104a2b3e87e.woff2 +0 -0
  169. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/autoclasstoc.css +0 -0
  170. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/awesome-docsearch.css +0 -0
  171. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/awesome-docsearch.js +0 -0
  172. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/awesome-sphinx-design.css +0 -0
  173. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/awesome-sphinx-design.js +0 -0
  174. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/b659956119f91f2342bc.woff2 +0 -0
  175. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/basic.css +0 -0
  176. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/bb50084be2b43ba7b98c.woff2 +0 -0
  177. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/ce1e40901d7a0d88d483.woff2 +0 -0
  178. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/css/badge_only.css +0 -0
  179. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/css/custom.css +0 -0
  180. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/css/custom.css.map +0 -0
  181. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
  182. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
  183. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
  184. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
  185. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/css/fonts/fontawesome-webfont.eot +0 -0
  186. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/css/fonts/fontawesome-webfont.svg +0 -0
  187. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/css/fonts/fontawesome-webfont.ttf +0 -0
  188. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/css/fonts/fontawesome-webfont.woff +0 -0
  189. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
  190. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/css/fonts/lato-bold-italic.woff +0 -0
  191. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/css/fonts/lato-bold-italic.woff2 +0 -0
  192. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/css/fonts/lato-bold.woff +0 -0
  193. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/css/fonts/lato-bold.woff2 +0 -0
  194. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/css/fonts/lato-normal-italic.woff +0 -0
  195. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/css/fonts/lato-normal-italic.woff2 +0 -0
  196. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/css/fonts/lato-normal.woff +0 -0
  197. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/css/fonts/lato-normal.woff2 +0 -0
  198. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/css/theme.css +0 -0
  199. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/css/theme.css.map +0 -0
  200. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/css/theme.min.css +0 -0
  201. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/css/theme.min.css.map +0 -0
  202. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/d04352f240062b100fba.woff2 +0 -0
  203. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/doctools.js +0 -0
  204. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/f1cdf5c21de970ee0592.woff +0 -0
  205. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/fd994e8d90d9cab651b0.woff +0 -0
  206. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/file.png +0 -0
  207. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/font/fontello.eot +0 -0
  208. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/font/fontello.svg +0 -0
  209. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/font/fontello.ttf +0 -0
  210. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/font/fontello.woff +0 -0
  211. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/font/fontello.woff2 +0 -0
  212. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/fonts/Lato/lato-bold.eot +0 -0
  213. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/fonts/Lato/lato-bold.ttf +0 -0
  214. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/fonts/Lato/lato-bold.woff +0 -0
  215. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/fonts/Lato/lato-bold.woff2 +0 -0
  216. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/fonts/Lato/lato-bolditalic.eot +0 -0
  217. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
  218. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/fonts/Lato/lato-bolditalic.woff +0 -0
  219. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
  220. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/fonts/Lato/lato-italic.eot +0 -0
  221. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/fonts/Lato/lato-italic.ttf +0 -0
  222. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/fonts/Lato/lato-italic.woff +0 -0
  223. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/fonts/Lato/lato-italic.woff2 +0 -0
  224. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/fonts/Lato/lato-regular.eot +0 -0
  225. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/fonts/Lato/lato-regular.ttf +0 -0
  226. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/fonts/Lato/lato-regular.woff +0 -0
  227. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/fonts/Lato/lato-regular.woff2 +0 -0
  228. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
  229. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
  230. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
  231. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
  232. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
  233. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
  234. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
  235. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
  236. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/jquery.js +0 -0
  237. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/js/badge_only.js +0 -0
  238. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/js/theme.js +0 -0
  239. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/js/versions.js +0 -0
  240. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/language_data.js +0 -0
  241. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/minus.png +0 -0
  242. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/plus.png +0 -0
  243. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/pygments.css +0 -0
  244. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/searchtools.js +0 -0
  245. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/sphinx_highlight.js +0 -0
  246. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/theme.css +0 -0
  247. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/theme.js +0 -0
  248. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/_static/theme.js.LICENSE.txt +0 -0
  249. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/authorizenet/subscriptions.html +0 -0
  250. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/aws/speech.html +0 -0
  251. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/aws/utils.html +0 -0
  252. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/mixins.html +0 -0
  253. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/settings.html +0 -0
  254. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/twilio/settings.html +0 -0
  255. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/validators.html +0 -0
  256. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/html/wialon/settings.html +0 -0
  257. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/linkcheck/output.json +0 -0
  258. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/build/linkcheck/output.txt +0 -0
  259. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/make.bat +0 -0
  260. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/authorizenet/auth.rst +0 -0
  261. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/authorizenet/constants.rst +0 -0
  262. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/authorizenet/controllers.rst +0 -0
  263. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/authorizenet/examples.rst +0 -0
  264. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/authorizenet/profiles.rst +0 -0
  265. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/authorizenet/utils.rst +0 -0
  266. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/aws/index.rst +0 -0
  267. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/aws/notifications.rst +0 -0
  268. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/aws/secrets.rst +0 -0
  269. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/django/forms.rst +0 -0
  270. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/django/index.rst +0 -0
  271. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/django/mixins.rst +0 -0
  272. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/django/settings.rst +0 -0
  273. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/django/validators.rst +0 -0
  274. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/index.rst +0 -0
  275. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/twilio/caller.rst +0 -0
  276. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/twilio/examples.rst +0 -0
  277. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/twilio/index.rst +0 -0
  278. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/wialon/constants.rst +0 -0
  279. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/wialon/errors.rst +0 -0
  280. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/wialon/examples.rst +0 -0
  281. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/wialon/flags.rst +0 -0
  282. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/wialon/index.rst +0 -0
  283. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/wialon/items.rst +0 -0
  284. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/wialon/session.rst +0 -0
  285. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/docs/source/wialon/utils.rst +0 -0
  286. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/__init__.py +0 -0
  287. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/authorizenet/__init__.py +0 -0
  288. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/authorizenet/auth.py +0 -0
  289. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/authorizenet/constants.py +0 -0
  290. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/authorizenet/controllers.py +0 -0
  291. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/authorizenet/profiles/__init__.py +0 -0
  292. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/authorizenet/profiles/addresses.py +0 -0
  293. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/authorizenet/profiles/base.py +0 -0
  294. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/authorizenet/profiles/customers.py +0 -0
  295. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/authorizenet/profiles/payments.py +0 -0
  296. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/authorizenet/profiles/subscriptions.py +0 -0
  297. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/authorizenet/tests/__init__.py +0 -0
  298. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/authorizenet/tests/test_auth.py +0 -0
  299. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/authorizenet/tests/test_profiles.py +0 -0
  300. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/authorizenet/tests/test_utils.py +0 -0
  301. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/authorizenet/utils.py +0 -0
  302. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/aws/__init__.py +0 -0
  303. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/aws/notifications.py +0 -0
  304. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/aws/secrets.py +0 -0
  305. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/aws/tests/__init__.py +0 -0
  306. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/aws/tests/test_notifications.py +0 -0
  307. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/aws/tests/test_secrets.py +0 -0
  308. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/django/__init__.py +0 -0
  309. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/django/forms/__init__.py +0 -0
  310. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/django/forms/fields.py +0 -0
  311. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/django/forms/forms.py +0 -0
  312. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/django/forms/renderer.py +0 -0
  313. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/django/forms/widgets.py +0 -0
  314. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/django/mixins.py +0 -0
  315. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/django/settings.py +0 -0
  316. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/django/tests/test_forms.py +0 -0
  317. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/django/tests/test_mixins.py +0 -0
  318. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/django/tests/test_utils.py +0 -0
  319. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/django/utils.py +0 -0
  320. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/django/validators.py +0 -0
  321. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/twilio/__init__.py +0 -0
  322. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/twilio/caller.py +0 -0
  323. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/wialon/__init__.py +0 -0
  324. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/wialon/constants.py +0 -0
  325. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/wialon/flags.py +0 -0
  326. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/wialon/items/__init__.py +0 -0
  327. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/wialon/items/base.py +0 -0
  328. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/wialon/items/resource.py +0 -0
  329. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/wialon/items/retranslator.py +0 -0
  330. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/wialon/items/route.py +0 -0
  331. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/wialon/items/unit.py +0 -0
  332. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/wialon/items/unit_group.py +0 -0
  333. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/wialon/items/user.py +0 -0
  334. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/wialon/renderer.py +0 -0
  335. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/wialon/session.py +0 -0
  336. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/wialon/utils.py +0 -0
  337. {python_terminusgps-37.6.7 → python_terminusgps-37.6.8}/terminusgps/wialon/validators.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-terminusgps
3
- Version: 37.6.7
3
+ Version: 37.6.8
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,9 +12,9 @@
12
12
  <meta name="theme-color" media="(prefers-color-scheme: light)" content="white" />
13
13
  <meta name="theme-color" media="(prefers-color-scheme: dark)" content="black" />
14
14
 
15
- <title>Overview: module code | python-terminusgps 37.6.7 documentation</title>
16
- <meta property="og:title" content="Overview: module code | python-terminusgps 37.6.7 documentation" />
17
- <meta name="twitter:title" content="Overview: module code | python-terminusgps 37.6.7 documentation" />
15
+ <title>Overview: module code | python-terminusgps 37.6.8 documentation</title>
16
+ <meta property="og:title" content="Overview: module code | python-terminusgps 37.6.8 documentation" />
17
+ <meta name="twitter:title" content="Overview: module code | python-terminusgps 37.6.8 documentation" />
18
18
  <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d691ff6c" />
19
19
  <link rel="stylesheet" type="text/css" href="../_static/theme.css?v=42baaae4" />
20
20
  <link rel="stylesheet" type="text/css" href="../_static/autoclasstoc.css?v=08871587" />
@@ -40,7 +40,7 @@
40
40
  </a><header
41
41
  class="sticky top-0 z-40 w-full border-b shadow-sm border-border supports-backdrop-blur:bg-background/60 bg-background/95 backdrop-blur"><div class="container flex items-center h-14">
42
42
  <div class="hidden mr-4 md:flex">
43
- <a href="../index.html" class="flex items-center mr-6"><span class="hidden font-bold sm:inline-block text-clip whitespace-nowrap">python-terminusgps 37.6.7 documentation</span>
43
+ <a href="../index.html" class="flex items-center mr-6"><span class="hidden font-bold sm:inline-block text-clip whitespace-nowrap">python-terminusgps 37.6.8 documentation</span>
44
44
  </a></div><button
45
45
  class="inline-flex items-center justify-center h-10 px-0 py-2 mr-2 text-base font-medium transition-colors rounded-md hover:text-accent-foreground hover:bg-transparent md:hidden"
46
46
  type="button" @click="showSidebar = true">
@@ -95,7 +95,7 @@
95
95
  class="fixed inset-y-0 left-0 md:top-14 z-50 md:z-30 bg-background md:bg-transparent transition-all duration-100 -translate-x-full md:translate-x-0 ml-0 p-6 md:p-0 md:-ml-2 md:h-[calc(100vh-3.5rem)] w-5/6 md:w-full shrink-0 overflow-y-auto border-r border-border md:sticky"
96
96
  :aria-hidden="!showSidebar" :class="{ 'translate-x-0': showSidebar }">
97
97
 
98
- <a href="../index.html" class="!justify-start text-sm md:!hidden bg-background"><span class="font-bold text-clip whitespace-nowrap">python-terminusgps 37.6.7 documentation</span>
98
+ <a href="../index.html" class="!justify-start text-sm md:!hidden bg-background"><span class="font-bold text-clip whitespace-nowrap">python-terminusgps 37.6.8 documentation</span>
99
99
  </a>
100
100
 
101
101
  <div class="relative overflow-hidden md:overflow-auto my-4 md:my-0 h-[calc(100vh-8rem)] md:h-auto">
@@ -109,6 +109,7 @@
109
109
  <li class="toctree-l2"><a class="reference internal" href="../authorizenet/examples.html">Usage Examples</a></li>
110
110
  <li class="toctree-l2"><a class="reference internal" href="../authorizenet/profiles.html">Profiles</a></li>
111
111
  <li class="toctree-l2"><a class="reference internal" href="../authorizenet/utils.html">Utilities</a></li>
112
+ <li class="toctree-l2"><a class="reference internal" href="../authorizenet/validators.html">Validators</a></li>
112
113
  </ul>
113
114
  </li>
114
115
  <li class="toctree-l1"><a class="reference internal" href="../aws/index.html">AWS API</a><ul>
@@ -158,7 +159,7 @@
158
159
  class="flex items-center mb-4 space-x-1 text-sm text-muted-foreground">
159
160
  <a class="overflow-hidden text-ellipsis whitespace-nowrap hover:text-foreground"
160
161
  href="../index.html">
161
- <span class="hidden md:inline">python-terminusgps 37.6.7 documentation</span>
162
+ <span class="hidden md:inline">python-terminusgps 37.6.8 documentation</span>
162
163
  <svg xmlns="http://www.w3.org/2000/svg"
163
164
  height="18"
164
165
  width="18"
@@ -186,6 +187,7 @@
186
187
  <li><a href="terminusgps/authorizenet/profiles/payments.html">terminusgps.authorizenet.profiles.payments</a></li>
187
188
  <li><a href="terminusgps/authorizenet/profiles/subscriptions.html">terminusgps.authorizenet.profiles.subscriptions</a></li>
188
189
  <li><a href="terminusgps/authorizenet/utils.html">terminusgps.authorizenet.utils</a></li>
190
+ <li><a href="terminusgps/authorizenet/validators.html">terminusgps.authorizenet.validators</a></li>
189
191
  <li><a href="terminusgps/aws/notifications.html">terminusgps.aws.notifications</a></li>
190
192
  <li><a href="terminusgps/aws/secrets.html">terminusgps.aws.secrets</a></li>
191
193
  <li><a href="terminusgps/django/forms/fields.html">terminusgps.django.forms.fields</a></li>
@@ -221,7 +223,7 @@
221
223
  </footer>
222
224
  </div>
223
225
 
224
- <script src="../_static/documentation_options.js?v=7d693ada"></script>
226
+ <script src="../_static/documentation_options.js?v=95739918"></script>
225
227
  <script src="../_static/doctools.js?v=9bcbadda"></script>
226
228
  <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
227
229
  <script defer="defer" src="../_static/theme.js?v=073f68d9"></script>
@@ -0,0 +1,327 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en"
3
+ data-content_root="../../../"
4
+ x-data="{ darkMode: localStorage.getItem('darkMode') || localStorage.setItem('darkMode', 'system'), activeSection: '' }"
5
+ x-init="$watch('darkMode', val => localStorage.setItem('darkMode', val))"
6
+ class="scroll-smooth"
7
+ :class="{'dark': darkMode === 'dark' || (darkMode === 'system' && window.matchMedia('(prefers-color-scheme: dark)').matches)}"
8
+ >
9
+ <head>
10
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
11
+ <meta charset="utf-8" />
12
+ <meta name="theme-color" media="(prefers-color-scheme: light)" content="white" />
13
+ <meta name="theme-color" media="(prefers-color-scheme: dark)" content="black" />
14
+
15
+ <title>terminusgps.authorizenet.validators | python-terminusgps 37.6.7 documentation</title>
16
+ <meta property="og:title" content="terminusgps.authorizenet.validators | python-terminusgps 37.6.7 documentation" />
17
+ <meta name="twitter:title" content="terminusgps.authorizenet.validators | python-terminusgps 37.6.7 documentation" />
18
+ <link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=d691ff6c" />
19
+ <link rel="stylesheet" type="text/css" href="../../../_static/theme.css?v=42baaae4" />
20
+ <link rel="stylesheet" type="text/css" href="../../../_static/autoclasstoc.css?v=08871587" />
21
+ <link rel="search" title="Search" href="../../../search.html" />
22
+ <link rel="index" title="Index" href="../../../genindex.html" />
23
+
24
+ <script>
25
+ <!-- Prevent Flash of wrong theme -->
26
+ const userPreference = localStorage.getItem('darkMode');
27
+ let mode;
28
+ if (userPreference === 'dark' || window.matchMedia('(prefers-color-scheme: dark)').matches) {
29
+ mode = 'dark';
30
+ document.documentElement.classList.add('dark');
31
+ } else {
32
+ mode = 'light';
33
+ }
34
+ if (!userPreference) {localStorage.setItem('darkMode', mode)}
35
+ </script>
36
+ </head>
37
+ <body x-data="{ showSidebar: false, showScrollTop: false }" class="min-h-screen font-sans antialiased bg-background text-foreground" :class="{ 'overflow-hidden': showSidebar }">
38
+ <div x-cloak x-show="showSidebar" class="fixed inset-0 z-50 overflow-hidden bg-background/80 backdrop-blur-sm md:hidden" @click.self="showSidebar = false"></div><div id="page" class="relative flex flex-col min-h-screen"><a href="#content" class="absolute top-0 left-0 z-[100] block bg-background p-4 text-xl transition -translate-x-full opacity-0 focus:translate-x-0 focus:opacity-100">
39
+ Skip to content
40
+ </a><header
41
+ class="sticky top-0 z-40 w-full border-b shadow-sm border-border supports-backdrop-blur:bg-background/60 bg-background/95 backdrop-blur"><div class="container flex items-center h-14">
42
+ <div class="hidden mr-4 md:flex">
43
+ <a href="../../../index.html" class="flex items-center mr-6"><span class="hidden font-bold sm:inline-block text-clip whitespace-nowrap">python-terminusgps 37.6.7 documentation</span>
44
+ </a></div><button
45
+ class="inline-flex items-center justify-center h-10 px-0 py-2 mr-2 text-base font-medium transition-colors rounded-md hover:text-accent-foreground hover:bg-transparent md:hidden"
46
+ type="button" @click="showSidebar = true">
47
+ <svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 96 960 960" aria-hidden="true"
48
+ fill="currentColor">
49
+ <path
50
+ d="M152.587 825.087q-19.152 0-32.326-13.174t-13.174-32.326q0-19.152 13.174-32.326t32.326-13.174h440q19.152 0 32.326 13.174t13.174 32.326q0 19.152-13.174 32.326t-32.326 13.174h-440Zm0-203.587q-19.152 0-32.326-13.174T107.087 576q0-19.152 13.174-32.326t32.326-13.174h320q19.152 0 32.326 13.174T518.087 576q0 19.152-13.174 32.326T472.587 621.5h-320Zm0-203.587q-19.152 0-32.326-13.174t-13.174-32.326q0-19.152 13.174-32.326t32.326-13.174h440q19.152 0 32.326 13.174t13.174 32.326q0 19.152-13.174 32.326t-32.326 13.174h-440ZM708.913 576l112.174 112.174q12.674 12.674 12.674 31.826t-12.674 31.826Q808.413 764.5 789.261 764.5t-31.826-12.674l-144-144Q600 594.391 600 576t13.435-31.826l144-144q12.674-12.674 31.826-12.674t31.826 12.674q12.674 12.674 12.674 31.826t-12.674 31.826L708.913 576Z" />
51
+ </svg>
52
+ <span class="sr-only">Toggle navigation menu</span>
53
+ </button>
54
+ <div class="flex items-center justify-between flex-1 space-x-2 sm:space-x-4 md:justify-end">
55
+ <div class="flex-1 w-full md:w-auto md:flex-none"><form id="searchbox"
56
+ action="../../../search.html"
57
+ method="get"
58
+ class="relative flex items-center group"
59
+ @keydown.k.window.meta="$refs.search.focus()">
60
+ <input x-ref="search"
61
+ name="q"
62
+ id="search-input"
63
+ type="search"
64
+ aria-label="Search the docs"
65
+ placeholder="Search ..."
66
+ class="inline-flex items-center font-medium transition-colors bg-transparent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background border border-input hover:bg-accent focus:bg-accent hover:text-accent-foreground focus:text-accent-foreground hover:placeholder-accent-foreground py-2 px-4 relative h-9 w-full justify-start rounded-[0.5rem] text-sm text-muted-foreground sm:pr-12 md:w-40 lg:w-64" />
67
+ <kbd class="pointer-events-none absolute right-1.5 top-2 hidden h-5 select-none text-muted-foreground items-center gap-1 rounded border border-border bg-muted px-1.5 font-mono text-[10px] font-medium opacity-100 sm:flex group-hover:bg-accent group-hover:text-accent-foreground">
68
+ <span class="text-xs">⌘</span>
69
+ K
70
+ </kbd>
71
+ </form>
72
+ </div>
73
+ <nav class="flex items-center space-x-1">
74
+ <button @click="darkMode = darkMode === 'light' ? 'dark' : 'light'"
75
+ class="relative inline-flex items-center justify-center px-0 text-sm font-medium transition-colors rounded-md hover:bg-accent hover:text-accent-foreground h-9 w-9"
76
+ type="button"
77
+ aria-label="Color theme switcher">
78
+ <svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 96 960 960" fill="currentColor"
79
+ class="absolute transition-all scale-100 rotate-0 dark:-rotate-90 dark:scale-0">
80
+ <path
81
+ d="M480 685q45.456 0 77.228-31.772Q589 621.456 589 576q0-45.456-31.772-77.228Q525.456 467 480 467q-45.456 0-77.228 31.772Q371 530.544 371 576q0 45.456 31.772 77.228Q434.544 685 480 685Zm0 91q-83 0-141.5-58.5T280 576q0-83 58.5-141.5T480 376q83 0 141.5 58.5T680 576q0 83-58.5 141.5T480 776ZM80 621.5q-19.152 0-32.326-13.174T34.5 576q0-19.152 13.174-32.326T80 530.5h80q19.152 0 32.326 13.174T205.5 576q0 19.152-13.174 32.326T160 621.5H80Zm720 0q-19.152 0-32.326-13.174T754.5 576q0-19.152 13.174-32.326T800 530.5h80q19.152 0 32.326 13.174T925.5 576q0 19.152-13.174 32.326T880 621.5h-80Zm-320-320q-19.152 0-32.326-13.174T434.5 256v-80q0-19.152 13.174-32.326T480 130.5q19.152 0 32.326 13.174T525.5 176v80q0 19.152-13.174 32.326T480 301.5Zm0 720q-19.152 0-32.326-13.17Q434.5 995.152 434.5 976v-80q0-19.152 13.174-32.326T480 850.5q19.152 0 32.326 13.174T525.5 896v80q0 19.152-13.174 32.33-13.174 13.17-32.326 13.17ZM222.174 382.065l-43-42Q165.5 327.391 166 308.239t13.174-33.065q13.435-13.674 32.587-13.674t32.065 13.674l42.239 43q12.674 13.435 12.555 31.706-.12 18.272-12.555 31.946-12.674 13.674-31.445 13.413-18.772-.261-32.446-13.174Zm494 494.761-42.239-43q-12.674-13.435-12.674-32.087t12.674-31.565Q686.609 756.5 705.38 757q18.772.5 32.446 13.174l43 41.761Q794.5 824.609 794 843.761t-13.174 33.065Q767.391 890.5 748.239 890.5t-32.065-13.674Zm-42-494.761Q660.5 369.391 661 350.62q.5-18.772 13.174-32.446l41.761-43Q728.609 261.5 747.761 262t33.065 13.174q13.674 13.435 13.674 32.587t-13.674 32.065l-43 42.239q-13.435 12.674-31.706 12.555-18.272-.12-31.946-12.555Zm-495 494.761Q165.5 863.391 165.5 844.239t13.674-32.065l43-42.239q13.435-12.674 32.087-12.674t31.565 12.674Q299.5 782.609 299 801.38q-.5 18.772-13.174 32.446l-41.761 43Q231.391 890.5 212.239 890t-33.065-13.174ZM480 576Z" />
82
+ </svg>
83
+ <svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 96 960 960" fill="currentColor"
84
+ class="absolute transition-all scale-0 rotate-90 dark:rotate-0 dark:scale-100">
85
+ <path
86
+ d="M480 936q-151 0-255.5-104.5T120 576q0-138 90-239.5T440 218q25-3 39 18t-1 44q-17 26-25.5 55t-8.5 61q0 90 63 153t153 63q31 0 61.5-9t54.5-25q21-14 43-1.5t19 39.5q-14 138-117.5 229T480 936Zm0-80q88 0 158-48.5T740 681q-20 5-40 8t-40 3q-123 0-209.5-86.5T364 396q0-20 3-40t8-40q-78 32-126.5 102T200 576q0 116 82 198t198 82Zm-10-270Z" />
87
+ </svg>
88
+ </button>
89
+ </nav>
90
+ </div>
91
+ </div>
92
+ </header>
93
+
94
+ <div class="flex-1"><div class="container flex-1 items-start md:grid md:grid-cols-[220px_minmax(0,1fr)] md:gap-6 lg:grid-cols-[240px_minmax(0,1fr)] lg:gap-10"><aside id="left-sidebar"
95
+ class="fixed inset-y-0 left-0 md:top-14 z-50 md:z-30 bg-background md:bg-transparent transition-all duration-100 -translate-x-full md:translate-x-0 ml-0 p-6 md:p-0 md:-ml-2 md:h-[calc(100vh-3.5rem)] w-5/6 md:w-full shrink-0 overflow-y-auto border-r border-border md:sticky"
96
+ :aria-hidden="!showSidebar" :class="{ 'translate-x-0': showSidebar }">
97
+
98
+ <a href="../../../index.html" class="!justify-start text-sm md:!hidden bg-background"><span class="font-bold text-clip whitespace-nowrap">python-terminusgps 37.6.7 documentation</span>
99
+ </a>
100
+
101
+ <div class="relative overflow-hidden md:overflow-auto my-4 md:my-0 h-[calc(100vh-8rem)] md:h-auto">
102
+ <div class="overflow-y-auto h-full w-full relative pr-6"><nav class="table w-full min-w-full my-6 lg:my-8">
103
+ <p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
104
+ <ul>
105
+ <li class="toctree-l1"><a class="reference internal" href="../../../authorizenet/index.html">Authorizenet API</a><ul>
106
+ <li class="toctree-l2"><a class="reference internal" href="../../../authorizenet/auth.html">Authorizenet API Authentication</a></li>
107
+ <li class="toctree-l2"><a class="reference internal" href="../../../authorizenet/constants.html">Constants</a></li>
108
+ <li class="toctree-l2"><a class="reference internal" href="../../../authorizenet/controllers.html">API Controllers</a></li>
109
+ <li class="toctree-l2"><a class="reference internal" href="../../../authorizenet/examples.html">Usage Examples</a></li>
110
+ <li class="toctree-l2"><a class="reference internal" href="../../../authorizenet/profiles.html">Profiles</a></li>
111
+ <li class="toctree-l2"><a class="reference internal" href="../../../authorizenet/utils.html">Utilities</a></li>
112
+ <li class="toctree-l2"><a class="reference internal" href="../../../authorizenet/validators.html">Validators</a></li>
113
+ </ul>
114
+ </li>
115
+ <li class="toctree-l1"><a class="reference internal" href="../../../aws/index.html">AWS API</a><ul>
116
+ <li class="toctree-l2"><a class="reference internal" href="../../../aws/notifications.html">Notifications</a></li>
117
+ <li class="toctree-l2"><a class="reference internal" href="../../../aws/secrets.html">Secrets</a></li>
118
+ </ul>
119
+ </li>
120
+ <li class="toctree-l1"><a class="reference internal" href="../../../django/index.html">Django</a><ul>
121
+ <li class="toctree-l2"><a class="reference internal" href="../../../django/forms.html">Forms</a></li>
122
+ <li class="toctree-l2"><a class="reference internal" href="../../../django/mixins.html">Mixins</a></li>
123
+ <li class="toctree-l2"><a class="reference internal" href="../../../django/settings.html">Settings</a></li>
124
+ <li class="toctree-l2"><a class="reference internal" href="../../../django/validators.html">Validators</a></li>
125
+ </ul>
126
+ </li>
127
+ <li class="toctree-l1"><a class="reference internal" href="../../../twilio/index.html">Twilio API</a><ul>
128
+ <li class="toctree-l2"><a class="reference internal" href="../../../twilio/caller.html">Caller object</a></li>
129
+ <li class="toctree-l2"><a class="reference internal" href="../../../twilio/examples.html">Usage Examples</a></li>
130
+ </ul>
131
+ </li>
132
+ <li class="toctree-l1"><a class="reference internal" href="../../../wialon/index.html">Wialon API</a><ul>
133
+ <li class="toctree-l2"><a class="reference internal" href="../../../wialon/constants.html">Constants</a></li>
134
+ <li class="toctree-l2"><a class="reference internal" href="../../../wialon/errors.html">Errors</a></li>
135
+ <li class="toctree-l2"><a class="reference internal" href="../../../wialon/examples.html">Usage Examples</a></li>
136
+ <li class="toctree-l2"><a class="reference internal" href="../../../wialon/flags.html">Flags</a></li>
137
+ <li class="toctree-l2"><a class="reference internal" href="../../../wialon/items.html">Items</a></li>
138
+ <li class="toctree-l2"><a class="reference internal" href="../../../wialon/session.html">Wialon API Sessions</a></li>
139
+ <li class="toctree-l2"><a class="reference internal" href="../../../wialon/utils.html">Utilities</a></li>
140
+ </ul>
141
+ </li>
142
+ </ul>
143
+
144
+ </nav>
145
+ </div>
146
+ </div>
147
+ <button type="button" @click="showSidebar = false"
148
+ class="absolute md:hidden right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100">
149
+ <svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 96 960 960" fill="currentColor"
150
+ stroke="none" class="h-4 w-4">
151
+ <path
152
+ d="M480 632 284 828q-11 11-28 11t-28-11q-11-11-11-28t11-28l196-196-196-196q-11-11-11-28t11-28q11-11 28-11t28 11l196 196 196-196q11-11 28-11t28 11q11 11 11 28t-11 28L536 576l196 196q11 11 11 28t-11 28q-11 11-28 11t-28-11L480 632Z" />
153
+ </svg>
154
+ </button>
155
+ </aside>
156
+ <main class="relative py-6 lg:gap-10 lg:py-8 xl:grid xl:grid-cols-[1fr_300px]">
157
+ <div class="w-full min-w-0 mx-auto">
158
+ <nav aria-label="breadcrumbs"
159
+ class="flex items-center mb-4 space-x-1 text-sm text-muted-foreground">
160
+ <a class="overflow-hidden text-ellipsis whitespace-nowrap hover:text-foreground"
161
+ href="../../../index.html">
162
+ <span class="hidden md:inline">python-terminusgps 37.6.7 documentation</span>
163
+ <svg xmlns="http://www.w3.org/2000/svg"
164
+ height="18"
165
+ width="18"
166
+ viewBox="0 96 960 960"
167
+ aria-label="Home"
168
+ fill="currentColor"
169
+ stroke="none"
170
+ class="md:hidden">
171
+ <path d="M240 856h120V616h240v240h120V496L480 316 240 496v360Zm-80 80V456l320-240 320 240v480H520V696h-80v240H160Zm320-350Z" />
172
+ </svg>
173
+ </a>
174
+
175
+ <div class="mr-1">/</div><a class="hover:text-foreground overflow-hidden text-ellipsis whitespace-nowrap"
176
+ href="../../index.html">Module code</a>
177
+
178
+ <div class="mr-1">/</div><span aria-current="page"
179
+ class="font-medium text-foreground overflow-hidden text-ellipsis whitespace-nowrap">terminusgps.authorizenet.validators</span>
180
+ </nav>
181
+
182
+ <div id="content" role="main">
183
+ <h1>Source code for terminusgps.authorizenet.validators</h1><div class="highlight"><pre>
184
+ <span></span><code><span id="line-1"><span class="kn">import</span><span class="w"> </span><span class="nn">calendar</span>
185
+ </span><span id="line-2"><span class="kn">import</span><span class="w"> </span><span class="nn">datetime</span>
186
+ </span><span id="line-3">
187
+ </span><span id="line-4"><span class="kn">from</span><span class="w"> </span><span class="nn">django.core.exceptions</span><span class="w"> </span><span class="kn">import</span> <span class="n">ValidationError</span>
188
+ </span><span id="line-5"><span class="kn">from</span><span class="w"> </span><span class="nn">django.utils.translation</span><span class="w"> </span><span class="kn">import</span> <span class="n">gettext_lazy</span> <span class="k">as</span> <span class="n">_</span>
189
+ </span><span id="line-6">
190
+ </span><span id="line-7">
191
+ <div class="viewcode-block" id="validate_credit_card_number">
192
+ <a class="viewcode-back" href="../../../authorizenet/validators.html#terminusgps.authorizenet.validators.validate_credit_card_number">[docs]</a>
193
+ </span><span id="line-8"><span class="k">def</span><span class="w"> </span><span class="nf">validate_credit_card_number</span><span class="p">(</span><span class="n">value</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
194
+ </span><span id="line-9"><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
195
+ </span><span id="line-10"><span class="sd"> Raises :py:exc:`~django.core.exceptions.ValidationError` if the value is an invalid credit card number.</span>
196
+ </span><span id="line-11">
197
+ </span><span id="line-12"><span class="sd"> Uses the `Luhn algorithm &lt;https://en.wikipedia.org/wiki/Luhn_algorithm&gt;`_ to validate the credit card number.</span>
198
+ </span><span id="line-13">
199
+ </span><span id="line-14"><span class="sd"> :param value: A credit card number string.</span>
200
+ </span><span id="line-15"><span class="sd"> :type value: :py:obj:`str`</span>
201
+ </span><span id="line-16"><span class="sd"> :raises ValidationError: If the value contains non-digit characters.</span>
202
+ </span><span id="line-17"><span class="sd"> :raises ValidationError: If the value fails the Luhn algorithm.</span>
203
+ </span><span id="line-18"><span class="sd"> :returns: Nothing.</span>
204
+ </span><span id="line-19"><span class="sd"> :rtype: :py:obj:`None`</span>
205
+ </span><span id="line-20">
206
+ </span><span id="line-21"><span class="sd"> &quot;&quot;&quot;</span>
207
+ </span><span id="line-22"> <span class="k">if</span> <span class="ow">not</span> <span class="n">value</span><span class="o">.</span><span class="n">isdigit</span><span class="p">():</span>
208
+ </span><span id="line-23"> <span class="k">raise</span> <span class="n">ValidationError</span><span class="p">(</span>
209
+ </span><span id="line-24"> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Credit card number can only contain digits. Got &#39;</span><span class="si">%(value)s</span><span class="s2">&#39;.&quot;</span><span class="p">),</span>
210
+ </span><span id="line-25"> <span class="n">code</span><span class="o">=</span><span class="s2">&quot;invalid&quot;</span><span class="p">,</span>
211
+ </span><span id="line-26"> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;value&quot;</span><span class="p">:</span> <span class="n">value</span><span class="p">},</span>
212
+ </span><span id="line-27"> <span class="p">)</span>
213
+ </span><span id="line-28">
214
+ </span><span id="line-29"> <span class="n">card_number</span> <span class="o">=</span> <span class="p">[</span><span class="nb">int</span><span class="p">(</span><span class="n">num</span><span class="p">)</span> <span class="k">for</span> <span class="n">num</span> <span class="ow">in</span> <span class="nb">reversed</span><span class="p">(</span><span class="n">value</span><span class="p">)]</span>
215
+ </span><span id="line-30"> <span class="n">even_digits</span> <span class="o">=</span> <span class="n">card_number</span><span class="p">[</span><span class="mi">1</span><span class="p">::</span><span class="mi">2</span><span class="p">]</span>
216
+ </span><span id="line-31"> <span class="n">odd_digits</span> <span class="o">=</span> <span class="n">card_number</span><span class="p">[</span><span class="mi">0</span><span class="p">::</span><span class="mi">2</span><span class="p">]</span>
217
+ </span><span id="line-32">
218
+ </span><span id="line-33"> <span class="n">checksum</span> <span class="o">=</span> <span class="mi">0</span>
219
+ </span><span id="line-34"> <span class="n">checksum</span> <span class="o">+=</span> <span class="nb">sum</span><span class="p">(</span>
220
+ </span><span id="line-35"> <span class="p">[</span><span class="n">digit</span> <span class="o">*</span> <span class="mi">2</span> <span class="k">if</span> <span class="n">digit</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">&lt;=</span> <span class="mi">9</span> <span class="k">else</span> <span class="p">(</span><span class="n">digit</span> <span class="o">*</span> <span class="mi">2</span><span class="p">)</span> <span class="o">%</span> <span class="mi">9</span> <span class="ow">or</span> <span class="mi">9</span> <span class="k">for</span> <span class="n">digit</span> <span class="ow">in</span> <span class="n">even_digits</span><span class="p">]</span>
221
+ </span><span id="line-36"> <span class="p">)</span>
222
+ </span><span id="line-37"> <span class="n">checksum</span> <span class="o">+=</span> <span class="nb">sum</span><span class="p">([</span><span class="n">digit</span> <span class="k">for</span> <span class="n">digit</span> <span class="ow">in</span> <span class="n">odd_digits</span><span class="p">])</span>
223
+ </span><span id="line-38">
224
+ </span><span id="line-39"> <span class="k">if</span> <span class="n">checksum</span> <span class="o">%</span> <span class="mi">10</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
225
+ </span><span id="line-40"> <span class="k">raise</span> <span class="n">ValidationError</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Invalid credit card number.&quot;</span><span class="p">),</span> <span class="n">code</span><span class="o">=</span><span class="s2">&quot;invalid&quot;</span><span class="p">)</span></div>
226
+
227
+ </span><span id="line-41">
228
+ </span><span id="line-42">
229
+ <div class="viewcode-block" id="validate_credit_card_expiry_month">
230
+ <a class="viewcode-back" href="../../../authorizenet/validators.html#terminusgps.authorizenet.validators.validate_credit_card_expiry_month">[docs]</a>
231
+ </span><span id="line-43"><span class="k">def</span><span class="w"> </span><span class="nf">validate_credit_card_expiry_month</span><span class="p">(</span><span class="n">value</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
232
+ </span><span id="line-44"><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
233
+ </span><span id="line-45"><span class="sd"> Raises :py:exc:`~django.core.exceptions.ValidationError` if the value is an invalid credit card expiration date month.</span>
234
+ </span><span id="line-46">
235
+ </span><span id="line-47"><span class="sd"> :param value: A credit card expiration year string.</span>
236
+ </span><span id="line-48"><span class="sd"> :type value: :py:obj:`str`</span>
237
+ </span><span id="line-49"><span class="sd"> :raises ValidationError: If the value contains non-digit characters.</span>
238
+ </span><span id="line-50"><span class="sd"> :raises ValidationError: If the value is negative.</span>
239
+ </span><span id="line-51"><span class="sd"> :raises ValidationError: If the value isn&#39;t between 1-12.</span>
240
+ </span><span id="line-52"><span class="sd"> :returns: Nothing.</span>
241
+ </span><span id="line-53"><span class="sd"> :rtype: :py:obj:`None`</span>
242
+ </span><span id="line-54">
243
+ </span><span id="line-55"><span class="sd"> &quot;&quot;&quot;</span>
244
+ </span><span id="line-56"> <span class="k">if</span> <span class="ow">not</span> <span class="n">value</span><span class="o">.</span><span class="n">isdigit</span><span class="p">():</span>
245
+ </span><span id="line-57"> <span class="k">raise</span> <span class="n">ValidationError</span><span class="p">(</span>
246
+ </span><span id="line-58"> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Expiration month can only contain digits, got &#39;</span><span class="si">%(value)s</span><span class="s2">&#39;.&quot;</span><span class="p">),</span>
247
+ </span><span id="line-59"> <span class="n">code</span><span class="o">=</span><span class="s2">&quot;invalid&quot;</span><span class="p">,</span>
248
+ </span><span id="line-60"> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;value&quot;</span><span class="p">:</span> <span class="n">value</span><span class="p">},</span>
249
+ </span><span id="line-61"> <span class="p">)</span>
250
+ </span><span id="line-62"> <span class="k">if</span> <span class="ow">not</span> <span class="nb">int</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
251
+ </span><span id="line-63"> <span class="k">raise</span> <span class="n">ValidationError</span><span class="p">(</span>
252
+ </span><span id="line-64"> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Expiration month can only be a positive value, got &#39;</span><span class="si">%(value)s</span><span class="s2">&#39;.&quot;</span><span class="p">),</span>
253
+ </span><span id="line-65"> <span class="n">code</span><span class="o">=</span><span class="s2">&quot;invalid&quot;</span><span class="p">,</span>
254
+ </span><span id="line-66"> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;value&quot;</span><span class="p">:</span> <span class="n">value</span><span class="p">},</span>
255
+ </span><span id="line-67"> <span class="p">)</span>
256
+ </span><span id="line-68">
257
+ </span><span id="line-69"> <span class="k">try</span><span class="p">:</span>
258
+ </span><span id="line-70"> <span class="n">calendar</span><span class="o">.</span><span class="n">Month</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="n">value</span><span class="p">))</span>
259
+ </span><span id="line-71"> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
260
+ </span><span id="line-72"> <span class="k">raise</span> <span class="n">ValidationError</span><span class="p">(</span>
261
+ </span><span id="line-73"> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Expiration month must be between 1-12, got &#39;</span><span class="si">%(value)s</span><span class="s2">&#39;.&quot;</span><span class="p">),</span>
262
+ </span><span id="line-74"> <span class="n">code</span><span class="o">=</span><span class="s2">&quot;invalid&quot;</span><span class="p">,</span>
263
+ </span><span id="line-75"> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;value&quot;</span><span class="p">:</span> <span class="n">value</span><span class="p">},</span>
264
+ </span><span id="line-76"> <span class="p">)</span></div>
265
+
266
+ </span><span id="line-77">
267
+ </span><span id="line-78">
268
+ <div class="viewcode-block" id="validate_credit_card_expiry_year">
269
+ <a class="viewcode-back" href="../../../authorizenet/validators.html#terminusgps.authorizenet.validators.validate_credit_card_expiry_year">[docs]</a>
270
+ </span><span id="line-79"><span class="k">def</span><span class="w"> </span><span class="nf">validate_credit_card_expiry_year</span><span class="p">(</span><span class="n">value</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
271
+ </span><span id="line-80"><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
272
+ </span><span id="line-81"><span class="sd"> Raises :py:exc:`~django.core.exceptions.ValidationError` if the value is an invalid credit card expiration date year.</span>
273
+ </span><span id="line-82">
274
+ </span><span id="line-83"><span class="sd"> :param value: A credit card expiration year string.</span>
275
+ </span><span id="line-84"><span class="sd"> :type value: :py:obj:`str`</span>
276
+ </span><span id="line-85"><span class="sd"> :raises ValidationError: If the value contains non-digit characters.</span>
277
+ </span><span id="line-86"><span class="sd"> :raises ValidationError: If the value is negative.</span>
278
+ </span><span id="line-87"><span class="sd"> :raises ValidationError: If the value is a year in the past.</span>
279
+ </span><span id="line-88"><span class="sd"> :returns: Nothing.</span>
280
+ </span><span id="line-89"><span class="sd"> :rtype: :py:obj:`None`</span>
281
+ </span><span id="line-90">
282
+ </span><span id="line-91"><span class="sd"> &quot;&quot;&quot;</span>
283
+ </span><span id="line-92"> <span class="k">if</span> <span class="ow">not</span> <span class="n">value</span><span class="o">.</span><span class="n">isdigit</span><span class="p">():</span>
284
+ </span><span id="line-93"> <span class="k">raise</span> <span class="n">ValidationError</span><span class="p">(</span>
285
+ </span><span id="line-94"> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Expiration year can only contain digits, got &#39;</span><span class="si">%(value)s</span><span class="s2">&#39;.&quot;</span><span class="p">),</span>
286
+ </span><span id="line-95"> <span class="n">code</span><span class="o">=</span><span class="s2">&quot;invalid&quot;</span><span class="p">,</span>
287
+ </span><span id="line-96"> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;value&quot;</span><span class="p">:</span> <span class="n">value</span><span class="p">},</span>
288
+ </span><span id="line-97"> <span class="p">)</span>
289
+ </span><span id="line-98"> <span class="k">if</span> <span class="ow">not</span> <span class="nb">int</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
290
+ </span><span id="line-99"> <span class="k">raise</span> <span class="n">ValidationError</span><span class="p">(</span>
291
+ </span><span id="line-100"> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Expiration year can only be a positive value, got &#39;</span><span class="si">%(value)s</span><span class="s2">&#39;.&quot;</span><span class="p">),</span>
292
+ </span><span id="line-101"> <span class="n">code</span><span class="o">=</span><span class="s2">&quot;invalid&quot;</span><span class="p">,</span>
293
+ </span><span id="line-102"> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;value&quot;</span><span class="p">:</span> <span class="n">value</span><span class="p">},</span>
294
+ </span><span id="line-103"> <span class="p">)</span>
295
+ </span><span id="line-104">
296
+ </span><span id="line-105"> <span class="n">input_year</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">strptime</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s2">&quot;%y&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">year</span>
297
+ </span><span id="line-106"> <span class="n">this_year</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">()</span><span class="o">.</span><span class="n">year</span>
298
+ </span><span id="line-107">
299
+ </span><span id="line-108"> <span class="k">if</span> <span class="ow">not</span> <span class="n">input_year</span> <span class="o">&gt;=</span> <span class="n">this_year</span><span class="p">:</span>
300
+ </span><span id="line-109"> <span class="k">raise</span> <span class="n">ValidationError</span><span class="p">(</span>
301
+ </span><span id="line-110"> <span class="n">_</span><span class="p">(</span><span class="s2">&quot;Expiration year cannot be in the past, got &#39;</span><span class="si">%(value)s</span><span class="s2">&#39;.&quot;</span><span class="p">),</span>
302
+ </span><span id="line-111"> <span class="n">code</span><span class="o">=</span><span class="s2">&quot;invalid&quot;</span><span class="p">,</span>
303
+ </span><span id="line-112"> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;value&quot;</span><span class="p">:</span> <span class="n">value</span><span class="p">},</span>
304
+ </span><span id="line-113"> <span class="p">)</span></div>
305
+
306
+ </span></code></pre></div>
307
+ </div></div>
308
+ </main>
309
+ </div>
310
+ </div><footer class="py-6 border-t border-border md:py-0">
311
+ <div class="container flex flex-col items-center justify-between gap-4 md:h-24 md:flex-row">
312
+ <div class="flex flex-col items-center gap-4 px-8 md:flex-row md:gap-2 md:px-0">
313
+ <p class="text-sm leading-loose text-center text-muted-foreground md:text-left">© 2025, Terminus GPS, LLC&nbsp;Built with <a class="font-medium underline underline-offset-4"
314
+ href="https://www.sphinx-doc.org"
315
+ rel="noreferrer">Sphinx 8.2.3</a></p>
316
+ </div>
317
+ </div>
318
+ </footer>
319
+ </div>
320
+
321
+ <script src="../../../_static/documentation_options.js?v=7d693ada"></script>
322
+ <script src="../../../_static/doctools.js?v=9bcbadda"></script>
323
+ <script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
324
+ <script defer="defer" src="../../../_static/theme.js?v=073f68d9"></script>
325
+
326
+ </body>
327
+ </html>
@@ -12,9 +12,9 @@
12
12
  <meta name="theme-color" media="(prefers-color-scheme: light)" content="white" />
13
13
  <meta name="theme-color" media="(prefers-color-scheme: dark)" content="black" />
14
14
 
15
- <title>terminusgps.wialon.items.resource | python-terminusgps 37.6.0 documentation</title>
16
- <meta property="og:title" content="terminusgps.wialon.items.resource | python-terminusgps 37.6.0 documentation" />
17
- <meta name="twitter:title" content="terminusgps.wialon.items.resource | python-terminusgps 37.6.0 documentation" />
15
+ <title>terminusgps.wialon.items.resource | python-terminusgps 37.6.7 documentation</title>
16
+ <meta property="og:title" content="terminusgps.wialon.items.resource | python-terminusgps 37.6.7 documentation" />
17
+ <meta name="twitter:title" content="terminusgps.wialon.items.resource | python-terminusgps 37.6.7 documentation" />
18
18
  <link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css?v=d691ff6c" />
19
19
  <link rel="stylesheet" type="text/css" href="../../../../_static/theme.css?v=42baaae4" />
20
20
  <link rel="stylesheet" type="text/css" href="../../../../_static/autoclasstoc.css?v=08871587" />
@@ -40,7 +40,7 @@
40
40
  </a><header
41
41
  class="sticky top-0 z-40 w-full border-b shadow-sm border-border supports-backdrop-blur:bg-background/60 bg-background/95 backdrop-blur"><div class="container flex items-center h-14">
42
42
  <div class="hidden mr-4 md:flex">
43
- <a href="../../../../index.html" class="flex items-center mr-6"><span class="hidden font-bold sm:inline-block text-clip whitespace-nowrap">python-terminusgps 37.6.0 documentation</span>
43
+ <a href="../../../../index.html" class="flex items-center mr-6"><span class="hidden font-bold sm:inline-block text-clip whitespace-nowrap">python-terminusgps 37.6.7 documentation</span>
44
44
  </a></div><button
45
45
  class="inline-flex items-center justify-center h-10 px-0 py-2 mr-2 text-base font-medium transition-colors rounded-md hover:text-accent-foreground hover:bg-transparent md:hidden"
46
46
  type="button" @click="showSidebar = true">
@@ -95,7 +95,7 @@
95
95
  class="fixed inset-y-0 left-0 md:top-14 z-50 md:z-30 bg-background md:bg-transparent transition-all duration-100 -translate-x-full md:translate-x-0 ml-0 p-6 md:p-0 md:-ml-2 md:h-[calc(100vh-3.5rem)] w-5/6 md:w-full shrink-0 overflow-y-auto border-r border-border md:sticky"
96
96
  :aria-hidden="!showSidebar" :class="{ 'translate-x-0': showSidebar }">
97
97
 
98
- <a href="../../../../index.html" class="!justify-start text-sm md:!hidden bg-background"><span class="font-bold text-clip whitespace-nowrap">python-terminusgps 37.6.0 documentation</span>
98
+ <a href="../../../../index.html" class="!justify-start text-sm md:!hidden bg-background"><span class="font-bold text-clip whitespace-nowrap">python-terminusgps 37.6.7 documentation</span>
99
99
  </a>
100
100
 
101
101
  <div class="relative overflow-hidden md:overflow-auto my-4 md:my-0 h-[calc(100vh-8rem)] md:h-auto">
@@ -109,6 +109,7 @@
109
109
  <li class="toctree-l2"><a class="reference internal" href="../../../../authorizenet/examples.html">Usage Examples</a></li>
110
110
  <li class="toctree-l2"><a class="reference internal" href="../../../../authorizenet/profiles.html">Profiles</a></li>
111
111
  <li class="toctree-l2"><a class="reference internal" href="../../../../authorizenet/utils.html">Utilities</a></li>
112
+ <li class="toctree-l2"><a class="reference internal" href="../../../../authorizenet/validators.html">Validators</a></li>
112
113
  </ul>
113
114
  </li>
114
115
  <li class="toctree-l1"><a class="reference internal" href="../../../../aws/index.html">AWS API</a><ul>
@@ -158,7 +159,7 @@
158
159
  class="flex items-center mb-4 space-x-1 text-sm text-muted-foreground">
159
160
  <a class="overflow-hidden text-ellipsis whitespace-nowrap hover:text-foreground"
160
161
  href="../../../../index.html">
161
- <span class="hidden md:inline">python-terminusgps 37.6.0 documentation</span>
162
+ <span class="hidden md:inline">python-terminusgps 37.6.7 documentation</span>
162
163
  <svg xmlns="http://www.w3.org/2000/svg"
163
164
  height="18"
164
165
  width="18"
@@ -802,7 +803,7 @@
802
803
  </footer>
803
804
  </div>
804
805
 
805
- <script src="../../../../_static/documentation_options.js?v=b6e0aa17"></script>
806
+ <script src="../../../../_static/documentation_options.js?v=7d693ada"></script>
806
807
  <script src="../../../../_static/doctools.js?v=9bcbadda"></script>
807
808
  <script src="../../../../_static/sphinx_highlight.js?v=dc90522c"></script>
808
809
  <script defer="defer" src="../../../../_static/theme.js?v=073f68d9"></script>
@@ -27,3 +27,4 @@ Some `Authorizenet <https://www.authorize.net/>`_ API objects have been modeled,
27
27
  examples.rst
28
28
  profiles.rst
29
29
  utils.rst
30
+ validators.rst
@@ -0,0 +1,31 @@
1
+ Validators
2
+ ==========
3
+
4
+ .. automodule:: terminusgps.authorizenet.validators
5
+ :members:
6
+
7
+ =====
8
+ Usage
9
+ =====
10
+
11
+ .. code:: python
12
+
13
+ from django import forms
14
+
15
+ from terminusgps.authorizenet.validators import (
16
+ validate_credit_card_number,
17
+ validate_credit_card_expiry_month,
18
+ validate_credit_card_expiry_year,
19
+ )
20
+
21
+ class CreditCardForm(forms.Form):
22
+ # Adding the validators to a form field renders error messages properly
23
+ cc_number = forms.CharField(
24
+ max_length=17, validators=[validate_credit_card_number]
25
+ )
26
+ cc_expiry_month = forms.CharField(
27
+ max_length=2, validators=[validate_credit_card_expiry_month]
28
+ )
29
+ cc_expiry_year = forms.CharField(
30
+ max_length=2, validators=[validate_credit_card_expiry_year]
31
+ )
@@ -1,5 +1,5 @@
1
1
  const DOCUMENTATION_OPTIONS = {
2
- VERSION: '37.6.7',
2
+ VERSION: '37.6.8',
3
3
  LANGUAGE: 'en',
4
4
  COLLAPSE_INDEX: false,
5
5
  BUILDER: 'html',