Metadata-Version: 2.4
Name: lautpy
Version: 0.0.3.0
Summary: A python utils package
Author-email: elimes <elimes@qq.com>
License: Apache-2.0
Project-URL: Homepage, https://github.com/elimes/lautpy
Project-URL: Repository, https://github.com/elimes/lautpy
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
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: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: requests
Requires-Dist: numpy
Dynamic: license-file

<h1 align="center">:rocket: lautpy — 常用工具类 :facepunch:</h1>

轻量的 Python 工具集：管道式数据处理 + 日期/路径/哈希等常用工具函数。核心零强制依赖，第三方库（numpy/pandas/scikit-learn 等）按需可选。

## Install

```bash
pip install -U lautpy
```

## Pipe 管道工具

```python
from lautpy.pipe import *

# Unix 风格管道：data | func1 | func2
[1, 2, 3, 4] | xmap_(lambda x: x * 2) | xfilter_(lambda x: x > 3)   # [4, 6, 8]

# 进度条 + 日志 + 计时
for i in range(5) | xtqdm:
    logger.info("这是一个进度条")

with timer('LOG'):
    logger.info("打印一条log所花费的时间")
```

常用管道（约定：尾部下划线 = 立即求值返回 list）：

| 类别 | 管道 |
|---|---|
| 类型转换 | `xtuple` `xlist` `xset` `xarray` |
| 高阶函数 | `xmap` `xmap_` `xfilter` `xfilter_` `xenumerate` `xchain` `xchain_` `xreduce` `xdrop` `xdrop_` |
| 字典 | `xchain_dict` `xDictValues` `xDictRemove` `xgetitem` `xitemgetter` |
| 分组/去重 | `xgroup` `xUnique` `xsort` `xCounter` `xCounterUpdate` |
| 并发 | `xJobs` `xThreadPoolExecutor` `xProcessPoolExecutor` `xAsyncio` |
| 字符串 | `xjoin` `xstartswith` `xendswith` `xsse_parser` |

## 其他模块

```python
from lautpy import dates, hashing, paths

# 日期（纯标准库）
dates.date_difference(days=1)                    # 昨天
dates.timestamp2str(time.time())                 # 时间戳 -> 字符串
dates.get_nday_list(7)                           # 过去 7 天

# 哈希 / AB 实验（murmurhash 需 scikit-learn）
hashing.md5("key:value")
hashing.murmurhash(bins=100)                     # 与 Java Guava 口径一致
hashing.ABTest(expid='10001', ranger=(0, 99)).is_hit("userid")

# 路径 / 配置（yaml 支持需 pyyaml）
paths.file2json("config.yaml")                   # json/yaml -> dict
paths.path2list("dir", "*.txt")                  # 文件/目录展开
```

## 设计约定

- `import lautpy` 零第三方强制依赖，无导入副作用
- 第三方依赖的管道函数在库缺失时自动不可用，不影响其余功能
- `from lautpy.pipe import *` 仅导出公共 API（`__all__`），不泄漏实现细节

## License

Apache-2.0。部分代码移植自 [MeUtils](https://pypi.org/project/meutils/)（MIT License, Copyright (c) yuanjie），详见各模块 docstring。
