Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

[doc] reorganising the doc adding the skeleton for the main sections

  • Loading branch information...
commit b18256b16aad30e3bad7a7fbed2190f464e9342f 1 parent 19ef369
@dpinte dpinte authored
View
2  docs/source/api.rst
@@ -34,7 +34,7 @@ quantlib
:members:
quantlib.indexes
---------------------
+----------------
.. currentmodule:: quantlib.index
View
13 docs/source/cython_wrapper.rst
@@ -1,4 +1,3 @@
-========================================
How to wrap QuantLib classes with cython
========================================
@@ -26,7 +25,7 @@ After wrapping the C++ class, this class is now available in python:
The Interface Code
-==================
+------------------
To expose QL class ''foo'', you need to create three files. For the sake of
standardization, they should be named as follows:
@@ -149,13 +148,3 @@ constructor of the shared_ptr to get a local copy of it, stack allocated (there
is no need to use new)
-Issues
-======
-
-
-Common cython compiler error messages
--------------------------------------
-
-We have gathered in this section information about common errors in the
-interfacing code, how to identify them and what to do to fix them.
-
View
48 docs/source/getting_started.rst
@@ -0,0 +1,48 @@
+Getting started
+===============
+
+PyQL - an overview
+------------------
+
+Why building a new set of QuantLib wrappers for Python ?
+
+The SWIG wrappers provide a very good coverage of the library but have
+a number of pain points:
+
+ * few Pythonic optimisation in the syntax: the code a user must writeon the Python side looks like the C++ version
+ * no docstring or function signature available on the Python side
+ * complex debugging and complex customization of the wrappers
+ * monolithic build process
+ * complete loss of the C++ code organisation with a flat namespace in Python
+ * SWIG typemaps development is not that fun
+
+For those reasons and to have the ability to expose some of the
+QuantLib internals that could be very useful on the Python side, we
+chosed another road. PyQL is build on top of Cython and creates a thin
+Pythonic layer on top of QuantLib. It allows a tight control on the
+wrapping and provides higher level Python integration.
+
+Features:
++++++++++
+
+ * Integration with standard datatypes (like datetime objects) and numpy arrays
+ * Simplifed API on the Python side (e.g. usage of Handles completely hidden from the user)
+ * Support full docstring and expose detailed function signatures to Python
+ * Code organised in subpackages to provide a decent namespace, very close to the C++ code organisation
+ * Easy extendibility thanks to Cython and shorter build time when adding new functionnalities
+ * Sphinx documentation
+
+
+Building and installing PyQL
+----------------------------
+
+PyQL must be installed on a system that has access to a build of QuantLib. It
+requires patched version of Cython 0.15 (major patch) or 0.16 (minor patch).
+You can find them both in the PyQL root directory.
+
+Once Cython is patched, enter the pyql root directory. Open the setup.py file
+and configure the Boost and QuantLib include and library directories, then run ::
+
+ python setup.py build
+
+
View
17 docs/source/index.rst
@@ -3,12 +3,8 @@
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
-Quantlib cython wrapper's documentation!
-========================================
-
-The goal of this project is to create a lightweight, pythonic wrapper on top of
-the QuantLib library.
-
+Welcome to PyQL's documentation
+===============================
Contents:
@@ -16,10 +12,11 @@ Contents:
.. toctree::
:maxdepth: 2
- business_dates
- api
- cython_wrapper
- todo
+ getting_started
+ tutorial
+ users_guide
+ reference_guide
+ roadmap
Indices and tables
==================
View
8 docs/source/reference_guide.rst
@@ -0,0 +1,8 @@
+Reference guide
+***************
+
+.. include:: api.rst
+
+.. include:: cython_wrapper.rst
+
+
View
19 docs/source/roadmap.rst
@@ -0,0 +1,19 @@
+Roadmap
+=======
+
+ * Provide binary version for Mac, Windows and Linux
+ * Increase the Python coverage for C++ classes
+ * Make the API more pythonic and user friendly to abstract more of the complex
+ C++ constructions
+ * Provide a better integration for large datasets
+ * Investigate potential OpenMP support
+
+
+Documentation
+=============
+
+List of online resources useful for the project:
+
+ * add examples from http://quantlib.org/slides/dima-ql-intro-1.pdf
+ * Fixed income - indexes (see http://quantlib.org/slides/dima-ql-intro-2.pdf
+ p78)
View
4 docs/source/todo.rst
@@ -1,4 +0,0 @@
-
- * add examples from http://quantlib.org/slides/dima-ql-intro-1.pdf
- * Fixed income - indexes (see http://quantlib.org/slides/dima-ql-intro-2.pdf
- p78)
View
3  docs/source/tutorial.rst
@@ -0,0 +1,3 @@
+Tutorial
+========
+
View
5 docs/source/users_guide.rst
@@ -0,0 +1,5 @@
+User's guide
+************
+
+.. include:: business_dates.rst
+
Please sign in to comment.
Something went wrong with that request. Please try again.