sqlseed 0.1.0__tar.gz → 0.1.2__tar.gz

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.
Files changed (43) hide show
  1. {sqlseed-0.1.0 → sqlseed-0.1.2}/PKG-INFO +22 -22
  2. {sqlseed-0.1.0 → sqlseed-0.1.2}/README.md +21 -21
  3. {sqlseed-0.1.0 → sqlseed-0.1.2}/pyproject.toml +1 -1
  4. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/core/orchestrator.py +1 -1
  5. {sqlseed-0.1.0 → sqlseed-0.1.2}/.gitignore +0 -0
  6. {sqlseed-0.1.0 → sqlseed-0.1.2}/CHANGELOG.md +0 -0
  7. {sqlseed-0.1.0 → sqlseed-0.1.2}/LICENSE +0 -0
  8. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/__init__.py +0 -0
  9. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/_utils/__init__.py +0 -0
  10. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/_utils/logger.py +0 -0
  11. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/_utils/metrics.py +0 -0
  12. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/_utils/progress.py +0 -0
  13. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/_utils/schema_helpers.py +0 -0
  14. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/_utils/sql_safe.py +0 -0
  15. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/_version.py +0 -0
  16. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/cli/__init__.py +0 -0
  17. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/cli/main.py +0 -0
  18. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/config/__init__.py +0 -0
  19. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/config/loader.py +0 -0
  20. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/config/models.py +0 -0
  21. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/config/snapshot.py +0 -0
  22. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/core/__init__.py +0 -0
  23. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/core/column_dag.py +0 -0
  24. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/core/constraints.py +0 -0
  25. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/core/expression.py +0 -0
  26. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/core/mapper.py +0 -0
  27. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/core/relation.py +0 -0
  28. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/core/result.py +0 -0
  29. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/core/schema.py +0 -0
  30. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/core/transform.py +0 -0
  31. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/database/__init__.py +0 -0
  32. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/database/_protocol.py +0 -0
  33. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/database/optimizer.py +0 -0
  34. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/database/raw_sqlite_adapter.py +0 -0
  35. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/database/sqlite_utils_adapter.py +0 -0
  36. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/generators/__init__.py +0 -0
  37. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/generators/_protocol.py +0 -0
  38. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/generators/base_provider.py +0 -0
  39. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/generators/faker_provider.py +0 -0
  40. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/generators/mimesis_provider.py +0 -0
  41. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/generators/registry.py +0 -0
  42. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/generators/stream.py +0 -0
  43. {sqlseed-0.1.0 → sqlseed-0.1.2}/src/sqlseed/py.typed +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlseed
3
- Version: 0.1.0
3
+ Version: 0.1.2
4
4
  Summary: Declarative SQLite test data generation toolkit
5
5
  Project-URL: Homepage, https://github.com/sunbos/sqlseed
6
6
  Project-URL: Documentation, https://github.com/sunbos/sqlseed#readme
@@ -133,7 +133,7 @@ print(result)
133
133
 
134
134
  **🧮 表达式引擎 & 约束求解**
135
135
 
136
- 支持派生列计算(`CutCard4byte = sCardNo[-8:]`),唯一性约束回溯求解,超时保护防止死循环。
136
+ 支持派生列计算(`last_eight = card_number[-8:]`),唯一性约束回溯求解,超时保护防止死循环。
137
137
 
138
138
  </td>
139
139
  <td>
@@ -189,10 +189,10 @@ pip install sqlseed[all]
189
189
 
190
190
  ```bash
191
191
  # AI 智能分析插件(LLM 驱动)
192
- pip install -e "./plugins/sqlseed-ai"
192
+ pip install sqlseed-ai
193
193
 
194
194
  # MCP 服务器(让 AI 助手直接操作 sqlseed)
195
- pip install -e "./plugins/mcp-server-sqlseed"
195
+ pip install mcp-server-sqlseed
196
196
  ```
197
197
 
198
198
  <details>
@@ -356,7 +356,7 @@ with sqlseed.connect("app.db", provider="mimesis", locale="zh_CN") as db:
356
356
  # → orders: 50000 rows
