Current File : //lib64/python2.7/site-packages/_tdb_text.py
# Text wrapper for tdb bindings
#
# Copyright (C) 2015 Petr Viktorin <[email protected]>
# Published under the GNU LGPLv3 or later

import sys

import tdb


class TdbTextWrapper(object):
    """Text interface for a TDB file"""

    def __init__(self, tdb):
        self._tdb = tdb

    @property
    def raw(self):
        return self._tdb

    def get(self, key):
        key = key.encode('utf-8')
        result = self._tdb.get(key)
        if result is not None:
            return result.decode('utf-8')

    def append(self, key, value):
        key = key.encode('utf-8')
        value = value.encode('utf-8')
        self._tdb.append(key, value)

    def firstkey(self):
        result = self._tdb.firstkey()
        if result:
            return result.decode('utf-8')

    def nextkey(self, key):
        key = key.encode('utf-8')
        result = self._tdb.nextkey(key)
        if result is not None:
            return result.decode('utf-8')

    def delete(self, key):
        key = key.encode('utf-8')
        self._tdb.delete(key)

    def store(self, key, value):
        key = key.encode('utf-8')
        value = value.encode('utf-8')
        self._tdb.store(key, value)

    def __iter__(self):
        for key in iter(self._tdb):
            yield key.decode('utf-8')

    def __getitem__(self, key):
        key = key.encode('utf-8')
        result = self._tdb[key]
        return result.decode('utf-8')

    def __contains__(self, key):
        key = key.encode('utf-8')
        return key in self._tdb

    def __repr__(self):
        return '<TdbTextWrapper for %r>' % self._tdb

    def __setitem__(self, key, value):
        key = key.encode('utf-8')
        value = value.encode('utf-8')
        self._tdb[key] = value

    def __delitem__(self, key):
        key = key.encode('utf-8')
        del self._tdb[key]

    if sys.version_info > (3, 0):
        keys = __iter__
    else:
        iterkeys = __iter__
        has_key = __contains__


## Add wrappers for functions and getters that don't deal with text

def _add_wrapper(name):
    orig = getattr(tdb.Tdb, name)

    def wrapper(self, *args, **kwargs):
        return orig(self._tdb, *args, **kwargs)
    wrapper.__name__ = orig.__name__
    wrapper.__doc__ = orig.__doc__

    setattr(TdbTextWrapper, name, wrapper)

for name in ("transaction_cancel",
             "transaction_commit",
             "transaction_prepare_commit",
             "transaction_start",
             "reopen",
             "lock_all",
             "unlock_all",
             "read_lock_all",
             "read_unlock_all",
             "close",
             "add_flags",
             "remove_flags",
             "clear",
             "repack",
             "enable_seqnum",
             "increment_seqnum_nonblock",
            ):
    _add_wrapper(name)


def _add_getter(name):
    orig = getattr(tdb.Tdb, name)
    doc = orig.__doc__

    def getter(self):
        return getattr(self._tdb, name)

    def setter(self, value):
        return setattr(self._tdb, name, value)

    setattr(TdbTextWrapper, name, property(getter, setter, doc=doc))

for name in ("hash_size",
             "map_size",
             "freelist_size",
             "flags",
             "max_dead",
             "filename",
             "seqnum",
             "text",
            ):
    _add_getter(name)
blog

blog

Детальный обзор игорного заведения с возможностью демо-режима

Детальный обзор игорного заведения с возможностью демо-режима Виртуальные гэмблинг-платформы с функцией бесплатной игры предлагают особую возможность для геймеров проверить фортуну без опасности лишиться собственных средств. Бесплатная забава позволяет новичкам разобраться в пользовательским интерфейсом и регламентом, а профессионалам — протестировать новые стратегии в Максбет казино. Отличительная черта таких платформ выражается в …

Read More »

Pin Up Казино – Официальный сайт Пин Ап вход на зеркало (2025).3235

Pin Up Казино – Официальный сайт Пин Ап вход на зеркало (2025) ▶️ ИГРАТЬ Содержимое Pin Up Казино – Официальный сайт Пин Ап Преимущества Pin Up Казино Вход на зеркало (2025) Преимущества и функции Pin Up Казино Как начать играть в Pin Up Казино Доступные методы оплаты Отзывы и рейтинг …

