コード例 #1
0
    def test_select(self):
        with deepstar_path():
            VideoModel().insert('test1', 'test2')

            FrameSetModel().insert(1)

            transform_set_model = TransformSetModel()
            transform_set_model.insert('test', 1)

            result = transform_set_model.select(1)
            self.assertEqual(result, (1, 'test', 1, None))
コード例 #2
0
    def test_fk_transform_sets_on_delete_cascade(self):
        with deepstar_path():
            FrameSetModel().insert(None)
            FrameModel().insert(1, 0)

            transform_set_model = TransformSetModel()
            transform_set_model.insert('test', 1)
            transform_model = TransformModel()
            transform_model.insert(1, 1, '{}', 0)
            self.assertEqual(transform_model.list(1), [(1, 1, 1, '{}', 0)])
            transform_set_model.delete(1)
            self.assertIsNone(transform_model.list(1))
コード例 #3
0
    def test_list(self):
        with deepstar_path():
            VideoModel().insert('test1', 'test2')

            FrameSetModel().insert(1)

            transform_set_model = TransformSetModel()
            transform_set_model.insert('test', 1)
            transform_set_model.insert('test', 1)
            transform_set_model.insert('test', 1)

            result = transform_set_model.list()
            self.assertEqual(len(result), 3)
            self.assertEqual(result[0], (1, 'test', 1, None))
            self.assertEqual(result[1], (2, 'test', 1, None))
            self.assertEqual(result[2], (3, 'test', 1, None))
コード例 #4
0
    def select_merge(self,
                     transform_set_ids,
                     name='merge',
                     fk_frame_sets=None,
                     fk_prev_transform_sets=None,
                     rejected=False):
        """
        This method merges multiple transform sets into one transform set.

        :param list(int) transform_set_ids: The transform set IDs.
        :param str name: The merged transform set's name. The default value is
            'merge'.
        :param int fk_frame_sets: The frame set ID to which this transform set
            corresponds (if any). The default value is None.
        :param int fk_prev_transform_sets: The transform set ID the previous
            transform set in this series of transformations. The default value
            is None.
        :param bool rejected: True if should include rejected else False if
            should not. The default value is False.
        :raises: CommandLineRouteHandlerError
        :rtype: None
        """

        transform_set_model = TransformSetModel()

        for transform_set_id in transform_set_ids:
            result = transform_set_model.select(transform_set_id)
            if result is None:
                raise CommandLineRouteHandlerError(
                    f'Transform set with ID {transform_set_id:08d} not found')

        transform_set_id = transform_set_model.insert(name, fk_frame_sets,
                                                      fk_prev_transform_sets)

        p1 = TransformSetSubDir.path(transform_set_id)

        os.makedirs(p1)

        transform_model = TransformModel()
        length = int(os.environ.get('MODEL_LIST_LENGTH', '100'))

        for transform_set_id_ in transform_set_ids:
            offset = 0
            p2 = TransformSetSubDir.path(transform_set_id_)

            while True:
                transforms = transform_model.list(transform_set_id_,
                                                  length=length,
                                                  offset=offset,
                                                  rejected=rejected)

                if not transforms:
                    break

                for transform in transforms:
                    transform_id = transform_model.insert(
                        transform_set_id, transform[2], transform[3],
                        transform[4])

                    p3 = TransformFile.path(p2, transform[0], 'jpg')
                    p4 = TransformFile.path(p1, transform_id, 'jpg')

                    shutil.copy(p3, p4)

                    debug(
                        f'Transform with ID {transform[0]:08d} at {p3} '
                        f'merged as ID {transform_id:08d} at {p4}', 4)

                offset += length

        result = transform_set_model.select(transform_set_id)

        debug(
            f'transform_set_id={result[0]}, name={result[1]}, '
            f'fk_frame_sets={result[2]}, fk_prev_transform_sets={result[3]}',
            3)