Exemple #1
0
    def process(self):
        self._max_qtasks = 0
        self._current_progress = 0
        result = []
        for item in self._wrangletasklist:
            frange = str(item.text(2))
            fids = Frange(input_range=frange)
            self._max_qtasks += len(fids.frames)

        self.setNumberOfQTasks.emit(self._max_qtasks)
        self.updateProgress.emit(self._current_progress)
        for item in self._wrangletasklist:
            self._mutex.lock()
            flag = self._abort
            self._mutex.unlock()
            if flag:
                break

            taskid = str(item.text(5))
            frange = str(item.text(2))

            fids = Frange(input_range=frange)
            frameList = fids.frames

            dl = DPADataLibrary.DjangoLibrary(BaseQName)
            for frame in frameList:
                tid = taskid + "_" + DpaPipeFormattedFrame( frame )

                entry = ["~", "~", "~", "~", "~", "~"]
                entry[0] = tid
                task = dl.get(tid)

                entry[1] = task.queueName
                entry[2] = task.queueStatus
                entry[3] = task.queueMachine
                entry[4] = task.queueStartTime
                entry[5] = task.queueElapsedTime

                if task.queueStatus == "archived":
                    entry[2] = "done"
                elif task.queueStatus == "open":
                    entry[2] = "waiting"
                else:
                    if task.queueStartTime != "" and task.queueEndTime == "":
                        entry[5] = DpaPipeElapsedUnspacedTime( task.queueStartTime, DpaPipeFormattedUnspacedTime() )
                # if task.queueStartTime != "" and task.queueEndTime != "":
                #     entry[5] = DpaPipeElapsedUnspacedTime( task.queueStartTime, task.queueEndTime )

                result.append(entry)
                self._current_progress += 1
                self.updateProgress.emit(self._current_progress)

        self._mutex.lock()
        self._working = False
        self._mutex.unlock()

        self.jobComplete.emit(result)
        self.finished.emit()

    # End of QTaskListWorker class
Exemple #2
0
    def verify(self):

        ver_range = Frange()
        ver_range.add([v.number for v in self.versions])
        versions_disp = str(ver_range)

        ptask_field = "PTask"
        versions_field = "Version(s)"
        
        output = Output()
        output.header_names = [
            ptask_field,
            versions_field,
        ]

        output.add_item(
            {
                ptask_field: self.ptask.spec,
                versions_field: versions_disp,
            },
            color_all=Style.bright,
        )

        if self.force:
            output.title = "Syncing: "
        else:
            output.title = "Confirm sync:"

        output.dump()

        if not self.force:
            if not Output.prompt_yes_no(Style.bright + "Sync" + Style.reset):
                raise ActionAborted("Sync aborted by user.")
Exemple #3
0
    def verify(self):

        ver_range = Frange()
        ver_range.add([v.number for v in self.versions])
        versions_disp = str(ver_range)

        ptask_field = "PTask"
        versions_field = "Version(s)"
        
        output = Output()
        output.header_names = [
            ptask_field,
            versions_field,
        ]

        output.add_item(
            {
                ptask_field: self.ptask.spec,
                versions_field: versions_disp,
            },
            color_all=Style.bright,
        )

        if self.force:
            output.title = "Syncing: "
        else:
            output.title = "Confirm sync:"

        output.dump()

        if not self.force:
            if not Output.prompt_yes_no(Style.bright + "Sync" + Style.reset):
                raise ActionAborted("Sync aborted by user.")
Exemple #4
0
 def setUp(self):
     """Get a new location object for each test."""
     self.f1 = Frange()
     self.f2 = Frange("1")
     self.f3 = Frange("-1, 0, 1")
     self.f4 = Frange("-5-5")
     self.f5 = Frange("-10-10:2")
     self.f6 = Frange("10-20:3, 1, 4-7")
     self.f7 = Frange(["4, 7", "10-20:3", "1"])
