PathObject — The Addressing System¶
PathObject (in alc/path/path_object.py) is the universal production address
resolver. Every file path in production is a structured address, not a raw string.
The address¶
A PathObject encodes:
root / company / project / sync_root / tree / entity_type / parent / [group] / child / task / variant / user / version / resolution
From any PathObject you can derive: source paths, render paths, publish
paths, MSD paths, thumbnail paths (.thumb), preview paths (.preview),
proxy paths (.proxy), and media URLs. This is the single address system for
the entire production — disk paths, web routes, and tracking IDs are all
projections of the same address.
Why it matters¶
- One resolver, many surfaces. The same address renders as a Windows disk path, a web URL token, a ShotGrid entity, or a Perforce depot path.
- Grounded integrations. External roots (e.g. Unreal's
/Game, Perforce depots) are grounded through the address, so cross-system references stay resolvable. - Agent context. A
RecipeStephanded to an agent carries aPathObjectas its full production context — where it is, what it's operating on.
Usage¶
from alc.path import PathObject
po = PathObject(r"E:\Alchemy\cgl\tnt\VERSIONS\source\shots\010\SEQ\svz\default\tmiko\000.000\high\...")
po.msd_path # PUBLISHES/msd/<task_id>.json
po.preview_path # web-servable preview media
po.task_id # project_episode_entityType_parent_group_child_task
See the API reference for the full surface.