lino 25.4.5__py3-none-any.whl → 25.5.1__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 (41) hide show
  1. lino/__init__.py +1 -1
  2. lino/api/doctest.py +14 -0
  3. lino/core/actions.py +2 -8
  4. lino/core/actors.py +5 -3
  5. lino/core/choicelists.py +8 -11
  6. lino/core/dbtables.py +7 -7
  7. lino/core/elems.py +16 -11
  8. lino/core/fields.py +67 -19
  9. lino/core/kernel.py +6 -0
  10. lino/core/layouts.py +2 -2
  11. lino/core/model.py +15 -12
  12. lino/core/plugin.py +2 -2
  13. lino/core/site.py +11 -13
  14. lino/core/store.py +5 -6
  15. lino/core/tables.py +13 -9
  16. lino/core/utils.py +4 -23
  17. lino/help_texts.py +9 -1
  18. lino/mixins/duplicable.py +9 -3
  19. lino/mixins/ref.py +9 -0
  20. lino/mixins/registrable.py +2 -2
  21. lino/mixins/sequenced.py +12 -8
  22. lino/modlib/extjs/ext_renderer.py +1 -1
  23. lino/modlib/gfks/fields.py +1 -1
  24. lino/modlib/help/models.py +2 -1
  25. lino/modlib/jinja/renderer.py +1 -0
  26. lino/modlib/linod/models.py +1 -1
  27. lino/modlib/notify/fixtures/demo2.py +7 -2
  28. lino/modlib/periods/fixtures/std.py +1 -3
  29. lino/modlib/periods/models.py +26 -5
  30. lino/modlib/publisher/fixtures/synodalworld.py +0 -2
  31. lino/modlib/weasyprint/__init__.py +1 -0
  32. lino/modlib/weasyprint/choicelists.py +2 -11
  33. lino/modlib/weasyprint/config/weasyprint/base.weasy.html +1 -1
  34. lino/utils/__init__.py +20 -0
  35. lino/utils/choosers.py +21 -15
  36. lino/utils/quantities.py +21 -3
  37. {lino-25.4.5.dist-info → lino-25.5.1.dist-info}/METADATA +1 -1
  38. {lino-25.4.5.dist-info → lino-25.5.1.dist-info}/RECORD +41 -41
  39. {lino-25.4.5.dist-info → lino-25.5.1.dist-info}/WHEEL +0 -0
  40. {lino-25.4.5.dist-info → lino-25.5.1.dist-info}/licenses/AUTHORS.rst +0 -0
  41. {lino-25.4.5.dist-info → lino-25.5.1.dist-info}/licenses/COPYING +0 -0
lino/utils/quantities.py CHANGED
@@ -1,10 +1,10 @@
1
1
  # -*- coding: UTF-8 -*-
2
- # Copyright 2012-2021 Rumma & Ko Ltd
2
+ # Copyright 2012-2025 Rumma & Ko Ltd
3
3
  # License: GNU Affero General Public License v3 (see file COPYING for details)
4
4
  """See :doc:`/dev/quantities`."""
5
5
 
6
6
  import datetime
7
- from decimal import Decimal
7
+ from decimal import Decimal, ROUND_HALF_UP, InvalidOperation
8
8
 
9
9
  DEC2HOUR = Decimal(1) / Decimal(60)
10
10
 
@@ -19,13 +19,26 @@ class Quantity(Decimal):
19
19
  # if isinstance(value, str):
20
20
  # value = Decimal(value)
21
21
  self = Decimal.__new__(cls, value, context)
22
+ # try:
23
+ # self = Decimal.__new__(cls, value, context)
24
+ # except InvalidOperation as e:
25
+ # raise Exception(f"Failed to parse {repr(value)}: {e}")
22
26
  self._text = str(value)
23
27
  return self
24
28
 
25
29
  def __str__(self):
26
- # return "{}%".format(self * 100)
27
30
  return self._text
28
31
 
32
+ def limit_length(self, max_length, excl=Exception):
33
+ rv = self
34
+ while len(rv) > max_length:
35
+ if (pos := rv._text.find(".")) == -1:
36
+ raise excl(f"Cannot reduce length of {self} to {max_length}")
37
+ places = len(rv) - pos - 2 # one decimal place less than before
38
+ q = Decimal(10) ** -places
39
+ rv = self.__class__(self.quantize(q, rounding=ROUND_HALF_UP))
40
+ return rv
41
+
29
42
  def __format__(self, format_spec):
30
43
  if format_spec:
31
44
  return format(self._text, format_spec)
@@ -191,6 +204,9 @@ class Duration(Quantity):
191
204
 
192
205
  __rmul__ = __mul__
193
206
 
207
+ # def limit_length(self, max_length):
208
+ # raise Exception("Cannot limit the length of a duration")
209
+
194
210
 
195
211
  def convert_from(value, context=None):
196
212
  if isinstance(value, str):
@@ -220,6 +236,8 @@ def parse(s):
220
236
 
221
237
 
222
238
  def parse_decimal(s):
239
+ if not s:
240
+ return None
223
241
  if "." in s and "," in s:
