temp save

This commit is contained in:
Joseph HENRY 2025-12-01 17:26:08 +01:00
parent 1a71fe37df
commit e26cc4f09f
6 changed files with 70 additions and 53 deletions

View File

@ -1,3 +1,20 @@
if "bpy" in locals():
import importlib
importlib.reload(operators)
importlib.reload(panels)
importlib.reload(functions)
importlib.reload(properties)
from .functions import read_shelves
from . import operators
from . import properties
from . import ui
from .properties import CustomShelfSettings, CustomShelfProps
import bpy
import os
bl_info = {
"name": "Custom Shelf",
"author": "Christophe Seux",
@ -12,25 +29,6 @@ bl_info = {
}
if "bpy" in locals():
import importlib
importlib.reload(operators)
importlib.reload(panels)
importlib.reload(functions)
importlib.reload(properties)
from .utils import report
from .functions import read_shelves
from . import operators
from . import properties
from . import ui
from .properties import CustomShelfSettings, CustomShelfProps
import bpy
import os
bl_classes = [
properties.AdditionnalShelves,
properties.CustomShelfProps,
@ -42,6 +40,7 @@ bl_classes = [
operators.CSHELF_OT_open_shelf_folder,
operators.CSHELF_OT_add_script,
operators.CSHELF_OT_set_tag_filter,
operators.CustomShelfAddonPreferences,
ui.CSHELF_MT_text_editor,
]

View File

@ -212,7 +212,7 @@ def read_shelves():
tag_filter_items.sort()
tag_filter_items.insert(0, "__clear__")
prefs["tag_filter_items"] = tag_filter_items
# prefs["tag_filter_items"] = tag_filter_items
# bpy.utils.unregister_class(CustomShelfPrefs)
# bpy.utils.register_class(CustomShelfPrefs)

View File

@ -1,7 +1,8 @@
from .utils import *
from .functions import *
from bpy.types import Operator
from bpy.types import AddonPreferences, Operator, PropertyGroup
from bpy.props import *
from bpy.props import CollectionProperty
from .properties import CustomShelfSettings
@ -267,7 +268,6 @@ class CSHELF_OT_add_script(Operator):
folder_row.prop(bl_props, "category_enum", expand=True)
else:
folder_row.prop(self, "new_category", text="")
folder_row.prop(self, "add_category", icon="ADD", text="")
@ -392,3 +392,13 @@ class CSHELF_OT_add_script(Operator):
bl_props.tab_enum = tab
return context.window_manager.invoke_props_dialog(self, width=500)
class TagFilterItem(PropertyGroup):
value: StringProperty(name="Tag")
class CustomShelfAddonPreferences(AddonPreferences):
bl_idname = __name__
tag_filter_items: CollectionProperty(type=TagFilterItem)

View File

@ -9,4 +9,5 @@ dependencies = []
[dependency-groups]
dev = [
"black>=25.11.0",
"fake-bpy-module>=20251003",
]

View File

@ -1,12 +1,19 @@
from pathlib import Path
from typing import Any
import bpy
import os
from os import listdir, mkdir, scandir
from os.path import join, dirname, splitext, isdir, exists, basename
from bpy.types import Operator, Panel, PropertyGroup
from bpy.props import *
import subprocess
import json
from bpy.props import (
BoolProperty,
EnumProperty,
FloatProperty,
IntProperty,
PointerProperty,
StringProperty,
)
id_type = {
"Action": "actions",
@ -46,47 +53,34 @@ id_type = {
}
def report(var, message, type="INFO"):
print([a for a in locals()])
print([a for a in globals()])
if "self" in var:
var["self"].report({type}, message)
else:
print("")
print(type)
print(message)
def read_json(path):
def read_json(path: Path):
jsonFile = path
if os.path.exists(jsonFile):
try:
with open(jsonFile) as data_file:
return json.load(data_file)
except:
except Exception:
print("the file %s not json readable" % jsonFile)
return
def search_filter(search, str):
def search_filter(search: str, str: str):
return search.lower() in str.lower()
def title(string):
def title(string: str):
return string.replace("_", " ").replace("-", " ").title()
def arg_name(string):
def arg_name(string: str):
return string.replace(" ", "_").replace("-", "_").lower().strip("_")
def open_folder(path):
def open_folder(path: Path):
try:
os.startfile(path)
except:
subprocess.Popen(["xdg-open", path])
except Exception:
_ = subprocess.Popen(["xdg-open", path])
def dic_to_args(dic):
@ -141,7 +135,7 @@ def dic_to_args(dic):
return args
def read_info(script_path):
def read_info(script_path: Path):
import collections
if isinstance(script_path, list):
@ -151,13 +145,13 @@ def read_info(script_path):
lines = f.read().splitlines()
info = {}
for i, l in enumerate(lines):
for i, line in enumerate(lines):
if i >= 10:
return info, lines
if l.startswith("info"):
if line.startswith("info"):
info_start = i
info_str = l
info_str = line
while (
info_str.endswith(",")
@ -202,7 +196,7 @@ def read_info(script_path):
return info, lines
def dic_to_str(dic, keys=None, spaces=4):
def dic_to_str(dic: dict[str, Any], keys: list[str] | None = None, spaces: int = 4): # pyright: ignore[reportExplicitAny]
if not keys:
keys = sorted(dic)

15
uv.lock generated
View File

@ -60,12 +60,25 @@ source = { virtual = "." }
[package.dev-dependencies]
dev = [
{ name = "black" },
{ name = "fake-bpy-module" },
]
[package.metadata]
[package.metadata.requires-dev]
dev = [{ name = "black", specifier = ">=25.11.0" }]
dev = [
{ name = "black", specifier = ">=25.11.0" },
{ name = "fake-bpy-module", specifier = ">=20251003" },
]
[[package]]
name = "fake-bpy-module"
version = "20251003"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/3a/d7/8e34a795715d18497a257929ace8776a94d6c2c744e36b61e75567cbda64/fake_bpy_module-20251003.tar.gz", hash = "sha256:43d7fd082efc34497e238de3ad4d31fb850f2d1a8bb07418ae36eae56c1c7434", size = 973644, upload-time = "2025-10-03T06:19:57.638Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/c6/24/d318f51ae1ebe953038984ed26fa0f9cd5466ef83da30c317282645695ec/fake_bpy_module-20251003-py3-none-any.whl", hash = "sha256:424f75fee6f300fc6d8e0d39abb28dbccd8777f611afa47ecdb9a03c00f2f43f", size = 1103011, upload-time = "2025-10-03T06:19:55.524Z" },
]
[[package]]
name = "mypy-extensions"