Skip to main content

QuantLib Python Objects with Typing

Project description

Pydantic QuantLib

https://img.shields.io/pypi/v/pydantic_quantlib.svg https://github.com/gecBurton/inference_logic/workflows/PythonPackage/badge.svg Documentation Status

QuantLib Python Objects with Typing

Features

This package uses pydantic to wrap QuantLib to provide a set of Typed class factories.

The pydantic models are auto-generated from the QuantLib SWIG bindings. The autogen code is available on request.

In the following example we construct a European Option.

import pydantic_quantlib as pql

payoff = pql.PlainVanillaPayoff(type=pql.OptionType.Put, strike=40)

european_exercise = pql.EuropeanExercise(date=pql.Date(d=4, m=1, y=2022))

european_option = pql.VanillaOptionBase(payoff=payoff, exercise=european_exercise)

The option can be converted to the usual QuantLib object for computation as seen in this fuller example.

>>> european_option.to_quantlib()
'<QuantLib.QuantLib.VanillaOption; proxy of <Swig Object of type 'ext::shared_ptr< VanillaOption > *' at 0x7f6559ddabd0> >'

it can also be printed:

>>> print(european_option)
'PlainVanillaPayoff(type=<OptionType.Put: -1>, strike=40.0) exercise=EuropeanExercise(date=Date0(d=4.0, m=1.0, y=2022.0))'

it can be converted to JSON:

>>> european_option.json()
'{"resource_name": "VanillaOption", "payoff": {"resource_name": "PlainVanillaPayoff", "type": -1, "strike": 40.0}, "exercise": {"resource_name": "EuropeanExercise", "date": {"resource_name": "Date", "d": 4, "m": 1, "y": 2022}}}'

and it can be loaded from JSON:

>>> json_repr = '{"resource_name": "VanillaOption", "payoff": {"resource_name": "PlainVanillaPayoff", "type": -1, "strike": 40.0}, "exercise": {"resource_name": "EuropeanExercise", "date": {"resource_name": "Date", "d": 4, "m": 1, "y": 2022}}}'
>>> pql.VanillaOption.parse_obj(json.loads(json_repr))

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

History

0.1.0 (2021-01-04)

  • First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydantic_quantlib-0.3.0.tar.gz (48.6 kB view details)

Uploaded Source

Built Distribution

pydantic_quantlib-0.3.0-py2.py3-none-any.whl (36.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pydantic_quantlib-0.3.0.tar.gz.

File metadata

  • Download URL: pydantic_quantlib-0.3.0.tar.gz
  • Upload date:
  • Size: 48.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.1 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.8.5

File hashes

Hashes for pydantic_quantlib-0.3.0.tar.gz
Algorithm Hash digest
SHA256 1d903407af2aafb850a71ca106f53e4612759b8f1c1ed3991158e4fb4ff92ac9
MD5 0b6fe093cbd5a766e65297a959a9748e
BLAKE2b-256 b5aeb658ec168e5105274c15b0c1582016bfb022f0adc76c0a56f9e88097bdff

See more details on using hashes here.

File details

Details for the file pydantic_quantlib-0.3.0-py2.py3-none-any.whl.

File metadata

  • Download URL: pydantic_quantlib-0.3.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 36.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.1 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.8.5

File hashes

Hashes for pydantic_quantlib-0.3.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 9c19a06fa9f6f70d7342134ee00dd05b17fa56fe2151e423f42e73c1b02dc087
MD5 659fc3bd953ac070c729880550f92550
BLAKE2b-256 54d6ea2d0c2f04704399bdac5bab4702262c0c32adf6d0be3b77e2dfc7876294

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page