357
357
  ```
358
358
 
359
- > **💡 提示**:如果两张表之间有同名列(如 `sUserNo`),即使没有声明外键约束,sqlseed 也会通过 **SharedPool 隐式关联机制**自动维持跨表一致性。
359
+ > **💡 提示**:如果两张表之间有同名列(如 `account_id`),即使没有声明外键约束,sqlseed 也会通过 **SharedPool 隐式关联机制**自动维持跨表一致性。
360
360
 
361
361
  ---
362
362
 
@@ -447,27 +447,27 @@ sqlseed v2.0 引入了列依赖 DAG 和表达式引擎,支持从已有列计
447
447
  ```yaml
448
448
  # 银行卡信息表场景
449
449
  tables:
450
- - name: card_info
450
+ - name: bank_cards
451
451
  count: 10000
452
452
  columns:
453
- - name: sCardNo
453
+ - name: card_number
454
454
  generator: pattern
455
455
  params:
456
456
  regex: "62[0-9]{17}" # 19 位银联卡号
457
457
  constraints:
458
458
  unique: true
459
459
 
460
- - name: CutCard4byte
461
- derive_from: sCardNo # 依赖 sCardNo
460
+ - name: last_eight
461
+ derive_from: card_number # 依赖 card_number
462
462
  expression: "value[-8:]" # 取后 8 位
463
463
  constraints:
464
464
  unique: true
465
465
 
466
- - name: CutCard3byte
467
- derive_from: sCardNo
466
+ - name: last_six
467
+ derive_from: card_number
468
468
  expression: "value[-6:]" # 取后 6 位
469
469
 
470
- - name: sUserNo
470
+ - name: account_id
471
471
  generator: pattern
472
472
  params:
473
473
  regex: "U[0-9]{10}"
@@ -476,10 +476,10 @@ tables:
476
476
  ```
477
477
 
478
478
  **运作原理**:
479
- 1. sqlseed 构建列依赖 DAG:`sCardNoCutCard4byte, CutCard3byte`
479
+ 1. sqlseed 构建列依赖 DAG:`card_numberlast_eight, last_six`
480
480
  2. 拓扑排序确定生成顺序
481
- 3. 先生成 `sCardNo`,再通过表达式 `value[-8:]` 计算 `CutCard4byte`
482
- 4. 如果 `CutCard4byte` 的唯一性约束失败,回溯重新生成 `sCardNo`
481
+ 3. 先生成 `card_number`,再通过表达式 `value[-8:]` 计算 `last_eight`
482
+ 4. 如果 `last_eight` 的唯一性约束失败,回溯重新生成 `card_number`
483
483
 
484
484
  #### 表达式引擎支持的函数
485
485
 
@@ -623,23 +623,23 @@ sqlseed replay snapshots/2026-04-15_033000_users.yaml
623
623
 
624
624
  ```bash
625
625
  # 安装 AI 插件
626
- pip install -e "./plugins/sqlseed-ai"
626
+ pip install sqlseed-ai
627
627
 
628
628
  # 设置 API Key
629
629
  export SQLSEED_AI_API_KEY="your-api-key"
630
630
  export SQLSEED_AI_BASE_URL="https://your-llm-api-endpoint"
631
631
 
632
632
  # AI 分析并生成配置
633
- sqlseed ai-suggest app.db --table card_info --output card_info.yaml
633
+ sqlseed ai-suggest app.db --table bank_cards --output bank_cards.yaml
634
634
 
635
635
  # 带自纠正的 AI 建议(默认 3 轮修正)
636
- sqlseed ai-suggest app.db --table card_info --output card_info.yaml --verify
636
+ sqlseed ai-suggest app.db --table bank_cards --output bank_cards.yaml --verify
637
637
 
638
638
  # 指定模型
639
- sqlseed ai-suggest app.db --table card_info --output card_info.yaml --model gpt-4o
639
+ sqlseed ai-suggest app.db --table bank_cards --output bank_cards.yaml --model gpt-4o
640
640
 
641
641
  # 跳过缓存
642
- sqlseed ai-suggest app.db --table card_info --output card_info.yaml --no-cache
642
+ sqlseed ai-suggest app.db --table bank_cards --output bank_cards.yaml --no-cache
643
643
  ```
644
644
 
645
645
  **AI 工作流程**:
@@ -663,7 +663,7 @@ sqlseed ai-suggest app.db --table card_info --output card_info.yaml --no-cache
663
663
 
664
664
  ```bash