224
242
  raise ValueError("Invalid decimal value %r" % s)
225
243
  s = s.replace(",", ".")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lino
3
- Version: 25.4.5
3
+ Version: 25.5.1
4
4
  Summary: A framework for writing desktop-like web applications using Django and ExtJS or React
5
5
  Project-URL: Homepage, https://www.lino-framework.org
6
6
  Project-URL: Repository, https://gitlab.com/lino-framework/lino
@@ -1,14 +1,14 @@
1
1
  lino/.cvsignore,sha256=1vrrWoP-WD8hPfCszHHIiJEi8KUMRCt5WvoKB9TSB1k,28
2
2
  lino/SciTEDirectory.properties,sha256=rCYi_e-6h8Yx5DwXhAa6MBPlVINcl6Vv9BQDYZV2_go,28
3
- lino/__init__.py,sha256=BwMhah1-EWVulbl6pSZkJqaPAx15Bc3Lg58OFimYFqI,6176
3
+ lino/__init__.py,sha256=uIdvk33nJCfbsJGNg2B_VrDVh7GSL-ASrQK6Lh7rbLc,6176
4
4
  lino/ad.py,sha256=AQ-vJ4scac1mx3xegXezxnxyOQpV-a0q3VFMJSDbj2s,142
5
5
  lino/apps.py,sha256=ECq-dPARDkuhngwNrcipse3b4Irj70HxJs44uWEZFc4,27
6
6
  lino/hello.py,sha256=7-PJg7PnEiznyETqGjOwXcKh8rda0qLetpbS2gvRYy0,532
7
- lino/help_texts.py,sha256=z4EGZdwOchg1_ksrjA3oWaQUlFRCxF14JpK4e8WHihY,91224
7
+ lino/help_texts.py,sha256=-PiZ-hMm_JKjoD6591y5A4_hyp2NuVFBFoyn_5mWsbU,92266
8
8
  lino/api/__init__.py,sha256=WmzHU-rHdZ68se_nI0SmepQTGE8-cd9tPpovHRH9aag,512
9
9
  lino/api/ad.py,sha256=F6SrcKPRRalHKOZ7QLwsRWGq9hhykQIeo0b85cEk9NQ,314
10
10
  lino/api/dd.py,sha256=-mxiSJS27LGCWyOgboA8qDudTkE9vg9vmUGOT08Hq6A,7410
11
- lino/api/doctest.py,sha256=87j1_xGpomQlEmUUh8CprBFbbqKuQe1OWr5iIXABWag,24028
11
+ lino/api/doctest.py,sha256=--xCSBLFsqyE8OfKhfnbB4CJCDMg8j-Fi--jU4diwo8,24446
12
12
  lino/api/rt.py,sha256=OCYWhrWnMcL988MdvBLBEP8qKQJEGXQhVoam_X0sotU,1376
13
13
  lino/api/selenium.py,sha256=bOu8UaNz3Q7lGVvxjmvrtYtSWn1xfI1f5MN5sVcdYr8,9383
14
14
  lino/api/shell.py,sha256=epyjwEZ396TiJ0AHqhVIvzX8TBIXU8xR4UHJlYOrRhc,536
@@ -28,44 +28,44 @@ lino/config/unused/403.html,sha256=ePwDIUXhz1iD8xXWWyt5xEvpcGIHU4LMnXma8x0ik1c,2
28
28
  lino/config/unused/404.html,sha256=GOJrAyF6NcM69ETdSHgjff_-lvYs_-bOYhyZBem7x3I,220
29
29
  lino/config/unused/500.html,sha256=aWmP37uPoMS-PJgPuBloxdx0nEreU7AvkXxsex3yVYs,544
30
30
  lino/core/__init__.py,sha256=T7106QxQpa3jXAouGTIer6AXEwpkJ0NAQ9B7Q3-K6qE,686
31
- lino/core/actions.py,sha256=S3vtuXmn3VxqcL_P5BmmZnaqucwIbdLm0zVX5QKoIxU,46740
32
- lino/core/actors.py,sha256=5kIPlEf2fTXneCHkOmhR7Jo-0xdggowPPseypJfH-tA,74929
31
+ lino/core/actions.py,sha256=GIBiuu6bIMl2g0Y9-LWLhvTe2qHOcRGfHjBvl0vyrzU,46542
32
+ lino/core/actors.py,sha256=_Cl25nw65NK7me-wIHTJRh6iqcb6m12nUbvvQrLcjDk,74992
33
33
  lino/core/boundaction.py,sha256=sPRoBNjKApMUSBASu86aVVFhs7egNd6kYyLOBwGBDSs,7048
34
34
  lino/core/callbacks.py,sha256=uu1-znzxVDD-JETUebw-hYsNg_9ExQb1vfwbc7Psjro,7549
35
- lino/core/choicelists.py,sha256=RkgDhPjjC5lS0Zew1F5yNL2y3wYTIJOmqYEAnz5prxA,36530
35
+ lino/core/choicelists.py,sha256=5b_FpURG1ZNwEGfuvCd9FtI3agCHJnhj31ZxaXcur3A,36504
36
36
  lino/core/classproperty.py,sha256=_E95WPAs7BWbAuFpPvoYM2ZwW_mbq3rvF7o43WsMq_8,4316
