A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

Grid Singularity Energy Exchange

An interface to download and deploy interconnected, grid-aware energy marketplaces.
https://github.com/gridsingularity/gsy-e

Category: Energy Systems
Sub Category: Energy Markets

Last synced: about 19 hours ago
JSON representation

Repository metadata

Grid Singularity Energy Exchange

README.rst

          ====================================
Grid Singularity Energy Exchange
====================================

.. image:: https://codecov.io/gh/gridsingularity/gsy-e/branch/master/graph/badge.svg?token=XTWK3DAKUA
   :target: https://codecov.io/gh/gridsingularity/gsy-e

The Grid Singularity Energy Exchange Engine is developed by `Grid Singularity `__ as an interface (`Singularity Map `__) and open source codebase (see `Licensing `__ to model, simulate, optimize and (coming soon) download and deploy interconnected, grid-aware energy marketplaces.
Grid Singularity has been proclaimed the `World Tech Pioneer by the World Economic Forum `__ and is also known as a co-founder of the `Energy Web Foundation `__ that gathers leading energy corporations globally co-developing a shared blockchain-based platform.

Code of Conduct
===============
Please refer to: https://github.com/gridsingularity/gsy-e/blob/master/CODE_OF_CONDUCT.md

How to contribute:
==================
Please refer to: https://github.com/gridsingularity/gsy-e/blob/master/CONTRIBUTING.md


Basic setup
===========

(For instructions using `Docker`_ see below)

After cloning this project setup a Python 3.8 virtualenv and install `fabric3`_::

    ~# pip install fabric3
    
Without using virtualenv (e.g. using conda envs) you can just install gsy-e using

    ~# pip install -e .

The Simulation
==============

Running the simulation
----------------------

After installation the simulation can be run with the following command::

    ~# gsy-e run

There are various options available to control the simulation run.
Help on there is available via::

    ~# gsy-e run --help


Controlling the simulation
--------------------------

While running a simulation, the following keyboard commands are available:

=== =======
Key Command
=== =======
i   Show information about simulation
p   Pause simulation
q   Quit simulation
r   Reset and restart simulation
R   Start a Python REPL at the current simulation step
s   Save current state of simulation to file (see below for resuming)
=== =======

Development
===========

Updating requirements
---------------------

We use `pip-tools`_ managed by `fabric3`_ to handle requirements.
To update the pinned requirements use the following command::

    ~# fab compile



There is also a command to compile and sync in one step::

    ~# fab reqs


_`pip-tools`: https://github.com/nvie/pip-tools
_`fabric3`: https://pypi.python.org/pypi/Fabric3


Testing
-------

We use `py.test`_ managed by `tox`_ to run the (unit) tests.
To run the test suite simply run the following command::

    ~# tox


_`py.test`: https://pytest.org
_`tox`: https://tox.testrun.org


Docker
------

The repository contains a `docker`_ Dockerfile. To build an image use the
following command (change into repository folder first)::

    ~# docker build -t gsy-e .


After building is complete you can run the image with::

    ~# docker run --rm -it gsy-e


Command line parameters can be given normally after the image name::

    ~# docker run --rm gsy-e --help
    ~# docker run --rm gsy-e run --help
    ~# docker run --rm gsy-e run --setup default_2a -t15s


There is also a handy script that deals with the building of the image and running the provided command::

    ~# ./run_gsy_e_on_docker.sh "$docker_command" $export_path


where you can provide the gsy_e_command and export path where the simulation results are stored.
For example::

    ~# ./run_gsy_e_on_docker.sh "gsy-e -l ERROR run --setup default_2a -t 15s" $HOME/gsy_e-simulation


builds a gsy-e docker image (if not already present),
runs the simulation with setup-file default_2a, tick-length 15s
and stores the simulation output data into $HOME/gsy_e-simulation.
If no export_path is provided, simulation results will be stored in $HOME/gsy_e-simulation.


_`docker`: https://docker.io


Detailed Documentation
======================
Please refer to: https://gridsingularity.github.io/gsy-e/documentation/

        

Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 7 days ago

Total Commits: 6,010
Total Committers: 38
Avg Commits per committer: 158.158
Development Distribution Score (DDS): 0.736

Commits in past year: 221
Committers in past year: 3
Avg Commits per committer in past year: 73.667
Development Distribution Score (DDS) in past year: 0.511

Name Email Commits
Spyros Tzavikas s****s@g****m 1585
Hannes Diedrich h****s@g****m 1413
faizan2590 f****0@g****m 1004
Hassan Hammoud h****4@g****m 373
Pierpaolo Pantone 2****o@g****m 337
Ulrich Petri u****o@u****e 253
Oliver Bünting o****r@b****m 184
Jochen Müller m****l@j****e 149
Amirhossein Saemi a****n@g****m 125
christopher c****2@g****m 92
ERafaelMartinez e****l@g****m 86
Lana s****a@g****m 69
candrews42 a****j@g****m 53
sarahhambridge s****h@g****m 48
agatsoh s****e@g****m 43
BigTava b****v@g****m 32
Prakash Jha p****a@e****m 32
[email protected] m****a@g****m 24
kamil k****o@g****m 20
psurender s****r@g****m 18
Benjamin Smith b****h@e****m 14
andreabertolini1995 a****5@g****m 11
LuisGSY l****s@g****m 11
dirkbig d****r@g****m 7
faizan2590 m****n@M****l 6
Christian Fleschhut w****r@g****m 3
Fabricio c****i@g****m 3
Maheen12 6****2 2
FeliceRocchitelli f****e@o****l 2
georgeballes 6****s 2
and 8 more...

Committer domains:


Issue and Pull Request metadata

Last synced: 2 days ago

Total issues: 23
Total pull requests: 1,846
Average time to close issues: 6 months
Average time to close pull requests: 8 days
Total issue authors: 6
Total pull request authors: 35
Average comments per issue: 1.43
Average comments per pull request: 0.59
Merged pull request: 1,646
Bot issues: 0
Bot pull requests: 38

Past year issues: 0
Past year pull requests: 113
Past year average time to close issues: N/A
Past year average time to close pull requests: 6 days
Past year issue authors: 0
Past year pull request authors: 4
Past year average comments per issue: 0
Past year average comments per pull request: 0.81
Past year merged pull request: 97
Past year bot issues: 0
Past year bot pull requests: 6

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/gridsingularity/gsy-e

Top Issue Authors

  • ulope (10)
  • agatsoh (6)
  • eorituz (4)
  • maurerle (1)
  • spyrostz (1)
  • heikoheiko (1)

Top Pull Request Authors

  • spyrostz (595)
  • hannesdiedrich (510)
  • faizan2590 (291)
  • Hassan754 (92)
  • fievelk (59)
  • chrisd12 (48)
  • dependabot[bot] (38)
  • mrsaemir (28)
  • eorituz (19)
  • lana-shanghai (18)
  • sarahhambridge (15)
  • ERafaelMartinez (15)
  • candrews42 (14)
  • jomuel (14)
  • LuisGSY (11)

Top Issue Labels

  • bug (1)

Top Pull Request Labels

  • dependencies (38)
  • javascript (24)
  • python (5)

Dependencies

.github/workflows/gsy-e_ci.yaml actions
  • 8BitJonny/gh-get-current-pr 1.3.0 composite
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • codecov/codecov-action v1 composite
.github/workflows/gsy-e_ci_cd_development.yaml actions
  • actions/checkout v2 composite
  • voxmedia/github-action-slack-notify-build v1 composite
Dockerfile docker
  • python 3.8 build
tools/docker-compose.yml docker
  • confluentinc/cp-kafka 7.0.0
  • confluentinc/cp-zookeeper latest
  • hlebalbau/kafka-manager stable
wiki/mkdocs-material/Dockerfile docker
  • python 3.6.8-alpine3.9 build
wiki/mkdocs-material/package-lock.json npm
  • 1191 dependencies
wiki/mkdocs-material/package.json npm
  • @babel/cli ^7.2.3 development
  • @babel/core ^7.3.4 development
  • @babel/plugin-transform-react-jsx ^7.3.0 development
  • @babel/preset-env ^7.3.4 development
  • autoprefixer ^9.5.0 development
  • babel-eslint ^10.0.0 development
  • babel-loader ^8.0.5 development
  • babel-plugin-add-module-exports ^1.0.0 development
  • chalk ^2.4.2 development
  • clipboard ^2.0.0 development
  • copy-webpack-plugin ^5.0.1 development
  • css-loader ^2.1.1 development
  • css-mqpacker ^7.0.0 development
  • cssmin ^0.4.3 development
  • custom-event-polyfill ^1.0.6 development
  • customizr ^1.2.1 development
  • escape-string-regexp ^1.0.5 development
  • eslint ^5.15.1 development
  • event-hooks-webpack-plugin ^2.1.1 development
  • expose-loader ^0.7.4 development
  • extract-loader ^3.1.0 development
  • file-loader ^3.0.1 development
  • html-minifier ^3.5.6 development
  • imagemin-webpack-plugin ^2.4.2 development
  • js-cookie ^2.1.4 development
  • lunr ^2.3.6 development
  • lunr-languages ^1.1.0 development
  • material-design-color ^2.3.2 development
  • material-shadows ^3.0.1 development
  • mini-css-extract-plugin ^0.5.0 development
  • modernizr-auto-loader ^0.1.0 development
  • modularscale-sass ^3.0.3 development
  • node-sass ^4.11.0 development
  • optimize-css-assets-webpack-plugin ^5.0.1 development
  • postcss-loader ^3.0.0 development
  • promise-polyfill ^8.0.0 development
  • sass-loader ^7.1.0 development
  • style-loader ^0.23.0 development
  • stylelint ^9.10.1 development
  • stylelint-config-standard ^18.0.0 development
  • stylelint-order ^2.1.0 development
  • stylelint-scss ^3.5.4 development
  • uglifyjs-3-webpack-plugin ^1.2.4 development
  • unfetch ^3.0.0 development
  • webpack ^4.29.6 development
  • webpack-cli ^3.2.3 development
  • webpack-manifest-plugin ^2.0.4 development
wiki/package-lock.json npm
  • 136 dependencies
wiki/package.json npm
  • husky ^1.3.1 development
  • markdown-spellcheck ^1.3.1
requirements/base.in pypi
  • attrs *
  • awesome-slugify *
  • cached_property *
  • click *
  • click-default-group *
  • colorlog ==4.7.2
  • numpy ==1.20.3
  • pendulum ==2.1.2
  • plotly *
  • pony *
  • python-rex *
  • pytz *
  • redis *
  • rq *
  • sortedcontainers *
requirements/base.txt pypi
  • attrs ==21.2.0
  • awesome-slugify ==1.6.5
  • backports.entry-points-selectable ==1.1.0
  • cached-property ==1.5.2
  • certifi ==2021.10.8
  • cfgv ==3.3.1
  • chardet ==4.0.0
  • click ==8.1.3
  • click-default-group ==1.2.2
  • colorlog ==4.7.2
  • decorator ==5.1.1
  • distlib ==0.3.3
  • et-xmlfile ==1.1.0
  • filelock ==3.3.2
  • flake8 ==4.0.1
  • flake8-tuple ==0.4.1
  • geocoder ==1.17.5
  • identify ==2.3.3
  • idna ==2.10
  • jsonschema ==4.1.2
  • kafka-python ==2.0.2
  • mccabe ==0.6.1
  • nodeenv ==1.6.0
  • numpy ==1.20.3
  • openpyxl ==3.0.10
  • packaging ==21.2
  • pendulum ==2.1.2
  • platformdirs ==2.4.0
  • plotly ==5.3.1
  • pluggy ==1.0.0
  • pony ==0.7.14
  • pre-commit ==2.15.0
  • py ==1.10.0
  • pycodestyle ==2.8.0
  • pyflakes ==2.4.0
  • pyparsing ==2.4.7
  • pyrsistent ==0.18.0
  • python-dateutil ==2.8.2
  • python-rex ==0.4
  • pytz ==2021.3
  • pytzdata ==2020.1
  • pyyaml ==6.0
  • ratelim ==0.1.6
  • redis ==3.5.3
  • regex ==2021.10.23
  • requests ==2.25.1
  • rq ==1.10.0
  • six ==1.16.0
  • sortedcontainers ==2.4.0
  • tabulate ==0.8.9
  • tenacity ==8.0.1
  • toml ==0.10.2
  • tox ==3.24.4
  • unidecode ==0.4.21
  • urllib3 ==1.26.7
  • virtualenv ==20.10.0
  • websockets ==10.0
requirements/dev.in pypi
  • fabric3 * development
  • psutil * development
  • pylint * development
  • pyyaml >=4.2b1 development
requirements/dev.txt pypi
  • astroid ==2.8.4 development
  • attrs ==21.2.0 development
  • awesome-slugify ==1.6.5 development
  • backports.entry-points-selectable ==1.1.0 development
  • bcrypt ==3.2.0 development
  • cached-property ==1.5.2 development
  • certifi ==2021.10.8 development
  • cffi ==1.15.0 development
  • cfgv ==3.3.1 development
  • chardet ==4.0.0 development
  • click ==8.1.3 development
  • click-default-group ==1.2.2 development
  • colorlog ==4.7.2 development
  • cryptography ==35.0.0 development
  • decorator ==5.1.1 development
  • distlib ==0.3.3 development
  • et-xmlfile ==1.1.0 development
  • fabric3 ==1.14.post1 development
  • filelock ==3.3.2 development
  • flake8 ==4.0.1 development
  • flake8-tuple ==0.4.1 development
  • geocoder ==1.17.5 development
  • identify ==2.3.3 development
  • idna ==2.10 development
  • isort ==5.10.0 development
  • jsonschema ==4.1.2 development
  • kafka-python ==2.0.2 development
  • lazy-object-proxy ==1.6.0 development
  • mccabe ==0.6.1 development
  • nodeenv ==1.6.0 development
  • numpy ==1.20.3 development
  • openpyxl ==3.0.10 development
  • packaging ==21.2 development
  • paramiko ==2.8.0 development
  • pendulum ==2.1.2 development
  • platformdirs ==2.4.0 development
  • plotly ==5.3.1 development
  • pluggy ==1.0.0 development
  • pony ==0.7.14 development
  • pre-commit ==2.15.0 development
  • psutil ==5.8.0 development
  • py ==1.10.0 development
  • pycodestyle ==2.8.0 development
  • pycparser ==2.20 development
  • pyflakes ==2.4.0 development
  • pylint ==2.11.1 development
  • pynacl ==1.4.0 development
  • pyparsing ==2.4.7 development
  • pyrsistent ==0.18.0 development
  • python-dateutil ==2.8.2 development
  • python-rex ==0.4 development
  • pytz ==2021.3 development
  • pytzdata ==2020.1 development
  • pyyaml ==6.0 development
  • ratelim ==0.1.6 development
  • redis ==3.5.3 development
  • regex ==2021.10.23 development
  • requests ==2.25.1 development
  • rq ==1.10.0 development
  • six ==1.16.0 development
  • sortedcontainers ==2.4.0 development
  • tabulate ==0.8.9 development
  • tenacity ==8.0.1 development
  • toml ==0.10.2 development
  • tox ==3.24.4 development
  • typing-extensions ==3.10.0.2 development
  • unidecode ==0.4.21 development
  • urllib3 ==1.26.7 development
  • virtualenv ==20.10.0 development
  • websockets ==10.0 development
  • wrapt ==1.13.3 development
requirements/tests.in pypi
  • behave * test
  • coverage * test
  • deepdiff * test
  • hypothesis ==4.38.0 test
  • isort * test
  • parameterized * test
  • pytest * test
  • pytest-random-order * test
  • requests-mock * test
requirements/tests.txt pypi
  • astroid ==2.8.4 test
  • attrs ==21.2.0 test
  • awesome-slugify ==1.6.5 test
  • backports.entry-points-selectable ==1.1.0 test
  • bcrypt ==3.2.0 test
  • behave ==1.2.6 test
  • cached-property ==1.5.2 test
  • certifi ==2021.10.8 test
  • cffi ==1.15.0 test
  • cfgv ==3.3.1 test
  • chardet ==4.0.0 test
  • click ==8.1.3 test
  • click-default-group ==1.2.2 test
  • colorlog ==4.7.2 test
  • coverage ==6.1.1 test
  • cryptography ==35.0.0 test
  • decorator ==5.1.1 test
  • deepdiff ==5.6.0 test
  • distlib ==0.3.3 test
  • et-xmlfile ==1.1.0 test
  • fabric3 ==1.14.post1 test
  • filelock ==3.3.2 test
  • flake8 ==4.0.1 test
  • flake8-tuple ==0.4.1 test
  • geocoder ==1.17.5 test
  • hypothesis ==4.38.0 test
  • identify ==2.3.3 test
  • idna ==2.10 test
  • iniconfig ==1.1.1 test
  • isort ==5.10.0 test
  • jsonschema ==4.1.2 test
  • kafka-python ==2.0.2 test
  • lazy-object-proxy ==1.6.0 test
  • mccabe ==0.6.1 test
  • nodeenv ==1.6.0 test
  • numpy ==1.20.3 test
  • openpyxl ==3.0.10 test
  • ordered-set ==4.0.2 test
  • packaging ==21.2 test
  • parameterized ==0.8.1 test
  • paramiko ==2.8.0 test
  • parse ==1.19.0 test
  • parse-type ==0.5.2 test
  • pendulum ==2.1.2 test
  • platformdirs ==2.4.0 test
  • plotly ==5.3.1 test
  • pluggy ==1.0.0 test
  • pony ==0.7.14 test
  • pre-commit ==2.15.0 test
  • psutil ==5.8.0 test
  • py ==1.10.0 test
  • pycodestyle ==2.8.0 test
  • pycparser ==2.20 test
  • pyflakes ==2.4.0 test
  • pylint ==2.11.1 test
  • pynacl ==1.4.0 test
  • pyparsing ==2.4.7 test
  • pyrsistent ==0.18.0 test
  • pytest ==6.2.5 test
  • pytest-random-order ==1.0.4 test
  • python-dateutil ==2.8.2 test
  • python-rex ==0.4 test
  • pytz ==2021.3 test
  • pytzdata ==2020.1 test
  • pyyaml ==6.0 test
  • ratelim ==0.1.6 test
  • redis ==3.5.3 test
  • regex ==2021.10.23 test
  • requests ==2.25.1 test
  • requests-mock ==1.9.3 test
  • rq ==1.10.0 test
  • six ==1.16.0 test
  • sortedcontainers ==2.4.0 test
  • tabulate ==0.8.9 test
  • tenacity ==8.0.1 test
  • toml ==0.10.2 test
  • tox ==3.24.4 test
  • typing-extensions ==3.10.0.2 test
  • unidecode ==0.4.21 test
  • urllib3 ==1.26.7 test
  • virtualenv ==20.10.0 test
  • websockets ==10.0 test
  • wrapt ==1.13.3 test
wiki/mkdocs-material/requirements.txt pypi
  • Pygments >=2.2
  • mkdocs >=1
  • pymdown-extensions >=4.11
wiki/mkdocs-material/setup.py pypi
  • if *
  • line *
wiki/requirements.txt pypi
  • md-tooltips ==1.3.1
  • mkdocs ==1.3.0
  • mkdocs-redirects ==1.0.4
requirements/blockchain.in pypi
setup.py pypi
src/gsy_e/gsy_e_core/simulation/setup.py pypi

Score: 8.148445666243235