Skip to main content

Finds close numerical matches across two arrays.

Project description

Close Numerical Matches

PyPI - Downloads PyPI - Version GitHub Workflow Status (branch) CodeFactor Grade GitHub issues GitHub license PyPI - Python Version PRs welcome

This package finds close numerical matches fast across two 2D arrays of shape (n, d) and (m, d) (if it can be assumed there will be relatively few matches and d is relatively low). Returns the indices of the matches.

Installation

You can install close-numerical-matches from PyPI:

$ pip install close-numerical-matches

The package is supported on Python 3.8 and above and requires Numpy.

How to use

Import find_matches from close_numerical_matches and supply two arrays of shape (n, d) and (m, d) and a given tolerance level. Optionally provide your desired distance metric and a bucket tolerance multiplier. The arguments in more detail:

  • arr0 : np.ndarray First array to find matches against. Should be of size (n, d).
  • arr1 : np.ndarray Second array to find matches against. Should be of size (m, d).
  • dist : {'norm', 'max', 'cos'} or Callable[[np.ndarray, np.ndarray], np.ndarray], default='norm' Distance metric to calculate distance. 'norm', 'max' and 'cos' are currently supported. If you want some other distance function, you can supply your own function. It should take two arrays: One array of size (n, d) of entries and another array of size (d,) of a particular entry. Should return an (n,) array of distances.
  • tol : float, default=0.1 The tolerance where values are considered the similar enough to count as a match. Should be > 0.
  • bucket_tol_mult : int, default=2 The tolerance multiplier to use for assigning buckets. By setting this lower, there are fewer potential close points that need to be checked (faster runtime), but you risk missing some match pairs. By setting it higher, you need to compare more potential matches, but the risk of missing any close pair is lower. For cosine distance, you might need to set this high. If you supply your own distance function, do take this parameter into consideration. Should never be less than 1.

Example

>>> import numpy as np
>>> from close_numerical_matches import find_matches
>>> arr0 = np.array([[25, 24], [50, 50], [25, 26]])
>>> arr1 = np.array([[25, 23], [25, 25], [50.6, 50.6], [60, 60]])
>>> find_matches(arr0, arr1, tol=1.0001)
array([[0, 0], [0, 1], [1, 2], [2, 1]])
>>> find_matches(arr0, arr1, tol=0.9999)
array([[1, 2]])
>>> find_matches(arr0, arr1, tol=0.60001)
array([], dtype=int64)
>>> find_matches(arr0, arr1, tol=0.60001, dist='max')
array([[1, 2]])
>>> find_matches([[0, 0.05]], [[0, 5], [0, -0.01]], tol=0.1, dist='cos')
array([[0, 0]])
>>> manhatten_dist = lambda arr, row: np.sum(np.abs(arr - row), axis=1)
>>> matches = find_matches(arr0, arr1, tol=1.0001, dist=manhatten_dist)
>>> matches
array([[0, 0], [0, 1], [2, 1]])
>>> indices0, indices1 = matches.T
>>> arr0[indices0]
array([[25, 24], [25, 24], [25, 26]])

More examples can be found in the test cases.

How fast is it?

Here is an unscientific example:

from timeit import default_timer as timer
import numpy as np
from close_numerical_matches import naive_find_matches, find_matches

arr0 = np.random.rand(320_000, 2)
arr1 = np.random.rand(44_000, 2)

start = timer()
naive_find_matches(arr0, arr1, tol=0.001)
end = timer()
print(end - start)  # 255.335 s

start = timer()
find_matches(arr0, arr1, tol=0.001)
end = timer()
print(end - start)  # 5.821 s

How it works

Instead of comparing every element in the first array against every element in the second array, resulting in an O(nmd) runtime, all elements are at first assigned to buckets so only elements that are relatively close are compared. In the case of relatively few matches and a low dimensionality d, this cuts the runtime down to almost linear O((n + m)d).

In general, the algorithm runtime of the bucket approach is O((n + m)d + Bd³ + ∑_{b ∈ B} n_b m_b) where B is the number of buckets and n_b and m_b are the number of items assigned to bucket b. As can be seen, it scales bad with dimensionality and also does not improve from the naive approach if all elements are assigned to the same bucket. In case the bucket approach is likely to be slower than the naive approach, this library will fall back to the naive approach.

When NOT to use this library

  • If you are working with arrays with very high dimensionalities, the algorithm employed here does not scale well. As mentioned above, the naive algorithm will be used in such cases. See if another library exists for your particular problem.
  • If you are expecting that a lot of pairs will match, this is not suitable. This algorithm is targeted for the case where there are extremely many data points and only a fraction of those are expected to match.
  • If you need to use a distance function that does not map well to being assigned to buckets.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

