Perception 0.9.1__tar.gz → 0.9.2__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.
Files changed (99) hide show
  1. {perception-0.9.1 → perception-0.9.2}/.github/workflows/ci.yaml +2 -2
  2. {perception-0.9.1 → perception-0.9.2}/.github/workflows/gh-pages.yaml +1 -1
  3. {perception-0.9.1 → perception-0.9.2}/.github/workflows/release.yaml +7 -7
  4. {perception-0.9.1 → perception-0.9.2}/PKG-INFO +2 -2
  5. {perception-0.9.1 → perception-0.9.2}/Perception.egg-info/PKG-INFO +2 -2
  6. {perception-0.9.1 → perception-0.9.2}/Perception.egg-info/SOURCES.txt +2 -0
  7. {perception-0.9.1 → perception-0.9.2}/Perception.egg-info/requires.txt +1 -1
  8. perception-0.9.2/Perception.egg-info/scm_file_list.json +98 -0
  9. perception-0.9.2/Perception.egg-info/scm_version.json +8 -0
  10. {perception-0.9.1 → perception-0.9.2}/perception/benchmarking/extensions.c +896 -277
  11. {perception-0.9.1 → perception-0.9.2}/perception/extensions.cpp +896 -277
  12. {perception-0.9.1 → perception-0.9.2}/perception/hashers/image/phash.py +29 -9
  13. {perception-0.9.1 → perception-0.9.2}/perception/hashers/tools.py +15 -16
  14. {perception-0.9.1 → perception-0.9.2}/pyproject.toml +2 -2
  15. {perception-0.9.1 → perception-0.9.2}/uv.lock +170 -157
  16. {perception-0.9.1 → perception-0.9.2}/.dockerignore +0 -0
  17. {perception-0.9.1 → perception-0.9.2}/.git-blame-ignore-revs +0 -0
  18. {perception-0.9.1 → perception-0.9.2}/.gitattributes +0 -0
  19. {perception-0.9.1 → perception-0.9.2}/.github/dependabot.yaml +0 -0
  20. {perception-0.9.1 → perception-0.9.2}/.gitignore +0 -0
  21. {perception-0.9.1 → perception-0.9.2}/.pre-commit-config.yaml +0 -0
  22. {perception-0.9.1 → perception-0.9.2}/.readthedocs.yaml +0 -0
  23. {perception-0.9.1 → perception-0.9.2}/CHANGELOG.md +0 -0
  24. {perception-0.9.1 → perception-0.9.2}/CODE_OF_CONDUCT.md +0 -0
  25. {perception-0.9.1 → perception-0.9.2}/LICENSE +0 -0
  26. {perception-0.9.1 → perception-0.9.2}/MANIFEST.in +0 -0
  27. {perception-0.9.1 → perception-0.9.2}/Makefile +0 -0
  28. {perception-0.9.1 → perception-0.9.2}/Perception.egg-info/dependency_links.txt +0 -0
  29. {perception-0.9.1 → perception-0.9.2}/Perception.egg-info/top_level.txt +0 -0
  30. {perception-0.9.1 → perception-0.9.2}/README.md +0 -0
  31. {perception-0.9.1 → perception-0.9.2}/docs/api/benchmarking.rst +0 -0
  32. {perception-0.9.1 → perception-0.9.2}/docs/api/hashers.rst +0 -0
  33. {perception-0.9.1 → perception-0.9.2}/docs/api/index.rst +0 -0
  34. {perception-0.9.1 → perception-0.9.2}/docs/api/tools.rst +0 -0
  35. {perception-0.9.1 → perception-0.9.2}/docs/conf.py +0 -0
  36. {perception-0.9.1 → perception-0.9.2}/docs/examples/benchmarking.rst +0 -0
  37. {perception-0.9.1 → perception-0.9.2}/docs/examples/deduplication.rst +0 -0
  38. {perception-0.9.1 → perception-0.9.2}/docs/examples/detecting_csam.rst +0 -0
  39. {perception-0.9.1 → perception-0.9.2}/docs/examples/index.rst +0 -0
  40. {perception-0.9.1 → perception-0.9.2}/docs/index.rst +0 -0
  41. {perception-0.9.1 → perception-0.9.2}/docs/requirements.txt +0 -0
  42. {perception-0.9.1 → perception-0.9.2}/perception/__init__.py +0 -0
  43. {perception-0.9.1 → perception-0.9.2}/perception/_optional.py +0 -0
  44. {perception-0.9.1 → perception-0.9.2}/perception/approximate_deduplication/__init__.py +0 -0
  45. {perception-0.9.1 → perception-0.9.2}/perception/approximate_deduplication/_graph_backend.py +0 -0
  46. {perception-0.9.1 → perception-0.9.2}/perception/approximate_deduplication/debug.py +0 -0
  47. {perception-0.9.1 → perception-0.9.2}/perception/approximate_deduplication/index.py +0 -0
  48. {perception-0.9.1 → perception-0.9.2}/perception/approximate_deduplication/serve.py +0 -0
  49. {perception-0.9.1 → perception-0.9.2}/perception/benchmarking/__init__.py +0 -0
  50. {perception-0.9.1 → perception-0.9.2}/perception/benchmarking/common.py +0 -0
  51. {perception-0.9.1 → perception-0.9.2}/perception/benchmarking/extensions.pyx +0 -0
  52. {perception-0.9.1 → perception-0.9.2}/perception/benchmarking/image.py +0 -0
  53. {perception-0.9.1 → perception-0.9.2}/perception/benchmarking/image_transforms.py +0 -0
  54. {perception-0.9.1 → perception-0.9.2}/perception/benchmarking/video.py +0 -0
  55. {perception-0.9.1 → perception-0.9.2}/perception/benchmarking/video_transforms.py +0 -0
  56. {perception-0.9.1 → perception-0.9.2}/perception/extensions.pyx +0 -0
  57. {perception-0.9.1 → perception-0.9.2}/perception/hashers/__init__.py +0 -0
  58. {perception-0.9.1 → perception-0.9.2}/perception/hashers/hasher.py +0 -0
  59. {perception-0.9.1 → perception-0.9.2}/perception/hashers/image/__init__.py +0 -0
  60. {perception-0.9.1 → perception-0.9.2}/perception/hashers/image/average.py +0 -0
  61. {perception-0.9.1 → perception-0.9.2}/perception/hashers/image/dhash.py +0 -0
  62. {perception-0.9.1 → perception-0.9.2}/perception/hashers/image/opencv.py +0 -0
  63. {perception-0.9.1 → perception-0.9.2}/perception/hashers/image/pdq.py +0 -0
  64. {perception-0.9.1 → perception-0.9.2}/perception/hashers/image/wavelet.py +0 -0
  65. {perception-0.9.1 → perception-0.9.2}/perception/hashers/video/__init__.py +0 -0
  66. {perception-0.9.1 → perception-0.9.2}/perception/hashers/video/framewise.py +0 -0
  67. {perception-0.9.1 → perception-0.9.2}/perception/hashers/video/tmk.py +0 -0
  68. {perception-0.9.1 → perception-0.9.2}/perception/local_descriptor_deduplication.py +0 -0
  69. {perception-0.9.1 → perception-0.9.2}/perception/py.typed +0 -0
  70. {perception-0.9.1 → perception-0.9.2}/perception/testing/__init__.py +0 -0
  71. {perception-0.9.1 → perception-0.9.2}/perception/testing/images/README.md +0 -0
  72. {perception-0.9.1 → perception-0.9.2}/perception/testing/images/image1.jpg +0 -0
  73. {perception-0.9.1 → perception-0.9.2}/perception/testing/images/image10.jpg +0 -0
  74. {perception-0.9.1 → perception-0.9.2}/perception/testing/images/image2.jpg +0 -0
  75. {perception-0.9.1 → perception-0.9.2}/perception/testing/images/image3.jpg +0 -0
  76. {perception-0.9.1 → perception-0.9.2}/perception/testing/images/image4.jpg +0 -0
  77. {perception-0.9.1 → perception-0.9.2}/perception/testing/images/image5.jpg +0 -0
  78. {perception-0.9.1 → perception-0.9.2}/perception/testing/images/image6.jpg +0 -0
  79. {perception-0.9.1 → perception-0.9.2}/perception/testing/images/image7.jpg +0 -0
  80. {perception-0.9.1 → perception-0.9.2}/perception/testing/images/image8.jpg +0 -0
  81. {perception-0.9.1 → perception-0.9.2}/perception/testing/images/image9.jpg +0 -0
  82. {perception-0.9.1 → perception-0.9.2}/perception/testing/logos/README.md +0 -0
  83. {perception-0.9.1 → perception-0.9.2}/perception/testing/logos/logoipsum.png +0 -0
  84. {perception-0.9.1 → perception-0.9.2}/perception/testing/videos/README.md +0 -0
  85. {perception-0.9.1 → perception-0.9.2}/perception/testing/videos/expected_tmk.json.gz +0 -0
  86. {perception-0.9.1 → perception-0.9.2}/perception/testing/videos/extra_channel_attached_pic.mp4 +0 -0
  87. {perception-0.9.1 → perception-0.9.2}/perception/testing/videos/extra_channel_attached_pic_audio.mp4 +0 -0
  88. {perception-0.9.1 → perception-0.9.2}/perception/testing/videos/rgb.m4v +0 -0
  89. {perception-0.9.1 → perception-0.9.2}/perception/testing/videos/v1.m4v +0 -0
  90. {perception-0.9.1 → perception-0.9.2}/perception/testing/videos/v2.m4v +0 -0
  91. {perception-0.9.1 → perception-0.9.2}/perception/testing/videos/v2s.mov +0 -0
  92. {perception-0.9.1 → perception-0.9.2}/perception/tools.py +0 -0
  93. {perception-0.9.1 → perception-0.9.2}/perception/utils.py +0 -0
  94. {perception-0.9.1 → perception-0.9.2}/setup.cfg +0 -0
  95. {perception-0.9.1 → perception-0.9.2}/setup.py +0 -0
  96. {perception-0.9.1 → perception-0.9.2}/tests/images/chair-square.png +0 -0
  97. {perception-0.9.1 → perception-0.9.2}/tests/images/chair-tall.png +0 -0
  98. {perception-0.9.1 → perception-0.9.2}/tests/images/chair.png +0 -0
  99. {perception-0.9.1 → perception-0.9.2}/tests/images/chair3.png +0 -0
