python-liquid 2.3.6__py3-none-any.whl → 3.0.0__py3-none-any.whl

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 (212) hide show
  1. liquid/__about__.py +1 -0
  2. liquid/__init__.py +161 -187
  3. liquid/_base_tag.py +66 -0
  4. liquid/{utils/chain_map.py → _chain_map.py} +18 -19
  5. liquid/_context.py +465 -0
  6. liquid/_drop.py +108 -0
  7. liquid/_filter.py +174 -0
  8. liquid/_io.py +18 -0
  9. liquid/_lax_parser_mixin.py +100 -0
  10. liquid/_lexer.py +93 -0
  11. liquid/_lexer_extended.py +623 -0
  12. liquid/_lexer_legacy.py +536 -0
  13. liquid/_loader.py +84 -0
  14. liquid/{utils/lru_cache.py → _lru_cache.py} +28 -36
  15. liquid/_markup.py +253 -0
  16. liquid/_messages.py +292 -0
  17. liquid/_missing.py +3 -0
  18. liquid/_nothing.py +28 -0
  19. liquid/_parser.py +460 -0
  20. liquid/_parser_extended.py +293 -0
  21. liquid/_parser_legacy.py +819 -0
  22. liquid/_resource_limits.py +50 -0
  23. liquid/_slice.py +41 -0
  24. liquid/_static_analysis.py +503 -0
  25. liquid/_strftime.py +186 -0
  26. liquid/_template.py +536 -0
  27. liquid/drops/__init__.py +20 -0
  28. liquid/drops/forloop.py +78 -0
  29. liquid/drops/iterable.py +25 -0
  30. liquid/drops/range.py +76 -0
  31. liquid/drops/self_.py +45 -0
  32. liquid/drops/tablerowloop.py +142 -0
  33. liquid/drops/undefined.py +228 -0
  34. liquid/environment.py +717 -551
  35. liquid/exceptions.py +67 -214
  36. liquid/expressions.py +1184 -0
  37. liquid/filters/__init__.py +134 -0
  38. liquid/filters/abs.py +7 -0
  39. liquid/filters/append.py +5 -0
  40. liquid/filters/at_least.py +9 -0
  41. liquid/filters/at_most.py +9 -0
  42. liquid/filters/babel.py +560 -0
  43. liquid/filters/base64.py +26 -0
  44. liquid/filters/capitalize.py +5 -0
  45. liquid/filters/ceil.py +8 -0
  46. liquid/filters/compact.py +25 -0
  47. liquid/filters/concat.py +11 -0
  48. liquid/filters/date.py +27 -0
  49. liquid/filters/default.py +25 -0
  50. liquid/filters/divided_by.py +21 -0
  51. liquid/filters/downcase.py +5 -0
  52. liquid/filters/escape.py +56 -0
  53. liquid/filters/find.py +56 -0
  54. liquid/filters/first.py +19 -0
  55. liquid/filters/floor.py +8 -0
  56. liquid/filters/html.py +23 -0
  57. liquid/filters/index.py +12 -0
  58. liquid/filters/join.py +13 -0
  59. liquid/filters/json_.py +30 -0
  60. liquid/filters/last.py +17 -0
  61. liquid/filters/map.py +5 -0
  62. liquid/filters/minus.py +13 -0
  63. liquid/filters/modulo.py +18 -0
  64. liquid/filters/newline_to_br.py +16 -0
  65. liquid/filters/plus.py +13 -0
  66. liquid/filters/prepend.py +5 -0
  67. liquid/filters/reject.py +19 -0
  68. liquid/filters/remove.py +36 -0
  69. liquid/filters/replace.py +32 -0
  70. liquid/filters/reverse.py +5 -0
  71. liquid/filters/round.py +35 -0
  72. liquid/filters/size.py +25 -0
  73. liquid/filters/slice.py +39 -0
  74. liquid/filters/sort.py +148 -0
  75. liquid/filters/split.py +34 -0
  76. liquid/filters/squish.py +9 -0
  77. liquid/filters/strip.py +13 -0
  78. liquid/filters/strip_html.py +19 -0
  79. liquid/filters/strip_newlines.py +17 -0
  80. liquid/filters/sum.py +21 -0
  81. liquid/filters/times.py +13 -0
  82. liquid/filters/translate.py +380 -0
  83. liquid/filters/truncate.py +39 -0
  84. liquid/filters/uniq.py +11 -0
  85. liquid/filters/upcase.py +5 -0
  86. liquid/filters/url.py +18 -0
  87. liquid/filters/where.py +18 -0
  88. liquid/loaders/__init__.py +17 -0
  89. liquid/loaders/caching_file_system_loader.py +64 -0
  90. liquid/loaders/choice_loader.py +93 -0
  91. liquid/loaders/dict_loader.py +56 -0
  92. liquid/{builtin/loaders → loaders}/file_system_loader.py +51 -55
  93. liquid/{builtin/loaders → loaders}/mixins.py +39 -51
  94. liquid/loaders/package_loader.py +110 -0
  95. liquid/tags/__init__.py +61 -0
  96. liquid/tags/assign.py +68 -0
  97. liquid/tags/capture.py +83 -0
  98. liquid/tags/case.py +199 -0
  99. liquid/tags/comment.py +56 -0
  100. liquid/tags/cycle.py +131 -0
  101. liquid/tags/decrement.py +55 -0
  102. liquid/tags/doc.py +56 -0
  103. liquid/tags/echo.py +65 -0
  104. liquid/tags/else_.py +53 -0
  105. liquid/tags/error.py +51 -0
  106. liquid/tags/extends.py +448 -0
  107. liquid/tags/for_.py +421 -0
  108. liquid/tags/if_.py +156 -0
  109. liquid/tags/ifchanged.py +69 -0
  110. liquid/tags/include.py +223 -0
  111. liquid/tags/increment.py +55 -0
  112. liquid/tags/inline_comment.py +70 -0
  113. liquid/tags/liquid.py +56 -0
  114. liquid/tags/macro.py +281 -0
  115. liquid/tags/output.py +58 -0
  116. liquid/tags/raw.py +60 -0
  117. liquid/tags/render.py +245 -0
  118. liquid/tags/tablerow.py +254 -0
  119. liquid/tags/template_comment.py +56 -0
  120. liquid/tags/translate.py +316 -0
  121. liquid/tags/unless.py +121 -0
  122. liquid/tags/with_.py +83 -0
  123. liquid/tokens.py +370 -0
  124. {python_liquid-2.3.6.dist-info → python_liquid-3.0.0.dist-info}/METADATA +32 -39
  125. python_liquid-3.0.0.dist-info/RECORD +128 -0
  126. {python_liquid-2.3.6.dist-info → python_liquid-3.0.0.dist-info}/WHEEL +1 -1
  127. {python_liquid-2.3.6.dist-info → python_liquid-3.0.0.dist-info}/licenses/LICENSE +1 -1
  128. liquid/analyze_tags.py +0 -214
  129. liquid/ast.py +0 -252
  130. liquid/builtin/__init__.py +0 -203
  131. liquid/builtin/content.py +0 -41
  132. liquid/builtin/drops/__init__.py +0 -3
  133. liquid/builtin/drops/drops.py +0 -13
  134. liquid/builtin/expressions/__init__.py +0 -47
  135. liquid/builtin/expressions/_tokenize.py +0 -186
  136. liquid/builtin/expressions/arguments.py +0 -207
  137. liquid/builtin/expressions/filtered.py +0 -387
  138. liquid/builtin/expressions/logical.py +0 -672
  139. liquid/builtin/expressions/loop.py +0 -275
  140. liquid/builtin/expressions/path.py +0 -163
  141. liquid/builtin/expressions/primitive.py +0 -417
  142. liquid/builtin/filters/__init__.py +0 -0
  143. liquid/builtin/filters/array.py +0 -329
  144. liquid/builtin/filters/extra.py +0 -83
  145. liquid/builtin/filters/math.py +0 -129
  146. liquid/builtin/filters/misc.py +0 -137
  147. liquid/builtin/filters/string.py +0 -416
  148. liquid/builtin/illegal.py +0 -28
  149. liquid/builtin/loaders/__init__.py +0 -0
  150. liquid/builtin/loaders/caching_file_system_loader.py +0 -61
  151. liquid/builtin/loaders/choice_loader.py +0 -94
  152. liquid/builtin/loaders/dict_loader.py +0 -64
  153. liquid/builtin/loaders/package_loader.py +0 -132
  154. liquid/builtin/output.py +0 -74
  155. liquid/builtin/tags/__init__.py +0 -0
  156. liquid/builtin/tags/assign_tag.py +0 -75
  157. liquid/builtin/tags/capture_tag.py +0 -98
  158. liquid/builtin/tags/case_tag.py +0 -287
  159. liquid/builtin/tags/comment_tag.py +0 -77
  160. liquid/builtin/tags/cycle_tag.py +0 -132
  161. liquid/builtin/tags/decrement_tag.py +0 -59
  162. liquid/builtin/tags/doc_tag.py +0 -68
  163. liquid/builtin/tags/echo_tag.py +0 -45
  164. liquid/builtin/tags/for_tag.py +0 -337
  165. liquid/builtin/tags/if_tag.py +0 -209
  166. liquid/builtin/tags/ifchanged_tag.py +0 -94
  167. liquid/builtin/tags/include_tag.py +0 -251
  168. liquid/builtin/tags/increment_tag.py +0 -60
  169. liquid/builtin/tags/inline_comment_tag.py +0 -47
  170. liquid/builtin/tags/liquid_tag.py +0 -183
  171. liquid/builtin/tags/render_tag.py +0 -371
  172. liquid/builtin/tags/tablerow_tag.py +0 -320
  173. liquid/builtin/tags/unless_tag.py +0 -218
  174. liquid/context.py +0 -615
  175. liquid/expression.py +0 -41
  176. liquid/extra/__init__.py +0 -98
  177. liquid/extra/filters/__init__.py +0 -33
  178. liquid/extra/filters/_json.py +0 -33
  179. liquid/extra/filters/array.py +0 -60
  180. liquid/extra/filters/babel.py +0 -552
  181. liquid/extra/filters/html.py +0 -32
  182. liquid/extra/filters/translate.py +0 -448
  183. liquid/extra/tags/__init__.py +0 -17
  184. liquid/extra/tags/_with.py +0 -80
  185. liquid/extra/tags/extends_tag.py +0 -576
  186. liquid/extra/tags/macro_tag.py +0 -270
  187. liquid/extra/tags/snippet_tag.py +0 -107
  188. liquid/extra/tags/translate_tag.py +0 -388
  189. liquid/filter.py +0 -230
  190. liquid/future/__init__.py +0 -3
  191. liquid/future/environment.py +0 -30
  192. liquid/future/filters/__init__.py +0 -1
  193. liquid/future/tags/__init__.py +0 -1
  194. liquid/lex.py +0 -260
  195. liquid/limits.py +0 -66
  196. liquid/loader.py +0 -141
  197. liquid/messages.py +0 -357
  198. liquid/mode.py +0 -12
  199. liquid/output.py +0 -35
  200. liquid/parser.py +0 -119
  201. liquid/span.py +0 -35
  202. liquid/static_analysis.py +0 -443
  203. liquid/stream.py +0 -148
  204. liquid/stringify.py +0 -31
  205. liquid/tag.py +0 -47
  206. liquid/template.py +0 -658
  207. liquid/token.py +0 -145
  208. liquid/undefined.py +0 -218
  209. liquid/utils/__init__.py +0 -15
  210. liquid/utils/html.py +0 -57
  211. liquid/utils/text.py +0 -28
  212. python_liquid-2.3.6.dist-info/RECORD +0 -96
