Help on module fcp2shk:
NAME
fcp2shk - A customizable script for converting a Final Cut Pro XML File to a Shake script.
FILE
fcp2shk.pyc
DESCRIPTION
This resultant Shake script is intended to be a starting point for the final Digitial Intermediate, not a complete conversion of a Final Cut Pro Sequence to a Shake file.
A cut list is also generated for error checking and reparsing purposes.
CLASSES
xmllib.XMLParser
fcpParser
shkFileCreator
class fcpParser(xmllib.XMLParser)
| This Final Cut Pro XML Parser is based on xmllib.XMLParser which is now obsolete?!? This needs to be converted to use xml.sax instead.
|
| Methods defined here:
|
| __init__(self)
| Initialise the XMLParser object and data needed for this parser.
|
| findReelPath(self, name)
| If a clip is used more than once, it will not have the reel and filename listed more than once, so we need to find it from a previous clip.
|
| getclips(self)
| Returns the array of clips
|
| handle_data(self, data)
| Handle the textual 'data' that is inside the xml tags.
|
| parse(self, s)
| Parse the given string 's'.
|
| push(self)
| This pushes a clip into an internal clip array
|
| unknown_endtag(self, tag, attrs=None)
| Detects end tags like
|
| unknown_starttag(self, tag, attrs=None)
| Detects start tags like
|
| ----------------------------------------------------------------------
| Methods inherited from xmllib.XMLParser:
|
| close(self)
| # Interface -- handle the remaining data
|
| feed(self, data)
| # Interface -- feed some data to the parser. Call this as
| # often as you want, with as little or as much text as you
| # want (may include '\n'). (This just saves the text, all the
| # processing is done by goahead().)
|
| finish_endtag(self, tag)
| # Internal -- finish processing of end tag
|
| finish_starttag(self, tagname, attrdict, method)
| # Internal -- finish processing of start tag
|
| getnamespace(self)
| # Interface - return a dictionary of all namespaces currently valid
|
| goahead(self, end)
| # Internal -- handle data as far as reasonable. May leave state
| # and data to be processed by a subsequent call. If 'end' is
| # true, force handling all data as if followed by EOF marker.
|
| handle_cdata(self, data)
| # Example -- handle cdata, could be overridden
|
| handle_charref(self, name)
| # Example -- handle character reference, no need to override
|
| handle_comment(self, data)
| # Example -- handle comment, could be overridden
|
| handle_doctype(self, tag, pubid, syslit, data)
| # Overridable -- handle DOCTYPE
|
| handle_endtag(self, tag, method)
| # Overridable -- handle end tag
|
| handle_proc(self, name, data)
| # Example -- handle processing instructions, could be overridden
|
| handle_starttag(self, tag, method, attrs)
| # Overridable -- handle start tag
|
| handle_xml(self, encoding, standalone)
| # Overridable -- handle xml processing instruction
|
| parse_attributes(self, tag, i, j)
| # Internal -- parse attributes between i and j
|
| parse_cdata(self, i)
| # Internal -- handle CDATA tag, return length or -1 if not terminated
|
| parse_comment(self, i)
| # Internal -- parse comment, return length or -1 if not terminated
|
| parse_doctype(self, res)
| # Internal -- handle DOCTYPE tag, return length or -1 if not terminated
|
| parse_endtag(self, i)
| # Internal -- parse endtag
|
| parse_proc(self, i)
| # Internal -- handle a processing instruction tag
|
| parse_starttag(self, i)
| # Internal -- handle starttag, return length or -1 if not terminated
|
| reset(self)
| # Interface -- reset this instance. Loses all unprocessed data
|
| setliteral(self, *args)
| # For derived classes only -- enter literal mode (CDATA)
|
| setnomoretags(self)
| # For derived classes only -- enter literal mode (CDATA) till EOF
|
| syntax_error(self, message)
| # Example -- handle relatively harmless syntax errors, could be overridden
|
| translate_references(self, data, all=1)
| # Interface -- translate references
|
| unknown_charref(self, ref)
|
| unknown_entityref(self, name)
|
| ----------------------------------------------------------------------
| Data and other attributes inherited from xmllib.XMLParser:
|
| attributes = {}
|
| elements = {}
|
| entitydefs = {'amp': '&', 'apos': ''', 'gt': '>', 'lt': '&...
class shkFileCreator
| This class creates a customized Shake file by passing an array of clips that have been parsed from a file.
| The array of clips should contain a dictionary with this data in it:
| clipinfo['in'], clipinfo['out'] in and out of the clip
| clipinfo['start'], clipinfo['end'] start and end in the track
| clipinfo['name'] unique name of the clip (fcpParser names them 'clipname_shotnumber', i.e. apartment_2_shot54)
| clipinfo['cutnum'] shot or cut number in the track
| clipinfo['filename'] the complete path and filename of the file(s) being cut in
| clipinfo['reel'] which reel this footage came from
|
| Methods defined here:
|
| __init__(self)
| Initialise the the shkFileCreator object and data needed for this parser.
|
| addclip(self, clip)
| Generates SFileIn and IRetime nodes.
|
| addclips(self, clips)
| Main Function. Call from main procedure of program.
|
| removeForbiddenChars(self, text)
| Lots of shady characters make it into clip names, well this gets rid of them!
|
| sortByReel(self, a, b)
| Internal clip sorter.
|
| sortSelectDataByFrame(self, a, b)
| Internal select data sorter.
|
| writeFile(self, outputfile)
| Internal function to assemble the shake components and output the file
DATA
DEBUG = 0
SORTBYREEL = 1
__usage__ = '\nfcp2shk [xmlfile] [shakeoutput] [cutlistoutput]...otorc...