k2hash for Pythonのドキュメントへようこそ!

k2hash_python

https://img.shields.io/badge/license-MIT-blue.svg https://img.shields.io/pypi/pyversions/k2hash.svg https://img.shields.io/github/forks/yahoojapan/k2hash_python.svg https://img.shields.io/github/stars/yahoojapan/k2hash_python.svg https://img.shields.io/github/issues/yahoojapan/k2hash_python.svg https://github.com/yahoojapan/k2hash_python/workflows/Python%20package/badge.svg https://readthedocs.org/projects/k2hash-python/badge/?version=latest https://img.shields.io/pypi/v/k2hash

概要

k2hash_pythonは、k2hash のPython版(公式)です。

https://raw.githubusercontent.com/yahoojapan/k2hash_python/main/docs/images/top_k2hash_python.png

インストール

最初にk2hashの共有ライブラリをインストールしなければなりません。

curl -o- https://raw.github.com/yahoojapan/k2hash_python/master/utils/libk2hash.sh | bash

pipコマンドを使って、k2hashのPythonb版をインストールしましょう。

pip install k2hash

使い方

キーに値をセットして、ゲットしてみましょう。

import k2hash

k = k2hash.K2hash('test.k2h')
k.set('hello', 'world')
v = k.get('hello')
print(v)    // world

開発

このレポジトリをクローンして、以下のコマンドを打ち込んでください。

$ python3 -m pip install --upgrade build
$ python3 -m build

ドキュメント

k2hashのPython版以外のコンポーネントのドキュメントはこちらです。

ドキュメントトップ

K2HASHについて

AntPickaxについて

パッケージについて

この他のコンポーネントのパッケージはこちらです。

k2hash(python packages)

ライセンス

MITライセンスです。詳しくは、LICENSEファイルを見てください。

AntPickax

k2hash_pythonは、 AntPickax によるプロジェクトの一つです。 AntPickax は、ヤフー株式会社のオープンソース開発チームの一つです。

k2hash

k2hashパッケージ

サブモジュール

k2hash.k2hash module

K2hash Python Driver under MIT License

class k2hash.k2hash.K2hash(k2hfile='', flag=None, readonly=True, removefile=True, fullmap=True, maskbit=8, cmaskbit=4, maxelementcnt=1024, pagesize=512, waitms=0, logfile='')

ベースクラス: object

K2hashクラスはkey/valueペアを操作するメソッドを提供します。

K2H_INVALID_HANDLE = 0
add_attribute_plugin_lib(path)

属性操作用共有ライブラリを追加します。

add_decryption_password(password)

復号化用パスフレーズを追加します。

add_subkey(key, subkey, subval, password=None, expire_duration=None, time_unit=TimeUnit.SECONDS)

サブキーを追加します。

begin_tx(txfile, prefix=None, param=None, expire_duration=None)

トランザクションを開始します。

close()

ファイルを閉じます。

static create(pathname, maskbit=8, cmaskbit=4, maxelementcnt=1024, pagesize=512)

ファイルを作ります。

dump_to_file(path, is_skip_error=True)

key/valueペアをファイルに出力します。

enable_encryption(enable=True)

暗号化機能を有効にします。

enable_history(enable=True)

履歴保存機能を有効にします。

enable_mtime(enable=True)

変更時刻記録機能を有効にします。

get(key, password=None)

値を取得します。

get_attributes(key, use_str=True)

属性を取得します。

get_iterator(key=None)

キーのiteratorを取得します。

get_subkeys(key, use_str=True)

サブキーを取得します。

get_tx_file_fd()

トランザクションログファイル記述子を取得します。

static get_tx_pool_size()

トランザクション用スレッド数を取得します。

property handle

キューハンドルを返します。

property libc

libcライブラリハンドルを返します。

property libk2hash

libk2hashライブラリハンドルを返します。

load_from_file(path, is_skip_error=True)

ファイルからデータをロードします。

print_attribute_plugins()

属性用プラグインを出力します。

print_attributes()

属性情報を出力します。

print_data_stats()

データ統計情報を出力します。

print_table_stats(level=DumpLevel.HEADER)

キーテーブル情報を出力します。

