django-cfg 1.4.79__py3-none-any.whl → 1.4.81__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 django-cfg might be problematic. Click here for more details.

django_cfg/__init__.py CHANGED
@@ -32,7 +32,7 @@ Example:
32
32
  default_app_config = "django_cfg.apps.DjangoCfgConfig"
33
33
 
34
34
  # Version information
35
- __version__ = "1.4.79"
35
+ __version__ = "1.4.81"
36
36
  __license__ = "MIT"
37
37
 
38
38
  # Import registry for organized lazy loading
@@ -130,9 +130,8 @@ class OperationsGenerator:
130
130
 
131
131
  if return_type != "None":
132
132
  if operation.is_list_operation:
133
- # Paginated list response - extract results
134
- body_lines.append("data = response.json()")
135
- body_lines.append(f'return [{primary_response.schema_name}.model_validate(item) for item in data.get("results", [])]')
133
+ # Paginated list response - return full paginated object
134
+ body_lines.append(f"return {primary_response.schema_name}.model_validate(response.json())")
136
135
  else:
137
136
  body_lines.append(f"return {primary_response.schema_name}.model_validate(response.json())")
138
137
  else:
@@ -247,10 +246,9 @@ class OperationsGenerator:
247
246
  # Parse response
248
247
  if return_type != "None":
249
248
  if operation.is_list_operation:
250
- # List response - validate each item (paginated)
249
+ # List response - return full paginated object
251
250
  primary_schema = primary_response.schema_name
252
- body_lines.append("data = response.json()")
253
- body_lines.append(f'return [{primary_schema}.model_validate(item) for item in data.get("results", [])]')
251
+ body_lines.append(f"return {primary_schema}.model_validate(response.json())")
254
252
  else:
255
253
  # Single object response
256
254
  body_lines.append(f"return {return_type}.model_validate(response.json())")
@@ -474,9 +474,12 @@ class BaseParser(ABC):
474
474
  if schema.items is not None:
475
475
  return "array"
476
476
 
477
- # Special case: JSONField from Django has no type but description mentions JSON
478
- if schema.description and 'JSON' in schema.description:
479
- return "object"
477
+ # Special case: JSONField from Django has no type but description hints at dict/object
478
+ # Check for keywords like: JSON, configuration, settings, config, dict
479
+ if schema.description:
480
+ desc_lower = schema.description.lower()
481
+ if any(keyword in desc_lower for keyword in ['json', 'configuration', 'settings', 'config', 'dict']):
482
+ return "object"
480
483
 
481
484
  return "string" # Default
482
485
 
django_cfg/pyproject.toml CHANGED
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "django-cfg"
7
- version = "1.4.79"
7
+ version = "1.4.81"
8
8
  description = "Django AI framework with built-in agents, type-safe Pydantic v2 configuration, and 8 enterprise apps. Replace settings.py, validate at startup, 90% less code. Production-ready AI workflows for Django."
9
9
  readme = "README.md"
10
10
  keywords = [ "django", "configuration", "pydantic", "settings", "type-safety", "pydantic-settings", "django-environ", "startup-validation", "ide-autocomplete", "ai-agents", "enterprise-django", "django-settings", "type-safe-config",]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-cfg
3
- Version: 1.4.79
3
+ Version: 1.4.81
4
4
  Summary: Django AI framework with built-in agents, type-safe Pydantic v2 configuration, and 8 enterprise apps. Replace settings.py, validate at startup, 90% less code. Production-ready AI workflows for Django.
5
5
  Project-URL: Homepage, https://djangocfg.com
6
6
  Project-URL: Documentation, https://djangocfg.com
@@ -1,5 +1,5 @@
1
1
  django_cfg/README.md,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- django_cfg/__init__.py,sha256=KmiQbT6AuN7mb1-aQ3MZwBAMOvMfSTdzZdC66vAczbY,1620
2
+ django_cfg/__init__.py,sha256=iCxIyDvD1A7_qoi4DECsVYHAT4V8iAeOLwiw_-hD8cw,1620
3
3
  django_cfg/apps.py,sha256=72m3uuvyqGiLx6gOfE-BD3P61jddCCERuBOYpxTX518,1605
4
4
  django_cfg/config.py,sha256=y4Z3rnYsHBE0TehpwAIPaxr---mkvyKrZGGsNwYso74,1398
5
5
  django_cfg/apps/__init__.py,sha256=JtDmEYt1OcleWM2ZaeX0LKDnRQzPOavfaXBWG4ECB5Q,26
@@ -737,7 +737,7 @@ django_cfg/modules/django_client/core/generator/python/async_client_gen.py,sha25
737
737
  django_cfg/modules/django_client/core/generator/python/files_generator.py,sha256=cgJVL6OZFXQFiy3trgCK5NDfGQWygQBJNaDepDQx4Vc,6420
738
738
  django_cfg/modules/django_client/core/generator/python/generator.py,sha256=N-wkvS9uzAD_EveO9Df74Hfseu47Zi2ZjDfklZtVbO0,7672
739
739
  django_cfg/modules/django_client/core/generator/python/models_generator.py,sha256=STHAzFMXa_WluOmjR4HVM7ZK0LNz3nMCkaGdq6R-4h8,11979
