dazzler.system package

Dazzler systems (API)

  • Requirements are JS/CSS resources to include on rendering.

  • Packages hold components info and it’s requirements.

  • Component Aspects are shared between backend and frontend with bindings.

  • Generate components with dazzler generate metadata.json output_dir

  • Page holds meta data for rendering, requirements, routes, layout, bindings.

class dazzler.system.Aspect(name=None, default=undefined, required=False, children=False, docstring=None)[source]

Bases: object

Aspects of component are represented on both backend and frontend.

__init__(name=None, default=undefined, required=False, children=False, docstring=None)[source]
class dazzler.system.Binding(trigger, states=None, call=False)[source]

Bases: object

Bind a function to execute when the trigger aspect change.

__init__(trigger, states=None, call=False)[source]
class dazzler.system.BindingContext(identity, request, trigger, states, websocket, request_queue, create_task)[source]

Bases: dazzler.system._binding.BaseContext

Context used by websockets binding, @page.bind).

Can request aspects from the frontend and interact with the WebStorage api.

__init__(identity, request, trigger, states, websocket, request_queue, create_task)[source]
async get_aspect(identity, aspect)[source]

Request the value of an aspect from the frontend.

Parameters
  • identity (str) – Component to get aspect from.

  • aspect (str) – Name of the aspect property.

Returns

async get_local_storage(identity)[source]
async get_session_storage(identity)[source]
async set_aspect(identity, **aspects)[source]

Update aspects of a component on the front end.

Parameters
  • identity – Identity of the component to update.

  • aspects – The aspects to set on the component.

Returns

async set_local_storage(identity, payload)[source]
async set_session_storage(identity, payload)[source]
class dazzler.system.BoundAspect(handler, trigger, states=None, call=False)[source]

Bases: object

A trigger aspect bound to a method intended to be called when changed.

Data holder for the handler, trigger and state.

__init__(handler, trigger, states=None, call=False)[source]
prepare()[source]

Prepare the binding for serialization.

Return type

list

Returns

list of dict with trigger and states definitions.

property triggers
class dazzler.system.CallContext(identity, request, trigger, states)[source]

Bases: dazzler.system._binding.BaseContext

Context of a call binding is used to set aspects on a request.

__init__(identity, request, trigger, states)[source]
async set_aspect(identity, **aspects)[source]
class dazzler.system.Component(aspects, identity=None)[source]

Bases: object

__init__(aspects, identity=None)[source]
class dazzler.system.Middleware[source]

Bases: object

Middleware functions are called before every routes registered by dazzler.

Add callback by returning a function taking the response as argument.

from dazzler.system import Middleware

class MyMiddleware(Middleware):
    async def __call__(self, request):

        async def set_cookie(response):
            response.set_cookie('cookie', 'value')

        return set_cookie
class dazzler.system.Package(name, components=None, requirements=None, routes=None)[source]

Bases: object

__init__(name, components=None, requirements=None, routes=None)[source]
get_requirements(dev)[source]
package_registry = {'dazzler_auth': <Package "dazzler_auth">, 'dazzler_calendar': <Package "dazzler_calendar">, 'dazzler_core': <Package "dazzler_core">, 'dazzler_electron': <Package "dazzler_electron">, 'dazzler_extra': <Package "dazzler_extra">, 'dazzler_icons': <Package "dazzler_icons">, 'dazzler_markdown': <Package "dazzler_markdown">, 'dazzler_renderer': <Package "dazzler_renderer">}
prepare(dev=False, external=False)[source]
class dazzler.system.Page(name, layout, url=None, bindings=None, routes=None, requirements=None, requirements_dir='requirements', title=None, lang='en', header='', footer='', favicon='', meta_tags=None, packages=None, require_login=False, electron_window=None, authorizations=None)[source]

Bases: object

A page of the application.

