forked from useblocks/libpdf
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpyproject.toml
124 lines (111 loc) · 4.61 KB
/
pyproject.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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
[tool.poetry]
name = "libpdf"
version = "0.0.1"
description = "Extract structured data from PDFs."
authors = [
"Marco Heinemann <[email protected]>",
]
maintainers = [
"Jui-Wen Chen <[email protected]>",
"Haiyang Zhang <[email protected]>",
]
license = 'MIT'
readme = 'README.rst'
homepage = 'http://pypi.python.org/pypi/libpdf'
repository = 'http://github.com/useblocks/libpdf'
documentation = 'http://libpdf.readthedocs.io/en/latest'
classifiers = [
'Development Status :: 3 - Alpha',
'Intended Audience :: Developers',
'License :: OSI Approved :: MIT License',
'Operating System :: OS Independent',
'Programming Language :: Python',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Topic :: Scientific/Engineering',
'Topic :: Scientific/Engineering :: Information Analysis',
'Topic :: Software Development',
'Topic :: Software Development :: Libraries',
'Topic :: Software Development :: Libraries :: Python Modules',
'Topic :: Text Processing',
'Topic :: Utilities',
]
include = [
'deps/*'
]
[tool.poetry.dependencies]
python = "^3.7"
chardet = "^4"
click = "^8"
importlib-metadata = { version = "^1.6.0", python = "~3.7" }
PyYAML = "^6"
"ruamel.yaml" = "^0.17"
# optional deps for progress bars
tqdm = { version = "^4.50.0", optional = true }
colorama = { version = "^0.4.4", optional = true }
# dependencies needed by pdfminer.six and pdfplumber which are deliverd as wheels in the deps folder
# the libs were patched and no upstream PR has been raised yet
# see [tool.poetry.dev-dependencies] for the forked libraries
pycryptodome = "^3.9.9"
sortedcontainers = "^2.3.0"
pillow = "~9.0.1" # cannot go higher because of this bug https://github.com/jsvine/pdfplumber/discussions/637
unicodecsv = "^0.14.1"
wand = "^0.6.5"
# optional deps for docs, needed to make RTD work with pyproject.toml
# see https://github.com/readthedocs/readthedocs.org/issues/4912#issuecomment-664002569
sphinx = { version = "*", optional = true }
sphinx_rtd_theme = { version = "*", optional = true }
sphinxcontrib-plantuml = { version = "*", optional = true }
[tool.poetry.extras]
tqdm = ["tqdm"]
colorama = ["colorama"]
docs = ["sphinx", "sphinx_rtd_theme", "sphinxcontrib-plantuml"]
[tool.poetry.dev-dependencies]
# forked libraries;
# they must be dev deps so make them invisible to PyPI and the egg/wheel requires section
# 'poetry install' installs those by default, so the Git deps are actually used instead of the wheels in the deps
# folder; see also libpdf/_import_forks.py
pdfplumber = { git = "https://github.com/useblocks/pdfplumber.git" }
"pdfminer.six" = {git = "https://github.com/useblocks/pdfminer.six", rev = "develop"}
# testing
pytest = "^7"
pytest-cov = "*"
tox = "*"
pytest-xdist = "*" # parallelisation
# linters / formatting
flake8 = "*"
flake8-blind-except = "*" # Checks for blind, catch-all except statements (only py27)
flake8-bugbear = "*" # Finding likely bugs and design problems in your program
flake8-builtins = "*" # Check for Python builtins being used as variables or parameters
flake8-commas = "*" # Flake8 lint for trailing commas
flake8-comprehensions = "*" # Help you write better list/set/dict comprehensions
flake8-debugger = "*" # ipdb/pdb statement checker plugin for flake8
flake8-deprecated = "*" # Warns about deprecated method calls.
flake8-docstrings = "*" # Uses pydocstyle to check docstrings (PEP 257)
flake8-import-order = "*" # Checks the ordering of import statements.
flake8-mutable = "*" # Checks for mutable defaults
flake8-pep3101 = "*" # Checks for old string formatting.
flake8-quotes = "*" # Enforce single quotes instead of double quotes
flake8-rst-docstrings = "*" # Validating Python docstrings markup as reStructuredText (RST)
flake8-string-format = "*" # Check the strings and parameters using str.format
flake8-tidy-imports = "*" # Find unnecessary import aliases
flake8-tuple = "*" # Check code for 1 element tuple
flake8-formatter-abspath = "*" # Formatter to get absolute file paths for IDE external tool calls
pylint = "*"
black = { version = "^22", allow-prereleases = true }
mypy = "^0.790"
# docs
sphinx = "*"
sphinx_rtd_theme = "*"
sphinxcontrib-plantuml = "*"
[tool.poetry.scripts]
libpdf = 'libpdf.core:main_cli'
[tool.black]
line-length = 120
target-version = ['py38']
skip-string-normalization = 'True'
[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"