pysfi 0.1.6__tar.gz → 0.1.7__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.
- {pysfi-0.1.6 → pysfi-0.1.7}/PKG-INFO +24 -1
- {pysfi-0.1.6 → pysfi-0.1.7}/pyproject.toml +137 -132
- {pysfi-0.1.6 → pysfi-0.1.7}/sfi/__init__.py +1 -1
- {pysfi-0.1.6 → pysfi-0.1.7}/sfi/bumpversion/__init__.py +1 -1
- pysfi-0.1.7/sfi/cli.py +11 -0
- pysfi-0.1.7/sfi/docscan/README.md +813 -0
- pysfi-0.1.7/sfi/docscan/__init__.py +3 -0
- pysfi-0.1.7/sfi/docscan/docscan.py +841 -0
- pysfi-0.1.7/sfi/docscan/docscan_gui.py +596 -0
- pysfi-0.1.7/sfi/docscan/tests/__init__.py +1 -0
- pysfi-0.1.7/sfi/docscan/tests/test_benchmark.py +362 -0
- pysfi-0.1.7/sfi/docscan/tests/test_docscan.py +457 -0
- pysfi-0.1.7/sfi/docscan/tests/test_enhanced.py +267 -0
- {pysfi-0.1.6 → pysfi-0.1.7}/sfi/makepython/makepython.py +30 -14
- pysfi-0.1.7/sfi/projectparse/__init__.py +0 -0
- pysfi-0.1.7/sfi/pyloadergen/__init__.py +0 -0
- pysfi-0.1.7/sfi/pyloadergen/tests/__init__.py +0 -0
- pysfi-0.1.7/sfi/pypacker/__init__.py +0 -0
- pysfi-0.1.7/sfi/taskkill/__init__.py +0 -0
- pysfi-0.1.7/sfi/which/__init__.py +0 -0
- {pysfi-0.1.6 → pysfi-0.1.7}/.gitignore +0 -0
- {pysfi-0.1.6 → pysfi-0.1.7}/README.md +0 -0
- {pysfi-0.1.6 → pysfi-0.1.7}/sfi/alarmclock/__init__.py +0 -0
- {pysfi-0.1.6 → pysfi-0.1.7}/sfi/alarmclock/alarmclock.py +0 -0
- {pysfi-0.1.6 → pysfi-0.1.7}/sfi/bumpversion/README.md +0 -0
- {pysfi-0.1.6 → pysfi-0.1.7}/sfi/bumpversion/bumpversion.py +0 -0
- {pysfi-0.1.6 → pysfi-0.1.7}/sfi/bumpversion/tests/__init__.py +0 -0
- {pysfi-0.1.6 → pysfi-0.1.7}/sfi/bumpversion/tests/test_bumpversion.py +0 -0
- {pysfi-0.1.6/sfi/filedate → pysfi-0.1.7/sfi/embedinstall}/__init__.py +0 -0
- {pysfi-0.1.6 → pysfi-0.1.7}/sfi/embedinstall/embedinstall.py +0 -0
- {pysfi-0.1.6 → pysfi-0.1.7}/sfi/filedate/README.md +0 -0
- {pysfi-0.1.6/sfi/makepython → pysfi-0.1.7/sfi/filedate}/__init__.py +0 -0
- {pysfi-0.1.6 → pysfi-0.1.7}/sfi/filedate/filedate.py +0 -0
- {pysfi-0.1.6/sfi/pdfsplit/tests → pysfi-0.1.7/sfi/makepython}/__init__.py +0 -0
- {pysfi-0.1.6/sfi/pyloadergen → pysfi-0.1.7/sfi/pdfsplit}/__init__.py +0 -0
- {pysfi-0.1.6 → pysfi-0.1.7}/sfi/pdfsplit/pdfsplit.py +0 -0
- {pysfi-0.1.6/sfi/pyloadergen → pysfi-0.1.7/sfi/pdfsplit}/tests/__init__.py +0 -0
- {pysfi-0.1.6 → pysfi-0.1.7}/sfi/pdfsplit/tests/test_pdfsplit.py +0 -0
- {pysfi-0.1.6 → pysfi-0.1.7}/sfi/projectparse/projectparse.py +0 -0
- {pysfi-0.1.6 → pysfi-0.1.7}/sfi/pyloadergen/pyloadergen.py +0 -0
- {pysfi-0.1.6 → pysfi-0.1.7}/sfi/pyloadergen/tests/test_pyloadergen.py +0 -0
- {pysfi-0.1.6 → pysfi-0.1.7}/sfi/pypacker/fspacker.py +0 -0
- {pysfi-0.1.6 → pysfi-0.1.7}/sfi/taskkill/taskkill.py +0 -0
- {pysfi-0.1.6 → pysfi-0.1.7}/sfi/which/which.py +0 -0
|
@@ -1,13 +1,36 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pysfi
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.7
|
|
4
4
|
Summary: Single File commands for Interactive python.
|
|
5
5
|
Requires-Python: >=3.8
|
|
6
6
|
Requires-Dist: tomli>=2.4.0; python_version < '3.11'
|
|
7
7
|
Provides-Extra: all
|
|
8
|
+
Requires-Dist: ebooklib>=0.18; extra == 'all'
|
|
9
|
+
Requires-Dist: markdown>=3.5; extra == 'all'
|
|
10
|
+
Requires-Dist: odfpy>=1.4.1; extra == 'all'
|
|
11
|
+
Requires-Dist: openpyxl>=3.1.0; extra == 'all'
|
|
12
|
+
Requires-Dist: pillow>=10.0.0; extra == 'all'
|
|
8
13
|
Requires-Dist: pymupdf>=1.24.11; extra == 'all'
|
|
14
|
+
Requires-Dist: pypdf>=3.0.0; extra == 'all'
|
|
15
|
+
Requires-Dist: pyside2>=5.15.2.1; extra == 'all'
|
|
16
|
+
Requires-Dist: pytesseract>=0.3.10; extra == 'all'
|
|
17
|
+
Requires-Dist: python-docx>=1.1.0; extra == 'all'
|
|
18
|
+
Requires-Dist: python-pptx>=0.6.21; extra == 'all'
|
|
19
|
+
Provides-Extra: extra
|
|
20
|
+
Requires-Dist: ebooklib>=0.18; extra == 'extra'
|
|
21
|
+
Requires-Dist: markdown>=3.5; extra == 'extra'
|
|
22
|
+
Requires-Dist: odfpy>=1.4.1; extra == 'extra'
|
|
23
|
+
Requires-Dist: pypdf>=3.0.0; extra == 'extra'
|
|
24
|
+
Provides-Extra: gui
|
|
25
|
+
Requires-Dist: pyside2>=5.15.2.1; extra == 'gui'
|
|
26
|
+
Provides-Extra: ocr
|
|
27
|
+
Requires-Dist: pillow>=10.0.0; extra == 'ocr'
|
|
28
|
+
Requires-Dist: pytesseract>=0.3.10; extra == 'ocr'
|
|
9
29
|
Provides-Extra: office
|
|
30
|
+
Requires-Dist: openpyxl>=3.1.0; extra == 'office'
|
|
10
31
|
Requires-Dist: pymupdf>=1.24.11; extra == 'office'
|
|
32
|
+
Requires-Dist: python-docx>=1.1.0; extra == 'office'
|
|
33
|
+
Requires-Dist: python-pptx>=0.6.21; extra == 'office'
|
|
11
34
|
Description-Content-Type: text/markdown
|
|
12
35
|
|
|
13
36
|
# pysfi
|
|
@@ -1,132 +1,137 @@
|
|
|
1
|
-
[build-system]
|
|
2
|
-
build-backend = "hatchling.build"
|
|
3
|
-
requires = ["hatchling"]
|
|
4
|
-
|
|
5
|
-
[project]
|
|
6
|
-
dependencies = ["tomli>=2.4.0; python_version<'3.11'"]
|
|
7
|
-
description = "Single File commands for Interactive python."
|
|
8
|
-
name = "pysfi"
|
|
9
|
-
readme = "README.md"
|
|
10
|
-
requires-python = ">=3.8"
|
|
11
|
-
version = "0.1.
|
|
12
|
-
|
|
13
|
-
[project.scripts]
|
|
14
|
-
alarmclk = "sfi.alarmclock.alarmclock:main"
|
|
15
|
-
bumpversion = "sfi.bumpversion.bumpversion:main"
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
[
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
".
|
|
61
|
-
".
|
|
62
|
-
".
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
"
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
"
|
|
88
|
-
"
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
"
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
"
|
|
117
|
-
"
|
|
118
|
-
"
|
|
119
|
-
"
|
|
120
|
-
"
|
|
121
|
-
"
|
|
122
|
-
"
|
|
123
|
-
"
|
|
124
|
-
]
|
|
125
|
-
|
|
126
|
-
[
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
1
|
+
[build-system]
|
|
2
|
+
build-backend = "hatchling.build"
|
|
3
|
+
requires = ["hatchling"]
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
dependencies = ["tomli>=2.4.0; python_version<'3.11'"]
|
|
7
|
+
description = "Single File commands for Interactive python."
|
|
8
|
+
name = "pysfi"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.8"
|
|
11
|
+
version = "0.1.7"
|
|
12
|
+
|
|
13
|
+
[project.scripts]
|
|
14
|
+
alarmclk = "sfi.alarmclock.alarmclock:main"
|
|
15
|
+
bumpversion = "sfi.bumpversion.bumpversion:main"
|
|
16
|
+
docscan = "sfi.docscan.docscan:main"
|
|
17
|
+
docscan-gui = "sfi.docscan.docscan_gui:main"
|
|
18
|
+
embedinstall = "sfi.embedinstall.embedinstall:main"
|
|
19
|
+
filedate = "sfi.filedate.filedate:main"
|
|
20
|
+
mkp = "sfi.makepython.makepython:main"
|
|
21
|
+
pdfsplit = "sfi.pdfsplit.pdfsplit:main"
|
|
22
|
+
projectparse = "sfi.projectparse.projectparse:main"
|
|
23
|
+
pyloadergen = "sfi.pyloadergen.pyloadergen:main"
|
|
24
|
+
pypacker = "sfi.pypacker.pypacker:main"
|
|
25
|
+
sfi = "sfi.cli:main"
|
|
26
|
+
taskk = "sfi.taskkill.taskkill:main"
|
|
27
|
+
wch = "sfi.which.which:main"
|
|
28
|
+
|
|
29
|
+
[project.optional-dependencies]
|
|
30
|
+
all = ["pysfi[gui,office,ocr,extra]"]
|
|
31
|
+
extra = ["ebooklib>=0.18", "markdown>=3.5", "odfpy>=1.4.1", "pypdf>=3.0.0"]
|
|
32
|
+
gui = ["PySide2>=5.15.2.1"]
|
|
33
|
+
ocr = ["Pillow>=10.0.0", "pytesseract>=0.3.10"]
|
|
34
|
+
office = [
|
|
35
|
+
"openpyxl>=3.1.0",
|
|
36
|
+
"pymupdf>=1.24.11",
|
|
37
|
+
"python-docx>=1.1.0",
|
|
38
|
+
"python-pptx>=0.6.21",
|
|
39
|
+
]
|
|
40
|
+
|
|
41
|
+
[tool.hatch.build.targets.wheel]
|
|
42
|
+
exclude = [
|
|
43
|
+
"sfi/*/README.md",
|
|
44
|
+
"sfi/*/dist",
|
|
45
|
+
"sfi/*/pyproject.toml",
|
|
46
|
+
"sfi/*/tests",
|
|
47
|
+
]
|
|
48
|
+
packages = ["sfi"]
|
|
49
|
+
|
|
50
|
+
# Only include necessary source files to minimize package size
|
|
51
|
+
[tool.hatch.build]
|
|
52
|
+
include = ["README.md", "sfi/**/*.py", "sfi/pyproject.toml"]
|
|
53
|
+
|
|
54
|
+
[tool.ruff]
|
|
55
|
+
line-length = 120
|
|
56
|
+
target-version = "py38"
|
|
57
|
+
|
|
58
|
+
# Exclude files and directories
|
|
59
|
+
exclude = [
|
|
60
|
+
".bzr",
|
|
61
|
+
".direnv",
|
|
62
|
+
".eggs",
|
|
63
|
+
".git",
|
|
64
|
+
".git-rewrite",
|
|
65
|
+
".hg",
|
|
66
|
+
".mypy_cache",
|
|
67
|
+
".nox",
|
|
68
|
+
".pants.d",
|
|
69
|
+
".pytype",
|
|
70
|
+
".ruff_cache",
|
|
71
|
+
".svn",
|
|
72
|
+
".tox",
|
|
73
|
+
".venv",
|
|
74
|
+
"__pypackages__",
|
|
75
|
+
"_build",
|
|
76
|
+
"buck-out",
|
|
77
|
+
"build",
|
|
78
|
+
"dist",
|
|
79
|
+
"node_modules",
|
|
80
|
+
"venv",
|
|
81
|
+
]
|
|
82
|
+
|
|
83
|
+
[tool.ruff.lint]
|
|
84
|
+
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
|
|
85
|
+
fixable = ["ALL"]
|
|
86
|
+
ignore = [
|
|
87
|
+
"B008", # Do not perform function calls in function arguments
|
|
88
|
+
"E501", # Line too long (handled by formatter)
|
|
89
|
+
]
|
|
90
|
+
select = [
|
|
91
|
+
"B", # flake8-bugbear
|
|
92
|
+
"C4", # flake8-comprehensions
|
|
93
|
+
"E", # pycodestyle errors
|
|
94
|
+
"F", # Pyflakes
|
|
95
|
+
"I", # isort
|
|
96
|
+
"N", # pep8-naming
|
|
97
|
+
"RUF", # Ruff-specific rules
|
|
98
|
+
"SIM", # flake8-simplify
|
|
99
|
+
"UP", # pyupgrade
|
|
100
|
+
"W", # pycodestyle warnings
|
|
101
|
+
]
|
|
102
|
+
unfixable = []
|
|
103
|
+
|
|
104
|
+
[tool.ruff.lint.isort]
|
|
105
|
+
known-first-party = ["sfi"]
|
|
106
|
+
|
|
107
|
+
[tool.ruff.lint.per-file-ignores]
|
|
108
|
+
"__init__.py" = ["F401"] # Allow unused imports
|
|
109
|
+
|
|
110
|
+
[tool.uv.workspace]
|
|
111
|
+
members = [
|
|
112
|
+
"sfi/alarmclock",
|
|
113
|
+
"sfi/bumpversion",
|
|
114
|
+
"sfi/docscan",
|
|
115
|
+
"sfi/embedinstall",
|
|
116
|
+
"sfi/filedate",
|
|
117
|
+
"sfi/makepython",
|
|
118
|
+
"sfi/pdfsplit",
|
|
119
|
+
"sfi/projectparse",
|
|
120
|
+
"sfi/pyloadergen",
|
|
121
|
+
"sfi/pypacker",
|
|
122
|
+
"sfi/taskkill",
|
|
123
|
+
"sfi/which",
|
|
124
|
+
]
|
|
125
|
+
|
|
126
|
+
[dependency-groups]
|
|
127
|
+
dev = [
|
|
128
|
+
"hatch>=1.14.2",
|
|
129
|
+
"pysfi[all]",
|
|
130
|
+
"pyside2>=5.15.2.1",
|
|
131
|
+
"pytest-benchmark>=4.0.0",
|
|
132
|
+
"pytest-cov>=5.0.0",
|
|
133
|
+
"pytest>=8.3.5",
|
|
134
|
+
"qdarkstyle>=3.2.3",
|
|
135
|
+
"ruff>=0.14.11",
|
|
136
|
+
"tomli>=2.4.0",
|
|
137
|
+
]
|
pysfi-0.1.7/sfi/cli.py
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import argparse
|
|
2
|
+
|
|
3
|
+
from sfi import __version__ as VERSION # noqa: N812
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def main():
|
|
7
|
+
parser = argparse.ArgumentParser()
|
|
8
|
+
parser.add_argument(
|
|
9
|
+
"-v", "--version", action="version", version=f"%(prog)s v{VERSION}", help="Print version and exit"
|
|
10
|
+
)
|
|
11
|
+
parser.parse_args()
|