staran 0.2.4__py3-none-any.whl → 0.4.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: staran
3
- Version: 0.2.4
3
+ Version: 0.4.0
4
4
  Summary: staran - 高性能Python工具库
5
5
  Home-page: https://github.com/starlxa/staran
6
6
  Author: StarAn
@@ -24,13 +24,25 @@ Dynamic: requires-dist
24
24
  Dynamic: requires-python
25
25
  Dynamic: summary
26
26
 
27
- # Staran - 智能特征工程工具包
27
+ # Star## v0.4.0 新特性
28
+
29
+ - 📋 **独立Schema模块** - 专门的表结构定义和管理模块
30
+ - 📄 **文档自动生成** - 支持Markdown/PDF/HTML格式的技术文档生成
31
+ - 🏢 **业务域支持** - AUM等业务领域的标准表结构定义
32
+ - 🔗 **无缝集成** - Schema与特征工程examples模块完美集成
33
+ - 🛠️ **模块化引擎架构** - 独立的引擎模块,支持Spark、Hive、图灵平台
34
+ - 🔧 **统一接口设计** - 所有引擎提供一致的SQL生成、执行和下载接口
35
+ - 🎯 **继承复用架构** - TuringEngine继承SparkEngine,复用SQL生成逻辑
36
+ - 📦 **清晰代码分离** - SQL生成与平台特定执行逻辑完全分离
37
+ - 🚀 **易于扩展** - 新增数据库支持只需实现BaseEngine接口
38
+ - 📁 **独立引擎存储** - engines/文件夹专门存放所有数据库引擎
39
+ - 🔄 **向后兼容** - 保持对原有API的完全兼容工程工具包
28
40
 
29
41
  ## � 专为机器学习设计的Python工具包
30
42
 
31
43
  Staran是一个强大的特征工程和数据处理工具包,提供从数据到模型的完整解决方案。特别针对工银图灵平台优化,让特征工程和模型训练变得前所未有的简单。
32
44
 
33
- ## ✨ v0.2.4 新特性
45
+ ## ✨ v0.4.0 新特性
34
46
 
35
47
  - �️ **模块化引擎架构** - 独立的引擎模块,支持Spark、Hive、图灵平台
36
48
  - 🔧 **统一接口设计** - 所有引擎提供一致的SQL生成、执行和下载接口
@@ -82,6 +94,40 @@ result = turing_engine.create_table('my_table', sql, execute=True)
82
94
  download = turing_engine.download_table_data('my_table', 'file:///nfsHome/data.parquet')
83
95
  ```
84
96
 
97
+ ### Schema模块 - 表结构管理与文档生成
98
+
99
+ ```python
100
+ from staran import get_aum_schemas, export_aum_docs, SchemaDocumentGenerator
101
+
102
+ # 1. 获取预定义业务表结构
103
+ schemas = get_aum_schemas() # 获取AUM业务域的所有表结构
104
+
105
+ for table_type, schema in schemas.items():
106
+ print(f"{table_type}: {schema.table_name} ({len(schema.fields)}个字段)")
107
+
108
+ # 2. 生成业务文档
109
+ docs = export_aum_docs('./docs', 'markdown') # 生成Markdown格式文档
110
+
111
+ # 3. 自定义文档生成
112
+ generator = SchemaDocumentGenerator()
113
+ doc_path = generator.export_schema_doc(
114
+ schema=schemas['behavior'],
115
+ business_domain="AUM",
116
+ table_type="behavior",
117
+ format_type="markdown"
118
+ )
119
+
120
+ # 4. 与特征工程集成
121
+ from staran import create_aum_example, run_aum_example
122
+
123
+ # 基于预定义schema创建特征工程示例
124
+ example = create_aum_example()
125
+ summary = example.get_summary() # 获取特征统计信息
126
+
127
+ # 一键运行完整流程
128
+ results = run_aum_example('202507') # 生成916个特征
129
+ ```
130
+
85
131
  ### 特征工程 - SQL自动生成
86
132
 
87
133
  ```python
@@ -315,7 +361,12 @@ tomorrow = date.add_days(1) # 202504 (智能处理)
315
361
 
