Skip to main content

A Production Asset Management (ProdAM) System

Project description

license Supported Python versions Unit Tests PyPI Version PyPI Downloads

About

Stalker is an Open Source Production Asset Management (ProdAM) Library designed specifically for Animation and VFX Studios. But it can be used for any kind of projects from any other industry. Stalker is licensed under LGPL v3.

Features

Stalker has the following features:

  • Designed for Animation and VFX Studios (but not limited to).
  • OS independent, can work simultaneously with Windows, macOS and Linux.
  • Supplies excellent Project Management capabilities, i.e. scheduling and tracking tasks, milestones and deadlines (via TaskJuggler).
  • Powerful Asset management capabilities, allows tracking of asset references in shots, scenes, sequences and projects.
  • Customizable object model (Stalker Object Model - SOM).
  • Uses TaskJuggler as the project planing and tracking backend.
  • Mainly developed for PostgreSQL in mind but SQLite3 is also supported.
  • Can be connected to all the major 3D animation packages like Maya, Houdini, Nuke, Fusion, DaVinci Resolve, Blender etc. and any application that has a Python API, and for Adobe Suite applications like Adobe Photoshop through win32com or comtypes libraries.
  • Developed with religious TDD practices.

Stalker is mainly build over the following OpenSource libraries:

As Stalker is a Python library and doesn't supply any graphical UI you can use other tools like Stalker Pyramid which is a Pyramid Web Application and Anima which has PyQt/PySide UIs for applications like Houdini, Maya, Blender, Nuke, Fusion, DaVinci Resolve, Photoshop and many more.

Installation

Simply use:

pip install stalker

Examples

Let's play with Stalker.

Because Stalker uses SQLAlchemy, it is very easy to retrieve complex data. Let's say that you want to query all the Shot Lighting tasks where a specific asset is referenced:

from stalker import Asset, File, Shot, Version

my_asset = Asset.query.filter_by(name="My Asset").first()
# Let's assume we have multiple Versions created for this Asset already
my_asset_version = my_asset.versions[0]
# get a file from that version
my_asset_version_file = my_asset_version.files[0]
# now get any other Lighting Versions that is referencing this file
refs = (
    Version.query
        .join(File, Version.files)
        .filter(Version.name=="Lighting")
        .filter(File.references.contains(my_asset_version_file))
        .all()
)

Let's say you want to get all the tasks assigned to you in a specific Project:

from stalker import Project, Task, User

me = User.query.filter_by(name="Erkan Ozgur Yilmaz").first()
my_project = Project.query.filter_by(name="My Project").first() 
query = Task.query.filter_by(project=my_project).filter(Task.resources.contains(me))
my_tasks = query.all()

You can further query let's say your WIP tasks by adding more criteria to the query object:

from stalker import Status

wip = Status.query.filter_by(code="WIP").first()
query = query.filter_by(status=wip)
my_wip_tasks = query.all()

and that's the way to get complex data in Stalker.

See more detailed examples in API Tutorial.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

stalker-1.1.2.1.tar.gz (188.0 kB view details)

Uploaded Source

File details

Details for the file stalker-1.1.2.1.tar.gz.

File metadata

  • Download URL: stalker-1.1.2.1.tar.gz
  • Upload date:
  • Size: 188.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for stalker-1.1.2.1.tar.gz
Algorithm Hash digest
SHA256 423eae4b96bdd057edaa2f482e892fca90d9af23c1169179889b53d054f9e62a
MD5 c4ee47e0819d0db33aad56d54b10a87a
BLAKE2b-256 85d065095948dd1bacf3d472fc4df6b77e5a632ae883066a8249bdc8fd2aab9e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page