__init__(name, layout, url=None, bindings=None, routes=None, requirements=None, requirements_dir='requirements', title=None, lang='en', header='', footer='', favicon='', meta_tags=None, packages=None, require_login=False, electron_window=None, authorizations=None)[source]
Parameters
  • name (str) – Unique name for the page, usually give __name__.

  • layout (Union[Component, Callable[[Request], Awaitable[Component]]]) – Root component or function returning a Component. In the case of a function, the request will be None on setup.

  • url (Optional[str]) – Url, default to /name.

  • bindings (Optional[list]) – Bindings of component aspects for this page.

  • routes (Optional[List[Route]]) – Additional routes to register with this page.

  • requirements (Optional[List[Requirement]]) – List of requirements to

  • title (Optional[str]) – Title of the page.

  • lang (str) – lang attribute of the html tag.

  • header (str) – Static header to include as first child on the page.

  • footer (str) – Static footer to include as last child on the page.

  • favicon (str) – Url to favicon for the page.

  • meta_tags (Optional[List[Dict[str, str]]]) – Meta tags of the page.

  • packages (Optional[List[str]]) – Packages list to use on the page instead of the whole registry.

  • require_login (bool) – Page requires that user is logged in.

  • electron_window (Optional[ElectronWindowSettings]) – Settings for the electron window like size.

  • authorizations (Optional[list]) – Rules for authorization.

bind(trigger, *states, once=False)[source]

Attach a function to be called when the trigger update on the client.

Parameters
  • trigger (Union[Trigger, str]) – Aspect to trigger the binding.

  • states (Union[State, str]) – States to includes in the binding message.

  • once (bool) – Execute the binding only once

Returns

call(trigger, *states, once=False)[source]

A binding that execute via traditional request.

get_binding(key)[source]

Get the binding from the trigger key.

Parameters

key – Trigger key

Return type

BoundAspect

Returns

async prepare(request, debug=False, external=False)[source]

Prepare the page for rendering.

Parameters
  • request (Request) – The request to prepare for.

  • debug – To collect dev package

  • external – Serve external requirements if available.

Return type

dict

Returns

prepared dict with layout and page name.

route(path, method=RouteMethod.GET, name=None, prefix=True)[source]

Add a route with a decorator.

Parameters
  • path – Url to handle.

  • method (Union[str, RouteMethod]) – Method of the route.

  • name – Unique name for the route.

  • prefix – Prefix the path with the page path.

Returns

tie(trigger, *target, once=None)[source]

Update target(s) aspect on trigger from the frontend.

Example

from dazzler.system import Page
from dazzler.components import core

page = Page(
    __name__,
    core.Container([
        core.Input(identity='input'),
        core.Container(identity='output')
    ])
)

page.tie('value@input', 'children@output')
Parameters
  • trigger (Union[Trigger, str]) – Aspect to set the target when the value change.

  • target (Union[Target, str]) – Aspect to update from the trigger value.

  • once (Optional[bool]) – Execute the tie only once.

Returns

class dazzler.system.Requirement(internal=None, kind=None, name=None, package=None, dev=None, external=None, page=None, integrity=None)[source]

Bases: object

Represents a static asset to include as dependency for rendering.

__init__(internal=None, kind=None, name=None, package=None, dev=None, external=None, page=None, integrity=None)[source]
Parameters
  • internal (Optional[str]) – Local path of the requirement to include on the page.

  • kind (Optional[str]) – The file extension.

  • name (Optional[str]) – The file name.

  • package (Optional[str]) – The package related to this requirement.

  • dev (Optional[bool]) – If the requirement is a dev requirement to serve only when in debug mode.

  • external (Optional[str]) – URL to serve instead when running with prefer_external mode enable in the configs.

  • page (Optional[str]) – The page related to this requirement.

  • integrity (Optional[str]) – The integrity hash. (sri)

prepare(external=False)[source]
Return type

dict

tag(external=False)[source]
exception dazzler.system.RequirementWarning[source]

Bases: UserWarning

class dazzler.system.Route(path, handler, method=RouteMethod.GET, name=None)[source]

