lookmlgen package

Submodules

lookmlgen.base_generator module

File name: base_generator.py Author: joeschmid Date created: 4/8/17

class lookmlgen.base_generator.BaseGenerator(file=None, format_options=<lookmlgen.base_generator.GeneratorFormatOptions object>)[source]

Bases: object

Abstract base class for any subclass that generates LookML

Parameters:
  • file (File handle or StringIO object) – File handle of a file open for writing or a StringIO object
  • format_options (GeneratorFormatOptions) – Formatting options to use during generation
generate_lookml(file=None, format_options=None)[source]

Implement this method in subclasses to generate LookML

Parameters:
  • file (File handle or StringIO object) – File handle of a file open for writing or a StringIO object
  • format_options (GeneratorFormatOptions) – Formatting options to use during generation
class lookmlgen.base_generator.GeneratorFormatOptions(indent_spaces=2, newline_between_items=True, omit_default_field_type=True, view_fields_alphabetical=True, warning_header_comment='# STOP! This file was generated by an automated process.n# Any edits you make will be lost the next time it isn# re-generated.n', omit_time_frames_if_not_set=False)[source]

Bases: object

Specify formatting options to be used during LookML generation

Parameters:
  • indent_spaces (int) – Number of spaces to indent
  • newline_between_items (bool) – Add a newline between items
  • omit_default_field_type (bool) – Leave out ‘type: string’
  • warning_header_comment (string) – Text to use as a comment as the top of the file warning the user that the file will get overwritten
  • omit_time_frames_if_not_set (bool) – If no time frame is specified for a dimension_group field, omit the time_frames parameter. If timeframes is not included every timeframe option will be added to the dimension group.

lookmlgen.cli module

lookmlgen.field module

File name: field.py Author: joeschmid Date created: 4/9/17

class lookmlgen.field.Dimension(name, primary_key=None, **kwargs)[source]

Bases: lookmlgen.field.Field

Generates LookML for a dimension field in a View

Parameters:
  • name (string) – Name of the dimension
  • primary_key (bool) – Flag to designate the field as a primary key
class lookmlgen.field.DimensionGroup(name, timeframes=None, datatype='datetime', **kwargs)[source]

Bases: lookmlgen.field.Field

Generates LookML for a dimension_group field in a
View
Parameters:
  • name (string) – Name of the dimension group
  • timeframes (list of strings) – Timeframes for the group
  • datatype (string) – Datatype for the group, defaults to ‘datetime’
class lookmlgen.field.Field(field_type, name, type='string', label=None, sql=None, hidden=None, file=None, group_label=None, description=None, **kwargs)[source]

Bases: lookmlgen.base_generator.BaseGenerator

Base class used to generate fields within a View

Parameters:
  • field_type (a class variable from FieldType) – Name of the view
  • name (string) – Name of the field
  • type (string) – Type of the field contents, e.g. string, number, etc.
  • label (string) – Label to use when displaying the field
  • sql (string) – SQL snippet for the field
  • hidden (bool) – Flag to designate the field as hidden
  • file (File handle or StringIO object) – File handle of a file open for writing or a StringIO object
  • group_label (string) – Group label to use for grouping the field
  • description (string) – Field description that is show if a user hovers over the help link in the field picker
generate_lookml(file=None, format_options=None)[source]

Writes LookML for a field to a file or StringIO buffer.

Parameters:
  • file (File handle or StringIO object) – File handle of a file open for writing or a StringIO object
  • format_options (GeneratorFormatOptions) – Formatting options to use during generation
class lookmlgen.field.FieldType[source]

Bases: object

Enum-style class used to specify known Field types

DIMENSION = 1
DIMENSION_GROUP = 2
FILTER = 3
MEASURE = 4
classmethod type_name(type_id)[source]
class lookmlgen.field.Filter(name, **kwargs)[source]

Bases: lookmlgen.field.Field

Generates LookML for a filter field in a
View
Parameters:name (string) – Name of the filter
class lookmlgen.field.Measure(name, **kwargs)[source]

Bases: lookmlgen.field.Field

Generates LookML for a measure field in a
View
Parameters:name (string) – Name of the measure

lookmlgen.util module

File name: util.py Author: joeschmid Date created: 4/16/17

lookmlgen.util.indent(s, num_spaces)[source]

lookmlgen.view module

File name: view.py Author: joeschmid Date created: 4/8/17

class lookmlgen.view.DerivedTable(sql, sql_trigger_value=None, indexes=None, file=None)[source]

Bases: lookmlgen.base_generator.BaseGenerator

Generates the LookML View parameters to support derived tables, including persistent derived tables (PDTs).

Parameters:
  • sql (string) – SQL statement to execute
  • sql_trigger_value (string) – SQL to determine when to trigger build
  • indexes (list of strings) – List of coluxn names to use as indexes
  • file (File handle or StringIO object) – File handle of a file open for writing or a StringIO object
generate_lookml(file=None, format_options=None)[source]

Writes LookML for a derived table to a file or StringIO buffer.

Parameters:
  • file (File handle or StringIO object) – File handle of a file open for writing or a StringIO object
  • format_options (GeneratorFormatOptions) – Formatting options to use during generation
class lookmlgen.view.View(name, label=None, sql_table_name=None, file=None)[source]

Bases: lookmlgen.base_generator.BaseGenerator

Generates a LookML View

Initialize a View object with your parameters, add Fields such as Dimension, Measure, DimensionGroup, and Filter, and then generate LookML for the view using generate_lookml()

Parameters:
  • name (string) – Name of the view
  • label (string) – Label to use for the view (may contain spaces)
  • sql_table_name (list of strings) – Name of the SQL table to use in the view
  • file (File handle or StringIO object) – File handle of a file open for writing or a StringIO object
add_field(field)[source]

Adds a Field object to a View

generate_lookml(file=None, format_options=None)[source]

Writes LookML for the view to a file or StringIO buffer.

Parameters:
  • file (File handle or StringIO object) – File handle of a file open for writing or a StringIO object
  • format_options (GeneratorFormatOptions) – Formatting options to use during generation
set_derived_table(derived_table)[source]

Adds a DerivedTable object to a View

Module contents