Skip to main content

Library of composable context managers for Nuke

Project description

https://img.shields.io/pypi/v/nukecontexts.svg https://img.shields.io/pypi/l/nukecontexts.svg https://img.shields.io/pypi/wheel/nukecontexts.svg https://img.shields.io/pypi/pyversions/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.1.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 2

File details

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

File metadata

File hashes

Hashes for nukecontexts-0.1.1.tar.gz
Algorithm Hash digest
SHA256 eb99a297badc3340cb7e6cc161a4a17692364c02fb4797ac9746d8c2bff84c0a
MD5 ffa781904a921350b84113e6b6a58312
BLAKE2b-256 447f3c0d637a27772e016d0a7ba3ca74006d209870780131fa7ee5ecde79d65a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nukecontexts-0.1.1-py2-none-any.whl
Algorithm Hash digest
SHA256 ed1674c4a93c6b2ee71ea3c589ad36301e7e464cb8431826706a1394e15a8319
MD5 63c999aac5382e23288951a358bc25b1
BLAKE2b-256 b62388493f474e2f270823e4589d3e28eda9f16badd03cc7eb4c1dc748a64f9f

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