All Projects → Spine-project → Spine-Toolbox

Spine-project / Spine-Toolbox

Licence: LGPL-3.0, GPL-3.0 licenses found Licenses found LGPL-3.0 COPYING.LESSER GPL-3.0 COPYING
Spine Toolbox is an open source Python package to manage data, scenarios and workflows for modelling and simulation. You can have your local workflow, but work as a team through version control and SQL databases.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Spine-Toolbox

FreeCAD Conda
conda recipes for freecad and dependencies of freecad
Stars: ✭ 35 (-20.45%)
Mutual labels:  anaconda, miniconda
kiva
Ground heat transfer calculation tool
Stars: ✭ 23 (-47.73%)
Mutual labels:  energy
iAI
🎯 保姆级深度学习从入门到放弃 🤪 🤪
Stars: ✭ 432 (+881.82%)
Mutual labels:  anaconda
HPC
A collection of various resources, examples, and executables for the general NREL HPC user community's benefit. Use the following website for accessing documentation.
Stars: ✭ 64 (+45.45%)
Mutual labels:  energy
ioBroker.tado
Tado cloud connector to control Tado devices
Stars: ✭ 25 (-43.18%)
Mutual labels:  energy
flexmeasures
The intelligent & developer-friendly EMS to support real-time energy flexibility apps, rapidly and scalable.
Stars: ✭ 79 (+79.55%)
Mutual labels:  energy
qgs
A 2-layer quasi-geostrophic atmospheric model in Python. Can be coupled to a simple land or shallow-water ocean component.
Stars: ✭ 24 (-45.45%)
Mutual labels:  anaconda
emhass
emhass: Energy Management for Home Assistant, is a Python module designed to optimize your home energy interfacing with Home Assistant.
Stars: ✭ 54 (+22.73%)
Mutual labels:  energy
neuralnilm prototype
No description or website provided.
Stars: ✭ 42 (-4.55%)
Mutual labels:  energy
ioBroker.sourceanalytix
Detailed analysis of your Energy, gas and liquid consumptions
Stars: ✭ 61 (+38.64%)
Mutual labels:  energy
antaresViz
ANTARES Visualizations
Stars: ✭ 19 (-56.82%)
Mutual labels:  energy
AMO-Tools-Suite
AMO-Tools-Suite is an energy efficiency calculation library in C++ with optional Nan Node add-on bindings for the Department of Energy Advanced Manufacturing Office (DOE AMO) Desktop, also known as MEASUR.
Stars: ✭ 16 (-63.64%)
Mutual labels:  energy
comparison groups
Repository for discussion of Comparison Group topics
Stars: ✭ 22 (-50%)
Mutual labels:  energy
Sound-and-music-reactive-ESP8266-WS2812B
Refined Version of @scottlawsonbc and all schematics + Tutorial 🎵🎵
Stars: ✭ 35 (-20.45%)
Mutual labels:  anaconda
Introduction-to-Python-Numerical-Analysis-for-Engineers-and-Scientist
Introduction to Python: Numerical Analysis for Engineers and Scientist. In 2017, Python became the world's most popular programming language. This course covers the basic syntax, linear algebra, plotting, and more to prepare students for solving numerical problems with Python.
Stars: ✭ 110 (+150%)
Mutual labels:  anaconda
deep bait
Running the most popular deep learning frameworks on Azure Batch AI
Stars: ✭ 22 (-50%)
Mutual labels:  anaconda
travis-ci-latex-pdf
Overview of different methods to build LaTeX with GitHub Actions or Travis-CI (idea by @jackolney but completely rewritten by @PHPirates and contributors).
Stars: ✭ 113 (+156.82%)
Mutual labels:  miniconda
learnergy
💡 Learnergy is a Python library for energy-based machine learning models.
Stars: ✭ 57 (+29.55%)
Mutual labels:  energy
pem-dataset1
Proton Exchange Membrane (PEM) Fuel Cell Dataset
Stars: ✭ 48 (+9.09%)
Mutual labels:  energy
tracebase
The tracebase appliance-level power consumption data set
Stars: ✭ 33 (-25%)
Mutual labels:  energy

Spine Toolbox

