Files
Django/gvsdsdk/msync/__init__.py

74 lines
2.2 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""GVS-DSDK MSYNC 子包
将 MSYNC 相关模块统一组织在 gvsdsdk.msync 命名空间下。
自有实现(无 Django 依赖,子服务器可直接使用):
- auth: HMAC-SHA256 签名验证、服务令牌编解码
- client: 微服务通信客户端REST
- local_tx: 本地事务步骤处理器
服务端转发(依赖 Django ORM仅在主服务器可用
- registry: 服务注册/发现
- ogm: 对象全局映射
- transaction: Saga 分布式事务
"""
# 自有实现(无 Django 依赖,始终可用)
from gvsdsdk.msync.auth import ( # noqa
SignPayload,
VerifySignature,
GenerateChallenge,
BuildAuthPayload,
SignAuthPayload,
VerifyAuthPayload,
ServiceTokenEncoder,
)
from gvsdsdk.msync.client import ServiceClient, ServiceClientError # noqa
from gvsdsdk.msync.local_tx import LocalTransactionManager, StepHandler, local_tx # noqa
# 服务端转发Django ORM 依赖,延迟导入避免子服务器初始化报错)
def __getattr__(name):
_server_exports = {
'ServiceRegistry': 'gvsdsdk.msync.registry',
'RegistryError': 'gvsdsdk.msync.registry',
'OGMManager': 'gvsdsdk.msync.ogm',
'OGMError': 'gvsdsdk.msync.ogm',
'TransactionManager': 'gvsdsdk.msync.transaction',
'TransactionError': 'gvsdsdk.msync.transaction',
'StepExecutionError': 'gvsdsdk.msync.transaction',
}
if name in _server_exports:
import importlib
mod = importlib.import_module(_server_exports[name])
return getattr(mod, name)
raise AttributeError(f'module {__name__!r} has no attribute {name!r}')
__all__ = [
# auth (自有)
'SignPayload',
'VerifySignature',
'GenerateChallenge',
'BuildAuthPayload',
'SignAuthPayload',
'VerifyAuthPayload',
'ServiceTokenEncoder',
# client (自有)
'ServiceClient',
'ServiceClientError',
# local_tx (自有)
'LocalTransactionManager',
'StepHandler',
'local_tx',
# registry (服务端转发)
'ServiceRegistry',
'RegistryError',
# ogm (服务端转发)
'OGMManager',
'OGMError',
# transaction (服务端转发)
'TransactionManager',
'TransactionError',
'StepExecutionError',
]