37
37
  lino/core/constants.py,sha256=chvG1TrwD2gVMmL4nTOZtO8NcffcclcUv3zBE8mMoiQ,4503
38
38
  lino/core/dashboard.py,sha256=1ASWZ9I1LQBUJZ0JKiwW_g_1Pix3jb4SWUFC2cUM23g,6537
39
- lino/core/dbtables.py,sha256=bV1hcr9MXCT3doauxcOrnTZeBmHtb1tAQrLlnfvQj_o,29113
39
+ lino/core/dbtables.py,sha256=6vTjLtwYXtFMSe_-G-5OVcb7kOcRrYFh3nyjJUHdpVw,29127
40
40
  lino/core/dbutils.py,sha256=_QHcWd-ajLUwt5G8uOp8d47lZQKD3VseHnqKJke18rA,263
41
41
  lino/core/ddh.py,sha256=dYScxWKTOCDEgow7wJNJe812ESasmmITPK2ovraBQno,3172
42
42
  lino/core/diff.py,sha256=XQ-oQQDS_v3kXd4eRP9Hwr5UCgp-TPZIPVav9ZblUno,5882
43
- lino/core/elems.py,sha256=3PZ-0RDr6c8QoZa9sWKV36w-wn1Oj2xFpjW8eHrEpzs,108811
43
+ lino/core/elems.py,sha256=LeNPC8SBFobRbwy6LhmfkDcZhSbvcnsC3oVNprhak2Q,109013
44
44
  lino/core/exceptions.py,sha256=QDxDo5cllSyXQ8VWet9hGXzNadxCOmwMVrFXc6V-vpE,665
45
- lino/core/fields.py,sha256=zPP90oYxodCyF4DzE62008fUzH75C5RimOtoaWbfRz4,58231
45
+ lino/core/fields.py,sha256=rgpuK51TTJHeIq0KE97F6FAWRCYx-nLFTerQTXKquQ4,60130
46
46
  lino/core/frames.py,sha256=ISxgq9zyZfqW3tDZMWdKi9Ij455lT_81qBH0xex0bfE,1161
47
47
  lino/core/gfks.py,sha256=6VXn2FSIXOrwVq0stfbPevT37EWg1tg4Fn-HMNVnbmk,1970
48
48
  lino/core/help.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
49
  lino/core/inject.py,sha256=Qd_PGEn0yMXNYVPI0wCv1vvo2CNdlPkyoBmKZELOtGM,13422
50
- lino/core/kernel.py,sha256=kKgKmgUZqh7rFqpKjuM_T6pUvaw7K_vl3PEfRqvrg8Q,47794
50
+ lino/core/kernel.py,sha256=jJ2bZw77kFX_CVI0M0rdoj0bsTK2GIwnSn2RTt7-Tec,48025
51
51
  lino/core/keyboard.py,sha256=W3jA6qtB5HMppoNnd_6PgIM7ZlyHilJEhBvdeZTY7Xk,1283
52
- lino/core/layouts.py,sha256=Wojx5UUyhy7PsZE8FWmiXcmZDj4wz2y_1_wlz1G560Q,28663
52
+ lino/core/layouts.py,sha256=VT0xcDB7JKSsNm2UOybAwJw3zOie57sRagRYlyA7nkg,28697
53
53
  lino/core/menus.py,sha256=W0Co9K-ayvfX5Zt5rgSxJrFRejtiYrwIR5EecdYXPNc,10857
54
54
  lino/core/merge.py,sha256=sKtTeZtHdoDKerdHj4NXuXXNzpKDsfdPaiq-CY0NqQc,9094
55
- lino/core/model.py,sha256=YENZ-v1sggtdTitgmC8jBmuihN1EsKXQMlbPAuTSat8,36870
55
+ lino/core/model.py,sha256=XSYjml_8WPjUU_LgGIH1qmPIwlIlQ0cjNFdN5A_ULko,36920
56
56
  lino/core/permissions.py,sha256=Fnemz3NwWz21X0YATI9Q7ba2FcAdg-EMLHjIcbt_AVU,6840
57
- lino/core/plugin.py,sha256=8FdxFF5tqHK-N8aXANzpWXY97hj6Lty4ulM6PWcq5A8,6833
57
+ lino/core/plugin.py,sha256=n_f5dSy4vqamnyzpNnaNcTlUp2EAgaAVxIJ5EHG7aHc,6837
58
58
  lino/core/renderer.py,sha256=C00J0L41hLv9b2sAzqSSrT0Lz5Fc78JnwHiq9LqF81c,47310
59
59
  lino/core/requests.py,sha256=aIT8DsWVWwYQWHf7xX7SbbUf0s_8dWfayR3104VDrnQ,95833
60
60
  lino/core/roles.py,sha256=PXwk436xUupxdbJcygRSYFu7ixfKjAJPQRUQ8sy0lB0,4425
61
61
  lino/core/signals.py,sha256=0JT89mkjSbRm57QZcSI9DoThoKUGkyi-egNhuLUKEds,948
