def get()

in sparkey/__init__.py [0:0]


    def get(self, key):
        """Get the value associated with the key

        @param key: type must be bytes or string

        @returns: bytes representing the value associated with the key, or None if the
                  key does not exist.

        """
        key = _to_bytes(key,  "key")
        self._assert_open()
        iterator = self._iter
        log = self._log

        _hash_get(self._hashreader._reader, key, len(key), iterator)

        state = _logiter_state(iterator)
        if state != IterState.ACTIVE:
            return None
        type_ = _logiter_type(iterator)
        assert type_ == IterType.PUT

        valuelen = _logiter_valuelen(iterator)
        string_buffer = _create_string_buffer(valuelen)
        clen = _c_ulonglong()
        _logiter_fill_value(iterator, log, valuelen, string_buffer,
                            _byref(clen))
        if clen.value != valuelen:
            raise SparkeyException("Invalid valuelen, expected %s but got %s" %
                                   (valuelen, clen.value))
        value = string_buffer.raw
        return value