Exemple #5
0
 def setUp(self):
     """Get a new location object for each test."""
     self.f1 = Frange()
     self.f2 = Frange("1")
     self.f3 = Frange("-1, 0, 1")
     self.f4 = Frange("-5-5")
     self.f5 = Frange("-10-10:2")
     self.f6 = Frange("10-20:3, 1, 4-7")
     self.f7 = Frange(["4, 7", "10-20:3", "1"])
Exemple #6
0
def qtaskList(taskid, frange):
    fids = Frange(input_range=frange)
    frameList = fids.frames
    dl = DPADataLibrary.DjangoLibrary(BaseQName)

    ret = []
    for frame in frameList:
        tid = taskid + "_" + str(frame).zfill(4)

        entry = ["~", "~", "~", "~", "~", "~"]
        entry[0] = tid
        task = dl.get(tid)

        entry[1] = task.queueName
        entry[2] = task.queueStatus
        if task.queueStatus == "archived":
            entry[2] = "done"
        if task.queueStatus == "open":
            entry[2] = "waiting"

        entry[3] = task.queueMachine
        entry[4] = task.queueStartTime
        entry[5] = task.queueElapsedTime
        if task.queueStartTime != "" and task.queueEndTime == "":
            entry[5] = DpaPipeElapsedUnspacedTime(
                task.queueStartTime, DpaPipeFormattedUnspacedTime())
        if task.queueStartTime != "" and task.queueEndTime != "":
            entry[5] = DpaPipeElapsedUnspacedTime(task.queueStartTime,
                                                  task.queueEndTime)

        ret.append(entry)

    return ret
Exemple #7
0
    def _get_frange_from_controls(self):

        # auto frame range 
        if self._frange_stack.currentIndex() == 0:
                            
            frange_str = str(self._frame_start.value()) + "-" + \
                str(self._frame_end.value()) + ":" + \
                str(self._frame_step.value())
                            
        # manual frame range
        else:
            frange_str = self._manual_frange.text()
                            
        try:                
            frange = Frange(frange_str)
        except FrangeError:
            self._show_error(
                "Unable to determine frame range from: " + frange_str)
            return None

        return frange
