Skip to main content

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

Uploaded Source

Built Distribution

nukecontexts-0.1.2-py2-none-any.whl (6.1 kB view details)

Uploaded Python 2

File details

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

File metadata

File hashes

Hashes for nukecontexts-0.1.2.tar.gz
Algorithm Hash digest
SHA256 22f9f3fa1efa124e82e1775cee74f61910116dea235f64d7a09e1c81754bb3a1
MD5 1242058a7c5f7b018b08c9a2655708d2
BLAKE2b-256 371219fdaa3d8a42339f647f6b508bcc1f89b961faa30181a3654eddac0a95d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nukecontexts-0.1.2-py2-none-any.whl
Algorithm Hash digest
SHA256 19f8cba6e5879bef13b99f75d210c1b49f94b79abf0ebe8c57c908103c291b4b
MD5 359f372b06df6b1f16b4e116294c3a2d
BLAKE2b-256 bb0e0e7b5391ff1011708f57fe2491e018816e9ec9106cc4b9b40ba3c1e6a118

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