stalker.core.models.types.TypeTemplate

Inheritance diagram of stalker.core.models.types.TypeTemplate

class stalker.core.models.types.TypeTemplate(path_code='', file_code='', type=None, **kwargs)[source]

Bases: stalker.core.models.entity.Entity

The TypeTemplate model holds templates for Types.

TypeTemplate objects help to specify where to place a file related to TypeEntity objects and its derived classes.

The first very important usage of TypeTemplates is to place asset Version‘s to proper places inside a Project‘s Structure.

Parameters:
  • path_code – The Jinja2 template code which specifies the path of the given item. It is relative to the project root which is in general {{repository.path}}/{{project.code}}/
  • file_code – The Jinja2 template code which specifies the file name of the given item
  • type_ – A TypeEntity object or any other class which is derived from TypeEntity.

Examples:

A template for asset versions can have this parameters:

from stalker import db
from satlker.db import auth
from stalker.core.models import types, pipelineStep

# setup the default database
db.setup()

# store the query method for ease of use
session = db.session
query = db.session.query

# login to the system as admin
admin = auth.login("admin", "admin")

# create a couple of variables
path_code = "ASSETS/{{asset_type.name}}/{{pipeline_step.code}}"

file_code = "{{asset.name}}_{{take.name}}_{{asset_type.name}}_v{{version.version_number}}"

# create a pipeline step object
modelingStep = pipelineStep.PipelineStep(
    name="Modeling",
    code="MODEL",
    description="The modeling step of the asset",
    created_by=admin
)

# create a "Character" AssetType with only one step
typeObj = types.AssetType(
    name="Character",
    description="this is the character asset type",
    created_by=admin,
    steps=[modelingStep]
)

# now create our TypeTemplate
char_template = types.TypeTemplate(
    name="Character",
    description="this is the template which explains how to place Character assets",
    path_code=path_code,
    file_code=file_code,
    type=typeObj,
)

# assign this type template to the structure of the project with id=101
myProject = query(project.Project).filter_by(id=101).first()

# append the type template to the structures' asset templates
myProject.structure.asset_templates.append(char_template)

session.commit()

Now with the code above, whenever a new Version created for a Character asset, Stalker will automatically place the related file to a certain folder and with a certain file name defined by the template. For example the above template should render something like below for Windows:

|- M:\\PROJECTS  --> {{repository.path}}
 |- PRENSESIN_UYKUSU  --> {{project.code}}
  |- ASSETS  --> "ASSETS"
   |- Character  --> {{asset_type.name}}
    |- Olum  --> {{asset.name}}
     |- MODEL  --> {{pipeline_step.code}}
      |- Olum_MAIN_MODEL_v001.ma --> {{asset.name}}_{{take.name}}_{{asset_type.name}}_v{{version.version_number}}

And one of the good side is you can create a version from Linux, Windows or OSX all the paths will be correctly handled by Stalker.

__init__(path_code='', file_code='', type=None, **kwargs)[source]

Methods

__init__(**kwargs[, path_code, file_code, type])

Attributes

code
created_by gets and sets the User object who has created this
date_created gets and sets the datetime.datetime object which shows when
date_updated gets and sets the datetime.datetime object which shows when
description the description of the entity
file_code this is the property that helps you assign values to
name the name of the entity
nice_name this is the nice name of the SimpleEntity. It has the same
path_code this is the property that helps you assign values to
tags a list of Tag objects which shows the related tags to the
type the target type this template should work on, should be an
updated_by gets and sets the User object who has updated this
created_by

gets and sets the User object who has created this AuditEntity

date_created

gets and sets the datetime.datetime object which shows when this object has been created

date_updated

gets and sets the datetime.datetime object which shows when this object has been updated

description

the description of the entity

file_code[source]

this is the property that helps you assign values to file_code attribute

name

the name of the entity

nice_name

this is the nice name of the SimpleEntity. It has the same value with the name (contextually) but with a different format like, all the whitespaces replaced by underscores (“_”), all the CamelCase form will be expanded by underscore (_) characters and it is always lowercase.

There is also the code attribute which is simple the uppercase form of nice_name if it is not defined differently (i.e set to another value).

path_code[source]

this is the property that helps you assign values to path_code attribute

tags

a list of Tag objects which shows the related tags to the entity

type

the target type this template should work on, should be an instance of TypeEntity

updated_by

gets and sets the User object who has updated this AuditEntity

Previous topic

stalker.core.models.types.LinkType

Next topic

stalker.core.models.user

This Page