Metadata-Version: 2.4
Name: dtocean-app
Version: 4.0.1
Summary: Main graphical application for the DTOcean tools
License-File: LICENSE.txt
Author: The DTOcean Developers
Maintainer: Mathew Topper
Maintainer-email: damm_horse@yahoo.co.uk
Requires-Python: >=3.12,<3.15
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: dtocean-core (>=4.0.0,<5.0.0)
Requires-Dist: dtocean-qt (>=4.0.0,<5.0.0)
Requires-Dist: matplotlib (>=3.10.8,<4.0.0)
Requires-Dist: mdo-engine (>=3.0.0,<4.0.0)
Requires-Dist: numpy (>=2.3.5,<3.0.0)
Requires-Dist: pandas (>=3.0.1,<4.0.0)
Requires-Dist: pillow (>=12.1.1,<13.0.0)
Requires-Dist: polite-config (>=3.0.0,<4.0.0)
Requires-Dist: pyshortcuts (>=1.9.7,<2.0.0)
Requires-Dist: pyside6 (>=6.9.0,<7.0.0)
Requires-Dist: pywin32 (>=308) ; sys_platform == "win32"
Requires-Dist: shiboken6 (>=6.9.0,<7.0.0)
Project-URL: Bug Tracker, https://github.com/DTOcean/dtocean/issues
Project-URL: Homepage, https://dtocean.github.io/dtocean
Project-URL: Repository, https://github.com/DTOcean/dtocean
Description-Content-Type: text/markdown

[![dtocean-app actions](https://github.com/DTOcean/dtocean/actions/workflows/test-dtocean-app.yml/badge.svg?branch=main)](https://github.com/DTOcean/dtocean/actions/workflows/test-dtocean-app.yml)
[![codecov](https://img.shields.io/codecov/c/gh/DTOcean/dtocean?token=Y3GR22fUJ8&flag=dtocean-app)](https://app.codecov.io/gh/DTOcean/dtocean?flags%5B0%5D=dtocean-app)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/dtocean-app)

# dtocean-app

This repository contains the main graphical application of the DTOcean software
tools. The code contained in this package is a
[Qt](https://en.wikipedia.org/wiki/Qt_(software)) GUI view of the underlying
model, provided by the [dtocean-core] package.

Part of the [DTOcean](https://github.com/DTOcean/dtocean) suite of tools.

## Installation

```sh
pip install dtocean-app
```

Install a desktop shortcut to the UI with the following command:

```sh
dtocean init
```

Note that Design and assessment modules must be installed separately.

## Usage

### Graphical Interface

If `dtocean init` was called a shortcut named "DTOcean" should be available
in the desktop start menu

Alternatively, the UI can be started from a command line terminal:

```sh
dtocean app
```

To send all output to the cmd window (useful when crashes occur before logging
is started) use "debug mode":

```sh
dtocean app --debug
```

See the "Getting Started 1: Example Project" chapter of the [DTOcean
documentation](https://dtocean.github.io/dtocean) for an example project.

### Command Line Tools

A utility is provided to copy user modifiable configuration files to the users
"AppData" directory (on Windows). For instance the logging configuration can be
modified once these files have been copied. To get help:

```sh
dtocean app config -h
```

## Development

Development of dtocean-app uses the [Poetry](https://python-poetry.org/)
dependency manager. Poetry must be installed and available on the command line.

If installing from the git repository, the image files must first be
retrieved using git-lfs (ensure that [git-lfs](https://git-lfs.com/) is installed
first):

```sh
git lfs fetch --all
git lfs pull
```

To install:

```sh
poetry install
```

### Tests

A test suite is provided with the source code that uses
[pytest](https://docs.pytest.org). To install the testing dependencies:

```sh
poetry install --with test
```

Alternatively to include additional modules which enable the full suite of tests,
use the command:

```sh
poetry install --with test --with test-extras
```

Run the tests:

```sh
poetry run pytest
```

Code quality can also be audited using the [ruff](https://docs.astral.sh/ruff/)
and [pyright](https://github.com/microsoft/pyright) tools. Install the
dependencies:

```sh
poetry install --with audit
```

Run the audit:

```sh
poetry run ruff
poetry run pyright src
```

The above tests can be run across all compatible Python versions using
[tox](https://tox.wiki/) and [tox-uv](https://github.com/tox-dev/tox-uv). To
install and run:

```sh
poetry install --with tox
poetry run tox
```

## Contributing

Please see the [dtocean](https://github.com/DTOcean/dtocean) GitHub repository
for contributing guidelines.

## Credits

This package was initially created as part of the [EU DTOcean
project](https://www.dtoceanplus.eu/About-DTOceanPlus/History) by:

- Mathew Topper at [TECNALIA](https://www.tecnalia.com)
- Vincenzo Nava at [TECNALIA](https://www.tecnalia.com)
- Rui Duarte at [France Energies Marines](https://www.france-energies-marines.org/)

It is now maintained by Mathew Topper at [Data Only
Greater](https://www.dataonlygreater.com/).

## Licenses

### Software

[GPL-3.0](https://choosealicense.com/licenses/gpl-3.0/)

### Icons

The icons used with the graphical interface are source directly or derived from
the following open source icon sets:

- Crystal Clear ([LPGL-2.1](https://choosealicense.com/licenses/lgpl-2.1/))
- GNOME ([GPL-2.0](https://choosealicense.com/licenses/gpl-2.0/))
- ScreenRuler Tango ([GPL-3.0](https://choosealicense.com/licenses/gpl-3.0/))

[dtocean-core]: https://pypi.org/project/dtocean-core/

