pyjallib 0.1.19__tar.gz → 0.1.20__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. {pyjallib-0.1.19 → pyjallib-0.1.20}/PKG-INFO +1 -1
  2. {pyjallib-0.1.19 → pyjallib-0.1.20}/pyproject.toml +1 -1
  3. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/__init__.py +1 -1
  4. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/toolManager.py +22 -6
  5. pyjallib-0.1.20/src/pyjallib/max/ui/__init__.py +10 -0
  6. {pyjallib-0.1.19 → pyjallib-0.1.20}/uv.lock +1 -1
  7. {pyjallib-0.1.19 → pyjallib-0.1.20}/.gitignore +0 -0
  8. {pyjallib-0.1.19 → pyjallib-0.1.20}/.python-version +0 -0
  9. {pyjallib-0.1.19 → pyjallib-0.1.20}/PRD/BIPPY_/353/260/224/354/235/264/355/214/250/353/223/234_/354/203/235/354/204/261_/353/266/204/354/204/235.md" +0 -0
  10. {pyjallib-0.1.19 → pyjallib-0.1.20}/PRD/PyJalLib_Mocap_Module_PRD.md +0 -0
  11. {pyjallib-0.1.19 → pyjallib-0.1.20}/PRD//353/241/234/352/271/205 /353/252/250/353/223/210 /354/240/234/354/236/221.md" +0 -0
  12. {pyjallib-0.1.19 → pyjallib-0.1.20}/README.md +0 -0
  13. {pyjallib-0.1.19 → pyjallib-0.1.20}/docs/index.html +0 -0
  14. {pyjallib-0.1.19 → pyjallib-0.1.20}/docs/pyjallib/max.html +0 -0
  15. {pyjallib-0.1.19 → pyjallib-0.1.20}/docs/pyjallib/namePart.html +0 -0
  16. {pyjallib-0.1.19 → pyjallib-0.1.20}/docs/pyjallib/nameToPath.html +0 -0
  17. {pyjallib-0.1.19 → pyjallib-0.1.20}/docs/pyjallib/naming.html +0 -0
  18. {pyjallib-0.1.19 → pyjallib-0.1.20}/docs/pyjallib/namingConfig.html +0 -0
  19. {pyjallib-0.1.19 → pyjallib-0.1.20}/docs/pyjallib/p4module.html +0 -0
  20. {pyjallib-0.1.19 → pyjallib-0.1.20}/docs/pyjallib/perforce.html +0 -0
  21. {pyjallib-0.1.19 → pyjallib-0.1.20}/docs/pyjallib/reloadModules.html +0 -0
  22. {pyjallib-0.1.19 → pyjallib-0.1.20}/docs/pyjallib.html +0 -0
  23. {pyjallib-0.1.19 → pyjallib-0.1.20}/docs/search.js +0 -0
  24. {pyjallib-0.1.19 → pyjallib-0.1.20}/generate_docs.ps1 +0 -0
  25. {pyjallib-0.1.19 → pyjallib-0.1.20}/logs/20250702_max_fbx_export.log +0 -0
  26. {pyjallib-0.1.19 → pyjallib-0.1.20}/logs/20250702_project_specific.log +0 -0
  27. {pyjallib-0.1.19 → pyjallib-0.1.20}/logs/20250702_pyjallib.log +0 -0
  28. {pyjallib-0.1.19 → pyjallib-0.1.20}/logs/pyjallib.log +0 -0
  29. {pyjallib-0.1.19 → pyjallib-0.1.20}/ref/BIPPY.ms +0 -0
  30. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ConfigFiles/namingConfig.json +0 -0
  31. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/exceptions.py +0 -0
  32. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/logger.py +0 -0
  33. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/ConfigFiles/3DSMaxNamingConfig.json +0 -0
  34. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/ConfigFiles/Default_3DSMaxNamingConfig.json +0 -0
  35. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/__init__.py +0 -0
  36. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/align.py +0 -0
  37. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/anim.py +0 -0
  38. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/autoClavicle.py +0 -0
  39. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/bip.py +0 -0
  40. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/bone.py +0 -0
  41. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/boneChain.py +0 -0
  42. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/constraint.py +0 -0
  43. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/elbow.py +0 -0
  44. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/fbxHandler.py +0 -0
  45. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/groinBone.py +0 -0
  46. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/header.py +0 -0
  47. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/helper.py +0 -0
  48. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/hip.py +0 -0
  49. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/inguinal.py +0 -0
  50. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/kneeBone.py +0 -0
  51. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/layer.py +0 -0
  52. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/link.py +0 -0
  53. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/macro/jal_macro_align.py +0 -0
  54. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/macro/jal_macro_bone.py +0 -0
  55. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/macro/jal_macro_constraint.py +0 -0
  56. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/macro/jal_macro_helper.py +0 -0
  57. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/macro/jal_macro_link.py +0 -0
  58. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/macro/jal_macro_select.py +0 -0
  59. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/mirror.py +0 -0
  60. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/mocap.py +0 -0
  61. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/morph.py +0 -0
  62. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/name.py +0 -0
  63. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/progress.py +0 -0
  64. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/rootMotion.py +0 -0
  65. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/select.py +0 -0
  66. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/shoulder.py +0 -0
  67. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/skeleton.py +0 -0
  68. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/skin.py +0 -0
  69. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/twistBone.py +0 -0
  70. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/ui/Container.py +0 -0
  71. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/volumeBone.py +0 -0
  72. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/wrist.py +0 -0
  73. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/namePart.py +0 -0
  74. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/nameToPath.py +0 -0
  75. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/naming.py +0 -0
  76. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/namingConfig.py +0 -0
  77. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/perforce.py +0 -0
  78. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/progressEvent.py +0 -0
  79. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/py.typed +0 -0
  80. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/reloadModules.py +0 -0
  81. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/ConfigFiles/UE5NamingConfig.json +0 -0
  82. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/__init__.py +0 -0
  83. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/disableInterchangeFrameWork.py +0 -0
  84. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/inUnreal/__init__.py +0 -0
  85. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/inUnreal/animationImporter.py +0 -0
  86. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/inUnreal/baseImporter.py +0 -0
  87. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/inUnreal/importerSettings.py +0 -0
  88. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/inUnreal/skeletalMeshImporter.py +0 -0
  89. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/inUnreal/skeletonImporter.py +0 -0
  90. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/logger.py +0 -0
  91. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/templateProcessor.py +0 -0
  92. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/templates/__init__.py +0 -0
  93. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/templates/animImportTemplate.py +0 -0
  94. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/templates/batchAnimImportTemplate.py +0 -0
  95. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/templates/skeletalMeshImportTemplate.py +0 -0
  96. {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/templates/skeletonImportTemplate.py +0 -0
  97. {pyjallib-0.1.19 → pyjallib-0.1.20}/test_debug.log +0 -0
  98. {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/animImportTest.py +0 -0
  99. {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/animNodeTest.py +0 -0
  100. {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/autoclavicleTest.py +0 -0
  101. {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/example_perforce_usage.py +0 -0
  102. {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/fbxExportTest.py +0 -0
  103. {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/globalVarTest.py +0 -0
  104. {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/moduleImportTest.py +0 -0
  105. {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/p4Test.py +0 -0
  106. {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/perforce_exception_test.py +0 -0
  107. {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/perforce_logging_example.py +0 -0
  108. {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/skelImportTest.py +0 -0
  109. {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/template_processor_test.py +0 -0
  110. {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/ueImportTest.py +0 -0
  111. {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/volumePreserveBoneTest.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyjallib
3
- Version: 0.1.19
3
+ Version: 0.1.20
4
4
  Summary: A utility library for 3D game character development pipelines.
5
5
  Author-email: Dongseok Kim <jalnagakds@gmail.com>
6
6
  Requires-Python: >=3.10
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "pyjallib"
3
- version = "0.1.19"
3
+ version = "0.1.20"
4
4
  description = "A utility library for 3D game character development pipelines."
5
5
  readme = "README.md"
6
6
  authors = [
@@ -6,7 +6,7 @@ pyjallib Package
6
6
  Python library for game character development pipeline.
7
7
  """
8
8
 
9
- __version__ = '0.1.19'
9
+ __version__ = '0.1.20'
10
10
 
11
11
  # reload_modules 함수를 패키지 레벨에서 사용 가능하게 함
12
12
  from pyjallib.logger import Logger
@@ -10,11 +10,23 @@ from PySide2 import QtWidgets, QtCore
10
10
  import gc
11
11
 
12
12
  class ToolManager:
13
+ """
14
+ 3DS Max에서 실행되는 도구(툴) 인스턴스를 통합 관리하는 클래스입니다.
15
+ 도구의 등록, 닫기, 표시 등 라이프사이클을 관리합니다.
16
+ """
13
17
  def __init__(self):
18
+ """
19
+ ToolManager 인스턴스를 초기화합니다.
20
+ """
14
21
  self.tools = {} # {tool_class_name: [instances]} 형태로 관리
15
22
 
16
23
  def register_tool(self, tool_instance):
17
- """도구 인스턴스를 등록합니다"""
24
+ """
25
+ 도구 인스턴스를 등록합니다.
26
+
27
+ Args:
28
+ tool_instance: 등록할 도구 인스턴스
29
+ """
18
30
  class_name = tool_instance.__class__.__name__
19
31
 
20
32
  if class_name not in self.tools:
@@ -23,7 +35,12 @@ class ToolManager:
23
35
  self.tools[class_name].append(tool_instance)
24
36
 
25
37
  def close_tool_by_type(self, tool_class):
26
- """특정 유형의 도구를 모두 닫습니다"""
38
+ """
39
+ 특정 클래스의 모든 도구 인스턴스를 닫고 정리합니다.
40
+
41
+ Args:
42
+ tool_class: 닫을 도구의 클래스
43
+ """
27
44
  class_name = tool_class.__name__
28
45
 
29
46
  if class_name not in self.tools:
@@ -66,13 +83,12 @@ class ToolManager:
66
83
  def show_tool(self, tool_class, **kwargs):
67
84
  """
68
85
  도구를 표시합니다. 중복 실행을 방지하고 항상 새 인스턴스를 생성합니다.
69
-
86
+
70
87
  Args:
71
- tool_class: 도구 클래스
88
+ tool_class: 표시할 도구 클래스
72
89
  **kwargs: 도구 클래스 생성자에 전달할 인자들
73
-
74
90
  Returns:
75
- 새로 생성된 도구 인스턴스
91
+ object: 새로 생성된 도구 인스턴스
76
92
  """
77
93
  # 기존 인스턴스 모두 정리
78
94
  self.close_tool_by_type(tool_class)
@@ -0,0 +1,10 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ PyJalLib Max UI 모듈
4
+
5
+ 3ds Max용 UI 컴포넌트들을 제공합니다.
6
+ """
7
+
8
+ from .Container import Container
9
+
10
+ __all__ = ['Container']
@@ -36,7 +36,7 @@ wheels = [
36
36
 
37
37
  [[package]]
38
38
  name = "pyjallib"
39
- version = "0.1.18"
39
+ version = "0.1.19"
40
40
  source = { editable = "." }
41
41
  dependencies = [
42
42
  { name = "p4python" },
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes