erdscope 0.7.2__tar.gz → 0.9.0__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 (37) hide show
  1. {erdscope-0.7.2/erdscope.egg-info → erdscope-0.9.0}/PKG-INFO +10 -6
  2. {erdscope-0.7.2 → erdscope-0.9.0}/README.md +9 -5
  3. {erdscope-0.7.2 → erdscope-0.9.0}/erd.py +2442 -16
  4. {erdscope-0.7.2 → erdscope-0.9.0/erdscope.egg-info}/PKG-INFO +10 -6
  5. {erdscope-0.7.2 → erdscope-0.9.0}/erdscope.egg-info/SOURCES.txt +6 -1
  6. {erdscope-0.7.2 → erdscope-0.9.0}/pyproject.toml +1 -1
  7. erdscope-0.9.0/tests/test_dbml_input.py +493 -0
  8. {erdscope-0.7.2 → erdscope-0.9.0}/tests/test_e2e.py +372 -0
  9. erdscope-0.9.0/tests/test_emit_mermaid.py +447 -0
  10. erdscope-0.9.0/tests/test_emit_plantuml.py +488 -0
  11. {erdscope-0.7.2 → erdscope-0.9.0}/tests/test_erd.py +166 -0
  12. erdscope-0.9.0/tests/test_mermaid_input.py +343 -0
  13. {erdscope-0.7.2 → erdscope-0.9.0}/tests/test_pipeline.py +6 -1
  14. {erdscope-0.7.2 → erdscope-0.9.0}/tests/test_provider_contract.py +46 -0
  15. erdscope-0.9.0/tests/test_sqlalchemy_provider.py +280 -0
  16. {erdscope-0.7.2 → erdscope-0.9.0}/LICENSE +0 -0
  17. {erdscope-0.7.2 → erdscope-0.9.0}/erdscope.egg-info/dependency_links.txt +0 -0
  18. {erdscope-0.7.2 → erdscope-0.9.0}/erdscope.egg-info/entry_points.txt +0 -0
  19. {erdscope-0.7.2 → erdscope-0.9.0}/erdscope.egg-info/requires.txt +0 -0
  20. {erdscope-0.7.2 → erdscope-0.9.0}/erdscope.egg-info/top_level.txt +0 -0
  21. {erdscope-0.7.2 → erdscope-0.9.0}/setup.cfg +0 -0
  22. {erdscope-0.7.2 → erdscope-0.9.0}/tests/test_build.py +0 -0
  23. {erdscope-0.7.2 → erdscope-0.9.0}/tests/test_characterization.py +0 -0
  24. {erdscope-0.7.2 → erdscope-0.9.0}/tests/test_config_validation.py +0 -0
  25. {erdscope-0.7.2 → erdscope-0.9.0}/tests/test_db_integration.py +0 -0
  26. {erdscope-0.7.2 → erdscope-0.9.0}/tests/test_demo.py +0 -0
  27. {erdscope-0.7.2 → erdscope-0.9.0}/tests/test_diff.py +0 -0
  28. {erdscope-0.7.2 → erdscope-0.9.0}/tests/test_emit_config.py +0 -0
  29. {erdscope-0.7.2 → erdscope-0.9.0}/tests/test_emit_dbml.py +0 -0
  30. {erdscope-0.7.2 → erdscope-0.9.0}/tests/test_emit_digest.py +0 -0
  31. {erdscope-0.7.2 → erdscope-0.9.0}/tests/test_emit_json.py +0 -0
  32. {erdscope-0.7.2 → erdscope-0.9.0}/tests/test_excel_notes_groups.py +0 -0
  33. {erdscope-0.7.2 → erdscope-0.9.0}/tests/test_golden_format1.py +0 -0
  34. {erdscope-0.7.2 → erdscope-0.9.0}/tests/test_groups.py +0 -0
  35. {erdscope-0.7.2 → erdscope-0.9.0}/tests/test_merge_ir.py +0 -0
  36. {erdscope-0.7.2 → erdscope-0.9.0}/tests/test_notes.py +0 -0
  37. {erdscope-0.7.2 → erdscope-0.9.0}/tests/test_rails_schema.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: erdscope
