Changelog¶
Version 0.9¶
- Added ability to parse CMX EDLs
- Fixed a script bug where a collection format containing color decisions will not have those color decisions exported as individual color corrections.
- Fixed a bug where we weren’t reading line endings correctly in certain situations.
- Added a cdl_convert.py stub file to the package root level, which will allow running of the cdl_convert script without installation. Due to relative imports in the python code, it was no longer possible to call cdl_convert/cdl_convert.py directly.
- The script, when run directly from cdl_convert.py, will now write errors to stderror correctly, and exit with a status of 1.
Version 0.8¶
- Added –single flag. When provided with an output collection format, each color correction in the input will be exported to it’s own collection.
- Giving a ColorCorrection a non-duplicate ID now works unless the
--halt
flag is given. This means that incoming collections that contain duplicate IDs will not fail out.
Version 0.7.1¶
- Fixed bug where ALE’s without ‘Scan Filename’ fields could not parse correctly.
Version 0.7¶
The biggest change in 0.7 is the addition of collection format support.
.ccc
, Color Correction Collections, can now be parsed and written. .cdl
,
Color Decision Lists, can now be parsed and written. .ale
and .flex
files now return a collection.
- New script flags:
- Adds
--check
flag to script, which checks all parsedColorCorrects
for sane values, and prints warnings to shell - Adds
-d
,--destination
flag to the script, which allows user to specify the output directory converted files will be written to. - Adds
--no-ouput
flag to the script, which goes through the entire conversion process but doesn’t actually write anything to disk. Useful for troubleshooting, especially when combined with--check
- Adds
--halt
flag to the script, which halts on errors that can be resolved safely (such as negative slope or power values)
- Adds
Renames
ColorCollectionBase
toColorCollection
, since it will be used directly by bothccc
andcdl
.Adds
parse_ccc
which returns aColorCollection
.Adds
write_ccc
which writes aColorCollection
as accc
file.Adds
parse_cdl
which returns aColorCollection
.Adds
write_cdl
which returns aColorCollection
as acdl
file.ColorCollection
is now a fully functional container class, with many attributes and methods.Added
ColorDecision
, which stores either aColorCorrection
orColorCorrectionRef
, and an optionalMediaRef
Added
ColorCorrectionRef
, which stores a reference to aColorCorrection
Added
parent
attribute toColorCorrection
.Calling
sop_node
orsat_node
on aColorCorrection
before attempting to set a SOP or Sat power now works.ColorCorrection
cdl_file
init argument renamed toinput_file
, which is now optional and able to be set after init.parse_cc
andparse_rnh_cdl
now only yield a singleColorCorrection
, not a single member list.Added dev-requirements.txt (contains
mock
)All
determine_dest
methods now take a seconddirectory
argument, which determines the output directory.Adds
sanity_check
function which prints values which might be unusual to stdout.parse_cdl
andwrite_cdl
renamed toparse_rnh_cdl
andwrite_rnh_cdl
respectively.member_reset
methods:ColorCorrection
now has areset_members
method, which resets the class level member’s dictionary.MediaRef
also has areset_members
method, as doesColorCollection
reset_all
function calls all of the abovereset_members
methods at once.
- Renamed
cdl_file
argument: parse_cc
cdl_file
arg renamed toinput_file
and now accepts a either a raw string or anElementTree
Element
asinput_file
.parse_rnh_cdl
cdl_file
arg renamed toinput_file
.parse_ale
edl_file
arg renamed toinput_file
.parse_flex
edl_file
arg renamed toinput_file
.
- Renamed
- Python Structure Refactoring
- Moved
HALT_ON_ERROR
into theconfig
module, which should now be referenced and set by importing the entireconfig
module, and referencing or settingconfig.HALT_ON_ERROR
- Script functionality remains in
cdl_convert.cdl_convert
, but everything else has been moved out. AscColorSpaceBase
,AscDescBase
,AscXMLBase
andColorNodeBase
now live undercdl_convert.base
ColorCollection
now lives incdl_convert.collection
ColorCorrection
,SatNode
andSopNode
now live undercdl_convert.correction
ColorDecision
,ColorCorrectionRef
andMediaRef
now live undercdl_convert.decision
- All parse functions now live under
cdl_convert.parse
- All write functions now live under
cdl_convert.write
sanity_check
now live undercdl_convert.utils
reset_all
now lives under the main module
- Moved
Version 0.6.1¶
- Added
AscXMLBase
class for nodes that can be represented by XML to inherit. - Suppressed scientific notation from being written out when writing files. Should now write out as close as Python accuracy allows, and the same number of digits.
write_cc
now writes out 100% correct XML using ElementTree.- Added tests for
write_cc
, which brings our coverage to 100%
Version 0.6¶
Adds much greater ASC CDL XML compliance with the addition of many classes that represent node concepts in the CDL XML schema.
Moves
viewing_desc
andinput_desc
attributes and methods into the base classAscColorSpaceBase
.Moved
desc
attribute and methods into the base classAscDescBase
.Adds
ColorCollectionBase
class for a basis of all collection type nodes (ColorCorrectionCollection
,ColorDecisionList
, etc).Adds
MediaRef
class which represents the MediaRef node of a ColorDecision. This class allows convenient handling of files given as media reference.Adds
HALT_ON_ERROR
module variable which determines certain exception handling behavior. Exceptions that can normally be handled with default behavior (such as negative Slope or Power values) will be dealt with silently instead of stopping the program. Negative Slope and Power values, for example, will clip to 0.0.ColorCorrection
(formallyAscCdl
) class changes:- Renames
AscCdl
toColorCorrection
. - Adds class level member dictionary, which allows lookup of a
ColorCorrection
instance by the unique ID. ColorCorrection
objects now require a unique ID to be instantiated.- Removes
metadata
attribute ofColorCorrection
. - Moves SOP and SAT operations out of
ColorCorrection
into their own classes, which are based onColorNodeBase
. TheSatNode
andSopNode
classes are still meant to be children ofColorCorrection
. - Added
sop_node
andsat_node
attributes to access the childSatNode
andSopNode
. - Removed
metadata
attribute, splitting it into the inherited attributes ofinput_desc
,viewing_desc
anddesc
. desc
attribute is now fully fleshed out as a list of all encountered description fields.- Renamed
cc_id
field toid
, shadowing the built inid
within the class. - Slope, Offset and Power now return as a tuple instead of a list to prevent index assignment, appending and extending.
- Renames
parse_cc
should now parse a much greater variety of.cc
files more accurately.- Now supports infinite Description fields
- Now supports Viewing and Input Description fields
- Significantly simplifies the function.
parse_flex
has been significantly simplified.Test Suite broken up into sub-modules.
Adds PyPy support.
Adds ReadTheDocs
Adds docs to build
Version 0.5¶
- Project is now structured according to Python packaging guidelines with
setup.py
etc. - Some
AscCdl
attributes have been moved into dictionaries (Note that this was later reversed in release 0.6) - Refactors some parse functions to be less complex
- Makes
write_cdl
much simpler and more pythonic.
Version 0.4.2¶
- Hotfix to fix
from __future__
imports
Version 0.4¶
- Python 3 compatible
- More unit testing bug fixes and enhancements.
- Adds better type and exception handling for
AscCdl
setters. - Now sanitizes id fields of any characters they shouldn’t contain.
- Test suite runs on windows now
- Adds Travis-ci for continuous integration testing
parse_cc
now usesElementTree
for XML parsing