# Model Repository

This repository contains the code pertaining to the development
of the data science and machine learning products being utilised by
Hestia.

The different folders in this repository relate to services
that can be used independently, or can be imported and used as
part of a larger application

# Getting Started

## Prerequisites

- [Docker Desktop](https://www.docker.com/products/docker-desktop/)
- [VS Code](https://code.visualstudio.com/) with the [Dev Containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)

## Dev Container Setup

This repo uses a Docker Compose-based dev container. The `model-backend` service joins a `shared-dev` Docker network so it can communicate with other local services (e.g. a frontend container) running on your machine.

**VS Code users:** The `initializeCommand` in `devcontainer.json` creates the `shared-dev` network automatically before the container starts. No manual step required — just open the repo and select **Reopen in Container**.

**Non-VS Code / CI workflows:** Run the following once before starting the container:

```commandline
make dev-setup
```

This is idempotent and safe to re-run if the network already exists.

# Folders

### backend/

This folder contains the code for the fastapi backend service, which provides an interface to
much of the functionality in this repository, for the frontend

### model_data/

This folder contains related to the reading and preparation of
assessment model data, including pulling out epc attributes

# Testing

All tests can be run, against the configuration in pytest.ini running

```commandline
pytest
```

This will run the complete panel of tests and report on coverage in the locations specified
by the pytest.ini file.

To run tests in a specific service, e.g. inside of model_data, simply run

```commandline
pytest --cov-config=model_data/.coveragerc --cov=model_data
```

This will produce the test results and coverage reports


