Skip to content

Conversation

@dsoprea
Copy link

@dsoprea dsoprea commented Oct 31, 2023

I collaborated with the project back in 2020 to implement the block phash for Go (https://github.com/dsoprea/go-perceptualhash). It looks like there were a bunch of lingering fix-it commits to the Python implementation (made in order to have parity while testing/validating the Go version) that never got pushed to upstream.

These updates have already been used for the PyPI package for years:
https://pypi.org/project/phash-blockhashio

dsoprea added 12 commits August 3, 2020 00:34
Now "phash-blockhashio" instead of "blockhash", which is already taken.

- Packageified project
  - So it can both be imported from other projects.
  - So it can be packaged.
  - So it can be pushed to PyPI.

- Split library functionality from script functionality.
- Moved version to package-level variable.

- Migrated from distutils to setuptools.
  - Moved requirements to file. Renamed to install_requires. It was
    "requires" and it looks like distutils used "requires", but issue commonsmachinery#6
    stated that there might have been an issue with this.

  - Fixed-up required fields.

- Added minimal tests so that we can establish a verification build.

- Refactored --quick command-line option to be a store_true parameter
  rather than an argument-based parameter. It was confusing.
- The new tests also hit the script, as well as provide a simple,
  baseline test for basic functionality (the preexisting tests are more
  parametric in nature).
- Blockhash now uses default number of bits.
- Renamed core module in order to avoid import collisions.
  - Importing "blockhash" while already in a module in that package will
    attempt to import the module rather than the package.

- script
  - Now use `Image.open()` as context manager.
  - Renamed `hash` to `hash_` to avoid masking builtin.
  - Moved image palette normalization to utility function that can be
    imported from external.
@dsoprea
Copy link
Author

dsoprea commented Oct 31, 2023

The README of the mentions being a fork. If you want to move forward with merging this, I can remove that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant