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.1.3.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

nukecontexts-0.1.3-py2-none-any.whl (6.9 kB view details)

Uploaded Python 2

File details

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

File metadata

File hashes

Hashes for nukecontexts-0.1.3.tar.gz
Algorithm Hash digest
SHA256 bf2f0ac5f79664bddd12be9f4b70a3167f9df27ac967cf65830de2030ac99c87
MD5 78d1acbdda2923bfbd51325f4ecbf4df
BLAKE2b-256 caa04457f5d99627c7056a7c8ce6f48031d19b7129dd33d17e7301198cb998ca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nukecontexts-0.1.3-py2-none-any.whl
Algorithm Hash digest
SHA256 c648c93119aee581aa2cca7bb750a092cf7d511ead9606222af64a5be59093b5
MD5 9e51905d7184cf719b9810a782c57eac
BLAKE2b-256 36f233940417ef5ff442bb027cea87da5a21d5d85e9e29935a4d3b50b3fdd9a0

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