Metadata-Version: 2.4
Name: meca-common-config
Version: 1.1.0
Summary: 配置工具类
Author: dqlr
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: typing_extensions>=4.15.0

# 配置解析工具

为Python应用提供统一跨平台配置文件解析的工具类。根据应用名自动搜索多个标准位置的配置文件，支持优先级覆盖、指定文件覆盖。

## 安装

```bash
pip install meca-common-config
```

## 快速开始

```python
from meca.common.config import BaseConfig

# 初始化应用配置
config = BaseConfig(name='example')

# 查看配置文件搜索路径
config.show()

# 读取配置(支持类型转换)
port = config.getint('server', 'port', fallback=8080)
host = config.get('server', 'host', fallback='localhost)

# 打印所有配置
print(config)
```

## 配置文件路径

BaseConfig按照以下顺序搜索配置文件(后面的配置覆盖前面的配置)

**Linux系统**

1. /etc/`appname`
2. ${HOME}/etc/`appname`
3. ${PROJECT_HOME}/`appname`

**Windows系统**

1. %ProgramData%/`appname`
2. %APPDATA%/`appname`
3. %PROJECT_HOME%/`appname`

注意: 配置文件不需要特定扩展名。如果需要，在`appname`中指定。

## 详细用法

1. 基本配置读取

```python
# 初始化
config = BaseConfig(name='app')

# 指定特殊配置路径
config = BaseConfig(name='app').overwrite(values='other')

# 获取字符串值
config.get('section', 'option', fallback='123')

# 获取整数
config.getint('section', 'port')

# 获取布尔值
config.getboolean('section', 'debug')

# 获取浮点数
timeout = config.getfloat('section', 'timeout')
```

2. 查看配置路径

```python
config.show()
```

3. 覆盖配置文件

使用`overwrite()`方法清空现有配置并重新加载指定文件配置。

