Skip to content

Commit 57b6406

Browse files
committed
build: package/configs/workflow update for Python 3.13
1 parent aa00480 commit 57b6406

File tree

6 files changed

+63
-38
lines changed

6 files changed

+63
-38
lines changed

.github/workflows/build-publish-sign-release.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ jobs:
1212
name: Build package.
1313
needs:
1414
- call-workflow-lint-test-cover-docs
15-
runs-on: ubuntu-latest
15+
runs-on: ubuntu-24.04
1616
steps:
17-
- uses: actions/checkout@v4
17+
- uses: actions/checkout@v5
1818
- name: Install Python.
19-
uses: actions/setup-python@v5
19+
uses: actions/setup-python@v6
2020
with:
2121
python-version: 3.12
2222
architecture: x64
@@ -34,15 +34,15 @@ jobs:
3434
if: startsWith(github.ref, 'refs/tags/') # Publish on tag pushes.
3535
needs:
3636
- build
37-
runs-on: ubuntu-latest
37+
runs-on: ubuntu-24.04
3838
environment:
3939
name: pypi
4040
url: https://pypi.org/p/blindfold
4141
permissions:
4242
id-token: write
4343
steps:
4444
- name: Download all the package distributions.
45-
uses: actions/download-artifact@v4
45+
uses: actions/download-artifact@v5
4646
with:
4747
name: python-package-distributions
4848
path: dist/
@@ -52,18 +52,18 @@ jobs:
5252
name: Sign package distributions with Sigstore and upload them to a GitHub release.
5353
needs:
5454
- publish
55-
runs-on: ubuntu-latest
55+
runs-on: ubuntu-24.04
5656
permissions:
5757
contents: write # For GitHub.
5858
id-token: write # For Sigstore.
5959
steps:
6060
- name: Download all the package distributions.
61-
uses: actions/download-artifact@v4
61+
uses: actions/download-artifact@v5
6262
with:
6363
name: python-package-distributions
6464
path: dist/
6565
- name: Sign the package distributions with Sigstore.
66-
uses: sigstore/gh-action-sigstore-python@v3.0.0
66+
uses: sigstore/gh-action-sigstore-python@v3.0.1
6767
with:
6868
inputs: >-
6969
./dist/*.tar.gz

.github/workflows/lint-test-cover-docs.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@ on:
66
workflow_call: # If invoked by build-publish-sign-release workflow.
77
jobs:
88
lint_test_cover_docs:
9-
runs-on: ubuntu-latest
9+
runs-on: ubuntu-24.04
1010
strategy:
1111
matrix:
12-
python-version: ['3.9', '3.10', '3.11', '3.12']
12+
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
1313
name: Python ${{ matrix.python-version }}
1414
steps:
15-
- uses: actions/checkout@v4
15+
- uses: actions/checkout@v5
1616
- name: Install Python.
17-
uses: actions/setup-python@v5
17+
uses: actions/setup-python@v6
1818
with:
1919
python-version: ${{ matrix.python-version }}
2020
architecture: x64
@@ -27,7 +27,7 @@ jobs:
2727
run: |
2828
pip install -U .[coveralls]
2929
python -m coveralls --service=github # Submit to coveralls.
30-
if: matrix.python-version == '3.11'
30+
if: matrix.python-version == '3.12'
3131
env:
3232
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
3333
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}

.gitignore

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,4 +159,14 @@ cython_debug/
159159
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
160160
# and can be added to the global gitignore or merged into this file. For a more nuclear
161161
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
162-
#.idea/
162+
.idea/
163+
164+
# IDE
165+
.idea/
166+
.vscode/
167+
*.swp
168+
*.swo
169+
170+
# macOS
171+
.DS_Store
172+
.DS_Store?

.pylintrc

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,11 @@ ignore-paths=
5959
# Emacs file locks
6060
ignore-patterns=^\.#
6161

62-
# List of module names for which member attributes should not be checked
63-
# (useful for modules/projects where namespaces are manipulated during runtime
64-
# and thus existing member attributes cannot be deduced by static analysis). It
65-
# supports qualified module names, as well as Unix pattern matching.
62+
# List of module names for which member attributes should not be checked and
63+
# will not be imported (useful for modules/projects where namespaces are
64+
# manipulated during runtime and thus existing member attributes cannot be
65+
# deduced by static analysis). It supports qualified module names, as well as
66+
# Unix pattern matching.
6667
ignored-modules=
6768

6869
# Python code to execute, usually for sys.path manipulation such as
@@ -86,9 +87,13 @@ load-plugins=
8687
# Pickle collected data for later comparisons.
8788
persistent=yes
8889

90+
# Resolve imports to .pyi stubs if available. May reduce no-member messages and
91+
# increase not-an-iterable messages.
92+
prefer-stubs=no
93+
8994
# Minimum Python version to use for version dependent checks. Will default to
9095
# the version used to run pylint.
91-
py-version=3.10
96+
py-version=3.12
9297

9398
# Discover python modules and packages in the file system subtree.
9499
recursive=no
@@ -302,6 +307,9 @@ max-locals=30
302307
# Maximum number of parents for a class (see R0901).
303308
max-parents=7
304309

310+
# Maximum number of positional arguments for function / method.
311+
max-positional-arguments=5
312+
305313
# Maximum number of public methods for a class (see R0904).
306314
max-public-methods=20
307315

@@ -429,14 +437,16 @@ disable=raw-checker-failed,
429437
useless-suppression,
430438
deprecated-pragma,
431439
use-symbolic-message-instead,
440+
use-implicit-booleaness-not-comparison-to-string,
441+
use-implicit-booleaness-not-comparison-to-zero,
432442
unnecessary-lambda-assignment,
433443
redundant-unittest-assert
434444

435445
# Enable the message, report, category or checker with the given id(s). You can
436446
# either give multiple identifier separated by comma (,) or put this option
437447
# multiple time (only on the command line, not in the configuration file where
438448
# it should appear only once). See also the "--disable" option for examples.
439-
enable=c-extension-no-member
449+
enable=
440450

441451

442452
[METHOD_ARGS]
@@ -468,6 +478,11 @@ max-nested-blocks=5
468478
# printed.
469479
never-returning-functions=sys.exit,argparse.parse_error
470480

481+
# Let 'consider-using-join' be raised when the separator to join on would be
482+
# non-empty (resulting in expected fixes of the type: ``"- " + " -
483+
# ".join(items)``)
484+
suggest-join-with-non-empty-separator=yes
485+
471486

472487
[REPORTS]
473488

@@ -482,9 +497,10 @@ evaluation=max(0, 0 if fatal else 10.0 - ((float(5 * error + warning + refactor
482497
# used to format the message information. See doc for all details.
483498
msg-template=
484499

485-
# Set the output format. Available formats are text, parseable, colorized, json
486-
# and msvs (visual studio). You can also give a reporter class, e.g.
487-
# mypackage.mymodule.MyReporterClass.
500+
# Set the output format. Available formats are: 'text', 'parseable',
501+
# 'colorized', 'json2' (improved json format), 'json' (old json format), msvs
502+
# (visual studio) and 'github' (GitHub actions). You can also give a reporter
503+
# class, e.g. mypackage.mymodule.MyReporterClass.
488504
#output-format=
489505

490506
# Tells whether to display a full report or only the messages.
@@ -518,7 +534,7 @@ min-similarity-lines=4
518534
max-spelling-suggestions=4
519535

520536
# Spelling dictionary name. No available dictionaries : You need to install
521-
# both the python package and the system dependency for enchant to work..
537+
# both the python package and the system dependency for enchant to work.
522538
spelling-dict=
523539

524540
# List of comma separated words that should be considered directives if they
@@ -586,7 +602,7 @@ ignored-classes=optparse.Values,thread._local,_thread._local,argparse.Namespace
586602
# of finding the hint is based on edit distance.
587603
missing-member-hint=yes
588604

589-
# The minimum edit distance a name should have in order to be considered a
605+
# The maximum edit distance a name should have in order to be considered a
590606
# similar match for a missing member name.
591607
missing-member-hint-distance=1
592608

docs/conf.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,6 @@ def rtd_url_for_installed_version(name):
105105

106106
# Theme options for Read the Docs.
107107
html_theme_options = {
108-
'display_version': True,
109108
'collapse_navigation': True,
110109
'navigation_depth': 1,
111110
'titles_only': True

pyproject.toml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
[project]
22
name = "blindfold"
3-
version = "0.1.0"
3+
version = "1.0.0rc0"
44
description = "Library for working with encrypted data within nilDB queries and replies."
5-
license = {text = "MIT"}
5+
license = "MIT"
66
readme = "README.rst"
77
requires-python = ">=3.9"
88
dependencies = [
99
"parts~=4.0",
1010
"hkdfs~=0.1",
11-
"bcl~=2.3",
11+
"bcl~=3.0",
1212
"shamirs~=4.0",
13-
"pailliers~=0.1"
13+
"pailliers>=0.3,<2.0.0"
1414
]
1515

1616
[project.urls]
@@ -20,28 +20,28 @@ Documentation = "https://blindfold.readthedocs.io"
2020
[project.optional-dependencies]
2121
docs = [
2222
"toml~=0.10.2",
23-
"sphinx~=5.0",
24-
"sphinx-rtd-theme~=2.0.0",
25-
"sphinx-autodoc-typehints~=1.23.0"
23+
"sphinx~=7.4",
24+
"sphinx-rtd-theme~=3.0",
25+
"sphinx-autodoc-typehints~=2.3"
2626
]
2727
test = [
28-
"pytest~=8.2",
29-
"pytest-cov~=5.0"
28+
"pytest~=8.4",
29+
"pytest-cov~=7.0"
3030
]
3131
lint = [
32-
"pylint~=3.2.0"
32+
"pylint~=3.3"
3333
]
3434
coveralls = [
3535
"coveralls~=4.0"
3636
]
3737
publish = [
38-
"build~=0.10",
38+
"build~=1.3",
3939
"twine~=4.0"
4040
]
4141

4242
[build-system]
4343
requires = [
44-
"setuptools~=68.0"
44+
"setuptools>=77.0"
4545
]
4646
build-backend = "setuptools.build_meta"
4747

0 commit comments

Comments
 (0)