Metadata-Version: 2.4
Name: easybase
Version: 1.1.4
Summary: Python3 library to interact with Apache HBase,support HBase 2.0, time-range scan and HBase thrift 2 procotol. 
Home-page: https://github.com/wgzhao/easybase
Author: wgzhao
Author-email: wgzhao@gmail.com
License: MIT
Keywords: HBase,easybase,thrift2
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Database
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.7
License-File: LICENSE.rst
Requires-Dist: thriftpy2>=0.4.5
Requires-Dist: pure-sasl>=0.6.2
Requires-Dist: kerberos>=1.3.0
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

EasyBase
========

.. image:: https://github.com/wgzhao/easybase/actions/workflows/python-package.yml/badge.svg
    :target: https://github.com/wgzhao/easybase

.. image:: https://img.shields.io/pypi/dm/easybase.svg
    :target: https://pypi.org/project/easybase/

.. image:: https://img.shields.io/pypi/v/easybase.svg
    :target: https://pypi.org/project/easybase/

.. image:: https://img.shields.io/pypi/pyversions/easybase.svg
    :target: https://pypi.org/project/easybase/

.. image:: https://img.shields.io/pypi/implementation/easybase.svg
    :target: https://pypi.org/project/easybase/


**EasyBase** is a developer-friendly Python library to interact with
`Apache HBase <https://hbase.apache.org>`__ . The original source code
forked from `HappyBase <https://github.com/wbolster/happybase>`__.


Feature highlight
=================

-  easy using

-  support HBase Thrift 2 protocol(HBase Thrift 1 is NO longer supported)

-  using `thriftpy2 <http://github.com/thriftpy/thriftpy2>`__ instead of
   old thriftpy


Installation
============

.. code:: shell

   pip install easybase


Usage
=====


Connect
-------

.. code:: python

   import easybase
   host, port = 'localhost', 9000
   tbl = 'test1'
   conn = easybase.Connection(host=host, port=port)
   table = conn.table(tbl)
   rs = conn.scan(limit=10)
   for row in rs:
     print(row)


Create Table
------------

.. code:: python

   table_def = {'cf1':dict(),
                'cf2':{'max_versions':2000}}
   conn.create_table('test1', table_def)


Write row to table
------------------

.. code:: python

   puts = {'cf1:c1': 'v1',
           'cf1:c2': 'v2'
          'cf2:c2': 'v3'}
   tbl = conn.table('test1')
   tbl.put(row='rk1', puts)


Get row from table
------------------

.. code:: python

   rk = 'rk1'
   tbl = conn.table('test1')
   rs = tbl.row(rk)


Scan rows 
----------

.. code:: python

   tbl = conn.table('test1')
   scanner = tbl.scan(row_start='rk_0001', row_stop='rk_0100')
   for row in scanner:
     print(row)

Get all namespace
------------------

.. code:: python

   for ns in conn.list_namespaces():
        print(ns)

You can get detail in
`DemoClient.py <https://github.com/wgzhao/easybase/blob/master/DemoClient.py>`__


License
=================
MIT License   `<http://www.opensource.org/licenses/MIT>`_. 