remove(key, remove_all_subkeys=False)

キーを削除します。

remove_subkeys(key, subkeys)

サブキーを削除します

rename(key, newkey)

キーの名前を変更します。

set(key, val, password=None, expire_duration=None, time_unit=TimeUnit.SECONDS)

key/valueを保存します。

set_attribute(key, attr_name, attr_val)

属性をセットします。

set_default_encryption_password(password)

暗号化パスワードをセットします。

set_encryption_password_file(path)

暗号化パスワードファイルをセットします。

set_expiration_duration(expire_duration, time_unit=TimeUnit.SECONDS)

データの有効期限をセットします。

set_log_level(level=LogLevel.INFO)

ファイルを作ります。

set_subkeys(key, subkeys, password=None, expire_duration=None, time_unit=TimeUnit.SECONDS)

サブキーをセットします。

static set_tx_pool_size(size)

トランザクション処理用スレッド数をセットします。

stop_tx()

トランザクションを終了します。

static version()

バージョンを表示します。

class k2hash.k2hash.K2hashIterator(k2h, key=None)

ベースクラス: object

k2hashのiteratorを実装しています。

k2hash.keyqueue module

K2hash Python Driver under MIT License

class k2hash.keyqueue.KeyQueue(k2h, fifo=True, prefix=None, password=None, expire_duration=None)

ベースクラス: object

KeyQueueクラスはkey/valueキュー操作メソッドを提供します

clear()

全ての要素を削除します。

close()

キュー処理ハンドルを解放します。

element(position=0)

キューの要素を取得します。

empty()

キューが空ならば真を返します。

get()

キューの要素を取得します。

property handle

キューハンドルを返します。

print()

キューの要素を出力します。

put(obj)

キューに要素を追加します。

qsize()

キューの数を返します。

remove(count=1)

キューから要素を削除します。

k2hash.queue module

K2hash Python Driver under MIT License

class k2hash.queue.Queue(k2h, fifo=True, prefix=None, password=None, expire_duration=None)

ベースクラス: object

Queueクラスは、キュー操作メソッドを提供します。

clear()

全ての要素を削除します。

close()

キュー処理ハンドルを解放します。

element(position=0)

キューの要素を取得します。

empty()

キューが空ならば真を返します。

get()

キューの要素を取得します。

property handle

キューハンドルを返します。

print()

キューの要素を出力します。

put(obj, attrs=None)

キューに要素を追加します。

qsize()

キューの数を返します。

remove(count=1)

キューから要素を削除します。

モジュール

k2hashパッケージ

class k2hash.AttrPack

ベースクラス: _ctypes.Structure

Attr構造体

keylength

構造体のメンバー

pkey

構造体のメンバー

pval

構造体のメンバー

vallength

構造体のメンバー

class k2hash.DumpLevel(value)

ベースクラス: enum.Enum

k2hashファイルの状態

ELEMENT = 4
HASH_TABLE = 2
HEADER = 1
PAGE = 5
SUB_HASH_TABLE = 3
class k2hash.K2hash(k2hfile='', flag=None, readonly=True, removefile=True, fullmap=True, maskbit=8, cmaskbit=4, maxelementcnt=1024, pagesize=512, waitms=0, logfile='')

ベースクラス: object

K2hashクラスはkey/valueペアを操作するメソッドを提供します。

K2H_INVALID_HANDLE = 0
add_attribute_plugin_lib(path)

属性操作用共有ライブラリを追加します。

add_decryption_password(password)

復号化用パスフレーズを追加します。

add_subkey(key, subkey, subval, password=None, expire_duration=None, time_unit=TimeUnit.SECONDS)

サブキーを追加します。

begin_tx(txfile, prefix=None, param=None, expire_duration=None)

トランザクションを開始します。

close()

ファイルを閉じます。

static create(pathname, maskbit=8, cmaskbit=4, maxelementcnt=1024, pagesize=512)

ファイルを作ります。

dump_to_file(path, is_skip_error=True)

key/valueペアをファイルに出力します。

enable_encryption(enable=True)

暗号化機能を有効にします。

enable_history(enable=True)

履歴保存機能を有効にします。

