Code Monkey home page Code Monkey logo

pynance's Introduction

PyNance

Lightweight Python library for assembling and analysing financial data. Wraps pandas and matplotlib for maximum ease of use. Included are tools for generating features and labels for machine learning algorithms.

Dependencies

Tested on:

PyNance will also work with other versions of Python and Python packages. To verify that it works with yours, simply run the unit tests for data retrieval, then try making some charts with sample data you retrieve.

Additional dependencies for the pynance.options module:

Building the docs

To build the documentation using Sphinx outside of a virtual Python environment, go to ./doc and type make html. If you are using a virtual environment for any dependencies, you will need to add sphinx and numpydoc to the virtual environment before building the documentation. Explanation here. In other words, from within your virtual environment:

$ pip install sphinx
$ pip install numpydoc

Then build the documentation using make html.

Development environment

To set up your virtual environment for development:

$ mkvirtualenv -p /usr/local/bin/python pn-dev
$ python setup.py develop

Release a new version

When branch develop has all desired substantive changes, it is time to release the next version. This involves:

  • create the new version and push it to Pypi
  • reorganize the documentation in the develop branch

Note on building the documentation

A note applying to both steps: The environment in which you build the documentation must include the external dependencies (numpy, pandas, etc.) mentioned above. Sphinx actually checks for the presence of dependencies and will fail to build the documentation if they are missing.

Create the new version

Overview here.

In branch develop verify that all desired changes have been merged and that the documentation is up to date. Then:

  1. Change the release version in .setup.py and in ./doc/source/conf.py to the numbers desired for the version you are about to publish.

  2. Build the documentation:

     $ cd ./doc
     $ make html
    
  3. Merge to master.

  4. Tag the release in GitHub.

  5. Publish to PyPi.

  6. Push the documentation to pynance.net:

Branches develop and master should now be the same. In preparation for the next release (in the more distant future), you should now re-organize the documentation so that what was just committed is archived and new documentation can be generated, as described in the following section.

Reorganize the documentation

As example, let's say the version just committed is version 3.1.4.

  1. Move current public html to an archive directory:

     $ cd ./doc
     $ make archhtml ARCHDIR="3.1.4"
    
  2. Add a link to version 3.1.4 in ./doc/source/index.rst under 'Prior Versions'

  3. Change version number in ./doc/source/conf.py to 3.1.5.

  4. Rebuild current documentation:

     $ make html
    
  5. Write new documentation to public directory:

     $ make pubhtml
    
  6. Commit changes.

pynance's People

Contributors

aisthesis avatar griffinaustin avatar arkadasgupta 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.