316
362
  ```
317
363
  staran/
318
- ├── __init__.py # 主包入口,v0.2.4功能导出
364
+ ├── __init__.py # 主包入口,v0.4.0功能导出
365
+ ├── schemas/ # 🆕 表结构定义与文档生成模块
366
+ │ ├── __init__.py # Schema模块入口
367
+ │ ├── document_generator.py # 文档生成器 (MD/PDF/HTML)
368
+ │ └── aum/ # AUM业务域表结构
369
+ │ └── __init__.py # AUM表结构定义
319
370
  ├── engines/ # 🆕 模块化引擎架构
320
371
  │ ├── __init__.py # 引擎模块入口
321
372
  │ ├── base.py # BaseEngine抽象基类
@@ -327,11 +378,14 @@ staran/
327
378
  │ ├── manager.py # FeatureManager (使用引擎架构)
328
379
  │ ├── schema.py # 表结构定义
329
380
  │ └── generator.py # 特征生成器
381
+ ├── examples/ # 🆕 完整示例模块
382
+ │ ├── __init__.py # 示例模块入口
383
+ │ └── aum_longtail.py # AUM代发长尾模型示例
330
384
  ├── tools/
331
385
  │ ├── __init__.py # 工具模块
332
386
  │ └── date.py # Date类实现
333
387
  ├── setup.py # 安装配置
334
- ├── README.md # 本文档 v0.2.4
388
+ ├── README.md # 本文档 v0.4.0
335
389
  └── quick-upload.sh # 快速部署脚本
336
390
  ```
337
391
 