665
665
  # 安装 MCP 服务器
666
- pip install -e "./plugins/mcp-server-sqlseed"
666
+ pip install mcp-server-sqlseed
667
667
 
668
668
  # 启动
669
669
  python -m mcp_server_sqlseed
@@ -680,7 +680,7 @@ python -m mcp_server_sqlseed
680
680
 
681
681
  这意味着你可以在 AI 助手中说:
682
682
 
683
- > "分析 `app.db` 中 `card_info` 表的结构,生成 YAML 配置,然后填充 5000 行数据。"
683
+ > "分析 `app.db` 中 `bank_cards` 表的结构,生成 YAML 配置,然后填充 5000 行数据。"
684
684
 
685
685
  AI 助手会依次调用 `inspect_schema` → `generate_yaml` → `execute_fill`,无需你手动编写任何代码。
686
686
 
@@ -81,7 +81,7 @@ print(result)
81
81
 
82
82
  **🧮 表达式引擎 & 约束求解**
83
83
 
84
- 支持派生列计算(`CutCard4byte = sCardNo[-8:]`),唯一性约束回溯求解,超时保护防止死循环。
84
+ 支持派生列计算(`last_eight = card_number[-8:]`),唯一性约束回溯求解,超时保护防止死循环。
85
85
 
86
86
  </td>
87
87
  <td>
@@ -137,10 +137,10 @@ pip install sqlseed[all]
137
137
 
138
138
  ```bash
139
139
  # AI 智能分析插件(LLM 驱动)
140
- pip install -e "./plugins/sqlseed-ai"
140
+ pip install sqlseed-ai
141
141
 
142
142
  # MCP 服务器(让 AI 助手直接操作 sqlseed)
143
- pip install -e "./plugins/mcp-server-sqlseed"
143
+ pip install mcp-server-sqlseed
144
144
  ```
145
145
 
146
146
  <details>
@@ -304,7 +304,7 @@ with sqlseed.connect("app.db", provider="mimesis", locale="zh_CN") as db:
304
304
  # → orders: 50000 rows
305
305
  ```
306
306
 
307
- > **💡 提示**:如果两张表之间有同名列(如 `sUserNo`),即使没有声明外键约束,sqlseed 也会通过 **SharedPool 隐式关联机制**自动维持跨表一致性。
307
+ > **💡 提示**:如果两张表之间有同名列(如 `account_id`),即使没有声明外键约束,sqlseed 也会通过 **SharedPool 隐式关联机制**自动维持跨表一致性。
308
308
 
309
309
  ---
310
310
 
@@ -395,27 +395,27 @@ sqlseed v2.0 引入了列依赖 DAG 和表达式引擎,支持从已有列计
395
395
  ```yaml
396
396
  # 银行卡信息表场景
397
397
  tables:
398
- - name: card_info
398
+ - name: bank_cards
399
399
  count: 10000
400
400
  columns:
401
- - name: sCardNo
401
+ - name: card_number
402
402
  generator: pattern
403
403
  params:
404
404
  regex: "62[0-9]{17}" # 19 位银联卡号
405
405
  constraints:
406
406
  unique: true
407
407
 
408
- - name: CutCard4byte
409
- derive_from: sCardNo # 依赖 sCardNo
408
+ - name: last_eight
409
+ derive_from: card_number # 依赖 card_number
410
410
  expression: "value[-8:]" # 取后 8 位
411
411
  constraints:
412
412
  unique: true
413
413
 
414
- - name: CutCard3byte
415
- derive_from: sCardNo
414
+ - name: last_six
415
+ derive_from: card_number
416
416
  expression: "value[-6:]" # 取后 6 位
417
417
 
418
- - name: sUserNo
418
+ - name: account_id
419
419
  generator: pattern
420
420
  params:
421
421
  regex: "U[0-9]{10}"
