Metadata-Version: 2.4
Name: echotools
Version: 1.0.11
Summary: 通用基础设施 SDK：配置、日志、事件、调度、插件、协议、调用链
Author: nichengfuben
License: MIT
Project-URL: Homepage, https://github.com/nichengfuben/echotools
Project-URL: Repository, https://github.com/nichengfuben/echotools
Project-URL: Issues, https://github.com/nichengfuben/echotools/issues
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: typing-extensions>=4.7.0
Provides-Extra: toml
Requires-Dist: tomlkit>=0.11.0; extra == "toml"
Requires-Dist: tomli>=2.0.0; python_version < "3.11" and extra == "toml"
Provides-Extra: watch
Requires-Dist: watchdog>=3.0.0; extra == "watch"
Provides-Extra: http
Requires-Dist: aiohttp>=3.8.0; extra == "http"
Provides-Extra: socks
Requires-Dist: aiohttp-socks>=0.8.0; extra == "socks"
Provides-Extra: all
Requires-Dist: tomlkit>=0.11.0; extra == "all"
Requires-Dist: tomli>=2.0.0; python_version < "3.11" and extra == "all"
Requires-Dist: watchdog>=3.0.0; extra == "all"
Requires-Dist: aiohttp>=3.8.0; extra == "all"
Requires-Dist: aiohttp-socks>=0.8.0; extra == "all"
Provides-Extra: dev
Requires-Dist: pytest>=7.4.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.23.0; extra == "dev"
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
Requires-Dist: mypy>=1.5.0; extra == "dev"
Requires-Dist: black>=23.0.0; extra == "dev"
Requires-Dist: isort>=5.12.0; extra == "dev"

# echotools

通用基础设施 SDK：配置中心、日志、事件总线、调用链、任务调度、
插件框架、协议系统、自适应选择器，完全项目无关，兼容 Python 3.8-3.14。

## 安装

    pip install echotools[all]

## 快速开始

    from echotools import EchoTools

    et = EchoTools(service_name="myapp")
    et.logger.configure(level="INFO", color=True)
    cfg = et.config
    cfg.load("config.toml")

    with et.tracer.trace("request") as trace:
        with et.tracer.span(trace, "db") as span:
            span.set_tag("query", "select 1")

## 能力总览

- ConfigCenter      点路径配置 + 热重载 + 类型绑定
- LoggerManager     调用链注入 + 颜色 + 轮转
- EventBus          同步/异步事件
- Tracer            轻量调用链
- TaskDispatcher    单发/竞速 + 自适应选择
- PluginRegistry    自动发现 + 热重载
- get_protocol      XML/antml/original/bracket/nous/custom 协议
- ProxyManager      HTTP/HTTPS/SOCKS
- AutoUpdater       git 自动更新
- FileWatcher       轮询文件监视