Link to the documentation: https://spine-toolbox.readthedocs.io/en/latest/?badge=latest

Python Documentation Status Test suite codecov PyPI version

Spine Toolbox is an open source Python package to manage data, scenarios and workflows for modelling and simulation. You can have your local workflow, but work as a team through version control and SQL databases.

Programming language

  • Python 3.7
  • Python 3.8

Python 3.8.0 is not supported (use Python 3.8.1 or later). Please note that Python 3.9 or 3.10 are not supported yet.

License

Spine Toolbox is released under the GNU Lesser General Public License (LGPL) license. All accompanying documentation, original graphics and other material are released under the Creative Commons BY-SA 4.0 license. Licenses of all packages used by Spine Toolbox are listed in the Spine Toolbox User Guide.

Attribution

If you use Spine Toolbox in a published work, please cite the following publication (Chicago/Turabian Style).

Kiviluoma Juha, Pallonetto Fabiano, Marin Manuel, Savolainen Pekka T., Soininen Antti, Vennström Per, Rinne Erkka, Huang Jiangyi, Kouveliotis-Lysikatos Iasonas, Ihlemann Maren, Delarue Erik, O’Dwyer Ciara, O’Donnel Terence, Amelin Mikael, Söder Lennart, and Dillon Joseph. 2022. "Spine Toolbox: A flexible open-source workflow management system with scenario and data management" SoftwareX, Vol. 17, 100967, https://doi.org/10.1016/j.softx.2021.100967.

Installation

We provide three options for installing Spine Toolbox: Python/pipx, Windows installation package (these are quite old - not recommended) and from source files.

Installation with Python and pipx

This works best for users that want to just use Spine Toolbox but also keep it updated with new releases.

  1. If you don't yet have Python 3.7 or 3.8, install the latest Python 3.8 release from Python.org.

  2. Open a terminal (e.g., Command Prompt on Windows).

  3. Get the latest version of pip (pip is a package manager for Python)

     python -m pip install --upgrade pip
    
  4. Install pipx (pipx allows to create an isolated environment for Spine Toolbox to avoid package conflicts with other Python tools)

     python -m pip install --user pipx
     python -m pipx ensurepath
    
  5. Restart the terminal or re-login for the changes of the latest command to take effect.

  6. Choose which Toolbox version to install. Latest release version is installed using

     python -m pipx install spinetoolbox
    

    or get the latest development version using

     python -m pipx install git+https://github.com/Spine-project/spinetoolbox-dev
    

That’s it! To launch Spine Toolbox, open a terminal and run

spinetoolbox

If for some reason the command is not found, the executable can be found under ~/.local/bin (%USERPROFILE%\.local\bin on Windows).

To update Spine Toolbox to the latest available release, open a terminal and run

python -m pipx upgrade spinetoolbox

Here, replace spinetoolbox with spinetoolbox-dev if you installed the latest development version.

Windows 64-bit installer package

There are old Windows installer packages available for a quick install, but they are at this point (7.5.2022) quite obsolete and cannot be recommended for anything but a quick look at how Spine Toolbox looks and feels (although even that has changed). Download the installer package from here, run it, and follow the instructions to install Spine Toolbox.

Installation from sources using Git

This option is for the developers and other contributors who want to debug or edit the Spine Toolbox source code. First, follow the instructions above to install Python and get the latest version of pip.

  1. Clone or download the source code from this repository.

  2. Browse to the folder and create a virtual environment using

     python -m venv .venv
    

    or a new conda environment using

     conda create -n spinetoolbox python=3.8
    
  3. Activate the environment using .venv\Scripts\activate.bat (Windows cmd.exe) or source .venv/bin/activate (bash, zsh) or conda activate spinetoolbox.

  4. Make sure that the terminal prompt indicates the active environment and get the latest version of pip (pip is a package manager for Python)

     python -m pip install --upgrade pip
    
  5. Install Spine Toolbox along with its dependencies with

     python -m pip install -r requirements.txt
    
  6. (Optional) Install additional development packages with

     python -m pip install -r dev-requirements.txt
    

You can now launch Spine Toolbox by calling spinetoolbox when the environment is active.

To upgrade, pull or copy the latest changes from the repository and run