@@ -16,9 +16,9 @@ jobs:
16
16
  runs-on: ${{ matrix.os }}
17
17
  steps:
18
18
  - name: checkout
19
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
19
+ uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
20
20
  - name: Set up uv
21
- uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
21
+ uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
22
22
  with:
23
23
  python-version: ${{ matrix.python-version }}
24
24
  enable-cache: true
@@ -20,7 +20,7 @@ jobs:
20
20
  pages: write
21
21
  id-token: write
22
22
  steps:
23
- - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
23
+ - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
24
24
  with:
25
25
  fetch-depth: 0
26
26
  - id: deployment
@@ -16,14 +16,14 @@ jobs:
16
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
- - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
19
+ - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
20
20
  with:
21
21
  # Full clone for version calculation
22
22
  fetch-depth: 0
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@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
26
+ uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
27
27
  with:
28
28
  python-version: ${{ matrix.python-version }}
29
29
  enable-cache: false
@@ -53,14 +53,14 @@ jobs:
53
53
  runs-on: ubuntu-latest
54
54
  name: Build sdist
55
55
  steps:
56
- - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
56
+ - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
57
57
  with:
58
58
  # Full clone for version calculation
59
59
  fetch-depth: 0
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@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
63
+ uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
64
64
  with:
65
65
  python-version: "3.13"
