Perception 0.9.0__tar.gz → 0.9.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.
- {perception-0.9.0 → perception-0.9.1}/.github/workflows/ci.yaml +3 -3
- {perception-0.9.0 → perception-0.9.1}/.github/workflows/gh-pages.yaml +1 -1
- {perception-0.9.0 → perception-0.9.1}/.github/workflows/release.yaml +7 -7
- {perception-0.9.0 → perception-0.9.1}/CHANGELOG.md +8 -0
- {perception-0.9.0 → perception-0.9.1}/PKG-INFO +1 -1
- {perception-0.9.0 → perception-0.9.1}/Perception.egg-info/PKG-INFO +1 -1
- {perception-0.9.0 → perception-0.9.1}/perception/benchmarking/extensions.c +1792 -2483
- {perception-0.9.0 → perception-0.9.1}/perception/extensions.cpp +1806 -2497
- {perception-0.9.0 → perception-0.9.1}/perception/hashers/video/tmk.py +0 -6
- {perception-0.9.0 → perception-0.9.1}/uv.lock +3 -3
- {perception-0.9.0 → perception-0.9.1}/.dockerignore +0 -0
- {perception-0.9.0 → perception-0.9.1}/.git-blame-ignore-revs +0 -0
- {perception-0.9.0 → perception-0.9.1}/.gitattributes +0 -0
- {perception-0.9.0 → perception-0.9.1}/.github/dependabot.yaml +0 -0
- {perception-0.9.0 → perception-0.9.1}/.gitignore +0 -0
- {perception-0.9.0 → perception-0.9.1}/.pre-commit-config.yaml +0 -0
- {perception-0.9.0 → perception-0.9.1}/.readthedocs.yaml +0 -0
- {perception-0.9.0 → perception-0.9.1}/CODE_OF_CONDUCT.md +0 -0
- {perception-0.9.0 → perception-0.9.1}/LICENSE +0 -0
- {perception-0.9.0 → perception-0.9.1}/MANIFEST.in +0 -0
- {perception-0.9.0 → perception-0.9.1}/Makefile +0 -0
- {perception-0.9.0 → perception-0.9.1}/Perception.egg-info/SOURCES.txt +0 -0
- {perception-0.9.0 → perception-0.9.1}/Perception.egg-info/dependency_links.txt +0 -0
- {perception-0.9.0 → perception-0.9.1}/Perception.egg-info/requires.txt +0 -0
- {perception-0.9.0 → perception-0.9.1}/Perception.egg-info/top_level.txt +0 -0
- {perception-0.9.0 → perception-0.9.1}/README.md +0 -0
- {perception-0.9.0 → perception-0.9.1}/docs/api/benchmarking.rst +0 -0
- {perception-0.9.0 → perception-0.9.1}/docs/api/hashers.rst +0 -0
- {perception-0.9.0 → perception-0.9.1}/docs/api/index.rst +0 -0
- {perception-0.9.0 → perception-0.9.1}/docs/api/tools.rst +0 -0
- {perception-0.9.0 → perception-0.9.1}/docs/conf.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/docs/examples/benchmarking.rst +0 -0
- {perception-0.9.0 → perception-0.9.1}/docs/examples/deduplication.rst +0 -0
- {perception-0.9.0 → perception-0.9.1}/docs/examples/detecting_csam.rst +0 -0
- {perception-0.9.0 → perception-0.9.1}/docs/examples/index.rst +0 -0
- {perception-0.9.0 → perception-0.9.1}/docs/index.rst +0 -0
- {perception-0.9.0 → perception-0.9.1}/docs/requirements.txt +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/__init__.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/_optional.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/approximate_deduplication/__init__.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/approximate_deduplication/_graph_backend.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/approximate_deduplication/debug.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/approximate_deduplication/index.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/approximate_deduplication/serve.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/benchmarking/__init__.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/benchmarking/common.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/benchmarking/extensions.pyx +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/benchmarking/image.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/benchmarking/image_transforms.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/benchmarking/video.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/benchmarking/video_transforms.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/extensions.pyx +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/hashers/__init__.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/hashers/hasher.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/hashers/image/__init__.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/hashers/image/average.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/hashers/image/dhash.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/hashers/image/opencv.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/hashers/image/pdq.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/hashers/image/phash.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/hashers/image/wavelet.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/hashers/tools.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/hashers/video/__init__.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/hashers/video/framewise.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/local_descriptor_deduplication.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/py.typed +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/testing/__init__.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/testing/images/README.md +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/testing/images/image1.jpg +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/testing/images/image10.jpg +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/testing/images/image2.jpg +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/testing/images/image3.jpg +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/testing/images/image4.jpg +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/testing/images/image5.jpg +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/testing/images/image6.jpg +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/testing/images/image7.jpg +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/testing/images/image8.jpg +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/testing/images/image9.jpg +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/testing/logos/README.md +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/testing/logos/logoipsum.png +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/testing/videos/README.md +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/testing/videos/expected_tmk.json.gz +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/testing/videos/extra_channel_attached_pic.mp4 +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/testing/videos/extra_channel_attached_pic_audio.mp4 +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/testing/videos/rgb.m4v +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/testing/videos/v1.m4v +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/testing/videos/v2.m4v +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/testing/videos/v2s.mov +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/tools.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/perception/utils.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/pyproject.toml +0 -0
- {perception-0.9.0 → perception-0.9.1}/setup.cfg +0 -0
- {perception-0.9.0 → perception-0.9.1}/setup.py +0 -0
- {perception-0.9.0 → perception-0.9.1}/tests/images/chair-square.png +0 -0
- {perception-0.9.0 → perception-0.9.1}/tests/images/chair-tall.png +0 -0
- {perception-0.9.0 → perception-0.9.1}/tests/images/chair.png +0 -0
- {perception-0.9.0 → perception-0.9.1}/tests/images/chair3.png +0 -0
|
@@ -12,13 +12,13 @@ jobs:
|
|
|
12
12
|
strategy:
|
|
13
13
|
matrix:
|
|
14
14
|
python-version: ["3.10", "3.11", "3.12", "3.13"]
|
|
15
|
-
os: ["ubuntu-latest", "windows-latest", "macos-latest"]
|
|
15
|
+
os: ["ubuntu-latest", "ubuntu-24.04-arm", "windows-latest", "macos-latest"]
|
|
16
16
|
runs-on: ${{ matrix.os }}
|
|
17
17
|
steps:
|
|
18
18
|
- name: checkout
|
|
19
19
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
20
20
|
- name: Set up uv
|
|
21
|
-
uses: astral-sh/setup-uv@
|
|
21
|
+
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
|
|
22
22
|
with:
|
|
23
23
|
python-version: ${{ matrix.python-version }}
|
|
24
24
|
enable-cache: true
|
|
@@ -26,7 +26,7 @@ jobs:
|
|
|
26
26
|
cache-dependency-glob: |
|
|
27
27
|
pyproject.toml
|
|
28
28
|
uv.lock
|
|
29
|
-
cache-suffix: ${{
|
|
29
|
+
cache-suffix: ${{ matrix.os }}-${{ matrix.python-version }}
|
|
30
30
|
- name: Setup FFMPEG on Ubuntu
|
|
31
31
|
if: startsWith(matrix.os, 'ubuntu')
|
|
32
32
|
run: |
|
|
@@ -13,7 +13,7 @@ jobs:
|
|
|
13
13
|
strategy:
|
|
14
14
|
matrix:
|
|
15
15
|
python-version: ["3.10", "3.11", "3.12", "3.13"]
|
|
16
|
-
os: ["ubuntu-latest", "windows-latest", "macos-latest"]
|
|
16
|
+
os: ["ubuntu-latest", "ubuntu-24.04-arm", "windows-latest", "macos-latest"]
|
|
17
17
|
name: Build for ${{ matrix.os }} on Python ${{ matrix.python-version }}
|
|
18
18
|
steps:
|
|
19
19
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
@@ -23,7 +23,7 @@ jobs:
|
|
|
23
23
|
fetch-tags: true
|
|
24
24
|
ref: ${{ github.event_name == 'release' && format('refs/tags/{0}', github.event.release.tag_name) || github.ref }}
|
|
25
25
|
- name: Set up uv
|
|
26
|
-
uses: astral-sh/setup-uv@
|
|
26
|
+
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
|
|
27
27
|
with:
|
|
28
28
|
python-version: ${{ matrix.python-version }}
|
|
29
29
|
enable-cache: false
|
|
@@ -44,7 +44,7 @@ jobs:
|
|
|
44
44
|
uv tool run --from repairwheel repairwheel -o dist dist-tmp/*.whl
|
|
45
45
|
find dist -name "*.whl" -type f | sed -n "s/\(.*\)\.linux.*\.whl$/& \1.whl/p" | xargs -r -n 2 mv
|
|
46
46
|
rm -rf dist-tmp
|
|
47
|
-
- uses: actions/upload-artifact@
|
|
47
|
+
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
48
48
|
with:
|
|
49
49
|
name: package-wheels-${{ matrix.os }}-${{ matrix.python-version }}
|
|
50
50
|
path: dist/*
|
|
@@ -60,7 +60,7 @@ jobs:
|
|
|
60
60
|
fetch-tags: true
|
|
61
61
|
ref: ${{ github.event_name == 'release' && format('refs/tags/{0}', github.event.release.tag_name) || github.ref }}
|
|
62
62
|
- name: Set up uv
|
|
63
|
-
uses: astral-sh/setup-uv@
|
|
63
|
+
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
|
|
64
64
|
with:
|
|
65
65
|
python-version: "3.13"
|
|
66
66
|
enable-cache: false
|
|
@@ -72,7 +72,7 @@ jobs:
|
|
|
72
72
|
echo "Python: $(uv run python --version)"
|
|
73
73
|
echo "Git describe: $(git describe --tags --always)"
|
|
74
74
|
uv build --sdist --out-dir="dist"
|
|
75
|
-
- uses: actions/upload-artifact@
|
|
75
|
+
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
76
76
|
with:
|
|
77
77
|
name: package-sdist
|
|
78
78
|
path: dist/*
|
|
@@ -89,7 +89,7 @@ jobs:
|
|
|
89
89
|
fetch-tags: true
|
|
90
90
|
ref: refs/tags/${{ github.event.release.tag_name }}
|
|
91
91
|
- name: Set up uv
|
|
92
|
-
uses: astral-sh/setup-uv@
|
|
92
|
+
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
|
|
93
93
|
with:
|
|
94
94
|
python-version: "3.13"
|
|
95
95
|
enable-cache: false
|
|
@@ -100,7 +100,7 @@ jobs:
|
|
|
100
100
|
pattern: package-*
|
|
101
101
|
merge-multiple: true
|
|
102
102
|
- name: Load PyPI Token
|
|
103
|
-
uses: 1password/load-secrets-action@
|
|
103
|
+
uses: 1password/load-secrets-action@92467eb28f72e8255933372f1e0707c567ce2259 # v4.0.0
|
|
104
104
|
with:
|
|
105
105
|
# Export loaded secrets as environment variables
|
|
106
106
|
export-env: true
|
|
@@ -4,6 +4,14 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
5
5
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [0.9.1] - 2026-05-26
|
|
8
|
+
|
|
9
|
+
### Enhancements
|
|
10
|
+
- Added ARM64 Linux (`ubuntu-24.04-arm`) to the CI test matrix and the release wheel-build matrix.
|
|
11
|
+
|
|
12
|
+
### Bug fixes
|
|
13
|
+
- TMK hashing now works on ARM64. The previous "not supported" warning was removed; the parity test uses cosine similarity and score-level comparison to account for minor cross-architecture differences in video decoding.
|
|
14
|
+
|
|
7
15
|
## [0.9.0] - 2026-05-13
|
|
8
16
|
This release moves heavyweight dependencies behind optional extras so they are not installed for users who only need core hashing functionality, and standardizes the error users see when an extra is missing.
|
|
9
17
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: Perception
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.1
|
|
4
4
|
Summary: Perception provides flexible, well-documented, and comprehensively tested tooling for perceptual hashing research, development, and production use.
|
|
5
5
|
Author-email: Thorn <info@wearethorn.org>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: Perception
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.1
|
|
4
4
|
Summary: Perception provides flexible, well-documented, and comprehensively tested tooling for perceptual hashing research, development, and production use.
|
|
5
5
|
Author-email: Thorn <info@wearethorn.org>
|
|
6
6
|
License-Expression: Apache-2.0
|