コード例 #1
0
 def test_get_folder_path_representation(self):
     self.generate_fixture_scene_asset_instance()
     path = file_tree_service.get_instance_folder_path(
         self.asset_instance.serialize(),
         self.scene.serialize(),
         task_type=self.task_type_animation.serialize(),
         output_type=self.output_type_cache,
         representation="abc")
     self.assertEqual(
         path, "/simple/productions/export/cosmos_landromat/scene/s01/sc01/"
         "animation/cache/props/tree/instance_0001/abc")
コード例 #2
0
 def test_get_folder_path_asset_asset_instance(self):
     self.generate_fixture_asset_types()
     self.generate_fixture_asset_character()
     self.generate_fixture_asset_asset_instance()
     path = file_tree_service.get_instance_folder_path(
         self.asset_instance.serialize(),
         self.asset.serialize(),
         task_type=self.task_type.serialize(),
         output_type=self.output_type_materials,
         representation="ml")
     self.assertEqual(
         path,
         "/simple/productions/export/cosmos_landromat/assets/props/tree/"
         "shaders/materials/character/rabbit/instance_0001/ml")
コード例 #3
0
ファイル: resources.py プロジェクト: withgame/zou
    def add_path_info(
        self,
        output_file,
        mode,
        asset_instance,
        temporal_entity,
        output_type,
        task_type=None,
        name="main",
        extension="",
        representation="",
        nb_elements=1,
        separator="/",
    ):
        folder_path = file_tree_service.get_instance_folder_path(
            asset_instance,
            temporal_entity,
            mode=mode,
            output_type=output_type,
            revision=output_file["revision"],
            task_type=task_type,
            representation=representation,
            name=name,
            sep=separator,
        )
        file_name = file_tree_service.get_instance_file_name(
            asset_instance,
            temporal_entity,
            mode=mode,
            revision=output_file["revision"],
            output_type=output_type,
            task_type=task_type,
            name=name,
        )

        output_file = files_service.update_output_file(
            output_file["id"],
            {
                "path": "%s%s%s%s" %
                (folder_path, separator, file_name, extension)
            },
        )

        output_file.update({
            "folder_path": folder_path,
            "file_name": file_name
        })

        return output_file
コード例 #4
0
ファイル: resources.py プロジェクト: withgame/zou
    def post(self, asset_instance_id, temporal_entity_id):
        args = self.get_arguments()

        try:
            asset_instance = assets_service.get_asset_instance(
                asset_instance_id)
            entity = entities_service.get_entity(temporal_entity_id)
            asset = assets_service.get_asset(asset_instance["asset_id"])
            output_type = files_service.get_output_type(args["output_type_id"])
            task_type = tasks_service.get_task_type(args["task_type_id"])
            user_service.check_project_access(asset["project_id"])
            user_service.check_entity_access(asset["id"])

            folder_path = file_tree_service.get_instance_folder_path(
                asset_instance,
                entity,
                output_type=output_type,
                task_type=task_type,
                mode=args["mode"],
                name=args["name"],
                representation=args["representation"],
                revision=args["revision"],
                sep=args["separator"],
            )
            file_name = file_tree_service.get_instance_file_name(
                asset_instance,
                entity,
                output_type=output_type,
                task_type=task_type,
                mode=args["mode"],
                name=args["name"],
                revision=args["revision"],
            )
        except MalformedFileTreeException as exception:
            return (
                {
                    "message": str(exception),
                    "received_data": request.json
                },
                400,
            )

        return {"folder_path": folder_path, "file_name": file_name}, 200
コード例 #5
0
ファイル: resources.py プロジェクト: NeroSouza/zou
    def post(self, asset_instance_id):
        args = self.get_arguments()

        try:
            asset_instance = assets_service.get_asset_instance(
                asset_instance_id)
            asset = assets_service.get_asset(asset_instance["asset_id"])
            output_type = files_service.get_output_type(args["output_type_id"])
            task_type = tasks_service.get_task_type(args["task_type_id"])
            if not permissions.has_manager_permissions():
                user_service.check_has_task_related(asset["project_id"])

            folder_path = file_tree_service.get_instance_folder_path(
                asset_instance,
                output_type=output_type,
                task_type=task_type,
                mode=args["mode"],
                name=args["name"],
                representation=args["representation"],
                revision=args["revision"],
                sep=args["separator"]
            )
            file_name = file_tree_service.get_instance_file_name(
                asset_instance,
                output_type=output_type,
                task_type=task_type,
                mode=args["mode"],
                name=args["name"],
                revision=args["revision"]
            )
        except MalformedFileTreeException as e:
            current_app.logger.error(e)
            return {
                "error":
                    "Tree is not properly written, check modes and variables",
                "received_data": request.json,
            }, 400

        return {"path": folder_path, "name": file_name}, 200