Bases: object

__init__(path, handler, method=RouteMethod.GET, name=None)[source]
class dazzler.system.RouteMethod(value)[source]

Bases: precept._tools.AutoNameEnum

An enumeration.

CONNECT = 'connect'
DELETE = 'delete'
GET = 'get'
HEAD = 'head'
OPTIONS = 'options'
PATCH = 'patch'
POST = 'post'
PUT = 'put'
get_method()[source]
class dazzler.system.State(identity, aspect, regex=False)[source]

Bases: dazzler.system._binding._Bind

Usable aspect value in bound aspect without trigger on change.

class dazzler.system.Target(shorthand=None, identity=None, aspect=None, regex=False)[source]

Bases: dazzler.system._binding._Bind

A connection target that will be updated when the trigger is updated on the frontend.

Target has shorthand syntax aspect@identity to use with transforms.

__init__(shorthand=None, identity=None, aspect=None, regex=False)[source]
Parameters
  • identity (Optional[str]) – The identity of the component to bind.

  • aspect (Optional[str]) – Aspect name to trigger/state.

  • regex (bool) – Identity and aspects are converted into regex and matched against for trigger and states.

class dazzler.system.Trigger(identity, aspect, regex=False, once=None, skip_initial=False)[source]

Bases: dazzler.system._binding._Bind

Trigger the bound aspect callbacks.

__init__(identity, aspect, regex=False, once=None, skip_initial=False)[source]
Parameters
  • identity (str) – The identity of the component to bind.

  • aspect (str) – Aspect name to trigger/state.

  • regex – Identity and aspects are converted into regex and matched against for trigger and states.

prepare()[source]

Prepare the trigger or state for serialization.

Return type

dict

Returns

Identity and aspect in a dict.

dazzler.system.assets_to_requirements(path, data, dev_data=None, dev_path=None, package_name=None, external=None)[source]

Turns the output of webpack-assets-tracker into a list of Requirements

Parameters
  • path (str) – Path where production assets are located

  • data (dict) – Bundle tracker data.’

  • dev_data (Optional[dict]) – Bundle tracker dev data, if not provided take data.

  • dev_path (Optional[str]) – Path where dev assets are located.

  • package_name (Optional[str]) – The name of the package if used for packages.

  • external (Optional[str]) – External base path for the requirement.

Return type

List[Requirement]

Returns

dazzler.system.collect_requirements(directory, page=None)[source]

Collect all js/css files in the directory and map them as requirement

Parameters
  • directory (str) –

  • page (Optional[str]) –

Returns

dazzler.system.filter_dev_requirements(requirements, dev)[source]
async dazzler.system.generate_components(metadata, output_path, executor)[source]
async dazzler.system.generate_meta(source_dir, ts)[source]
Return type

dict

Submodules

dazzler.system.auth module

class dazzler.system.auth.AuthBackend[source]

Bases: object

Handle the request part of authentication protocols.

async get_username(request)[source]

Get the username from the request.

Parameters

request (Request) – Incoming request.

Return type

str

Returns

Retrieved username.

async is_authenticated(request)[source]

If the request is authenticated.

Parameters

request (Request) – The request to verify if authentication credentials are provided.

Return type

bool

Returns

Whether the user is authenticated.

async login(user, request, response)[source]

Do what it takes to store the login info after being successfully authenticated by the authenticator.

Parameters
  • user (User) – The authenticated user

  • request (Request) – Incoming request.

  • response (Response) – A redirect response if needed to set cookies.

Returns

async logout(user, request, response)[source]

Delete what makes this user authenticated in the system.

Parameters
  • user (User) – User to logout.

  • request (Request) – Incoming request.

  • response (Response) – A redirect response if need to clear cookies.

Returns

class dazzler.system.auth.AuthMiddleware(app, auth)[source]

Bases: dazzler.system._middleware.Middleware

Add the user if authenticated to the request object.

