python-nss-ng 1.2.0__tar.gz → 1.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- python_nss_ng-1.2.1/.git_archival.txt +4 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/PKG-INFO +1 -1
- python_nss_ng-1.2.1/_version.txt +1 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/setup_certs.py +1 -1
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/test_client_server.py +5 -3
- python_nss_ng-1.2.0/.git_archival.txt +0 -4
- python_nss_ng-1.2.0/_version.txt +0 -1
- python_nss_ng-1.2.0/mutants/pyproject.toml +0 -216
- python_nss_ng-1.2.0/mutants/src/deprecations.py +0 -539
- python_nss_ng-1.2.0/mutants/src/deprecations.py.meta +0 -26
- python_nss_ng-1.2.0/mutants/src/nss_context.py +0 -828
- python_nss_ng-1.2.0/mutants/src/nss_context.py.meta +0 -39
- python_nss_ng-1.2.0/mutants/src/secure_logging.py +0 -5602
- python_nss_ng-1.2.0/mutants/src/secure_logging.py.meta +0 -201
- python_nss_ng-1.2.0/mutants/test/conftest.py +0 -409
- python_nss_ng-1.2.0/mutants/test/exceptions.py +0 -69
- python_nss_ng-1.2.0/mutants/test/run_tests +0 -78
- python_nss_ng-1.2.0/mutants/test/setup_certs.py +0 -623
- python_nss_ng-1.2.0/mutants/test/test_cert_components.py +0 -330
- python_nss_ng-1.2.0/mutants/test/test_cert_request.py +0 -202
- python_nss_ng-1.2.0/mutants/test/test_certificate_advanced.py +0 -563
- python_nss_ng-1.2.0/mutants/test/test_cipher.py +0 -175
- python_nss_ng-1.2.0/mutants/test/test_client_server.py +0 -427
- python_nss_ng-1.2.0/mutants/test/test_deprecations.py +0 -207
- python_nss_ng-1.2.0/mutants/test/test_digest.py +0 -115
- python_nss_ng-1.2.0/mutants/test/test_documentation_accuracy.py +0 -432
- python_nss_ng-1.2.0/mutants/test/test_error_messages.py +0 -390
- python_nss_ng-1.2.0/mutants/test/test_examples.py +0 -471
- python_nss_ng-1.2.0/mutants/test/test_integration.py +0 -574
- python_nss_ng-1.2.0/mutants/test/test_misc.py +0 -48
- python_nss_ng-1.2.0/mutants/test/test_nss_context.py +0 -558
- python_nss_ng-1.2.0/mutants/test/test_ocsp.py +0 -378
- python_nss_ng-1.2.0/mutants/test/test_performance.py +0 -469
- python_nss_ng-1.2.0/mutants/test/test_pkcs12.py +0 -323
- python_nss_ng-1.2.0/mutants/test/test_platform_specific.py +0 -450
- python_nss_ng-1.2.0/mutants/test/test_property_based.py +0 -385
- python_nss_ng-1.2.0/mutants/test/test_secure_logging.py +0 -314
- python_nss_ng-1.2.0/mutants/test/test_security.py +0 -474
- python_nss_ng-1.2.0/mutants/test/test_thread_safety.py +0 -551
- python_nss_ng-1.2.0/mutants/test/test_type_hints.py +0 -328
- python_nss_ng-1.2.0/mutants/test/test_util.py +0 -365
- python_nss_ng-1.2.0/mutants/test/util.py +0 -144
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/.clangd +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/CONTRIBUTING.md +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/LICENSE +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/LICENSE.gpl +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/LICENSE.lgpl +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/LICENSE.mpl +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/LICENSES/Apache-2.0.txt +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/LICENSES/MPL-2.0.txt +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/MANIFEST.in +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/Makefile +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/QUICKSTART.md +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/README.md +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/REUSE.toml +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/SECURITY.md +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/doc/ChangeLog +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/doc/MAKEFILE_MIGRATION.md +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/doc/MANYLINUX_CONFIG.md +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/doc/MIGRATION.md +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/doc/MUTATION_TESTING.md +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/doc/TESTING.md +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/doc/examples/cert_dump.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/doc/examples/cert_trust.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/doc/examples/httplib_example.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/doc/examples/pbkdf2_example.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/doc/examples/ssl_cipher_info.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/doc/examples/ssl_example.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/doc/examples/ssl_version_range.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/doc/examples/verify_cert.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/doc/examples/verify_server.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/doc/get_api +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/meson.build +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/pyproject.toml +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/pyrightconfig.json +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/scripts/README.md +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/scripts/meson-version.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/scripts/run-all-tests.sh +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/src/NSPRerrs.h +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/src/SECerrs.h +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/src/SSLerrs.h +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/src/__init__.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/src/deprecations.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/src/io.pyi +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/src/nss.pyi +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/src/nss_context.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/src/py_nspr_common.h +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/src/py_nspr_error.c +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/src/py_nspr_error.h +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/src/py_nspr_io.c +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/src/py_nspr_io.h +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/src/py_nss.c +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/src/py_nss.h +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/src/py_shared_doc.h +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/src/py_ssl.c +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/src/py_ssl.h +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/src/py_traceback.h +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/src/secure_logging.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/src/ssl.pyi +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/conftest.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/exceptions.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/run_tests +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/test_cert_components.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/test_cert_request.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/test_certificate_advanced.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/test_cipher.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/test_deprecations.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/test_digest.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/test_documentation_accuracy.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/test_examples.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/test_misc.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/test_performance.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/test_pkcs12.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/test_platform_specific.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/test_property_based.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/test_secure_logging.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/test_security.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/test_thread_safety.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/test_type_hints.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/test_util.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/test_zzz_error_messages.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/test_zzz_integration.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/test_zzz_nonexistent_certs.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/test_zzz_nss_context.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/test_zzz_ocsp.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/test/util.py +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/typings/nss/__init__.pyi +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/typings/nss/error.pyi +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/typings/nss/io.pyi +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/typings/nss/nss.pyi +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/typings/nss/ssl.pyi +0 -0
- {python_nss_ng-1.2.0 → python_nss_ng-1.2.1}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-nss-ng
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.1
|
|
4
4
|
Summary: Python bindings for Network Security Services (NSS) and Netscape Portable Runtime (NSPR)
|
|
5
5
|
Keywords: nss,nspr,cryptography,ssl,tls,pki,x509,security
|
|
6
6
|
Author-Email: John Dennis <jdennis@redhat.com>, Matthew Watkins <mwatkins@linuxfoundation.org>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.2.1
|
|
@@ -667,7 +667,7 @@ def setup_certs(args):
|
|
|
667
667
|
logging.info('Certificate nickname "%s"\n%s', nickname, format_cert(options, nickname))
|
|
668
668
|
|
|
669
669
|
logging.info("---------- Summary ----------")
|
|
670
|
-
logging.info('NSS database name="%s", password="
|
|
670
|
+
logging.info('NSS database name="%s", password="[REDACTED]"', options.db_name)
|
|
671
671
|
logging.info("system FIPS mode=%s", get_system_fips_enabled())
|
|
672
672
|
logging.info("DB FIPS mode=%s", get_db_fips_enabled(options.db_name))
|
|
673
673
|
logging.info('CA nickname="%s", CA subject="%s"', options.ca_nickname, options.ca_subject)
|
|
@@ -272,7 +272,7 @@ def get_free_port():
|
|
|
272
272
|
happens quickly enough that this is rarely an issue in practice.
|
|
273
273
|
"""
|
|
274
274
|
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
|
|
275
|
-
s.bind(("", 0))
|
|
275
|
+
s.bind(("127.0.0.1", 0))
|
|
276
276
|
s.listen(1)
|
|
277
277
|
port = s.getsockname()[1]
|
|
278
278
|
return port
|
|
@@ -283,8 +283,10 @@ def server(test_port):
|
|
|
283
283
|
print("starting server:")
|
|
284
284
|
|
|
285
285
|
# Initialize
|
|
286
|
-
# Setup an IP Address to listen on
|
|
287
|
-
|
|
286
|
+
# Setup an IP Address to listen on the loopback interface only.
|
|
287
|
+
# The tests are entirely local (the client connects via localhost),
|
|
288
|
+
# so there is no need to listen on all interfaces.
|
|
289
|
+
net_addr = io.NetworkAddress(io.PR_IpAddrLoopback, test_port)
|
|
288
290
|
|
|
289
291
|
if use_ssl:
|
|
290
292
|
if info:
|
python_nss_ng-1.2.0/_version.txt
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1.2.0
|
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
# SPDX-License-Identifier: MPL-2.0
|
|
2
|
-
# SPDX-FileCopyrightText: 2025 The Linux Foundation
|
|
3
|
-
|
|
4
|
-
[build-system]
|
|
5
|
-
requires = [
|
|
6
|
-
"meson-python>=0.18.0",
|
|
7
|
-
"meson>=1.10.0",
|
|
8
|
-
"ninja",
|
|
9
|
-
]
|
|
10
|
-
build-backend = "mesonpy"
|
|
11
|
-
|
|
12
|
-
[project]
|
|
13
|
-
name = "python-nss-ng"
|
|
14
|
-
version = "1.0.1"
|
|
15
|
-
description = "Python bindings for Network Security Services (NSS) and Netscape Portable Runtime (NSPR)"
|
|
16
|
-
readme = "README.md"
|
|
17
|
-
license = "MPL-2.0 OR GPL-2.0-or-later OR LGPL-2.0-or-later"
|
|
18
|
-
license-files = ["LICENSE", "LICENSES/MPL-2.0.txt"]
|
|
19
|
-
requires-python = ">=3.10"
|
|
20
|
-
authors = [
|
|
21
|
-
{name = "John Dennis", email = "jdennis@redhat.com"},
|
|
22
|
-
{name = "Matthew Watkins", email = "mwatkins@linuxfoundation.org"},
|
|
23
|
-
]
|
|
24
|
-
maintainers = [
|
|
25
|
-
{name = "Matthew Watkins", email = "mwatkins@linuxfoundation.org"},
|
|
26
|
-
]
|
|
27
|
-
keywords = [
|
|
28
|
-
"nss",
|
|
29
|
-
"nspr",
|
|
30
|
-
"cryptography",
|
|
31
|
-
"ssl",
|
|
32
|
-
"tls",
|
|
33
|
-
"pki",
|
|
34
|
-
"x509",
|
|
35
|
-
"security",
|
|
36
|
-
]
|
|
37
|
-
classifiers = [
|
|
38
|
-
"Development Status :: 5 - Production/Stable",
|
|
39
|
-
"Intended Audience :: Developers",
|
|
40
|
-
|
|
41
|
-
"Operating System :: POSIX",
|
|
42
|
-
"Operating System :: POSIX :: Linux",
|
|
43
|
-
"Operating System :: MacOS",
|
|
44
|
-
"Programming Language :: C",
|
|
45
|
-
"Programming Language :: Python :: 3",
|
|
46
|
-
"Programming Language :: Python :: 3.10",
|
|
47
|
-
"Programming Language :: Python :: 3.11",
|
|
48
|
-
"Programming Language :: Python :: 3.12",
|
|
49
|
-
"Programming Language :: Python :: 3.13",
|
|
50
|
-
"Programming Language :: Python :: 3.14",
|
|
51
|
-
"Programming Language :: Python :: Implementation :: CPython",
|
|
52
|
-
"Topic :: Security",
|
|
53
|
-
"Topic :: Security :: Cryptography",
|
|
54
|
-
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
55
|
-
]
|
|
56
|
-
|
|
57
|
-
[project.optional-dependencies]
|
|
58
|
-
test = [
|
|
59
|
-
"pytest>=9.0.2",
|
|
60
|
-
"pytest-cov>=7.0.0",
|
|
61
|
-
"coverage[toml]>=7.13.1",
|
|
62
|
-
"pytest-xdist>=3.8.0",
|
|
63
|
-
"mypy>=1.0.0",
|
|
64
|
-
"hypothesis>=6.0.0",
|
|
65
|
-
"mutmut>=2.4.0",
|
|
66
|
-
"meson>=1.10.0",
|
|
67
|
-
"meson-python>=0.18.0",
|
|
68
|
-
"ninja",
|
|
69
|
-
]
|
|
70
|
-
dev = [
|
|
71
|
-
"pytest>=9.0.2",
|
|
72
|
-
"pytest-cov>=7.0.0",
|
|
73
|
-
"coverage[toml]>=7.13.1",
|
|
74
|
-
"pytest-xdist>=3.8.0",
|
|
75
|
-
"mypy>=1.0.0",
|
|
76
|
-
"hypothesis>=6.0.0",
|
|
77
|
-
"mutmut>=2.4.0",
|
|
78
|
-
"ruff>=0.14.10",
|
|
79
|
-
"build>=1.3.0",
|
|
80
|
-
"meson>=1.10.0",
|
|
81
|
-
"meson-python>=0.18.0",
|
|
82
|
-
"ninja",
|
|
83
|
-
]
|
|
84
|
-
|
|
85
|
-
[project.urls]
|
|
86
|
-
Homepage = "http://www.mozilla.org/projects/security/pki/python-nss-ng"
|
|
87
|
-
Documentation = "http://www.mozilla.org/projects/security/pki/python-nss-ng"
|
|
88
|
-
Repository = "https://github.com/lfreleng-actions/python-nss-ng"
|
|
89
|
-
Issues = "https://github.com/lfreleng-actions/python-nss-ng/issues"
|
|
90
|
-
|
|
91
|
-
[tool.meson-python.args]
|
|
92
|
-
# Meson build arguments can be specified here if needed
|
|
93
|
-
# For example, to enable debug builds:
|
|
94
|
-
# setup = ['-Dbuildtype=debug']
|
|
95
|
-
|
|
96
|
-
[tool.pytest.ini_options]
|
|
97
|
-
testpaths = ["test"]
|
|
98
|
-
python_files = ["test_*.py"]
|
|
99
|
-
python_classes = ["Test*"]
|
|
100
|
-
python_functions = ["test_*"]
|
|
101
|
-
# Note: Use -n0 for serial execution for 100% reliability
|
|
102
|
-
# Parallel execution (-n=auto) may have intermittent failures in PKCS12 tests
|
|
103
|
-
addopts = [
|
|
104
|
-
"-v",
|
|
105
|
-
"--strict-markers",
|
|
106
|
-
"--tb=short",
|
|
107
|
-
"--cov=nss",
|
|
108
|
-
"--cov-report=xml",
|
|
109
|
-
"--cov-report=html",
|
|
110
|
-
]
|
|
111
|
-
markers = [
|
|
112
|
-
"nss_init: mark test as requiring NSS initialization",
|
|
113
|
-
"requires_db: mark test as requiring NSS database",
|
|
114
|
-
"slow: mark test as slow running",
|
|
115
|
-
"allow_insecure: mark test as allowing insecure/legacy configurations",
|
|
116
|
-
]
|
|
117
|
-
|
|
118
|
-
[tool.coverage.run]
|
|
119
|
-
source = ["nss"]
|
|
120
|
-
branch = true
|
|
121
|
-
data_file = ".coverage"
|
|
122
|
-
omit = [
|
|
123
|
-
"*/test/*",
|
|
124
|
-
"*/tests/*",
|
|
125
|
-
"*/_version.py",
|
|
126
|
-
]
|
|
127
|
-
|
|
128
|
-
[tool.coverage.xml]
|
|
129
|
-
output = "coverage.xml"
|
|
130
|
-
|
|
131
|
-
[tool.coverage.report]
|
|
132
|
-
exclude_lines = [
|
|
133
|
-
"pragma: no cover",
|
|
134
|
-
"def __repr__",
|
|
135
|
-
"raise AssertionError",
|
|
136
|
-
"raise NotImplementedError",
|
|
137
|
-
"if __name__ == .__main__.:",
|
|
138
|
-
"if TYPE_CHECKING:",
|
|
139
|
-
]
|
|
140
|
-
|
|
141
|
-
[tool.ruff]
|
|
142
|
-
line-length = 100
|
|
143
|
-
target-version = "py39"
|
|
144
|
-
exclude = [
|
|
145
|
-
".git",
|
|
146
|
-
"__pycache__",
|
|
147
|
-
"build",
|
|
148
|
-
"dist",
|
|
149
|
-
".eggs",
|
|
150
|
-
"*.egg-info",
|
|
151
|
-
".pytest_cache",
|
|
152
|
-
]
|
|
153
|
-
|
|
154
|
-
[tool.ruff.lint]
|
|
155
|
-
select = [
|
|
156
|
-
"E", # pycodestyle errors
|
|
157
|
-
"W", # pycodestyle warnings
|
|
158
|
-
"F", # pyflakes
|
|
159
|
-
"I", # isort
|
|
160
|
-
"B", # flake8-bugbear
|
|
161
|
-
"C4", # flake8-comprehensions
|
|
162
|
-
"UP", # pyupgrade
|
|
163
|
-
"S", # flake8-bandit (security)
|
|
164
|
-
"T20", # flake8-print
|
|
165
|
-
"PT", # flake8-pytest-style
|
|
166
|
-
"RET", # flake8-return
|
|
167
|
-
"SIM", # flake8-simplify
|
|
168
|
-
"TCH", # flake8-type-checking
|
|
169
|
-
"RUF", # Ruff-specific rules
|
|
170
|
-
]
|
|
171
|
-
ignore = [
|
|
172
|
-
"E501", # line too long, handled by formatter
|
|
173
|
-
"B008", # do not perform function calls in argument defaults
|
|
174
|
-
"C901", # too complex
|
|
175
|
-
"S101", # assert detected (allow in tests)
|
|
176
|
-
"T201", # print found (intentional in examples)
|
|
177
|
-
"UP006", # Use `X` instead of `typing.X` for type annotations (Python 3.9 compat)
|
|
178
|
-
"UP007", # Use `X | Y` for union types (Python 3.9 compat)
|
|
179
|
-
"UP035", # Import from `typing` is deprecated (Python 3.9 compat)
|
|
180
|
-
]
|
|
181
|
-
|
|
182
|
-
[tool.ruff.lint.per-file-ignores]
|
|
183
|
-
"test_*.py" = ["E402", "S101", "S105", "S106"] # Allow asserts and hardcoded passwords in tests
|
|
184
|
-
"doc/examples/*.py" = ["T201", "S105", "S106"] # Allow prints and test passwords in examples
|
|
185
|
-
"test/setup_certs.py" = ["S603", "S607"] # Allow subprocess calls in cert setup
|
|
186
|
-
|
|
187
|
-
[tool.ruff.lint.isort]
|
|
188
|
-
known-first-party = ["nss"]
|
|
189
|
-
|
|
190
|
-
[tool.mypy]
|
|
191
|
-
python_version = "3.9"
|
|
192
|
-
warn_unused_ignores = true
|
|
193
|
-
disallow_any_generics = true
|
|
194
|
-
disallow_incomplete_defs = true
|
|
195
|
-
no_implicit_optional = true
|
|
196
|
-
strict_equality = true
|
|
197
|
-
warn_redundant_casts = true
|
|
198
|
-
warn_return_any = true
|
|
199
|
-
check_untyped_defs = true
|
|
200
|
-
|
|
201
|
-
[tool.mutmut]
|
|
202
|
-
paths_to_mutate = ["src/deprecations.py", "src/secure_logging.py", "src/nss_context.py"]
|
|
203
|
-
backup = false
|
|
204
|
-
runner = "python -m pytest -x -q"
|
|
205
|
-
tests_dir = "test/"
|
|
206
|
-
dict_synonyms = ["Struct", "Named"]
|
|
207
|
-
|
|
208
|
-
[tool.cibuildwheel]
|
|
209
|
-
skip = ["pp*", "*-musllinux*"]
|
|
210
|
-
build-verbosity = 1
|
|
211
|
-
|
|
212
|
-
[tool.cibuildwheel.linux]
|
|
213
|
-
before-all = "yum install -y nss-devel nspr-devel pkg-config || apt-get update && apt-get install -y libnss3-dev libnspr4-dev pkg-config"
|
|
214
|
-
|
|
215
|
-
[tool.cibuildwheel.macos]
|
|
216
|
-
before-all = "brew install nss nspr pkg-config"
|