Skip to content

redd76/atan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Talos

Talos bootstraps Python environments into DCC applications. It builds a virtual environment that is compatible with a target host, installs packages into it, and wires that environment into the host's startup so the packages are importable from inside the application.

The first supported host is Autodesk Maya 2025+. Talos uses uv to create environments and install packages.

Why

Maya ships its own isolated Python interpreter with no pip and no easy way to add third-party packages. Talos gives you a repeatable, per-project environment whose Python version matches Maya's, verifies packages are compatible, and links it into Maya through the standard module mechanism — no manual sys.path hacking and nothing to reinstall each Maya launch.

Requirements

  • uv on your PATH.
  • Autodesk Maya 2025 or newer (only needed to link/verify against a real Maya).

Install

uv tool install git+https://github.com/OWNER/talos

(Replace OWNER with the GitHub account hosting this repo.)

Or from a checkout of this repo:

uv tool install .

Use Talos in your project

The recommended workflow: your tool project declares its own Talos environment, so anyone who clones the repo can reproduce it with one command.

cd my-anim-tools            # a Python package (e.g. created with `uv init --package`)

# Declare the environment in your pyproject.toml ([tool.talos] table).
talos init --maya 2025

# Create the env and editable-install your project into it.
# Re-run any time; teammates run this after cloning.
talos sync

# Start Maya 2025 with your project's code importable.
talos launch

init writes this into your pyproject.toml:

[tool.talos]
env = "my-anim-tools"   # defaults to your project name; override with --env
maya = "2025"

The install is editable: edit your code, restart Maya, and the changes are live — no re-sync needed. Your project's own dependencies are resolved into the environment automatically.

Inside a Talos project, every command infers the environment, so talos install numpy, talos verify, talos launch, etc. all work without naming it.

Standalone environments

You can also manage environments directly, without a project:

# Create an environment targeting Maya 2025 (Python 3.11).
talos create anim --maya 2025

# Install packages — from PyPI, a local path, or a git URL.
talos install numpy --env anim
talos install ./my_local_tool --env anim
talos install git+https://github.com/some/tool.git --env anim

# See what's installed.
talos list anim

# Optional: prove the packages import under Maya's own interpreter.
talos verify anim

# Wire the environment into Maya. Launch Maya and `import numpy` will work.
talos link anim

# Or do it in one step: link (if needed) and start the matching Maya version.
talos launch anim

# Later, disconnect it.
talos unlink anim

talos launch resolves the environment's target Maya version, links the environment if it isn't already, and starts Maya detached from your terminal. Pass --no-link to launch without touching the link, or --maya <version> to override the target.

How it works

  • Environments live under ~/.talos/envs/<name>/ (override with TALOS_HOME). Each is a small uv project: a pyproject.toml pinned to Maya's Python version, a uv.lock, and a .venv.
  • Compatibility is enforced by uv's resolver. The environment's requires-python matches Maya's interpreter (Maya 2025/2026 → Python 3.11), so packages and compiled wheels that resolve share Maya's ABI.
  • Linking writes a talos_<name>.mod file into your Maya modules directory (~/Documents/maya/<version>/modules/). Its userSetup.py adds the environment's site-packages to Maya's Python at startup, wrapped in a try/except so a broken environment never blocks Maya from starting.

Documentation

  • Using Talos in your project — the tool-author guide (init → sync → launch, editable dev loop, compatibility notes).
  • CLI reference — every command, flag, and environment variable.
  • Architecture — how environments, compatibility checking, and the Maya bootstrap actually work.
  • Contributing — dev setup and ground rules.

Development

uv sync
uv run pytest
uv run ruff check

License

MIT — see LICENSE.

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors