exstruct 0.2.60__tar.gz → 0.2.61__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.
- {exstruct-0.2.60 → exstruct-0.2.61}/PKG-INFO +1 -2
- {exstruct-0.2.60 → exstruct-0.2.61}/pyproject.toml +118 -112
- {exstruct-0.2.60 → exstruct-0.2.61}/src/exstruct/__init__.py +282 -265
- {exstruct-0.2.60 → exstruct-0.2.61}/src/exstruct/core/integrate.py +386 -386
- {exstruct-0.2.60 → exstruct-0.2.61}/src/exstruct/engine.py +553 -553
- exstruct-0.2.61/src/exstruct/errors.py +35 -0
- {exstruct-0.2.60 → exstruct-0.2.61}/src/exstruct/io/__init__.py +555 -530
- {exstruct-0.2.60 → exstruct-0.2.61}/src/exstruct/models/__init__.py +74 -74
- {exstruct-0.2.60 → exstruct-0.2.61}/src/exstruct/render/__init__.py +40 -25
- {exstruct-0.2.60 → exstruct-0.2.61}/LICENSE +0 -0
- {exstruct-0.2.60 → exstruct-0.2.61}/README.md +0 -0
- {exstruct-0.2.60 → exstruct-0.2.61}/src/exstruct/cli/main.py +0 -0
- {exstruct-0.2.60 → exstruct-0.2.61}/src/exstruct/core/__init__.py +0 -0
- {exstruct-0.2.60 → exstruct-0.2.61}/src/exstruct/core/cells.py +0 -0
- {exstruct-0.2.60 → exstruct-0.2.61}/src/exstruct/core/charts.py +0 -0
- {exstruct-0.2.60 → exstruct-0.2.61}/src/exstruct/core/shapes.py +0 -0
- {exstruct-0.2.60 → exstruct-0.2.61}/src/exstruct/models/maps.py +0 -0
- {exstruct-0.2.60 → exstruct-0.2.61}/src/exstruct/models/types.py +0 -0
- {exstruct-0.2.60 → exstruct-0.2.61}/src/exstruct/py.typed +0 -0
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: exstruct
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.61
|
|
4
4
|
Summary: Excel to structured JSON (tables, shapes, charts) for LLM/RAG pipelines
|
|
5
5
|
Keywords: excel,structure,data,exstruct
|
|
6
6
|
Author: harumiWeb
|
|
7
|
-
Author-email: harumiWeb <ganaharumi@outlook.jp>
|
|
8
7
|
License: BSD 3-Clause License
|
|
9
8
|
|
|
10
9
|
Copyright (c) 2025, ExStruct Contributors
|
|
@@ -1,112 +1,118 @@
|
|
|
1
|
-
[project]
|
|
2
|
-
name = "exstruct"
|
|
3
|
-
version = "0.2.
|
|
4
|
-
description = "Excel to structured JSON (tables, shapes, charts) for LLM/RAG pipelines"
|
|
5
|
-
readme = "README.md"
|
|
6
|
-
license = { file = "LICENSE" }
|
|
7
|
-
keywords = ["excel", "structure", "data", "exstruct"]
|
|
8
|
-
authors = [
|
|
9
|
-
{ name = "harumiWeb"
|
|
10
|
-
]
|
|
11
|
-
requires-python = ">=3.11"
|
|
12
|
-
dependencies = [
|
|
13
|
-
"numpy>=2.3.5",
|
|
14
|
-
"openpyxl>=3.1.5",
|
|
15
|
-
"pandas>=2.3.3",
|
|
16
|
-
"pydantic>=2.12.5",
|
|
17
|
-
"scipy>=1.16.3",
|
|
18
|
-
"xlwings>=0.33.16",
|
|
19
|
-
]
|
|
20
|
-
|
|
21
|
-
[build-system]
|
|
22
|
-
requires = ["uv_build>=0.8.4,<0.9.0"]
|
|
23
|
-
build-backend = "uv_build"
|
|
24
|
-
|
|
25
|
-
[dependency-groups]
|
|
26
|
-
dev = [
|
|
27
|
-
"mkdocs-material>=9.7.0",
|
|
28
|
-
"mypy>=1.19.0",
|
|
29
|
-
"pre-commit>=4.5.0",
|
|
30
|
-
"pytest>=9.0.1",
|
|
31
|
-
"pytest-cov>=7.0.0",
|
|
32
|
-
"pytest-mock>=3.15.1",
|
|
33
|
-
"ruff>=0.14.8",
|
|
34
|
-
]
|
|
35
|
-
|
|
36
|
-
[project.optional-dependencies]
|
|
37
|
-
yaml = ["pyyaml>=6.0.3"]
|
|
38
|
-
toon = ["python-toon>=0.1.3"]
|
|
39
|
-
render = ["pypdfium2>=5.1.0", "Pillow>=12.0.0"]
|
|
40
|
-
|
|
41
|
-
[project.scripts]
|
|
42
|
-
exstruct = "exstruct.cli.main:main"
|
|
43
|
-
|
|
44
|
-
[project.urls]
|
|
45
|
-
Homepage = "https://harumiweb.github.io/exstruct/"
|
|
46
|
-
Repository = "https://github.com/harumiWeb/exstruct"
|
|
47
|
-
Issues = "https://github.com/harumiWeb/exstruct/issues"
|
|
48
|
-
Documentation = "https://harumiweb.github.io/exstruct/"
|
|
49
|
-
|
|
50
|
-
[tool.coverage.run]
|
|
51
|
-
omit = [
|
|
52
|
-
"tests/*",
|
|
53
|
-
"*/test_*.py",
|
|
54
|
-
"*/gen_py/*",
|
|
55
|
-
]
|
|
56
|
-
|
|
57
|
-
[tool.ruff]
|
|
58
|
-
target-version = "py311"
|
|
59
|
-
src = ["exstruct"]
|
|
60
|
-
|
|
61
|
-
select = [
|
|
62
|
-
"E", # pycodestyle errors
|
|
63
|
-
"W", # pycodestyle warnings
|
|
64
|
-
"F", # pyflakes
|
|
65
|
-
"I", # import sorting
|
|
66
|
-
"UP", # pyupgrade
|
|
67
|
-
"B", # flake8-bugbear
|
|
68
|
-
"N", # naming
|
|
69
|
-
"C90", # complexity
|
|
70
|
-
"A", # flake8-builtins
|
|
71
|
-
"ANN", # type annotations
|
|
72
|
-
]
|
|
73
|
-
|
|
74
|
-
ignore = [
|
|
75
|
-
"E501", # 行長は許容(Excel JSON は長くなりがち)
|
|
76
|
-
"B008", # Pydantic の default_factory を誤検知するため
|
|
77
|
-
"ANN101", # self に型を要求されてしまうため
|
|
78
|
-
"ANN102", # cls も同様
|
|
79
|
-
]
|
|
80
|
-
|
|
81
|
-
fix = true
|
|
82
|
-
|
|
83
|
-
# 型ヒントのスタイル
|
|
84
|
-
[tool.ruff.lint]
|
|
85
|
-
extend-select = ["ANN"]
|
|
86
|
-
|
|
87
|
-
# import の並び替え設定
|
|
88
|
-
[tool.ruff.isort]
|
|
89
|
-
combine-as-imports = true
|
|
90
|
-
known-first-party = ["exstruct"]
|
|
91
|
-
force-sort-within-sections = true
|
|
92
|
-
|
|
93
|
-
# 複雑度チェック(関数の最大複雑度)
|
|
94
|
-
[tool.ruff.mccabe]
|
|
95
|
-
max-complexity = 12
|
|
96
|
-
|
|
97
|
-
[tool.ruff.per-file-ignores]
|
|
98
|
-
"tests/**/*.py" = ["N802", "N803", "N806"]
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
[tool.mypy]
|
|
102
|
-
packages = ["exstruct"]
|
|
103
|
-
python_version = "3.11"
|
|
104
|
-
|
|
105
|
-
# 外部ライブラリは一切チェックしない
|
|
106
|
-
ignore_missing_imports = true
|
|
107
|
-
|
|
108
|
-
# 自作コードは厳密にチェックする
|
|
109
|
-
strict = true
|
|
110
|
-
|
|
111
|
-
# Pydantic v2 向け
|
|
112
|
-
plugins = ["pydantic.mypy"]
|
|
1
|
+
[project]
|
|
2
|
+
name = "exstruct"
|
|
3
|
+
version = "0.2.61"
|
|
4
|
+
description = "Excel to structured JSON (tables, shapes, charts) for LLM/RAG pipelines"
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
license = { file = "LICENSE" }
|
|
7
|
+
keywords = ["excel", "structure", "data", "exstruct"]
|
|
8
|
+
authors = [
|
|
9
|
+
{ name = "harumiWeb"}
|
|
10
|
+
]
|
|
11
|
+
requires-python = ">=3.11"
|
|
12
|
+
dependencies = [
|
|
13
|
+
"numpy>=2.3.5",
|
|
14
|
+
"openpyxl>=3.1.5",
|
|
15
|
+
"pandas>=2.3.3",
|
|
16
|
+
"pydantic>=2.12.5",
|
|
17
|
+
"scipy>=1.16.3",
|
|
18
|
+
"xlwings>=0.33.16",
|
|
19
|
+
]
|
|
20
|
+
|
|
21
|
+
[build-system]
|
|
22
|
+
requires = ["uv_build>=0.8.4,<0.9.0"]
|
|
23
|
+
build-backend = "uv_build"
|
|
24
|
+
|
|
25
|
+
[dependency-groups]
|
|
26
|
+
dev = [
|
|
27
|
+
"mkdocs-material>=9.7.0",
|
|
28
|
+
"mypy>=1.19.0",
|
|
29
|
+
"pre-commit>=4.5.0",
|
|
30
|
+
"pytest>=9.0.1",
|
|
31
|
+
"pytest-cov>=7.0.0",
|
|
32
|
+
"pytest-mock>=3.15.1",
|
|
33
|
+
"ruff>=0.14.8",
|
|
34
|
+
]
|
|
35
|
+
|
|
36
|
+
[project.optional-dependencies]
|
|
37
|
+
yaml = ["pyyaml>=6.0.3"]
|
|
38
|
+
toon = ["python-toon>=0.1.3"]
|
|
39
|
+
render = ["pypdfium2>=5.1.0", "Pillow>=12.0.0"]
|
|
40
|
+
|
|
41
|
+
[project.scripts]
|
|
42
|
+
exstruct = "exstruct.cli.main:main"
|
|
43
|
+
|
|
44
|
+
[project.urls]
|
|
45
|
+
Homepage = "https://harumiweb.github.io/exstruct/"
|
|
46
|
+
Repository = "https://github.com/harumiWeb/exstruct"
|
|
47
|
+
Issues = "https://github.com/harumiWeb/exstruct/issues"
|
|
48
|
+
Documentation = "https://harumiweb.github.io/exstruct/"
|
|
49
|
+
|
|
50
|
+
[tool.coverage.run]
|
|
51
|
+
omit = [
|
|
52
|
+
"tests/*",
|
|
53
|
+
"*/test_*.py",
|
|
54
|
+
"*/gen_py/*",
|
|
55
|
+
]
|
|
56
|
+
|
|
57
|
+
[tool.ruff]
|
|
58
|
+
target-version = "py311"
|
|
59
|
+
src = ["exstruct"]
|
|
60
|
+
|
|
61
|
+
select = [
|
|
62
|
+
"E", # pycodestyle errors
|
|
63
|
+
"W", # pycodestyle warnings
|
|
64
|
+
"F", # pyflakes
|
|
65
|
+
"I", # import sorting
|
|
66
|
+
"UP", # pyupgrade
|
|
67
|
+
"B", # flake8-bugbear
|
|
68
|
+
"N", # naming
|
|
69
|
+
"C90", # complexity
|
|
70
|
+
"A", # flake8-builtins
|
|
71
|
+
"ANN", # type annotations
|
|
72
|
+
]
|
|
73
|
+
|
|
74
|
+
ignore = [
|
|
75
|
+
"E501", # 行長は許容(Excel JSON は長くなりがち)
|
|
76
|
+
"B008", # Pydantic の default_factory を誤検知するため
|
|
77
|
+
"ANN101", # self に型を要求されてしまうため
|
|
78
|
+
"ANN102", # cls も同様
|
|
79
|
+
]
|
|
80
|
+
|
|
81
|
+
fix = true
|
|
82
|
+
|
|
83
|
+
# 型ヒントのスタイル
|
|
84
|
+
[tool.ruff.lint]
|
|
85
|
+
extend-select = ["ANN"]
|
|
86
|
+
|
|
87
|
+
# import の並び替え設定
|
|
88
|
+
[tool.ruff.isort]
|
|
89
|
+
combine-as-imports = true
|
|
90
|
+
known-first-party = ["exstruct"]
|
|
91
|
+
force-sort-within-sections = true
|
|
92
|
+
|
|
93
|
+
# 複雑度チェック(関数の最大複雑度)
|
|
94
|
+
[tool.ruff.mccabe]
|
|
95
|
+
max-complexity = 12
|
|
96
|
+
|
|
97
|
+
[tool.ruff.per-file-ignores]
|
|
98
|
+
"tests/**/*.py" = ["N802", "N803", "N806"]
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
[tool.mypy]
|
|
102
|
+
packages = ["exstruct"]
|
|
103
|
+
python_version = "3.11"
|
|
104
|
+
|
|
105
|
+
# 外部ライブラリは一切チェックしない
|
|
106
|
+
ignore_missing_imports = true
|
|
107
|
+
|
|
108
|
+
# 自作コードは厳密にチェックする
|
|
109
|
+
strict = true
|
|
110
|
+
|
|
111
|
+
# Pydantic v2 向け
|
|
112
|
+
plugins = ["pydantic.mypy"]
|
|
113
|
+
|
|
114
|
+
[tool.pytest.ini_options]
|
|
115
|
+
markers = [
|
|
116
|
+
"com: requires Excel COM (Windows + Excel)",
|
|
117
|
+
"render: requires Excel COM and pypdfium2; set RUN_RENDER_SMOKE=1 to enable",
|
|
118
|
+
]
|