Esempio n. 1
0
 def testIter(self):
     known = set([
         "/cheech/chong.0001.exr", "/cheech/chong.0003.exr",
         "/cheech/chong.0005.exr"
     ])
     seq = fileseq.FileSequence("/cheech/chong.1,3,5#.exr")
     self.assertFalse(known.difference(seq))
Esempio n. 2
0
    def testFormat(self):
        seq = fileseq.FileSequence("/cheech/chong.1-10,30,40#.exr")
        self.assertEquals("chong.0001-0010,0030,0040#.exr", str(seq.format()))
        self.assertEquals("0011-0029,0031-0039", seq.format("{inverted}"))

        seq = fileseq.findSequencesOnDisk("broken_seq")[0]
        self.assertEquals("0000-0002,0004,0006-0008", seq.format("{range}"))
        self.assertEquals("broke.0000-0002,0004,0006-0008#.exr", seq.format())
        seq = fileseq.findSequencesOnDisk("step_seq")[0]
        self.assertEquals("step_seq/step1.1-13x4,14-17#.exr", str(seq))
Esempio n. 3
0
    def testSeqGettersType2(self):
        seq = fileseq.FileSequence("/foo/boo1-5#.exr")
        self.assertEquals(5, len(seq))
        self.assertEquals("/foo/", seq.dirname())
        self.assertEquals("boo", seq.basename())
        self.assertEquals("#", seq.padding())
        self.assertEquals(".exr", seq.extension())

        self.assertEquals("/foo/boo9999.exr", seq.frame(9999))
        self.assertEquals("/foo/boo0001.exr", seq[0])
        self.assertEquals("/foo/boo0001.exr", seq.index(0))
Esempio n. 4
0
def move_file_sequence(source, destination):
    """
    Moves a sequence of files from source to destination

    Args:
        source (str): Sequence filepath, eg, /path/to/file.####.png
        destination (str): Destination, using a single # for frames, eg,
            /path/to/renamed.#.png
    """
    src_sequence = fileseq.findSequenceOnDisk(source)
    dst_sequence = fileseq.FileSequence(destination.replace("#", "1-1#"))
    dst_sequence.setFrameSet(src_sequence.frameSet())
    for src_frame, dst_frame in zip(src_sequence, dst_sequence):
        shutil.move(src_frame, dst_frame)
Esempio n. 5
0
    def testNoPlaceholder(self):
        expected = "/path/to/file.mov"
        seqs = fileseq.FileSequence(expected)

        self.assertEquals(expected, seqs.index(0))
        self.assertEquals(expected, seqs.frame(0))
        self.assertEquals(expected, seqs[0])
        self.assertEquals(None, seqs.frameSet())
        self.assertEquals("", seqs.frameRange())
        self.assertEquals("", seqs.invertedFrameRange())
        self.assertEquals(1, len(seqs))

        seqs.setFrameRange("1-100")

        for i in xrange(0, 100):
            self.assertEquals(expected, seqs.index(i))
            self.assertEquals(expected, seqs.frame(i + 1))
            self.assertEquals(expected, seqs[i])
        self.assertEquals(1, len(seqs))

        seqs.setPadding("#")
        self.assertEquals(100, len(seqs))
Esempio n. 6
0
# The easiest way to get third party code is to find a python "package" (which is
# another term for a folder of modules) that is on pypi, the python package index:
#   https://pypi.org/
# This is a communal resource for verified code that will work with python, and is
# really easy to install! Python comes with a builtin tool called "pip", short for
# "Package Installer for Python". You can run this on the command line to automatically
# find packages from pypi and install them for you.
# To demonstrate, you can run the following command to install Fileseq, a common vfx
# package for handling file sequences
#   pip install Fileseq
# Fileseq documentation:
#   https://fileseq.readthedocs.io/en/latest/
import fileseq

sequence = fileseq.FileSequence("/fake/file/sequence.5-100#.png")
sequence.frameRange()  # '5-100'
sequence.frame(32)  # '/fake/file/sequence.0032.png'
sequence.start()  # 5
sequence.basename()  # 'sequence.'
sequence.dirname()  # '/fake/file'

for filepath in sequence:
    print(filepath)

# Installing third party modules using pip will install them in a location relative to
# the current python interpreter (ie, the executable for the version of python you're
# currently running). It's important to make sure you install to the right version of
# python, otherwise the package won't be available to the other ones. If you want to be
# explicit about which version you install to, you can call pip from the python
# executable using the "-m" flag like so:
Esempio n. 7
0
 def testSerialization(self):
     fs = fileseq.FileSequence("/path/to/file.1-100x2#.exr")
     s = cPickle.dumps(fs, cPickle.HIGHEST_PROTOCOL)
     fs2 = cPickle.loads(s)
     self.assertEquals(str(fs), str(fs2))
     self.assertEquals(len(fs), len(fs2))
Esempio n. 8
0
 def testSplitXY(self):
     seqs = fileseq.FileSequence("/cheech/0-9x1/chong.1-10#.exr")
     self.assertEquals("/cheech/0-9x1/chong.0001.exr", seqs.index(0))
Esempio n. 9
0
 def testNumericFilename(self):
     seqs = fileseq.FileSequence("/path/to/1-10#.exr")
     self.assertEquals("/path/to/0001.exr", seqs.index(0))
Esempio n. 10
0
 def testMissingPeriods(self):
     seqs = fileseq.FileSequence("/path/to/something_1-10#_exr")
     self.assertEquals("/path/to/something_0001_exr", seqs.index(0))
Esempio n. 11
0
 def testSplit(self):
     seqs = fileseq.FileSequence("/cheech/chong.1-10,30,40#.exr").split()
     self.assertEquals("/cheech/chong.0001-0010#.exr", str(seqs[0]))
     self.assertEquals("/cheech/chong.0030#.exr", str(seqs[1]))
     self.assertEquals("/cheech/chong.0040#.exr", str(seqs[2]))
Esempio n. 12
0
 def testFrame(self):
     seq = fileseq.FileSequence("/foo/bar/bing.#.exr")
     self.assertEquals("/foo/bar/bing.0001.exr", seq.frame(1))
     self.assertEquals("/foo/bar/bing.#.exr", seq.frame("#"))
Esempio n. 13
0
 def testSetFrameRange(self):
     seq = fileseq.FileSequence("/cheech/chong.1-5#.exr")
     seq.setFrameRange("10-20")
     self.assertEquals("/cheech/chong.10-20#.exr", str(seq))
Esempio n. 14
0
 def testSetPadding(self):
     seq = fileseq.FileSequence("/foo/[email protected]")
     seq.setPadding("#")
     self.assertEquals("/foo/bong.0001.exr", seq[0])
Esempio n. 15
0
 def testSetBasename(self):
     seq = fileseq.FileSequence("/foo/[email protected]")
     seq.setBasename("bar.")
     self.assertEquals("/foo/bar.1.exr", seq[0])
Esempio n. 16
0
 def testSetDirname(self):
     seq = fileseq.FileSequence("/foo/[email protected]")
     seq.setDirname("/bing/")
     self.assertEquals("/bing/bong.1.exr", seq[0])