-
-
Notifications
You must be signed in to change notification settings - Fork 24
/
pyproject.toml
138 lines (123 loc) · 4.15 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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
# Useful links:
# - https://github.com/carlosperate/awesome-pyproject
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.poetry]
name = "pearl"
version = "2.3.12"
description="Pearl is a lightweight package manager for automating reproducible environments between different systems (Linux and OSX). It can be used for dotfiles, plugins, programs and any form of code accessible via git."
authors = ["Filippo Squillace <[email protected]>"]
license = "GPL-3.0-only"
readme = "README.md"
homepage = "http://github.com/pearl-core/pearl"
repository = "https://github.com/pearl-core/pearl/releases"
keywords=['pearl', 'shell', 'dotfiles', 'package manager']
# https://pypi.org/classifiers/
classifiers=[
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
'Natural Language :: English',
'License :: OSI Approved :: GNU General Public License v3 (GPLv3)',
"Operating System :: MacOS",
"Operating System :: POSIX :: Linux",
'Topic :: Software Development :: Build Tools',
"Topic :: System :: Software Distribution",
"Topic :: System :: Shells",
"Topic :: Utilities",
]
packages = [
{ include = "pearllib", from = "src" },
]
include = [
"CHANGELOG.md",
"AUTHORS.md",
"CONTRIBUTING.md",
"DEVELOPMENT.md",
"LICENSE",
]
exclude = [
"src/pearllib/static/buava/tests"
]
[tool.poetry.scripts]
pearl = "pearllib.pearl:main"
[tool.poetry.dependencies]
python = "^3.7"
# This package is only needed for python3.7 interpreter
# Python 3.8+ have an equivalent builtin library
# https://docs.python.org/3.9/library/importlib.metadata.html
importlib-metadata = "^4.12.0"
[tool.poetry.dev-dependencies]
bandit = "^1.7.4"
coverage = "^6.4.3"
twine = "^4.0.1"
watchdog = "^2.1.9"
black = "^22.6.0"
isort = "^5.10.1"
mypy = "^0.971"
pytest-cov = "^3.0.0"
pytest = "^7.1.2"
pytest-isort = "^3.0.0"
pytest-mypy = "^0.9.1"
types-pkg-resources = "^0.1.3"
[tool.black]
line-length = 100
[tool.isort]
known_first_party = ["pearllib"]
# required for compatibility with black:
profile = "black"
multi_line_output=3
include_trailing_comma=true
force_grid_wrap=0
use_parentheses=true
# To maintain consistency with other settings
line_length = 100
src_paths = [
"src",
"test",
]
[tool.mypy]
files=["src","tests"]
# See https://mypy.readthedocs.io/en/latest/config_file.html for more mypy options.
# Enables the type-checker on the interior of functions without type annotations.
check_untyped_defs = true
# Displaying specific error codes makes it easier to silence specific errors
# See also https://mypy.readthedocs.io/en/latest/error_codes.html
show_error_codes = true
# Show source code snippets and location markers in error messages
pretty = true
# Suppresses errors about packages which do not implement type-hint sharing.
# See also https://mypy.readthedocs.io/en/latest/running_mypy.html#missing-imports.
ignore_missing_imports = true
[tool.pytest.ini_options]
xfail_strict = true
# --duration: show the slowest 5 tests at the end
# --cov-fail-under: Enforce a minimum code coverage threshold.
addopts = "--mypy --isort -vv --durations=5 --color=yes --cov=pearllib --cov-fail-under 90 --verbose --cov-report term-missing --cov-report html:build/documentation/coverage --cov-report xml:build/documentation/coverage/coverage.xml"
testpaths = [
"tests",
]
# Additional coverage.py settings. The parallel flag and source values are
# necessary so that pytest-cov knows to alias the build artifact absolute
# paths to the relative ones from your package source.
[tool.coverage.run]
branch = true
parallel = true
[tool.coverage.paths]
source = [
"src/",
"build/lib/*/site-packages/"
]
[tool.coverage.report]
show_missing = true
# Uncomment the following line to fail to build when the coverage is too low. Do not use this
# if --cov-fail-under is used in pytest
# fail_under = 90
[tool.coverage.html]
directory = "build/documentation/coverage"
[tool.coverage.xml]
output = "build/documentation/coverage/coverage.xml"