fastapi-rtk 1.0.22__py3-none-any.whl → 1.0.24__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.
fastapi_rtk/_version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "1.0.22"
1
+ __version__ = "1.0.24"
@@ -125,16 +125,22 @@ class Model(sqlalchemy.ext.asyncio.AsyncAttrs, BasicModel, DeclarativeBase):
125
125
  def get_pk_attrs(cls):
126
126
  return [col.name for col in cls.__mapper__.primary_key]
127
127
 
128
- async def load(self, *cols: list[str] | str):
128
+ async def load(self, *cols: list[str] | str, refresh=False):
129
129
  """
130
130
  Asynchronously loads the specified columns of the model instance.
131
131
 
132
132
  Args:
133
133
  *cols (list[str] | str): The columns to load. Can be a list of strings or individual string arguments.
134
+ refresh (bool, optional): If True, forces reloading of all specified columns even if they are already loaded. Defaults to False.
134
135
  """
135
136
  cols = [
136
137
  item for col in cols for item in (col if isinstance(col, list) else [col])
137
138
  ]
139
+ if not refresh:
140
+ # Filter out already-loaded attributes
141
+ cols = [col for col in cols if col not in self.__dict__]
142
+ if not cols:
143
+ return
138
144
 
139
145
  async with AsyncTaskRunner() as runner:
140
146
  for col in cols:
fastapi_rtk/manager.py CHANGED
@@ -82,7 +82,7 @@ class UserManager(IDParser, BaseUserManager[User, int]):
82
82
  list[Role]: A list of Role objects that match the given role names.
