lino 25.5.3__py3-none-any.whl → 25.6.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.
lino/__init__.py CHANGED
@@ -31,7 +31,7 @@ from django import VERSION
31
31
  from django.apps import AppConfig
32
32
  from django.conf import settings
33
33
  import warnings
34
- __version__ = '25.5.3'
34
+ __version__ = '25.6.1'
35
35
 
36
36
  # import setuptools # avoid UserWarning "Distutils was imported before Setuptools"?
37
37
 
lino/core/actions.py CHANGED
@@ -246,6 +246,8 @@ class Action(Parametrizable, Permittable):
246
246
  fields.setup_params_choosers(self)
247
247
 
248
248
  def attach_to_actor(self, owner, name):
249
+ if not owner.editable and not self.readonly:
250
+ return False
249
251
  # if not actor.editable and not self.readonly:
250
252
  # return False
251
253
  if self.defining_actor is not None:
lino/core/actors.py CHANGED
@@ -1981,9 +1981,9 @@ class Actor(Parametrizable, Permittable, metaclass=ActorMetaClass):
1981
1981
  for i, obj in enumerate(sar.data_iterator):
1982
1982
  if i == cls.preview_limit:
1983
1983
  break
1984
- s = obj.as_story_item(sar)
1984
+ s = obj.as_tile(sar)
1985
1985
  # assert_safe(s) # temporary 20240506
1986
- html += s
1986
+ html += format_html(constants.TILE_TEMPLATE, chunk=s)
1987
1987
  return html
1988
1988
 
1989
1989
  @classmethod
lino/core/constants.py CHANGED
@@ -204,3 +204,23 @@ def parse_boolean(v):
204
204
  if v in ("false", "off", False):
205
205
  return False
206
206
  raise Exception("Invalid boolean value %r" % v)
207
+
208
+
209
+ # TILE_TEMPLATE = """
210
+ # <div style="margin: 20px;" class="p-card md:w-25rem"><div class="p-card-content">
211
+ # {chunk}
212
+ # </div></div>
213
+ # """
214
+ #
215
+ # TILE_TEMPLATE = """
216
+ # <div style="position: relative; width: fit-content; display: inline-block;
217
+ # background-color:cornsilk; margin:1rem; padding: 1rem; width: 20rem; max-height: 35rem;">
218
+ # {chunk}
219
+ # </div>
220
+ # """
221
+
222
+ TILE_TEMPLATE = """
223
+ <div class="l-tile">
224
+ {chunk}
225
+ </div>
226
+ """
lino/core/fields.py CHANGED
@@ -1433,6 +1433,11 @@ class TableRow(object):
1433
1433
  return escape(str(self))
1434
1434
  return self.as_paragraph(ar)
1435
1435
 
1436
+ @displayfield(_("Select multiple rows"))
1437
+ def rowselect(self, ar):
1438
+ """A place holder for primereact Datatable column "Selection Column\""""
1439
+ return None
1440
+
1436
1441
  def get_overview_elems(self, ar):
1437
1442
  # return [ar.obj2html(self)]
1438
1443
  return [self.as_summary_item(ar)]
lino/core/renderer.py CHANGED
@@ -1028,6 +1028,16 @@ class JsRenderer(HtmlRenderer):
1028
1028
  """
1029
1029
  return "Lino.viewport.refresh();"
1030
1030
 
1031
+ def check_visibility(self, ar):
1032
+ for obj in ar.selected_rows:
1033
+ try:
1034
+ ar.get_row_by_pk(obj.pk)
1035
+ return
1036
+ except obj.__class__.DoesNotExist:
1037
+ ar.set_response(
1038
+ record_deleted=True,
1039
+ message=_("Row {} is longer visible").format(obj))
1040
+
1031
1041
  def goto_instance(self, ar, obj, detail_action=None, **kw):
1032
1042
  """Instruct the client to display a detail window on the given
1033
1043
  record.
lino/core/requests.py CHANGED
@@ -512,7 +512,7 @@ class BaseRequest:
512
512
  pk=master_type).model_class()
513
513
  except ContentType.DoesNotExist:
