Lagrangian particle-tracking for fluvial environments.
Project description
Fluvial Particle
Features
- TODO
Requirements
per Cliff Hills setup description: https://code.usgs.gov/wma/nhgf/pygeoapi-plugin-cookiecutter
To set up your development environment do the following.
- fork the reposistory
# to remind yourself your working on a fork
git clone git@code.usgs.gov:<user_id>/fluvparticle.git fluvial-partile-fork
Setup Development Environment
conda env create -f environment.yml
conda develop -n {{cookiecutter.project_name}} src
conda activate {{cookiecutter.project_name}}
pip install -r requirements.dev
It is important to get preccommit enabled on the project, to ensure that certain standards are always met on a git commit. With several of these, it might fail if files are changed, but it will change them, and trying the commit a second time will actually work.
Git hook configuration
pre-commit install --install-hooks
Testing
Nox is used for testing everything, with several sessions built-in. To run the full suite of tests, simply use:
nox
The different sessions are:
pre-commit
-- validates that the preccommit checks all come back clean.safety
-- validates the Safety of all production dependencies.mypy
-- validates the type-hints for the application using mypy.tests
-- runs all pytest tests.typeguard
-- runs all pytest tests, validates with Typeguard.xdoctest
-- runs any and all documentation examples with xdoctest.docs-build
-- builds the full set of generated API docs with Sphinx.
These can be run individually with the following command:
nox -s <session>
Replace <session>
with the name of the session give above, i.e.:
nox -s mypy
You can also simply run pytest tests, by using the command:
pytest tests
Dependencies
Production dependencies are duplicated, in both requirements.txt
and
environment.yml
due to how conda does not
work with the requirements.txt
file. It is necessary for both files to
be updated as dependencies are added.
Development dependencies are contained in requirements.dev
.
Version Management
The projects made by this cookiecutter use
Bump2version for version
management. The default version that the project starts with is a
developmental version, 0.0.1-dev0
. In github, this should be
auto-incremented on each commit to the next dev build number. To manage
the version changes yourself, you can use the
Bump2version command:
bump2version <part>
Where <part>
is one of:
major
minor
patch
build
Note:
: This makes a dev
version, which does not write a tag into git. It is just useful for development purposes and not the version that is recommended for a release version. The version string will be formatted as: <major>.<minor>.<patch>-dev<build>
To do a production release, use the command:
bump2version --tag release
This will add a tag in the git repository noting the version.
Note:
: The version string for this will be: <major>.<minor>.<patch>
Utilities
- Packaging and dependency management with conda
- Test automation with Nox
- Linting with preccommit and Flake8
- Continuous integration with GitHub Actions or Travis-CI
- Documentation with Sphinx and Read the Docs
- Automated uploads to PyPI and TestPyPI
- Automated release notes with Release Drafter
- Automated dependency updates with Dependabot
- Code formatting with Black and Prettier
- Testing with pytest
- Code coverage with Coverageppy
- Coverage reporting with Codecov
- Command-line interface with Click
- Static type-checking with mypy
- Runtime type-checking with Typeguard
- Security audit with Bandit and Safety
- Check documentation examples with xdoctest
- Generate API documentation with autodoc and napoleon
- Generate command-line reference with sphinxcclick
- Manage project labels with GitHub Labeler
- Manage project versions with Bump2version
- Automatic loading/unloading of conda environment with direnv
Installation
You can install Fluvial_Particle via pip from PyPI_
:
$ pip install fluvial-particle
Usage
TODO
Contributing
Contributions are very welcome.
To learn more, see the Contributor Guide_
.
License
Distributed under the terms of the CCO 1.0 license_
, Fluvial Particle is free and open source software.
Issues
If you encounter any problems,
please file an issue_
along with a detailed description.
Credits
This project was generated from @hillc-usgs_
's Pygeoapi Plugin Cookiecutter_
template.
.._@hillc-usgs: https://github.com/hillc-usgs .._Cookiecutter: https://github.com/audreyr/cookiecutter .._CCO 1.0 license: https://creativecommons.org/publicdomain/zero/1.0/legalcode .._PyPI: https://pypi.org/ .._Pygeoapi Plugin Cookiecutter: https://code.usgs.gov/wma/nhgf/pygeoapi-plugin-cookiecutter .._file an issue: https://github.com/rmcd-mscb/fluvial-particle/issues .._pip: https://pip.pypa.io/ .. github-only .._Contributor Guide: CONTRIBUTING.rst .._Usage: https://fluvial-particle.readthedocs.io/en/latest/usage.html
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for fluvial-particle-0.0.3.dev0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f09fc8cc416bcc26c9f825f1e4733a8ead6c28d505162a4740cc42107ea810f |
|
MD5 | e13b42bb5a3f49bce092b85151e434d8 |
|
BLAKE2b-256 | b468b527a62262c12ddc76420536c5b3772b64b1b08666544b219f2c634f7d20 |
Hashes for fluvial_particle-0.0.3.dev0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b8d9e4e8739f3daaee7fe8cf63fb3160461811e278ca2737609e68e34b73b09 |
|
MD5 | 797c6dda0a46d1d3685e01d27ac6789d |
|
BLAKE2b-256 | 421be9c84b14cd3c6b0a74d982e85be92a340816a06b851967029d6dd7d80b64 |