appier 1.34.11__tar.gz → 1.34.12__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 (108) hide show
  1. {appier-1.34.11/src/appier.egg-info → appier-1.34.12}/PKG-INFO +1 -1
  2. {appier-1.34.11 → appier-1.34.12}/setup.py +1 -1
  3. {appier-1.34.11 → appier-1.34.12}/src/appier/__init__.py +1 -0
  4. {appier-1.34.11 → appier-1.34.12}/src/appier/validation.py +13 -0
  5. {appier-1.34.11 → appier-1.34.12/src/appier.egg-info}/PKG-INFO +1 -1
  6. {appier-1.34.11 → appier-1.34.12}/MANIFEST.in +0 -0
  7. {appier-1.34.11 → appier-1.34.12}/README.rst +0 -0
  8. {appier-1.34.11 → appier-1.34.12}/pyproject.toml +0 -0
  9. {appier-1.34.11 → appier-1.34.12}/setup.cfg +0 -0
  10. {appier-1.34.11 → appier-1.34.12}/src/appier/amqp.py +0 -0
  11. {appier-1.34.11 → appier-1.34.12}/src/appier/api.py +0 -0
  12. {appier-1.34.11 → appier-1.34.12}/src/appier/asgi.py +0 -0
  13. {appier-1.34.11 → appier-1.34.12}/src/appier/async_neo.py +0 -0
  14. {appier-1.34.11 → appier-1.34.12}/src/appier/async_old.py +0 -0
  15. {appier-1.34.11 → appier-1.34.12}/src/appier/asynchronous.py +0 -0
  16. {appier-1.34.11 → appier-1.34.12}/src/appier/asynchronous.pyi +0 -0
  17. {appier-1.34.11 → appier-1.34.12}/src/appier/base.py +0 -0
  18. {appier-1.34.11 → appier-1.34.12}/src/appier/base.pyi +0 -0
  19. {appier-1.34.11 → appier-1.34.12}/src/appier/bus.py +0 -0
  20. {appier-1.34.11 → appier-1.34.12}/src/appier/bus.pyi +0 -0
  21. {appier-1.34.11 → appier-1.34.12}/src/appier/cache.py +0 -0
  22. {appier-1.34.11 → appier-1.34.12}/src/appier/cache.pyi +0 -0
  23. {appier-1.34.11 → appier-1.34.12}/src/appier/common.py +0 -0
  24. {appier-1.34.11 → appier-1.34.12}/src/appier/component.py +0 -0
  25. {appier-1.34.11 → appier-1.34.12}/src/appier/component.pyi +0 -0
  26. {appier-1.34.11 → appier-1.34.12}/src/appier/compress.py +0 -0
  27. {appier-1.34.11 → appier-1.34.12}/src/appier/config.py +0 -0
  28. {appier-1.34.11 → appier-1.34.12}/src/appier/controller.py +0 -0
  29. {appier-1.34.11 → appier-1.34.12}/src/appier/crypt.py +0 -0
  30. {appier-1.34.11 → appier-1.34.12}/src/appier/data.py +0 -0
  31. {appier-1.34.11 → appier-1.34.12}/src/appier/data.pyi +0 -0
  32. {appier-1.34.11 → appier-1.34.12}/src/appier/defines.py +0 -0
  33. {appier-1.34.11 → appier-1.34.12}/src/appier/exceptions.py +0 -0
  34. {appier-1.34.11 → appier-1.34.12}/src/appier/execution.py +0 -0
  35. {appier-1.34.11 → appier-1.34.12}/src/appier/export.py +0 -0
  36. {appier-1.34.11 → appier-1.34.12}/src/appier/extra.py +0 -0
  37. {appier-1.34.11 → appier-1.34.12}/src/appier/extra_neo.py +0 -0
  38. {appier-1.34.11 → appier-1.34.12}/src/appier/extra_old.py +0 -0
  39. {appier-1.34.11 → appier-1.34.12}/src/appier/geo.py +0 -0
  40. {appier-1.34.11 → appier-1.34.12}/src/appier/git.py +0 -0
  41. {appier-1.34.11 → appier-1.34.12}/src/appier/graph.py +0 -0
  42. {appier-1.34.11 → appier-1.34.12}/src/appier/http.py +0 -0
  43. {appier-1.34.11 → appier-1.34.12}/src/appier/legacy.py +0 -0
  44. {appier-1.34.11 → appier-1.34.12}/src/appier/log.py +0 -0
  45. {appier-1.34.11 → appier-1.34.12}/src/appier/meta.py +0 -0
  46. {appier-1.34.11 → appier-1.34.12}/src/appier/mock.py +0 -0
  47. {appier-1.34.11 → appier-1.34.12}/src/appier/model.py +0 -0
  48. {appier-1.34.11 → appier-1.34.12}/src/appier/model.pyi +0 -0
  49. {appier-1.34.11 → appier-1.34.12}/src/appier/model_a.py +0 -0
  50. {appier-1.34.11 → appier-1.34.12}/src/appier/mongo.py +0 -0
  51. {appier-1.34.11 → appier-1.34.12}/src/appier/observer.py +0 -0
  52. {appier-1.34.11 → appier-1.34.12}/src/appier/part.py +0 -0
  53. {appier-1.34.11 → appier-1.34.12}/src/appier/part.pyi +0 -0
  54. {appier-1.34.11 → appier-1.34.12}/src/appier/preferences.py +0 -0
  55. {appier-1.34.11 → appier-1.34.12}/src/appier/preferences.pyi +0 -0
  56. {appier-1.34.11 → appier-1.34.12}/src/appier/queuing.py +0 -0
  57. {appier-1.34.11 → appier-1.34.12}/src/appier/redisdb.py +0 -0
  58. {appier-1.34.11 → appier-1.34.12}/src/appier/request.py +0 -0
  59. {appier-1.34.11 → appier-1.34.12}/src/appier/res/static/css/base.css +0 -0
  60. {appier-1.34.11 → appier-1.34.12}/src/appier/res/static/images/favicon.ico +0 -0
  61. {appier-1.34.11 → appier-1.34.12}/src/appier/res/static/js/base.js +0 -0
  62. {appier-1.34.11 → appier-1.34.12}/src/appier/res/templates/error.html.tpl +0 -0
  63. {appier-1.34.11 → appier-1.34.12}/src/appier/res/templates/holder.html.tpl +0 -0
  64. {appier-1.34.11 → appier-1.34.12}/src/appier/res/templates/layout.html.tpl +0 -0
  65. {appier-1.34.11 → appier-1.34.12}/src/appier/scheduler.py +0 -0
  66. {appier-1.34.11 → appier-1.34.12}/src/appier/scheduler.pyi +0 -0
  67. {appier-1.34.11 → appier-1.34.12}/src/appier/serialize.py +0 -0
  68. {appier-1.34.11 → appier-1.34.12}/src/appier/session.py +0 -0
  69. {appier-1.34.11 → appier-1.34.12}/src/appier/session.pyi +0 -0
  70. {appier-1.34.11 → appier-1.34.12}/src/appier/settings.py +0 -0
  71. {appier-1.34.11 → appier-1.34.12}/src/appier/smtp.py +0 -0
  72. {appier-1.34.11 → appier-1.34.12}/src/appier/storage.py +0 -0
  73. {appier-1.34.11 → appier-1.34.12}/src/appier/structures.py +0 -0
  74. {appier-1.34.11 → appier-1.34.12}/src/appier/test/__init__.py +0 -0
  75. {appier-1.34.11 → appier-1.34.12}/src/appier/test/base.py +0 -0
  76. {appier-1.34.11 → appier-1.34.12}/src/appier/test/cache.py +0 -0
  77. {appier-1.34.11 → appier-1.34.12}/src/appier/test/config.py +0 -0
  78. {appier-1.34.11 → appier-1.34.12}/src/appier/test/crypt.py +0 -0
  79. {appier-1.34.11 → appier-1.34.12}/src/appier/test/data.py +0 -0
  80. {appier-1.34.11 → appier-1.34.12}/src/appier/test/error_handler.py +0 -0
  81. {appier-1.34.11 → appier-1.34.12}/src/appier/test/exception_handler.py +0 -0
  82. {appier-1.34.11 → appier-1.34.12}/src/appier/test/exceptions.py +0 -0
  83. {appier-1.34.11 → appier-1.34.12}/src/appier/test/export.py +0 -0
  84. {appier-1.34.11 → appier-1.34.12}/src/appier/test/graph.py +0 -0
  85. {appier-1.34.11 → appier-1.34.12}/src/appier/test/http.py +0 -0
  86. {appier-1.34.11 → appier-1.34.12}/src/appier/test/legacy.py +0 -0
  87. {appier-1.34.11 → appier-1.34.12}/src/appier/test/log.py +0 -0
  88. {appier-1.34.11 → appier-1.34.12}/src/appier/test/mock.py +0 -0
  89. {appier-1.34.11 → appier-1.34.12}/src/appier/test/model.py +0 -0
  90. {appier-1.34.11 → appier-1.34.12}/src/appier/test/part.py +0 -0
  91. {appier-1.34.11 → appier-1.34.12}/src/appier/test/preferences.py +0 -0
  92. {appier-1.34.11 → appier-1.34.12}/src/appier/test/queuing.py +0 -0
  93. {appier-1.34.11 → appier-1.34.12}/src/appier/test/request.py +0 -0
  94. {appier-1.34.11 → appier-1.34.12}/src/appier/test/scheduler.py +0 -0
  95. {appier-1.34.11 → appier-1.34.12}/src/appier/test/serialize.py +0 -0
  96. {appier-1.34.11 → appier-1.34.12}/src/appier/test/session.py +0 -0
  97. {appier-1.34.11 → appier-1.34.12}/src/appier/test/smtp.py +0 -0
  98. {appier-1.34.11 → appier-1.34.12}/src/appier/test/structures.py +0 -0
  99. {appier-1.34.11 → appier-1.34.12}/src/appier/test/tags.py +0 -0
  100. {appier-1.34.11 → appier-1.34.12}/src/appier/test/typesf.py +0 -0
  101. {appier-1.34.11 → appier-1.34.12}/src/appier/test/util.py +0 -0
  102. {appier-1.34.11 → appier-1.34.12}/src/appier/test/validation.py +0 -0
  103. {appier-1.34.11 → appier-1.34.12}/src/appier/typesf.py +0 -0
  104. {appier-1.34.11 → appier-1.34.12}/src/appier/util.py +0 -0
  105. {appier-1.34.11 → appier-1.34.12}/src/appier.egg-info/SOURCES.txt +0 -0
  106. {appier-1.34.11 → appier-1.34.12}/src/appier.egg-info/dependency_links.txt +0 -0
  107. {appier-1.34.11 → appier-1.34.12}/src/appier.egg-info/not-zip-safe +0 -0
  108. {appier-1.34.11 → appier-1.34.12}/src/appier.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.1
