fastlifeweb 0.29.1__py3-none-any.whl → 0.29.2__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.

Potentially problematic release.


This version of fastlifeweb might be problematic. Click here for more details.

CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## 0.29.2 - Released on 2025-11-04
2
+ * Fix enum serialization for pydantic form using xcomponent.
3
+
1
4
  ## 0.29.1 - Released on 2025-11-03
2
5
  * Don't emit UserWarning while building pydantic form data at editing.
3
6
 
@@ -31,7 +31,7 @@ class EnumBuilder(BaseWidgetBuilder[Enum]):
31
31
  removable: bool,
32
32
  ) -> Widget[Enum]:
33
33
  """Build the widget."""
34
- options = [(item.name, item.value) for item in field_type] # type: ignore
34
+ options = [(str(item.value), item.value) for item in field_type] # type: ignore
35
35
  return DropDownWidget(
36
36
  name=field_name,
37
37
  options=options, # type: ignore
@@ -1,7 +1,7 @@
1
1
  """Widget base class."""
2
2
 
3
+ import json
3
4
  import secrets
4
- from collections.abc import Mapping
5
5
  from typing import Any, Generic, Self, TypeVar
6
6
 
7
7
  from markupsafe import Markup
@@ -129,12 +129,19 @@ class TypeWrapper:
129
129
  return f"{name}-{typ}-{self.token}"
130
130
 
131
131
  @property
132
- def params(self) -> Mapping[str, str]:
132
+ def params(self) -> str:
133
133
  """Params for the widget to render."""
134
- return {"name": self.name, "token": self.token, "title": self.title}
134
+ return json.dumps(
135
+ {
136
+ "name": self.name,
137
+ "token": self.token,
138
+ "title": self.title,
139
+ "format": "xcomponent",
140
+ }
141
+ )
135
142
 
136
143
  @property
137
144
  def url(self) -> str:
138
145
  """Url to fetch the widget."""
139
- ret = f"{self.route_prefix}/pydantic-form/widgets/{self.fullname}?format=xcomponent"
146
+ ret = f"{self.route_prefix}/pydantic-form/widgets/{self.fullname}"
140
147
  return ret
@@ -26,7 +26,7 @@ class UnionWidget(Widget[TWidget]):
26
26
  <H3 class={globals.H3_SUMMARY_CLASS}>{ globals.gettext(title) }</H3>
27
27
  <OptionalErrorText text={error} />
28
28
  </Summary>
29
- <div hx-sync="this" id="{{id}}-child">
29
+ <div hx-sync="this" id={"id" + child}>
30
30
  {
31
31
  if child {
32
32
  child
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fastlifeweb
3
- Version: 0.29.1
3
+ Version: 0.29.2
4
4
  Summary: High-level web framework
5
5
  Author-Email: Guillaume Gauvrit <guillaume@gauvr.it>
6
6
  License: MIT
@@ -1,4 +1,4 @@
1
- CHANGELOG.md,sha256=AM0DqAKkkEBSXBSlmKyQVogX8z8VUijBnJU72S_h_Uw,10092
1
+ CHANGELOG.md,sha256=IJhgc9XVJtKqXm4wXN8ltSiNcM00Or09slfAxgrcwyo,10190
2
2
  fastlife/__init__.py,sha256=XtGrcI5a3MPSl4vupeWT4ZijISiXtAhjcL6eRt9WpfE,2503
3
3
  fastlife/adapters/__init__.py,sha256=imPD1hImpgrYkvUJRhHA5kVyGAua7VbP2WGkhSWKJT8,93
4
4
  fastlife/adapters/fastapi/__init__.py,sha256=1goV1FGFP04TGyskJBLKZam4Gvt1yoAvLMNs4ekWSSQ,243
@@ -60,7 +60,7 @@ fastlife/adapters/xcomponent/pydantic_form/widget_factory/__init__.py,sha256=Dy_
60
60
  fastlife/adapters/xcomponent/pydantic_form/widget_factory/base.py,sha256=iKqYXpKZubdxEh0NJJUDEY9ZZu2XqsZdyWNZ43BtS5Q,1025
61
61
  fastlife/adapters/xcomponent/pydantic_form/widget_factory/bool_builder.py,sha256=nE8Q2kaYhLyTTPFn7Hi8vSTotGLdmKthM_ryzTiBiIY,1336
62
62
  fastlife/adapters/xcomponent/pydantic_form/widget_factory/emailstr_builder.py,sha256=9RDlB-Lvmwp0h5XNW-dnb6rDPwx2MabrguQJ2Dtfveg,1611
63
- fastlife/adapters/xcomponent/pydantic_form/widget_factory/enum_builder.py,sha256=wZRODjXX_LAEWbkA61XxtALctw1t94CjEDb52hJ4av0,1590
63
+ fastlife/adapters/xcomponent/pydantic_form/widget_factory/enum_builder.py,sha256=U8yp6Aiz0pI590UJnHK7j6yI-gAp7HFrgm8w-kNkZFY,1596
64
64
  fastlife/adapters/xcomponent/pydantic_form/widget_factory/factory.py,sha256=4Um7jR54e0KMb9blyHc1PE2aHMzCJzzB391Vo6LDVDg,6207
65
65
  fastlife/adapters/xcomponent/pydantic_form/widget_factory/literal_builder.py,sha256=7_nv3vtnVxKYAuPp2CJVWQvvZLf_NJYZ4qS2l-oqJQg,1821
66
66
  fastlife/adapters/xcomponent/pydantic_form/widget_factory/model_builder.py,sha256=AgT7dRzu5COns6iUBpDvz2Fq8Ob48fT0aNT-9ozQlkE,2299
@@ -71,7 +71,7 @@ fastlife/adapters/xcomponent/pydantic_form/widget_factory/simpletype_builder.py,
71
71
  fastlife/adapters/xcomponent/pydantic_form/widget_factory/union_builder.py,sha256=bRxEF75S3In2vGnHxcONEjUGeVt_5c_6CP11WOfXP4Y,2904
72
72
  fastlife/adapters/xcomponent/pydantic_form/widget_factory/uuid_builder.py,sha256=DgNZz5C5gYFfsulmAnsrEq0V0RhMRwiswHKPFwJCSW4,1504
73
73
  fastlife/adapters/xcomponent/pydantic_form/widgets/__init__.py,sha256=HERnX9xiXUbTDz3XtlnHWABTBjhIq_kkBgWs5E6ZIMY,42
74
- fastlife/adapters/xcomponent/pydantic_form/widgets/base.py,sha256=iHcZb_9-qTiVGUiRS9aYHrQPlqcws05LMTnQlE8qIBM,4128
74
+ fastlife/adapters/xcomponent/pydantic_form/widgets/base.py,sha256=bwC1jDoCxNL61kuimNlC1SebPa7-950gDccWRph1cXc,4209
75
75
  fastlife/adapters/xcomponent/pydantic_form/widgets/boolean.py,sha256=MVPehGxij8o1rul5cr4d4YIdtBu3tpT4Pj0jgcIFUws,586
76
76
  fastlife/adapters/xcomponent/pydantic_form/widgets/checklist.py,sha256=G_1beOKHmlETg2zvAGt6zmYEqFRs2Rf9iFSPjWdtWfA,1896
77
77
  fastlife/adapters/xcomponent/pydantic_form/widgets/dropdown.py,sha256=YdTGDyXVj5YxCtsO0h_c9qBnK5K6fQYzcQZ0lUIV6no,1760
@@ -80,7 +80,7 @@ fastlife/adapters/xcomponent/pydantic_form/widgets/mfa_code.py,sha256=beQ58s47FP
80
80
  fastlife/adapters/xcomponent/pydantic_form/widgets/model.py,sha256=HnZyDVyfW0s-u9VsoWGimCQGtzzHNmbV2U042n2PEFg,1350
81
81
  fastlife/adapters/xcomponent/pydantic_form/widgets/sequence.py,sha256=ANilerP-RfOO5nakIpuhmG1levPlO8O8ge-786qkGcw,2551
82
82
  fastlife/adapters/xcomponent/pydantic_form/widgets/text.py,sha256=_cms11Ir_onCORmdrW_N5ZeLb-0hCM2fIwWdR_uLXQU,3513
83
- fastlife/adapters/xcomponent/pydantic_form/widgets/union.py,sha256=MlmfEsAx9vZdtZMNSILdAV5cq5R_yzbLLppT1NE675E,2646
83
+ fastlife/adapters/xcomponent/pydantic_form/widgets/union.py,sha256=9rJiUOgqBuxTxPLLoD5sHF4TSa2oO6J89HplbKWeXd8,2646
84
84
  fastlife/adapters/xcomponent/renderer.py,sha256=zLwWpoE0OPjvBtaIRGWxMwQqxVrL0kITQBUjDaqkanI,4243
85
85
  fastlife/assets/dist.css,sha256=xuD2jjSO5GMCjyr_rmhcazJQ5wQpcYUvFxKm0RcC1XY,19801
86
86
  fastlife/assets/source.css,sha256=0KtDcsKHj9LOcqNR1iv9pACwNBaNWkieEDqqjkgNL_s,47
@@ -1774,8 +1774,8 @@ fastlife/testing/session.py,sha256=LEFFbiR67_x_g-ioudkY0C7PycHdbDfaIaoo_G7GXQ8,2
1774
1774
  fastlife/testing/testclient.py,sha256=gqgHQalhrLLZ8eveN2HeuoG9ne8CwxCm-Ll4b7jo9Xo,7249
1775
1775
  fastlife/views/__init__.py,sha256=zG8gveL8e2zBdYx6_9jtZfpQ6qJT-MFnBY3xXkLwHZI,22
1776
1776
  fastlife/views/pydantic_form.py,sha256=9lcS14jxddIpoN_n4VqWwU8CKhKZ8AtoD3c1Pdc-Oe4,1651
1777
- fastlifeweb-0.29.1.dist-info/METADATA,sha256=pQxD2_ivgY4Ihiq2iE6Cwq_5oFFJGGc-EOwtQ3D5NCY,4396
1778
- fastlifeweb-0.29.1.dist-info/WHEEL,sha256=9P2ygRxDrTJz3gsagc0Z96ukrxjr-LFBGOgv3AuKlCA,90
1779
- fastlifeweb-0.29.1.dist-info/entry_points.txt,sha256=6OYgBcLyFCUgeqLgnvMyOJxPCWzgy7se4rLPKtNonMs,34
1780
- fastlifeweb-0.29.1.dist-info/licenses/LICENSE,sha256=JFWuiKYRXKKMEAsX0aZp3hBcju-HYflJ2rwJAGwbCJo,1080
1781
- fastlifeweb-0.29.1.dist-info/RECORD,,
1777
+ fastlifeweb-0.29.2.dist-info/METADATA,sha256=IcsF24xT0OdG-AJGMW7U4I3r61ymTjSIKBifYMLI5LU,4396
1778
+ fastlifeweb-0.29.2.dist-info/WHEEL,sha256=9P2ygRxDrTJz3gsagc0Z96ukrxjr-LFBGOgv3AuKlCA,90
1779
+ fastlifeweb-0.29.2.dist-info/entry_points.txt,sha256=6OYgBcLyFCUgeqLgnvMyOJxPCWzgy7se4rLPKtNonMs,34
1780
+ fastlifeweb-0.29.2.dist-info/licenses/LICENSE,sha256=JFWuiKYRXKKMEAsX0aZp3hBcju-HYflJ2rwJAGwbCJo,1080
1781
+ fastlifeweb-0.29.2.dist-info/RECORD,,