Installation#
FURY supports Python 3.5+. You can currently still use Python 2.7 but it will soon stop being supported as the Python 2.7 end of life is on December 31st 2019.
Dependencies#
The mandatory dependencies are:
numpy >= 1.7.1
vtk >= 8.1.0
scipy >= 0.9
aiohttp
pygltflib
The optional dependencies are:
matplotlib >= 2.0.0
dipy >= 0.16.0
Installation with PyPi#
In a terminal, issue the following command
pip install fury
Installation with Conda#
Our conda package is on the Conda-Forge channel. You will need to run the following command
conda install -c conda-forge fury
Installation via Source#
Step 1. Get the latest source by cloning this repo
git clone https://github.com/fury-gl/fury.git
Step 2. Install requirements
pip install -r requirements/default.txt
Step 3. Install fury via
pip install .
or
pip install -e .
Step 4: Enjoy!
Test the Installation#
You can check your installation via this command
python -c "from fury import get_info; print(get_info())"
This command will give you important information about FURY’s installation. The next step will be to run a tutorial.
Running the Tests#
Let’s install all required packages for the running the test
pip install -r requirements/default.txt
pip install -r requirements/test.txt
There are two ways to run FURY tests:
From the command line. You need to be on the FURY package folder
pytest -svv fury
To run a specific test file
pytest -svv fury/tests/test_actor.py
To run a specific test directory
pytest -svv fury/tests
To run a specific test function
pytest -svv -k "test_my_function_name"
Running the Tests Offscreen#
FURY is based on VTK which uses OpenGL for all its rendering. For a headless rendering, we recommend to install and use Xvfb software on linux or OSX. Since Xvfb will require an X server (we also recommend to install XQuartz package on OSX). After Xvfb is installed you have 2 options to run FURY tests:
First option
export DISPLAY=:0
Xvfb :0 -screen 1920x1080x24 > /dev/null 2>1 &
pytest -svv fury
Second option
export DISPLAY=:0
xvfb-run --server-args="-screen 0 1920x1080x24" pytest -svv fury
Coding style#
FURY uses the standard Python PEP8
style to ensure the readability and consistency across the toolkit. FURY has
adopted an automated style checking framework that uses pre-commit
and ruff. Style conformance rules are
specified in the ruff.toml
configuration file. When requesting to push to
FURY, the compliance to the set of rules is automatically checked using a
GitHub Actions workflow.
In order to check the compliance locally, developers should install the
[style]
dependencies:
pip install -e .[style]
The git hook scripts need to be installed then running:
pre-commit install
pre-commit
will then run automatically on git commit
.
Most text editors can be configured to check the compliance of your code with
the set of rules specified in the ruff.toml
file.
Populating our Documentation#
Folder Structure#
Let’s start by showcasing the docs
folder structure:
In our docs
folder structure above:
source
is the folder that contains all*.rst
files.examples
is the directory where we have all python scripts that describe how to use the library.experimental
directory contains experimental Python scripts. The goal is to keep a trace of experimental work.
Building the documentation#
Step 1. Install all required packages for the documentation generation
pip install -U -r requirements/default.txt
pip install -U -r requirements/optional.txt
pip install -U -r requirements/docs.txt
Step 2. Go to the docs
folder and run the following command to generate it (Linux and macOS)
make -C . clean && make -C . html
To generate the documentation without running the examples
make -C . clean && make -C . html-no-examples
or under Windows
make clean
make html
To generate the documentation without running the examples under Windows
make clean
make html-no-examples
Step 3. Congratulations! the build
folder has been generated! Go to build/html
and open with browser index.html
to see your generated documentation.