fiuai-sdk-python 0.11.4__tar.gz → 0.11.6__tar.gz

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.
Files changed (43) hide show
  1. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/PKG-INFO +1 -1
  2. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/pyproject.toml +1 -1
  3. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/__init__.py +1 -1
  4. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/client.py +3 -0
  5. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/context.py +5 -7
  6. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/http/client.py +8 -0
  7. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/type.py +4 -0
  8. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/util.py +6 -1
  9. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/.gitignore +0 -0
  10. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/CHANGELOG.md +0 -0
  11. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/LICENSE +0 -0
  12. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/README.md +0 -0
  13. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/auth/__init__.py +0 -0
  14. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/auth/context_mgr.py +0 -0
  15. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/auth/header.py +0 -0
  16. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/auth/helper.py +0 -0
  17. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/auth/type.py +0 -0
  18. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/bank.py +0 -0
  19. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/company.py +0 -0
  20. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/config.py +0 -0
  21. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/const.py +0 -0
  22. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/datatype.py +0 -0
  23. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/doctype.py +0 -0
  24. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/error.py +0 -0
  25. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/examples/fastapi_integration.py +0 -0
  26. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/http/__init__.py +0 -0
  27. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/item.py +0 -0
  28. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/perm.py +0 -0
  29. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/pkg/cache/__init__.py +0 -0
  30. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/pkg/cache/cache_client.py +0 -0
  31. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/pkg/cache/circuit_breaker.py +0 -0
  32. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/pkg/cache/decorator.py +0 -0
  33. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/pkg/cache/redis_manager.py +0 -0
  34. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/pkg/cache/types.py +0 -0
  35. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/pkg/scheduler/__init__.py +0 -0
  36. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/pkg/scheduler/runner.py +0 -0
  37. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/profile.py +0 -0
  38. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/resp.py +0 -0
  39. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/setup.py +0 -0
  40. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/utils/__init__.py +0 -0
  41. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/utils/ids.py +0 -0
  42. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/utils/logger.py +0 -0
  43. {fiuai_sdk_python-0.11.4 → fiuai_sdk_python-0.11.6}/src/fiuai_sdk_python/utils/text.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fiuai_sdk_python
3
- Version: 0.11.4
3
+ Version: 0.11.6
4
4
  Summary: FiuAI Python SDK - 企业级AI服务集成开发工具包
5
5
  Project-URL: Homepage, https://github.com/fiuai/fiuai-sdk-python
6
6
  Project-URL: Documentation, https://github.com/fiuai/fiuai-sdk-python#readme
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "fiuai_sdk_python"
3
- version = "0.11.4"
3
+ version = "0.11.6"
4
4
  description = "FiuAI Python SDK - 企业级AI服务集成开发工具包"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -11,7 +11,7 @@ from .context import (
11
11
  get_trace_id,
12
12
  )
13
13
 
14
- __version__ = "0.10.0"
14
+ __version__ = "0.11.6"
15
15
 
16
16
  __all__ = [
17
17
  'FiuaiSDK',
@@ -36,6 +36,7 @@ class FiuaiSDK(object):
36
36
  verify: bool=False,
37
37
  is_internal: bool = False,
38
38
  host: Optional[str] = None,
39
+ trust_env: bool = False,
39
40
  ):
40
41
  self.username = username
41
42
  self.auth_tenant_id = auth_tenant_id
@@ -50,6 +51,7 @@ class FiuaiSDK(object):
50
51
  "timeout": timeout,
51
52
  "follow_redirects": True,
52
53
  "proxy": None,
54
+ "trust_env": trust_env,
53
55
  }
54
56
  if is_internal:
55
57
  if host is None or not str(host).strip():
@@ -458,5 +460,6 @@ def get_client(username: str = None, auth_tenant_id: str = None, current_company
458
460
  verify=client_config.verify,
459
461
  is_internal=client_config.is_internal,
460
462
  host=client_config.host,
463
+ trust_env=client_config.trust_env,
461
464
  )
462
465
 
@@ -119,12 +119,11 @@ class RequestContext:
119
119
  tuple[bool, list]: (是否有效, 缺失字段列表)