__init__(app, auth)[source]
class dazzler.system.auth.AuthSessionBackend[source]

Bases: dazzler.system.auth.AuthBackend

Auth Backend integrated with the session system.

async get_username(request)[source]

Get the username from the request.

Parameters

request (Request) – Incoming request.

Return type

str

Returns

Retrieved username.

async is_authenticated(request)[source]

If the request is authenticated.

Parameters

request (Request) – The request to verify if authentication credentials are provided.

Return type

bool

Returns

Whether the user is authenticated.

async login(user, request, response)[source]

Do what it takes to store the login info after being successfully authenticated by the authenticator.

Parameters
  • user (User) – The authenticated user

  • request (Request) – Incoming request.

  • response (Response) – A redirect response if needed to set cookies.

Returns

async logout(user, request, response)[source]

Delete what makes this user authenticated in the system.

Parameters
  • user – User to logout.

  • request – Incoming request.

  • response – A redirect response if need to clear cookies.

Returns

class dazzler.system.auth.Authenticator(app)[source]

Bases: object

Base authenticator, a subclass of this must be presented to DazzlerAuth init in order to provide authentication for an app.

__init__(app)[source]
app = None
async authenticate(username, password)[source]

For login purpose.

Parameters
  • username (str) –

  • password (str) –

Return type

Optional[User]

Returns

async authorize(user, page)[source]

Implement to authorize on a page basis.

Parameters
Return type

bool

async get_user(username)[source]

Retrieve a user by it’s username.

Parameters

username (str) –

Return type

User

Returns

async register_user(username, password, email=None, fields=None)[source]

Register an user on form submit.

Return a string as an error, otherwise the operation is successful.

Return type

Optional[str]

class dazzler.system.auth.DazzlerAuth(app, authenticator, backend=None, login_page=None, default_redirect=None, register_page=None)[source]

Bases: object

Handle the logic for page authentication.

Requires an authenticator to provide the end user authentication method.

Default to session backend, make sure a session middleware is present.

Activates in the configs with:

[authentication] enable = True authenticator = “module.submodule:AuthenticatorClass”

__init__(app, authenticator, backend=None, login_page=None, default_redirect=None, register_page=None)[source]
Parameters
  • app (dazzler.Dazzler) –

  • backend (Optional[AuthBackend]) –

async login(request)[source]
async logout(request)[source]
async register(request)[source]
require_page_login(func, redirect=True, handle_page=True)[source]
class dazzler.system.auth.User(username, roles=None, email=None, metadata=None)[source]

Bases: object

Base user of the dazzler auth system.

__init__(username, roles=None, email=None, metadata=None)[source]
email: Optional[str]
metadata: Optional[dict]
roles: Optional[List[str]]
username: str
dazzler.system.auth.build_register_page(register_handler, title='New User', include_email=False, page_name='register', page_url='/auth/register', custom_fields=None, submit_label='Register', username_pattern='[\\\\w\\\\d\\\\-_]+')[source]
Return type

Page

dazzler.system.session module

class dazzler.system.session.FileSessionBackEnd(app)[source]

Bases: dazzler.system.session.SessionBackEnd

Session backed by the file system.

Should only be used for development purpose where redis or another solution is not available.

__init__(app)[source]
Parameters

app (dazzler.Dazzler) – Running dazzler app.

async acquire(session_id)[source]
async cleanup(_)[source]
async delete(session_id, key)[source]

Delete a session key value.

Parameters
  • session_id (str) – Session to delete the key for.

  • key (str) – The key to delete.

Returns

async get(session_id, key)[source]

Get a key for the session id.

Parameters
  • session_id (str) – Session to fetch the data for.

  • key (str) – Key to get.

Return type

Any

Returns

async load(session_id)[source]
Return type

Optional[dict]

release(session_id)[source]
async save(session_id, data)[source]
async set(session_id, key, value)[source]

Set a key for the session id.

