base-api-utils 1.1.117.dev3__py3-none-any.whl → 1.1.117.dev4__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.
@@ -1 +1,11 @@
1
- from .urls import private_tasks_admin_patterns # noqa: F401
1
+ def __getattr__(name: str):
2
+ # Lazy import: loading private_tasks_admin_patterns eagerly chains through
3
+ # views → tasks_result_view → @extend_schema → DEFAULT_SCHEMA_CLASS,
4
+ # which causes a circular import when any consumer of this package is
5
+ # itself imported as DEFAULT_SCHEMA_CLASS (e.g. a custom AutoSchema
6
+ # subclass that inherits from base_api_utils.utils.CustomAutoSchema).
7
+ if name == "private_tasks_admin_patterns":
8
+ from .urls import private_tasks_admin_patterns
9
+
10
+ return private_tasks_admin_patterns
11
+ raise AttributeError(f"module 'base_api_utils' has no attribute {name!r}")
@@ -133,6 +133,16 @@ class AbstractSerializer:
133
133
  # here and let the deeper constraints apply at child serializers.
134
134
  has_explicit_leaf = any(not subtree for subtree in ft.values())
135
135
  if not has_explicit_leaf:
136
+ af = self._merged_allowed_fields()
137
+ if af is not None:
138
+ allowed_keep = (
139
+ set(af)
140
+ | set(ctx.get("expand_tree", {}).keys())
141
+ | set(ctx.get("relations_tree", {}).keys())
142
+ )
143
+ for k in list(fields.keys()):
144
+ if k not in allowed_keep:
145
+ fields.pop(k, None)
136
146
  return fields
137
147
  keep = (
138
148
  set(ft.keys())
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: base-api-utils
3
- Version: 1.1.117.dev3
3
+ Version: 1.1.117.dev4
4
4
  Summary: Django Rest Framework micro services common utilities
5
5
  Author-email: Román Gutierrez <roman@tipit.net>, Sebastian Marcet <sebastian@tipit.net>
6
6
  Project-URL: Homepage, https://github.com/fntechgit/base-api-utils
@@ -1,4 +1,4 @@
1
- base_api_utils/__init__.py,sha256=ZYiqZZU-O9G11jTGHpU2YhF2Zc5yq9iKBt4xwIE5JWg,61
1
+ base_api_utils/__init__.py,sha256=PFn18gfAlUKGuZHfRDaxsinDNj-7YDL5u_ziAX4reRQ,632
2
2
  base_api_utils/urls.py,sha256=B86B4-tZrWEGpRDYhLmExr5pQA9wKddOme0jANvwetw,443
3
3
  base_api_utils/commands/__init__.py,sha256=yVtaOu4Z6uTUSWP0JPcRmBwlGofdfvfGPXAXyrpLoO8,67
4
4
  base_api_utils/commands/failed_task_management_mixin.py,sha256=RO5krEbDdIH2tsDy-LVbAiTU9M87HsaEholA2lpvb-8,4879
@@ -44,7 +44,7 @@ base_api_utils/serializers/serializers_registry.py,sha256=V4teS5tCNQ2WdzN-tYNJSM
44
44
  base_api_utils/serializers/task_result_serializer.py,sha256=oUqD9EDQr2oxyIpgZJ1lpSGKF5Vhhy25TOQUCGTPqFY,218
45
45
  base_api_utils/serializers/timestamp_field.py,sha256=uZXbJ7BnabJylSZPt_dQEUBuT_XL3khhGjzJ08ji-DY,682
46
46
  base_api_utils/serializers/v2/__init__.py,sha256=hOWxvmFSrKpkB19x3MPz37Pz1BjJqaymqs5Dt6m4_fA,241
47
- base_api_utils/serializers/v2/abstract_serializer.py,sha256=Ac8qhffxsrUwqqJf6x4zJ-8kACGoEpnlrtDRuFZElrg,6802
47
+ base_api_utils/serializers/v2/abstract_serializer.py,sha256=lLDcjZ318lrpp575hy71Gs5Sr0BboITc6Az-jOYgo6M,7220
48
48
  base_api_utils/serializers/v2/base_model_serializer.py,sha256=S9AO0GXUcOvA6wCO88VoSSVFHBwe2fFAHZe4gmZKn6M,720
49
49
  base_api_utils/serializers/v2/expands.py,sha256=uVIAgw2eRKaL0dvJlvh3CqdQDvqvg1Iv0caH2lvIqT4,3992
50
50
  base_api_utils/serializers/v2/query_params.py,sha256=6b6rnV0Ye37xWun72x7zHKtspWzn4tdf2gVaFEaqp9M,1821
@@ -98,8 +98,8 @@ base_api_utils/views/base_view.py,sha256=A49KZr03qxjBQvCLLdtbg4s3f9Gn9C63gwcpme2
98
98
  base_api_utils/views/parent_children_crud.py,sha256=79vB044kmY9kefb6YxekPriO3FKYV85zn3PgCmSSKFw,3261
99
99
  base_api_utils/views/root_entity_crud.py,sha256=eIhZfjouNxYAVIfGPuEPp80b50hM2CAG_L0nh6-Gdjw,2830
100
100
  base_api_utils/views/tasks_result_view.py,sha256=StCfFsnpi4drUD73C_w4VLVpd546B5r8tTxB6JWoyRA,2065
101
- base_api_utils-1.1.117.dev3.dist-info/licenses/LICENSE,sha256=JKqaWBs87qnqDsZ1EEF0gnWR2iSAh92F9TJ7tqg2OwQ,547
102
- base_api_utils-1.1.117.dev3.dist-info/METADATA,sha256=sPMyYfHf9Gbm7EFIpSMVLvF55G80TmRqqMCjSAGVow8,2386
103
- base_api_utils-1.1.117.dev3.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
104
- base_api_utils-1.1.117.dev3.dist-info/top_level.txt,sha256=uRTtK_DlttSQ1sVajv2TKZy5XLVWawLxi2PUU-uCR7A,15
105
- base_api_utils-1.1.117.dev3.dist-info/RECORD,,
101
+ base_api_utils-1.1.117.dev4.dist-info/licenses/LICENSE,sha256=JKqaWBs87qnqDsZ1EEF0gnWR2iSAh92F9TJ7tqg2OwQ,547
102
+ base_api_utils-1.1.117.dev4.dist-info/METADATA,sha256=xw5ZCJD3OzO6hGy4nMcvMlHbblIGJ5CBgFgDHuFrU9w,2386
103
+ base_api_utils-1.1.117.dev4.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
104
+ base_api_utils-1.1.117.dev4.dist-info/top_level.txt,sha256=uRTtK_DlttSQ1sVajv2TKZy5XLVWawLxi2PUU-uCR7A,15
105
+ base_api_utils-1.1.117.dev4.dist-info/RECORD,,