-
-
Notifications
You must be signed in to change notification settings - Fork 51
Expand file tree
/
Copy pathpyproject.toml
More file actions
115 lines (99 loc) · 3.12 KB
/
Copy pathpyproject.toml
File metadata and controls
115 lines (99 loc) · 3.12 KB
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
[tool.poetry]
name = "Findpapers"
version = "0.6.7"
description = "Findpapers is an application that helps researchers who are looking for references for their work."
authors = ["Jonatas Grosman <jonatasgrosman@gmail.com>"]
maintainers = ["Jonatas Grosman <jonatasgrosman@gmail.com>"]
license = "MIT"
readme = "README.md"
homepage = "https://github.com/jonatasgrosman/findpapers"
repository = "https://github.com/jonatasgrosman/findpapers"
documentation = "https://github.com/jonatasgrosman/findpapers"
keywords = ["academic", "academic publications", "academic publishing", "arxiv", "bibtex", "collect papers", "crawler", "crossref", "ieee", "openalex", "paper", "papers", "pubmed", "research", "semantic scholar", "scientific papers", "scientific publications", "scientific publishing", "scopus", "scraper", "systematic mapping", "systematic review"]
[tool.poetry.dependencies]
python = "^3.11"
lxml = ">=6.1.0,<7"
requests = "^2.32.0"
curl-cffi = ">=0.15.0"
tqdm = "^4.67.0"
defusedxml = "^0.7.0"
urllib3 = ">=2.7.0"
idna = ">=3.15"
[tool.poetry.group.dev.dependencies]
pytest = "^9.0.3"
pytest-cov = "^7.0.0"
pytest-randomly = "^4.0.0"
pytest-socket = "^0.7.0"
coverage = {version = "^7.13.0", extras = ["toml"]}
types-requests = "^2.32.0"
lxml-stubs = "^0.5.0"
types-tqdm = "^4.67.0"
types-defusedxml = ">=0.7.0"
ruff = "^0.15.0"
mypy = "^1.19.1"
xenon = "^0.9.0"
pip-audit = "^2.9.0"
bandit = {version = "^1.9.0", extras = ["toml"]}
interrogate = "^1.7.0"
vulture = "^2.14.0"
pygments = ">=2.20.0"
[tool.poetry.urls]
issues = "https://github.com/jonatasgrosman/findpapers/issues"
[tool.pytest.ini_options]
junit_family = "xunit2"
minversion = "6.0"
addopts = "-ra -q -m 'not integration' --disable-socket"
testpaths = [
"tests"
]
markers = [
"integration: live integration/smoke tests that hit real external APIs",
]
[tool.coverage.run]
source = ["findpapers"]
[tool.coverage.report]
fail_under = 90
exclude_lines = [
"pragma: no cover",
"def __repr__",
"raise AssertionError",
"raise NotImplementedError",
"if 0:",
"if __name__ == .__main__.:"
]
[tool.mypy]
python_version = "3.11"
warn_return_any = true
check_untyped_defs = true
disallow_untyped_defs = true
warn_unused_ignores = true
no_implicit_optional = true
[[tool.mypy.overrides]]
module = ["tests.*", "typings.*"]
disallow_untyped_defs = false
[tool.ruff]
line-length = 100
[tool.ruff.lint]
# I = isort-compatible import sorting (replaces standalone isort).
select = ["E", "F", "W", "I", "B", "SIM", "PT", "UP", "C4", "RUF"]
# E501 is handled by ruff format, so we ignore it in the linter.
# RUF001/RUF002/RUF003 (ambiguous unicode, e.g. em/en dash) are enforced: see
# the "Coding Rules" section of CONTRIBUTING.md for the ASCII-only policy.
ignore = ["E501"]
[tool.ruff.format]
# Replaces standalone black.
quote-style = "double"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.bandit]
# B311: random.random() used only for jitter, not for cryptographic purposes.
skips = ["B311"]
[tool.interrogate]
ignore-init-method = true
ignore-init-module = true
fail-under = 95
quiet = false
verbose = 0
[tool.vulture]
min_confidence = 80