Parameters
  • session_id (str) – Session to set data with a key.

  • key (str) – Key to set

  • value (Any) – Value to keep.

Returns

class dazzler.system.session.Session(session_id, query_queue)[source]

Bases: object

Session object available in requests by the middleware

Access with request['session']. Or from binding: context.session

__init__(session_id, query_queue)[source]
Parameters
  • session_id (str) – The session id to perform operations.

  • query_queue (Queue) – To send commands up.

async delete(key)[source]

Delete the value at key.

Parameters

key – Key to delete.

Returns

async get(key)[source]

Get an item from the session.

Parameters

key (str) – The item to fetch.

Return type

Any

Returns

The value of the key for the session.

async pop(key)[source]

Retrieve and delete the key.

Parameters

key

Returns

async set(key, value)[source]

Associate a value with a key for the session.

Parameters
  • key (str) – Key to set for the session

  • value (Any) – The value to set.

Returns

class dazzler.system.session.SessionAction(value)[source]

Bases: enum.Enum

An enumeration.

DELETE = 3
GET = 1
SET = 2
class dazzler.system.session.SessionBackEnd(app)[source]

Bases: object

Base class to save & load sessions.

__init__(app)[source]
Parameters

app (dazzler.Dazzler) – Running dazzler app.

async delete(session_id, key)[source]

Delete a session key value.

Parameters
  • session_id (str) – Session to delete the key for.

  • key (str) – The key to delete.

Returns

async get(session_id, key)[source]

Get a key for the session id.

Parameters
  • session_id (str) – Session to fetch the data for.

  • key (str) – Key to get.

Returns

async on_new_session(session_id)[source]

Called when a new session is created. Override to handle.

async set(session_id, key, value)[source]

Set a key for the session id.

Parameters
  • session_id (str) – Session to set data with a key.

  • key (str) – Key to set

  • value (Any) – Value to keep.

Returns

class dazzler.system.session.SessionMiddleware(app, backend=None)[source]

Bases: dazzler.system._middleware.Middleware

Insert session objects into requests.

__init__(app, backend=None)[source]
Parameters
  • app (dazzler.Dazzler) – Dazzler application.

  • backend (SessionBackEnd) –

verify_session(session_id)[source]

dazzler.system.transforms module

Ties & transform API

class dazzler.system.transforms.Add(value)[source]

Bases: dazzler.system.transforms._ValueTransform

Perform an addition on the chain value.

class dazzler.system.transforms.And(other)[source]

Bases: dazzler.system.transforms._Comparison

class dazzler.system.transforms.Append(value)[source]

Bases: dazzler.system.transforms._ValueTransform

Append a value a the end of the chained list.

class dazzler.system.transforms.AspectValue(target)[source]

Bases: dazzler.system.transforms._TargetTransform

Resolve the target value.

class dazzler.system.transforms.Concat(other)[source]

Bases: dazzler.system.transforms.Transform

Concat a list or string into a new string/list containing entries from both sides.

__init__(other)[source]
class dazzler.system.transforms.Divide(value)[source]

Bases: dazzler.system.transforms._ValueTransform

Division operation Left / Right

class dazzler.system.transforms.Equals(other)[source]

Bases: dazzler.system.transforms._Comparison

class dazzler.system.transforms.Filter(comparison)[source]

Bases: dazzler.system.transforms._Comparable

Filter elements of the list

class dazzler.system.transforms.Find(comparison)[source]

Bases: dazzler.system.transforms._Comparable

Find an item in a list with a comparison.

from dazzler.system.transforms import RawValue, Find, Get, Equals

RawValue([{'a': 'a', 'b': 'b'}, {'a': 'b', 'b': 'a'}])            .transform(Find(Get('a').t(Equals('b'))))
# => {'a': 'b', 'b': 'a'}
class dazzler.system.transforms.Format(template)[source]

Bases: dazzler.system.transforms.Transform

Format the value into the template.

Template format: ${key}

For primitive values (string, numbers), the value will be formatted in ${value} template key.

