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
win32comorcomtypeslibraries. - 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.
Metadata
Release files for stalker 1.1.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| stalker-1.1.2.1.tar.gz | 188.0 kB | Without provenance | Details for stalker-1.1.2.1.tar.gz |
Release files / stalker-1.1.2.1.tar.gz
| Download URL | stalker-1.1.2.1.tar.gz |
|---|---|
| Size | 188.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
423eae4b96bdd057edaa2f482e892fca90d9af23c1169179889b53d054f9e62a
|
|
BLAKE2b-256 checksum How to use checksums |
85d065095948dd1bacf3d472fc4df6b77e5a632ae883066a8249bdc8fd2aab9e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.3
|
Security for stalker 1.1.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.