66
66
  enable-cache: false
@@ -82,14 +82,14 @@ jobs:
82
82
  runs-on: ubuntu-latest
83
83
  if: ${{ github.repository_owner == 'thorn-oss' && github.event_name == 'release' }}
84
84
  steps:
85
- - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
85
+ - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
86
86
  with:
87
87
  # Full clone for version calculation
88
88
  fetch-depth: 0
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@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
92
+ uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.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@92467eb28f72e8255933372f1e0707c567ce2259 # v4.0.0
103
+ uses: 1password/load-secrets-action@3a12b0ab99d9cd590a3e9b5a90ea017210ed9556 # v4.0.1
104
104
  with:
105
105
  # Export loaded secrets as environment variables
106
106
  export-env: true
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Perception
3
- Version: 0.9.1
3
+ Version: 0.9.2
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
@@ -17,7 +17,7 @@ Requires-Dist: scipy
17
17
  Requires-Dist: tqdm<5.0.0,>=4.67.1
18
18
  Requires-Dist: typing_extensions<5.0,>=4.0
19
19
  Provides-Extra: approximate-deduplication
20
- Requires-Dist: faiss-cpu<2.0.0,>=1.8.0; extra == "approximate-deduplication"
20
+ Requires-Dist: faiss-cpu<2.0.0,>=1.14.3; extra == "approximate-deduplication"
21
21
  Requires-Dist: networkit<12.0.0,>=11.1; sys_platform != "darwin" and extra == "approximate-deduplication"
