2023-03-05T22:03:05,060 Created temporary directory: /tmp/pip-ephem-wheel-cache-gu5bz99h 2023-03-05T22:03:05,062 Created temporary directory: /tmp/pip-build-tracker-eumlygby 2023-03-05T22:03:05,063 Initialized build tracking at /tmp/pip-build-tracker-eumlygby 2023-03-05T22:03:05,063 Created build tracker: /tmp/pip-build-tracker-eumlygby 2023-03-05T22:03:05,063 Entered build tracker: /tmp/pip-build-tracker-eumlygby 2023-03-05T22:03:05,064 Created temporary directory: /tmp/pip-wheel-bb_6i_ni 2023-03-05T22:03:05,068 DEPRECATION: --no-binary currently disables reading from the cache of locally built wheels. In the future --no-binary will not influence the wheel cache. pip 23.1 will enforce this behaviour change. A possible replacement is to use the --no-cache-dir option. You can use the flag --use-feature=no-binary-enable-wheel-cache to test the upcoming behaviour. Discussion can be found at https://github.com/pypa/pip/issues/11453 2023-03-05T22:03:05,071 Created temporary directory: /tmp/pip-ephem-wheel-cache-r6z374vu 2023-03-05T22:03:05,100 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2023-03-05T22:03:05,104 2 location(s) to search for versions of difpy: 2023-03-05T22:03:05,104 * https://pypi.org/simple/difpy/ 2023-03-05T22:03:05,104 * https://www.piwheels.org/simple/difpy/ 2023-03-05T22:03:05,104 Fetching project page and analyzing links: https://pypi.org/simple/difpy/ 2023-03-05T22:03:05,105 Getting page https://pypi.org/simple/difpy/ 2023-03-05T22:03:05,107 Found index url https://pypi.org/simple 2023-03-05T22:03:05,160 Fetched page https://pypi.org/simple/difpy/ as application/vnd.pypi.simple.v1+json 2023-03-05T22:03:05,164 Found link https://files.pythonhosted.org/packages/a6/cf/39ed4e4c766169aac47956b553f67d99601fb118d2f218c80b097a77184c/difPy-1.0.1.tar.gz (from https://pypi.org/simple/difpy/), version: 1.0.1 2023-03-05T22:03:05,165 Found link https://files.pythonhosted.org/packages/44/a2/3ebf42ff6fb28d32ed439afde5eb23d50069ab5b0073d4427ebc811e9a0d/difPy-1.2.tar.gz (from https://pypi.org/simple/difpy/), version: 1.2 2023-03-05T22:03:05,165 Found link https://files.pythonhosted.org/packages/e1/12/d663f2b8b4e82b4d540525f2d97897cefbfc337d85ad0ae4540117223e7e/difPy-2.0.tar.gz (from https://pypi.org/simple/difpy/), version: 2.0 2023-03-05T22:03:05,165 Found link https://files.pythonhosted.org/packages/79/ab/812accfaf4e5a5e81388fd687a6f6f717db52b4c3a8c6b94699e57acbaa7/difPy-2.2.tar.gz (from https://pypi.org/simple/difpy/), version: 2.2 2023-03-05T22:03:05,166 Found link https://files.pythonhosted.org/packages/da/df/1164ab8c485bd4b3d0b53e23af6c4c13d3b6285e7ab5ce50d1c695713f1c/difPy-2.3.tar.gz (from https://pypi.org/simple/difpy/), version: 2.3 2023-03-05T22:03:05,166 Found link https://files.pythonhosted.org/packages/ad/e0/1c5e4b256c23d175de226ec36b043adb195c4c7103bec13fd1c79ab5fe39/difPy-2.4.tar.gz (from https://pypi.org/simple/difpy/), version: 2.4 2023-03-05T22:03:05,166 Found link https://files.pythonhosted.org/packages/b3/22/4015f00d6daa5cdde207b1e309c4413cf238e5ab9310b7f6bcf57f48f0d5/difPy-2.4.1.tar.gz (from https://pypi.org/simple/difpy/), version: 2.4.1 2023-03-05T22:03:05,167 Found link https://files.pythonhosted.org/packages/3f/82/81a1fb09b81875108c99d3a7b6330f0c350f64f7d1178a3874acbb33a924/difPy-2.4.2.tar.gz (from https://pypi.org/simple/difpy/), version: 2.4.2 2023-03-05T22:03:05,167 Found link https://files.pythonhosted.org/packages/28/90/f7a45c8874d1d2cdf4ce95acbd09787cd6f90903f4ed563a41a030867f1f/difPy-2.4.3.tar.gz (from https://pypi.org/simple/difpy/), version: 2.4.3 2023-03-05T22:03:05,167 Found link https://files.pythonhosted.org/packages/5a/2b/b33c48b4bc5a90fce4fd997c18707feb77d45307902e3fc0bc0e424ab587/difPy-2.4.4.tar.gz (from https://pypi.org/simple/difpy/), version: 2.4.4 2023-03-05T22:03:05,167 Found link https://files.pythonhosted.org/packages/35/8d/a38010f7628126da6f39a53907925ae54fd21e49517b9048dbff7682d082/difPy-2.4.5.tar.gz (from https://pypi.org/simple/difpy/), version: 2.4.5 2023-03-05T22:03:05,168 Found link https://files.pythonhosted.org/packages/42/26/946ca1b2200ca6db18430243946b1e02f531ec1ee37582afbd78430ae6ef/difPy-3.0.0.tar.gz (from https://pypi.org/simple/difpy/), version: 3.0.0 2023-03-05T22:03:05,168 Found link https://files.pythonhosted.org/packages/42/03/f84bc687bca6f79024fb8ff61ad6143ef15060d1a7bc75d781aa5e5ffaa6/difPy-3.0.1.tar.gz (from https://pypi.org/simple/difpy/), version: 3.0.1 2023-03-05T22:03:05,168 Found link https://files.pythonhosted.org/packages/bb/31/9100ede4efde89841fd3f344763917e96e22a43ad2236fdf561c744e17b0/difPy-3.0.2.tar.gz (from https://pypi.org/simple/difpy/), version: 3.0.2 2023-03-05T22:03:05,169 Found link https://files.pythonhosted.org/packages/74/41/01e2d49e17098d6d9097eadd6cc0504140ffc38bfa281dd4af9a28c7d5dd/difPy-3.0.3.tar.gz (from https://pypi.org/simple/difpy/), version: 3.0.3 2023-03-05T22:03:05,169 Found link https://files.pythonhosted.org/packages/20/5f/efceb5f789de92d0da5e8adb27f2464316c5c41f676dea4fda5179881b62/difPy-3.0.4.tar.gz (from https://pypi.org/simple/difpy/), version: 3.0.4 2023-03-05T22:03:05,169 Found link https://files.pythonhosted.org/packages/00/3e/126c99700195d8fd57a00a9c7c2723a2ee2623c2c2276cf704556cfa9581/difPy-3.0.5.tar.gz (from https://pypi.org/simple/difpy/), version: 3.0.5 2023-03-05T22:03:05,169 Found link https://files.pythonhosted.org/packages/15/5b/c79874a47f841dac832d84eaa726326a9124844c2cff33a26e12af1f36a8/difPy-3.0.6.tar.gz (from https://pypi.org/simple/difpy/), version: 3.0.6 2023-03-05T22:03:05,170 Found link https://files.pythonhosted.org/packages/42/36/71556c11e00faca94ed76e557d28793251ac5687d8c67424bf7aad17aff2/difPy-3.0.7.tar.gz (from https://pypi.org/simple/difpy/), version: 3.0.7 2023-03-05T22:03:05,170 Fetching project page and analyzing links: https://www.piwheels.org/simple/difpy/ 2023-03-05T22:03:05,170 Getting page https://www.piwheels.org/simple/difpy/ 2023-03-05T22:03:05,171 Found index url https://www.piwheels.org/simple 2023-03-05T22:03:05,388 Fetched page https://www.piwheels.org/simple/difpy/ as text/html 2023-03-05T22:03:05,402 Skipping link: No binaries permitted for difpy: https://www.piwheels.org/simple/difpy/difPy-3.0.6-py3-none-any.whl#sha256=5f32a7749a1beeba4373fd818e042d102ef116bca36e15bb9ae4d20734297a05 (from https://www.piwheels.org/simple/difpy/) 2023-03-05T22:03:05,403 Skipping link: No binaries permitted for difpy: https://www.piwheels.org/simple/difpy/difPy-3.0.5-py3-none-any.whl#sha256=15c1e780303252326ffb924af1f042820eef36feab2885729682e2b426b6f4be (from https://www.piwheels.org/simple/difpy/) 2023-03-05T22:03:05,403 Skipping link: No binaries permitted for difpy: https://www.piwheels.org/simple/difpy/difPy-3.0.4-py3-none-any.whl#sha256=c37c34523382d4d0dc301837e8c311ab25e7f5839ea2439f0ae9162e6106006e (from https://www.piwheels.org/simple/difpy/) 2023-03-05T22:03:05,404 Skipping link: No binaries permitted for difpy: https://www.piwheels.org/simple/difpy/difPy-3.0.3-py3-none-any.whl#sha256=86b84e109f34812bbf6bcd0affd073ef7ee2ac296265b577cf0d52c0d2a3106d (from https://www.piwheels.org/simple/difpy/) 2023-03-05T22:03:05,404 Skipping link: No binaries permitted for difpy: https://www.piwheels.org/simple/difpy/difPy-3.0.2-py3-none-any.whl#sha256=dd8ad43bb20c6b537cb919c75d3398e45c3e34b4d6d63e778c74c6a73b3c0532 (from https://www.piwheels.org/simple/difpy/) 2023-03-05T22:03:05,405 Skipping link: No binaries permitted for difpy: https://www.piwheels.org/simple/difpy/difPy-3.0.1-py3-none-any.whl#sha256=59b2cbe0e35662f4e812627887c87bbe02d6d02b2dc9a26c32dbf0f173ae368a (from https://www.piwheels.org/simple/difpy/) 2023-03-05T22:03:05,405 Skipping link: No binaries permitted for difpy: https://www.piwheels.org/simple/difpy/difPy-3.0.0-py3-none-any.whl#sha256=19f8eddc5081486f8e266bb3e1b7cf6343bd06d7f0ead8defd2c964a6d63a572 (from https://www.piwheels.org/simple/difpy/) 2023-03-05T22:03:05,406 Skipping link: No binaries permitted for difpy: https://www.piwheels.org/simple/difpy/difPy-2.4.5-py3-none-any.whl#sha256=7beebd2677487d648041639ac027c8640276a5f839ab9a0b12cd046765397c39 (from https://www.piwheels.org/simple/difpy/) 2023-03-05T22:03:05,406 Skipping link: No binaries permitted for difpy: https://www.piwheels.org/simple/difpy/difPy-2.4.4-py3-none-any.whl#sha256=cd66a6d15e358190f49177168d617543677493ed16b078c092543e479e4d9150 (from https://www.piwheels.org/simple/difpy/) 2023-03-05T22:03:05,407 Skipping link: No binaries permitted for difpy: https://www.piwheels.org/simple/difpy/difPy-2.4.3-py3-none-any.whl#sha256=126d888b9e2f408f7f1916c35338dbfde23dfb74c8aff324966e6e313de01339 (from https://www.piwheels.org/simple/difpy/) 2023-03-05T22:03:05,407 Skipping link: No binaries permitted for difpy: https://www.piwheels.org/simple/difpy/difPy-2.4.2-py3-none-any.whl#sha256=5ff7356350459c2ca00ebe25d22b0ff53a377e806db030813289df74fb707224 (from https://www.piwheels.org/simple/difpy/) 2023-03-05T22:03:05,407 Skipping link: No binaries permitted for difpy: https://www.piwheels.org/simple/difpy/difPy-2.4.1-py3-none-any.whl#sha256=f7d2fbd379e11231aaff9d376f27bce3ac722ae866ebd18179661c1b63df8f61 (from https://www.piwheels.org/simple/difpy/) 2023-03-05T22:03:05,408 Skipping link: No binaries permitted for difpy: https://www.piwheels.org/simple/difpy/difPy-2.4-py3-none-any.whl#sha256=b59f64587207940482bb854e09edcc11d2a0617c48c0daf381bff27278eec63d (from https://www.piwheels.org/simple/difpy/) 2023-03-05T22:03:05,408 Skipping link: No binaries permitted for difpy: https://www.piwheels.org/simple/difpy/difPy-2.3-py3-none-any.whl#sha256=136ed69ecf22c5c77ad955fb058a6b14798367281fe7fdfc0f740ba9a44d4965 (from https://www.piwheels.org/simple/difpy/) 2023-03-05T22:03:05,408 Skipping link: No binaries permitted for difpy: https://www.piwheels.org/simple/difpy/difPy-2.2-py3-none-any.whl#sha256=8ce8279bd7e806bb30343e7fa1c545351f172492f4dd2656a1b1f9c0492b1c16 (from https://www.piwheels.org/simple/difpy/) 2023-03-05T22:03:05,409 Skipping link: No binaries permitted for difpy: https://www.piwheels.org/simple/difpy/difPy-2.0-py3-none-any.whl#sha256=c1798d9d73e915e0fd0fbc765bccde1ad60d77aa10d5983158da3d2b29db6eca (from https://www.piwheels.org/simple/difpy/) 2023-03-05T22:03:05,409 Skipping link: No binaries permitted for difpy: https://www.piwheels.org/simple/difpy/difPy-1.2-py3-none-any.whl#sha256=2f41cbd839d19322ab06549739554ce49a137c7dc5bfc2f848a99d50e45f8829 (from https://www.piwheels.org/simple/difpy/) 2023-03-05T22:03:05,409 Skipping link: No binaries permitted for difpy: https://www.piwheels.org/simple/difpy/difPy-1.0.1-py3-none-any.whl#sha256=065e42e39ece614ffd34ca63cbb076a77f36e0e925148abc727a54eaeb30be26 (from https://www.piwheels.org/simple/difpy/) 2023-03-05T22:03:05,410 Skipping link: not a file: https://www.piwheels.org/simple/difpy/ 2023-03-05T22:03:05,410 Skipping link: not a file: https://pypi.org/simple/difpy/ 2023-03-05T22:03:05,445 Given no hashes to check 1 links for project 'difpy': discarding no candidates 2023-03-05T22:03:05,473 Collecting difpy==3.0.7 2023-03-05T22:03:05,476 Created temporary directory: /tmp/pip-unpack-8tkjdgv3 2023-03-05T22:03:05,533 Downloading difPy-3.0.7.tar.gz (13 kB) 2023-03-05T22:03:05,573 Added difpy==3.0.7 from https://files.pythonhosted.org/packages/42/36/71556c11e00faca94ed76e557d28793251ac5687d8c67424bf7aad17aff2/difPy-3.0.7.tar.gz to build tracker '/tmp/pip-build-tracker-eumlygby' 2023-03-05T22:03:05,580 Created temporary directory: /tmp/pip-build-env-yr13kawc 2023-03-05T22:03:05,590 Installing build dependencies: started 2023-03-05T22:03:05,591 Running command pip subprocess to install build dependencies 2023-03-05T22:03:06,801 Using pip 23.0.1 from /usr/local/lib/python3.9/dist-packages/pip (python 3.9) 2023-03-05T22:03:07,381 DEPRECATION: --no-binary currently disables reading from the cache of locally built wheels. In the future --no-binary will not influence the wheel cache. pip 23.1 will enforce this behaviour change. A possible replacement is to use the --no-cache-dir option. You can use the flag --use-feature=no-binary-enable-wheel-cache to test the upcoming behaviour. Discussion can be found at https://github.com/pypa/pip/issues/11453 2023-03-05T22:03:07,408 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2023-03-05T22:03:08,808 Collecting numpy>=1.24.2 2023-03-05T22:03:10,046 Using cached https://www.piwheels.org/simple/numpy/numpy-1.24.2-cp39-cp39-linux_armv7l.whl (12.3 MB) 2023-03-05T22:03:11,434 Collecting matplotlib>=3.7.0 2023-03-05T22:03:11,457 Downloading https://www.piwheels.org/simple/matplotlib/matplotlib-3.7.1-cp39-cp39-linux_armv7l.whl (10.6 MB) 2023-03-05T22:03:12,349 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.6/10.6 MB 11.8 MB/s eta 0:00:00 2023-03-05T22:03:13,935 Collecting Pillow>=9.4.0 2023-03-05T22:03:14,096 Using cached https://www.piwheels.org/simple/pillow/Pillow-9.4.0-cp39-cp39-linux_armv7l.whl (1.1 MB) 2023-03-05T22:03:15,687 Collecting setuptools>=40.8.0 2023-03-05T22:03:15,826 Using cached https://www.piwheels.org/simple/setuptools/setuptools-67.4.0-py3-none-any.whl (1.1 MB) 2023-03-05T22:03:16,112 Collecting packaging>=20.0 2023-03-05T22:03:16,130 Using cached https://www.piwheels.org/simple/packaging/packaging-23.0-py3-none-any.whl (42 kB) 2023-03-05T22:03:16,572 Collecting contourpy>=1.0.1 2023-03-05T22:03:16,620 Using cached https://www.piwheels.org/simple/contourpy/contourpy-1.0.7-cp39-cp39-linux_armv7l.whl (224 kB) 2023-03-05T22:03:16,947 Collecting kiwisolver>=1.0.1 2023-03-05T22:03:17,102 Using cached https://www.piwheels.org/simple/kiwisolver/kiwisolver-1.4.4-cp39-cp39-linux_armv7l.whl (1.1 MB) 2023-03-05T22:03:17,379 Collecting pyparsing>=2.3.1 2023-03-05T22:03:17,423 Using cached https://www.piwheels.org/simple/pyparsing/pyparsing-3.0.9-py3-none-any.whl (98 kB) 2023-03-05T22:03:17,563 Collecting python-dateutil>=2.7 2023-03-05T22:03:17,595 Using cached https://www.piwheels.org/simple/python-dateutil/python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB) 2023-03-05T22:03:17,682 Collecting cycler>=0.10 2023-03-05T22:03:17,724 Using cached https://www.piwheels.org/simple/cycler/cycler-0.11.0-py3-none-any.whl (6.4 kB) 2023-03-05T22:03:18,048 Collecting importlib-resources>=3.2.0 2023-03-05T22:03:18,068 Using cached https://www.piwheels.org/simple/importlib-resources/importlib_resources-5.12.0-py3-none-any.whl (36 kB) 2023-03-05T22:03:18,612 Collecting fonttools>=4.22.0 2023-03-05T22:03:18,879 Using cached https://www.piwheels.org/simple/fonttools/fonttools-4.38.0-cp39-cp39-linux_armv7l.whl (2.4 MB) 2023-03-05T22:03:19,516 Collecting zipp>=3.1.0 2023-03-05T22:03:19,531 Using cached https://www.piwheels.org/simple/zipp/zipp-3.15.0-py3-none-any.whl (6.8 kB) 2023-03-05T22:03:19,684 Collecting six>=1.5 2023-03-05T22:03:19,700 Using cached https://www.piwheels.org/simple/six/six-1.16.0-py2.py3-none-any.whl (11 kB) 2023-03-05T22:03:22,066 Installing collected packages: zipp, six, setuptools, pyparsing, Pillow, packaging, numpy, kiwisolver, fonttools, cycler, python-dateutil, importlib-resources, contourpy, matplotlib 2023-03-05T22:03:34,412 Creating /tmp/pip-build-env-yr13kawc/overlay/bin 2023-03-05T22:03:34,414 changing mode of /tmp/pip-build-env-yr13kawc/overlay/bin/f2py to 755 2023-03-05T22:03:34,417 changing mode of /tmp/pip-build-env-yr13kawc/overlay/bin/f2py3 to 755 2023-03-05T22:03:34,419 changing mode of /tmp/pip-build-env-yr13kawc/overlay/bin/f2py3.9 to 755 2023-03-05T22:03:37,752 changing mode of /tmp/pip-build-env-yr13kawc/overlay/bin/fonttools to 755 2023-03-05T22:03:37,754 changing mode of /tmp/pip-build-env-yr13kawc/overlay/bin/pyftmerge to 755 2023-03-05T22:03:37,756 changing mode of /tmp/pip-build-env-yr13kawc/overlay/bin/pyftsubset to 755 2023-03-05T22:03:37,759 changing mode of /tmp/pip-build-env-yr13kawc/overlay/bin/ttx to 755 2023-03-05T22:03:44,334 Successfully installed Pillow-9.4.0 contourpy-1.0.7 cycler-0.11.0 fonttools-4.38.0 importlib-resources-5.12.0 kiwisolver-1.4.4 matplotlib-3.7.1 numpy-1.24.2 packaging-23.0 pyparsing-3.0.9 python-dateutil-2.8.2 setuptools-67.4.0 six-1.16.0 zipp-3.15.0 2023-03-05T22:03:45,064 Installing build dependencies: finished with status 'done' 2023-03-05T22:03:45,082 Getting requirements to build wheel: started 2023-03-05T22:03:45,083 Running command Getting requirements to build wheel 2023-03-05T22:03:45,682 /tmp/pip-build-env-yr13kawc/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'readme' defined outside of `pyproject.toml` would be ignored. 2023-03-05T22:03:45,683 !! 2023-03-05T22:03:45,684 ########################################################################## 2023-03-05T22:03:45,684 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-05T22:03:45,684 ########################################################################## 2023-03-05T22:03:45,684 The following seems to be defined outside of `pyproject.toml`: 2023-03-05T22:03:45,685 `readme = '# Duplicate Image Finder (difPy)\n\n[![PyPIv](https://img.shields.io/pypi/v/difPy)](https://pypi.org/project/difPy/)\n[![PyPI status](https://img.shields.io/pypi/status/difPy)](https://pypi.org/project/difPy/)\n[![Documentation Status](https://readthedocs.org/projects/difpy/badge/?version=latest)](https://difpy.readthedocs.io/en/latest/?badge=latest)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/difPy)](https://pypi.org/project/difPy/)\n[![Downloads](https://static.pepy.tech/badge/difpy)](https://pepy.tech/project/difpy)\n[![PyPI - License](https://img.shields.io/pypi/l/difPy)](https://github.com/elisemercury/Duplicate-Image-Finder/blob/main/LICENSE.txt)\n[](https://github.com/elisemercury/Duplicate-Image-Finder/)\n\n**Tired of going through all images in a folder and comparing them manually to check if they are duplicates?**\n\n:white_check_mark: The Duplicate Image Finder (difPy) Python package **automates** this task for you!\n\n```python\npip install difPy\n```\n> :point_right: :new: **[difPy v3.0](https://github.com/elisemercury/Duplicate-Image-Finder/releases/tag/v3.0.1)** has been released! Count on signifcant **performance increases**, **new features** and **bug fixes**. Check out the [release notes](https://github.com/elisemercury/Duplicate-Image-Finder/releases/) for a detailed listing. \n\n> :open_hands: Our motto? We :heart: Open Source! **Contributions and new ideas for difPy are always welcome** - check our [Contributor Guidelines](https://github.com/elisemercury/Duplicate-Image-Finder/wiki/Contributing-to-difPy) for more information.\n\nRead more on how the algorithm of difPy works in my Medium article [Finding Duplicate Images with Python](https://towardsdatascience.com/finding-duplicate-images-with-python-71c04ec8051).\n\nCheck out the [difPy package on PyPI.org](https://pypi.org/project/difPy/)\n\n-------\n\n## Description\nDifPy searches for images in **one or more different folders**, compares the images it found and checks whether these are duplicates. It then outputs the **image files classified as duplicates** as well as the **images having the lowest resolutions**, so you know which of the duplicate images are safe to be deleted. You can then either delete them manually, or let difPy delete them for you.\n\n
\n \n
\n\nDifPy does not compare images based on their hashes. It compares them based on their tensors i. e. the image content - this allows difPy to **not only search for duplicate images, but also for similar images**.\n\n## Basic Usage\nUse the following function to make difPy search for duplicates within one specific folder and its subfolders:\n\n```python\nfrom difPy import dif\nsearch = dif("C:/Path/to/Folder/")\n``` \n:new: **[difPy v3.0](https://github.com/elisemercury/Duplicate-Image-Finder/releases/tag/v3.0.1)** now supports **multi-folder search**! To search for duplicates within mutliple folders and their subfolders:\n\n```python\nfrom difPy import dif\nsearch = dif(["C:/Path/to/Folder_A/", "C:/Path/to/Folder_B/", "C:/Path/to/Folder_C/", ... ])\n``` \nFolder paths must be specified as standalone Python strings, or within a Python list.\n\n:notebook: For a **detailed usage guide**, please view the official **[difPy Usage Documentation](https://difpy.readthedocs.io/)**.\n\n## Output\nDifPy returns various types of output that you may use depending on your use case: \n\nA **JSON formatted collection** of duplicates/similar images (i. e. **match groups**) that were found, where the keys are a **randomly generated unique id** for each image file:\n\n```python\nsearch.result\n\n> Output:\n{20220819171549 : {"location" : "C:/Path/to/Image/image1.jpg",\n "matches" : {30270813251529 : "location": "C:/Path/to/Image/matched_image1.jpg",\n "mse": 0.0},\n {72214282557852 : "location": "C:/Path/to/Image/matched_image2.jpg",\n "mse": 0.0},\n ... }\n ...\n}\n``` \n:new: **[difPy v3.0](https://github.com/elisemercury/Duplicate-Image-Finder/releases/tag/v3.0.1)** now outputs the **MSE** value for each matched image!\n\nA **list** of duplicates/similar images that have the **lowest quality** among match groups: \n\n```python\nsearch.lower_quality\n\n> Output:\n["C:/Path/to/Image/duplicate_image1.jpg", \n "C:/Path/to/Image/duplicate_image2.jpg", ...]\n``` \nA **JSON formatted collection** with statistics on the completed difPy process:\n\n```python\nsearch.stats\n\n> Output:\n{"directory" : ("C:/Path/to/Folder_A/", "C:/Path/to/Folder_B/", ... ),\n "duration" : {"start_date": "2023-02-15",\n "start_time" : "18:44:19",\n "end_date" : "2023-02-15",\n "end_time" : "18:44:38",\n "seconds_elapsed" : 18.6113},\n "fast_search": True,\n "recursive" : True,\n "match_mse" : 200,\n "files_searched" : 1032,\n "matches_found" : 852,\n "invalid_files": {"count": 4}}\n``` \n:new: **[difPy v3.0](https://github.com/elisemercury/Duplicate-Image-Finder/releases/tag/v3.0.1)** now outputs the count of **invalid files** in the target directory that could not be processed as images, as well as information on whether difPy\'s **Fast Search Algorithm (FSA)** was used.\n\n## Additional Parameters\nDifPy supports the following parameters:\n\n```python\ndif(*directory, fast_search=True, recursive=True, similarity=\'normal\', px_size=50, move_to=None, \n show_progress=True, show_output=False, delete=False, silent_del=False, logs=False)\n```\n:new: **[difPy v3.0](https://github.com/elisemercury/Duplicate-Image-Finder/releases/tag/v3.0.1)** now supports the use of its new **Fast Search Algorithm (FSA)**, capable of providing significant performance increases.\n\n:notebook: For a **detailed usage guide**, please view the official **[difPy Usage Documentation](https://difpy.readthedocs.io/)**.\n\n## CLI Usage\nYou can make use of difPy through a CLI interface by using the following commands:\n\n```python\npython dif.py -D "C:/Path/to/Folder/"\n\npython dif.py -D"C:/Path/to/Folder_A/" "C:/Path/to/Folder_B/" "C:/Path/to/Folder_C/"\n```\nIt supports the following arguments:\n\n```python\ndif.py [-h] -D DIRECTORY [-Z OUTPUT_DIRECTORY] [-f {True,False}]\n [-r {True,False}] [-s SIMILARITY] [-px PX_SIZE] \n [-p {True,False}] [-o {True,False}] [-mv MOVE_TO]\n [-d {True,False}] [-sd {True,False}] [-l {True,False}]\n```\n\n| | Parameter | | Parameter |\n| :---: | ------ | :---: | ------ | \n| `-D` | directory | `-px` | px_size | \n| `-Z` | output_directory | `-p` | show_progress |\n| `-f`| fast_search | `-o` | show_output |\n| `-r`| recursive | `-d` | delete |\n| `-s` | similarity | `-sd` | silent_del |\n\n\nWhen running from the CLI, the output of difPy is written to files and saved in the working directory by default. To change the default output directory, specify the `-Z / -output_directory` parameter. The "xxx" in the output filenames is a unique timestamp:\n\n```python\ndifPy_results_xxx.json\ndifPy_lower_quality_xxx.csv\ndifPy_stats_xxx.json\n```\n\n:notebook: For a **detailed usage guide**, please view the official **[difPy Usage Documentation](https://difpy.readthedocs.io/)**.\n\n## Related Projects\n\nThe below sections feature third-party work that has been **built with** or **inspired by** difPy. We would like to express a big thank you for any contributions made to difPy!\n\n-------\n\n### I. DifPy as Webapp\n\n[A Streamlit based Webapp to find duplicate images from single/multiple directories](https://github.com/prateekralhan/Streamlit-based-Duplicate-Images-Finder) by @prateekralhan - :dna: **built with difPy**\n\n\n \n
\n\n### II. photosdup - Mac Photos Tool to Find Duplicates\n\n[Tool to scan a Mac Photos library for duplicates, thumbnails etc.](https://github.com/peter-sk/photosdup) by @peter-sk - :sparkles: **inspired by difPy**\n\n-------\n\n\n:thought_balloon: Also want to be featured in the "Related Projects" section? Check our Contributor Guidelines to find out how!\n
\n\n-------\n\n\nWe :heart: Open Source\n
\n'` 2023-03-05T22:03:45,686 According to the spec (see the link below), however, setuptools CANNOT 2023-03-05T22:03:45,686 consider this value unless 'readme' is listed as `dynamic`. 2023-03-05T22:03:45,686 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-05T22:03:45,686 For the time being, `setuptools` will still consider the given value (as a 2023-03-05T22:03:45,687 **transitional** measure), but please note that future releases of setuptools will 2023-03-05T22:03:45,687 follow strictly the standard. 2023-03-05T22:03:45,687 To prevent this warning, you can list 'readme' under `dynamic` or alternatively 2023-03-05T22:03:45,687 remove the `[project]` table from your file and rely entirely on other means of 2023-03-05T22:03:45,687 configuration. 2023-03-05T22:03:45,688 !! 2023-03-05T22:03:45,688 warnings.warn(msg, _WouldIgnoreField) 2023-03-05T22:03:45,688 /tmp/pip-build-env-yr13kawc/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'license' defined outside of `pyproject.toml` would be ignored. 2023-03-05T22:03:45,688 !! 2023-03-05T22:03:45,688 ########################################################################## 2023-03-05T22:03:45,689 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-05T22:03:45,689 ########################################################################## 2023-03-05T22:03:45,689 The following seems to be defined outside of `pyproject.toml`: 2023-03-05T22:03:45,689 `license = 'MIT'` 2023-03-05T22:03:45,689 According to the spec (see the link below), however, setuptools CANNOT 2023-03-05T22:03:45,690 consider this value unless 'license' is listed as `dynamic`. 2023-03-05T22:03:45,690 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-05T22:03:45,690 For the time being, `setuptools` will still consider the given value (as a 2023-03-05T22:03:45,690 **transitional** measure), but please note that future releases of setuptools will 2023-03-05T22:03:45,690 follow strictly the standard. 2023-03-05T22:03:45,690 To prevent this warning, you can list 'license' under `dynamic` or alternatively 2023-03-05T22:03:45,691 remove the `[project]` table from your file and rely entirely on other means of 2023-03-05T22:03:45,691 configuration. 2023-03-05T22:03:45,691 !! 2023-03-05T22:03:45,691 warnings.warn(msg, _WouldIgnoreField) 2023-03-05T22:03:45,691 /tmp/pip-build-env-yr13kawc/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'keywords' defined outside of `pyproject.toml` would be ignored. 2023-03-05T22:03:45,692 !! 2023-03-05T22:03:45,692 ########################################################################## 2023-03-05T22:03:45,692 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-05T22:03:45,692 ########################################################################## 2023-03-05T22:03:45,693 The following seems to be defined outside of `pyproject.toml`: 2023-03-05T22:03:45,693 `keywords = ['duplicate', 'image', 'finder', 'similarity', 'pictures']` 2023-03-05T22:03:45,693 According to the spec (see the link below), however, setuptools CANNOT 2023-03-05T22:03:45,693 consider this value unless 'keywords' is listed as `dynamic`. 2023-03-05T22:03:45,693 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-05T22:03:45,694 For the time being, `setuptools` will still consider the given value (as a 2023-03-05T22:03:45,694 **transitional** measure), but please note that future releases of setuptools will 2023-03-05T22:03:45,694 follow strictly the standard. 2023-03-05T22:03:45,694 To prevent this warning, you can list 'keywords' under `dynamic` or alternatively 2023-03-05T22:03:45,694 remove the `[project]` table from your file and rely entirely on other means of 2023-03-05T22:03:45,694 configuration. 2023-03-05T22:03:45,695 !! 2023-03-05T22:03:45,695 warnings.warn(msg, _WouldIgnoreField) 2023-03-05T22:03:45,695 /tmp/pip-build-env-yr13kawc/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'classifiers' defined outside of `pyproject.toml` would be ignored. 2023-03-05T22:03:45,695 !! 2023-03-05T22:03:45,696 ########################################################################## 2023-03-05T22:03:45,696 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-05T22:03:45,696 ########################################################################## 2023-03-05T22:03:45,696 The following seems to be defined outside of `pyproject.toml`: 2023-03-05T22:03:45,696 `classifiers = ['Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', 'Topic :: Software Development :: Build Tools', 'License :: OSI Approved :: MIT License', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11']` 2023-03-05T22:03:45,697 According to the spec (see the link below), however, setuptools CANNOT 2023-03-05T22:03:45,697 consider this value unless 'classifiers' is listed as `dynamic`. 2023-03-05T22:03:45,697 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-05T22:03:45,697 For the time being, `setuptools` will still consider the given value (as a 2023-03-05T22:03:45,698 **transitional** measure), but please note that future releases of setuptools will 2023-03-05T22:03:45,698 follow strictly the standard. 2023-03-05T22:03:45,698 To prevent this warning, you can list 'classifiers' under `dynamic` or alternatively 2023-03-05T22:03:45,698 remove the `[project]` table from your file and rely entirely on other means of 2023-03-05T22:03:45,698 configuration. 2023-03-05T22:03:45,699 !! 2023-03-05T22:03:45,699 warnings.warn(msg, _WouldIgnoreField) 2023-03-05T22:03:45,699 /tmp/pip-build-env-yr13kawc/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'dependencies' defined outside of `pyproject.toml` would be ignored. 2023-03-05T22:03:45,699 !! 2023-03-05T22:03:45,699 ########################################################################## 2023-03-05T22:03:45,700 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-05T22:03:45,700 ########################################################################## 2023-03-05T22:03:45,700 The following seems to be defined outside of `pyproject.toml`: 2023-03-05T22:03:45,700 `dependencies = ['matplotlib', 'numpy', 'Pillow']` 2023-03-05T22:03:45,700 According to the spec (see the link below), however, setuptools CANNOT 2023-03-05T22:03:45,701 consider this value unless 'dependencies' is listed as `dynamic`. 2023-03-05T22:03:45,701 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-05T22:03:45,701 For the time being, `setuptools` will still consider the given value (as a 2023-03-05T22:03:45,701 **transitional** measure), but please note that future releases of setuptools will 2023-03-05T22:03:45,701 follow strictly the standard. 2023-03-05T22:03:45,702 To prevent this warning, you can list 'dependencies' under `dynamic` or alternatively 2023-03-05T22:03:45,702 remove the `[project]` table from your file and rely entirely on other means of 2023-03-05T22:03:45,702 configuration. 2023-03-05T22:03:45,702 !! 2023-03-05T22:03:45,702 warnings.warn(msg, _WouldIgnoreField) 2023-03-05T22:03:45,972 running egg_info 2023-03-05T22:03:45,980 writing difPy.egg-info/PKG-INFO 2023-03-05T22:03:45,983 writing dependency_links to difPy.egg-info/dependency_links.txt 2023-03-05T22:03:45,985 writing requirements to difPy.egg-info/requires.txt 2023-03-05T22:03:45,986 writing top-level names to difPy.egg-info/top_level.txt 2023-03-05T22:03:46,010 reading manifest file 'difPy.egg-info/SOURCES.txt' 2023-03-05T22:03:46,012 adding license file 'LICENSE.txt' 2023-03-05T22:03:46,014 writing manifest file 'difPy.egg-info/SOURCES.txt' 2023-03-05T22:03:46,111 Getting requirements to build wheel: finished with status 'done' 2023-03-05T22:03:46,137 Installing backend dependencies: started 2023-03-05T22:03:46,138 Running command pip subprocess to install backend dependencies 2023-03-05T22:03:47,333 Using pip 23.0.1 from /usr/local/lib/python3.9/dist-packages/pip (python 3.9) 2023-03-05T22:03:47,898 DEPRECATION: --no-binary currently disables reading from the cache of locally built wheels. In the future --no-binary will not influence the wheel cache. pip 23.1 will enforce this behaviour change. A possible replacement is to use the --no-cache-dir option. You can use the flag --use-feature=no-binary-enable-wheel-cache to test the upcoming behaviour. Discussion can be found at https://github.com/pypa/pip/issues/11453 2023-03-05T22:03:47,924 Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple 2023-03-05T22:03:48,364 Collecting wheel 2023-03-05T22:03:48,383 Using cached https://www.piwheels.org/simple/wheel/wheel-0.38.4-py3-none-any.whl (36 kB) 2023-03-05T22:03:49,817 Installing collected packages: wheel 2023-03-05T22:03:50,001 Creating /tmp/pip-build-env-yr13kawc/normal/bin 2023-03-05T22:03:50,003 changing mode of /tmp/pip-build-env-yr13kawc/normal/bin/wheel to 755 2023-03-05T22:03:50,016 Successfully installed wheel-0.38.4 2023-03-05T22:03:50,443 Installing backend dependencies: finished with status 'done' 2023-03-05T22:03:50,446 Created temporary directory: /tmp/pip-modern-metadata-uvfur_46 2023-03-05T22:03:50,449 Preparing metadata (pyproject.toml): started 2023-03-05T22:03:50,450 Running command Preparing metadata (pyproject.toml) 2023-03-05T22:03:51,005 /tmp/pip-build-env-yr13kawc/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'readme' defined outside of `pyproject.toml` would be ignored. 2023-03-05T22:03:51,005 !! 2023-03-05T22:03:51,006 ########################################################################## 2023-03-05T22:03:51,006 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-05T22:03:51,006 ########################################################################## 2023-03-05T22:03:51,007 The following seems to be defined outside of `pyproject.toml`: 2023-03-05T22:03:51,007 `readme = '# Duplicate Image Finder (difPy)\n\n[![PyPIv](https://img.shields.io/pypi/v/difPy)](https://pypi.org/project/difPy/)\n[![PyPI status](https://img.shields.io/pypi/status/difPy)](https://pypi.org/project/difPy/)\n[![Documentation Status](https://readthedocs.org/projects/difpy/badge/?version=latest)](https://difpy.readthedocs.io/en/latest/?badge=latest)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/difPy)](https://pypi.org/project/difPy/)\n[![Downloads](https://static.pepy.tech/badge/difpy)](https://pepy.tech/project/difpy)\n[![PyPI - License](https://img.shields.io/pypi/l/difPy)](https://github.com/elisemercury/Duplicate-Image-Finder/blob/main/LICENSE.txt)\n[](https://github.com/elisemercury/Duplicate-Image-Finder/)\n\n**Tired of going through all images in a folder and comparing them manually to check if they are duplicates?**\n\n:white_check_mark: The Duplicate Image Finder (difPy) Python package **automates** this task for you!\n\n```python\npip install difPy\n```\n> :point_right: :new: **[difPy v3.0](https://github.com/elisemercury/Duplicate-Image-Finder/releases/tag/v3.0.1)** has been released! Count on signifcant **performance increases**, **new features** and **bug fixes**. Check out the [release notes](https://github.com/elisemercury/Duplicate-Image-Finder/releases/) for a detailed listing. \n\n> :open_hands: Our motto? We :heart: Open Source! **Contributions and new ideas for difPy are always welcome** - check our [Contributor Guidelines](https://github.com/elisemercury/Duplicate-Image-Finder/wiki/Contributing-to-difPy) for more information.\n\nRead more on how the algorithm of difPy works in my Medium article [Finding Duplicate Images with Python](https://towardsdatascience.com/finding-duplicate-images-with-python-71c04ec8051).\n\nCheck out the [difPy package on PyPI.org](https://pypi.org/project/difPy/)\n\n-------\n\n## Description\nDifPy searches for images in **one or more different folders**, compares the images it found and checks whether these are duplicates. It then outputs the **image files classified as duplicates** as well as the **images having the lowest resolutions**, so you know which of the duplicate images are safe to be deleted. You can then either delete them manually, or let difPy delete them for you.\n\n\n \n
\n\nDifPy does not compare images based on their hashes. It compares them based on their tensors i. e. the image content - this allows difPy to **not only search for duplicate images, but also for similar images**.\n\n## Basic Usage\nUse the following function to make difPy search for duplicates within one specific folder and its subfolders:\n\n```python\nfrom difPy import dif\nsearch = dif("C:/Path/to/Folder/")\n``` \n:new: **[difPy v3.0](https://github.com/elisemercury/Duplicate-Image-Finder/releases/tag/v3.0.1)** now supports **multi-folder search**! To search for duplicates within mutliple folders and their subfolders:\n\n```python\nfrom difPy import dif\nsearch = dif(["C:/Path/to/Folder_A/", "C:/Path/to/Folder_B/", "C:/Path/to/Folder_C/", ... ])\n``` \nFolder paths must be specified as standalone Python strings, or within a Python list.\n\n:notebook: For a **detailed usage guide**, please view the official **[difPy Usage Documentation](https://difpy.readthedocs.io/)**.\n\n## Output\nDifPy returns various types of output that you may use depending on your use case: \n\nA **JSON formatted collection** of duplicates/similar images (i. e. **match groups**) that were found, where the keys are a **randomly generated unique id** for each image file:\n\n```python\nsearch.result\n\n> Output:\n{20220819171549 : {"location" : "C:/Path/to/Image/image1.jpg",\n "matches" : {30270813251529 : "location": "C:/Path/to/Image/matched_image1.jpg",\n "mse": 0.0},\n {72214282557852 : "location": "C:/Path/to/Image/matched_image2.jpg",\n "mse": 0.0},\n ... }\n ...\n}\n``` \n:new: **[difPy v3.0](https://github.com/elisemercury/Duplicate-Image-Finder/releases/tag/v3.0.1)** now outputs the **MSE** value for each matched image!\n\nA **list** of duplicates/similar images that have the **lowest quality** among match groups: \n\n```python\nsearch.lower_quality\n\n> Output:\n["C:/Path/to/Image/duplicate_image1.jpg", \n "C:/Path/to/Image/duplicate_image2.jpg", ...]\n``` \nA **JSON formatted collection** with statistics on the completed difPy process:\n\n```python\nsearch.stats\n\n> Output:\n{"directory" : ("C:/Path/to/Folder_A/", "C:/Path/to/Folder_B/", ... ),\n "duration" : {"start_date": "2023-02-15",\n "start_time" : "18:44:19",\n "end_date" : "2023-02-15",\n "end_time" : "18:44:38",\n "seconds_elapsed" : 18.6113},\n "fast_search": True,\n "recursive" : True,\n "match_mse" : 200,\n "files_searched" : 1032,\n "matches_found" : 852,\n "invalid_files": {"count": 4}}\n``` \n:new: **[difPy v3.0](https://github.com/elisemercury/Duplicate-Image-Finder/releases/tag/v3.0.1)** now outputs the count of **invalid files** in the target directory that could not be processed as images, as well as information on whether difPy\'s **Fast Search Algorithm (FSA)** was used.\n\n## Additional Parameters\nDifPy supports the following parameters:\n\n```python\ndif(*directory, fast_search=True, recursive=True, similarity=\'normal\', px_size=50, move_to=None, \n show_progress=True, show_output=False, delete=False, silent_del=False, logs=False)\n```\n:new: **[difPy v3.0](https://github.com/elisemercury/Duplicate-Image-Finder/releases/tag/v3.0.1)** now supports the use of its new **Fast Search Algorithm (FSA)**, capable of providing significant performance increases.\n\n:notebook: For a **detailed usage guide**, please view the official **[difPy Usage Documentation](https://difpy.readthedocs.io/)**.\n\n## CLI Usage\nYou can make use of difPy through a CLI interface by using the following commands:\n\n```python\npython dif.py -D "C:/Path/to/Folder/"\n\npython dif.py -D"C:/Path/to/Folder_A/" "C:/Path/to/Folder_B/" "C:/Path/to/Folder_C/"\n```\nIt supports the following arguments:\n\n```python\ndif.py [-h] -D DIRECTORY [-Z OUTPUT_DIRECTORY] [-f {True,False}]\n [-r {True,False}] [-s SIMILARITY] [-px PX_SIZE] \n [-p {True,False}] [-o {True,False}] [-mv MOVE_TO]\n [-d {True,False}] [-sd {True,False}] [-l {True,False}]\n```\n\n| | Parameter | | Parameter |\n| :---: | ------ | :---: | ------ | \n| `-D` | directory | `-px` | px_size | \n| `-Z` | output_directory | `-p` | show_progress |\n| `-f`| fast_search | `-o` | show_output |\n| `-r`| recursive | `-d` | delete |\n| `-s` | similarity | `-sd` | silent_del |\n\n\nWhen running from the CLI, the output of difPy is written to files and saved in the working directory by default. To change the default output directory, specify the `-Z / -output_directory` parameter. The "xxx" in the output filenames is a unique timestamp:\n\n```python\ndifPy_results_xxx.json\ndifPy_lower_quality_xxx.csv\ndifPy_stats_xxx.json\n```\n\n:notebook: For a **detailed usage guide**, please view the official **[difPy Usage Documentation](https://difpy.readthedocs.io/)**.\n\n## Related Projects\n\nThe below sections feature third-party work that has been **built with** or **inspired by** difPy. We would like to express a big thank you for any contributions made to difPy!\n\n-------\n\n### I. DifPy as Webapp\n\n[A Streamlit based Webapp to find duplicate images from single/multiple directories](https://github.com/prateekralhan/Streamlit-based-Duplicate-Images-Finder) by @prateekralhan - :dna: **built with difPy**\n\n\n \n
\n\n### II. photosdup - Mac Photos Tool to Find Duplicates\n\n[Tool to scan a Mac Photos library for duplicates, thumbnails etc.](https://github.com/peter-sk/photosdup) by @peter-sk - :sparkles: **inspired by difPy**\n\n-------\n\n\n:thought_balloon: Also want to be featured in the "Related Projects" section? Check our Contributor Guidelines to find out how!\n
\n\n-------\n\n\nWe :heart: Open Source\n
\n'` 2023-03-05T22:03:51,007 According to the spec (see the link below), however, setuptools CANNOT 2023-03-05T22:03:51,007 consider this value unless 'readme' is listed as `dynamic`. 2023-03-05T22:03:51,008 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-05T22:03:51,008 For the time being, `setuptools` will still consider the given value (as a 2023-03-05T22:03:51,008 **transitional** measure), but please note that future releases of setuptools will 2023-03-05T22:03:51,008 follow strictly the standard. 2023-03-05T22:03:51,009 To prevent this warning, you can list 'readme' under `dynamic` or alternatively 2023-03-05T22:03:51,009 remove the `[project]` table from your file and rely entirely on other means of 2023-03-05T22:03:51,009 configuration. 2023-03-05T22:03:51,009 !! 2023-03-05T22:03:51,009 warnings.warn(msg, _WouldIgnoreField) 2023-03-05T22:03:51,010 /tmp/pip-build-env-yr13kawc/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'license' defined outside of `pyproject.toml` would be ignored. 2023-03-05T22:03:51,010 !! 2023-03-05T22:03:51,010 ########################################################################## 2023-03-05T22:03:51,010 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-05T22:03:51,010 ########################################################################## 2023-03-05T22:03:51,010 The following seems to be defined outside of `pyproject.toml`: 2023-03-05T22:03:51,011 `license = 'MIT'` 2023-03-05T22:03:51,011 According to the spec (see the link below), however, setuptools CANNOT 2023-03-05T22:03:51,011 consider this value unless 'license' is listed as `dynamic`. 2023-03-05T22:03:51,011 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-05T22:03:51,012 For the time being, `setuptools` will still consider the given value (as a 2023-03-05T22:03:51,012 **transitional** measure), but please note that future releases of setuptools will 2023-03-05T22:03:51,012 follow strictly the standard. 2023-03-05T22:03:51,012 To prevent this warning, you can list 'license' under `dynamic` or alternatively 2023-03-05T22:03:51,012 remove the `[project]` table from your file and rely entirely on other means of 2023-03-05T22:03:51,012 configuration. 2023-03-05T22:03:51,013 !! 2023-03-05T22:03:51,013 warnings.warn(msg, _WouldIgnoreField) 2023-03-05T22:03:51,013 /tmp/pip-build-env-yr13kawc/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'keywords' defined outside of `pyproject.toml` would be ignored. 2023-03-05T22:03:51,013 !! 2023-03-05T22:03:51,014 ########################################################################## 2023-03-05T22:03:51,014 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-05T22:03:51,014 ########################################################################## 2023-03-05T22:03:51,014 The following seems to be defined outside of `pyproject.toml`: 2023-03-05T22:03:51,014 `keywords = ['duplicate', 'image', 'finder', 'similarity', 'pictures']` 2023-03-05T22:03:51,015 According to the spec (see the link below), however, setuptools CANNOT 2023-03-05T22:03:51,015 consider this value unless 'keywords' is listed as `dynamic`. 2023-03-05T22:03:51,015 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-05T22:03:51,015 For the time being, `setuptools` will still consider the given value (as a 2023-03-05T22:03:51,015 **transitional** measure), but please note that future releases of setuptools will 2023-03-05T22:03:51,016 follow strictly the standard. 2023-03-05T22:03:51,016 To prevent this warning, you can list 'keywords' under `dynamic` or alternatively 2023-03-05T22:03:51,016 remove the `[project]` table from your file and rely entirely on other means of 2023-03-05T22:03:51,016 configuration. 2023-03-05T22:03:51,016 !! 2023-03-05T22:03:51,017 warnings.warn(msg, _WouldIgnoreField) 2023-03-05T22:03:51,017 /tmp/pip-build-env-yr13kawc/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'classifiers' defined outside of `pyproject.toml` would be ignored. 2023-03-05T22:03:51,017 !! 2023-03-05T22:03:51,017 ########################################################################## 2023-03-05T22:03:51,017 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-05T22:03:51,018 ########################################################################## 2023-03-05T22:03:51,018 The following seems to be defined outside of `pyproject.toml`: 2023-03-05T22:03:51,018 `classifiers = ['Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', 'Topic :: Software Development :: Build Tools', 'License :: OSI Approved :: MIT License', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11']` 2023-03-05T22:03:51,018 According to the spec (see the link below), however, setuptools CANNOT 2023-03-05T22:03:51,018 consider this value unless 'classifiers' is listed as `dynamic`. 2023-03-05T22:03:51,019 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-05T22:03:51,019 For the time being, `setuptools` will still consider the given value (as a 2023-03-05T22:03:51,019 **transitional** measure), but please note that future releases of setuptools will 2023-03-05T22:03:51,019 follow strictly the standard. 2023-03-05T22:03:51,019 To prevent this warning, you can list 'classifiers' under `dynamic` or alternatively 2023-03-05T22:03:51,020 remove the `[project]` table from your file and rely entirely on other means of 2023-03-05T22:03:51,020 configuration. 2023-03-05T22:03:51,020 !! 2023-03-05T22:03:51,020 warnings.warn(msg, _WouldIgnoreField) 2023-03-05T22:03:51,020 /tmp/pip-build-env-yr13kawc/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'dependencies' defined outside of `pyproject.toml` would be ignored. 2023-03-05T22:03:51,021 !! 2023-03-05T22:03:51,021 ########################################################################## 2023-03-05T22:03:51,021 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-05T22:03:51,021 ########################################################################## 2023-03-05T22:03:51,021 The following seems to be defined outside of `pyproject.toml`: 2023-03-05T22:03:51,022 `dependencies = ['matplotlib', 'numpy', 'Pillow']` 2023-03-05T22:03:51,022 According to the spec (see the link below), however, setuptools CANNOT 2023-03-05T22:03:51,022 consider this value unless 'dependencies' is listed as `dynamic`. 2023-03-05T22:03:51,022 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-05T22:03:51,023 For the time being, `setuptools` will still consider the given value (as a 2023-03-05T22:03:51,023 **transitional** measure), but please note that future releases of setuptools will 2023-03-05T22:03:51,023 follow strictly the standard. 2023-03-05T22:03:51,023 To prevent this warning, you can list 'dependencies' under `dynamic` or alternatively 2023-03-05T22:03:51,023 remove the `[project]` table from your file and rely entirely on other means of 2023-03-05T22:03:51,023 configuration. 2023-03-05T22:03:51,024 !! 2023-03-05T22:03:51,024 warnings.warn(msg, _WouldIgnoreField) 2023-03-05T22:03:51,314 running dist_info 2023-03-05T22:03:51,322 creating /tmp/pip-modern-metadata-uvfur_46/difPy.egg-info 2023-03-05T22:03:51,329 writing /tmp/pip-modern-metadata-uvfur_46/difPy.egg-info/PKG-INFO 2023-03-05T22:03:51,333 writing dependency_links to /tmp/pip-modern-metadata-uvfur_46/difPy.egg-info/dependency_links.txt 2023-03-05T22:03:51,335 writing requirements to /tmp/pip-modern-metadata-uvfur_46/difPy.egg-info/requires.txt 2023-03-05T22:03:51,336 writing top-level names to /tmp/pip-modern-metadata-uvfur_46/difPy.egg-info/top_level.txt 2023-03-05T22:03:51,338 writing manifest file '/tmp/pip-modern-metadata-uvfur_46/difPy.egg-info/SOURCES.txt' 2023-03-05T22:03:51,361 reading manifest file '/tmp/pip-modern-metadata-uvfur_46/difPy.egg-info/SOURCES.txt' 2023-03-05T22:03:51,363 adding license file 'LICENSE.txt' 2023-03-05T22:03:51,365 writing manifest file '/tmp/pip-modern-metadata-uvfur_46/difPy.egg-info/SOURCES.txt' 2023-03-05T22:03:51,366 creating '/tmp/pip-modern-metadata-uvfur_46/difPy-3.0.7.dist-info' 2023-03-05T22:03:51,510 Preparing metadata (pyproject.toml): finished with status 'done' 2023-03-05T22:03:51,518 Source in /tmp/pip-wheel-bb_6i_ni/difpy_c9cea0da854f456dac5282c5b4a88153 has version 3.0.7, which satisfies requirement difpy==3.0.7 from https://files.pythonhosted.org/packages/42/36/71556c11e00faca94ed76e557d28793251ac5687d8c67424bf7aad17aff2/difPy-3.0.7.tar.gz 2023-03-05T22:03:51,519 Removed difpy==3.0.7 from https://files.pythonhosted.org/packages/42/36/71556c11e00faca94ed76e557d28793251ac5687d8c67424bf7aad17aff2/difPy-3.0.7.tar.gz from build tracker '/tmp/pip-build-tracker-eumlygby' 2023-03-05T22:03:51,524 Created temporary directory: /tmp/pip-unpack-yefpk5ca 2023-03-05T22:03:51,524 Building wheels for collected packages: difpy 2023-03-05T22:03:51,529 Created temporary directory: /tmp/pip-wheel-3pn6tuz2 2023-03-05T22:03:51,530 Destination directory: /tmp/pip-wheel-3pn6tuz2 2023-03-05T22:03:51,532 Building wheel for difpy (pyproject.toml): started 2023-03-05T22:03:51,533 Running command Building wheel for difpy (pyproject.toml) 2023-03-05T22:03:52,090 /tmp/pip-build-env-yr13kawc/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'readme' defined outside of `pyproject.toml` would be ignored. 2023-03-05T22:03:52,091 !! 2023-03-05T22:03:52,091 ########################################################################## 2023-03-05T22:03:52,091 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-05T22:03:52,092 ########################################################################## 2023-03-05T22:03:52,092 The following seems to be defined outside of `pyproject.toml`: 2023-03-05T22:03:52,092 `readme = '# Duplicate Image Finder (difPy)\n\n[![PyPIv](https://img.shields.io/pypi/v/difPy)](https://pypi.org/project/difPy/)\n[![PyPI status](https://img.shields.io/pypi/status/difPy)](https://pypi.org/project/difPy/)\n[![Documentation Status](https://readthedocs.org/projects/difpy/badge/?version=latest)](https://difpy.readthedocs.io/en/latest/?badge=latest)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/difPy)](https://pypi.org/project/difPy/)\n[![Downloads](https://static.pepy.tech/badge/difpy)](https://pepy.tech/project/difpy)\n[![PyPI - License](https://img.shields.io/pypi/l/difPy)](https://github.com/elisemercury/Duplicate-Image-Finder/blob/main/LICENSE.txt)\n[](https://github.com/elisemercury/Duplicate-Image-Finder/)\n\n**Tired of going through all images in a folder and comparing them manually to check if they are duplicates?**\n\n:white_check_mark: The Duplicate Image Finder (difPy) Python package **automates** this task for you!\n\n```python\npip install difPy\n```\n> :point_right: :new: **[difPy v3.0](https://github.com/elisemercury/Duplicate-Image-Finder/releases/tag/v3.0.1)** has been released! Count on signifcant **performance increases**, **new features** and **bug fixes**. Check out the [release notes](https://github.com/elisemercury/Duplicate-Image-Finder/releases/) for a detailed listing. \n\n> :open_hands: Our motto? We :heart: Open Source! **Contributions and new ideas for difPy are always welcome** - check our [Contributor Guidelines](https://github.com/elisemercury/Duplicate-Image-Finder/wiki/Contributing-to-difPy) for more information.\n\nRead more on how the algorithm of difPy works in my Medium article [Finding Duplicate Images with Python](https://towardsdatascience.com/finding-duplicate-images-with-python-71c04ec8051).\n\nCheck out the [difPy package on PyPI.org](https://pypi.org/project/difPy/)\n\n-------\n\n## Description\nDifPy searches for images in **one or more different folders**, compares the images it found and checks whether these are duplicates. It then outputs the **image files classified as duplicates** as well as the **images having the lowest resolutions**, so you know which of the duplicate images are safe to be deleted. You can then either delete them manually, or let difPy delete them for you.\n\n\n \n
\n\nDifPy does not compare images based on their hashes. It compares them based on their tensors i. e. the image content - this allows difPy to **not only search for duplicate images, but also for similar images**.\n\n## Basic Usage\nUse the following function to make difPy search for duplicates within one specific folder and its subfolders:\n\n```python\nfrom difPy import dif\nsearch = dif("C:/Path/to/Folder/")\n``` \n:new: **[difPy v3.0](https://github.com/elisemercury/Duplicate-Image-Finder/releases/tag/v3.0.1)** now supports **multi-folder search**! To search for duplicates within mutliple folders and their subfolders:\n\n```python\nfrom difPy import dif\nsearch = dif(["C:/Path/to/Folder_A/", "C:/Path/to/Folder_B/", "C:/Path/to/Folder_C/", ... ])\n``` \nFolder paths must be specified as standalone Python strings, or within a Python list.\n\n:notebook: For a **detailed usage guide**, please view the official **[difPy Usage Documentation](https://difpy.readthedocs.io/)**.\n\n## Output\nDifPy returns various types of output that you may use depending on your use case: \n\nA **JSON formatted collection** of duplicates/similar images (i. e. **match groups**) that were found, where the keys are a **randomly generated unique id** for each image file:\n\n```python\nsearch.result\n\n> Output:\n{20220819171549 : {"location" : "C:/Path/to/Image/image1.jpg",\n "matches" : {30270813251529 : "location": "C:/Path/to/Image/matched_image1.jpg",\n "mse": 0.0},\n {72214282557852 : "location": "C:/Path/to/Image/matched_image2.jpg",\n "mse": 0.0},\n ... }\n ...\n}\n``` \n:new: **[difPy v3.0](https://github.com/elisemercury/Duplicate-Image-Finder/releases/tag/v3.0.1)** now outputs the **MSE** value for each matched image!\n\nA **list** of duplicates/similar images that have the **lowest quality** among match groups: \n\n```python\nsearch.lower_quality\n\n> Output:\n["C:/Path/to/Image/duplicate_image1.jpg", \n "C:/Path/to/Image/duplicate_image2.jpg", ...]\n``` \nA **JSON formatted collection** with statistics on the completed difPy process:\n\n```python\nsearch.stats\n\n> Output:\n{"directory" : ("C:/Path/to/Folder_A/", "C:/Path/to/Folder_B/", ... ),\n "duration" : {"start_date": "2023-02-15",\n "start_time" : "18:44:19",\n "end_date" : "2023-02-15",\n "end_time" : "18:44:38",\n "seconds_elapsed" : 18.6113},\n "fast_search": True,\n "recursive" : True,\n "match_mse" : 200,\n "files_searched" : 1032,\n "matches_found" : 852,\n "invalid_files": {"count": 4}}\n``` \n:new: **[difPy v3.0](https://github.com/elisemercury/Duplicate-Image-Finder/releases/tag/v3.0.1)** now outputs the count of **invalid files** in the target directory that could not be processed as images, as well as information on whether difPy\'s **Fast Search Algorithm (FSA)** was used.\n\n## Additional Parameters\nDifPy supports the following parameters:\n\n```python\ndif(*directory, fast_search=True, recursive=True, similarity=\'normal\', px_size=50, move_to=None, \n show_progress=True, show_output=False, delete=False, silent_del=False, logs=False)\n```\n:new: **[difPy v3.0](https://github.com/elisemercury/Duplicate-Image-Finder/releases/tag/v3.0.1)** now supports the use of its new **Fast Search Algorithm (FSA)**, capable of providing significant performance increases.\n\n:notebook: For a **detailed usage guide**, please view the official **[difPy Usage Documentation](https://difpy.readthedocs.io/)**.\n\n## CLI Usage\nYou can make use of difPy through a CLI interface by using the following commands:\n\n```python\npython dif.py -D "C:/Path/to/Folder/"\n\npython dif.py -D"C:/Path/to/Folder_A/" "C:/Path/to/Folder_B/" "C:/Path/to/Folder_C/"\n```\nIt supports the following arguments:\n\n```python\ndif.py [-h] -D DIRECTORY [-Z OUTPUT_DIRECTORY] [-f {True,False}]\n [-r {True,False}] [-s SIMILARITY] [-px PX_SIZE] \n [-p {True,False}] [-o {True,False}] [-mv MOVE_TO]\n [-d {True,False}] [-sd {True,False}] [-l {True,False}]\n```\n\n| | Parameter | | Parameter |\n| :---: | ------ | :---: | ------ | \n| `-D` | directory | `-px` | px_size | \n| `-Z` | output_directory | `-p` | show_progress |\n| `-f`| fast_search | `-o` | show_output |\n| `-r`| recursive | `-d` | delete |\n| `-s` | similarity | `-sd` | silent_del |\n\n\nWhen running from the CLI, the output of difPy is written to files and saved in the working directory by default. To change the default output directory, specify the `-Z / -output_directory` parameter. The "xxx" in the output filenames is a unique timestamp:\n\n```python\ndifPy_results_xxx.json\ndifPy_lower_quality_xxx.csv\ndifPy_stats_xxx.json\n```\n\n:notebook: For a **detailed usage guide**, please view the official **[difPy Usage Documentation](https://difpy.readthedocs.io/)**.\n\n## Related Projects\n\nThe below sections feature third-party work that has been **built with** or **inspired by** difPy. We would like to express a big thank you for any contributions made to difPy!\n\n-------\n\n### I. DifPy as Webapp\n\n[A Streamlit based Webapp to find duplicate images from single/multiple directories](https://github.com/prateekralhan/Streamlit-based-Duplicate-Images-Finder) by @prateekralhan - :dna: **built with difPy**\n\n\n \n
\n\n### II. photosdup - Mac Photos Tool to Find Duplicates\n\n[Tool to scan a Mac Photos library for duplicates, thumbnails etc.](https://github.com/peter-sk/photosdup) by @peter-sk - :sparkles: **inspired by difPy**\n\n-------\n\n\n:thought_balloon: Also want to be featured in the "Related Projects" section? Check our Contributor Guidelines to find out how!\n
\n\n-------\n\n\nWe :heart: Open Source\n
\n'` 2023-03-05T22:03:52,093 According to the spec (see the link below), however, setuptools CANNOT 2023-03-05T22:03:52,093 consider this value unless 'readme' is listed as `dynamic`. 2023-03-05T22:03:52,093 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-05T22:03:52,093 For the time being, `setuptools` will still consider the given value (as a 2023-03-05T22:03:52,094 **transitional** measure), but please note that future releases of setuptools will 2023-03-05T22:03:52,094 follow strictly the standard. 2023-03-05T22:03:52,094 To prevent this warning, you can list 'readme' under `dynamic` or alternatively 2023-03-05T22:03:52,094 remove the `[project]` table from your file and rely entirely on other means of 2023-03-05T22:03:52,094 configuration. 2023-03-05T22:03:52,095 !! 2023-03-05T22:03:52,095 warnings.warn(msg, _WouldIgnoreField) 2023-03-05T22:03:52,095 /tmp/pip-build-env-yr13kawc/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'license' defined outside of `pyproject.toml` would be ignored. 2023-03-05T22:03:52,095 !! 2023-03-05T22:03:52,095 ########################################################################## 2023-03-05T22:03:52,096 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-05T22:03:52,096 ########################################################################## 2023-03-05T22:03:52,096 The following seems to be defined outside of `pyproject.toml`: 2023-03-05T22:03:52,096 `license = 'MIT'` 2023-03-05T22:03:52,096 According to the spec (see the link below), however, setuptools CANNOT 2023-03-05T22:03:52,097 consider this value unless 'license' is listed as `dynamic`. 2023-03-05T22:03:52,097 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-05T22:03:52,097 For the time being, `setuptools` will still consider the given value (as a 2023-03-05T22:03:52,097 **transitional** measure), but please note that future releases of setuptools will 2023-03-05T22:03:52,097 follow strictly the standard. 2023-03-05T22:03:52,098 To prevent this warning, you can list 'license' under `dynamic` or alternatively 2023-03-05T22:03:52,098 remove the `[project]` table from your file and rely entirely on other means of 2023-03-05T22:03:52,098 configuration. 2023-03-05T22:03:52,098 !! 2023-03-05T22:03:52,098 warnings.warn(msg, _WouldIgnoreField) 2023-03-05T22:03:52,099 /tmp/pip-build-env-yr13kawc/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'keywords' defined outside of `pyproject.toml` would be ignored. 2023-03-05T22:03:52,099 !! 2023-03-05T22:03:52,099 ########################################################################## 2023-03-05T22:03:52,099 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-05T22:03:52,099 ########################################################################## 2023-03-05T22:03:52,100 The following seems to be defined outside of `pyproject.toml`: 2023-03-05T22:03:52,100 `keywords = ['duplicate', 'image', 'finder', 'similarity', 'pictures']` 2023-03-05T22:03:52,100 According to the spec (see the link below), however, setuptools CANNOT 2023-03-05T22:03:52,100 consider this value unless 'keywords' is listed as `dynamic`. 2023-03-05T22:03:52,100 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-05T22:03:52,101 For the time being, `setuptools` will still consider the given value (as a 2023-03-05T22:03:52,101 **transitional** measure), but please note that future releases of setuptools will 2023-03-05T22:03:52,101 follow strictly the standard. 2023-03-05T22:03:52,101 To prevent this warning, you can list 'keywords' under `dynamic` or alternatively 2023-03-05T22:03:52,101 remove the `[project]` table from your file and rely entirely on other means of 2023-03-05T22:03:52,101 configuration. 2023-03-05T22:03:52,102 !! 2023-03-05T22:03:52,102 warnings.warn(msg, _WouldIgnoreField) 2023-03-05T22:03:52,102 /tmp/pip-build-env-yr13kawc/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'classifiers' defined outside of `pyproject.toml` would be ignored. 2023-03-05T22:03:52,102 !! 2023-03-05T22:03:52,103 ########################################################################## 2023-03-05T22:03:52,103 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-05T22:03:52,103 ########################################################################## 2023-03-05T22:03:52,103 The following seems to be defined outside of `pyproject.toml`: 2023-03-05T22:03:52,104 `classifiers = ['Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', 'Topic :: Software Development :: Build Tools', 'License :: OSI Approved :: MIT License', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11']` 2023-03-05T22:03:52,104 According to the spec (see the link below), however, setuptools CANNOT 2023-03-05T22:03:52,104 consider this value unless 'classifiers' is listed as `dynamic`. 2023-03-05T22:03:52,104 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-05T22:03:52,105 For the time being, `setuptools` will still consider the given value (as a 2023-03-05T22:03:52,105 **transitional** measure), but please note that future releases of setuptools will 2023-03-05T22:03:52,105 follow strictly the standard. 2023-03-05T22:03:52,105 To prevent this warning, you can list 'classifiers' under `dynamic` or alternatively 2023-03-05T22:03:52,105 remove the `[project]` table from your file and rely entirely on other means of 2023-03-05T22:03:52,105 configuration. 2023-03-05T22:03:52,106 !! 2023-03-05T22:03:52,106 warnings.warn(msg, _WouldIgnoreField) 2023-03-05T22:03:52,106 /tmp/pip-build-env-yr13kawc/overlay/lib/python3.9/site-packages/setuptools/config/_apply_pyprojecttoml.py:103: _WouldIgnoreField: 'dependencies' defined outside of `pyproject.toml` would be ignored. 2023-03-05T22:03:52,106 !! 2023-03-05T22:03:52,107 ########################################################################## 2023-03-05T22:03:52,107 # configuration would be ignored/result in error due to `pyproject.toml` # 2023-03-05T22:03:52,107 ########################################################################## 2023-03-05T22:03:52,107 The following seems to be defined outside of `pyproject.toml`: 2023-03-05T22:03:52,107 `dependencies = ['matplotlib', 'numpy', 'Pillow']` 2023-03-05T22:03:52,107 According to the spec (see the link below), however, setuptools CANNOT 2023-03-05T22:03:52,108 consider this value unless 'dependencies' is listed as `dynamic`. 2023-03-05T22:03:52,108 https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ 2023-03-05T22:03:52,108 For the time being, `setuptools` will still consider the given value (as a 2023-03-05T22:03:52,108 **transitional** measure), but please note that future releases of setuptools will 2023-03-05T22:03:52,108 follow strictly the standard. 2023-03-05T22:03:52,109 To prevent this warning, you can list 'dependencies' under `dynamic` or alternatively 2023-03-05T22:03:52,109 remove the `[project]` table from your file and rely entirely on other means of 2023-03-05T22:03:52,109 configuration. 2023-03-05T22:03:52,109 !! 2023-03-05T22:03:52,109 warnings.warn(msg, _WouldIgnoreField) 2023-03-05T22:03:52,423 running bdist_wheel 2023-03-05T22:03:52,450 running build 2023-03-05T22:03:52,450 running build_py 2023-03-05T22:03:52,458 creating build 2023-03-05T22:03:52,459 creating build/lib 2023-03-05T22:03:52,459 creating build/lib/difPy 2023-03-05T22:03:52,461 copying difPy/version.py -> build/lib/difPy 2023-03-05T22:03:52,462 copying difPy/__init__.py -> build/lib/difPy 2023-03-05T22:03:52,464 copying difPy/dif.py -> build/lib/difPy 2023-03-05T22:03:52,467 running egg_info 2023-03-05T22:03:52,482 writing difPy.egg-info/PKG-INFO 2023-03-05T22:03:52,485 writing dependency_links to difPy.egg-info/dependency_links.txt 2023-03-05T22:03:52,486 writing requirements to difPy.egg-info/requires.txt 2023-03-05T22:03:52,487 writing top-level names to difPy.egg-info/top_level.txt 2023-03-05T22:03:52,497 reading manifest file 'difPy.egg-info/SOURCES.txt' 2023-03-05T22:03:52,499 adding license file 'LICENSE.txt' 2023-03-05T22:03:52,501 writing manifest file 'difPy.egg-info/SOURCES.txt' 2023-03-05T22:03:52,517 installing to build/bdist.linux-armv7l/wheel 2023-03-05T22:03:52,517 running install 2023-03-05T22:03:52,542 running install_lib 2023-03-05T22:03:52,550 creating build/bdist.linux-armv7l 2023-03-05T22:03:52,551 creating build/bdist.linux-armv7l/wheel 2023-03-05T22:03:52,552 creating build/bdist.linux-armv7l/wheel/difPy 2023-03-05T22:03:52,553 copying build/lib/difPy/version.py -> build/bdist.linux-armv7l/wheel/difPy 2023-03-05T22:03:52,555 copying build/lib/difPy/__init__.py -> build/bdist.linux-armv7l/wheel/difPy 2023-03-05T22:03:52,557 copying build/lib/difPy/dif.py -> build/bdist.linux-armv7l/wheel/difPy 2023-03-05T22:03:52,560 running install_egg_info 2023-03-05T22:03:52,567 Copying difPy.egg-info to build/bdist.linux-armv7l/wheel/difPy-3.0.7-py3.9.egg-info 2023-03-05T22:03:52,578 running install_scripts 2023-03-05T22:03:52,594 creating build/bdist.linux-armv7l/wheel/difPy-3.0.7.dist-info/WHEEL 2023-03-05T22:03:52,597 creating '/tmp/pip-wheel-3pn6tuz2/.tmp-d4du906k/difPy-3.0.7-py3-none-any.whl' and adding 'build/bdist.linux-armv7l/wheel' to it 2023-03-05T22:03:52,599 adding 'difPy/__init__.py' 2023-03-05T22:03:52,603 adding 'difPy/dif.py' 2023-03-05T22:03:52,604 adding 'difPy/version.py' 2023-03-05T22:03:52,607 adding 'difPy-3.0.7.dist-info/LICENSE.txt' 2023-03-05T22:03:52,608 adding 'difPy-3.0.7.dist-info/METADATA' 2023-03-05T22:03:52,610 adding 'difPy-3.0.7.dist-info/WHEEL' 2023-03-05T22:03:52,611 adding 'difPy-3.0.7.dist-info/top_level.txt' 2023-03-05T22:03:52,611 adding 'difPy-3.0.7.dist-info/RECORD' 2023-03-05T22:03:52,613 removing build/bdist.linux-armv7l/wheel 2023-03-05T22:03:52,718 Building wheel for difpy (pyproject.toml): finished with status 'done' 2023-03-05T22:03:52,725 Created wheel for difpy: filename=difPy-3.0.7-py3-none-any.whl size=11447 sha256=be8b2a5560264a34083b9b8d67fc2f14719d7cd58f1ee48f882ebf140675f3f3 2023-03-05T22:03:52,726 Stored in directory: /tmp/pip-ephem-wheel-cache-r6z374vu/wheels/d0/b3/62/b974d0523bb36d791b7a4ef54a4a96064fc38459cd33f6df57 2023-03-05T22:03:52,738 Successfully built difpy 2023-03-05T22:03:52,742 Removed build tracker: '/tmp/pip-build-tracker-eumlygby'