# Examples

This directory contains the following example files:

- `binary_basics.py` − basic operations with Complex objects,
- `binary_types.py` - read SQL table as a key-value cache,
- `create_binary.py` − create SQL row with key-value operation,
- `failover.py` − fail-over connection to Ignite cluster,
- `get_and_put.py` − basic key-value operations,
- `migrate_binary.py` − work with Complex object schemas,
- `scans.py` − cache scan operation,
- `sql.py` − use Ignite SQL,
- `type_hints.py` − type hints.

For the explanation of the examples please refer to the
[Examples of usage](https://apache-ignite-binary-protocol-client.readthedocs.io/en/latest/examples.html)
section of the `pyignite` documentation.
