appier 1.34.9__tar.gz → 1.34.11__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.9/src/appier.egg-info → appier-1.34.11}/PKG-INFO +1 -1
  2. {appier-1.34.9 → appier-1.34.11}/setup.py +1 -1
  3. {appier-1.34.9 → appier-1.34.11}/src/appier/__init__.py +1 -0
  4. {appier-1.34.9 → appier-1.34.11}/src/appier/base.py +4 -0
  5. {appier-1.34.9 → appier-1.34.11}/src/appier/model.py +2 -0
  6. {appier-1.34.9 → appier-1.34.11}/src/appier/model.pyi +2 -0
  7. {appier-1.34.9 → appier-1.34.11/src/appier.egg-info}/PKG-INFO +1 -1
  8. {appier-1.34.9 → appier-1.34.11}/MANIFEST.in +0 -0
  9. {appier-1.34.9 → appier-1.34.11}/README.rst +0 -0
  10. {appier-1.34.9 → appier-1.34.11}/pyproject.toml +0 -0
  11. {appier-1.34.9 → appier-1.34.11}/setup.cfg +0 -0
  12. {appier-1.34.9 → appier-1.34.11}/src/appier/amqp.py +0 -0
  13. {appier-1.34.9 → appier-1.34.11}/src/appier/api.py +0 -0
  14. {appier-1.34.9 → appier-1.34.11}/src/appier/asgi.py +0 -0
  15. {appier-1.34.9 → appier-1.34.11}/src/appier/async_neo.py +0 -0
  16. {appier-1.34.9 → appier-1.34.11}/src/appier/async_old.py +0 -0
  17. {appier-1.34.9 → appier-1.34.11}/src/appier/asynchronous.py +0 -0
  18. {appier-1.34.9 → appier-1.34.11}/src/appier/asynchronous.pyi +0 -0
  19. {appier-1.34.9 → appier-1.34.11}/src/appier/base.pyi +0 -0
  20. {appier-1.34.9 → appier-1.34.11}/src/appier/bus.py +0 -0
  21. {appier-1.34.9 → appier-1.34.11}/src/appier/bus.pyi +0 -0
  22. {appier-1.34.9 → appier-1.34.11}/src/appier/cache.py +0 -0
  23. {appier-1.34.9 → appier-1.34.11}/src/appier/cache.pyi +0 -0
  24. {appier-1.34.9 → appier-1.34.11}/src/appier/common.py +0 -0
  25. {appier-1.34.9 → appier-1.34.11}/src/appier/component.py +0 -0
  26. {appier-1.34.9 → appier-1.34.11}/src/appier/component.pyi +0 -0
  27. {appier-1.34.9 → appier-1.34.11}/src/appier/compress.py +0 -0
  28. {appier-1.34.9 → appier-1.34.11}/src/appier/config.py +0 -0
  29. {appier-1.34.9 → appier-1.34.11}/src/appier/controller.py +0 -0
  30. {appier-1.34.9 → appier-1.34.11}/src/appier/crypt.py +0 -0
  31. {appier-1.34.9 → appier-1.34.11}/src/appier/data.py +0 -0
  32. {appier-1.34.9 → appier-1.34.11}/src/appier/data.pyi +0 -0
  33. {appier-1.34.9 → appier-1.34.11}/src/appier/defines.py +0 -0
  34. {appier-1.34.9 → appier-1.34.11}/src/appier/exceptions.py +0 -0
  35. {appier-1.34.9 → appier-1.34.11}/src/appier/execution.py +0 -0
  36. {appier-1.34.9 → appier-1.34.11}/src/appier/export.py +0 -0
  37. {appier-1.34.9 → appier-1.34.11}/src/appier/extra.py +0 -0
  38. {appier-1.34.9 → appier-1.34.11}/src/appier/extra_neo.py +0 -0
  39. {appier-1.34.9 → appier-1.34.11}/src/appier/extra_old.py +0 -0
  40. {appier-1.34.9 → appier-1.34.11}/src/appier/geo.py +0 -0
  41. {appier-1.34.9 → appier-1.34.11}/src/appier/git.py +0 -0
  42. {appier-1.34.9 → appier-1.34.11}/src/appier/graph.py +0 -0
  43. {appier-1.34.9 → appier-1.34.11}/src/appier/http.py +0 -0
  44. {appier-1.34.9 → appier-1.34.11}/src/appier/legacy.py +0 -0
  45. {appier-1.34.9 → appier-1.34.11}/src/appier/log.py +0 -0
  46. {appier-1.34.9 → appier-1.34.11}/src/appier/meta.py +0 -0
  47. {appier-1.34.9 → appier-1.34.11}/src/appier/mock.py +0 -0
  48. {appier-1.34.9 → appier-1.34.11}/src/appier/model_a.py +0 -0
  49. {appier-1.34.9 → appier-1.34.11}/src/appier/mongo.py +0 -0
  50. {appier-1.34.9 → appier-1.34.11}/src/appier/observer.py +0 -0
  51. {appier-1.34.9 → appier-1.34.11}/src/appier/part.py +0 -0
  52. {appier-1.34.9 → appier-1.34.11}/src/appier/part.pyi +0 -0
  53. {appier-1.34.9 → appier-1.34.11}/src/appier/preferences.py +0 -0
  54. {appier-1.34.9 → appier-1.34.11}/src/appier/preferences.pyi +0 -0
  55. {appier-1.34.9 → appier-1.34.11}/src/appier/queuing.py +0 -0
  56. {appier-1.34.9 → appier-1.34.11}/src/appier/redisdb.py +0 -0
  57. {appier-1.34.9 → appier-1.34.11}/src/appier/request.py +0 -0
  58. {appier-1.34.9 → appier-1.34.11}/src/appier/res/static/css/base.css +0 -0
  59. {appier-1.34.9 → appier-1.34.11}/src/appier/res/static/images/favicon.ico +0 -0
  60. {appier-1.34.9 → appier-1.34.11}/src/appier/res/static/js/base.js +0 -0
  61. {appier-1.34.9 → appier-1.34.11}/src/appier/res/templates/error.html.tpl +0 -0
  62. {appier-1.34.9 → appier-1.34.11}/src/appier/res/templates/holder.html.tpl +0 -0
  63. {appier-1.34.9 → appier-1.34.11}/src/appier/res/templates/layout.html.tpl +0 -0
  64. {appier-1.34.9 → appier-1.34.11}/src/appier/scheduler.py +0 -0
  65. {appier-1.34.9 → appier-1.34.11}/src/appier/scheduler.pyi +0 -0
  66. {appier-1.34.9 → appier-1.34.11}/src/appier/serialize.py +0 -0
  67. {appier-1.34.9 → appier-1.34.11}/src/appier/session.py +0 -0
  68. {appier-1.34.9 → appier-1.34.11}/src/appier/session.pyi +0 -0
  69. {appier-1.34.9 → appier-1.34.11}/src/appier/settings.py +0 -0
  70. {appier-1.34.9 → appier-1.34.11}/src/appier/smtp.py +0 -0
  71. {appier-1.34.9 → appier-1.34.11}/src/appier/storage.py +0 -0
  72. {appier-1.34.9 → appier-1.34.11}/src/appier/structures.py +0 -0
  73. {appier-1.34.9 → appier-1.34.11}/src/appier/test/__init__.py +0 -0
  74. {appier-1.34.9 → appier-1.34.11}/src/appier/test/base.py +0 -0
  75. {appier-1.34.9 → appier-1.34.11}/src/appier/test/cache.py +0 -0
  76. {appier-1.34.9 → appier-1.34.11}/src/appier/test/config.py +0 -0
  77. {appier-1.34.9 → appier-1.34.11}/src/appier/test/crypt.py +0 -0
  78. {appier-1.34.9 → appier-1.34.11}/src/appier/test/data.py +0 -0
  79. {appier-1.34.9 → appier-1.34.11}/src/appier/test/error_handler.py +0 -0
  80. {appier-1.34.9 → appier-1.34.11}/src/appier/test/exception_handler.py +0 -0
  81. {appier-1.34.9 → appier-1.34.11}/src/appier/test/exceptions.py +0 -0
  82. {appier-1.34.9 → appier-1.34.11}/src/appier/test/export.py +0 -0
  83. {appier-1.34.9 → appier-1.34.11}/src/appier/test/graph.py +0 -0
  84. {appier-1.34.9 → appier-1.34.11}/src/appier/test/http.py +0 -0
  85. {appier-1.34.9 → appier-1.34.11}/src/appier/test/legacy.py +0 -0
  86. {appier-1.34.9 → appier-1.34.11}/src/appier/test/log.py +0 -0
  87. {appier-1.34.9 → appier-1.34.11}/src/appier/test/mock.py +0 -0
  88. {appier-1.34.9 → appier-1.34.11}/src/appier/test/model.py +0 -0
  89. {appier-1.34.9 → appier-1.34.11}/src/appier/test/part.py +0 -0
  90. {appier-1.34.9 → appier-1.34.11}/src/appier/test/preferences.py +0 -0
  91. {appier-1.34.9 → appier-1.34.11}/src/appier/test/queuing.py +0 -0
  92. {appier-1.34.9 → appier-1.34.11}/src/appier/test/request.py +0 -0
  93. {appier-1.34.9 → appier-1.34.11}/src/appier/test/scheduler.py +0 -0
  94. {appier-1.34.9 → appier-1.34.11}/src/appier/test/serialize.py +0 -0
  95. {appier-1.34.9 → appier-1.34.11}/src/appier/test/session.py +0 -0
  96. {appier-1.34.9 → appier-1.34.11}/src/appier/test/smtp.py +0 -0
  97. {appier-1.34.9 → appier-1.34.11}/src/appier/test/structures.py +0 -0
  98. {appier-1.34.9 → appier-1.34.11}/src/appier/test/tags.py +0 -0
  99. {appier-1.34.9 → appier-1.34.11}/src/appier/test/typesf.py +0 -0
  100. {appier-1.34.9 → appier-1.34.11}/src/appier/test/util.py +0 -0
  101. {appier-1.34.9 → appier-1.34.11}/src/appier/test/validation.py +0 -0
  102. {appier-1.34.9 → appier-1.34.11}/src/appier/typesf.py +0 -0
  103. {appier-1.34.9 → appier-1.34.11}/src/appier/util.py +0 -0
  104. {appier-1.34.9 → appier-1.34.11}/src/appier/validation.py +0 -0
  105. {appier-1.34.9 → appier-1.34.11}/src/appier.egg-info/SOURCES.txt +0 -0
  106. {appier-1.34.9 → appier-1.34.11}/src/appier.egg-info/dependency_links.txt +0 -0
  107. {appier-1.34.9 → appier-1.34.11}/src/appier.egg-info/not-zip-safe +0 -0
  108. {appier-1.34.9 → appier-1.34.11}/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.9