Exemple #8
0
class FrangeInstanceTestCase(unittest.TestCase):
    """Frange class method tests."""

    # -------------------------------------------------------------------------
    # setup/teardown:
    # -------------------------------------------------------------------------
    def setUp(self):
        """Get a new location object for each test."""
        self.f1 = Frange()
        self.f2 = Frange("1")
        self.f3 = Frange("-1, 0, 1")
        self.f4 = Frange("-5-5")
        self.f5 = Frange("-10-10:2")
        self.f6 = Frange("10-20:3, 1, 4-7")
        self.f7 = Frange(["4, 7", "10-20:3", "1"])

    # -------------------------------------------------------------------------
    def tearDown(self):
        """Clean up the location instance after each test method."""
        del self.f1
        del self.f2
        del self.f3
        del self.f4
        del self.f5
        del self.f6
        del self.f7
 
    # -------------------------------------------------------------------------
    # Tests:
    # -------------------------------------------------------------------------
    def test_method_add(self):
        """Add specified frames to the range"""
        self.f1.add("1-5")
        for i in range(1, 6):
            self.assertTrue(i in self.f1.frames)

        self.f1.add("10-20:2")
        for i in range(1, 6) and range(10, 21, 2):
            self.assertTrue(i in self.f1.frames)

        self.f1.add("30, 32, 34-36")
        for i in range(1, 6) and range(10, 21, 2) and range(30, 37, 2):
            self.assertTrue(i in self.f1.frames)

        self.f1.add(["40-50, 60"])
        for i in [range(1, 6) and range(10, 21, 2) and range(30, 35, 2) and range(40, 51) and 60]:
            self.assertTrue(i in self.f1.frames)

        self.assertRaises(FrangeError, self.f1.add("4, 7-"))


    def test_method_remove(self):
        """Remove specified frames to the range"""
        self.f7.remove("1")
        for i in [1]:
            self.assertFalse(i in self.f7.frames)

        self.f7.remove("10-15:3")
        for i in range(10, 15, 3):
            self.assertFalse(i in self.f7.frames)

        self.f7.remove("16, 19-20")
        for i in [16 and range(19, 21)]:
            self.assertFalse(i in self.f7.frames)

        self.f7.remove(["4, 7"])
        for i in [4, 7]:
            self.assertFalse(i in self.f7.frames)

        self.assertRaises(FrangeError, self.f7.remove("4, 7-"))

    def test_property_start(self):
        """Frange 'start' property is int and read only"""

        start = self.f1.start
        self.assertEqual(start, None)

        start = self.f2.start
        self.assertIsInstance(start, int)
        self.assertEqual(start, 1)

        start = self.f3.start
        self.assertIsInstance(start, int)
        self.assertEqual(start, -1)
        
        start = self.f4.start
        self.assertIsInstance(start, int)
        self.assertEqual(start, -5)

        start = self.f5.start
        self.assertIsInstance(start, int)
        self.assertEqual(start, -10)
        
        start = self.f6.start
        self.assertIsInstance(start, int)
        self.assertEqual(start, 1)
        
        start = self.f7.start
        self.assertIsInstance(start, int)
        self.assertEqual(start, 1)

    def test_property_end(self):
        """Frange 'end' property is int and read only"""

        end = self.f1.end
        self.assertEqual(end, None)

        end = self.f2.end
        self.assertIsInstance(end, int)
        self.assertEqual(end, 1)

        end = self.f3.end
        self.assertIsInstance(end, int)
        self.assertEqual(end, 1)
        
        end = self.f4.end
        self.assertIsInstance(end, int)
        self.assertEqual(end, 5)

        end = self.f5.end
        self.assertIsInstance(end, int)
        self.assertEqual(end, 10)
        
        end = self.f6.end
        self.assertIsInstance(end, int)
        self.assertEqual(end, 19)
        
        end = self.f7.end
        self.assertIsInstance(end, int)
        self.assertEqual(end, 19)

    def test_property_first(self):
        """Frange 'first' property is int and read only"""

        first = self.f1.first
        self.assertEqual(first, None)

        first = self.f2.first
        self.assertIsInstance(first, int)
        self.assertEqual(first, 1)

        first = self.f3.first
        self.assertIsInstance(first, int)
        self.assertEqual(first, -1)
        
        first = self.f4.first
        self.assertIsInstance(first, int)
        self.assertEqual(first, -5)

        first = self.f5.first
        self.assertIsInstance(first, int)
        self.assertEqual(first, -10)
        
        first = self.f6.first
        self.assertIsInstance(first, int)
        self.assertEqual(first, 10)
        
        first = self.f7.first
        self.assertIsInstance(first, int)
        self.assertEqual(first, 4)

    def test_property_last(self):
        """Frange 'last' property is int and read only"""

        last = self.f1.last
        self.assertEqual(last, None)

        last = self.f2.last
        self.assertIsInstance(last, int)
        self.assertEqual(last, 1)

        last = self.f3.last
        self.assertIsInstance(last, int)
        self.assertEqual(last, 1)
        
        last = self.f4.last
        self.assertIsInstance(last, int)
        self.assertEqual(last, 5)

        last = self.f5.last
        self.assertIsInstance(last, int)
        self.assertEqual(last, 10)
        
        last = self.f6.last
        self.assertIsInstance(last, int)
        self.assertEqual(last, 7)
        
        last = self.f7.last
        self.assertIsInstance(last, int)
        self.assertEqual(last, 1)

    def test_property_step(self):
        """Frange 'step' property is int and read only"""

        step = self.f1.step
        self.assertEqual(step, None)

        step = self.f2.step
        self.assertIsInstance(step, int)
        self.assertEqual(step, 1)

        step = self.f3.step
        self.assertIsInstance(step, int)
        self.assertEqual(step, 1)
        
        step = self.f4.step
        self.assertIsInstance(step, int)
        self.assertEqual(step, 1)

        step = self.f5.step
        self.assertIsInstance(step, int)
        self.assertEqual(step, 2)
        
        step = self.f6.step
        self.assertEqual(step, None)
        
        step = self.f7.step
        self.assertIsInstance(step, int)
        self.assertEqual(step, 3)

    def test_property_count(self):
        """Frange 'count' property is int and read only"""

        count = self.f1.count
        self.assertIsInstance(count, int)
        self.assertEqual(count, 0)

        count = self.f2.count
        self.assertIsInstance(count, int)
        self.assertEqual(count, 1)

        count = self.f3.count
        self.assertIsInstance(count, int)
        self.assertEqual(count, 3)
        
        count = self.f4.count
        self.assertIsInstance(count, int)
        self.assertEqual(count, 11)

        count = self.f5.count
        self.assertIsInstance(count, int)
        self.assertEqual(count, 11)
        
        count = self.f6.count
        self.assertIsInstance(count, int)
        self.assertEqual(count, 9)
        
        count = self.f7.count
        self.assertIsInstance(count, int)
        self.assertEqual(count, 7)
