mirror of
https://github.com/scito/extract_otp_secret_keys.git
synced 2025-12-06 06:44:57 +01:00
support Python 3.14 (#453)
* support Python 3.14 * update Python in Docker containers
This commit is contained in:
parent
2b990376a6
commit
13231a4f61
9 changed files with 20 additions and 24 deletions
8
.github/workflows/ci.yml
vendored
8
.github/workflows/ci.yml
vendored
|
|
@ -24,11 +24,7 @@ jobs:
|
||||||
# 3.x is used to run code coverage
|
# 3.x is used to run code coverage
|
||||||
python-version: ["3.x", "3.14", "3.13", "3.12", "3.11", "3.10", "3.9"]
|
python-version: ["3.x", "3.14", "3.13", "3.12", "3.11", "3.10", "3.9"]
|
||||||
platform: [ubuntu-latest, macos-latest, windows-latest, ubuntu-24.04-arm, macos-15-intel]
|
platform: [ubuntu-latest, macos-latest, windows-latest, ubuntu-24.04-arm, macos-15-intel]
|
||||||
exclude:
|
# exclude:
|
||||||
- python-version: "3.14"
|
|
||||||
platform: windows-latest
|
|
||||||
- python-version: "3.x"
|
|
||||||
platform: windows-latest
|
|
||||||
|
|
||||||
runs-on: ${{ matrix.platform }}
|
runs-on: ${{ matrix.platform }}
|
||||||
|
|
||||||
|
|
@ -39,7 +35,7 @@ jobs:
|
||||||
with:
|
with:
|
||||||
python-version: ${{ matrix.python-version }}
|
python-version: ${{ matrix.python-version }}
|
||||||
check-latest: ${{ github.event_name == 'schedule' }}
|
check-latest: ${{ github.event_name == 'schedule' }}
|
||||||
allow-prereleases: true
|
allow-prereleases: false
|
||||||
- name: Install zbar shared lib for QReader (Linux)
|
- name: Install zbar shared lib for QReader (Linux)
|
||||||
if: runner.os == 'Linux'
|
if: runner.os == 'Linux'
|
||||||
run: |
|
run: |
|
||||||
|
|
|
||||||
2
.github/workflows/ci_docker.yml
vendored
2
.github/workflows/ci_docker.yml
vendored
|
|
@ -88,7 +88,7 @@ jobs:
|
||||||
# builder: ${{ steps.buildx.outputs.name }}
|
# builder: ${{ steps.buildx.outputs.name }}
|
||||||
# Note: tags has to be all lower-case
|
# Note: tags has to be all lower-case
|
||||||
build-args: |
|
build-args: |
|
||||||
BASE_IMAGE=python:3.13-slim-bookworm
|
BASE_IMAGE=python:3.14-slim-trixie
|
||||||
pull: true
|
pull: true
|
||||||
tags: |
|
tags: |
|
||||||
docker.io/scit0/extract_otp_secrets:latest-${{ matrix.PLATFORM_ARCH }}
|
docker.io/scit0/extract_otp_secrets:latest-${{ matrix.PLATFORM_ARCH }}
|
||||||
|
|
|
||||||
6
.github/workflows/ci_release.yml
vendored
6
.github/workflows/ci_release.yml
vendored
|
|
@ -295,11 +295,11 @@ jobs:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v5
|
||||||
- name: Set macos macos_python_path
|
- name: Set macos macos_python_path
|
||||||
# TODO use variable for Python version
|
# TODO use variable for Python version
|
||||||
run: echo "macos_python_path=/Library/Frameworks/Python.framework/Versions/3.13" >> $GITHUB_ENV
|
run: echo "macos_python_path=/Library/Frameworks/Python.framework/Versions/3.14" >> $GITHUB_ENV
|
||||||
- name: Set up Python 3.13
|
- name: Set up Python 3.14
|
||||||
uses: actions/setup-python@v6
|
uses: actions/setup-python@v6
|
||||||
with:
|
with:
|
||||||
python-version: 3.13
|
python-version: 3.14
|
||||||
check-latest: true
|
check-latest: true
|
||||||
- name: Install zbar shared lib for QReader (Linux)
|
- name: Install zbar shared lib for QReader (Linux)
|
||||||
if: runner.os == 'Linux'
|
if: runner.os == 'Linux'
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||

|

|
||||||
[](https://github.com/scito/extract_otp_secrets/blob/master/LICENSE)
|
[](https://github.com/scito/extract_otp_secrets/blob/master/LICENSE)
|
||||||
[](https://github.com/scito/extract_otp_secrets/releases/latest)
|
[](https://github.com/scito/extract_otp_secrets/releases/latest)
|
||||||

|

|
||||||
[](https://hub.docker.com/repository/docker/scit0/extract_otp_secrets/general)
|
[](https://hub.docker.com/repository/docker/scit0/extract_otp_secrets/general)
|
||||||
[](https://github.com/scito/extract_otp_secrets/releases/latest)
|
[](https://github.com/scito/extract_otp_secrets/releases/latest)
|
||||||
[](https://github.com/scito/extract_otp_secrets/releases/latest)
|
[](https://github.com/scito/extract_otp_secrets/releases/latest)
|
||||||
|
|
|
||||||
6
build.sh
6
build.sh
|
|
@ -385,7 +385,7 @@ if $build_local; then
|
||||||
cmd="rm Pipfile.lock || true; $PIPENV --rm || true"
|
cmd="rm Pipfile.lock || true; $PIPENV --rm || true"
|
||||||
if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi
|
if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi
|
||||||
eval "$cmd"
|
eval "$cmd"
|
||||||
|
|
||||||
cmd="$PIPENV install --dev"
|
cmd="$PIPENV install --dev"
|
||||||
if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi
|
if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi
|
||||||
eval "$cmd"
|
eval "$cmd"
|
||||||
|
|
@ -542,7 +542,7 @@ if $build_docker; then
|
||||||
eval "$cmd"
|
eval "$cmd"
|
||||||
|
|
||||||
# Build extract_otp_secrets (Debian Bullseye)
|
# Build extract_otp_secrets (Debian Bullseye)
|
||||||
cmd="docker build . -t extract_otp_secrets:bullseye -t extract_otp_secrets:bullseye-x86_64 --pull -f docker/Dockerfile --build-arg RUN_TESTS=false --build-arg BASE_IMAGE=python:3.12-slim-bullseye"
|
cmd="docker build . -t extract_otp_secrets:bullseye -t extract_otp_secrets:bullseye-x86_64 --pull -f docker/Dockerfile --build-arg RUN_TESTS=false --build-arg BASE_IMAGE=python:3.13-slim-bullseye"
|
||||||
if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi
|
if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi
|
||||||
eval "$cmd"
|
eval "$cmd"
|
||||||
|
|
||||||
|
|
@ -575,7 +575,7 @@ if $build_docker; then
|
||||||
eval "$cmd"
|
eval "$cmd"
|
||||||
|
|
||||||
# Build extract_otp_secrets (Debian Bullseye)
|
# Build extract_otp_secrets (Debian Bullseye)
|
||||||
cmd="docker buildx build --platform=linux/arm64 . -t extract_otp_secrets:bullseye-arm64 --pull -f docker/Dockerfile --build-arg RUN_TESTS=false --build-arg BASE_IMAGE=python:3.12-slim-bullseye"
|
cmd="docker buildx build --platform=linux/arm64 . -t extract_otp_secrets:bullseye-arm64 --pull -f docker/Dockerfile --build-arg RUN_TESTS=false --build-arg BASE_IMAGE=python:3.13-slim-bullseye"
|
||||||
if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi
|
if $interactive ; then askContinueYn "$cmd"; else echo -e "${cyan}$cmd${reset}";fi
|
||||||
eval "$cmd"
|
eval "$cmd"
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
# --build-arg BASE_IMAGE=python:3.11-slim-buster
|
# --build-arg BASE_IMAGE=python:3.11-slim-buster
|
||||||
ARG BASE_IMAGE=python:3.13-slim-bookworm
|
ARG BASE_IMAGE=python:3.14-slim-trixie
|
||||||
FROM $BASE_IMAGE
|
FROM $BASE_IMAGE
|
||||||
|
|
||||||
# https://docs.docker.com/engine/reference/builder/
|
# https://docs.docker.com/engine/reference/builder/
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
ARG BASE_IMAGE=python:3.13-alpine
|
ARG BASE_IMAGE=python:3.14-alpine
|
||||||
FROM $BASE_IMAGE
|
FROM $BASE_IMAGE
|
||||||
|
|
||||||
# https://docs.docker.com/engine/reference/builder/
|
# https://docs.docker.com/engine/reference/builder/
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
name,secret,issuer,type,counter,url
|
name,secret,issuer,type,counter,url
|
||||||
pi@raspberrypi,7KSQL2JTUDIS5EF65KLMRQIIGY,raspberrypi,totp,,otpauth://totp/pi%40raspberrypi?secret=7KSQL2JTUDIS5EF65KLMRQIIGY&issuer=raspberrypi
|
pi@raspberrypi,7KSQL2JTUDIS5EF65KLMRQIIGY,raspberrypi,totp,,otpauth://totp/pi%40raspberrypi?secret=7KSQL2JTUDIS5EF65KLMRQIIGY&issuer=raspberrypi
|
||||||
pi@raspberrypi,7KSQL2JTUDIS5EF65KLMRQIIGY,,totp,,otpauth://totp/pi%40raspberrypi?secret=7KSQL2JTUDIS5EF65KLMRQIIGY
|
pi@raspberrypi,7KSQL2JTUDIS5EF65KLMRQIIGY,,totp,,otpauth://totp/pi%40raspberrypi?secret=7KSQL2JTUDIS5EF65KLMRQIIGY
|
||||||
pi@raspberrypi,7KSQL2JTUDIS5EF65KLMRQIIGY,,totp,,otpauth://totp/pi%40raspberrypi?secret=7KSQL2JTUDIS5EF65KLMRQIIGY
|
pi@raspberrypi,7KSQL2JTUDIS5EF65KLMRQIIGY,,totp,,otpauth://totp/pi%40raspberrypi?secret=7KSQL2JTUDIS5EF65KLMRQIIGY
|
||||||
pi@raspberrypi,7KSQL2JTUDIS5EF65KLMRQIIGY,raspberrypi,totp,,otpauth://totp/pi%40raspberrypi?secret=7KSQL2JTUDIS5EF65KLMRQIIGY&issuer=raspberrypi
|
pi@raspberrypi,7KSQL2JTUDIS5EF65KLMRQIIGY,raspberrypi,totp,,otpauth://totp/pi%40raspberrypi?secret=7KSQL2JTUDIS5EF65KLMRQIIGY&issuer=raspberrypi
|
||||||
hotp demo,7KSQL2JTUDIS5EF65KLMRQIIGY,,hotp,4,otpauth://hotp/hotp%20demo?secret=7KSQL2JTUDIS5EF65KLMRQIIGY&counter=4
|
hotp demo,7KSQL2JTUDIS5EF65KLMRQIIGY,,hotp,4,otpauth://hotp/hotp%20demo?secret=7KSQL2JTUDIS5EF65KLMRQIIGY&counter=4
|
||||||
encoding: ¿äÄéÉ? (demo),7KSQL2JTUDIS5EF65KLMRQIIGY,,totp,,otpauth://totp/encoding%3A%20%C2%BF%C3%A4%C3%84%C3%A9%C3%89%3F%20%28demo%29?secret=7KSQL2JTUDIS5EF65KLMRQIIGY
|
encoding: ¿äÄéÉ? (demo),7KSQL2JTUDIS5EF65KLMRQIIGY,,totp,,otpauth://totp/encoding%3A%20%C2%BF%C3%A4%C3%84%C3%A9%C3%89%3F%20%28demo%29?secret=7KSQL2JTUDIS5EF65KLMRQIIGY
|
||||||
|
|
|
||||||
|
|
|
@ -60,8 +60,8 @@ headless: bool = False
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import cv2
|
import cv2
|
||||||
import numpy as np
|
|
||||||
import cv2.typing
|
import cv2.typing
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import tkinter
|
import tkinter
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue