muffin-rest 5.1.6__py3-none-any.whl → 5.1.8__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.
@@ -95,6 +95,7 @@ class PWRESTBase(RESTBase[TVModel], PeeweeOpenAPIMixin):
95
95
  cqs = cast(pw.ModelSelect, self.collection.order_by())
96
96
  if cqs._group_by: # type: ignore[misc]
97
97
  cqs._returning = cqs._group_by # type: ignore[misc]
98
+ cqs._having = None # type: ignore[misc]
98
99
  count = await self.meta.manager.count(cqs)
99
100
 
100
101
  return (
@@ -17,7 +17,10 @@ class EnumField(ma.fields.Field):
17
17
  if value is None:
18
18
  return None
19
19
 
20
- return value.value
20
+ try:
21
+ return value.value
22
+ except AttributeError:
23
+ raise ma.ValidationError(f"{obj}: {attr} value is invalid: {value}") from None
21
24
 
22
25
  def _deserialize(self, value, attr, data, **kwargs):
23
26
  try:
@@ -17,9 +17,11 @@ if TYPE_CHECKING:
17
17
  class PWSort(Sort):
18
18
  """Sorter for Peewee."""
19
19
 
20
- async def apply(self, collection: TVCollection, *, desc: bool = False, **_) -> TVCollection:
20
+ async def apply(self, collection: TVCollection, *, desc: bool = False) -> TVCollection:
21
21
  """Sort the collection."""
22
- return collection.order_by_extend(self.field if not desc else self.field.desc())
22
+ return collection.order_by_extend(
23
+ self.field.asc(nulls="LAST") if not desc else self.field.desc(nulls="LAST")
24
+ )
23
25
 
24
26
 
25
27
  class PWSorting(Sorting):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: muffin-rest
3
- Version: 5.1.6
3
+ Version: 5.1.8
4
4
  Summary: The package provides enhanced support for writing REST APIs with Muffin framework
5
5
  Home-page: https://github.com/klen/muffin-rest
6
6
  License: MIT
@@ -13,11 +13,11 @@ muffin_rest/openapi.py,sha256=XNhU4EffbKvFKr1HMCqFM-ZrukPqLyZwm3aJe2dNs40,8770
13
13
  muffin_rest/options.py,sha256=PcrGY1qq3exgOdeJp8tYYC2V83c5vVMQrARgUkxrNTM,1927
14
14
  muffin_rest/peewee/__init__.py,sha256=94DSj_ftT6fbPksHlBv40AH2HWaiZommUFOMN2jd9a4,129
15
15
  muffin_rest/peewee/filters.py,sha256=qjdzXx0rZOwDGGcVoso1QQL4hrSzUjqEdwdtt8vBhes,2332
16
- muffin_rest/peewee/handler.py,sha256=ipIcOmCgHpqWJevWHm9xxZ2GsZPUV7dc9QCmu7bvaLM,5325
16
+ muffin_rest/peewee/handler.py,sha256=y7FnayK2lTDMYG2lnrgBEDBUuXd3ZEAd4VXQXuNxWCM,5378
17
17
  muffin_rest/peewee/openapi.py,sha256=ZZuh7nJVuK9cTJqtOJ_XASe9iJgter-xIjj9YJ8xszI,1111
18
18
  muffin_rest/peewee/options.py,sha256=02E8yOXHaHl0smKV8qI6er7YS3IcuroDPl7GR_YuLjo,1489
19
- muffin_rest/peewee/schemas.py,sha256=GYex652UOBoFBvpkqDupBe8kXJHIEBF2diZPjE-BXj4,1076
20
- muffin_rest/peewee/sorting.py,sha256=7in0ICivfZbfNIacA3eo9o5cKdwNJZFp1Vl5mIqvQyk,1848
19
+ muffin_rest/peewee/schemas.py,sha256=6xaNxKFpdXjoiPFI9yc0tBN7B535A2IFLRE9x6unrZM,1215
20
+ muffin_rest/peewee/sorting.py,sha256=mQlHH1u4MY_vzIFwQy-aLHXiDuUWJ_fAn4qs-X6Vodw,1895
21
21
  muffin_rest/peewee/types.py,sha256=cgCXhpGHkImKwudA1lulZHz5oJswHH168AiW5MhZRCM,155
22
22
  muffin_rest/peewee/utils.py,sha256=wXeneVE1IZl1ROnY28re73H62Y1_tEmoEQYzPhuOyBI,702
23
23
  muffin_rest/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -30,7 +30,7 @@ muffin_rest/sqlalchemy/types.py,sha256=JnIw44XJ2ClWzOv-mTUrvFw1JPxAlvdX_jf7r4zau
30
30
  muffin_rest/swagger.html,sha256=2uGLu_KpkYf925KnDKHBJmV9pm6OHn5C3BWScESsUS8,1736
31
31
  muffin_rest/types.py,sha256=vy55ShzMcvs9zXjFpdjWlagv09dMrcmxb2-U4hTL3NM,521
32
32
  muffin_rest/utils.py,sha256=-nf6WCGFlVoOcBT-n6eiIpbZSmPY8ynm2UlMelgmn8o,2059
33
- muffin_rest-5.1.6.dist-info/LICENSE,sha256=xHPkOZhjyKBMOwXpWn9IB_BVLjrrMxv2M9slKkHj2hM,1082
34
- muffin_rest-5.1.6.dist-info/METADATA,sha256=OFek3VsTJNsILkrP6PZ394ng1bv6WWoYXYOvwr3VqmA,4126
35
- muffin_rest-5.1.6.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
36
- muffin_rest-5.1.6.dist-info/RECORD,,
33
+ muffin_rest-5.1.8.dist-info/LICENSE,sha256=xHPkOZhjyKBMOwXpWn9IB_BVLjrrMxv2M9slKkHj2hM,1082
34
+ muffin_rest-5.1.8.dist-info/METADATA,sha256=bjqZvSOrDnhx1JAN__YW_KOhJQKSJ34zbdomUDPC8bE,4126
35
+ muffin_rest-5.1.8.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
36
+ muffin_rest-5.1.8.dist-info/RECORD,,