[](https://www.travis-ci.org/cfhamlet/os-dbnetget)
[](https://codecov.io/gh/cfhamlet/os-dbnetget)
[](https://pypi.python.org/pypi/os-dbnetget)
[](https://pypi.python.org/pypi/os-dbnetget)
Library and command line tool not just for qdb.
This project implement a python qdb toolkit as dbnetget at first. With the progress of development, it is separated into multiple sub-projects as [os-qdb-protocal](https://github.com/cfhamlet/os-qdb-protocal), [os-m3-engine](https://github.com/cfhamlet/os-m3-engine), this project become a framework for similar works not just for qdb.
The main components are client libraries and command line tool.
Client is used for network processing(connect, close, send, receive, etc.) . It is protocol-independent and transparent to user. By now, there are sync/tornado-async clients, thread-safe client pool and tornado-async client pool are also convenient.
Command line tool's features can be extended by installing extra packages. See [Install](#install).
Greatly appreciate [**Bear Tian**](http://i.youku.com/i/UMTk2ODI0MjI0) and his dbnetget!
# Install
* install package
```
pip install os-dbnetget
```
* install extra packages
| subpackage | install command | enables |
| :--------- | :-------------- | :------ |
|m3 | ``pip install os-dbnetget[m3]`` | Install [m3](https://github.com/cfhamlet/os-m3-engine) for command line tool support m3(multi-thread) engine |
| tornado | ``pip install os-dbnetget[tornado]`` | Install [Tornado](https://github.com/tornadoweb/tornado) for async client and command line tool support tornado engine |
| rotate | ``pip install os-dbnetget[rotate]`` | Enable write data to rotate file |
# Client API
There are sync/async clients, generally speaking, you should not use them directly. The pool may be your first choice.
## SyncClientPool
* native multi-thread, do not need extra packages
* thread safe
* retry when network error
* support multi connections with one endpoint
Example:
```python
from os_qdb_protocal import create_protocal
from os_dbnetget.commands.qdb import qdb_key
from os_dbnetget.clients.sync_client import SyncClientPool
endpoints = ['host%02d:8012' % i for i in range(1, 10)]
pool = SyncClientPool(endpoints)
proto = create_protocal('test', qdb_key(b'test-key'))
result = pool.execute(proto)
pool.close()
```
## TornadoClientPool
* support tornado async
* retry when network error
* support multi connections with one endpoint
Example:
```python
from tornado import gen
from tornado.ioLoop import IOLoop
from os_qdb_protocal import create_protocal
from os_dbnetget.commands.qdb import qdb_key
from os_dbnetget.clients.tonado_client import TornadoClientPool
@gen.coroutine
def main():
endpoints = ['host%02d:8012' % i for i in range(1, 10)]
pool = TornadoClientPool(endpoints)
proto = create_protocal('test', qdb_key(b'test-key'))
result = yield pool.execute(proto)
yield pool.close()
IOLoop.current().run_sync(main)
```
# Command line
* command line tool is on progress, the supported sub-commands:
```
os-dbnetget -h
```
* each sub-command has is own features
```
os-dbnetget [sub-command] -h
```
* some extra packages can be installed for enhancement, see [Install](#install)
for example, you can install m3 engine to improve processing capacity
```
pip install os-dbnetget[m3]
```
```
cat data.txt | os-dbnetget test --engine m3 --thread-num 50 -L endpoints.lst
```
# Unit Tests
`$ tox`
# License
MIT licensed.
Metadata
Release files for os-dbnetget 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| os-dbnetget-0.1.3.tar.gz | 19.6 kB | Without provenance | Details |
Release files / os-dbnetget-0.1.3.tar.gz
| Download URL | os-dbnetget-0.1.3.tar.gz |
|---|---|
| Size | 19.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ebcfff3c8b3b6a6385ce88677dcc87368aa2edf2e1337835dcebd4906bdcb297
|
|
BLAKE2b-256 checksum How to use checksums |
1b07a76c21d7e6c3ee4029593efb6c48efd75573978ea576b0929db8a95d3d6c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.29.0 CPython/2.7.14
|
Security for os-dbnetget 0.1.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.