2
2
  Name: appier
3
- Version: 1.34.11
3
+ Version: 1.34.12
4
4
  Summary: Appier Framework
5
5
  Home-page: http://appier.hive.pt
6
6
  Author: Hive Solutions Lda.
@@ -44,7 +44,7 @@ def read_file(path):
44
44
 
45
45
  setuptools.setup(
46
46
  name="appier",
47
- version="1.34.11",
47
+ version="1.34.12",
48
48
  author="Hive Solutions Lda.",
49
49
  author_email="development@hive.pt",
50
50
  description="Appier Framework",
@@ -406,6 +406,7 @@ from .validation import (
406
406
  validate_b,
407
407
  validate_e,
408
408
  safe,
409
+ custom,
409
410
  eq,
410
411
  gt,
411
412
  gte,
@@ -151,6 +151,19 @@ def safe(comparison):
151
151
  return False
152
152
 
153
153
 
154
+ def custom(name, callable, message="value is not valid", locale=True):
155
+ def validation(object, ctx):
156
+ value = object.get(name, None)
157
+ if value == None:
158
+ return True
159
+ if callable(value):
160
+ return True
161
+ message_l = _to_locale(message) if locale else message
162
+ raise exceptions.ValidationInternalError(name, message_l)
163
+
164
+ return validation
165
+
166
+
154
167
  def eq(name, value_c, message="must be equal to %s", locale=True):
155
168
  def validation(object, ctx):
156
169
  value = object.get(name, None)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.1
2
2
  Name: appier
3
- Version: 1.34.11
3
+ Version: 1.34.12
4
4
  Summary: Appier Framework
5
5
  Home-page: http://appier.hive.pt
6
6
  Author: Hive Solutions Lda.
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes