Skip to main content

A library of composable context managers for Nuke

Project description

https://img.shields.io/pypi/l/nukecontexts.svg https://img.shields.io/pypi/pyversions/nukecontexts.svg https://img.shields.io/pypi/v/nukecontexts.svg https://img.shields.io/pypi/wheel/nukecontexts.svg https://readthedocs.org/projects/nukecontexts/badge/?version=latest

nukecontexts is a library of composable context managers for Nuke to manage the state of complex compositing scripts in code.

Full Documentation

Installation

To install nukecontexts, type:

$ pip install nukecontexts

Open Nuke’s init.py file and add:

nuke.pluginAddPath('/path/to/your/local/python/site-packages')

Getting Started

The most common use case for nukecontexts is automated rendering of multiple states of a compositing script. For example two different output formats, jpg and png.

import nuke
from nukecontexts import ctx

render_node = nuke.toNode('Write1')
with ctx.set_attr(render_node, 'file_type', 'jpeg'):
    nuke.execute(render_node.name(), 1, 1, 1)
with ctx.set_attr(render_node, 'file_type', 'png'):
    nuke.execute(render_node.name(), 1, 1, 1)

The power of nukecontexts comes with composable contexts, using multiple_contexts(). Arbitrarily complex, varying states of the compositing script can be defined and used to automatically generate different results.

merge_node = nuke.toNode('Merge1')
grade_node = nuke.toNode('Grade1')
switch_node = nuke.toNode('Switch1')

ctx1 = ctx.enable([merge_node, grade_node])
ctx2 = ctx.set_attr(grade_node, 'white', 2.0)
ctx3 = ctx.set_attr(switch_node, 'which', 0)
ctx4 = ctx.disable(merge_node)

with ctx.multiple_contexts([ctx1, ctx2, ctx3]):
    """Render with the merge_node and grade_node enabled, the
    grade_node's white attribute set to 2.0 and the switch_node's switch
    position set to 0."""
    nuke.execute(render_node.name(), 1, 1, 1)

with ctx.multiple_contexts([ctx3, ctx4]):
    """Render with the switch_node's switch position set to 0 and the
    merge node disabled; the grade_node's gain value remains at the
    original value."""
    nuke.execute(render_node.name(), 1, 1, 1)

Project details


Download files

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

Source Distribution

nukecontexts-0.2.0.tar.gz (14.0 kB view details)

Uploaded Source

Built Distribution

nukecontexts-0.2.0-py2-none-any.whl (7.3 kB view details)

Uploaded Python 2

File details

Details for the file nukecontexts-0.2.0.tar.gz.

File metadata

File hashes

Hashes for nukecontexts-0.2.0.tar.gz
Algorithm Hash digest
SHA256 7a39e32bd3d8a94861e294dc09e0e28ef4cbc8a2d11e400d05713b3ddb8345ed
MD5 5418d51d4cb4171310648d9c25cf52d8
BLAKE2b-256 68a7b1e6c0865bb53f36b896ebe7ac63e1e0d858190f9a056b0260bf8ae84b42

See more details on using hashes here.

File details

Details for the file nukecontexts-0.2.0-py2-none-any.whl.

File metadata

File hashes

Hashes for nukecontexts-0.2.0-py2-none-any.whl
Algorithm Hash digest
SHA256 202c5b858401300a31f2cfadb89bb6e6f1ad278a1aa9673b477dfeae8740b750
MD5 933c48d2f37bec3020dc3bfd25d1b7aa
BLAKE2b-256 33a0a1b4680700ec0a1b4255267bcec976bd83c3973d5accdbdbde93616c3f67

See more details on using hashes here.

Supported by

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