514
514
  raise exceptions.BadRequest(
515
- "Invalid master_type {}".format(master_type)) from None
515
+ f"Invalid master_type {master_type}") from None
516
516
  self.master = master
517
517
 
518
518
  if self.master is not None and self.master_instance is None:
@@ -1156,6 +1156,9 @@ class BaseRequest:
1156
1156
  def ar2js(self, *args, **kwargs):
1157
1157
  return self.renderer.ar2js(self, *args, **kwargs)
1158
1158
 
1159
+ def check_visibility(self, *args, **kwargs):
1160
+ return self.renderer.check_visibility(self, *args, **kwargs)
1161
+
1159
1162
  def goto_pk(self, pk, text, **kwargs):
1160
1163
  """Return a HTML link that navigates to the record with the specified primary key.
1161
1164
 
@@ -1578,6 +1581,8 @@ class BaseRequest:
1578
1581
  :class:`InstanceAction <lino.core.requests.InstanceAction>`
1579
1582
  ``ia`` on the client.
1580
1583
 
1584
+ Maybe deprecated. Use :meth:`row_action_button` instead.
1585
+
1581
1586
  """
1582
1587
  # logger.info("20200417 %s", ia)
1583
1588
  return self.renderer.row_action_button(
@@ -433,7 +433,7 @@ class ApiElement(View):
433
433
  ar.renderer = settings.SITE.kernel.default_renderer
434
434
 
435
435
  if not ar.get_permission():
436
- msg = f"No permission to run {ar}"
436
+ msg = f"{ar.get_user()} has no permission to run {ar}"
437
437
  # raise Exception(msg)
438
438
  raise PermissionDenied(msg)
439
439
 
@@ -7,10 +7,12 @@ See also :mod:`{{plugin.app_name}}`.
7
7
  Models
8
8
  ======
9
9
 
10
- {% for model in get_models() if model.app_label == plugin.app_label %}
10
+ {% for model in get_models() %}
11
+ {% if model._meta.app_label == plugin.app_label %}
11
12
  - :doc:`{{full_model_name(model)}}` :
12
13
  {{abstract(model, 2)}}
13
14
 
15
+ {% endif %}
14
16
  {% endfor %}
15
17
 
16
18
  Actors
@@ -255,6 +255,7 @@ class Command(GeneratingCommand):
255
255
  models=models,
256
256
  abstract=abstract,
257
257
  refto=self.refto,
258
+ repr=repr,
258
259
  settings=settings,
259
260
  actors=actors,
260
261
  # actors_list=[a for a in actors.actors_list if not a.abstract],
lino/utils/diag.py CHANGED
@@ -4,6 +4,7 @@
4
4
  """Some diagnostic utilities."""
5
5
 
6
6
  # from textwrap import fill
7
+ import textwrap
7
8
  import rstgen
8
9
  from rstgen.utils import unindent
9
10
 
@@ -143,7 +144,7 @@ class Analyzer(object):
143
144
 
144
145
  return rstgen.ul(items)
145
146
 
146
- def show_database_structure(self, sort_fields=False, sort_models=True):
147
+ def show_database_structure(self, sort_fields=False, sort_models=True, verbose_names=False):
147
148
  """Show a bullet list of all models and their fields.
148
149
 
149
150
  Both the list of models and the fields of each model can optionally be
@@ -156,10 +157,16 @@ class Analyzer(object):
156
157
  # names = []
157
158
  # for f in model._meta.concrete_fields:
158
159
  # names.append(f.name)
159
- names = [f.name for f in model._meta.concrete_fields]
160
+ dbfields = list(model._meta.concrete_fields)
160
161
  if sort_fields:
161
- names = sorted(names)
162
- items.append("{0} : {1}".format(fmn(model), ", ".join(names)))
162
+ dbfields = sorted(names, key=lambda f: f.name)
163
+ if verbose_names:
164
+ txt = f"{fmn(model)} ({model._meta.verbose_name}):\n" \
165
+ + f"{textwrap.indent(self.show_fields(model), ' ')}"
166
+ else:
167
+ txt = "{0} : {1}".format(
168
+ fmn(model), ", ".join([f.name for f in dbfields]))
169
+ items.append(txt)
163
170
 
164
171
  if sort_models:
165
172
  items = sorted(items)
lino/utils/soup.py CHANGED
@@ -324,6 +324,18 @@ def sanitized_soup(old):
324
324
  tag.name = "span"
325
325
  tag.attrs = dict()
326
326
 
327
+ links = soup.find_all('p', string=(expr := re.compile(
328
+ r"(?P<url>https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*))"
329
+ )))
330
+ if links:
331
+ for link in links:
332
+ m = re.search(expr, link.text)
333
+ url = m['url']
334
+ old_link = str(link).replace(url, "<a href=\"{0}\">{0}</a>".format(url))
335
+ link_soup = BeautifulSoup(old_link, features="lxml")
336
+ link.replaceWith(link_soup.p)
337
+
338
+
327
339
  # remove all comments because they might contain scripts
328
340
  comments = soup.find_all(
329
341
  text=lambda text: isinstance(text, (Comment, Doctype)))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lino
3
- Version: 25.5.3
3
+ Version: 25.6.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,6 +1,6 @@
1
1
  lino/.cvsignore,sha256=1vrrWoP-WD8hPfCszHHIiJEi8KUMRCt5WvoKB9TSB1k,28
2
2
  lino/SciTEDirectory.properties,sha256=rCYi_e-6h8Yx5DwXhAa6MBPlVINcl6Vv9BQDYZV2_go,28
3
- lino/__init__.py,sha256=IP2cZPx-qGG5Whtg7SMLbSwWGqyf10WaYr1W8WM0TGI,6176
3
+ lino/__init__.py,sha256=PyLU4eakXdesnzwNUik0Gy_VaW531_MWp8CaW-xDdmk,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
@@ -28,14 +28,14 @@ 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=9nP7MydRX_PBbQuGbF4_wIZ98CkClMP5HKXeRB0CnoY,747
31
- lino/core/actions.py,sha256=LxNJBJVMfM7URvJkJmzlbmrL_jWUFmzF8DR2LdbkvvY,30058
32
- lino/core/actors.py,sha256=wYDQYmQjWbCwdsCnkniMcxtDK8RRZGlxt0s0WL46ccc,76625
31
+ lino/core/actions.py,sha256=4dWfj_2OEJzzS66Aw0O6K2PJFAzPXcn02HL9lk45eIE,30136
32
+ lino/core/actors.py,sha256=oDZJOK-emU5YoXo-Dp85j0JwSYphmCZSRT6L6y39V4U,76663
33
33
  lino/core/atomizer.py,sha256=T2hrXJoGRy_mYfYT4fILcicpNZ1v-wMw8iF7Zqq-tNQ,13401
34
34
  lino/core/boundaction.py,sha256=MZaYqYTQylBiVx9ag8CYsbKF_J6StccZKyJAKZ9zbVw,7241
35
35
  lino/core/callbacks.py,sha256=uu1-znzxVDD-JETUebw-hYsNg_9ExQb1vfwbc7Psjro,7549
36
36
  lino/core/choicelists.py,sha256=5b_FpURG1ZNwEGfuvCd9FtI3agCHJnhj31ZxaXcur3A,36504
37
37
  lino/core/classproperty.py,sha256=_E95WPAs7BWbAuFpPvoYM2ZwW_mbq3rvF7o43WsMq_8,4316
38
- lino/core/constants.py,sha256=kZXR6yqa-dG_wtDLl9_XXE2hFVlxHHdqKhGEKiX7pz0,4556
38
+ lino/core/constants.py,sha256=tF-wczVRLZ7QRdzfOXLALs0N-eKUIzrsAej2EgSkXek,4974
39
39
  lino/core/dashboard.py,sha256=1ASWZ9I1LQBUJZ0JKiwW_g_1Pix3jb4SWUFC2cUM23g,6537
40
40
  lino/core/dbtables.py,sha256=MLiaNZXXeFe9CawBq-7JpLGEbQM-8uhgBCp7YQrCmwE,29107
41
41
  lino/core/dbutils.py,sha256=_QHcWd-ajLUwt5G8uOp8d47lZQKD3VseHnqKJke18rA,263
@@ -43,7 +43,7 @@ lino/core/ddh.py,sha256=dYScxWKTOCDEgow7wJNJe812ESasmmITPK2ovraBQno,3172
43
43
  lino/core/diff.py,sha256=XQ-oQQDS_v3kXd4eRP9Hwr5UCgp-TPZIPVav9ZblUno,5882
44
44
  lino/core/elems.py,sha256=IyP8ky55hVO0L7am2k6lbWqIInA31Tszar3tfed-yls,109674
45
45
  lino/core/exceptions.py,sha256=QDxDo5cllSyXQ8VWet9hGXzNadxCOmwMVrFXc6V-vpE,665
46
- lino/core/fields.py,sha256=3ZWwfcUV7Ab4A3gzBTqpmko9GRBrQ7Nwja4pOQImmmU,54238
46
+ lino/core/fields.py,sha256=nXWMk9yw-6xY7SIjLFhtRW1-cuVh2-nY6-QjQMSDnIg,54414
47
47
  lino/core/frames.py,sha256=ISxgq9zyZfqW3tDZMWdKi9Ij455lT_81qBH0xex0bfE,1161
48
48
  lino/core/gfks.py,sha256=6VXn2FSIXOrwVq0stfbPevT37EWg1tg4Fn-HMNVnbmk,1970
49
49
  lino/core/help.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -56,8 +56,8 @@ lino/core/merge.py,sha256=sKtTeZtHdoDKerdHj4NXuXXNzpKDsfdPaiq-CY0NqQc,9094
56
56
  lino/core/model.py,sha256=iU85rvZNeSpm53DcE8bQo4ANp0VqtcwMLH_PdLOwxeQ,36982
57
57
  lino/core/permissions.py,sha256=sNReMhnjIpOZcJ79Z4k-Emp55evblExJZwH-PM-efcA,7579
58
58
  lino/core/plugin.py,sha256=n_f5dSy4vqamnyzpNnaNcTlUp2EAgaAVxIJ5EHG7aHc,6837
59
- lino/core/renderer.py,sha256=wiBYsekgvKJB8Zq7WPXEvKDRazvyf-SBJPGUFWvSDuo,47461
60
- lino/core/requests.py,sha256=qd1RIsBj0Z3j_nQ0bCoTurlJmvwkTjOlUb8jv28K9Og,96110
59
+ lino/core/renderer.py,sha256=9kxS9ezKo9foJYIGKSmcDAz892Vw4-tTorwjUFIqYew,47808
60
+ lino/core/requests.py,sha256=N9SuKdR2_ypMm4YwFYhUhQN0nB9R35glpGUD_5hhOM8,96287
61
61
  lino/core/roles.py,sha256=PXwk436xUupxdbJcygRSYFu7ixfKjAJPQRUQ8sy0lB0,4425
62
62
  lino/core/signals.py,sha256=sdlqXaMF4ORCAMO6HR40F4z-ZzcCvszNmidsJUmgXo0,950
63
63
  lino/core/site.py,sha256=19tuYAAyjAMkVrzfRrzIkYaFx53dzpQCVeqyrcCP8z4,82742
@@ -189,7 +189,7 @@ lino/modlib/export_excel/__init__.py,sha256=HrsrhXjIMvMHRGu8whH3A_WijZWrH35p2cQs
189
189
  lino/modlib/export_excel/models.py,sha256=u9COKVdVsPwGk5WjgVarjLSkxmS-KOdohXfH4CruF_c,5353
190
190
  lino/modlib/extjs/__init__.py,sha256=6UBWAWSROwy3DfTXQmVUVJTF6eZ_e2k3BEfE4wtqVhU,10172
191
191
  lino/modlib/extjs/ext_renderer.py,sha256=IHdugi-IPAi5iNnPKjc1A44h20d-vhHYn8KkhT2EJgY,60628
192
- lino/modlib/extjs/views.py,sha256=XXVWFJbALGIxuV_Z_2aX8DRHHwiuRRvFU65RbeRVILQ,26557
192
+ lino/modlib/extjs/views.py,sha256=-fXIFWeLs7NXq8HwkxXU02EMVO_lRXiy7GrgsEiqXrY,26577
193
193
  lino/modlib/extjs/config/extjs/index.html,sha256=jO5hdNpFSkm9t0xhHD5hc8Hw1fSr6xb3zYq9aMyOI7Q,8603
194
194
  lino/modlib/extjs/config/extjs/linoweb.js,sha256=I4VYGmkK4htqZvHM9g-6psJF3pp7SvgHEI0I02Sxpvo,175127
195
195
  lino/modlib/extjs/config/extjs/service-worker.js,sha256=KEKWeehTlfBHk3r8NbsP9C5av_DukHORybxFOwbjYaQ,1767
@@ -3504,13 +3504,13 @@ lino/modlib/help/config/makehelp/copyright.tpl.rst,sha256=0fcF2Mf83HJc50iMbiN_qg
3504
3504
  lino/modlib/help/config/makehelp/index.tpl.rst,sha256=q3SwIW70McQl5PmRniQvkj8ZaWQnEog9en8EDrE7qBw,281
3505
3505
  lino/modlib/help/config/makehelp/model.tpl.rst,sha256=qmTDdcozGpKJKG9r27jfJSv8W-n9ArgCq_rfmY_n0I0,274
3506
3506
  lino/modlib/help/config/makehelp/models.tpl.rst,sha256=6N_-CRztf1-bdKUr3Q7IXA-f2PrE4TZBpqDDct7oEMg,340
3507
- lino/modlib/help/config/makehelp/plugin.tpl.rst,sha256=D2eXEv_GFzsutTUtk64u6R-X2ACRD0UElCVH7RBZXec,492
3507
+ lino/modlib/help/config/makehelp/plugin.tpl.rst,sha256=H-4KQAW2WhmIYOCQ9Aei4jMg1XY3xRxtqbwIG0fLnIs,516
3508
3508
  lino/modlib/help/config/makehelp/plugins.tpl.rst,sha256=rj9uRsag-u2gY_VcqkzuBepXhC5nRSRpoxJGvJHBVN8,352
3509
3509
  lino/modlib/help/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3510
3510
  lino/modlib/help/fixtures/demo2.py,sha256=P719oIom7C7l_65-pKrZgsD6lhWUzoQCaNTQyVgeyoo,892
3511
3511
  lino/modlib/help/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3512
3512
  lino/modlib/help/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3513
- lino/modlib/help/management/commands/makehelp.py,sha256=ylVcT9TNOYK7N-hCm0d3ZQ76CTzRxUd8nXV2PbJ2JYs,18600
3513
+ lino/modlib/help/management/commands/makehelp.py,sha256=L7wXt-XFGh1uq4HQdUoh190BP4gFJ_jHsARpkn8evzs,18623
3514
3514
  lino/modlib/importfilters/__init__.py,sha256=i_eUIwJSRHlSFJueqxBkApcIWOdW-bb1xwpMKGBWcZA,761
3515
3515
  lino/modlib/importfilters/models.py,sha256=iESoL9hwcYG1TzfCbBCqhJS2tzFw5M3gVNgrCULkSWM,3227
3516
3516
  lino/modlib/ipdict/__init__.py,sha256=n2fkShCZ-KIztazI_JQztJBBgg3c2GeIIh-5Q6ukZmA,1169
@@ -4593,7 +4593,7 @@ lino/utils/dates.py,sha256=eWF5WxA5uJf51Y9PKvDVBWD8yIf6yBF6oO6TeU3ujzw,1030
4593
4593
  lino/utils/dbfreader.py,sha256=KrGsBAFV2tF9pAd9jsmBAFpZ-yw-CRymZHEn_q9IL90,13784
4594
4594
  lino/utils/dbhash.py,sha256=TMnUGhOFbaip6L2Y4ENhCOS79ujJiO0CyYcOCZyHiK4,3505
4595
4595
  lino/utils/dblogger.py,sha256=kr0YxQY6veymvNg5A4tsvkqW8haRWdwqL0C-_9_QTg0,721
4596
- lino/utils/diag.py,sha256=d9i0ymsP4gU-jms4DArs-LGVjAGd83E-NyZli6KfpcA,18451
4596
+ lino/utils/diag.py,sha256=IVEn1CVqB_R_kN_hEp_JUQTdHysBVlZ9LCHkKDZ-s8c,18766
4597
4597
  lino/utils/djangotest.py,sha256=Phz1qNp0wDonZRja5dxbCk0Xl3a73gZNiKK8v9tAgZg,8334
4598
4598
  lino/utils/dpy.py,sha256=Hw4ofFnhRPAE2PsPf9r5RpzcfVLQdIjtOe-XtMMLtuE,20661
4599
4599
  lino/utils/fieldutils.py,sha256=6GwPOfL-Jv-uh5-tZrTqC1hJccqHhdLbVSy4CAeegDA,2957
@@ -4622,7 +4622,7 @@ lino/utils/restify.py,sha256=AbVCBjM9V9rYuFweV1gVo9ObO8lblJbA-mKjaPsebRE,14068
4622
4622
  lino/utils/screenshots.py,sha256=T-szKC3EJfo4JcLio8Jj0xqaoSuJcZG6Jf9EF_B8WDQ,2040
4623
4623
  lino/utils/sendchanges.py,sha256=fcSqRyI3l8sEf9_LSqIyWGML6CORoYkjcFp2bs-YNlY,7097
4624
4624
  lino/utils/socks.py,sha256=0d67FDbrJ7PXl4AYzNNZgwCzV-fzIAAtWGxMEB7dw78,538
4625
- lino/utils/soup.py,sha256=tQNk9MweAWH9s14rCPQI0XNc4vuWrEc2leBGqnGrsCg,10937
4625
+ lino/utils/soup.py,sha256=lmckmEKlXv8XpmRHGs6T-8nWllWYKmXfy4QX2AH5NyM,11431
4626
4626
  lino/utils/sql.py,sha256=kwCgv5E3n7uLjpXOEiaF2W2p8LeGXcP39xgtnqvzTP8,6795
4627
4627
  lino/utils/sqllog.py,sha256=kUCnBfFjExhItJ1w76WT9VWPaWWq8NQM-kSIMIIZnRU,3282
4628
4628
  lino/utils/ssin.py,sha256=Wo-9M0pG0uEYEGvmz8N--iRIqJe3ETtgLOXoung7qlE,4232
@@ -4636,8 +4636,8 @@ lino/utils/xml.py,sha256=EGDnO1UaREst9fS7KTESdbHnrrVCwKbRQdvut6B6GmQ,1612
4636
4636
  lino/utils/mldbc/__init__.py,sha256=QqWRlzeXaOmFfbCk-vTY3SZMn1-FCf67XnpZdd_Nim0,1134
4637
4637
  lino/utils/mldbc/fields.py,sha256=tAX8G5UKigr9c6g0F3ARIjZZtg406mdaZ--PWSbiH9E,2873
4638
4638
  lino/utils/mldbc/mixins.py,sha256=CkYe5jDa7xp9fJq_V8zcZf8ocxgIjUgHc9KZccvA_Yw,1945
4639
- lino-25.5.3.dist-info/METADATA,sha256=kaWrXGF-rS4AKDMgex2Ys-fMhmoWO2NMCZoFuzJE47E,42534
4640
- lino-25.5.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
4641
- lino-25.5.3.dist-info/licenses/AUTHORS.rst,sha256=8VEm_G4HOmYEa4oi1nVoKKsdo4JanekEJCefWd2E8vk,981
4642
- lino-25.5.3.dist-info/licenses/COPYING,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
4643
- lino-25.5.3.dist-info/RECORD,,
4639
+ lino-25.6.1.dist-info/METADATA,sha256=UTZhVQu5NnBvwoxWX-GGbuBdIVDm5mMCXz4zXUbaJBc,42534
4640
+ lino-25.6.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
4641
+ lino-25.6.1.dist-info/licenses/AUTHORS.rst,sha256=8VEm_G4HOmYEa4oi1nVoKKsdo4JanekEJCefWd2E8vk,981
4642
+ lino-25.6.1.dist-info/licenses/COPYING,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
4643
+ lino-25.6.1.dist-info/RECORD,,
File without changes