Skip to main content

Django extension which adds model fields to store multi-dimensional Gaussian random variables.

Project description

Documentation Status Code Coverage Code style: black

django-gvar

Description

django-gvar is a Python module which allows to store multi-dimensional Gaussian random variables implemented by G. Peter Lepage's gvar module into Django's ORM Framework. It adds a GVarField, which can be used to store individual GVars, arrays of GVars, and Dictionaries of GVars.

Usage in scripts

After pip-installing the module, import the GVarField field into your project and use it out-of-the-box (changing settings is not required)

# myproject.models.py
from django.db import models
from django_gvar import GVarField

class ExampleTable(models.Model):
    a = GVarField()

After migrating new table definitions, the GVarField can be used as any other field in external scripts

from gvar import gvar
from myproject.models import ExampleTable

a = gvar([1, 2, 3], [4, 5, 6])
entry = ExampleTable(a=a)
entry.save()

Usage in forms

For web-forms, the default widget for GVarFields are text areas. Currently, the form supports single numbers and arrays as input. These forms utilize custom syntax to convert the input to GVars:

  • GVars without correlations are can specified by lists of numbers where parenthesis define standard deviations
1(2), 3(4), ...
  • GVars with correlations are specified as arrays of mean values and the covariance matrix separated by a |
[1, 2] | [[1, 2], [2, 3]]

Install

django-gvar can be installed from the repository root using pip

pip install [-e] [--user] .

Because it utilizes Django's JSONField, which is available for all database backends in Django version 3.1 (previously it was a Postgres only field), it currently depends on the development version of Django (Django==3.1a1). Once established, the dependencies will be updated accordingly.

Details

The underlying database type for django-gvars are JSONFields. It uses gvars gdumps and gloads to generate corresponding JSON. The project documentation specifies more details.

Examples

The tests directory implements a simple Django app using the GVarFields. To start it, install the repo as specified above and run

cd tests
python manage.py migrate # init that test database / only needs to be run once
python manage.py runserver # start a local server

Project details


Download files

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

Files for django-gvar, version 0.1.0a0
Filename, size File type Python version Upload date Hashes
Filename, size django_gvar-0.1.0a0-py3-none-any.whl (8.8 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size django_gvar-0.1.0a0.tar.gz (12.8 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page