Metadata-Version: 2.1
Name: pythonblip
Version: 0.3.1
Summary: Couchbase BLIP Protocol Library
Home-page: https://github.com/mminichino/python-blip
Author: Michael Minichino
Author-email: info@unix.us.com
License: Apache License 2.0
Keywords: couchbase,blip,mobile,syncgateway
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Database
Classifier: Topic :: System :: Networking
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE

Python BLIP
===========
Pure Python implementation of the Couchbase BLIP sync protocol.

Installing
==========
```
python3 -m venv venv
```
```
. venv/bin/activate
```
```
pip3 install pythonblip
```

Usage
=====
```
from pythonblip.headers import SessionAuth
from pythonblip.replicator import Replicator, ReplicatorConfiguration, ReplicatorType
from pythonblip.output import LocalDB, LocalFile, ScreenOutput

host = "127.0.0.1"
database = "mobile"
port = "4984"
ssl = True
directory = os.environ['HOME']
scope = "data"
collections = ["employees", "payroll"]

replicator = Replicator(ReplicatorConfiguration.create(
    database,
    host,
    ReplicatorType.PULL,
    SessionAuth(options.session),
    ssl,
    port,
    scope,
    collections,
    LocalFile(directory)
))

try:
    replicator.start()
    replicator.replicate()
    replicator.stop()
except Exception as err:
    print(f"Error: {err}")
```

Sync documents with 3.0 and earlier protocol (all documents in the _default scope and collection).
```
blipctl -n 127.0.0.1 -d database -t 9ec978de8f0fc172708cdbb9fc3f903a882883ec -f -D /home/sync/tests/output/ --ssl
```

Use new 3.1 and later style with scopes and collections.
```
blipctl -n 127.0.0.1 -d database -t 1eaccb9f9dc219a1b5d18e18e7f3d058efd1e9ff -s scope -c collection1,collection2,collection3 -f -D /home/sync/tests/output/ --ssl
```

Note: To get a session token you can use the [SGWCLI](https://github.com/mminichino/sgwcli):
```
./sgwcli auth session -h 127.0.0.1 -n database -U sgw@user --ssl
```

```blipctl``` arguments:

| Options                                   | Description                      |
|-------------------------------------------|----------------------------------|
| --ssl                                     | Use SSL                          |
| -n HOST, --host HOST                      | Hostname or IP address           |
| -P PORT, --port PORT                      | Port number                      |
| -u USER, --user USER                      | User Name                        |
| -p PASSWORD, --password PASSWORD          | User Password                    |
| -d DATABASE, --database DATABASE          | Sync Gateway Database            |
| -t SESSION, --session SESSION             | Session Token                    |
| -O, --screen                              | Output documents to the terminal |
| -f, --file                                | Output documents to file(s)      |
| -D DIR, --dir DIR                         | Output Directory                 |
| -s SCOPE, --scope SCOPE                   | Scope                            |
| -c COLLECTIONS, --collections COLLECTIONS | Collections                      |
| -vv, --debug                              | Debug output                     | 
| -v, --verbose                             | Verbose output                   | 
