- Transforms measurements from drillcores.
- Supports alpha, beta and gamma measurements.
- Supports .csv and .xlsx files.
- Supports adding the column names of your data files to a custom-built config.ini file for each user.
- TODO: Convention support
- Currently supported convention explanation found in Documentation and Help
- Documentation and Help: https://drillcore-transformations.readthedocs.io.
To run pytest in currently installed environment:
poetry run pytest
To run full extensive test suite:
poetry run doit
# Add -n <your-cpu-core-count> to execute tasks in parallel
# E.g.
poetry run doit -n 8 -v 0
# -v 0 is added to limit verbosity to mininum (optional)
# doit makes sure tasks are run in the correct order
# E.g. if a task uses a requirements.txt file that other task produces
# the producer is run first even with parallel execution
Formatting & linting:
poetry run doit pre_commit
poetry run doit lint
Docs can be built locally to test that ReadTheDocs
can also build
them:
poetry run doit docs
To list all available commands from dodo.py
:
poetry run doit list
Development dependencies for drillcore_transformations
include:
-
poetry
- Used to handle Python package dependencies.
# Use poetry run to execute poetry installed cli tools such as invoke, # nox and pytest. poetry run <cmd>
-
doit
- A general task executor that is a replacement for a
Makefile
- Understands task dependencies and can run tasks in parallel even while running them in the order determined from dependencies between tasks. E.g. requirements.txt is a requirement for running tests and therefore the task creating requirements.txt will always run before the test task.
# Tasks are defined in dodo.py # To list doit tasks from command line poetry run doit list # To run all tasks in parallel (recommended before pushing and/or # committing) # 8 is the number of cpu cores, change as wanted # -v 0 sets verbosity to very low. (Errors will always still be printed.) poetry run doit -n 8 -v 0
- A general task executor that is a replacement for a
-
nox
-
nox
is a replacement fortox
. Both are made to create reproducible Python environments for testing, making docs locally, etc.
# To list available nox sessions # Sessions are defined in noxfile.py poetry run nox --list
-
-
copier
-
copier
is a project templater. Many Python projects follow a similar framework for testing, creating documentations and overall placement of files and configuration.copier
allows creating a template project (e.g. https://github.com/nialov/nialov-py-template) which can be firstly cloned as the framework for your own package and secondly to pull updates from the template to your already started project.
# To pull copier update from github/nialov/nialov-py-template poetry run copier update
-
-
pytest
-
pytest
is a Python test runner. It is used to run defined tests to check that the package executes as expected. The defined tests in./tests
contain many regression tests (done withpytest-regressions
) that make it almost impossible to add features todrillcore_transformations
that changes the results of functions and methods.
# To run tests implemented in ./tests directory and as doctests # within project itself: poetry run pytest
-
-
coverage
# To check coverage of tests # (Implemented as nox session!) poetry run nox --session test_pip
-
sphinx
- Creates documentation from files in
./docs_src
.
# To create documentation # (Implemented as nox session!) poetry run nox --session docs
- Creates documentation from files in
Big thanks to all maintainers of the above packages!
- PhD Jussi Mattila for tips, code snippets and sample materials.
- Authors of Orientation uncertainty goes bananas for great article and complementary excel-file.
Copyright © 2020, Nikolas Ovaskainen.