close_numerical_matches-0.2.2-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

close_numerical_matches-0.2.2-cp312-cp312-win_arm64.whl (45.6 kB view details)

Uploaded CPython 3.12 Windows ARM64

close_numerical_matches-0.2.2-cp312-cp312-win_amd64.whl (53.2 kB view details)

Uploaded CPython 3.12 Windows x86-64

close_numerical_matches-0.2.2-cp312-cp312-win32.whl (47.8 kB view details)

Uploaded CPython 3.12 Windows x86

close_numerical_matches-0.2.2-cp312-cp312-macosx_11_0_arm64.whl (76.3 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

close_numerical_matches-0.2.2-cp312-cp312-macosx_10_9_x86_64.whl (79.5 kB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

close_numerical_matches-0.2.2-cp312-cp312-macosx_10_9_universal2.whl (146.2 kB view details)

Uploaded CPython 3.12 macOS 10.9+ universal2 (ARM64, x86-64)

close_numerical_matches-0.2.2-cp311-cp311-win_arm64.whl (45.4 kB view details)

Uploaded CPython 3.11 Windows ARM64

close_numerical_matches-0.2.2-cp311-cp311-win_amd64.whl (52.6 kB view details)

Uploaded CPython 3.11 Windows x86-64

close_numerical_matches-0.2.2-cp311-cp311-win32.whl (47.0 kB view details)

Uploaded CPython 3.11 Windows x86

close_numerical_matches-0.2.2-cp311-cp311-macosx_11_0_arm64.whl (76.3 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

close_numerical_matches-0.2.2-cp311-cp311-macosx_10_9_x86_64.whl (78.7 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

close_numerical_matches-0.2.2-cp311-cp311-macosx_10_9_universal2.whl (145.3 kB view details)

Uploaded CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

close_numerical_matches-0.2.2-cp310-cp310-win_arm64.whl (45.7 kB view details)

Uploaded CPython 3.10 Windows ARM64

close_numerical_matches-0.2.2-cp310-cp310-win_amd64.whl (53.1 kB view details)

Uploaded CPython 3.10 Windows x86-64

close_numerical_matches-0.2.2-cp310-cp310-win32.whl (47.3 kB view details)

Uploaded CPython 3.10 Windows x86

close_numerical_matches-0.2.2-cp310-cp310-macosx_11_0_arm64.whl (77.7 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

close_numerical_matches-0.2.2-cp310-cp310-macosx_10_9_x86_64.whl (80.2 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

close_numerical_matches-0.2.2-cp310-cp310-macosx_10_9_universal2.whl (148.2 kB view details)

Uploaded CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

close_numerical_matches-0.2.2-cp39-cp39-win_arm64.whl (45.7 kB view details)

Uploaded CPython 3.9 Windows ARM64

close_numerical_matches-0.2.2-cp39-cp39-win_amd64.whl (53.0 kB view details)

Uploaded CPython 3.9 Windows x86-64

close_numerical_matches-0.2.2-cp39-cp39-win32.whl (47.2 kB view details)

Uploaded CPython 3.9 Windows x86

close_numerical_matches-0.2.2-cp39-cp39-macosx_11_0_arm64.whl (77.7 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

close_numerical_matches-0.2.2-cp39-cp39-macosx_10_9_x86_64.whl (80.1 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

close_numerical_matches-0.2.2-cp39-cp39-macosx_10_9_universal2.whl (148.1 kB view details)

Uploaded CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

close_numerical_matches-0.2.2-cp38-cp38-win_amd64.whl (52.8 kB view details)

Uploaded CPython 3.8 Windows x86-64

close_numerical_matches-0.2.2-cp38-cp38-win32.whl (47.1 kB view details)

Uploaded CPython 3.8 Windows x86

close_numerical_matches-0.2.2-cp38-cp38-macosx_11_0_arm64.whl (76.8 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

close_numerical_matches-0.2.2-cp38-cp38-macosx_10_9_x86_64.whl (79.3 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

close_numerical_matches-0.2.2-cp38-cp38-macosx_10_9_universal2.whl (146.4 kB view details)

Uploaded CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file close_numerical_matches-0.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 03435268a0b598305de806bca65b5ee8a676a74c245dea6dc8152b4a6d91f962
MD5 9e1d963b858d14b8dc2aa29ac7d74451
BLAKE2b-256 8dd8baa08de795e9c4895f78e59ec471c6bde9ff83488c4e079fdb145798c012

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp312-cp312-win_arm64.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 afe47f4bd085acf7ac2794df6e77abf92d378a23dd478bd930c6b1ea5d2e8d4e
MD5 a0ea8a3b36a32b9fa7dec86168b6c608
BLAKE2b-256 738262ef09e521445726a5ce89e1340f4da05704be80a51fa8d5e8df99e9c87d

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c43b3377ad88f0a5c1ba024148282258b789db9acf28dd0b3187d31459db0bdb
MD5 e16e15e30a21f5e2e0fff91c93349935
BLAKE2b-256 6773b1dc87b52abe13b85d48e99bcae74323c4844a852887115b783d40863045

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp312-cp312-win32.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 79b2501337c17b1dc5c89bbc9a664f13b146606d90932ca6826d4789aee9d248
MD5 04a74ff7d59299bfd712acfbdcfe3257
BLAKE2b-256 f244caecc7a26ab84b3017f8397affcba28ec434cdcc035f72b6cd592299bd27

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a33bf0a42bbb1f320ac9298bbdafb52d24c6700d8975a586bdb49a470385094a
MD5 f372d92841c8a2202beabd277cbff525
BLAKE2b-256 0374ce8f2d775fd7572201b87e6e404186ef7ba6ccd52c64bc73ce908ed21a01

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e580a87fc5fea39ce268c674b5e99a6fea75fb669e933cb2dcdd1bbd02b76b65
MD5 c790ae6a2070c385c82ac93b2b86778e
BLAKE2b-256 a74f74143993d41643cfb09e5655a7dfe80aeb45c72940d49ffbaaf42cf80d47

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp312-cp312-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 f07f1f588e3f6e9f9b36f84f86f1baf452f3a6425ea21cd050c026acbbbb85f9
MD5 dc43d27771c8407dbce8ffbb3b17b9a7
BLAKE2b-256 9db9d2cbf47a1605b73758f3a2ed6963797e1c0d4c77a1e8d5b213f79d2f2c9b

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp311-cp311-win_arm64.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 50b5dc9ea39f7b6b7c36c3a897c04f7ea21262f47c772246335942314c0e5c40
MD5 32b91f518d7103de55f11d2a4fa435d4
BLAKE2b-256 cf7c72db76fc5b3355d18e5e1541d914619a8959e2622afe5eef1d60daa7f318

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a11d6924c34d0614059e2c0e54f6d9ea6aa13365f8fa56112b54cd1377695904
MD5 f500076f3c636467b6c7ceccfd932bf0
BLAKE2b-256 1d499a278b8e702fc56f29514de3439ba5f2a92055d9251235cc3729633c456a

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp311-cp311-win32.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 25844b4fb4c256b6f98db4f07beed6b3eed8e870092d37646ddd76262007a244
MD5 bbaf0d47576beee6ce7026cdc2bd5352
BLAKE2b-256 88fe83464d216cfecab7d3be72db188c9491ad5823304fb23cc8a26425740685

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8a1aee3167b00e838cf7b2b26756b497f9727aac46ed8c3e9564ef5dd97985e8
MD5 c88e728d462de1c015e001aa88567470
BLAKE2b-256 39658b4dc5e305d16443f08382ffa85b1b1f461da5c3779309f97953bccf78fd

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7991b93fc592e9002bcb6d71243fbe23151dba8ffb3d740d01b1aa172abffcf1
MD5 7551c22dc33eed93a172b72bbdca6710
BLAKE2b-256 fd0270fbcce88e1273c76c63bf0d8ddbfb451289f6e8033c39434dc2c818844f

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 82264da502b51d96f57dd276ef13222fbd4404165f95ab9b02a4a781832ed6a6
MD5 16dbcd27636254e8047137527014bb02
BLAKE2b-256 c0cbd7f7c765519bdf4e1c304bb3b3715183905c87e64f39ae9722c89c36ca11

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp310-cp310-win_arm64.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 4d394a54e18a3f01b1a87e3b71196aa8573eb54f8b66e3fafa6168de7183bcd3
MD5 16d5f97585184b412a13fae515dda4fa
BLAKE2b-256 ff2df1ef2ca3095d56b539acf7e92c1c2d49baca58a90c3d662fb67cc44d07f4

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 305fbbe88d7576ba4ed41233fce174c8913fe9105be7df1cd093f48486823618
MD5 fa09efc86bac1818a22269bbf4baed37
BLAKE2b-256 a22fe2a44a756608d824040875478941db7cc4b55eb288fb127991a562db6e35

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp310-cp310-win32.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 c52544c7a9e16f32955f9085faeac5a631020979798b814de0940c1062311121
MD5 3ff2f16d136ed0cb00ad7dbe46c95f3b
BLAKE2b-256 8b1109fde4fd914efad0888ede67875aac91cbef4c6a7a78b3ff3cc7bb9cf839

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b0f80ee479f893cb67f3b8f6d995e0ff2a614c3eaa3d92058e618fe8d4b46909
MD5 e2480112698beb6dffb4cd307477aa60
BLAKE2b-256 07bca67fa409ed3e647d542998cfdf9730cd818f77c99c0d243a4a6db23057a3

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e8f29c180fbc741b0ccb0c103a29e75fdd95798733c0fb34726988d1fb8dcfd3
MD5 dad9ade3f082a137551c5309fed06acf
BLAKE2b-256 c579740782dc5fa6eeef91dbde02f284673e600c51292a99854e5e26820ab29d

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 3ee5c7e0db46534a795c375047e7215942718c5fcfd6d297019a8d16dea4cc91
MD5 4e818820dc20b41b3b62fbb7ff8ebb0a
BLAKE2b-256 1174ada4c4bb57196e5fdf4ad1a87e51f69e17597b1dd37379779149e36ae83e

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp39-cp39-win_arm64.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 5cc3913aed455203d48dcbbf5213e5109c6ec93df52c5162f5f073e4181426a2
MD5 85e29a4103d8832843f4c5b7399bf301
BLAKE2b-256 ca0ebf0252f84d6717e3ee71d5931aee0199435891893550e440942b398d3d42

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 ecabedc9a502a39099debc9673d586f58e4ff0a16336566c85d948b56bf6c9aa
MD5 650f4630f97717f2ee9147d5cbcf7d82
BLAKE2b-256 a0bee7664712b038b7d6b73325e54fa4850c3c77d656e143006d2a3131e1c673

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp39-cp39-win32.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 c9d56330e708d3d7ac93c5178aad2bf5fc14953636869bf5f58b1eea04b05ecc
MD5 a345a3cd644e5d1bbd1924f0b605153d
BLAKE2b-256 cd439a1b563bcbe8bd820a0421746f251bf82babf0c88c0dd9359eb0bc74f906

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4d83515638ba5f5caf212fe80682ad85cf13da5d98204e951585c389b85b59d8
MD5 14623f60cb5223286ef02342a23d648f
BLAKE2b-256 511bf93741c0b8e2ca9419c48e2c7f6b75fce1ff9e0fd267f0403154be0c5744

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c75e841065845ef95bb160d6b1611670800abcc2c3d4b9a896cdf49194a56aaa
MD5 ac0e44b3792589a3e2f6b69333a10542
BLAKE2b-256 79060f101fa8728598421c241e27ed199faea2cbe81fb21cc22179ee3d6139c7

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 bd3a2386e8fcd0be3efd0a12a4ba1afd955a9437b64e00ab7ebe402616a95a56
MD5 141dca72663d5efd73279c625c64d8a8
BLAKE2b-256 58a3678584c626b3ea245e6054b5abfd35e43ec6ae48413cc6d8d314d7ac997a

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 10a5d74c6d153287b2e834beef93eb48df6f0a4d6dd823d1257fcc274aa285ea
MD5 5d90af33edfffb6524e7877649a9be8e
BLAKE2b-256 74f634d4b9a2f7e9f06601fb28f2b023778b16de82e165ab8284dcf4bdc758b8

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp38-cp38-win32.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 93c2df09c3c8879be2d453ab4520fb3eded55f5d61438a42cfd85775fe05e7fc
MD5 a3d2993ec0d080209dab85fed8e6853e
BLAKE2b-256 8ae28b14fe1c55f0f0ae0c0d7c8268dfe5fcc1c583d686f66dddc279b84855c7

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0109e06a952792ddb43388a426101c3693f3055b8fdb22944a353ed925197be7
MD5 ecfc3963c5fc566c4fb66b16f0aa51f8
BLAKE2b-256 c93aceacc01736145038b67e71b76e03247b8ad6f69522472a1da2245d0f3b10

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 bccec95f719acc65430c4456a1360b1a8f0c5da24acf022d13b9f1685167e56f
MD5 a85cbcb040c3f5736f91399b8591cb8e
BLAKE2b-256 0f871827ef57e4c872dc927378658fe5447339098a6787032f348b2273b445f1

See more details on using hashes here.

File details

Details for the file close_numerical_matches-0.2.2-cp38-cp38-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for close_numerical_matches-0.2.2-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 243ad57dadac0562e95f2d3689e478af8e03b6519de422b651d01eb46ac989d0
MD5 59d1ff4733f750118b5d1c515d418ffe
BLAKE2b-256 05febcd78cd981b85cfc372721664793f841fae82ba1e8337e2ade767c77e4c6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page