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:
sourceis the folder that contains all*.rstfiles.examplesis the directory where we have all python scripts that describe how to use the library.experimentaldirectory 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.