@@ -355,27 +409,26 @@ sql = turing.generate_sql("SELECT user_id, amount FROM users", {"table": "test"}
355
409
  print(f"SQL生成测试: {'success' if sql else 'failed'}")
356
410
  ```
357
411
 
358
- ### 特征工程测试
412
+ ### AUM示例测试
359
413
  ```python
360
- from staran import TableSchema, FeatureManager
414
+ from staran import create_aum_example
361
415
 
362
- # 定义表结构
363
- schema = TableSchema('user_stats')
364
- schema.add_primary_key('user_id', 'string')
365
- schema.add_date_field('date', 'date')
366
- schema.add_field('amount', 'decimal', aggregatable=True)
367
- schema.set_monthly_unique(True)
416
+ # 创建示例并查看摘要
417
+ example = create_aum_example("dwegdata03000")
418
+ example.print_summary()
368
419
 
369
- # 创建管理器(使用引擎架构)
370
- manager = FeatureManager(engine_type='spark', database='analytics_db')
420
+ # 快速运行(测试模式,不执行实际SQL)
421
+ print("🎯 AUM长尾模型示例已准备就绪")
422
+ print("📊 包含4张业务表的完整特征工程流程")
423
+ ```
371
424
 
372
- # 生成特征并查看摘要
373
- summary = manager.get_feature_summary(schema)
374
- print(f"生成特征数: {summary['total']}")
425
+ ### 一键运行示例
426
+ ```python
427
+ from staran import run_aum_example
375
428
 
376
- # 生成聚合特征SQL
377
- result = manager.generate_feature_by_type(schema, 'aggregation', 2025, 7)
378
- print("SQL长度:", len(result['sql']))
429
+ # 最简单的使用方式
430
+ results = run_aum_example("202507") # 指定特征月份
431
+ print(f" 处理完成: {len(results)} 个表")
379
432
  ```
380
433
 
381
434
  ### Date工具测试
@@ -408,21 +461,38 @@ print(f"✅ 继承关系: 继承自{turing.__class__.__bases__[0].__name__}")
408
461
  print("🚀 环境就绪!开始特征工程之旅")
409
462
  ```
410
463
 
411
- ### 2. 完整ML流程
464
+ ### 2. 运行AUM示例
412
465
  ```python
413
- # 使用新引擎架构进行特征工程
414
- from staran import FeatureManager
415
-
416
- # 创建基于Turing引擎的特征管理器
417
- manager = FeatureManager(engine_type='turing', database='production_analytics')
466
+ # 最简单的方式 - 一行代码完成复杂特征工程
467
+ from staran import run_aum_example
418
468
 
419
- # 执行SQL并下载结果
420
- result = manager.execute_and_download(
421
- sql="SELECT user_id, features FROM ml_features WHERE dt='2025-07-28'",
422
- output_path="file:///nfsHome/ml_pipeline/"
469
+ results = run_aum_example(
470
+ feature_date="202507", # 特征月份
471
+ database="dwegdata03000", # 数据库名
472
+ output_path="file:///nfsHome/aum_features" # 输出路径
423
473
  )
424
474
 
425
- print(f"✅ 成功!使用{manager.engine.__class__.__name__}完成数据处理")
475
+ print(f"✅ 成功!处理了4张表,生成了完整的特征数据集")
476
+ print("📂 数据已保存到 /nfsHome/aum_features/ 目录")
477
+ ```
478
+
479
+ ### 3. 自定义特征工程
480
+ ```python
481
+ # 如需更多控制,使用详细API
482
+ from staran import create_aum_example
483
+
484
+ example = create_aum_example("dwegdata03000")
485
+
486
+ # 查看会生成哪些特征
487
+ example.print_summary()
488
+
489
+ # 运行特征工程
490
+ results = example.run("202507")
491
+
492
+ # 查看结果
493
+ for table_type, result in results.items():
494
+ if 'table_name' in result:
495
+ print(f"{table_type}: {result['table_name']}")
426
496
  ```
427
497
 
428
498
  ## 📊 性能优势
@@ -437,10 +507,58 @@ print(f"✅ 成功!使用{manager.engine.__class__.__name__}完成数据处理
437
507
  - **批量处理**: 并行下载和增量处理
438
508
  - **错误恢复**: 自动重试和断点续传
439
509
 
510
+ ## 🎯 完整示例
511
+
512
+ ### AUM代发长尾模型 - 简化API
513
+ 位置:`staran.examples` 模块
514
+
515
+ 基于真实金融业务场景的完整特征工程示例,展示了新的引擎架构优势:
516
+
517
+ ```python
518
+ # 最简单的使用方式
519
+ from staran import run_aum_example
520
+
521
+ # 一键运行完整特征工程流程
522
+ results = run_aum_example(
523
+ feature_date="202507", # 可选,默认当前月
524
+ database="dwegdata03000",
525
+ output_path="file:///nfsHome/aum_longtail"
526
+ )
527
+
528
+ print(f"✅ 特征工程完成!处理了 {len(results)} 个表")
529
+ ```
530
+
531
+ **更多控制的方式:**
532
+ ```python
533
+ from staran import create_aum_example
534
+
535
+ # 创建示例实例
536
+ example = create_aum_example("dwegdata03000")
537
+
538
+ # 查看特征摘要
539
+ example.print_summary()
540
+
541
+ # 运行特征工程
542
+ results = example.run("202507")
543
+ ```
544
+
545
+ **示例特点:**
546
+ - 🏦 **真实业务场景** - 4张银行核心业务表的完整处理
547
+ - 🔧 **智能特征配置** - A表(源表+聚合),其他表(全特征:环比5个月+同比1年)
548
+ - 📊 **多维度特征** - 客户行为、资产配置、交易统计、境外交易等
549
+ - 🚀 **简化API** - 一行代码完成复杂特征工程
550
+ - 📋 **完整文档** - 每个字段都有详细的业务含义说明
551
+
552
+ **数据表说明:**
553
+ - **A表** (`bi_hlwj_dfcw_f1_f4_wy`): 客户行为特征 → 仅生成原始拷贝+聚合特征
554
+ - **B表** (`bi_hlwj_zi_chan_avg_wy`): 资产平均余额 → 生成全部特征(聚合+环比5个月+同比1年)
555
+ - **C表** (`bi_hlwj_zi_chang_month_total_zb`): 月度资产配置 → 生成全部特征
556
+ - **D表** (`bi_hlwj_realy_month_stat_wy`): 月度实际统计 → 生成全部特征
557
+
440
558
  ## 📄 许可证
441
559
 
442
560
  MIT License
443
561
 
444
562
  ---
445
563
 
446
- **Staran v0.2.4** - 模块化引擎架构,让机器学习特征工程变得前所未有的简单 🌟
564
+ **Staran v0.4.0** - 模块化引擎架构,让机器学习特征工程变得前所未有的简单 🌟
@@ -0,0 +1,24 @@
1
+ staran/__init__.py,sha256=cBUxN-qmS_Bf8r-8k94VdA-OLvjdRZyxTNfgd-X_AE8,7234
2
+ staran/engines/__init__.py,sha256=aQCpDxY_JcKlApEsEp2wg_P3IwNDTCFb7OYcLHiPPmk,1627
3
+ staran/engines/base.py,sha256=IIN-QxPsO-q3KmQ3Lz0cB9bs6Oac0Wy5MIF605HrHVw,7969
4
+ staran/engines/hive.py,sha256=-KwZiAvK5cxwnoyYQlqGWrcZkeKhbd8QCX3chpbezd0,5894
5
+ staran/engines/spark.py,sha256=XPxzefD9UF8oigeQISBW892RINJ9dGLbl994FWpIKBc,9361
6
+ staran/engines/turing.py,sha256=XEKkEMMWedvaGxKQ2vEHmB3TWLNLxOu1upgiBylwqjA,15516
7
+ staran/examples/__init__.py,sha256=rXjHvD_EA1sl04WAcOMGnktOwZstjUxaei6bo7pPMII,229
8
+ staran/examples/aum_longtail.py,sha256=UFeLzhslS0Qw1defD9M8mI6Jq4G2BHoyqdjNfX0cgH0,9915
9
+ staran/examples/aum_longtail_old.py,sha256=wZW_3NsU8lOjohtzI1ewzFIqTDAt8lnUberQJVYePfs,21723
10
+ staran/features/__init__.py,sha256=uMloEuevUjUPfro8Yv4STwvxpSVL0J1xsQTzN_EkLpo,1828
11
+ staran/features/engines.py,sha256=kqdS2xjmCVi0Xz1Oc3WaTMIavgAriX8F7VvUgVcpfqo,10039
12
+ staran/features/generator.py,sha256=CI1F_PshOvokQJelsqSaVp-SNQpMc-WVmjMQKzgdeLw,23114
13
+ staran/features/manager.py,sha256=2-3Hc3qthtyzwiuQy5QTz6RfhKK3szoylconzI3moc4,5201
14
+ staran/features/schema.py,sha256=FwOfpTcxq4K8zkO3MFNqKPQBp_e8qY-N6gazqm9_lAQ,6067
15
+ staran/schemas/__init__.py,sha256=2RkcWCaIkrOHd37zzRCla0-jNg4cPnc6BGmmW5Vha0Y,652
16
+ staran/schemas/document_generator.py,sha256=Lm9rim6yPnT1U_aStaM4KtU9eKxHnDNVfJIusQf5zQY,13120
17
+ staran/schemas/aum/__init__.py,sha256=n_DuAH3ncaScS3hPR72Eq6RtcFj0WTp3fbXHVes3WsE,16743
18
+ staran/tools/__init__.py,sha256=KtudrYnxKD9HZEL4H-mrWlKrmsI3rYjJrLeC9YDTpG4,1054
19
+ staran/tools/date.py,sha256=-QyEMWVx6czMuOIwcV7kR3gBMRVOwb5qevo7GEFSJKE,10488
20
+ staran-0.4.0.dist-info/licenses/LICENSE,sha256=2EmsBIyDCono4iVXNpv5_px9qt2b7hfPq1WuyGVMNP4,1361
21
+ staran-0.4.0.dist-info/METADATA,sha256=doZ3FJjMqxkOgqYKz74dwlJk4ICd4I0P38Qv48YSJG4,18809
22
+ staran-0.4.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
23
+ staran-0.4.0.dist-info/top_level.txt,sha256=NOUZtXSh5oSIEjHrC0lQ9WmoKtD010Q00dghWyag-Zs,7
24
+ staran-0.4.0.dist-info/RECORD,,
@@ -1,8 +0,0 @@
1
- staran/__init__.py,sha256=wUE__5gRPVTm7Epdrc9cskI2VtgbmhCnGr63TE482dg,6768
2
- staran/tools/__init__.py,sha256=KtudrYnxKD9HZEL4H-mrWlKrmsI3rYjJrLeC9YDTpG4,1054
3
- staran/tools/date.py,sha256=-QyEMWVx6czMuOIwcV7kR3gBMRVOwb5qevo7GEFSJKE,10488
4
- staran-0.2.4.dist-info/licenses/LICENSE,sha256=2EmsBIyDCono4iVXNpv5_px9qt2b7hfPq1WuyGVMNP4,1361
5
- staran-0.2.4.dist-info/METADATA,sha256=4LPrB-WKoZ7AGGHon0uA1kZDDaHeX8zv1prSXuJYWwc,14510
6
- staran-0.2.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
7
- staran-0.2.4.dist-info/top_level.txt,sha256=NOUZtXSh5oSIEjHrC0lQ9WmoKtD010Q00dghWyag-Zs,7
8
- staran-0.2.4.dist-info/RECORD,,
File without changes