enable_mtime(enable=True)

変更時刻記録機能を有効にします。

get(key, password=None)

値を取得します。

get_attributes(key, use_str=True)

属性を取得します。

get_iterator(key=None)

キーのiteratorを取得します。

get_subkeys(key, use_str=True)

サブキーを取得します。

get_tx_file_fd()

トランザクションログファイル記述子を取得します。

static get_tx_pool_size()

トランザクション用スレッド数を取得します。

property handle

キューハンドルを返します。

property libc

libcライブラリハンドルを返します。

property libk2hash

libk2hashライブラリハンドルを返します。

load_from_file(path, is_skip_error=True)

ファイルからデータをロードします。

print_attribute_plugins()

属性用プラグインを出力します。

print_attributes()

属性情報を出力します。

print_data_stats()

データ統計情報を出力します。

print_table_stats(level=DumpLevel.HEADER)

キーテーブル情報を出力します。

remove(key, remove_all_subkeys=False)

キーを削除します。

remove_subkeys(key, subkeys)

サブキーを削除します

rename(key, newkey)

キーの名前を変更します。

set(key, val, password=None, expire_duration=None, time_unit=TimeUnit.SECONDS)

key/valueを保存します。

set_attribute(key, attr_name, attr_val)

属性をセットします。

set_default_encryption_password(password)

暗号化パスワードをセットします。

set_encryption_password_file(path)

暗号化パスワードファイルをセットします。

set_expiration_duration(expire_duration, time_unit=TimeUnit.SECONDS)

データの有効期限をセットします。

set_log_level(level=LogLevel.INFO)

ファイルを作ります。

set_subkeys(key, subkeys, password=None, expire_duration=None, time_unit=TimeUnit.SECONDS)

サブキーをセットします。

static set_tx_pool_size(size)

トランザクション処理用スレッド数をセットします。

stop_tx()

トランザクションを終了します。

static version()

バージョンを表示します。

class k2hash.K2hashIterator(k2h, key=None)

ベースクラス: object

k2hashのiteratorを実装しています。

class k2hash.KeyPack

ベースクラス: _ctypes.Structure

KeyPack構造体

length

構造体のメンバー

pkey

構造体のメンバー

class k2hash.KeyQueue(k2h, fifo=True, prefix=None, password=None, expire_duration=None)

ベースクラス: object

KeyQueueクラスはkey/valueキュー操作メソッドを提供します

clear()

全ての要素を削除します。

close()

キュー処理ハンドルを解放します。

element(position=0)

キューの要素を取得します。

empty()

キューが空ならば真を返します。

get()

キューの要素を取得します。

property handle

キューハンドルを返します。

print()

キューの要素を出力します。

put(obj)

キューに要素を追加します。

qsize()

キューの数を返します。

remove(count=1)

キューから要素を削除します。

class k2hash.LogLevel(value)

ベースクラス: enum.Enum

k2hashログレベル

DEBUG = 5
ERROR = 2
INFO = 4
SILENT = 1
WARNING = 3
class k2hash.OpenFlag(value)

ベースクラス: enum.Enum

ファイルオープン用フラグ

EDIT = 2
MEMORY = 4
READ = 1
TEMPFILE = 3
class k2hash.Queue(k2h, fifo=True, prefix=None, password=None, expire_duration=None)

ベースクラス: object

Queueクラスは、キュー操作メソッドを提供します。

clear()

全ての要素を削除します。

close()

キュー処理ハンドルを解放します。

element(position=0)

キューの要素を取得します。

empty()

キューが空ならば真を返します。

get()

キューの要素を取得します。

property handle

キューハンドルを返します。

print()

キューの要素を出力します。

put(obj, attrs=None)

キューに要素を追加します。

qsize()

キューの数を返します。

remove(count=1)

キューから要素を削除します。

class k2hash.TimeUnit(value)

ベースクラス: enum.Enum

時間単位

DAYS = 1
HOURS = 2
MILLISECONDS = 3
MINUTES = 4
SECONDS = 5

功績

開発者

  • 若林 大崇

貢献者

  • 中谷 武史

歴史

1.0.0 (2022-02-07)

  • 最初のリリース

一覧