exstruct 0.2.60__tar.gz → 0.2.62__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.
@@ -1,10 +1,9 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: exstruct
3
- Version: 0.2.60
3
+ Version: 0.2.62
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
@@ -56,7 +55,7 @@ Description-Content-Type: text/markdown
56
55
 
57
56
  # ExStruct — Excel Structured Extraction Engine
58
57
 
59
- [![PyPI version](https://badge.fury.io/py/exstruct.svg)](https://pypi.org/project/exstruct/) [![PyPI Downloads](https://static.pepy.tech/personalized-badge/exstruct?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads)](https://pepy.tech/projects/exstruct) ![Licence: BSD-3-Clause](https://img.shields.io/badge/license-BSD--3--Clause-blue?style=flat-square) [![pytest](https://github.com/harumiWeb/exstruct/actions/workflows/pytest.yml/badge.svg)](https://github.com/harumiWeb/exstruct/actions/workflows/pytest.yml)
58
+ [![PyPI version](https://badge.fury.io/py/exstruct.svg)](https://pypi.org/project/exstruct/) [![PyPI Downloads](https://static.pepy.tech/personalized-badge/exstruct?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads)](https://pepy.tech/projects/exstruct) ![Licence: BSD-3-Clause](https://img.shields.io/badge/license-BSD--3--Clause-blue?style=flat-square) [![pytest](https://github.com/harumiWeb/exstruct/actions/workflows/pytest.yml/badge.svg)](https://github.com/harumiWeb/exstruct/actions/workflows/pytest.yml) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/e081cb4f634e4175b259eb7c34f54f60)](https://app.codacy.com/gh/harumiWeb/exstruct/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
60
59
 
61
60
  ![ExStruct Image](/docs/assets/icon.webp)
62
61
 
@@ -1,6 +1,6 @@
1
1
  # ExStruct — Excel Structured Extraction Engine
2
2
 
3
- [![PyPI version](https://badge.fury.io/py/exstruct.svg)](https://pypi.org/project/exstruct/) [![PyPI Downloads](https://static.pepy.tech/personalized-badge/exstruct?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads)](https://pepy.tech/projects/exstruct) ![Licence: BSD-3-Clause](https://img.shields.io/badge/license-BSD--3--Clause-blue?style=flat-square) [![pytest](https://github.com/harumiWeb/exstruct/actions/workflows/pytest.yml/badge.svg)](https://github.com/harumiWeb/exstruct/actions/workflows/pytest.yml)
3
+ [![PyPI version](https://badge.fury.io/py/exstruct.svg)](https://pypi.org/project/exstruct/) [![PyPI Downloads](https://static.pepy.tech/personalized-badge/exstruct?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads)](https://pepy.tech/projects/exstruct) ![Licence: BSD-3-Clause](https://img.shields.io/badge/license-BSD--3--Clause-blue?style=flat-square) [![pytest](https://github.com/harumiWeb/exstruct/actions/workflows/pytest.yml/badge.svg)](https://github.com/harumiWeb/exstruct/actions/workflows/pytest.yml) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/e081cb4f634e4175b259eb7c34f54f60)](https://app.codacy.com/gh/harumiWeb/exstruct/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
4
4
 
5
5
  ![ExStruct Image](/docs/assets/icon.webp)
6
6
 
@@ -1,112 +1,119 @@
1
- [project]
2
- name = "exstruct"
3
- version = "0.2.60"
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", email = "ganaharumi@outlook.jp" }
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.62"
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
+ "mkdocstrings-python>=2.0.1",
29
+ "mypy>=1.19.0",
30
+ "pre-commit>=4.5.0",
31
+ "pytest>=9.0.1",
32
+ "pytest-cov>=7.0.0",
33
+ "pytest-mock>=3.15.1",
34
+ "ruff>=0.14.8",
35
+ ]
36
+
37
+ [project.optional-dependencies]
38
+ yaml = ["pyyaml>=6.0.3"]
39
+ toon = ["python-toon>=0.1.3"]
40
+ render = ["pypdfium2>=5.1.0", "Pillow>=12.0.0"]
41
+
42
+ [project.scripts]
43
+ exstruct = "exstruct.cli.main:main"
44
+
45
+ [project.urls]
46
+ Homepage = "https://harumiweb.github.io/exstruct/"
47
+ Repository = "https://github.com/harumiWeb/exstruct"
48
+ Issues = "https://github.com/harumiWeb/exstruct/issues"
49
+ Documentation = "https://harumiweb.github.io/exstruct/"
50
+
51
+ [tool.coverage.run]
52
+ omit = [
53
+ "tests/*",
54
+ "*/test_*.py",
55
+ "*/gen_py/*",
56
+ ]
57
+
58
+ [tool.ruff]
59
+ target-version = "py311"
60
+ src = ["exstruct"]
61
+
62
+ select = [
63
+ "E", # pycodestyle errors
64
+ "W", # pycodestyle warnings
65
+ "F", # pyflakes
66
+ "I", # import sorting
67
+ "UP", # pyupgrade
68
+ "B", # flake8-bugbear
69
+ "N", # naming
70
+ "C90", # complexity
71
+ "A", # flake8-builtins
72
+ "ANN", # type annotations
73
+ ]
74
+
75
+ ignore = [
76
+ "E501", # 行長は許容(Excel JSON は長くなりがち)
77
+ "B008", # Pydantic の default_factory を誤検知するため
78
+ "ANN101", # self に型を要求されてしまうため
79
+ "ANN102", # cls も同様
80
+ ]
81
+
82
+ fix = true
83
+
84
+ # 型ヒントのスタイル
85
+ [tool.ruff.lint]
86
+ extend-select = ["ANN"]
87
+
88
+ # import の並び替え設定
89
+ [tool.ruff.isort]
90
+ combine-as-imports = true
91
+ known-first-party = ["exstruct"]
92
+ force-sort-within-sections = true
93
+
94
+ # 複雑度チェック(関数の最大複雑度)
95
+ [tool.ruff.mccabe]
96
+ max-complexity = 12
97
+
98
+ [tool.ruff.per-file-ignores]
99
+ "tests/**/*.py" = ["N802", "N803", "N806"]
100
+
101
+
102
+ [tool.mypy]
103
+ packages = ["exstruct"]
104
+ python_version = "3.11"
105
+
106
+ # 外部ライブラリは一切チェックしない
107
+ ignore_missing_imports = true
108
+
109
+ # 自作コードは厳密にチェックする
110
+ strict = true
111
+
112
+ # Pydantic v2 向け
113
+ plugins = ["pydantic.mypy"]
114
+
115
+ [tool.pytest.ini_options]
116
+ markers = [
117
+ "com: requires Excel COM (Windows + Excel)",
118
+ "render: requires Excel COM and pypdfium2; set RUN_RENDER_SMOKE=1 to enable",
119
+ ]