120
120
  """
121
121
  if required_fields is None:
122
- # AuthHeader 的必需字段
122
+ # 最低有效上下文:已登录用户 + 租户;公司由各调用方按需传入 required_fields
123
123
  required_fields = [
124
124
  "x-fiuai-user",
125
- "x-fiuai-auth-tenant-id",
126
- "x-fiuai-current-company",
127
- "x-fiuai-client"
125
+ "x-fiuai-auth-tenant-id",
126
+ "x-fiuai-client",
128
127
  ]
129
128
 
130
129
  missing_fields = []
@@ -186,9 +185,8 @@ def validate_current_context(required_fields: list = None) -> tuple[bool, list]:
186
185
  if required_fields is None:
187
186
  required_fields = [
188
187
  "x-fiuai-user",
189
- "x-fiuai-auth-tenant-id",
190
- "x-fiuai-current-company",
191
- "x-fiuai-client"
188
+ "x-fiuai-auth-tenant-id",
189
+ "x-fiuai-client",
192
190
  ]
193
191
  return False, required_fields
194
192
 
@@ -281,6 +281,7 @@ def create_http_client(
281
281
  verify: bool = True,
282
282
  retry_count: int = 0,
283
283
  retry_interval: float = 1.0,
284
+ trust_env: bool = False,
284
285
  **kwargs: Any,
285
286
  ) -> httpx.AsyncClient:
286
287
  """创建带认证头拦截器的 httpx 异步客户端。"""
@@ -288,6 +289,7 @@ def create_http_client(
288
289
  "timeout": timeout,
289
290
  "follow_redirects": follow_redirects,
290
291
  "verify": verify,
292
+ "trust_env": trust_env,
291
293
  **kwargs,
292
294
  }
293
295
  if base_url is not None:
@@ -312,6 +314,7 @@ def create_sync_http_client(
312
314
  verify: bool = True,
313
315
  retry_count: int = 0,
314
316
  retry_interval: float = 1.0,
317
+ trust_env: bool = False,
315
318
  **kwargs: Any,
316
319
  ) -> httpx.Client:
317
320
  """创建带认证头拦截器的 httpx 同步客户端。"""
@@ -319,6 +322,7 @@ def create_sync_http_client(
319
322
  "timeout": timeout,
320
323
  "follow_redirects": follow_redirects,
321
324
  "verify": verify,
325
+ "trust_env": trust_env,
322
326
  **kwargs,
323
327
  }
324
328
  if base_url is not None:
@@ -347,6 +351,7 @@ def get_async_http_client(
347
351
  verify: bool = True,
348
352
  retry_count: int = 0,
349
353
  retry_interval: float = 1.0,
354
+ trust_env: bool = False,
350
355
  **kwargs: Any,
351
356
  ) -> httpx.AsyncClient:
352
357
  """获取全局 httpx 异步客户端(单例)。"""
@@ -359,6 +364,7 @@ def get_async_http_client(
359
364
  verify=verify,
360
365
  retry_count=retry_count,
361
366
  retry_interval=retry_interval,
367
+ trust_env=trust_env,
362
368
  **kwargs,
363
369
  )
364
370
  return _global_async_client
@@ -371,6 +377,7 @@ def get_sync_http_client(
371
377
  verify: bool = True,
372
378
  retry_count: int = 0,
373
379
  retry_interval: float = 1.0,
380
+ trust_env: bool = False,
374
381
  **kwargs: Any,
375
382
  ) -> httpx.Client:
376
383
  """获取全局 httpx 同步客户端(单例)。"""
@@ -383,6 +390,7 @@ def get_sync_http_client(
383
390
  verify=verify,
384
391
  retry_count=retry_count,
385
392
  retry_interval=retry_interval,
393
+ trust_env=trust_env,
386
394
  **kwargs,
387
395
  )
388
396
  return _global_sync_client
@@ -27,6 +27,10 @@ class ClientConfig(BaseModel):
27
27
  verify: bool
28
28
  is_internal: bool = False
29
29
  host: Optional[str] = None
30
+ trust_env: bool = Field(
31
+ default=False,
32
+ description="httpx trust_env:False 时不读环境代理;True 时信任环境(含 SSL_CERT_FILE / REQUESTS_CA_BUNDLE 等)。",
33
+ )
30
34
 
31
35
  @model_validator(mode="after")
32
36
  def validate_internal_requires_host(self) -> "ClientConfig":
@@ -37,6 +37,7 @@ class FiuaiConfig:
37
37
  verify: bool = False,
38
38
  is_internal: bool = False,
39
39
  host: Optional[str] = None,
40
+ trust_env: bool = False,
40
41
  ):
41
42
  """
42
43
  初始化 FiuaiSDK 全局配置
@@ -48,6 +49,7 @@ class FiuaiConfig:
48
49
  verify: 是否验证 SSL 证书
49
50
  is_internal: 是否通过内网地址访问 (需配合 host 注入 Host header)
50
51
  host: 内网访问时 Frappe 期望的站点 Host 名, is_internal 为 True 时必填
52
+ trust_env: 是否让 httpx 信任环境变量(代理、SSL_CERT_FILE 等)。默认 False,避免本机系统代理劫持 SDK 请求。
51
53
  """
52
54
 
53
55
  self.client_config = ClientConfig(
@@ -57,6 +59,7 @@ class FiuaiConfig:
57
59
  verify=verify,
58
60
  is_internal=is_internal,
59
61
  host=host,
62
+ trust_env=trust_env,
60
63
  )
61
64
 
62
65
 
@@ -89,6 +92,7 @@ def init_fiuai(
89
92
  verify: bool = False,
90
93
  is_internal: bool = False,
91
94
  host: Optional[str] = None,
95
+ trust_env: bool = False,
92
96
  ):
93
97
  """
94
98
  初始化 FiuaiSDK 全局配置
@@ -100,8 +104,9 @@ def init_fiuai(
100
104
  verify: 是否验证 SSL 证书
101
105
  is_internal: 是否通过内网地址访问
102
106
  host: 内网访问时站点 Host 名, is_internal 为 True 时必填
107
+ trust_env: 是否让 httpx 信任环境变量(代理、SSL_CERT_FILE 等)。默认 False。
103
108
  """
104
- _config.init(url, max_api_retry, timeout, verify, is_internal, host)
109
+ _config.init(url, max_api_retry, timeout, verify, is_internal, host, trust_env)
105
110
 
106
111
 
107
112
  ###### tools