Metadata-Version: 2.1
Name: ThermalNetwork
Version: 0.2.3rc1
Summary: A thermal network solver for GHE sizing.
Author-email: Matt Mitchell <mitchute@gmail.com>, Nathan Moore <nathan.moore@nrel.gov>
Project-URL: Homepage, https://github.com/NREL/ThermalNetwork
Project-URL: Bug Tracker, https://github.com/NREL/ThermalNetwork/issues
Classifier: Development Status :: 4 - Beta
Classifier: Topic :: Scientific/Engineering
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: ~=3.9
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: click~=8.1
Requires-Dist: ghedesigner~=1.3
Requires-Dist: pandas~=2.1
Requires-Dist: rich~=13.6
Provides-Extra: dev
Requires-Dist: pytest>=6.0; extra == "dev"
Requires-Dist: pytest-cov~=4.1; extra == "dev"
Requires-Dist: pre-commit~=3.5; extra == "dev"
Requires-Dist: ruff~=0.1; extra == "dev"
Requires-Dist: jupyterlab~=4.0; extra == "dev"

# ThermalNetwork

A library for sizing multiple ground heat exchangers distributed around a single-pipe thermal network.

# Installation

`pip install ThermalNetwork`

# Usage

This package has a command-line interface, intended to be used via URBANopt. To access the CLI directly, after installing call `thermalnetwork --help` for all the commands.

# Developer installation

- Clone the repository: `git clone https://github.com/NREL/ThermalNetwork.git`
- Change directories into the repository: `cd ThermalNetwork`
- As general guidance, we recommend using virtual environments to avoid dependencies colliding between your Python projects. [venv](https://docs.python.org/3/library/venv.html) is the Python native solution that will work everywhere, though other options may be more user-friendly.
    - Some popular alternatives are:
        - [pyenv](https://github.com/pyenv/pyenv) and [the virtualenv plugin](https://github.com/pyenv/pyenv-virtualenv) work together nicely for Linux/Mac machines
        - [virtualenv](https://virtualenv.pypa.io/en/latest/)
        - [miniconda](https://docs.conda.io/projects/miniconda/en/latest/)
    - Activate pre-commit (only once, after making a new venv): `pre-commit install`
    - Runs automatically on your staged changes before every commit
- Update pip and setuptools: `pip install -U pip setuptools`
- Install the respository with developer dependencies: `pip install -e .[dev]`
- To check the whole repo, run `pre-commit run --all-files`
    - Settings and documentation links for pre-commit and ruff are in .pre-commit-config.yaml and pyproject.toml

# Testing

Once you are set up as a developer, run `pytest` from the root dir. Increase verbosity with `-v` and `-vv`.

Test files are in _thermalnetwork/tests/_

Test output will be written to _thermalnetwork/tests/test_output/_

# Releasing

Increment the version in thermalnetwork/_\_init__.py. Use [semantic versioning](https://semver.org/).
When a new release is made in GitHub, a [workflow](https://github.com/marketplace/actions/pypi-publish) automatically releases to PyPI.