Objects are formatted with their keys items formatted with the value.

from dazzler.system.transforms import RawValue, Format

RawValue('foo').Format('${value} bar')
# => 'foo bar'

RawValue({'a': 'foo', 'b': 'bar'}).Format('${a} ${b}')
# => 'foo bar'

RawValue(['foo', 'bar']).Format('${0} ${1}')
# => 'foo bar'
__init__(template)[source]
class dazzler.system.transforms.FromJson[source]

Bases: dazzler.system.transforms.Transform

Parse the chain value from JSON.

class dazzler.system.transforms.FromPairs[source]

Bases: dazzler.system.transforms.Transform

Transform a list of list of key value pairs into an object.

class dazzler.system.transforms.Get(field)[source]

Bases: dazzler.system.transforms.Transform

Get the field value of the chain object.

__init__(field)[source]
class dazzler.system.transforms.Greater(other)[source]

Bases: dazzler.system.transforms._Comparison

class dazzler.system.transforms.GreaterOrEquals(other)[source]

Bases: dazzler.system.transforms._Comparison

class dazzler.system.transforms.If(comparison, then, otherwise=None)[source]

Bases: dazzler.system.transforms._Comparable

Initiate a comparison on the value.

then is execute if the comparison is True else otherwise will be executed if defined.

from dazzler.system.transforms import If, RawValue, Equals, Format

RawValue('foo').t(If(Equals('foo'), then=Format('${value} bar')))
__init__(comparison, then, otherwise=None)[source]
class dazzler.system.transforms.Includes(value)[source]

Bases: dazzler.system.transforms._ValueTransform

True if value is included in the chained list.

class dazzler.system.transforms.Insert(target, front=False)[source]

Bases: dazzler.system.transforms._TargetTransform

Insert the value into the target list.

__init__(target, front=False)[source]
class dazzler.system.transforms.Join(separator)[source]

Bases: dazzler.system.transforms.Transform

__init__(separator)[source]
class dazzler.system.transforms.Length[source]

Bases: dazzler.system.transforms.Transform

Resolve the length of the list.

class dazzler.system.transforms.Lesser(other)[source]

Bases: dazzler.system.transforms._Comparison

class dazzler.system.transforms.LesserOrEquals(other)[source]

Bases: dazzler.system.transforms._Comparison

class dazzler.system.transforms.Map(transform)[source]

Bases: dazzler.system.transforms._Transformable

Map a chained array values.

class dazzler.system.transforms.Match(other)[source]

Bases: dazzler.system.transforms._Comparison

class dazzler.system.transforms.Merge(other, direction='right', deep=False)[source]

Bases: dazzler.system.transforms.Transform

Merge a chained dict value with another dict, either raw value or a Target aspect.

from dazzler.system.transforms import RawValue, Merge

RawValue({'a': 1}).transform(Merge({'b': 2}))
# => {'a': 1, 'b': 2}
__init__(other, direction='right', deep=False)[source]
class dazzler.system.transforms.Modulus(value)[source]

Bases: dazzler.system.transforms._ValueTransform

Perform a modulus operation on the chain.

class dazzler.system.transforms.Multiply(value)[source]

Bases: dazzler.system.transforms._ValueTransform

Multiply chain value * value

class dazzler.system.transforms.Not[source]

Bases: dazzler.system.transforms.Transform

class dazzler.system.transforms.NotEquals(other)[source]

Bases: dazzler.system.transforms._Comparison

class dazzler.system.transforms.Or(other)[source]

Bases: dazzler.system.transforms._Comparison

class dazzler.system.transforms.Pick(fields)[source]

Bases: dazzler.system.transforms.Transform

Pick the fields of the object.

from dazzler.system.transforms import RawValue, Pick

RawValue({'a': 1, 'b': 2, 'c': 3}).t(Pick(['a', 'b']))
# => {'a': 1, 'b': 2}
__init__(fields)[source]
class dazzler.system.transforms.Pluck(field)[source]