3
- Version: 0.7.2
3
+ Version: 0.9.0
4
4
  Summary: Interactive, self-contained ER-diagram HTML and Excel table definitions from a MySQL, PostgreSQL, or SQLite database and/or application code (Rails / Prisma / Django) — single file, zero required dependencies
5
5
  Author: tas6
6
6
  License-Expression: MIT
@@ -42,7 +42,7 @@ Dynamic: license-file
42
42
  [![Python](https://img.shields.io/badge/Python-3.9%2B-3776AB)](https://pypi.org/project/erdscope/)
43
43
  [![License](https://img.shields.io/badge/license-MIT-14B8A6)](LICENSE)
44
44
 
45
- [Live demo](https://orapli.github.io/erdscope/) · [User manual](https://orapli.github.io/erdscope/manual.html) · [日本語マニュアル](https://orapli.github.io/erdscope/manual.ja.html)
45
+ [Live demo](https://orapli.github.io/erdscope/) · [Recipes](https://orapli.github.io/erdscope/recipes.html) · [User manual](https://orapli.github.io/erdscope/manual.html) · [日本語 README](README.ja.md)
46
46
  </div>
47
47
 
48
48
  erdscope generates a **self-contained, interactive ER diagram** and, when you want it,
@@ -69,7 +69,7 @@ account, or project setup required.
69
69
  | Start from | What erdscope reads | Good for |
70
70
  |---|---|---|
71
71
  | **A database** | MySQL, PostgreSQL, or SQLite catalogs | Exploring the schema that is actually deployed |
72
- | **Application code** | Rails, Prisma, or Django projects | Reviewing a project without database access |
72
+ | **Application code** | Rails, Prisma, Django, SQLAlchemy, or Laravel projects | Reviewing a project without database access |
73
73
  | **Config** | JSON or YAML source declarations, tables, relations, notes, and groups | Reusing settings, designing a schema, or adding documentation |
74
74
 
75
75
  Use just one source, or combine them. Physical database facts, application-level
@@ -97,7 +97,7 @@ erdscope sqlite:///path/to/app.db -o schema.html
97
97
  ### Review application models without a database
98
98
 
99
99
  ```bash
100
- # Rails, Prisma, or Django project — auto-detected
100
+ # Rails, Prisma, Django, SQLAlchemy, or Laravel project — auto-detected
101
101
  erdscope --models ./my-app -o schema.html
102
102
  ```
103
103
 
@@ -191,13 +191,15 @@ explicit CLI argument wins.
191
191
  | Option | Purpose |
192
192
  |---|---|
193
193
  | `--config PATH` | Load model sources, defaults, schema definitions or patches, notes, and groups |
194
- | `--models PATH` | Override config `models` with Rails, Prisma, or Django input; repeatable |
194
+ | `--models PATH` | Override config `models` with Rails, Prisma, Django, SQLAlchemy, or Laravel input; repeatable |
195
195
  | `--excel FILE.xlsx` | Also generate a table-definition workbook (includes Notes/Groups sheets when configured) |
196
196
  | `--emit-json FILE.json` | Also write a canonical JSON schema snapshot with a content fingerprint (`-` for stdout) |
197
197
  | `--emit-config FILE.yml\|.json` | Also write the schema as a config-authoring file, re-importable via `--config` (`-` for stdout, always JSON) |
198
198
  | `--diff SNAPSHOT.json` | Compare this run against a saved `--emit-json` snapshot and exit 0/1/2 instead of generating output (CI drift gate) |
199
199
  | `--emit-digest FILE.md` | Also write a token-efficient Markdown digest of the schema, with design notes, for LLMs/agents (`-` for stdout; `--digest-verbose` adds nullable/default/sql_type) |
200
200
  | `--emit-dbml FILE.dbml` | Also write a minimal DBML export of the schema — tables/columns/indexes/single-column-FK relations/table comments (`-` for stdout; no notes/groups/`TableGroup`) |
201
+ | `--emit-mermaid FILE.mmd` | Also write a Mermaid `erDiagram` export of the schema — tables/columns/PK-FK markers/relationships (`-` for stdout; no notes/groups) |
202
+ | `--emit-plantuml FILE.puml` | Also write a PlantUML entity-relationship export of the schema — tables/columns/PK-FK markers/relationships (`-` for stdout; no notes/groups) |
201
203
  | `--only 'user*,order*'` | Generate only matching tables |
202
204
  | `--exclude '*_logs'` | Leave matching tables out |
203
205
  | `--infer-fk` | Add clearly marked relation guesses from `*_id` columns |
@@ -208,13 +210,15 @@ For every option and config key, see the **[CLI and config reference](https://or
208
210
  ## Supported inputs
209
211
 
210
212
  erdscope is tested against MySQL 8.4, PostgreSQL 16, CPython's bundled SQLite, Rails
211
- 7.x/8.x projects, Prisma 5/6 schemas, and Django 4.2/5.x models. Details and parser
213
+ 7.x/8.x projects, Prisma 5/6 schemas, Django 4.2/5.x models, SQLAlchemy declarative
214
+ models (classic and 2.0 styles), and Laravel Eloquent models. Details and parser
212
215
  boundaries are listed in the
213
216
  [compatibility guide](https://orapli.github.io/erdscope/manual.html#verified-versions).
214
217
 
215
218
  ## Project resources
216
219
 
217
220
  - **[Live demo](https://orapli.github.io/erdscope/)** — explore a generated shop schema.
221
+ - **[Recipes](https://orapli.github.io/erdscope/recipes.html)** — task-oriented guides with copy-paste commands ([日本語](https://orapli.github.io/erdscope/recipes.ja.html)).
218
222
  - **[User manual](https://orapli.github.io/erdscope/manual.html)** — complete setup, viewer, config, export, and troubleshooting guide.
219
223
  - **[Examples](examples/)** — ready-to-run SQLite and config-only inputs.
220
224
  - **[Changelog](CHANGELOG.md)** — features and behavior by release.
@@ -8,7 +8,7 @@
8
8
  [![Python](https://img.shields.io/badge/Python-3.9%2B-3776AB)](https://pypi.org/project/erdscope/)
9
9
  [![License](https://img.shields.io/badge/license-MIT-14B8A6)](LICENSE)
10
10
 
11
- [Live demo](https://orapli.github.io/erdscope/) · [User manual](https://orapli.github.io/erdscope/manual.html) · [日本語マニュアル](https://orapli.github.io/erdscope/manual.ja.html)
11
+ [Live demo](https://orapli.github.io/erdscope/) · [Recipes](https://orapli.github.io/erdscope/recipes.html) · [User manual](https://orapli.github.io/erdscope/manual.html) · [日本語 README](README.ja.md)
12
12
  </div>
13
13
 
14
14
  erdscope generates a **self-contained, interactive ER diagram** and, when you want it,
@@ -35,7 +35,7 @@ account, or project setup required.
35
35
  | Start from | What erdscope reads | Good for |
36
36
  |---|---|---|
37
37
  | **A database** | MySQL, PostgreSQL, or SQLite catalogs | Exploring the schema that is actually deployed |
38
- | **Application code** | Rails, Prisma, or Django projects | Reviewing a project without database access |
38
+ | **Application code** | Rails, Prisma, Django, SQLAlchemy, or Laravel projects | Reviewing a project without database access |
39
39
  | **Config** | JSON or YAML source declarations, tables, relations, notes, and groups | Reusing settings, designing a schema, or adding documentation |
40
40
 
41
41
  Use just one source, or combine them. Physical database facts, application-level
@@ -63,7 +63,7 @@ erdscope sqlite:///path/to/app.db -o schema.html
63
63
  ### Review application models without a database
64
64
 
65
65
  ```bash
66
- # Rails, Prisma, or Django project — auto-detected
66
+ # Rails, Prisma, Django, SQLAlchemy, or Laravel project — auto-detected
67
67
  erdscope --models ./my-app -o schema.html
68
68
  ```
69
69
 
@@ -157,13 +157,15 @@ explicit CLI argument wins.
157
157
  | Option | Purpose |
158
158
  |---|---|
159
159
  | `--config PATH` | Load model sources, defaults, schema definitions or patches, notes, and groups |
160
- | `--models PATH` | Override config `models` with Rails, Prisma, or Django input; repeatable |
160
+ | `--models PATH` | Override config `models` with Rails, Prisma, Django, SQLAlchemy, or Laravel input; repeatable |
161
161
  | `--excel FILE.xlsx` | Also generate a table-definition workbook (includes Notes/Groups sheets when configured) |
162
162
  | `--emit-json FILE.json` | Also write a canonical JSON schema snapshot with a content fingerprint (`-` for stdout) |
163
163
  | `--emit-config FILE.yml\|.json` | Also write the schema as a config-authoring file, re-importable via `--config` (`-` for stdout, always JSON) |
164
164
  | `--diff SNAPSHOT.json` | Compare this run against a saved `--emit-json` snapshot and exit 0/1/2 instead of generating output (CI drift gate) |
165
165
  | `--emit-digest FILE.md` | Also write a token-efficient Markdown digest of the schema, with design notes, for LLMs/agents (`-` for stdout; `--digest-verbose` adds nullable/default/sql_type) |
166
166
  | `--emit-dbml FILE.dbml` | Also write a minimal DBML export of the schema — tables/columns/indexes/single-column-FK relations/table comments (`-` for stdout; no notes/groups/`TableGroup`) |
167
+ | `--emit-mermaid FILE.mmd` | Also write a Mermaid `erDiagram` export of the schema — tables/columns/PK-FK markers/relationships (`-` for stdout; no notes/groups) |
168
+ | `--emit-plantuml FILE.puml` | Also write a PlantUML entity-relationship export of the schema — tables/columns/PK-FK markers/relationships (`-` for stdout; no notes/groups) |
167
169
  | `--only 'user*,order*'` | Generate only matching tables |
168
170
  | `--exclude '*_logs'` | Leave matching tables out |
169
171
  | `--infer-fk` | Add clearly marked relation guesses from `*_id` columns |
@@ -174,13 +176,15 @@ For every option and config key, see the **[CLI and config reference](https://or
174
176
  ## Supported inputs
175
177
 
176
178
  erdscope is tested against MySQL 8.4, PostgreSQL 16, CPython's bundled SQLite, Rails
177
- 7.x/8.x projects, Prisma 5/6 schemas, and Django 4.2/5.x models. Details and parser
179
+ 7.x/8.x projects, Prisma 5/6 schemas, Django 4.2/5.x models, SQLAlchemy declarative
180
+ models (classic and 2.0 styles), and Laravel Eloquent models. Details and parser
178
181
  boundaries are listed in the
179
182
  [compatibility guide](https://orapli.github.io/erdscope/manual.html#verified-versions).
180
183
 
181
184
  ## Project resources
182
185
 
183
186
  - **[Live demo](https://orapli.github.io/erdscope/)** — explore a generated shop schema.
187
+ - **[Recipes](https://orapli.github.io/erdscope/recipes.html)** — task-oriented guides with copy-paste commands ([日本語](https://orapli.github.io/erdscope/recipes.ja.html)).
184
188
  - **[User manual](https://orapli.github.io/erdscope/manual.html)** — complete setup, viewer, config, export, and troubleshooting guide.
185
189
  - **[Examples](examples/)** — ready-to-run SQLite and config-only inputs.
186
190
  - **[Changelog](CHANGELOG.md)** — features and behavior by release.