cioclarisse 0.3.3rc6
Clarisse plugin for Conductor Cloud Rendering Platform.

# Conductor for Clarisse

A scripted class submitter plugin for Clarisse iFX, compatible with versions 5.0.

## Install


**To install the latest version.**
```bash
pip install --upgrade cioclarisse --target=$HOME/Conductor
```

**To install a specific version, for example 0.1.0.**
```bash
pip install --upgrade --force-reinstall cioclarisse==0.1.0 --target=$HOME/Conductor
```
**Then tell Clarisse how to find the plugin on startup.** 

Set the following path in the Startup Script section of the preferences window.

```bash
$CIO_DIR/cioclarisse/startup.py
```


## Usage

Right mouse click on a browser window and choose New->ConductorJob.

For detailed help, checkout the [tutorial](https://docs.conductortech.com/tutorials/clarisse) and [reference](https://docs.conductortech.com/reference/clarisse) documentation.

## Contributing


Clone the repo.

```
git clone git@github.com:ConductorTechnologies/cioclarisse.git
cd cioclarisse
```

Set up a clean virtual envirionment with Python 2.7 for development (optional).

```
python -m virtualenv venv
. ./venv/bin/activate
```

Install development dependencies
```
pip install -r requirements_dev.txt
```

Build and install from this directory into to a convenient location for testing.
```

pip install --upgrade -r requirements.txt --target=$HOME/ConductorStaging

python $HOME/ConductorStaging/cioclarisse/post_install.py
```

When you install from the file requirements.txt, the dependency on ciocore is specified as a local sibling of this project, meaning you can develop ciocore and cioclarisse in parallel.

The post_install.py script writes a variable CIO_DIR into `clarisse.env` files in the standard Clarisse prefs location. 

This allows you to use that variable in Clarisse's startup panel to register the Conductor plugin. 

If you want to use a different Conductor plugin installation, the best way is to edit the variable in `clarisse.env`. 

Check the output of the command for more info.



## License
[MIT](https://choosealicense.com/licenses/mit)

## Changelog

## Version:0.3.3-rc.6 -- 31 May 2023

### Fixed

* Fixed pip command in circleCI config, since PyPi and semver version schemes are slightly different.
* Fixed bad quote nesting in Circle config.

## Version:0.3.3-rc.3 -- 30 May 2023

### Changed

* Modified CircleCI config to push to PyPi on tags. 

### Version:0.3.2 -- 15 April 2023

* If Use OCIO is specified, upload the entire OCIO directory. [7795809]
* Grammar and doc fixes. [ee6d3ee]

### Version:0.3.1 -- 15 Dec 2022

* Fixed a crash when closing extra environment window. [1d0163b]
* Adds the ability to include metadata wit the submission. [18ae897]

### Version:0.2.13 -- 06 Dec 2022

* Use the dependency (ciopath with faster deduplication code. 
* Fix a bug where irregular chunks with a semicolon could be interpreted as the end of command.

### Version:0.2.11 -- 26 Oct 2022

* Lock certifi version. [1035f41]

### Version:0.2.10 -- 04 Jul 2022

* Adds a checkbox to bypass all validations. [7f327e3]

### Version:0.2.9 -- 04 Jul 2022

* On connect, we ensure dropdown menus have a valid selection. [a3a6ba0]
* Remove post submission render package cleanup since it was disabled for daemon uploads anyway, and having it persist can be useful for troubleshooting. [1a08036]
* Catch validation exceptions and when they happen, issue a validation meta-warning so as noty to block the submission. [23627c4]
* Add a button on the submission success message box that opens a web browser at the job url on the dashboard. [e79855b]
* Fixed a crash that appeared in Clarisse 5SP-8 that appeared when closing a Gui Window, such as the Extra Assets window. [b34e0ac]
### Version:0.2.8 -- 04 Jul 2022

* Remove refresh and validation to stop crash. [ccaeb80]
* Minor change to presentation in the Companion app. [b8b5df1]

### Version:0.2.6 -- 10 May 2022

* Guard against a crash during validation of frame ranges. [2752de4]
* Removed the broken upload_only option. [6b8b00e]

### Version:0.2.5 -- 09 Mar 2022

* Sets up Conductor logging in in the Clarisse plugin. [cfd5bab]

### Version:0.2.4 -- 25 Jan 2022

*  Internal pipeline changes that do not affect customers. [c39c45b]

### Version:0.2.3 -- 01 Aug 2021

* Address issue where cnode sometimes can't find the image from its path. It seems to be a bug where
if any of the export_context methods are used to create the render package, the resulting file is
not readable by Cnode. The workaround is to do a regular save, but this only works if there are no
project references in the project. [89fa15a]

### Version:0.2.2 -- 23 Jul 2021

* Ignore empty paths when linuxifying windows project files. [8818d19]

### Version:0.2.1 -- 21 Jul 2021

* Moved some environment variable definitions to the installer class in the sidecar repo. [1b35dd4]
* Fix several button width issues. [ec2ab0e]

### Version:0.2.0 -- 25 Jun 2021

* Python 3 compatibility, not tested yet. [4a21d23]
* Guard against possible post_install errors on windows.. [af66aa8]
* Replace expander and seq and path from ciocore. [668a494]


### Version:0.1.13 -- 16 Mar 2021

* Adds slack slack config. [3fccbaa]
* Universal ci and improvements for contributors. [61958f5]

### Version:0.1.11 -- 11 Mar 2021

* Add .circleci/config.yml. [39ca3d3]
* Migration name change. [ce141d1]

### Version:0.1.9 -- 19 Oct 2020

* Scans for color prefs filepaths, including ocio config if enabled. [672b734]
* Adds browse folder button in extra uploads so that the user can upload ocio directory. [7a17254]
* Repair script so that the plugin finds cioprep and ciocnode correctly. [cf8c2b2]

### Version:0.1.8 -- 19 Oct 2020

* Fix tmpfile name error, which was causing a failure to make the file linux suitabole for our linux backend. [d7d958e]

### Version:0.1.7 -- 08 Oct 2020

* Fixed bug where the response window would fail to show the job url. [d0f74f8]

### Version:0.1.7 -- 08 Oct 2020

* Bump version file to 0.1.7. [9e998d8]
* Fixed bug where the response window would fail to show the job url. [d0f74f8]
* Update changelog. [fc10fa7]

### Version:0.1.6 -- 08 Oct 2020

* Refactored/combined  Job and Submission. 
* Adds better dependency scraping and variable resolution. Only follows branch used.
* Adds some validations around daemon - also better validation window. [3aa8ecc]

### Version:0.1.5 -- 02 Oct 2020

* Fixed bug where dependency scan was not currectly evaluating expressions, or returning them to their original value.  [6676679]
* Flattened directory structure. [39255ed]
* Remove dry run validation. [0b330da]

### Version:0.1.4 -- 01 Oct 2020

* Render file sanitized, and missing assets dont include sys files. [88adba3]
* Branch based dependency scan and refactor. [171d871]

### Version:0.1.3 -- 28 Sep 2020

* Post install makes backap and is more verbose. [82f0669]

### Version:0.1.2 -- 28 Sep 2020


* Removes some atts and use export_w_deps. [f836f69]
* Make sure cio line always written. [84cd18d]
* Simplify tokens, remove unneeded attributes. [e951c33]


### Version:0.1.1 -- 06 Sep 2020

* Require core 0.2.9 in setup.py. [bffc68d]
* Remove best chunk size. [6b9b08e]
* Remove timestamp. [e536849]
* Fixed sequence call that didn't use factory. [7c9e590]
* Dry up windows linuxify code. [d1966fd]
* Remove offset kludge. [748c741]
* Replace log_error with real errors and catch them properly. [240cc29]
* Converted to use coredata connection and adds post_install. [cdc9854]

### Version:0.1.0 -- 25 Jul 2020

* Pip build working. [2edf325]
* Rename package to cioclarisse. [b480d50]
* Flatter structure. [318a1c5]
* Implement setup.py for pip installation. [cc3cc39]
* Fix import statements from conductor_client fork/reorg

## OLD CHANGELOG

### Version:v2.11.7 -  2019.12.09

*  Fixed bug where empty config.yaml could not be parsed.

### Version:v2.11.6 -  2019.11.30

* Better detection of windows paths to be replaced. Less chance of false positives.

### Version:v2.11.5 -  2019.11.25

* Path manipulation code now runs on Windows only.

### Version:v2.11.4 -  2019.11.19


* Now handles windows path management offline by replacing paths in project files. In some situations links to resources in files with nested references could get erased while loading a project if all the references are not resolved. For this reason, its not sufficient to replace the paths in the session with the clarrisse sdk. Paths must be valid before the project loads. 
* Fixed bug where render file would be cleaned up before the upload daemon had a chance to upload it.

### Version:v2.11.3  -  2019.11.14

* Catch invalid glob path that caused Clarisse to crash.

### Version:v2.10.1  -  2019.09.26

* Submitter title defaults to $PNAME.
* Images attribute changed to images_and_layers.
* Instance types menu entries are now ordered by machine spec.
* Pre render script replaces backslashes as well as drive letters.
* Better error on failure to make subdirectories.

### Version:v2.9.1  -  2019.08.30

*  Supports rendering of individual image layers without rendering the containing image.
*  You can proceed with a render if some dependencies are missing. You are shown a list of missing files first. Offending files are removed from the upload list, which would previously cause a submission failure.
*  Supports shipping of the clarisse.cfg file so that preferences such as "output AOV to separate files" are respected. It has been necessary to strip some UI-focused categories to avoid a crash on Windows.
*  Choose between localizing contexts, or shipping the job with nested xrefs in tact. Due to a bug in the Clarisse undo mechanism after localizing contexts, the only way to restore the project previously was to reload a saved backup after submitting. Now we can handle shipping xrefs, there's no need to modify the scene before submission and therefore the whole operation is faster.
*  `<angle bracket tokens>` are now used to build the task command. The previous release used Clarisse `$VARIABLES` which could be confusing and less robust.
*  Some CLI args, like -license_server, -config_file, and -debug_level, have been moved into the wrapper in order to keep the task command clean. They are implemented as default values that make sense for submissions to the cloud, but can be overridden b,y including them in the task template.
*  Dependency scanning now has improved handling and information display when badly formed paths are encountered.
* Render package: Ship a regular project ASCII file to Conductor, in favour of the now deprecated render package binary.
*   Removed the over-complicated tree view widget for software package selection in favor of a dropdown menu.
*   If several images or layers are being rendered to different locations, we determine the writable output as the common location among them. If this path turns out to be the root path, it is considered invalid.