跳转到主要内容

Python Groonga客户端

项目描述

PyPI Version Build status

Python Groonga 客户端。pyonga支持HTTP和GQTP协议。

要求

  • Python 3.6+

安装

从pip

pip install --upgrade poyonga

使用方法

设置Groonga服务器

$ groonga -n grn.db     # create groonga database file
$ groonga -s grn.db     # start groonga server with GQTP

基本用法

>>> from poyonga import Groonga
>>> g = Groonga()
>>> g.protocol
'http'
>>> ret = g.call("status")
>>> ret
<poyonga.result.GroongaResult object at 0x8505ccc>
>>> ret.status
0
>>> ret.body
{u'uptime': 427, u'max_command_version': 2, u'n_queries': 3,
u'cache_hit_rate': 66.6666666666667, u'version': u'1.2.8', u
'alloc_count': 156, u'command_version': 1, u'starttime': 132
8286909, u'default_command_version': 1}
>>>

使用eventlet

from poyonga import Groonga
import eventlet

eventlet.monkey_patch()

def fetch(cmd, **kwargs):
    g = Groonga()
    ret = g.call(cmd, **kwargs)
    print ret.status
    print ret.body
    print "*" * 40

cmds = [("status", {}),
        ("log_level", {"level": "warning"}),
        ("table_list", {})
        ("select", {"table": "Site"})]
pool = eventlet.GreenPool()
for cmd, kwargs in cmds:
    pool.spawn_n(fetch, cmd, **kwargs)
pool.waitall()

自定义前缀路径

如果您使用自定义前缀路径多数据库,请指定prefix_path

# default is '/d/'
g = Groonga(prefix_path='/db2/')

使用Apache Arrow

Groonga支持Apache Arrow,使用load和select命令。

使用Apache Arrow的pyonga,您需要pyarrow

需要pyarrow

$ pip install pyarrow

并使用具有output_type="apache-arrow"选项的调用

from poyonga import Groonga

g = Groonga()
g.call(
    "select",
    table="Users",
    match_columns="name,location_str,description",
    query="東京",
    output_type="apache-arrow",
    output_columns="_key,name",
)

使用

import pyarrow as pa
from poyonga import Groonga

# use Apache Arrow IPC Streaming Format
data = [pa.array(["groonga.org"])]
batch = pa.record_batch(data, names=["_key"])
sink = pa.BufferOutputStream()
with pa.ipc.new_stream(sink, batch.schema) as writer:
    writer.write_batch(batch)
buf = sink.getvalue()
values = buf.to_pybytes()

g = Groonga()
g.call("load", table="Site", values=values, input_type="apache-arrow")

更多信息

示例代码

查看 示例目录

针对开发者

安装开发依赖项

$ pip install ".[dev]"

运行测试

$ pytest

运行代码检查器

$ ruff .

运行格式化工具

$ black --diff .

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

poyonga-0.6.0.tar.gz (13.8 kB 查看哈希值)

上传时间 源代码

构建分发

poyonga-0.6.0-py3-none-any.whl (9.5 kB 查看哈希值)

上传时间 Python 3

支持者