62
- lino/core/site.py,sha256=WqL_QrimT85POO7wKp3R4s8O4P_tvOOxg6WDO968vOQ,82796
63
- lino/core/store.py,sha256=6pd4J5Y-U7Muz4mKFSL6K9KEZpJUbpM-I7RQTWyCo-8,51483
64
- lino/core/tables.py,sha256=Yoj-H2ASW9xIger8kuW8xst5A_tEmtWpV17L11Ebca0,24348
62
+ lino/core/site.py,sha256=8qV5nEPuUaA7ViEcFOeOGPpzILrmWKOFS9MGPjqFcAs,82713
63
+ lino/core/store.py,sha256=ibshCPBKd0zNSoAfMYx1MaqHXggE-O4zqiSUSlY-x68,51444
64
+ lino/core/tables.py,sha256=3IxOHtnN_5fkkLp5-TCBM_Z61aBGzynwIhvAEY71UcM,24476
65
65
  lino/core/urls.py,sha256=06QlmN1vpxjmb5snO3SPpP6lX1pMdE60bTiBiC77_vQ,2677
66
66
  lino/core/user_types.py,sha256=0iSYmzr2M9v2Mn2y6hzAZeqareUT-gD7l3MfIPyG9ZI,867
67
67
  lino/core/userprefs.py,sha256=cmufIS9xJErKDrw05uoWtQTUR6WRWIGkU1KdAqzNr5M,2850
68
- lino/core/utils.py,sha256=6yFnP9BFOW5O4oABdv0ASAeJf6oYQ7BZioEqtBBTVzk,36618
68
+ lino/core/utils.py,sha256=iYP4_AJVOVcLSj2GdPqQ9WEScze_-SFx0rPEpmSCcU8,36065
69
69
  lino/core/views.py,sha256=qLjEN6GSXScbmAnKN7yDHySmsjL0h4sMKRIQCpOEdPU,7026
70
70
  lino/core/widgets.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
71
  lino/core/workflows.py,sha256=9O5INnx3nPW73UmeEPWgN146clQSWwna3Jq_w1MThcg,10567
@@ -117,14 +117,14 @@ lino/management/commands/syncscreenshots.py,sha256=XYZhqfm5_RwJzVFNGhHJKucl4j6T6
117
117
  lino/management/commands/update_conf.py,sha256=saAaQdPhn3mNOoHcBxOFSf_vBEgM-aopTHq1sJN20Bo,1026
118
118
  lino/mixins/__init__.py,sha256=7_gW-TzHryL9hvcOx90Op-uBGvivtEj4e6bfNp6j_OE,8854
119
119
  lino/mixins/dupable.py,sha256=9DNZ9xsgSFsxchqzlo86jQVecXABuDeEZ62tamj-X9A,10235
120
- lino/mixins/duplicable.py,sha256=a5-1jZZWX-kgKg5GNhV6yaSGOgfTyd2lWHtY35bVmes,4247
120
+ lino/mixins/duplicable.py,sha256=kraLul9nZb2oWi_MyTdwoSU2IQnHgTb_snLaMmGqgyQ,4436
121
121
  lino/mixins/human.py,sha256=YDIfIHHAaVmzd3uGsJp_vDvkaBWOp09I7i4AGNy9YsQ,13255
122
122
  lino/mixins/periods.py,sha256=iFqUCUZlgUW2GmEHRl9suwJedztrXLluQhgFpu7Uj54,11479
123
123
  lino/mixins/polymorphic.py,sha256=MLbfOeIYRoDZO4048X2oWhG5cxds2pLkwciXcw1xjVQ,9393
124
124
  lino/mixins/printable.py,sha256=4U8M1lrTjUeuaPwrcWoanCBo53iAxiNpSTsVctI-gI0,199
125
- lino/mixins/ref.py,sha256=ZnyTcpHgcbYwDwgaBwLc5cGLQqz8MmjAypSEgPB7Ql4,5272
126
- lino/mixins/registrable.py,sha256=EqszzywB9LN37zl7NRBHZxsHzFRoBQb-f9HBkSHo0vw,7206
127
- lino/mixins/sequenced.py,sha256=6FiHJX2ZIraqUofdnb082b978PISNbpd2Vr87YA_1pg,16460
125
+ lino/mixins/ref.py,sha256=qV8CprGCvwzzWTl6LQc9I1RwD8pziD0F7Ykoaznm8wM,5550
126
+ lino/mixins/registrable.py,sha256=37usXcHtz_F8rJtZ0fCS4_KZFQ87fSDXO-GPYEZ_IzY,7210
127
+ lino/mixins/sequenced.py,sha256=GRw8KmCQyEfrXvkDf-moND_tHKcsFLhzLzQ6_s94tHM,16605
128
128
  lino/modlib/__init__.py,sha256=cO31gNu2oRkp7o2v3D9gK2H7j4jF9rbVyPxPZhZQwrQ,940
129
129
  lino/modlib/about/__init__.py,sha256=jhqGQIXU1o7KkmmQjfwPKJc3buibB09Fy55carAmi7U,342