Exemple #9
0
class FrangeInstanceTestCase(unittest.TestCase):
    """Frange class method tests."""

    # -------------------------------------------------------------------------
    # setup/teardown:
    # -------------------------------------------------------------------------
    def setUp(self):
        """Get a new location object for each test."""
        self.f1 = Frange()
        self.f2 = Frange("1")
        self.f3 = Frange("-1, 0, 1")
        self.f4 = Frange("-5-5")
        self.f5 = Frange("-10-10:2")
        self.f6 = Frange("10-20:3, 1, 4-7")
        self.f7 = Frange(["4, 7", "10-20:3", "1"])

    # -------------------------------------------------------------------------
    def tearDown(self):
        """Clean up the location instance after each test method."""
        del self.f1
        del self.f2
        del self.f3
        del self.f4
        del self.f5
        del self.f6
        del self.f7

    # -------------------------------------------------------------------------
    # Tests:
    # -------------------------------------------------------------------------
    def test_method_add(self):
        """Add specified frames to the range"""
        self.f1.add("1-5")
        for i in range(1, 6):
            self.assertTrue(i in self.f1.frames)

        self.f1.add("10-20:2")
        for i in range(1, 6) and range(10, 21, 2):
            self.assertTrue(i in self.f1.frames)

        self.f1.add("30, 32, 34-36")
        for i in range(1, 6) and range(10, 21, 2) and range(30, 37, 2):
            self.assertTrue(i in self.f1.frames)

        self.f1.add(["40-50, 60"])
        for i in [
                range(1, 6) and range(10, 21, 2) and range(30, 35, 2)
                and range(40, 51) and 60
        ]:
            self.assertTrue(i in self.f1.frames)

        self.assertRaises(FrangeError, self.f1.add("4, 7-"))

    def test_method_remove(self):
        """Remove specified frames to the range"""
        self.f7.remove("1")
        for i in [1]:
            self.assertFalse(i in self.f7.frames)

        self.f7.remove("10-15:3")
        for i in range(10, 15, 3):
            self.assertFalse(i in self.f7.frames)

        self.f7.remove("16, 19-20")
        for i in [16 and range(19, 21)]:
            self.assertFalse(i in self.f7.frames)

        self.f7.remove(["4, 7"])
        for i in [4, 7]:
            self.assertFalse(i in self.f7.frames)

        self.assertRaises(FrangeError, self.f7.remove("4, 7-"))

    def test_property_start(self):
        """Frange 'start' property is int and read only"""

        start = self.f1.start
        self.assertEqual(start, None)

        start = self.f2.start
        self.assertIsInstance(start, int)
        self.assertEqual(start, 1)

        start = self.f3.start
        self.assertIsInstance(start, int)
        self.assertEqual(start, -1)

        start = self.f4.start
        self.assertIsInstance(start, int)
        self.assertEqual(start, -5)

        start = self.f5.start
        self.assertIsInstance(start, int)
        self.assertEqual(start, -10)

        start = self.f6.start
        self.assertIsInstance(start, int)
        self.assertEqual(start, 1)

        start = self.f7.start
        self.assertIsInstance(start, int)
        self.assertEqual(start, 1)

    def test_property_end(self):
        """Frange 'end' property is int and read only"""

        end = self.f1.end
        self.assertEqual(end, None)

        end = self.f2.end
        self.assertIsInstance(end, int)
        self.assertEqual(end, 1)

        end = self.f3.end
        self.assertIsInstance(end, int)
        self.assertEqual(end, 1)

        end = self.f4.end
        self.assertIsInstance(end, int)
        self.assertEqual(end, 5)

        end = self.f5.end
        self.assertIsInstance(end, int)
        self.assertEqual(end, 10)

        end = self.f6.end
        self.assertIsInstance(end, int)
        self.assertEqual(end, 19)

        end = self.f7.end
        self.assertIsInstance(end, int)
        self.assertEqual(end, 19)

    def test_property_first(self):
        """Frange 'first' property is int and read only"""

        first = self.f1.first
        self.assertEqual(first, None)

        first = self.f2.first
        self.assertIsInstance(first, int)
        self.assertEqual(first, 1)

        first = self.f3.first
        self.assertIsInstance(first, int)
        self.assertEqual(first, -1)

        first = self.f4.first
        self.assertIsInstance(first, int)
        self.assertEqual(first, -5)

        first = self.f5.first
        self.assertIsInstance(first, int)
        self.assertEqual(first, -10)

        first = self.f6.first
        self.assertIsInstance(first, int)
        self.assertEqual(first, 10)

        first = self.f7.first
        self.assertIsInstance(first, int)
        self.assertEqual(first, 4)

    def test_property_last(self):
        """Frange 'last' property is int and read only"""

        last = self.f1.last
        self.assertEqual(last, None)

        last = self.f2.last
        self.assertIsInstance(last, int)
        self.assertEqual(last, 1)

        last = self.f3.last
        self.assertIsInstance(last, int)
        self.assertEqual(last, 1)

        last = self.f4.last
        self.assertIsInstance(last, int)
        self.assertEqual(last, 5)

        last = self.f5.last
        self.assertIsInstance(last, int)
        self.assertEqual(last, 10)

        last = self.f6.last
        self.assertIsInstance(last, int)
        self.assertEqual(last, 7)

        last = self.f7.last
        self.assertIsInstance(last, int)
        self.assertEqual(last, 1)

    def test_property_step(self):
        """Frange 'step' property is int and read only"""

        step = self.f1.step
        self.assertEqual(step, None)

        step = self.f2.step
        self.assertIsInstance(step, int)
        self.assertEqual(step, 1)

        step = self.f3.step
        self.assertIsInstance(step, int)
        self.assertEqual(step, 1)

        step = self.f4.step
        self.assertIsInstance(step, int)
        self.assertEqual(step, 1)

        step = self.f5.step
        self.assertIsInstance(step, int)
        self.assertEqual(step, 2)

        step = self.f6.step
        self.assertEqual(step, None)

        step = self.f7.step
        self.assertIsInstance(step, int)
        self.assertEqual(step, 3)

    def test_property_count(self):
        """Frange 'count' property is int and read only"""

        count = self.f1.count
        self.assertIsInstance(count, int)
        self.assertEqual(count, 0)

        count = self.f2.count
        self.assertIsInstance(count, int)
        self.assertEqual(count, 1)

        count = self.f3.count
        self.assertIsInstance(count, int)
        self.assertEqual(count, 3)

        count = self.f4.count
        self.assertIsInstance(count, int)
        self.assertEqual(count, 11)

        count = self.f5.count
        self.assertIsInstance(count, int)
        self.assertEqual(count, 11)

        count = self.f6.count
        self.assertIsInstance(count, int)
        self.assertEqual(count, 9)

        count = self.f7.count
        self.assertIsInstance(count, int)
        self.assertEqual(count, 7)