Overview

Welcome to DataMoose's documentation!

Contents:

Indices and tables

DataMoose Overview

Data Moose helps users build dynamic presentations and visualizations on the Web. Starting with structured data, you can build scientific reports, figures, or visualizations. Datamoose does this by turning the components of the MVC paradigm into first class web objects that you can create and modify. DataMoose is built upon Django.

DataSource -> Preprocess with Python -> Output Data via Templates

The goal is to take a wide variety of data sources and enable scientists and designers to create presentations. The templates are constructed using the very expressive Jinja2 syntax. Output is not limited to HTML. Any textual format can be expressed with datamoose: xml, svg, etc.

DataSource

The first step in the pipeline process is the DataSource. This is a Python class wrapper that guides the data into the pipeline.

Your implementation of DataSource determines how the data is formatted and presented to the output stage. In the example below, we have some particular representation of data called MyModel. We want to declare MyModel to be a DataSource, that is a source of data that is fed into particular DataOutputs

from datamoose.datasource import DataSource

# A form used to create an instance of MyModel
from myapp.forms import MyModelAddForm

class MyDataSource(DataSource):

  identifier = "special data"
  add_form = MyModelForm

  def create(self, validated_add_form):
    my_model_instance = validated_add_form.save()
    # use the datamoose instance as a ref to our data
    self.datamoose.data_ref = my_model_instance
    self.datamoose.save()

  def synchronize(self):
    my_model_instance = self.datamoose.data_ref
    my_model_instance.do_some_long_running_synchronization()

  def template_context(self):
    my_model_instance = self.datamoose.data_ref
    # this is what gets passed to the template
    return {'my_model_data':my_model_instance}

Stepping through the attributes of this class:

(identifier) are used by the DataMoose system to connect the
data output to the MyDataSource data pipeline.

DataOutput

It's time to collaborate.

                                            .      //
                                       /) \ |\    //
  VK                             (\\|  || \)u|   |F     /)
                                  \```.FF  \  \  |J   .'/
                               __  `.  `|   \  `-'J .'.'
        ______           __.--'  `-. \_ J    >.   `'.'   .
    _.-'      ""`-------'           `-.`.`. / )>.  /.' .<'
  .'                                   `-._>--' )\ `--''
  F .                                          ('.--'"
 (_/                                            '\
  \                                             'o`.
  |\                                                `.
  J \          |              /      |                \
   L \                       J       (             .  |
   J  \      .               F        _.--'`._  /`. \_)
    F  `.    |                       /        ""   "'
    F   /\   |_          ___|   `-_.'
   /   /  F  J `--.___.-'   F  - /
  /    F  |   L            J    /|
 (_   F   |   L            F  .'||
  L  F    |   |           |  /J  |
  | J     `.  |           | J  | |              ____.---.__
  |_|______ \  L          | F__|_|___.---------'00000000101101101101000101101
--'00001100`-`--`--.___.-'-'---0000110101110011010010111110000110001110000100
11111011 00000011 11100111 11101011 01100101 01001111 01011000 10010000 01001