Bases: dazzler.system.transforms.Transform

Take a value at field from a list of objects.

from dazzler.system.transforms import RawValue, Pluck

RawValue([{'a': 1, 'b': 2, 'c': 3}]).t(Pick('a'))
# => [1]
__init__(field)[source]
class dazzler.system.transforms.Prepend(value)[source]

Bases: dazzler.system.transforms._ValueTransform

Prepend a value at the beginning of the list.

class dazzler.system.transforms.Put(key, target)[source]

Bases: dazzler.system.transforms.Transform

Put the value at key on target

Target should be a dict or a ~.dazzler.system.Target aspect resolving to a dict.

__init__(key, target)[source]
class dazzler.system.transforms.Range(start, end, step=1)[source]

Bases: dazzler.system.transforms.Transform

Return an array of number from start to end

__init__(start, end, step=1)[source]
class dazzler.system.transforms.RawValue(value)[source]

Bases: dazzler.system.transforms._ValueTransform

Resolve a raw value.

class dazzler.system.transforms.Reduce(transform)[source]

Bases: dazzler.system.transforms._Transformable

Reduce the list value

class dazzler.system.transforms.Reverse[source]

Bases: dazzler.system.transforms.Transform

Reverse a string or array elements.

class dazzler.system.transforms.Set(key, value)[source]

Bases: dazzler.system.transforms.Transform

Set the key value on the trigger value.

Value can be raw or a dazzler.system.Target aspect.

__init__(key, value)[source]
Parameters
  • key (str) –

  • value (Any) –

class dazzler.system.transforms.Slice(start, stop)[source]

Bases: dazzler.system.transforms.Transform

Take a slice of a list from start to stop.

__init__(start, stop)[source]
class dazzler.system.transforms.Sort(transform)[source]

Bases: dazzler.system.transforms._Transformable

Sort transform should return a number

class dazzler.system.transforms.Split(separator)[source]

Bases: dazzler.system.transforms.Transform

Split a string value into a list.

__init__(separator)[source]
class dazzler.system.transforms.Sub(value)[source]

Bases: dazzler.system.transforms._ValueTransform

Subtract values.

class dazzler.system.transforms.Take(n)[source]

Bases: dazzler.system.transforms.Transform

Take the first n elements of the list.

__init__(n)[source]
class dazzler.system.transforms.TiedTransform(trigger, targets)[source]

Bases: object

__init__(trigger, targets)[source]
Parameters
prepare()[source]
t(transform)[source]
transform(transform)[source]
class dazzler.system.transforms.ToJson[source]

Bases: dazzler.system.transforms.Transform

Serialize the chain value to JSON.

class dazzler.system.transforms.ToLower[source]

Bases: dazzler.system.transforms.Transform

Transform a string chained value to lower case.

class dazzler.system.transforms.ToPairs[source]

Bases: dazzler.system.transforms.Transform

Transform an object into pairs of [key, value]

class dazzler.system.transforms.ToPrecision(precision)[source]

Bases: dazzler.system.transforms.Transform

__init__(precision)[source]
class dazzler.system.transforms.ToUpper[source]

Bases: dazzler.system.transforms.Transform

Transform a string chained value to upper case.

class dazzler.system.transforms.Transform[source]

Bases: object

Execution order: Recursive Left to Right

__init__()[source]
prepare()[source]
t(transform)[source]
transform(transform)[source]

Add a transform to chain after this one and all the previously added transforms.

Parameters

transform (Transform) – Transformation to apply.

Returns

self

class dazzler.system.transforms.Trim[source]

Bases: dazzler.system.transforms.Transform

Trim whitespace around a chained string value.

class dazzler.system.transforms.Unique[source]

Bases: dazzler.system.transforms.Transform

Filter duplicates out of the list.

class dazzler.system.transforms.Zip(value)[source]

Bases: dazzler.system.transforms._ValueTransform

Associates values from each list