Read More »

Казино Официальный сайт Pin Up Casino играть онлайн – Вход, Зеркало.6473

Пин Ап Казино Официальный сайт | Pin Up Casino играть онлайн – Вход, Зеркало ▶️ ИГРАТЬ Содержимое Pin Up Casino: Официальный Сайт Вход в Казино Зеркало Казино Как Играть Онлайн в Пинап Казино Шаг 1: Регистрация Шаг 2: Депозит Шаг 3: Выбор Игры Шаг 4: Играть Преимущества игроков в Pin …

Read More »

1win официальный сайт букмекера — Обзор и зеркало для входа.3344

1win официальный сайт букмекера — Обзор и зеркало для входа ▶️ ИГРАТЬ Содержимое 1win Официальный Сайт Букмекера Преимущества официального сайта 1вин Обзор и Зеркало для Входа Преимущества и Функции Официального Сайта 1win Функции официального сайта 1win: В мире ставок и азарта 1вин является одним из самых популярных букмекеров, предлагающих широкий …

Read More »

Mostbet apk.527

Mostbet apk ▶️ PLAY Содержимое Mostbet Apk: A Comprehensive Guide What is Mostbet Apk? Features of Mostbet Apk Mostbet is a popular online betting and gaming platform that has been gaining traction globally. With its user-friendly interface and wide range of games and betting options, it’s no wonder why many …

Read More »

Krikya Online Casino in Bangladesh Customer Support.632

Krikya Online Casino in Bangladesh – Customer Support ▶️ PLAY Содержимое Responsive and Timely Support Multi-Channel Support Options Knowledge Base and FAQs General Information Games and Services Secure and Confidential Support In the rapidly growing online gaming industry, Krikya Online Casino has established itself as a prominent player in Bangladesh. …

Read More »

Mostbet AZ – bukmeker ve kazino Mostbet Giri rsmi sayt.5879

Mostbet AZ – bukmeker ve kazino Mostbet – Giriş rəsmi sayt ▶️ OYNA Содержимое Mostbet AZ rəsmi saytı haqqında məlumatlar Mostbet AZ-da qazanmaq üçün nəzərə alınmalıdır maliyyə planları Mostbet AZ-da maliyyə planı təyin etmək üçün nə qədər məbləği təyin etməliyim? mostbet AZ – bukmeker və kazino şirkətinin Azerbaycan üçün hazırladığı …

Read More »

Mostbet AZ – bukmeker ve kazino Mostbet Giri rsmi sayt.4013

Mostbet AZ – bukmeker ve kazino Mostbet – Giriş rəsmi sayt ▶️ OYNA Содержимое Mostbet AZ rəsmi saytı haqqında məlumatlar Mostbet AZ-da qeydiyyatdan keçmək Mostbet AZ-da qazanmaq üçün nəzərə alınmalıdır maliyyə tədbirləri Mostbet AZ-da oyun oynayın və kazanın Mostbet AZ – bukmeker və kazino şirkətinin Azerbaycan riyazi qazanlar üçün rəsmi …

Read More »

Casibom – casibom casino resmi gncel giri.902

Casibom – casibom casino resmi güncel giriş ▶️ OYNAMAK Содержимое Casibom Kasino Hakkında Temel Bilgiler Casibom Kasino Oyunları ve Bonus Programı Casibom Giriş ve Kayıt Casibom, en popüler ve güvenilir kasıtlı oyun sitelerinden biridir. Casibom 158 giriş sayesinde kullanıcılar, güvenli ve profesyonel bir ortamda çeşitli oyunları deneyebilirler. Cadibom adı ile …

Read More »

PariMatch (ПаріМатч) ставки на спорт та онлайн казино.3457

PariMatch (ПаріМатч) ставки на спорт та онлайн казино ▶️ ГРАТИ Содержимое ПариMatch – лідер українського ринку онлайн-ставок Преимущества Париматча Що таке PariMatch? Що може зробити PariMatch? Як зареєструватися на PariMatch Шаг 2: Введіть дані для реєстрації Оставки на спорт та онлайн-казино на PariMatch Що таке PariMatch? Переваги PariMatch Допомога та …

Read More »