python -m pip install -U -r requirements.txt

About requirements

Python 3.7 or Python 3.8.1 or later is required. Python 3.8.0 is not allowed due to problems in DLL loading on Windows.

See file setup.cfg and requirements.txt for packages required to run Spine Toolbox. (Additional packages needed for development are listed in dev-requirements.txt.)

The requirements include three packages (spinedb_api, spine_engine, and spine_items), developed by the Spine project consortium.

Building the User Guide

You can find the latest documentation on readthedocs. If you want to build the documentation yourself, source files for the User Guide can be found in docs/source directory. In order to build the HTML docs, you need to install the optional requirements (see section 'Installing requirements' above). This installs Sphinx (among other things), which is required in building the documentation. When Sphinx is installed, you can build the HTML pages from the user guide source files by using the bin/build_doc.bat script on Windows or the bin/build_doc.sh script on Linux and Mac. After running the script, the index page can be found in docs/build/html/index.html. The User Guide can also be opened from Spine Toolbox menu Help->User Guide (F2).

Troubleshooting

Installation fails

Please make sure you are using Python 3.7 or Python 3.8 to install the requirements.

Installation fails on Linux

If Python runs into errors while installing on Linux systems, running the following commands in a terminal may help:

$ sudo apt install libpq-dev
$ sudo apt-get install unixodbc-dev

Problems in starting the application

If there are problems in starting Spine Toolbox, the chances are that the required packages were not installed successfully. In case this happens, the first thing you should check is that you don't have Qt, PyQt4, PyQt5, PySide, and PySide2 packages installed in the same environment. These do not play nice together and may introduce conflicts. In addition, make sure that you do not have multiple versions of these Qt related packages installed in the same environment. The easiest way to solve this problem is to create a blank (e.g. virtual environment) Python environment just for PySide2 applications and installing the requirements again.

Warning: Using the conda-forge channel for installing the requirements is not recommended.

The required qtconsole package from the conda-forge channel also installs qt and PyQt packages. Since this is a PySide2 application, those are not needed and there is a chance of conflicts between the packages.

Note: Supported PySide2 version is 5.14. Spine Toolbox does not support PySide2 version 5.15 (yet).

Note: Python 3.8.0 is not supported. Use Python 3.8.1 or later.

Contribution Guide

All are welcome to contribute!

See detailed instructions for contribution in Spine Toolbox User Guide.

Below are the bare minimum things you need to know.

Setting up development environment

  1. Install the developer requirements:

     python -m pip install -r dev-requirements.txt
    
  2. Optionally, run pre-commit install in project's root directory. This sets up some git hooks.

Coding style

  • Black is used for Python code formatting. The project's GitHub page includes instructions on how to integrate Black in IDEs.
  • Google style docstrings

Linting

It is advisable to run pylint regularly on files that have been changed. The project root includes a configuration file for pylint. pylint's user guide includes instructions on how to integrate the tool in IDEs.

Unit tests

Unit tests are located in the tests directory. You can run the entire test suite from project root by

python -m unittest

Reporting bugs

If you think you have found a bug, please check the following before creating a new issue:

  1. Make sure you’re on the latest version.
  2. Try older versions.
  3. Try upgrading/downgrading the dependencies
  4. Search the project’s bug/issue tracker to make sure it’s not a known issue.

What to put in your bug report:

  1. Python version. What version of the Python interpreter are you using? 32-bit or 64-bit?
  2. OS. What operating system are you on?
  3. Application Version. Which version or versions of the software are you using? If you have forked the project from Git, which branch and which commit? Otherwise, supply the application version number (Help->About menu).
  4. How to recreate. How can the developers recreate the bug? A screenshot demonstrating the bug is usually the most helpful thing you can report. Relevant output from the Event Log and debug messages from the console of your run, should also be included.

Feature requests

The developers of Spine Toolbox are happy to hear new ideas for features or improvements to existing functionality. The format for requesting new features is free. Just fill out the required fields on the issue tracker and give a description of the new feature. A picture accompanying the description is a good way to get your idea into development faster. But before you make a new issue, please check that there isn't a related idea already open in the issue tracker.

 


EU emblem This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 774629.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].