xinops
营销数据运维一体化工具库(原 Functions_d + feishu_to_excel 合并重构版),Windows / Mac 通用。
与旧库的关系
- 原
Functions_d(1.46)与feishu_to_excel(0.0.5)保留为备份,不再更新 - 本库为新库名下的持续维护版本,
DataProcessingAndMessaging类的方法名与 Functions_d 1.46 完全一致 - 业务脚本迁移只需改一行 import:
# 旧写法
import Functions_d
ux = Functions_d.DataProcessingAndMessaging()
# 新写法
import xinops
ux = xinops.DataProcessingAndMessaging()
安装
pip install xinops # 核心功能(Windows/Mac 通用)
# 可选功能按需加装:
pip install "xinops[excel_win]" # writer_excel_data / screen(xlwings 操作本机 Excel,仅 Windows)
pip install "xinops[browser]" # init_edge_driver(Selenium Edge 自动化)
pip install "xinops[pinyin]" # name_to_pinyin / car_task_transfer
pip install "xinops[all]" # 全部装上(等同旧版 Functions_d 的安装效果)
Mac 用户注意:
writer_excel_data(xlwings)与screen(Excel 截图)依赖 Windows 上的本机 Excel, Mac 上请使用跨平台的writer_excel_data_new(openpyxl 方案,无需安装 Excel)。 xlwings/pythoncom 均为方法内延迟导入,Mac 上未安装不影响库的导入与其他功能。
密钥配置文件(必须)
本库不再在代码中硬编码任何密码。首次使用前,创建 xinops_secrets.yaml:
# 企业微信消息
wecom_corpid: "wxd4e113eb4c0136b9"
wecom_corpsecret: "你的secret"
wecom_agentid: "1000026"
# 企业微信文档
wecom_doc_corpid: "wxd4e113eb4c0136b9"
wecom_doc_corpsecret: "你的secret"
# 邮件 SMTP
smtp_sender: "cc_yingxiao@xin.com"
smtp_pwd: "你的密码"
smtp_host: "smtp.exmail.qq.com"
smtp_port: 465
# Hive 连接
hive_host: "172.20.2.190"
hive_port: 10023
hive_user: "cc_yingxiao"
hive_pwd: "你的密码"
查找顺序(找到即用):
- 环境变量
XINOPS_CONFIG(或旧名PYPI_KU_CONFIG)指定的路径 - 业务脚本所在目录及其上层目录(最多向上 3 层)——推荐放在脚本目录的上层,多台机器迁移时随脚本目录一起拷贝
- 用户主目录
所有配置项也支持同名环境变量覆盖(如 WECOM_CORPSECRET、SMTP_PWD、HIVE_PWD)。
配置文件含敏感信息,切勿提交 git、切勿放进本仓库目录(仓库 .gitignore 已加双保险)。
模块结构
| 模块 | 功能 |
|---|---|
_core.py |
日志初始化、密钥配置加载、脚本生命周期、日期时间与通用工具 |
_wecom.py |
企业微信消息 + 企微智能表格文档 |
_email.py |
邮件发送(旧版 yagmail / 新版 smtplib 带重试) |
_hive.py |
Hive SQL 执行(dml/dmls/dql/dqls)与错误提取 |
_excel.py |
Excel 模板写入(xlwings/openpyxl 双方案)、截图、格式化导出 |
_export.py |
Parquet / CSV 导出 |
_misc.py |
Edge 驱动、数据量检查、拼音转换、车辆任务、内网文件服务器上传 |
_feishu.py |
飞书表格上传器 FeishuSheetUploader(原 feishu_to_excel) |
使用示例
import xinops
# 主工具类(用法与 Functions_d 完全一致)
ux = xinops.DataProcessingAndMessaging()
ux.Start_Get_filepath_and_filename()
data = ux.run_sql(ux.path, "xxx.sql")
ux.writer_excel_data_new(path=ux.path, filename="muban.xlsx",
send_file=ux.path + "result.xlsx",
sheet_data=[{"data": data, "sheet_name": "明细",
"clear_range": "A2:U1000000", "date_range": "A1"}],
headers=True)
ux.uxin_wx("dongyang", "处理完成")
# 飞书表格上传(原 feishu_to_excel 功能)
uploader = xinops.FeishuSheetUploader(app_id="cli_xxx", app_secret="xxx")
token = uploader.create_spreadsheet(title="日报")
uploader.upload_to_sheet(token, "汇总", data, start_cell="A1")
ux.End_operation()
Release files for xinops 1.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| xinops-1.1.4.tar.gz | 48.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| xinops-1.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size:98.5 kB
Release files / xinops-1.1.4.tar.gz
| Download URL | xinops-1.1.4.tar.gz |
|---|---|
| Size | 48.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
40426850cef50f69228091b895753cf759b06dfa62e5e3d239c1329f4f0b8dc0
|
|
BLAKE2b-256 checksum How to use checksums |
e5b8e968e4cae384ff89b577b029a97e8261528067eac7db69211505e562de0e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.5
|
Release files / xinops-1.1.4-py3-none-any.whl
| Download URL | xinops-1.1.4-py3-none-any.whl |
|---|---|
| Size | 50.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
edd20d907345ff7818b6a04ce83646091c688716bbc50664496d78269bd1b626
|
|
BLAKE2b-256 checksum How to use checksums |
305f289f02cf3eb7b2e79136495ca0d58488177aefe4f306e06399b5d4f84e47
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.5
|