-
Notifications
You must be signed in to change notification settings - Fork 90
Expand file tree
/
Copy pathpyproject.toml
More file actions
159 lines (149 loc) · 5.85 KB
/
pyproject.toml
File metadata and controls
159 lines (149 loc) · 5.85 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
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
# For more information about configuring project metadata for the
# setuptools build backend, please see
# https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html
[build-system]
build-backend = "setuptools.build_meta"
requires = [
# 61.0.0 was the first version of setuptools to offer a full-fledged
# backend that uses pyproject.toml for metadata configuration (in
# compliance with PEP 621):
# https://setuptools.pypa.io/en/stable/history.html#v61-0-0
#
# 77.0.0 was the first version of setuptools to support license
# expressions (in compliance with PEP 639):
# https://setuptools.pypa.io/en/stable/history.html#v77-0-0
#
# setuptools>=68.0.0 was the last version to support Python 3.7.
#
# setuptools>=75.3.2 was the last version to support Python 3.8.
"setuptools>=68.0.0; python_version == '3.7'",
"setuptools>=75.3.2; python_version == '3.8'",
"setuptools>=77.0.0; python_version >= '3.9'",
]
[project]
authors = [
{ name = "Cybersecurity and Infrastructure Security Agency", email = "github@cisa.dhs.gov" }
]
# See https://pypi.python.org/pypi?%3Aaction=list_classifiers
classifiers = [
# How mature is this project? Common values are
# 3 - Alpha
# 4 - Beta
# 5 - Production/Stable
"Development Status :: 4 - Beta",
"Environment :: Console",
# Indicate who your project is intended for
"Intended Audience :: Developers",
"Natural Language :: English",
"Operating System :: OS Independent",
# Specify the Python versions you support here. In particular, ensure
# that you indicate whether you support Python 2, Python 3 or both.
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
# "Programming Language :: Python :: 3.11",
# "Programming Language :: Python :: 3.12",
# "Programming Language :: Python :: 3.13",
# "Programming Language :: Python :: 3.14",
"Programming Language :: Python :: Implementation :: CPython",
]
dependencies = [
"docopt>=0.6.2",
"publicsuffixlist[update]>=0.9.2 ",
"pyopenssl>=17.5.0",
"pytablereader>=0.15.0",
"pytablewriter>=0.27.2",
"python-dateutil>=2.7.3",
"pytz>=2018.5",
"requests>=2.18.4",
"sslyze>=3.0.0,<5.0.0",
"wget>=3.2",
]
description = "Scan websites for HTTPS deployment best practices"
dynamic = ["readme", "version"]
keywords = ["https best practices"]
# Although PEP 639 allows us to specify the license via a simple SPDX
# string, the versions of setuptools we have to use for Python 3.7 and
# 3.8 do not allow this; hence, this antiquated format from the
# deprecated PEP 621.
license = { text = "CC0-1.0" }
name = "pshtt"
requires-python = ">=3.7"
[project.optional-dependencies]
# IMPORTANT: Keep type hinting-related dependencies of the dev section
# in sync with the mypy pre-commit hook configuration (see
# .pre-commit-config.yaml). Any changes to type hinting-related
# dependencies here should be reflected in the additional_dependencies
# field of the mypy pre-commit hook to avoid discrepancies in type
# checking between environments.
dev = [
"build",
"twine",
"types-docopt",
"types-pyOpenSSL",
"types-requests",
"types-urllib3",
]
test = [
"coverage",
"coveralls",
"pre-commit",
"pytest-cov",
"pytest",
]
[project.scripts]
pshtt = "pshtt.cli:main"
[project.urls]
homepage = "https://github.com/cisagov/pshtt"
issues = "https://github.com/cisagov/pshtt/issues"
# Landing page for CISA's cybersecurity mission
mission = "https://www.cisa.gov/cybersecurity"
source = "https://github.com/cisagov/pshtt"
[tool.flake8]
max-line-length = 80
# Select (turn on)
# * Complexity violations reported by mccabe (C) -
# http://flake8.pycqa.org/en/latest/user/error-codes.html#error-violation-codes
# * Documentation conventions compliance reported by pydocstyle (D) -
# http://www.pydocstyle.org/en/stable/error_codes.html
# * Default errors and warnings reported by pycodestyle (E and W) -
# https://pycodestyle.readthedocs.io/en/latest/intro.html#error-codes
# * Default errors reported by pyflakes (F) -
# http://flake8.pycqa.org/en/latest/glossary.html#term-pyflakes
# * Default warnings reported by flake8-bugbear (B) -
# https://github.com/PyCQA/flake8-bugbear#list-of-warnings
# * The B950 flake8-bugbear opinionated warning -
# https://github.com/PyCQA/flake8-bugbear#opinionated-warnings
select = ["C", "D", "E", "F", "W", "B", "B950"]
# Ignore flake8's default warning about "whitespace before ':'" as it
# is not PEP 8 compliant and conflicts with black's styling.
#
# Ignore flake8's default warning about maximum line length, which has
# a hard stop at the configured value. Instead we use
# flake8-bugbear's B950, which allows up to 10% overage.
#
# Also ignore flake8's warning about line breaks before binary
# operators. It no longer agrees with PEP8. See, for example, here:
# https://github.com/ambv/black/issues/21. Guido agrees here:
# https://github.com/python/peps/commit/c59c4376ad233a62ca4b3a6060c81368bd21e85b.
extend-ignore = ["E203", "E501", "W503"]
[tool.isort]
combine_star = true
force_sort_within_sections = true
import_heading_stdlib = "Standard Python Libraries"
import_heading_thirdparty = "Third-Party Libraries"
import_heading_firstparty = "cisagov Libraries"
# Run isort under the black profile to align with our other Python
# linting
profile = "black"
[tool.pytest.ini_options]
# Increase verbosity, display extra test summary info for tests that
# did not pass, display code coverage results, and enable debug
# logging.
addopts = "--verbose -ra --cov --log-cli-level=DEBUG"
[tool.setuptools.dynamic]
readme = {file = ["README.md"], content-type = "text/markdown"}
version = {attr = "pshtt._version.__version__"}