forked from projecthamster/hamster-cli
-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.cfg
243 lines (230 loc) · 7.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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
# This file exists within 'dob':
#
# https://github.com/hotoffthehamster/dob
#
# Copyright © 2018-2020 Landon Bouma. © 2015-2016 Eric Goller. All rights reserved.
#
# 'dob' is free software: you can redistribute it and/or modify it under the terms
# of the GNU General Public License as published by the Free Software Foundation,
# either version 3 of the License, or (at your option) any later version.
#
# 'dob' is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You can find the GNU General Public License reprinted in the file titled 'LICENSE',
# or visit <http://www.gnu.org/licenses/>.
# """Distributable Python application packaging metadata."""
# (lb): Note that using `-` or `_` in key names is interchangeable, e.g.,
# long-description is the
# same as long_description.
[metadata]
# NOTE: Values specified in setup.py will shadow those here.
# (Although there are very few values left in setup().)
name = dob
author = HotOffThe Hamster
author-email = [email protected]
home-page = https://github.com/hotoffthehamster/dob
description = journal and time tracker, supercharged for the terminal
long-description = file: README.rst
long-description-content-type = text/x-rst; charset=UTF-8
project_urls =
# Bug Tracker = https://bugs.launchpad.net/dob/
Documentation = https://dob.readthedocs.io/en/latest/
Source Code = https://github.com/hotoffthehamster/dob
license = GPLv3+
license-file = LICENSE
platform = any
# https://pypi.org/classifiers/
classifier =
License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Development Status :: 5 - Production/Stable
Environment :: Console
Intended Audience :: End Users/Desktop
License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Natural Language :: English
Operating System :: OS Independent
Programming Language :: Python :: 3
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.6
Programming Language :: Python
# Topic :: Artistic Software
Topic :: Office/Business :: News/Diary
# Topic :: Religion # Because Hamster *is* a religion!
Topic :: Text Processing
# Keywords for PyPI to display, and to use for search results.
keywords =
journal
diary
timesheet
timetrack
jrnl
rednotebook
todo.txt
prjct
hamster
fact
[options.entry_points]
console_scripts =
# <app>=<pkg>.<cls>.run
dob = dob.dob:run
[options]
# WIP/2020-01-24: (lb): setuptools RTD says to determine for one's DEVself
# if a project can run from zip, or must be installed to a directory, so
# here we go: Trying zip_safe = true until it blows up or takes off!
# https://setuptools.readthedocs.io/en/latest/setuptools.html#setting-the-zip-safe-flag
# - Supposedly bdist_egg indicates zip-safetyness, however:
#
# $ python setup.py bdist_egg
# ...
#
# # I see the same 'not-zip-safe' lines whether zip_safe = true or false.
# #
# $ python setup.py -v bdist_egg | grep zip
# copying dob.egg-info/not-zip-safe -> build/bdist.linux-x86_64/egg/EGG-INFO
# adding 'EGG-INFO/not-zip-safe'
#
# # Except when zip_safe = false, I see a 'zip-safe' file:
# #
# $ xxd dob.egg-info/zip-safe
# 00000000: 0a .
#
# # And then when zip_safe = true, I see a 'not-zip-safe' file:
# #
# $ xxd dob.egg-info/not-zip-safe
# 00000000: 0a .
#
# so I guess we'll have to commit, publish to test.PyPI, and find out the long way.
# FIXME/FOLLOW-UP/2020-01-24: After next PyPI release test:
# - Maybe set zip_safe = false.
# - Definitely cleanup this comment.
zip_safe = false
# Enable setuptools_scm's use_scm_version.
setup_requires =
setuptools
setuptools_scm
[coverage:report]
precision = 0
exclude_lines =
if __name__ == .__main__.:
[coverage:run]
branch = True
source = dob
[doc8]
ignore-path = .eggs/, *.egg-info/, .tox/, docs/_build/, tests/fixtures/
max-line-length = 89
# Specify encoding lest doc8 think it's 'Windows-1254' and raise UnicodeDecodeError.
file-encoding = utf-8
# DEVs: Uncomment verbose for TMI.
# verbose=1
# Babel i18n/l10n configuration.
#
# USAGE:
#
# pip install Babel
# python setup.py extract_messages
#
# SEE ALSO:
#
# http://babel.pocoo.org/en/latest/setup.html#extract-messages
#
[extract_messages]
input_dirs = dob
# FIXME/2018-04-22: (lb): Add locale files.
#output_file = dob/locale/dob.pot
output_file = messages.pot
[flake8]
# So that the user can call `flake8`, maintain an exclude list. (Another way
# to lint is via `make lint` or `tox -e flake8`, which call flake8 on exact
# paths, e.g., `flake8 setup.py source/ tests/`. Here we achieve same effect
# but by doing the opposite, being exclusive rather than inclusive.)
exclude =
# The build directory, if not ignored, has 50 or so lintable files.
build/
# Docs' conf.py is modified Sphinx boilerplate. That does not lint.
docs/conf.py
docs/_themes/sphinx_rtd_theme/
# Not ignoring .eggs adds 10 files.
.eggs/
# Not ignoring .tox adds tens of Ks files.
.tox/
# These directories don't contain any lintable files for flake8 to
# find, but ignore them anyway to save whatever time globbing takes.
dist/
*.egg-info/
.git/
htmlcov/
.pytest_cache/
__pycache__
max-line-length = 89
# See list of error codes (we can list here to ignore):
#
# https://pycodestyle.readthedocs.io/en/latest/intro.html#error-codes
#
# - Project-agnostic, universal behavior (that supports and enforces this
# and similar projects' style guides, i.e., this developer's preferences):
#
# - ✓ W391: blank line at end of file
#
# - (lb): Personal preference. So that, e.g., Vim's <C-End> is predictable
# and goes to first column of an empty last line, rather than to
# some unknown last column of a nonempty last line.
#
# - ✓ W503 line break before binary operator
#
# - (lb): I'm with Knuth, for readability, because columns align.
#
# Prefer this:
#
# if (some_thing
# and another
# and another_thing):
#
# over this:
#
# if (some_thing and
# another and
# another_thing):
#
# - Project- and dependency-specific, less common options:
#
# - ✗ W605 invalid escape sequence:
#
# - Specific to some Click library usage.
# - (lb): Was warned on regex, e.g., '\d{2}' was flagged.
# - (lb): Was warned on escape in Click help string, e.g., 'blah \# blah'.
#
ignore = W391,W503,W605
[isort]
# See: setup.cfg's [flake8] max-line-length = 89.
line_length = 89
# multi_line_output: 3 - Vertical Hanging Indent.
multi_line_output = 3
not_skip = __init__.py
known_third_party =
# SYNC_ME: setup.py:requirements
ansiwrap
click_hotoffthehamster
click_hotoffthehamster_alias
inflector
pedantic_timedelta
lazy_import
nark
tabulate
texttable
# Testing packages.
faker
factory
fauxfactory
freezegun
# past
pytest
pytest_factoryboy
known_first_party = gettext
sections = STDLIB,FIRSTPARTY,THIRDPARTY,LOCALFOLDER
[tool:pytest]
addopt =
--tb=short
--strict
--rsx