3
+ Version: 1.34.11
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.9",
47
+ version="1.34.11",
48
48
  author="Hive Solutions Lda.",
49
49
  author_email="development@hive.pt",
50
50
  description="Appier Framework",
@@ -235,6 +235,7 @@ from .model import (
235
235
  Model,
236
236
  LocalModel,
237
237
  Field,
238
+ ValidationRules,
238
239
  link,
239
240
  operation,
240
241
  view,
@@ -1264,6 +1264,7 @@ class App(
1264
1264
  self.add_filter(self.strip, "strip")
1265
1265
  self.add_filter(self.sentence, "sentence")
1266
1266
  self.add_filter(self.absolute_url, "absolute_url")
1267
+ self.add_filter(self.callable, "callable")
1267
1268
 
1268
1269
  self.add_filter(self.script_tag_jinja, "script_tag", type="eval")
1269
1270
  self.add_filter(self.css_tag_jinja, "css_tag", type="eval")
@@ -3735,6 +3736,9 @@ class App(
3735
3736
  value = base_url + prefix + value
3736
3737
  return value
3737
3738
 
3739
+ def callable(self, value):
3740
+ return callable(value)
3741
+
3738
3742
  def url_for(
3739
3743
  self,
3740
3744
  type,
@@ -3265,3 +3265,5 @@ def is_unset(value):
3265
3265
 
3266
3266
 
3267
3267
  field = Field
3268
+
3269
+ ValidationRules = None
@@ -1,6 +1,8 @@
1
1
  from typing import Any, Callable, Self, Sequence
2
2
  from .base import App
3
3
 
4
+ ValidationRules = Sequence[Callable[[dict, Any], bool]]
5
+
4
6
  class Model:
5
7
  owner: App
6
8
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.1
2
2
  Name: appier
3
- Version: 1.34.9
3
+ Version: 1.34.11
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
File without changes
File without changes