@@ -424,10 +424,10 @@ tables:
424
424
  ```
425
425
 
426
426
  **运作原理**:
427
- 1. sqlseed 构建列依赖 DAG:`sCardNoCutCard4byte, CutCard3byte`
427
+ 1. sqlseed 构建列依赖 DAG:`card_numberlast_eight, last_six`
428
428
  2. 拓扑排序确定生成顺序
429
- 3. 先生成 `sCardNo`,再通过表达式 `value[-8:]` 计算 `CutCard4byte`
430
- 4. 如果 `CutCard4byte` 的唯一性约束失败,回溯重新生成 `sCardNo`
429
+ 3. 先生成 `card_number`,再通过表达式 `value[-8:]` 计算 `last_eight`
430
+ 4. 如果 `last_eight` 的唯一性约束失败,回溯重新生成 `card_number`
431
431
 
432
432
  #### 表达式引擎支持的函数
433
433
 
@@ -571,23 +571,23 @@ sqlseed replay snapshots/2026-04-15_033000_users.yaml
571
571
 
572
572
  ```bash
573
573
  # 安装 AI 插件
574
- pip install -e "./plugins/sqlseed-ai"
574
+ pip install sqlseed-ai
575
575
 
576
576
  # 设置 API Key
577
577
  export SQLSEED_AI_API_KEY="your-api-key"
578
578
  export SQLSEED_AI_BASE_URL="https://your-llm-api-endpoint"
579
579
 
580
580
  # AI 分析并生成配置
581
- sqlseed ai-suggest app.db --table card_info --output card_info.yaml
581
+ sqlseed ai-suggest app.db --table bank_cards --output bank_cards.yaml
582
582
 
583
583
  # 带自纠正的 AI 建议(默认 3 轮修正)
584
- sqlseed ai-suggest app.db --table card_info --output card_info.yaml --verify
584
+ sqlseed ai-suggest app.db --table bank_cards --output bank_cards.yaml --verify
585
585
 
586
586
  # 指定模型
587
- sqlseed ai-suggest app.db --table card_info --output card_info.yaml --model gpt-4o
587
+ sqlseed ai-suggest app.db --table bank_cards --output bank_cards.yaml --model gpt-4o
588
588
 
589
589
  # 跳过缓存
590
- sqlseed ai-suggest app.db --table card_info --output card_info.yaml --no-cache
590
+ sqlseed ai-suggest app.db --table bank_cards --output bank_cards.yaml --no-cache
591
591
  ```
592
592
 
593
593
  **AI 工作流程**:
@@ -611,7 +611,7 @@ sqlseed ai-suggest app.db --table card_info --output card_info.yaml --no-cache
611
611
 
612
612
  ```bash
613
613
  # 安装 MCP 服务器
614
- pip install -e "./plugins/mcp-server-sqlseed"
614
+ pip install mcp-server-sqlseed
615
615
 
616
616
  # 启动
617
617
  python -m mcp_server_sqlseed
@@ -628,7 +628,7 @@ python -m mcp_server_sqlseed
628
628
 
629
629
  这意味着你可以在 AI 助手中说:
630
630
 
631
- > "分析 `app.db` 中 `card_info` 表的结构,生成 YAML 配置,然后填充 5000 行数据。"
631
+ > "分析 `app.db` 中 `bank_cards` 表的结构,生成 YAML 配置,然后填充 5000 行数据。"
632
632
 
633
633
  AI 助手会依次调用 `inspect_schema` → `generate_yaml` → `execute_fill`,无需你手动编写任何代码。
634
634
 
@@ -71,7 +71,7 @@ mimesis = "sqlseed.generators.mimesis_provider:MimesisProvider"
71
71
 
72
72
  [tool.hatch.version]
73
73
  source = "vcs"
74
- fallback-version = "0.1.0"
74
+ fallback-version = "0.1.2"
75
75
 
76
76
  [tool.hatch.build.targets.wheel]
77
77
  packages = ["src/sqlseed"]
@@ -372,7 +372,7 @@ class DataOrchestrator:
372
372
 
373
373
  When a column name exists in the SharedPool (generated by a previously
374
374
  filled table), automatically use those values as a foreign_key strategy.
375
- This handles cases like sUserNo appearing in multiple tables without
375
+ This handles cases like account_id appearing in multiple tables without
376
376
  an explicit FK constraint.
377
377
  """
378
378
  if not self._shared_pool._pools:
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes