Metadata-Version: 2.4
Name: shuttlebase
Version: 0.0.1a0
Summary: Copy an SQLite or SQLCipher database to a working copy and back, safely.
Author-email: "High Dimensional Neurology Group, UCL" <pypi@highdimensional.net>
License-Expression: BSD-3-Clause
Project-URL: Homepage, https://github.com/high-dimensional/shuttlebase
Project-URL: Repository, https://github.com/high-dimensional/shuttlebase
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Provides-Extra: binary
Requires-Dist: sqlcipher3-binary>=0.6; extra == "binary"
Provides-Extra: source
Requires-Dist: sqlcipher3>=0.6; extra == "source"
Provides-Extra: keyring
Requires-Dist: keyring>=24; extra == "keyring"
Provides-Extra: test
Requires-Dist: pytest>=8; extra == "test"
Requires-Dist: keyring>=24; extra == "test"

# shuttlebase

**Copy an SQLite or SQLCipher database to a working copy and back, safely.**

shuttlebase moves a database between the storage where it is kept and a working copy where it is
used. It currently supports plain SQLite, and SQLCipher (an encrypted variant of SQLite) through
[sqlcipher3](https://github.com/coleifer/sqlcipher3), its Python binding.

## Installation

`SqliteEngine` needs nothing beyond Python's standard library:

```bash
pip install shuttlebase
```

`SqlCipherEngine` needs sqlcipher3, which is available in two distributions. Both install the module
`sqlcipher3`, and exactly one of them is needed:

```bash
pip install "shuttlebase[binary]"   # sqlcipher3-binary: wheels with SQLCipher bundled
pip install "shuttlebase[source]"   # sqlcipher3: built against a system SQLCipher
```

With keyring support (for `KeyringSecret`): add the `keyring` extra, e.g.
`pip install "shuttlebase[binary,keyring]"`.

From a source checkout (<https://github.com/high-dimensional/shuttlebase>):
`pip install -e ".[binary,test]"`.

Requires Python 3.12 or later.