130
130
  lino/modlib/about/choicelists.py,sha256=2bxDb2u7cFacBOgLoEWrMmzQ4BJ3x1pmhdgqxzUp-Rw,1424
@@ -187,7 +187,7 @@ lino/modlib/dupable/models.py,sha256=0watviKwTiVwlArC54V3IxVVfcB1Yg5kO6ed2xCM9a0
187
187
  lino/modlib/export_excel/__init__.py,sha256=HrsrhXjIMvMHRGu8whH3A_WijZWrH35p2cQsFXK60DY,356
188
188
  lino/modlib/export_excel/models.py,sha256=A-lFS-xFDSPHcVbY0OI7VsuGr82jJyLDhXH2Dcv80Os,5039
189
189
  lino/modlib/extjs/__init__.py,sha256=6UBWAWSROwy3DfTXQmVUVJTF6eZ_e2k3BEfE4wtqVhU,10172
190
- lino/modlib/extjs/ext_renderer.py,sha256=KkzvGe7pyOB-_tMiiifqeDI2KuKZd-nGNic9XbV3uu0,60616
190
+ lino/modlib/extjs/ext_renderer.py,sha256=1qEQ32fNDz6cXWgKTUc2qpfAjwrLjSRcWYk94A2odAo,60632
191
191
  lino/modlib/extjs/views.py,sha256=CrX_tPshJtSkHT7raDDqn4B_XYamujRs-CgLzY4CBxg,26299
192
192
  lino/modlib/extjs/config/extjs/index.html,sha256=jO5hdNpFSkm9t0xhHD5hc8Hw1fSr6xb3zYq9aMyOI7Q,8603
193
193
  lino/modlib/extjs/config/extjs/linoweb.js,sha256=I4VYGmkK4htqZvHM9g-6psJF3pp7SvgHEI0I02Sxpvo,175127
@@ -3490,11 +3490,11 @@ lino/modlib/forms/models.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3490
3490
  lino/modlib/forms/renderer.py,sha256=KLMAyDPLpWlRCzzQ4F4aS2bs5birR_JaFQu6lQX-ZNk,2406
3491
3491
  lino/modlib/forms/views.py,sha256=L8U8LKFB1bP1q2NiAcRkZvynT_uw7yb93HIwA3TaXTs,10313
3492
3492
  lino/modlib/gfks/__init__.py,sha256=2f34DqbWXWUxE_y_0LqLfkpoyZ-cqQucg4xZkI2H3VY,1247
3493
- lino/modlib/gfks/fields.py,sha256=43yIsudT07bXuKD1Gsqvn15_F3UaeZQqZzuzK9dDdLc,3239
3493
+ lino/modlib/gfks/fields.py,sha256=csvdt8U1GbyJ9iM6gbCWq5gFanbLJipM5Kw80wwp-Kw,3251
3494
3494
  lino/modlib/gfks/mixins.py,sha256=BcITVETBR7zVj684diZGCii3rzm7lgrgzr2euy-D-iw,2626
3495
3495
  lino/modlib/gfks/models.py,sha256=bDbuvtpSW-wxNWLC3pKWsDQPyN4g6MFMTS-66aQ2DX8,6723
3496
3496
  lino/modlib/help/__init__.py,sha256=PlThatoYB6lThNahWkVL2ZatimW0d_9LAPTZIE7hiuE,4434
3497
- lino/modlib/help/models.py,sha256=Ik-fkUH8KHiPajar-SYCbuaQGfIbbgfI6-9rMkr1Np8,3497
3497
+ lino/modlib/help/models.py,sha256=StmQhBV9zqmT3eT1N0xTkgOG22ghYwjj4P56CuOxos0,3502
3498
3498
  lino/modlib/help/utils.py,sha256=dWmz0huCw7N4ENIsCUoGiXyn3AbkE96jVR4YwyzPjjo,3944
3499
3499
  lino/modlib/help/config/makehelp/actor.tpl.rst,sha256=Yl-ZAWvI93cVFLd7GG-qpn_vkGFvKe3iR0eWBJpHgMc,346
3500
3500
  lino/modlib/help/config/makehelp/actors.tpl.rst,sha256=wXMKYQnlhLi432QggVgRUWGuHRDiSX9NyXSdnSar7Io,249
@@ -3519,7 +3519,7 @@ lino/modlib/jinja/choicelists.py,sha256=QHjWQWLnJCKSGnLIKeGqnCw41JYvcbTkCeXjBpWh
3519
3519
  lino/modlib/jinja/loader.py,sha256=MX027X_UuQPqq0wOUr06QnOkdTzGpksNv0Om1CGp61I,1765
3520
3520
  lino/modlib/jinja/mixins.py,sha256=YqvNt1JB7as6IohBoyP8DqHldxmg9yOfrN27V5cn7Ho,2913
3521
3521
  lino/modlib/jinja/models.py,sha256=vXNFS78qP-qIzeSmnXJNOpvW_IfH1h6hhPgYjfkvvD0,207
