diff options
author | Sybren A. Stüvel <sybren@stuvel.eu> | 2021-08-11 11:34:35 +0300 |
---|---|---|
committer | Sybren A. Stüvel <sybren@stuvel.eu> | 2021-08-11 11:35:26 +0300 |
commit | 6cd3a73571342ad517a9f2e8b44153aa3bab00c9 (patch) | |
tree | daf80254d7a54e7ed66abe52ffdf7e6dc7564bc5 | |
parent | aec02fd095ffaee1a3280e4001cf0f19c4dee2e1 (diff) |
Pose Library: use functions instead of operators to mark/clear asset
Replace `ASSET_OT_mark` and `ASSET_OT_clear` operator calls with calls to
resp. `ID.asset_mark()` and `ID.asset_clear()`.
No functional changes.
-rw-r--r-- | pose_library/functions.py | 25 | ||||
-rw-r--r-- | pose_library/operators.py | 4 | ||||
-rw-r--r-- | pose_library/pose_creation.py | 4 |
3 files changed, 6 insertions, 27 deletions
diff --git a/pose_library/functions.py b/pose_library/functions.py index bb32e669..d2e210a7 100644 --- a/pose_library/functions.py +++ b/pose_library/functions.py @@ -21,34 +21,11 @@ Pose Library - functions. """ from pathlib import Path -from typing import Any, List, Set, cast, Iterable +from typing import Any, List, Iterable Datablock = Any import bpy -from bpy.types import ( - Context, -) - - -def asset_mark(context: Context, datablock: Any) -> Set[str]: - asset_mark_ctx = { - **context.copy(), - "id": datablock, - } - return cast(Set[str], bpy.ops.asset.mark(asset_mark_ctx)) - - -def asset_clear(context: Context, datablock: Any) -> Set[str]: - asset_clear_ctx = { - **context.copy(), - "id": datablock, - } - result = bpy.ops.asset.clear(asset_clear_ctx) - assert isinstance(result, set) - if "FINISHED" in result: - datablock.use_fake_user = False - return result def load_assets_from(filepath: Path) -> List[Datablock]: diff --git a/pose_library/operators.py b/pose_library/operators.py index c8c2c070..008aceda 100644 --- a/pose_library/operators.py +++ b/pose_library/operators.py @@ -216,7 +216,9 @@ class POSELIB_OT_copy_as_asset(PoseAssetCreator, Operator): filepath = self.save_datablock(asset) - functions.asset_clear(context, asset) + # The asset has been saved to disk, so to clean up it has to loose its asset & fake user status. + asset.asset_clear() + asset.use_fake_user = False if asset.users > 0: self.report({"ERROR"}, "Unexpected non-null user count for the asset") return {"FINISHED"} diff --git a/pose_library/pose_creation.py b/pose_library/pose_creation.py index 79efcae4..ac08b776 100644 --- a/pose_library/pose_creation.py +++ b/pose_library/pose_creation.py @@ -305,7 +305,7 @@ def create_pose_asset( ) -> Optional[Action]: """Create a single-frame Action containing only the pose of the given bones. - DOES mark as asset, DOES NOT add asset metadata. + DOES mark as asset, DOES NOT configure asset metadata. """ creator = PoseActionCreator(params) @@ -313,7 +313,7 @@ def create_pose_asset( if pose_action is None: return None - functions.asset_mark(context, pose_action) + pose_action.asset_mark() return pose_action |