Metadata-Version: 2.1
Name: easybase
Version: 1.1.0
Summary: Python/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
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Database
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: thriftpy2 (>=0.4.5)
Requires-Dist: six (>=1.15.0)
Requires-Dist: pure-sasl (>=0.6.2)
Requires-Dist: kerberos (>=1.3.0)

EasyBase
========

.. image:: https://github.com/wgzhao/easybase/workflows/Test/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.connect(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>`_. 