3522
- lino/modlib/jinja/renderer.py,sha256=PtjhJdidlOOGzRdyUQlaEIj2FhFFuthFB80-bkSfsoM,6156
3522
+ lino/modlib/jinja/renderer.py,sha256=M7qrPwf_n730YoGXNQAnaJSBvD2lw-hez2_1YPIqSHo,6198
3523
3523
  lino/modlib/jinja/config/jinja/status.jinja.rst,sha256=XEsfXd82B0fLsBfds5-pXdeDWVr4ccTv7WyGa9ayigk,312
3524
3524
  lino/modlib/jinja/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3525
3525
  lino/modlib/jinja/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -3535,7 +3535,7 @@ lino/modlib/linod/__init__.py,sha256=efmj_Kz3OO2zF1lvs7P459iufYGimH1-6Ge6Cbq85tQ
3535
3535
  lino/modlib/linod/choicelists.py,sha256=Cu82s1QpcGFmKUXJsg-7TSqpaESBCZKOEfxzFlJP06I,2626
3536
3536
  lino/modlib/linod/consumers.py,sha256=XBjA1fflJ-e9yWRMKXyQAhrOklYzs5JRhEeGMOKWFqM,6730
3537
3537
  lino/modlib/linod/mixins.py,sha256=Dff7rX5Ih0uJul0jID6tdY5CIZa6z6iq9feXIjNohkQ,11691
3538
- lino/modlib/linod/models.py,sha256=yqGytDq7KxkHBCZpwF-7GQdR3nGh6-rBB-gLkvqoouQ,2361
3538
+ lino/modlib/linod/models.py,sha256=Jj9N84793qsx5QmBrJ8LV2hiuqnaAKwQuAGiMF-t104,2372
3539
3539
  lino/modlib/linod/routing.py,sha256=3pYJT6FbaVMj6rKkDVv3E5VTFFc9nglIDeo6dgAKu8Q,2399
3540
3540
  lino/modlib/linod/utils.py,sha256=dE973Xib6Be1DvNsZ0M5wzY_jpkk35R21WKs-jQPorM,339
3541
3541
  lino/modlib/linod/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -3560,7 +3560,7 @@ lino/modlib/notify/views.py,sha256=Ar2L_Tv1qqU5giHu2b0h_AKc3utvgfZwda4qncqoBsk,9
3560
3560
  lino/modlib/notify/config/notify/individual.eml,sha256=Ct8fLx7dz_adE_ua8S87dYFSNESCHRbRGx9Ven1MlLI,307
3561
3561
  lino/modlib/notify/config/notify/summary.eml,sha256=odd3Obaf76H5w7lrbwHqY3D4v3DHoMhhnc59EvzbQrk,551
3562
3562
  lino/modlib/notify/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3563
- lino/modlib/notify/fixtures/demo2.py,sha256=KegKuqfkV5KJPRmIshVWo1KHoGBQ7rZoxe23opM_hIA,1124
3563
+ lino/modlib/notify/fixtures/demo2.py,sha256=X_KfsRM5FaOhkcFUpFoHiVx6lvG-UDjju3k14mnZyMk,1298
3564
3564
  lino/modlib/notify/static/img/lino-logo.png,sha256=FvZYWjJ6rV1FJldgoTjulg2aZqwX2iqYdu9GWV-1hYQ,4031
3565
3565
  lino/modlib/notify/static/js/push.js/CONTRIBUTING.md,sha256=4n-jT_-gVthlPrbVQZoIeIcoFydE2Rfg09ECaTmcARs,1755
3566
3566
  lino/modlib/notify/static/js/push.js/LICENSE.md,sha256=zesGXKL-AuD7mNjpuNQ554PdBbjptae-jSZtPhomY80,1084
@@ -3577,8 +3577,8 @@ lino/modlib/office/roles.py,sha256=oQWTZ-_9_vssc9QW5A0YspMjG_V5gCiHSU0eE0AIH30,3
3577
3577
  lino/modlib/periods/__init__.py,sha256=MFTI4YTYw3zTxYVlD568rBxn02e_J9Yn10uZ6U5W-uQ,1069
3578
3578
  lino/modlib/periods/choicelists.py,sha256=_t_l40FlXYAyRnlOZzh4DR5wMCM1nIWiIfS7QKbXkmw,1304
3579
3579
  lino/modlib/periods/mixins.py,sha256=QQXtu1Z6HjqDlL_xMM98FR7PQGKhYgjslhusOiWwPDA,4271
3580
- lino/modlib/periods/models.py,sha256=hu1myxDqrBMIiORNYWBpAIDz-WjDe3LmF2JhrvG6DeI,8444
3581
- lino/modlib/periods/fixtures/std.py,sha256=iV6a2DNAhfYvO1VspGkcncEmygHK94zWdDZlHUY8JSw,881
3580
+ lino/modlib/periods/models.py,sha256=ICjFPH1To5UwH8Bd_EWm2A5q-R_q0OGvilGKZzLr6uY,9107
3581
+ lino/modlib/periods/fixtures/std.py,sha256=aWzt-frGjzPDwQ2pCKU1nT3oE4xzm7AQ8uLTJqSnS54,741
3582
3582
  lino/modlib/printing/__init__.py,sha256=u1fq44d073-IDH_t8hWs1sQdlAHdsCP85sfEOMSW5L4,689
