I would still caution that even though it is often *possible* to use regexps for text parsing, it isn’t necessarily the simplest or best idea from either a performance or organizational standpoint. In this case, your script would almost certainly end up being faster and more concise without them.
All that being said, I’ll try to give it another look sometime soon, at least to figure out what’s going on (my suspicion is something to do with line-endings), and to help show regexps in action. One problem is I deleted the original email, and for whatever reason this thread didn’t make it to the forums, so would you mind re-sending your attachments, either to the list or directly to me? Thanks, -Nathan From: Ron Ganbar Sent: Tuesday, June 19, 2012 12:28 AM To: Nuke Python discussion Subject: Re: [Nuke-python] AE Transform to Nuke Hi Nathan, thanks a lot for having a look at this. The weird thing is that the code I have works perfectly when reading the text from a text file, just not when reading from paste. Really annoying to start and write it again from scratch. Plus, I would love to have learned from this script something useful about re. Any chance you can have another look? Thanks, Ron Ganbar email: [email protected] tel: +44 (0)7968 007 309 [UK] +972 (0)54 255 9765 [Israel] url: http://ronganbar.wordpress.com/ On 19 June 2012 07:32, Nathan Rusch <[email protected]> wrote: Hey Ron, I finally got a minute to take a look at your code, and I think it’s pretty clear that the regular expressions are simply failing to match meaningful pieces of the incoming data. However, having done AE keyframe parsing myself in the past (for corner-pinning), I think you may be overcomplicating the situation a little. I would suggest switching to simple per-line tokenization based on simple whitespace splitting (which Python makes ridiculously easy), with logic similar to this: 1) Break your raw data into lines (with rawdata.splitlines()) 2) Find all 'Transform *' header indices in your line list 3) Starting at each header index + 1 extra line (to account for column headers), loop until you hit the next header index (or blank line). 4) At each line, simply use line.split() to tokenize it into strings representing each column, cast each to an appropriate value, and add it to a list of keyframes. 5) For the header, you know it will be all lines up to the first meaningful keyframe block, and it’s easy enough to do the same and parse each line based on its text. I would just grab those values first and use them to do on-the-fly image space conversion for things like position. Also, depending on how many different types of keyframes you want to paste in, you may want to consider a simple hierarchy of functions (or even classes) for parsing different types of keyframe blocks (Position, Rotation, Scale, ...), and maybe even creating the different types of nodes in-line. They will all use the same basic technique for extracting raw data, but then each would be able to handle it slightly differently. Anyway, hope this makes sense. -Nathan From: Ron Ganbar Sent: Friday, June 01, 2012 5:17 AM To: Nuke Python discussion Subject: [Nuke-python] AE Transform to Nuke Hi all, so I've been trying to write this AE Transform to Nuke Transform parser where you simply copy keyframes in After Effects and paste them into Nuke and you get a Transform. I got it to work too after a lot of help from the forum - thanks everyone! But when I collected it into a function and created a callback for it, it broke, and I don't know why. It's been doing my head in for the past three weeks and I can't figure out why! I was hoping someone would take a look at it. I'm attaching two files: AE_to_Nuke.txt is a copy of a few keyframes from After Effects. This is what you should copy then paste in the DAG to test the function. AE_to_Nuke.py is the function I wrote, including the callback at the bottom. Any help would be greatly appreciated. Thanks, Ron Ganbar email: [email protected] tel: +44 (0)7968 007 309 [UK] +972 (0)54 255 9765 [Israel] url: http://ronganbar.wordpress.com/ ------------------------------------------------------------------------------ _______________________________________________ Nuke-python mailing list [email protected], http://forums.thefoundry.co.uk/ http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python _______________________________________________ Nuke-python mailing list [email protected], http://forums.thefoundry.co.uk/ http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python -------------------------------------------------------------------------------- _______________________________________________ Nuke-python mailing list [email protected], http://forums.thefoundry.co.uk/ http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
_______________________________________________ Nuke-python mailing list [email protected], http://forums.thefoundry.co.uk/ http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
