forked from gilesknap/gphotos-sync
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetup.cfg
138 lines (122 loc) · 3.43 KB
/
setup.cfg
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
[metadata]
name = gphotos-sync
description = Google Photos and Albums backup tool
url = https://github.com/gilesknap/gphotos-sync
author = Giles Knap
author_email = gilesknap@gmail.com
license = Apache License 2.0
long_description = file: README.rst
long_description_content_type = text/x-rst
classifiers =
License :: OSI Approved :: Apache Software License
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
plaforrms =
Linux
Windows
Mac
[options]
python_requires = >=3.7
packages = find:
# =src is interpreted as {"": "src"}
# as per recommendation here https://hynek.me/articles/testing-packaging/
package_dir =
=src
setup_requires =
setuptools_scm[toml]>=6.2
install_requires =
attrs
exif
appdirs
requests_oauthlib
pyyaml>=4.2b1
types-PyYAML
psutil
google-auth-oauthlib
types-requests
[options.extras_require]
# For development tests/docs
dev =
black==22.3.0
flake8-isort
isort>5.0
mypy
pre-commit
pytest-cov
sphinx-rtd-theme-github-versions
tox
setuptools_scm[toml]>=6.2
mock
types-setuptools
[options.packages.find]
where = src
# Don't include our tests directory in the distribution
exclude = tests
# Specify any package data to be included in the wheel below.
[options.package_data]
gphotos_sync =
sql/gphotos_create.sql
[options.entry_points]
# Include a command line script
console_scripts =
gphotos-sync = gphotos_sync.Main:main
[mypy]
# Ignore missing stubs for modules we use
ignore_missing_imports = True
[isort]
profile=black
float_to_top=true
[flake8]
# Make flake8 respect black's line length (default 88),
max-line-length = 88
extend-ignore =
E203, # See https://github.com/PyCQA/pycodestyle/issues/373
F811, # support typing.overload decorator
F722, # allow Annotated[typ, some_func("some string")]
exclude =
.tox
.venv
[tool:pytest]
# Run pytest with all our checkers, and don't spam us with massive tracebacks on error
addopts =
--tb=native -vv --doctest-modules --doctest-glob="*.rst"
--cov=gphotos_sync --cov-report term --cov-report xml:cov.xml
# https://iscinumpy.gitlab.io/post/bound-version-constraints/#watch-for-warnings
filterwarnings =
error
# its difficult to ensure all sockets are closed in tests so ignore
ignore:.*socket.*:ResourceWarning
# Doctest python code in docs, python code in src docstrings, test functions in tests
testpaths =
tests
[coverage:run]
# This is covered in the versiongit test suite so exclude it here
omit = */_version_git.py
data_file = /tmp/gphotos_sync.coverage
[coverage:paths]
# Tests are run from installed location, map back to the src directory
source =
src
**/site-packages/
# Use tox to provide parallel linting and testing
# NOTE that we pre-install all tools in the dev dependencies (including tox).
# Hence the use of allowlist_externals instead of using the tox virtualenvs.
# This ensures a match between developer time tools in the IDE and tox tools.
[tox:tox]
minversion = 3.7
skipsdist=true
skipinstall=true
[testenv:{pre-commit,mypy,pytest,docs}]
setenv =
QT_QPA_PLATFORM = offscreen
allowlist_externals =
pytest
pre-commit
mypy
sphinx-build
commands =
pytest: pytest tests {posargs}
mypy: mypy src tests {posargs}
pre-commit: pre-commit run --all-files {posargs}
docs: sphinx-build -EWT --keep-going docs build/html {posargs}