Metadata-Version: 2.3
Name: konnecto
Version: 0.0.2
Summary: A database engine to manipulate any type of database from an user defined JSON-like schema.
Author: Paul Breugnot, Bertrand Wallrich
Author-email: Paul Breugnot <Paul.Breugnot@inria.fr>, Bertrand Wallrich <Bertrand.Wallrich@inria.fr>
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Dist: stricto>=0.2.4
Requires-Dist: pyyaml>=6.0.3
Requires-Dist: jsonpath-python>=1.1.6
Requires-Dist: build>=1.5.0
Requires-Dist: twine>=7.0.0
Requires-Dist: pymongo>=4.17.0 ; extra == 'mongo'
Requires-Python: >=3.14
Project-URL: GitHub, https://github.com/backo-stricto/konnecto
Project-URL: Homepage, https://github.com/backo-stricto/konnecto
Project-URL: Issues, https://github.com/backo-stricto/konnecto/issues
Provides-Extra: mongo
Description-Content-Type: text/markdown

# Connecto

`konnecto` provides a low-code API that allow you to build JSON based interfaces
to any type of database.

It allows you to precisely describe a specification of the expected JSON-like
structure and where to retrieve each field from the dabatase. `konnecto` will
then efficiently handle the logic required to search, select, delete and update
items in the database, so you only need to focus on the necessary code that is
required to run the application.

`konnecto` is designed with two main objectives in mind:
1. Provide a set of ready to use connectors that allow end users to easily build
   an interface to manage item in a database.
2. A set of interfaces and methods that can be used by developers to easily
   build connectors to new databases that are not already supported by
   `konnecto`.

# Examples

Usage examples are available in the `examples` folder. See the
[wiki](https://github.com/backo-stricto/konnecto/wiki/Introduction) for more
examples with detailed explanations.

For examples of connector implementations, see the corresponding `konnecto`
submodule (e.g. `konnecto.yaml`, `konnecto.ldap`, `konnecto.sql`...).

Also check the [wiki](https://github.com/backo-stricto/konnecto/wiki) for
details on [working
principles](https://github.com/backo-stricto/konnecto/wiki/WorkingPrinciples) of
`konnecto`. The wiki also includes
[tutorials](https://github.com/backo-stricto/konnecto/wiki/BasicConnectorTutorial)
to learn how to implement a full featured connector for a new database.

# Developement

## Tests

Run the test suite:
```bash
uv run -m unittest tests
```

## Formatting

Use `black` to format files before staging changes:
```bash
uv run --dev -m black $(git ls-files '*.py')
```

## Linting

Use `pylint` to format files before staging changes:
```bash
uv run --dev -m pylint $(git ls-files '*.py')
```



## Building a new release

For personal use only.

```bash
# Modify changelog
# modify pyproject.toml
git add -u
git commit -am 'preparing 0.0.x'
git push
git tag -a 0.0.x -m '0.0.x'
git push origin tag 0.0.x

# publish a new relase in github interface, based on tag 
```
