Module refinery.units.crypto.hash.murmur

Expand source code Browse git
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from refinery.lib.murmur import (
    v3_mmh128digest32,
    v3_mmh128digest64,
    v3_mmh32digest,
    v2_mmh32digest,
    v2_mmh32digestA,
    v2_mmh64digestA,
    v2_mmh64digestB,
)
from refinery.units.crypto.hash import HashUnit, Arg


class MurMurHash(HashUnit, abstract=True):
    def __init__(
        self,
        seed: Arg.Number(help='Optional seed value, defaults to {default}.') = 0,
        reps=1,
        text=False,
    ):
        super().__init__(seed=seed, text=text, reps=reps)


class m2h(MurMurHash):
    """
    Returns the 32bit Murmur Hash, Version 2.
    """
    def _algorithm(self, data: bytes) -> bytes:
        return v2_mmh32digest(data, self.args.seed)


class m2ha(MurMurHash):
    """
    Returns the 32bit Murmur Hash, Version 2, Variant A.
    """
    def _algorithm(self, data: bytes) -> bytes:
        return v2_mmh32digestA(data, self.args.seed)


class m2h64a(MurMurHash):
    """
    Returns the 64bit Murmur Hash, Version 2, Variant A.
    """
    def _algorithm(self, data: bytes) -> bytes:
        return v2_mmh64digestA(data, self.args.seed)


class m2h64b(MurMurHash):
    """
    Returns the 64bit Murmur Hash, Version 2, Variant B.
    """
    def _algorithm(self, data: bytes) -> bytes:
        return v2_mmh64digestB(data, self.args.seed)


class m3h(MurMurHash):
    """
    Returns the 32bit Murmur Hash, Version 3.
    """
    def _algorithm(self, data: bytes) -> bytes:
        return v3_mmh32digest(data, self.args.seed)


class m3h64(MurMurHash):
    """
    Returns the 128bit Murmur Hash, Version 3, 64bit digest size.
    """
    def _algorithm(self, data: bytes) -> bytes:
        return v3_mmh128digest64(data, self.args.seed)


class m3h32(MurMurHash):
    """
    Returns the 128bit Murmur Hash, Version 3, 32bit digest size.
    """
    def _algorithm(self, data: bytes) -> bytes:
        return v3_mmh128digest32(data, self.args.seed)

Classes

class MurMurHash (seed=0, reps=1, text=False)
Expand source code Browse git
class MurMurHash(HashUnit, abstract=True):
    def __init__(
        self,
        seed: Arg.Number(help='Optional seed value, defaults to {default}.') = 0,
        reps=1,
        text=False,
    ):
        super().__init__(seed=seed, text=text, reps=reps)

Ancestors

Subclasses

Class variables

var required_dependencies
var optional_dependencies

Inherited members

class m2h (seed=0, reps=1, text=False)

Returns the 32bit Murmur Hash, Version 2.

Expand source code Browse git
class m2h(MurMurHash):
    """
    Returns the 32bit Murmur Hash, Version 2.
    """
    def _algorithm(self, data: bytes) -> bytes:
        return v2_mmh32digest(data, self.args.seed)

Ancestors

Class variables

var required_dependencies
var optional_dependencies

Inherited members

class m2ha (seed=0, reps=1, text=False)

Returns the 32bit Murmur Hash, Version 2, Variant A.

Expand source code Browse git
class m2ha(MurMurHash):
    """
    Returns the 32bit Murmur Hash, Version 2, Variant A.
    """
    def _algorithm(self, data: bytes) -> bytes:
        return v2_mmh32digestA(data, self.args.seed)

Ancestors

Class variables

var required_dependencies
var optional_dependencies

Inherited members

class m2h64a (seed=0, reps=1, text=False)

Returns the 64bit Murmur Hash, Version 2, Variant A.

Expand source code Browse git
class m2h64a(MurMurHash):
    """
    Returns the 64bit Murmur Hash, Version 2, Variant A.
    """
    def _algorithm(self, data: bytes) -> bytes:
        return v2_mmh64digestA(data, self.args.seed)

Ancestors

Class variables

var required_dependencies
var optional_dependencies

Inherited members

class m2h64b (seed=0, reps=1, text=False)

Returns the 64bit Murmur Hash, Version 2, Variant B.

Expand source code Browse git
class m2h64b(MurMurHash):
    """
    Returns the 64bit Murmur Hash, Version 2, Variant B.
    """
    def _algorithm(self, data: bytes) -> bytes:
        return v2_mmh64digestB(data, self.args.seed)

Ancestors

Class variables

var required_dependencies
var optional_dependencies

Inherited members

class m3h (seed=0, reps=1, text=False)

Returns the 32bit Murmur Hash, Version 3.

Expand source code Browse git
class m3h(MurMurHash):
    """
    Returns the 32bit Murmur Hash, Version 3.
    """
    def _algorithm(self, data: bytes) -> bytes:
        return v3_mmh32digest(data, self.args.seed)

Ancestors

Class variables

var required_dependencies
var optional_dependencies

Inherited members

class m3h64 (seed=0, reps=1, text=False)

Returns the 128bit Murmur Hash, Version 3, 64bit digest size.

Expand source code Browse git
class m3h64(MurMurHash):
    """
    Returns the 128bit Murmur Hash, Version 3, 64bit digest size.
    """
    def _algorithm(self, data: bytes) -> bytes:
        return v3_mmh128digest64(data, self.args.seed)

Ancestors

Class variables

var required_dependencies
var optional_dependencies

Inherited members

class m3h32 (seed=0, reps=1, text=False)

Returns the 128bit Murmur Hash, Version 3, 32bit digest size.

Expand source code Browse git
class m3h32(MurMurHash):
    """
    Returns the 128bit Murmur Hash, Version 3, 32bit digest size.
    """
    def _algorithm(self, data: bytes) -> bytes:
        return v3_mmh128digest32(data, self.args.seed)

Ancestors

Class variables

var required_dependencies
var optional_dependencies

Inherited members