740
- django_cfg/modules/django_client/core/generator/python/operations_generator.py,sha256=cOrL8wZhRlOECMXDTgfqjjhzZyhxJa1yQYMbGJjl1ms,10363
740
+ django_cfg/modules/django_client/core/generator/python/operations_generator.py,sha256=RVrfxr6gdki9rJ8j9bXTn7sxKopTTtp1uRReO6aw83w,10200
741
741
  django_cfg/modules/django_client/core/generator/python/sync_client_gen.py,sha256=3UeC901JBWhlN5XfC1WDH9ulnZmddyB9nR6ncntelTU,3489
742
742
  django_cfg/modules/django_client/core/generator/python/templates/__init__.py.jinja,sha256=eZEZQSz9dc7wjMiFtBtXv_8zVevZozAXwEQ1r1ODpsc,136
743
743
  django_cfg/modules/django_client/core/generator/python/templates/api_wrapper.py.jinja,sha256=tSUUFmv7-UYE-proGfYsdNNe88fS69kzqfC6Afkg66Q,4513
@@ -813,7 +813,7 @@ django_cfg/modules/django_client/core/ir/context.py,sha256=We-XTjfhEOlasUv2wMhDu
813
813
  django_cfg/modules/django_client/core/ir/operation.py,sha256=gwvTciqIAUS0Hb7TqVU1Zr_StU9ulG3Vf73V7jYTp_U,17182
814
814
  django_cfg/modules/django_client/core/ir/schema.py,sha256=TfG6iLlAJVa8Jtxis_nPmz4TrfTqRlocZFlv8pvBNj8,12561
815
815
  django_cfg/modules/django_client/core/parser/__init__.py,sha256=8luZt53hRdtLRPVMWG3zpaWK53sKGBabQGmkDCye4ow,2312
816
- django_cfg/modules/django_client/core/parser/base.py,sha256=BDivevszxdBThBEadv4yogBPdbdzuFsKDABUz4Ltf4E,23248
816
+ django_cfg/modules/django_client/core/parser/base.py,sha256=-6xCCxc7Y33TtcgFYsGKDpvABkNLUlZTA8iSXksnjdw,23471
817
817
  django_cfg/modules/django_client/core/parser/openapi30.py,sha256=f4v4bNODtLf6ifajpmATarUDStDts_Lnh-_T87ZwYdA,1641
818
818
  django_cfg/modules/django_client/core/parser/openapi31.py,sha256=6cBARQJQiXi63Efz874pfuH_e_w6YCReQrsqJj1hkJI,1922
819
819
  django_cfg/modules/django_client/core/parser/models/__init__.py,sha256=GrGazWB-rr-e_HBtOTFNRA2WjkyGM5MH85iAMs_cs7s,1690
@@ -1124,9 +1124,9 @@ django_cfg/utils/version_check.py,sha256=WO51J2m2e-wVqWCRwbultEwu3q1lQasV67Mw2aa
1124
1124
  django_cfg/CHANGELOG.md,sha256=jtT3EprqEJkqSUh7IraP73vQ8PmKUMdRtznQsEnqDZk,2052
1125
1125
  django_cfg/CONTRIBUTING.md,sha256=DU2kyQ6PU0Z24ob7O_OqKWEYHcZmJDgzw-lQCmu6uBg,3041
1126
1126
  django_cfg/LICENSE,sha256=xHuytiUkSZCRG3N11nk1X6q1_EGQtv6aL5O9cqNRhKE,1071
1127
- django_cfg/pyproject.toml,sha256=iNxRVFNFoJJU9mr4caj_cx9JfGut95dFZTSqKaqrYH0,8164
1128
- django_cfg-1.4.79.dist-info/METADATA,sha256=6mCTD-RxnYH_rAj68TI5pcUHu48sZ7mR1KNFPL1EfYw,22624
1129
- django_cfg-1.4.79.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
1130
- django_cfg-1.4.79.dist-info/entry_points.txt,sha256=Ucmde4Z2wEzgb4AggxxZ0zaYDb9HpyE5blM3uJ0_VNg,56
1131
- django_cfg-1.4.79.dist-info/licenses/LICENSE,sha256=xHuytiUkSZCRG3N11nk1X6q1_EGQtv6aL5O9cqNRhKE,1071
1132
- django_cfg-1.4.79.dist-info/RECORD,,
1127
+ django_cfg/pyproject.toml,sha256=29BiM1oUA0egfW4nQdWRCjWuARN1vFz8iPg2zMGCF_E,8164
1128
+ django_cfg-1.4.81.dist-info/METADATA,sha256=wWY1z8DixPWJfPbBYmZ2m_bA7gdiNQpABvMCgxhZnWs,22624
1129
+ django_cfg-1.4.81.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
1130
+ django_cfg-1.4.81.dist-info/entry_points.txt,sha256=Ucmde4Z2wEzgb4AggxxZ0zaYDb9HpyE5blM3uJ0_VNg,56
1131
+ django_cfg-1.4.81.dist-info/licenses/LICENSE,sha256=xHuytiUkSZCRG3N11nk1X6q1_EGQtv6aL5O9cqNRhKE,1071
1132
+ django_cfg-1.4.81.dist-info/RECORD,,