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

Uploaded Source

Built Distribution

nukecontexts-0.1.5-py2-none-any.whl (7.2 kB view details)

Uploaded Python 2

File details

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

File metadata

File hashes

Hashes for nukecontexts-0.1.5.tar.gz
Algorithm Hash digest
SHA256 2f603268cbb9aee566a1004587c8e8d1589bf3951d247ada62ba725618a72ed3
MD5 44d9e3ad4a2dfd43c221a2d4379b3235
BLAKE2b-256 a20bd7e9ea02df9acd7a88748afbe30c869d60370ab8dfa7aef79dcdeeb58870

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nukecontexts-0.1.5-py2-none-any.whl
Algorithm Hash digest
SHA256 bd622c6f90af3966b97eefde07df841a036241def3b227c83fc327ff9fa26878
MD5 2ff3458f2a6051ba4730fd44a31d05f0
BLAKE2b-256 4d4ce7b824185934624a1b8909dce758a7a760c6a50af048ed8df0a178b1752d

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