3583
3583
  lino/modlib/printing/actions.py,sha256=2-JORKcjJYuzK2kYmhqZl0gRR-4CrG7ul8mcFNfYYAI,11766
3584
3584
  lino/modlib/printing/choicelists.py,sha256=DM929pej7NUi1gm38nUr0t3-VANV95eqCLeW5ubh8y8,9712
@@ -3602,7 +3602,7 @@ lino/modlib/publisher/config/publisher/page.pub.html,sha256=kjUTHInDLu25QiOyZDpx
3602
3602
  lino/modlib/publisher/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3603
3603
  lino/modlib/publisher/fixtures/demo2.py,sha256=KrF672tNLlhMX6EkxKDfcvvE9pGH4k9NgF7Rk5DkiLg,366
3604
3604
  lino/modlib/publisher/fixtures/std.py,sha256=7xpMOr4kd-4SX8uhwxagktUlcXAr6fdZfD-H519CR6g,987
3605
- lino/modlib/publisher/fixtures/synodalworld.py,sha256=7OPQXVq2Ou8fcRlNli0UFXoGhGPtC6AVXnGoCqn5oKc,767
3605
+ lino/modlib/publisher/fixtures/synodalworld.py,sha256=FFUPYrl-hgF9rEWU56OCEyhmrwtNzIsdYsfQOXJXcmA,732
3606
3606
  lino/modlib/restful/__init__.py,sha256=9CqWTQkJ2KpLW5MI1bKqKZU_7nXxodxl7HSgc8Agwmw,1506
3607
3607
  lino/modlib/restful/fields.py,sha256=8dik0q2LaCtJhQX1lu-fe-y_38xdhAWy1ZX3EKmJWfs,567
3608
3608
  lino/modlib/restful/serializers.py,sha256=AVyA19UkRUJ9AjlUN0fJyrj1LgfOyp-a2ANcVkecWtA,1143
@@ -4422,10 +4422,10 @@ lino/modlib/users/fixtures/demo.py,sha256=YHPhvjqAh-V9WHgFct2GQlQATZmS-W3Nry-X6m
4422
4422
  lino/modlib/users/fixtures/demo2.py,sha256=j2ke91wvpHs3kHpeztzV3nOG4rJvavkHv2YJo0dISdI,495
4423
4423
  lino/modlib/users/fixtures/demo_users.py,sha256=FJz5gW95PbgxrPD8BMSVnpA8SJJSPWtjyi3LMdytd5o,1805
4424
4424
  lino/modlib/users/fixtures/std.py,sha256=Eo_TdqFC7NPryLeGRfp-nbOXw3hDqxTUpddFTxUuZ74,712
4425
- lino/modlib/weasyprint/__init__.py,sha256=81eULMBEUKB_2eKtWloEEh7ijOiSoxEgGigK6LJFrGo,2253
4426
- lino/modlib/weasyprint/choicelists.py,sha256=SaqDFfJLx9IFjhtOUtnBGZNpihUAzLvj0W49YHCZt0I,1396
4425
+ lino/modlib/weasyprint/__init__.py,sha256=i0xDsTTIAHGtoStybEv_YNCFJmxGeCy-e5qAyDWWygg,2285
4426
+ lino/modlib/weasyprint/choicelists.py,sha256=A3zXUGoiU06DuC8PIM2zS3lnKQk_pahsfXPRAQfMLog,1266
4427
4427
  lino/modlib/weasyprint/models.py,sha256=op6CRRBC8NatqGgGdQHU4zcVG4fu4mRS9Mz8STG3B3g,168
4428
- lino/modlib/weasyprint/config/weasyprint/base.weasy.html,sha256=SSDxOOKj_0o5JmUUDEoXHDb_eC5tT0dyjRa9l4ta3-o,4609
4428
+ lino/modlib/weasyprint/config/weasyprint/base.weasy.html,sha256=zs2QpK7DX-uGBYs30eJAFlPyyI2UySyt_Ee17twNcgY,4617
4429
4429
  lino/modlib/wkhtmltopdf/__init__.py,sha256=1nqwVpOQH4YMhegnzrcfvXW_Xy9CIdHBHzrNvDGyVxg,773
4430
4430
  lino/modlib/wkhtmltopdf/choicelists.py,sha256=Mq7LySs-HJIXnyUHN5PR55nQyg2cgPjEQuN9JUhBmUY,1818
4431
4431
  lino/modlib/wkhtmltopdf/models.py,sha256=T7lHSSQKNcUWceNnNzq_bKEguXQ1THK5qyCDgeV6xfM,294
@@ -4579,10 +4579,10 @@ lino/templates_old/404.html,sha256=9O5EJgULwLws0X1LjNig3xT4l9Hw04MBIGswD-EAlnw,2
4579
4579
  lino/templates_old/500.html,sha256=inOR744w4FGJM_fCSQcnlk-OIYQpaBTxUQWgXQozon4,496
4580
4580
  lino/templates_old/base.html,sha256=qYqj5-u1UPtpatrFkqBr3MnwS0oFUXCyQRcuNZczDfk,1641
