conductor.houdini.hda.houdini_info module

Summary.

conductor.houdini.hda.houdini_info.HANDLER_MAP

Mapping from a Houdini definition description (such as Arnold) to a class to provide info for the defined asset (such as ArnoldInfo).

Type:dict
class conductor.houdini.hda.houdini_info.ArnoldInfo

Bases: conductor.houdini.hda.houdini_info.HoudiniPluginInfo

A class for retrieving version information about the arnold plugin in Houdini.

Will ultimately produce something like this:

{
    'product': 'htoa',
    'major_version': u'1',
    'minor_version': u'2',
    'release_version': u'6',
    'build_version': u'1',
    'plugin_host_product': 'houdini',
    'plugin_host_version': u'16.5.323'
}
classmethod get_product()

The name that Conductor calls this plugin.

classmethod get_regex()

Regex to extract parts form arnold plugin name.

It is something like like ‘htoa-1.2.6.1’ where the last number (build version) is optional. Note, this regex doubles up. It can extract the full versioned name from the library path (see get_version above), or it can extract individual version number parts from the versioned name

classmethod get_version()

Get the full name and version of the plugin.

This method name is a bit confusing. Its not just a version. It will return something like: ‘htoa-1.2.6.1’

plugin_name = 'arnold_rop'
class conductor.houdini.hda.houdini_info.HoudiniInfo

Bases: conductor.lib.package_utils.ProductInfo

Retrieve information about the current houdini session.

classmethod get_build_version()

Return the name of the software package, e.g. “Autodesk Maya 2015 SP4”

classmethod get_major_version()

e.g. 16.

classmethod get_minor_version()

e.g. 5.

classmethod get_product()

e.g. houdini.

classmethod get_release_version()

e.g. 323.

classmethod get_vendor()

sidefx make Houdini

classmethod get_version()

e.g. 16.5.323.

class conductor.houdini.hda.houdini_info.HoudiniPluginInfo

Bases: conductor.lib.package_utils.ProductInfo

A class for retrieving version information about a plugin in houdini.

Will ultimately produce something like this:

{
    'product': '<plugin name>',
    'major_version': u'3',
    'minor_version': u'00',
    'release_version': u'01',
    'build_version': '',
    'plugin_host_product': 'houdini',
    'plugin_host_version': u'16.5'
}
classmethod exists()

Return true if the plugin has a definition.

Note this will be False if the definition exists but no instances exist.

classmethod find_definition()

Find the houdini definition for a plugin.

Look at all node types that have instances in the scene and check the name of the otl against the name of this plugin, defined in the derived class.

classmethod get_plugin_host_product()

Return the name of the host software package.

Example: “Houdini”.

classmethod get_plugin_host_version()

Return the version of the host software package.

Example: “Houdini 16.5.323”.

classmethod get_product()

Subclass must return product name.

classmethod get_regex()

Derived class must provide a regex.

The regex should extract the product and version parts

classmethod get_version()

Return fully qualified name of the plugin.

Derived class must override.

plugin_name = None
conductor.houdini.hda.houdini_info.get_plugin_definitions()

Get third party digital assets in use.

Uses node_type.instances() to check that node is used in the scene, and path.startswith(os.environ["HFS"]) to filter out stuff that comes with Houdini. The return value is a list of houdini definitions.

conductor.houdini.hda.houdini_info.get_used_plugin_info()

Convert houdini definitions to Conductor info dicts.

We use a mapping from the definition description (see HANDLER_MAP) in order to select the correct class to use to extract the name and version info so it interfaces with Conductor’s package routines. The result is a list of dicts for used plugins.