schema

class pemi.schema.Schema(*args, **kwargs)[source]

A schema is a thing.

metapply(elem, func)[source]

Allows one to create/modify metadata elements using a function

Parameters
  • elem (str) – Name of the metadata element to create or modify

  • func (func) – Function that accepts a single pemi.Field argument and returns the value of the metadata element indicated by elem

Returns

A new pemi.Schema with the updated metadata

Return type

pemi.Schema

Example

Suppose we wanted to add some metadata to a schema that will be used to construct a SQL statement:

pemi.schema.Schema(
    id=StringField(),
    name=StringField()
).metapply(
    'sql',
    lambda field: 'students.{} AS student_{}'.format(field.name, field.name)
)
select(func)[source]

Returns a new schema with the fields selected via a function (func) of the field

Fields

class pemi.fields.Field(name=None, **metadata)[source]

A field is a thing that is inherited

class pemi.fields.StringField(name=None, **metadata)[source]
class pemi.fields.IntegerField(name=None, **metadata)[source]
class pemi.fields.FloatField(name=None, **metadata)[source]
class pemi.fields.DateField(name=None, **metadata)[source]
class pemi.fields.DateTimeField(name=None, **metadata)[source]
class pemi.fields.BooleanField(name=None, **metadata)[source]
class pemi.fields.DecimalField(name=None, **metadata)[source]
class pemi.fields.JsonField(name=None, **metadata)[source]