Metadata-Version: 2.1
Name: GeoProfile
Version: 0.1.0
Summary: A Python library for visualizing geotechnical profiles.
Project-URL: repository, https://github.com/cemsbv/GeoProfile
Keywords: visualizing
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: plotly <=6,>=5
Requires-Dist: Shapely <=1.9,>=1.8.0
Requires-Dist: python-tsp <=0.5,>=0.4
Requires-Dist: scikit-spatial <=8,>=7
Requires-Dist: scipy <=2,>=1.10
Requires-Dist: tqdm <=5,>=4.50
Provides-Extra: docs
Requires-Dist: ipython ==7.30.1 ; extra == 'docs'
Requires-Dist: Sphinx ==6.1.3 ; extra == 'docs'
Requires-Dist: sphinx-autodoc-typehints ==1.22.0 ; extra == 'docs'
Requires-Dist: asteroid-sphinx-theme ==0.0.3 ; extra == 'docs'
Requires-Dist: sphinx-rtd-theme ==1.2.0 ; extra == 'docs'
Requires-Dist: m2r2 ==0.3.2 ; extra == 'docs'
Provides-Extra: gef
Requires-Dist: pygef >=0.8 ; extra == 'gef'
Provides-Extra: lint
Requires-Dist: black ; extra == 'lint'
Requires-Dist: isort ; extra == 'lint'
Provides-Extra: map
Requires-Dist: geopandas <0.20,>=0.9.0 ; extra == 'map'
Requires-Dist: contextily <2,>=1.1.0 ; extra == 'map'
Requires-Dist: matplotlib <4,>=3.3.3 ; extra == 'map'
Provides-Extra: test
Requires-Dist: coveralls ; extra == 'test'
Requires-Dist: pytest ; extra == 'test'

# GeoProfile

[![Checked with mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/)

Explore the depths of the Earth with GeoProfile, a comprehensive package designed for geotechnical professionals and
researchers. This versatile toolkit is your go-to resource for analyzing and visualizing geotechnical profiles, offering
a seamless experience in understanding the complex stratigraphy of the subsurface.

Whether you are involved in civil engineering, environmental science, or geotechnical exploration, GeoProfile is your
indispensable companion for unraveling the mysteries beneath the surface. Elevate your geotechnical analysis and make
informed decisions with GeoProfile – where geology meets technology.

# Installation

To install this package, including the `map` and `gef` reading functionality, run:

```bash
pip install geoprofile[map, gef]
```

To skip the installation of the `GeoProfile` library, in case you do not need it (e.g. only use pure plotting), run:

```bash
pip install geoprofile
```

# Contribution

## Environment

We recommend developing in Python3.9 with a clean virtual environment (using `virtualenv` or `conda`), installing the
requirements from the requirements.txt file:

Example using `virtualenv` and `pip` to install the dependencies in a new environment .env on Linux:

```bash
python -m venv .env
source activate .env/bin/activate
python -m pip install --upgrade pip setuptools
pip install -r requirements.txt
pip install -e .
```

## Documentation

Build the docs:

```bash
python -m pip install --upgrade pip setuptools
pip install -r requirements.txt
pip install .
sphinx-build -b html docs public
```

Note: You'll need to set the `NUCLEI_TOKEN` environmental variable.
You can get your token at: `https://cemsbv.crux-nuclei.com`

## Format

We format our code with black and isort.

```bash
black --config "pyproject.toml" src/geoprofile tests notebook docs
isort --settings-path "pyproject.toml" src/geoprofile tests notebook docs
```

## Lint

To maintain code quality we use the GitHub super-linter.

To run the linters locally, run the `run_super_linters.sh` bash script from the root directory.

## UnitTest

Test the software with the use of coverage:

```bash
python -m pip install --upgrade pip setuptools
pip install -r requirements.txt
pip install .
coverage run -m pytest
```

## Requirements

Requirements are autogenerated by `pip-compile` with python 3.9

```bash
pip-compile --extra=test --extra=docs --extra=lint --extra=map --extra=gef --output-file=requirements.txt pyproject.toml
```

To update the requirements within the defined ranges, run:

```bash
pip-compile --upgrade --extra=test --extra=docs --extra=lint --extra=map --extra=gef --output-file=requirements.txt pyproject.toml
```