22
22
  Requires-Dist: networkx<4.0,>=3.0; sys_platform == "darwin" and extra == "approximate-deduplication"
23
23
  Requires-Dist: pandas; extra == "approximate-deduplication"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Perception
3
- Version: 0.9.1
3
+ Version: 0.9.2
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
@@ -17,7 +17,7 @@ Requires-Dist: scipy
17
17
  Requires-Dist: tqdm<5.0.0,>=4.67.1
18
18
  Requires-Dist: typing_extensions<5.0,>=4.0
19
19
  Provides-Extra: approximate-deduplication
20
- Requires-Dist: faiss-cpu<2.0.0,>=1.8.0; extra == "approximate-deduplication"
20
+ Requires-Dist: faiss-cpu<2.0.0,>=1.14.3; extra == "approximate-deduplication"
21
21
  Requires-Dist: networkit<12.0.0,>=11.1; sys_platform != "darwin" and extra == "approximate-deduplication"
22
22
  Requires-Dist: networkx<4.0,>=3.0; sys_platform == "darwin" and extra == "approximate-deduplication"
23
23
  Requires-Dist: pandas; extra == "approximate-deduplication"
@@ -21,6 +21,8 @@ Perception.egg-info/PKG-INFO
21
21
  Perception.egg-info/SOURCES.txt
22
22
  Perception.egg-info/dependency_links.txt
23
23
  Perception.egg-info/requires.txt
24
+ Perception.egg-info/scm_file_list.json
25
+ Perception.egg-info/scm_version.json
24
26
  Perception.egg-info/top_level.txt
25
27
  docs/conf.py
26
28
  docs/index.rst
@@ -9,7 +9,7 @@ tqdm<5.0.0,>=4.67.1
9
9
  typing_extensions<5.0,>=4.0
10
10
 
11
11
  [approximate-deduplication]
12
- faiss-cpu<2.0.0,>=1.8.0
12
+ faiss-cpu<2.0.0,>=1.14.3
13
13
  pandas
14
14
 
15
15
  [approximate-deduplication:sys_platform != "darwin"]