83
83
  """
84
84
  if not roles:
85
- return []
85
+ return list[Role]()
86
86
  if isinstance(roles, str):
87
87
  roles = [roles]
88
88
  statement = select(Role).where(Role.name.in_(roles))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastapi-rtk
3
- Version: 1.0.22
3
+ Version: 1.0.24
4
4
  Summary: A package that provides a set of tools to build a FastAPI application with a Class-Based CRUD API.
5
5
  Project-URL: Homepage, https://codeberg.org/datatactics/fastapi-rtk
6
6
  Project-URL: Issues, https://codeberg.org/datatactics/fastapi-rtk/issues
@@ -1,5 +1,5 @@
1
1
  fastapi_rtk/__init__.py,sha256=ULEV1ai_Hk5MU10uhzalnaX9DTzuNRP-tOd9spIRnHk,6511
2
- fastapi_rtk/_version.py,sha256=3qPJsI_cs0SlJn5DWM459KiP-4DSaTWmW-7lyF1jPMo,23
2
+ fastapi_rtk/_version.py,sha256=rnKYfyIc2hXBxsPKz6c7OchEPYsBq3xHKgj-1s8ShT8,23
3
3
  fastapi_rtk/apis.py,sha256=6X_Lhl98m7lKrDRybg2Oe24pLFLJ29eCOQSwCAvpKhY,172
4
4
  fastapi_rtk/config.py,sha256=7y5zsXlYwv4zv1CbiZsw0VvIZJv3IKAvLXNXGI4sios,14063
5
5
  fastapi_rtk/const.py,sha256=sEj_cYeerj9pVwbCu0k5Sy1EYpdr1EHzUjqqbnporgc,4905
@@ -10,7 +10,7 @@ fastapi_rtk/exceptions.py,sha256=P0qwd4VkeWFotgMVQHgmdT1NphFQaEznKLFIvJzW4Zs,259
10
10
  fastapi_rtk/fastapi_react_toolkit.py,sha256=lvtieBLzCAlozKQU9dkAUVoW7Ofi1ncri_hDyeHazF4,29803
11
11
  fastapi_rtk/filters.py,sha256=weCH3suCxpGJQYmwhj9D1iAqMPiRnmbRiN7stK0rhoE,181
12
12
  fastapi_rtk/globals.py,sha256=VC_DyLpuoNvAQSVy8l3o8lHXNa8qH2tm4umqL4_rMn4,9842
13
- fastapi_rtk/manager.py,sha256=F57aD0DApH98H7GPpnxrwKHz0nETuxQG2bax4FDfJgM,33737
13
+ fastapi_rtk/manager.py,sha256=qPq8U6PfKzavxLebYUchGfJgXlKeoShj7irMSHFhOVY,33747
14
14
  fastapi_rtk/middlewares.py,sha256=ycdaAdLIUaNEZ7KotczTHS6OOqy98Mn1_O7Hpe7Sma8,10325
15
15
  fastapi_rtk/mixins.py,sha256=78RqwrRJFOz6KAxf-GSNOmRdr7R3b-ws7OIENYlzRQQ,238
16
16
  fastapi_rtk/models.py,sha256=lQSqe-r0H7jWBVdqXjEi_bNL1cGQr0YWnyI1ToS_coc,178
@@ -48,7 +48,7 @@ fastapi_rtk/backends/sqla/db.py,sha256=kVipLr8C1XoeNV65IJpB-XGKde13nb_YDG-h5R8df
48
48
  fastapi_rtk/backends/sqla/exceptions.py,sha256=rRtvgXyDwGSbjvJIPJIOjOBYytvNv9VXkZOBy6p2J80,61
49
49
  fastapi_rtk/backends/sqla/filters.py,sha256=bqdt3ojlF_elAj7TJxkVq4WgkrNeV0LTR6Ojkc1H5R0,21395
50
50
  fastapi_rtk/backends/sqla/interface.py,sha256=mnlCxSvWIuTrVzE8KMjZyI7Tdhk041MUF3F2ZLdhYs8,27824
51
- fastapi_rtk/backends/sqla/model.py,sha256=N0fxuAHbw_RCfFPRw-cjWQdBEanfogLRXOUEPqZ1Qac,7168
51
+ fastapi_rtk/backends/sqla/model.py,sha256=8gyCjA-qirGhO0o-8q2_2hc7MbFJZFWIZvQdOLkxXwc,7508
52
52
  fastapi_rtk/backends/sqla/session.py,sha256=di52RhRWzUchcquWMU9KKd0F1N5te1GfAtcfCnekiwI,412
53
53
  fastapi_rtk/backends/sqla/extensions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
54
  fastapi_rtk/backends/sqla/extensions/audit/__init__.py,sha256=CaVc9fV584PVazvGGMOKwX4xC3OvIae9kXBx6xQAj5g,131
@@ -124,8 +124,8 @@ fastapi_rtk/utils/sqla.py,sha256=To4PhsO5orPJVqjdLh5C9y_xPgiy8-zhrJdSqhR_tsc,690
124
124
  fastapi_rtk/utils/timezone.py,sha256=62S0pPWuDFFXxV1YTFCsc4uKiSP_Ba36Fv7S3gYjfhs,570
125
125
  fastapi_rtk/utils/update_signature.py,sha256=PIzZgNpGEwvDNgQ3G51Zi-QhVV3mbxvUvSwDwf_-yYs,2209
126
126
  fastapi_rtk/utils/use_default_when_none.py,sha256=H2HqhKy_8eYk3i1xijEjuaKak0oWkMIkrdz6T7DK9QU,469
127
- fastapi_rtk-1.0.22.dist-info/METADATA,sha256=BY2jPyBX2o7wdKs5swp8FJgPSVnw0FoqdZVRSQL4DyU,1333
128
- fastapi_rtk-1.0.22.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
129
- fastapi_rtk-1.0.22.dist-info/entry_points.txt,sha256=UuTkxSVIokSlVN28TMhoxzRRUaPxlVRSH3Gsx6yip60,53
130
- fastapi_rtk-1.0.22.dist-info/licenses/LICENSE,sha256=NDrWi4Qwcxal3u1r2lBWGA6TVh3OeW7yMan098mQz98,1073
131
- fastapi_rtk-1.0.22.dist-info/RECORD,,
127
+ fastapi_rtk-1.0.24.dist-info/METADATA,sha256=JlW9XNKnPSLLxeeVil9_KFND5S73LCJoLCmE_F8pgm4,1333
128
+ fastapi_rtk-1.0.24.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
129
+ fastapi_rtk-1.0.24.dist-info/entry_points.txt,sha256=UuTkxSVIokSlVN28TMhoxzRRUaPxlVRSH3Gsx6yip60,53
130
+ fastapi_rtk-1.0.24.dist-info/licenses/LICENSE,sha256=NDrWi4Qwcxal3u1r2lBWGA6TVh3OeW7yMan098mQz98,1073
131
+ fastapi_rtk-1.0.24.dist-info/RECORD,,