@@ -0,0 +1,134 @@
1
+ from .abs import abs_
2
+ from .append import append
3
+ from .at_least import at_least
4
+ from .at_most import at_most
5
+ from .babel import Currency, DateTime, Number, Unit
6
+ from .base64 import (
7
+ base64_decode,
8
+ base64_encode,
9
+ base64_url_safe_decode,
10
+ base64_url_safe_encode,
11
+ )
12
+ from .capitalize import capitalize
13
+ from .ceil import ceil
14
+ from .compact import compact
15
+ from .concat import concat
16
+ from .date import date
17
+ from .default import default
18
+ from .divided_by import divided_by
19
+ from .downcase import downcase
20
+ from .escape import escape, escape_once, escapejs, safe
21
+ from .find import find, find_index, has
22
+ from .first import first
23
+ from .floor import floor
24
+ from .html import script_tag, stylesheet_tag
25
+ from .index import index
26
+ from .join import join
27
+ from .json_ import JSON
28
+ from .last import last
29
+ from .map import map_
30
+ from .minus import minus
31
+ from .modulo import modulo
32
+ from .newline_to_br import newline_to_br
33
+ from .plus import plus
34
+ from .prepend import prepend
35
+ from .reject import reject
36
+ from .remove import remove, remove_first, remove_last
37
+ from .replace import replace, replace_first, replace_last
38
+ from .reverse import reverse
39
+ from .round import round_
40
+ from .size import size
41
+ from .slice import slice_
42
+ from .sort import sort, sort_natural, sort_numeric
43
+ from .split import split
44
+ from .squish import squish
45
+ from .strip import lstrip, rstrip, strip
46
+ from .strip_html import strip_html
47
+ from .strip_newlines import strip_newlines
48
+ from .sum import sum_
49
+ from .times import times
50
+ from .translate import GetText, NGetText, NPGetText, PGetText, Translate
51
+ from .truncate import truncate, truncate_words
52
+ from .uniq import uniq
53
+ from .upcase import upcase
54
+ from .url import url_decode, url_encode
55
+ from .where import where
56
+
57
+ __all__ = (
58
+ "JSON",
59
+ "Currency",
60
+ "DateTime",
61
+ "GetText",
62
+ "NGetText",
63
+ "NPGetText",
64
+ "Number",
65
+ "PGetText",
66
+ "Translate",
67
+ "Unit",
68
+ "abs_",
69
+ "append",
70
+ "at_least",
71
+ "at_most",
72
+ "base64_decode",
73
+ "base64_encode",
74
+ "base64_url_safe_decode",
75
+ "base64_url_safe_encode",
76
+ "capitalize",
77
+ "ceil",
78
+ "compact",
79
+ "concat",
80
+ "date",
81
+ "default",
82
+ "divided_by",
83
+ "downcase",
84
+ "escape",
85
+ "escape_once",
86
+ "escapejs",
87
+ "find",
88
+ "find_index",
89
+ "first",
90
+ "floor",
91
+ "has",
92
+ "index",
93
+ "join",
94
+ "last",
95
+ "lstrip",
96
+ "map_",
97
+ "minus",
98
+ "modulo",
99
+ "newline_to_br",
100
+ "plus",
101
+ "prepend",
102
+ "reject",
103
+ "remove",
104
+ "remove_first",
105
+ "remove_last",
106
+ "replace",
107
+ "replace_first",
108
+ "replace_last",
109
+ "reverse",
110
+ "round_",
111
+ "rstrip",
112
+ "safe",
113
+ "script_tag",
114
+ "size",
115
+ "slice_",
116
+ "sort",
117
+ "sort_natural",
118
+ "sort_numeric",
119
+ "split",
120
+ "squish",
121
+ "strip",
122
+ "strip_html",
123
+ "strip_newlines",
124
+ "stylesheet_tag",
125
+ "sum_",
126
+ "times",
127
+ "truncate",
128
+ "truncate_words",
129
+ "uniq",
130
+ "upcase",
131
+ "url_decode",
132
+ "url_encode",
133
+ "where",
134
+ )
liquid/filters/abs.py ADDED
@@ -0,0 +1,7 @@
1
+ from decimal import Decimal
2
+
3
+ from .._filter import FilterContext
4
+
5
+
6
+ def abs_(context: FilterContext, left: object) -> int | float | Decimal:
7
+ return abs(context.to_numeric(left, 0)) # type: ignore
@@ -0,0 +1,5 @@
1
+ from .._filter import FilterContext
2
+
3
+
4
+ def append(context: FilterContext, left: object, right: object) -> str:
5
+ return context.to_str(left, "") + context.to_str(right, "")
@@ -0,0 +1,9 @@
1
+ from decimal import Decimal
2
+
3
+ from .._filter import FilterContext
4
+
5
+
6
+ def at_least(
7
+ context: FilterContext, left: object, right: object
8
+ ) -> int | float | Decimal:
9
+ return max(context.to_numeric(left, 0), context.to_numeric(right, 0))
@@ -0,0 +1,9 @@
1
+ from decimal import Decimal
2
+
3
+ from .._filter import FilterContext
4
+
5
+
6
+ def at_most(
7
+ context: FilterContext, left: object, right: object
8
+ ) -> int | float | Decimal:
9
+ return min(context.to_numeric(left, 0), context.to_numeric(right, 0))