@@ -0,0 +1,98 @@
1
+ {
2
+ "files": [
3
+ ".pre-commit-config.yaml",
4
+ "README.md",
5
+ "uv.lock",
6
+ "Makefile",
7
+ "LICENSE",
8
+ "setup.py",
9
+ "pyproject.toml",
10
+ "CHANGELOG.md",
11
+ ".dockerignore",
12
+ ".git-blame-ignore-revs",
13
+ ".gitattributes",
14
+ "MANIFEST.in",
15
+ ".gitignore",
16
+ ".readthedocs.yaml",
17
+ "CODE_OF_CONDUCT.md",
18
+ "docs/index.rst",
19
+ "docs/requirements.txt",
20
+ "docs/conf.py",
21
+ "docs/api/benchmarking.rst",
22
+ "docs/api/index.rst",
23
+ "docs/api/tools.rst",
24
+ "docs/api/hashers.rst",
25
+ "docs/examples/benchmarking.rst",
26
+ "docs/examples/detecting_csam.rst",
27
+ "docs/examples/index.rst",
28
+ "docs/examples/deduplication.rst",
29
+ "perception/local_descriptor_deduplication.py",
30
+ "perception/tools.py",
31
+ "perception/py.typed",
32
+ "perception/__init__.py",
33
+ "perception/utils.py",
34
+ "perception/extensions.pyx",
35
+ "perception/_optional.py",
36
+ "perception/hashers/tools.py",
37
+ "perception/hashers/__init__.py",
38
+ "perception/hashers/hasher.py",
39
+ "perception/hashers/video/__init__.py",
40
+ "perception/hashers/video/tmk.py",
41
+ "perception/hashers/video/framewise.py",
42
+ "perception/hashers/image/__init__.py",
43
+ "perception/hashers/image/opencv.py",
44
+ "perception/hashers/image/phash.py",
45
+ "perception/hashers/image/wavelet.py",
46
+ "perception/hashers/image/average.py",
47
+ "perception/hashers/image/dhash.py",
48
+ "perception/hashers/image/pdq.py",
49
+ "perception/approximate_deduplication/__init__.py",
50
+ "perception/approximate_deduplication/debug.py",
51
+ "perception/approximate_deduplication/serve.py",
52
+ "perception/approximate_deduplication/_graph_backend.py",
53
+ "perception/approximate_deduplication/index.py",
54
+ "perception/benchmarking/video.py",
55
+ "perception/benchmarking/video_transforms.py",
56
+ "perception/benchmarking/__init__.py",
57
+ "perception/benchmarking/image_transforms.py",
58
+ "perception/benchmarking/image.py",
59
+ "perception/benchmarking/extensions.pyx",
60
+ "perception/benchmarking/common.py",
61
+ "perception/testing/__init__.py",
62
+ "perception/testing/images/image1.jpg",
63
+ "perception/testing/images/image4.jpg",
64
+ "perception/testing/images/image6.jpg",
65
+ "perception/testing/images/README.md",
66
+ "perception/testing/images/image2.jpg",
67
+ "perception/testing/images/image9.jpg",
68
+ "perception/testing/images/image10.jpg",
69
+ "perception/testing/images/image3.jpg",
70
+ "perception/testing/images/image8.jpg",
71
+ "perception/testing/images/image5.jpg",
72
+ "perception/testing/images/image7.jpg",
73
+ "perception/testing/videos/v1.m4v",
74
+ "perception/testing/videos/README.md",
75
+ "perception/testing/videos/v2s.mov",
76
+ "perception/testing/videos/extra_channel_attached_pic.mp4",
77
+ "perception/testing/videos/extra_channel_attached_pic_audio.mp4",
78
+ "perception/testing/videos/expected_tmk.json.gz",
79
+ "perception/testing/videos/v2.m4v",
80
+ "perception/testing/videos/rgb.m4v",
81
+ "perception/testing/logos/README.md",
82
+ "perception/testing/logos/logoipsum.png",
83
+ "tests/test_benchmarking.py",
84
+ "tests/test_hashers.py",
85
+ "tests/test_tmk.py",
86
+ "tests/test_local_descriptor_deduplication.py",
87
+ "tests/test_approximate_deduplication.py",
88
+ "tests/test_tools.py",
89
+ "tests/images/chair-square.png",
90
+ "tests/images/chair3.png",
91
+ "tests/images/chair-tall.png",
92
+ "tests/images/chair.png",
93
+ ".github/dependabot.yaml",
94
+ ".github/workflows/gh-pages.yaml",
95
+ ".github/workflows/release.yaml",
96
+ ".github/workflows/ci.yaml"
97
+ ]
98
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "0.9.2",
3
+ "distance": 0,
4
+ "node": "g1a20019fc8b1b1c71e9381ac8a8cf916e4fc2dec",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-06-25"
8
+ }