Metadata-Version: 2.4
Name: modelbaker
Version: 2.2.0
Summary: The full model baker core
Home-page: https://github.com/opengisch/QgisModelBakerLibrary
Author: Dave Signer
Author-email: david@opengis.ch
Classifier: Topic :: Database
Classifier: License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-python
Dynamic: summary

<img alt="logo" src="https://raw.githubusercontent.com/opengisch/QgisModelBakerLibrary/main/assets/Long-Logo_Green_Modelbaker_RGB.png">

# modelbaker - the library

The modelbaker library is a package containing two main areas:
- Wrapper for ili2db `iliwrapper`
- Modules to generate a QGIS project from it's database source and interacting with this source

This Library is the backend of the QGIS Plugin [QGIS Model Baker](https://github.com/opengisch/QgisModelBaker).
### Installation

```
pip install modelbaker
```
### Structure

```
.
├── __init__.py
├── iliwrapper
│   ├── __init__.py
│   ├── globals.py
│   ├── ili2dbargs.py
│   ├── ili2dbconfig.py
│   ├── ili2dbtools.py
│   ├── ili2dbutils.py
│   ├── ilicache.py
│   ├── iliexecutable.py
│   ├── iliexporter.py
│   ├── iliimporter.py
│   ├── iliupdater.py
│   └── ilivalidator.py
├── dataobjects
│   ├── __init__.py
│   ├── fields.py
│   ├── form.py
│   ├── layers.py
│   ├── legend.py
│   ├── project.py
│   └── relations.py
├── dbconnector
│   ├── __init__.py
│   ├── config.py
│   ├── db_connector.py
│   ├── gpkg_connector.py
│   ├── mssql_connector.py
│   └── pg_connector.py
├── db_factory
│   ├── __init__.py
│   ├── db_command_config_manager.py
│   ├── db_factory.py
│   ├── db_simple_factory.py
│   ├── gpkg_command_config_manager.py
│   ├── gpkg_factory.py
│   ├── gpkg_layer_uri.py
│   ├── layer_uri.py
│   ├── mssql_command_config_manager.py
│   ├── mssql_factory.py
│   ├── mssql_layer_uri.py
│   ├── pg_command_config_manager.py
│   ├── pg_factory.py
│   └── pg_layer_uri.py
├── generator
│   ├── __init__.py
│   ├── config.py
│   ├── domain_relations_generator.py
│   └── generator.py
├── ilitoppingmaker
│   ├── __init__.py
│   ├── ili2dbsettings.py
│   ├── ilidata.py
│   ├── iliprojecttopping.py
│   ├── ilitarget.py
│   ├── metaconfig.py
└── utils
    ├── __init__.py
    ├── db_utils.py
    ├── globals.py
    ├── qgis_utils.py
    └── qt_utils.py
```

### ili2db
In the current release we use ili2db version 4.10

## Infos for Devs

### Code style

Is enforced with pre-commit. To use, make:
```
pip install pre-commit
pre-commit install
```

And to run it over all the files (with infile changes):

```
pre-commit run --color=always --all-file
```

### Needed packages from PyPI

Needed packages from PyPI are downloaded and packaged on deployment to the plugin's libs folder.

Run the script to download and unpack them or install them to your system.

Script:
```
./scripts/package_pip_packages.sh
```