4581
4581
  lino/templates_old/base_site.html,sha256=NcLEk0kBT1b-SrhoGpDPUej7NExqJ9-dP1kbrvwBzrs,255
4582
- lino/utils/__init__.py,sha256=6zmXTodRdV_hmdCcWsn_vBJUFlMZupc8O55vAOvWS9w,16838
4582
+ lino/utils/__init__.py,sha256=28o4xeRyrgkRVsUoAd0C3RJhhpIUSMNRU_-d44PulXs,17249
4583
4583
  lino/utils/addressable.py,sha256=o7bmLbyvrmOoAT478s7XqjWKvnZ7zSXj4k7Xf0ccqf8,2213
4584
4584
  lino/utils/ajax.py,sha256=npCS0WumhTQlBzXxQPKnp2sYCRcPsYcbFqzE2ykVc4Q,3254
4585
- lino/utils/choosers.py,sha256=9jjeLz-QcWVBfR8_GdY4PNYoqIYM63OI3OvOL2l1ZaU,17604
4585
+ lino/utils/choosers.py,sha256=8-D4ccUqxveu5r7lHJdunywEkwMT7E5tYsPKPk6Neto,17994
4586
4586
  lino/utils/code.py,sha256=-2vc8npHQ5jsrRqzxmjRZZ8FWY7QJ7-sRg7-ZhOsUEU,7053
4587
4587
  lino/utils/config.py,sha256=gtaJURPOwHyV_AW7i7_vin3KTj3UwZa4iviDbldwXGE,8568
4588
4588
  lino/utils/cycler.py,sha256=2LGMhMJX5At5ln4yZvmNleWROs-CA_YE_UCzxzvxK4U,1548
@@ -4614,7 +4614,7 @@ lino/utils/odsreader_sample.ods,sha256=mb4Zd2RPL4pynnS6XidGXctdbXzTO1laS9ebYpgbc
4614
4614
  lino/utils/pdf.py,sha256=caISmnrrADN1MTK_GIiasfkVUyqhTEuK9mtoMf_S7qU,688
4615
4615
  lino/utils/pythontest.py,sha256=AA9i3CEWgpbJKNTkxc0Gz94sy1R1MBpyinqrlahKKno,4954
4616
4616
  lino/utils/pyuca.py,sha256=YSLpCYEMqKUhx1y0q-ML8Ryu2ARDFO2HyIFxz1DzYEY,4344
4617
- lino/utils/quantities.py,sha256=m_oi647uCTf2NhhQo6ytphZa2jQq1QXIUcts-cLkEJM,7367
4617
+ lino/utils/quantities.py,sha256=s9Q3AMLccI8h_sjR-NojLcT4VTcOCIT56MmJuFjrcoE,8131
4618
4618
  lino/utils/ranges.py,sha256=wVsZMe3dlaRYWWELXCGSK2DvjBfW4eLbAwpQVYqzj3g,3303
4619
4619
  lino/utils/report.py,sha256=i2-NyNud-coFlwIlHGgmIcvMgMhlNdmr3wXCO0prGf4,8013
4620
4620
  lino/utils/restify.py,sha256=AbVCBjM9V9rYuFweV1gVo9ObO8lblJbA-mKjaPsebRE,14068
@@ -4635,8 +4635,8 @@ lino/utils/xml.py,sha256=EGDnO1UaREst9fS7KTESdbHnrrVCwKbRQdvut6B6GmQ,1612
4635
4635
  lino/utils/mldbc/__init__.py,sha256=QqWRlzeXaOmFfbCk-vTY3SZMn1-FCf67XnpZdd_Nim0,1134
4636
4636
  lino/utils/mldbc/fields.py,sha256=tAX8G5UKigr9c6g0F3ARIjZZtg406mdaZ--PWSbiH9E,2873
4637
4637
  lino/utils/mldbc/mixins.py,sha256=CkYe5jDa7xp9fJq_V8zcZf8ocxgIjUgHc9KZccvA_Yw,1945
4638
- lino-25.4.5.dist-info/METADATA,sha256=iRK3Rzw51gGXTd8xkApmMmpq6BLWOZZC3WV-3NFQLTw,42534
4639
- lino-25.4.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
4640
- lino-25.4.5.dist-info/licenses/AUTHORS.rst,sha256=8VEm_G4HOmYEa4oi1nVoKKsdo4JanekEJCefWd2E8vk,981
4641
- lino-25.4.5.dist-info/licenses/COPYING,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
4642
- lino-25.4.5.dist-info/RECORD,,
4638
+ lino-25.5.1.dist-info/METADATA,sha256=zZMb_Y5CgBuAGaAwtzKtOzuEE1Fp2o8KrE-VAZoKD78,42534
4639
+ lino-25.5.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
4640
+ lino-25.5.1.dist-info/licenses/AUTHORS.rst,sha256=8VEm_G4HOmYEa4oi1nVoKKsdo4JanekEJCefWd2E8vk,981
4641
+ lino-25.5.1.dist-info/licenses/COPYING,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
4642
+ lino-25.5.1.dist-info/RECORD,,
File without changes