GithubHelp home page GithubHelp logo

ojdo / toolchest Goto Github PK

View Code? Open in Web Editor NEW

This project forked from openmod-initiative/toolchest

0.0 2.0 0.0 24 KB

A common repository for tools used in energy modeling.

License: BSD 3-Clause "New" or "Revised" License

PowerShell 51.72% Batchfile 30.62% Python 17.66%

toolchest's Introduction

Openmod's Python Toolchest

This project serves as a catch-all for openmod devs' useful python tools and APIs (though we are generally language lovers and are not limited to Python specifically).

For the foreseeable future, this repo is a bit adhoc -- anything of use that fits the general theme of energy modeling is welcome. We try to split additions by subject into the appropriate files (e.g., GIS-related work to gis.py, etc.).

The contributors to this repository strive to write clear, understandable, tested, and documented code. We recognize this requires a nontrivial effort and respect the effort of others by being willing to review pull requests and otherwise offer comments, critiques, and first-user experiences.

Communication

Apart from using the issue tracker, please join the listserv for any in depth discussions.

Dependencies

As this is a hodgepodge of tools, different tooling requires different dependencies.

General

  1. numpy
  2. pandas
  3. scipy

GIS

  1. fiona
  2. rasterio
  3. shapely

Modeling & Optimization

  1. pyomo

Testing

  1. nose

Documentation

  1. Sphinx

Installing

You can install toolchest like any other python module

./setup.py install

or for local installations

./setup.py install --user

Testing

From the root directory, run

nosetests -w tests

Documentation

On *Nix Platforms

After you install the project locally, you can generate documentation by

cd docs
make html

You can serve the documentation locally via

make serve

You can then view the docs at http://localhost:8000/build/html/

On Windows

Follow the above instructions replacing make with ./make.bat.

Contributing

toolchest currently follows a master-branch based work flow. All features introduced in pull requests are merged directly into master. Should the code base become more complex, it is likely that we will transition to a develop-master git-based release work flow, as described here.

We follow semantic versioning for version numbering.

Any contribution can be pulled into master via a Pull Request provided it meets the following conditions:

  1. follows pep8 style
  2. is documented with docstrings formatted in the numpy style
  3. is tested
  4. passes CI on both Windows and Linux
  5. is reviewed by at least one other contributor

Documentation Caveat

Contributions that upgrade only documentation are the sole caveat to the above requirements. Documentation-only additions can be pushed directly to the master branch. However, if a review is desired, they can of course go through the process as well.

Following Style Guides

Style guides are always annoying to follow at first but are immensely useful. Feel free to hook in autopep8 to your favorite editor to automatically fix any style issues. For emacs, you can add the following lines

; see https://github.com/paetzke/py-autopep8.el
(require 'py-autopep8)
(add-hook 'python-mode-hook 'py-autopep8-enable-on-save)

Conflicts between Contributors

Should any conflicts arise in the course of the project, without any other particularly good solution, resolution will follow a majority rule on the listserv.

toolchest's People

Contributors

coroa avatar gidden avatar ojdo avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.