pyjallib 0.1.1__tar.gz → 0.1.2__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 (44) hide show
  1. pyjallib-0.1.2/.gitignore +12 -0
  2. pyjallib-0.1.2/.python-version +1 -0
  3. {pyjallib-0.1.1 → pyjallib-0.1.2}/PKG-INFO +28 -28
  4. {pyjallib-0.1.1 → pyjallib-0.1.2}/pyproject.toml +5 -5
  5. pyjallib-0.1.2/src/pyjallib/ConfigFiles/namingConfig.json +63 -0
  6. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/__init__.py +17 -17
  7. pyjallib-0.1.2/src/pyjallib/max/ConfigFiles/3DSMaxNamingConfig.json +121 -0
  8. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/max/header.py +12 -0
  9. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/max/macro/jal_macro_align.py +1 -3
  10. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/max/macro/jal_macro_bone.py +1 -3
  11. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/max/macro/jal_macro_constraint.py +1 -3
  12. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/max/macro/jal_macro_helper.py +1 -3
  13. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/max/macro/jal_macro_link.py +1 -3
  14. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/max/macro/jal_macro_select.py +1 -3
  15. pyjallib-0.1.2/src/pyjallib/py.typed +0 -0
  16. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/reloadModules.py +1 -1
  17. pyjallib-0.1.2/tests/globalVarTest.py +14 -0
  18. pyjallib-0.1.2/tests/moduleImportTest.py +51 -0
  19. pyjallib-0.1.2/uv.lock +8 -0
  20. pyjallib-0.1.1/setup.cfg +0 -4
  21. pyjallib-0.1.1/src/pyjallib.egg-info/PKG-INFO +0 -28
  22. pyjallib-0.1.1/src/pyjallib.egg-info/SOURCES.txt +0 -34
  23. pyjallib-0.1.1/src/pyjallib.egg-info/dependency_links.txt +0 -1
  24. pyjallib-0.1.1/src/pyjallib.egg-info/top_level.txt +0 -1
  25. {pyjallib-0.1.1 → pyjallib-0.1.2}/README.md +0 -0
  26. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/max/__init__.py +0 -0
  27. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/max/align.py +0 -0
  28. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/max/anim.py +0 -0
  29. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/max/bip.py +0 -0
  30. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/max/bone.py +0 -0
  31. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/max/constraint.py +0 -0
  32. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/max/helper.py +0 -0
  33. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/max/layer.py +0 -0
  34. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/max/link.py +0 -0
  35. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/max/mirror.py +0 -0
  36. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/max/name.py +0 -0
  37. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/max/select.py +0 -0
  38. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/max/skin.py +0 -0
  39. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/max/twistBone.py +0 -0
  40. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/namePart.py +0 -0
  41. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/nameToPath.py +0 -0
  42. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/naming.py +0 -0
  43. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/namingConfig.py +0 -0
  44. {pyjallib-0.1.1 → pyjallib-0.1.2}/src/pyjallib/perforce.py +0 -0
@@ -0,0 +1,12 @@
1
+ # Python-generated files
2
+ __pycache__/
3
+ *.py[oc]
4
+ build/
5
+ dist/
6
+ wheels/
7
+ *.egg-info
8
+
9
+ # Virtual environments
10
+ .venv/
11
+
12
+ .vscode/
@@ -0,0 +1 @@
1
+ 3.10.14
@@ -1,28 +1,28 @@
1
- Metadata-Version: 2.4
2
- Name: pyjallib
3
- Version: 0.1.1
4
- Summary: A utility library for 3D game character development pipelines.
5
- Author-email: Dongseok Kim <jalnagakds@gmail.com>
6
- Requires-Python: >=3.10
7
- Description-Content-Type: text/markdown
8
-
9
- # pyjallib
10
-
11
- pyjallib Package is a Python library designed to streamline the game character development pipeline. It provides tools and utilities to assist game developers in creating, managing, and optimizing character assets.
12
-
13
- ## Features
14
- - Character asset management
15
- - Pipeline automation tools
16
- - Asset optimization utilities
17
- - Easy integration with common game engines
18
-
19
- ## Installation
20
- ```bash
21
- pip install pyjallib
22
- ```
23
-
24
- ## Documentation
25
- For detailed documentation, please visit our wiki page.
26
-
27
- ## License
28
- This project is licensed under the MIT License - see the LICENSE file for details.
1
+ Metadata-Version: 2.4
2
+ Name: pyjallib
3
+ Version: 0.1.2
4
+ Summary: A utility library for 3D game character development pipelines.
5
+ Author-email: Dongseok Kim <jalnagakds@gmail.com>
6
+ Requires-Python: >=3.10
7
+ Description-Content-Type: text/markdown
8
+
9
+ # pyjallib
10
+
11
+ pyjallib Package is a Python library designed to streamline the game character development pipeline. It provides tools and utilities to assist game developers in creating, managing, and optimizing character assets.
12
+
13
+ ## Features
14
+ - Character asset management
15
+ - Pipeline automation tools
16
+ - Asset optimization utilities
17
+ - Easy integration with common game engines
18
+
19
+ ## Installation
20
+ ```bash
21
+ pip install pyjallib
22
+ ```
23
+
24
+ ## Documentation
25
+ For detailed documentation, please visit our wiki page.
26
+
27
+ ## License
28
+ This project is licensed under the MIT License - see the LICENSE file for details.
@@ -1,14 +1,14 @@
1
1
  [project]
2
2
  name = "pyjallib"
3
- version = "0.1.1"
3
+ version = "0.1.2"
4
4
  description = "A utility library for 3D game character development pipelines."
5
+ readme = "README.md"
5
6
  authors = [
6
- { name="Dongseok Kim", email="jalnagakds@gmail.com"}
7
+ { name = "Dongseok Kim", email = "jalnagakds@gmail.com" }
7
8
  ]
8
- readme = "README.md"
9
9
  requires-python = ">=3.10"
10
10
  dependencies = []
11
11
 
12
12
  [build-system]
13
- requires = ["setuptools", "wheel"]
14
- build-backend = "setuptools.build_meta"
13
+ requires = ["hatchling"]
14
+ build-backend = "hatchling.build"
@@ -0,0 +1,63 @@
1
+ {
2
+ "paddingNum": 2,
3
+ "partOrder": [
4
+ "Prefix",
5
+ "RealName",
6
+ "Index",
7
+ "Suffix"
8
+ ],
9
+ "nameParts": [
10
+ {
11
+ "name": "Prefix",
12
+ "predefinedValues": [
13
+ "Pr"
14
+ ],
15
+ "weights": [
16
+ 5
17
+ ],
18
+ "type": "PREFIX",
19
+ "descriptions": [
20
+ "Prefix"
21
+ ],
22
+ "koreanDescriptions": [
23
+ "접두어"
24
+ ],
25
+ "isDirection": false
26
+ },
27
+ {
28
+ "name": "RealName",
29
+ "predefinedValues": [],
30
+ "weights": [],
31
+ "type": "REALNAME",
32
+ "descriptions": [],
33
+ "koreanDescriptions": [],
34
+ "isDirection": false
35
+ },
36
+ {
37
+ "name": "Index",
38
+ "predefinedValues": [],
39
+ "weights": [],
40
+ "type": "INDEX",
41
+ "descriptions": [],
42
+ "koreanDescriptions": [],
43
+ "isDirection": false
44
+ },
45
+ {
46
+ "name": "Suffix",
47
+ "predefinedValues": [
48
+ "Su"
49
+ ],
50
+ "weights": [
51
+ 5
52
+ ],
53
+ "type": "SUFFIX",
54
+ "descriptions": [
55
+ "Suffix"
56
+ ],
57
+ "koreanDescriptions": [
58
+ "접미어"
59
+ ],
60
+ "isDirection": false
61
+ }
62
+ ]
63
+ }
@@ -1,17 +1,17 @@
1
- #!/usr/bin/env python
2
- # -*- coding: utf-8 -*-
3
-
4
- """
5
- pyjallib Package
6
- Python library for game character development pipeline.
7
- """
8
-
9
- __version__ = '1.0.0'
10
-
11
- # reload_modules 함수를 패키지 레벨에서 사용 가능하게 함
12
- from .namePart import NamePart, NamePartType
13
- from .naming import Naming
14
- from .namingConfig import NamingConfig
15
- from .nameToPath import NameToPath
16
- from .perforce import Perforce
17
- from .reloadModules import reload_jallib_modules
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+
4
+ """
5
+ pyjallib Package
6
+ Python library for game character development pipeline.
7
+ """
8
+
9
+ __version__ = '0.1.2'
10
+
11
+ # reload_modules 함수를 패키지 레벨에서 사용 가능하게 함
12
+ from .namePart import NamePart, NamePartType
13
+ from .naming import Naming
14
+ from .namingConfig import NamingConfig
15
+ from .nameToPath import NameToPath
16
+ from .perforce import Perforce
17
+ from .reloadModules import reload_modules
@@ -0,0 +1,121 @@
1
+ {
2
+ "paddingNum": 2,
3
+ "partOrder": [
4
+ "Base",
5
+ "Type",
6
+ "Side",
7
+ "FrontBack",
8
+ "RealName",
9
+ "Index",
10
+ "Nub"
11
+ ],
12
+ "nameParts": [
13
+ {
14
+ "name": "Base",
15
+ "predefinedValues": [
16
+ "b",
17
+ "Bip001"
18
+ ],
19
+ "weights": [
20
+ 5,
21
+ 10
22
+ ],
23
+ "type": "PREFIX",
24
+ "descriptions": [
25
+ "SkinBone",
26
+ "Biped"
27
+ ],
28
+ "isDirection": false
29
+ },
30
+ {
31
+ "name": "Type",
32
+ "predefinedValues": [
33
+ "P",
34
+ "Dum",
35
+ "Exp",
36
+ "IK",
37
+ "T"
38
+ ],
39
+ "weights": [
40
+ 5,
41
+ 10,
42
+ 15,
43
+ 20,
44
+ 25
45
+ ],
46
+ "type": "PREFIX",
47
+ "descriptions": [
48
+ "Parent",
49
+ "Dummy",
50
+ "ExposeTM",
51
+ "IK",
52
+ "Target"
53
+ ],
54
+ "isDirection": false
55
+ },
56
+ {
57
+ "name": "Side",
58
+ "predefinedValues": [
59
+ "L",
60
+ "R"
61
+ ],
62
+ "weights": [
63
+ 5,
64
+ 10
65
+ ],
66
+ "type": "PREFIX",
67
+ "descriptions": [
68
+ "Left",
69
+ "Right"
70
+ ],
71
+ "isDirection": true
72
+ },
73
+ {
74
+ "name": "FrontBack",
75
+ "predefinedValues": [
76
+ "F",
77
+ "B"
78
+ ],
79
+ "weights": [
80
+ 5,
81
+ 10
82
+ ],
83
+ "type": "PREFIX",
84
+ "descriptions": [
85
+ "Front",
86
+ "Back"
87
+ ],
88
+ "isDirection": true
89
+ },
90
+ {
91
+ "name": "RealName",
92
+ "predefinedValues": [],
93
+ "weights": [],
94
+ "type": "REALNAME",
95
+ "descriptions": [],
96
+ "isDirection": false
97
+ },
98
+ {
99
+ "name": "Index",
100
+ "predefinedValues": [],
101
+ "weights": [],
102
+ "type": "INDEX",
103
+ "descriptions": [],
104
+ "isDirection": false
105
+ },
106
+ {
107
+ "name": "Nub",
108
+ "predefinedValues": [
109
+ "Nub"
110
+ ],
111
+ "weights": [
112
+ 5
113
+ ],
114
+ "type": "SUFFIX",
115
+ "descriptions": [
116
+ "Nub"
117
+ ],
118
+ "isDirection": false
119
+ }
120
+ ]
121
+ }
@@ -31,6 +31,15 @@ class Header:
31
31
  JalLib.max 패키지의 헤더 모듈
32
32
  3DS Max에서 사용하는 다양한 기능을 제공하는 클래스들을 초기화하고 관리합니다.
33
33
  """
34
+ _instance = None
35
+
36
+ @classmethod
37
+ def get_instance(cls):
38
+ """싱글톤 패턴을 구현한 인스턴스 접근 메소드"""
39
+ if cls._instance is None:
40
+ cls._instance = Header()
41
+ return cls._instance
42
+
34
43
  def __init__(self):
35
44
  """
36
45
  Header 클래스 초기화
@@ -55,3 +64,6 @@ class Header:
55
64
  self.skin = Skin()
56
65
 
57
66
  self.twistBone = TwistBone(nameService=self.name, animService=self.anim, constService=self.constraint, bipService=self.bip)
67
+
68
+ # 모듈 레벨에서 전역 인스턴스 생성
69
+ jal = Header.get_instance()
@@ -2,9 +2,7 @@
2
2
  # -*- coding: utf-8 -*-
3
3
 
4
4
  from pymxs import runtime as rt
5
- from pyjallib.max.header import Header
6
-
7
- jal = Header()
5
+ from pyjallib.max.header import jal # 모듈에서 전역 인스턴스 가져오기
8
6
 
9
7
  def jal_align_to_last():
10
8
  jal.align.align_to_last_sel()
@@ -2,9 +2,7 @@
2
2
  # -*- coding: utf-8 -*-
3
3
 
4
4
  from pymxs import runtime as rt
5
- from pyjallib.max.header import Header
6
-
7
- jal = Header()
5
+ from pyjallib.max.header import jal # 모듈에서 전역 인스턴스 가져오기
8
6
 
9
7
  from PySide2 import QtWidgets, QtCore, QtGui
10
8
  import gc # Import garbage collector
@@ -2,9 +2,7 @@
2
2
  # -*- coding: utf-8 -*-
3
3
 
4
4
  from pymxs import runtime as rt
5
- from pyjallib.max.header import Header
6
-
7
- jal = Header()
5
+ from pyjallib.max.header import jal # 모듈에서 전역 인스턴스 가져오기
8
6
 
9
7
  def jal_collapse_const():
10
8
  if rt.selection.count > 0:
@@ -5,9 +5,7 @@ from pymxs import runtime as rt
5
5
  from PySide2 import QtWidgets, QtCore, QtGui
6
6
  import gc # Import garbage collector
7
7
 
8
- from pyjallib.max.header import Header
9
-
10
- jal = Header()
8
+ from pyjallib.max.header import jal # 모듈에서 전역 인스턴스 가져오기
11
9
 
12
10
  class HelperTypeSelDialog(QtWidgets.QDialog):
13
11
  def __init__(self, parent=QtWidgets.QWidget.find(rt.windows.getMAXHWND())):
@@ -2,9 +2,7 @@
2
2
  # -*- coding: utf-8 -*-
3
3
 
4
4
  from pymxs import runtime as rt
5
- from pyjallib.max.header import Header
6
-
7
- jal = Header()
5
+ from pyjallib.max.header import jal # 모듈에서 전역 인스턴스 가져오기
8
6
 
9
7
  def jal_link_to_last():
10
8
  jal.link.link_to_last_sel()
@@ -2,9 +2,7 @@
2
2
  # -*- coding: utf-8 -*-
3
3
 
4
4
  from pymxs import runtime as rt
5
- from pyjallib.max.header import Header
6
-
7
- jal = Header()
5
+ from pyjallib.max.header import jal # 모듈에서 전역 인스턴스 가져오기
8
6
 
9
7
  def jal_selFilter_all():
10
8
  jal.sel.set_selectionSet_to_all()
File without changes
@@ -9,7 +9,7 @@ import sys
9
9
  import importlib
10
10
 
11
11
 
12
- def reload_jallib_modules():
12
+ def reload_modules():
13
13
  """
14
14
  pyjallib 패키지와 모든 하위 모듈을 다시 로드합니다.
15
15
 
@@ -0,0 +1,14 @@
1
+ import sys
2
+ import os
3
+
4
+ # 현재 스크립트의 디렉토리 path 가져오기
5
+ current_dir = os.path.dirname(os.path.abspath(__file__))
6
+ # 프로젝트 루트 디렉토리 추가 (PyJalLib 디렉토리)
7
+ project_root = os.path.abspath(os.path.join(current_dir, "..", "src"))
8
+
9
+ if project_root not in sys.path:
10
+ sys.path.insert(0, project_root)
11
+
12
+ import pyjallib
13
+
14
+ jal = pyjallib.max.header.Header()
@@ -0,0 +1,51 @@
1
+ import sys
2
+ import os
3
+ import importlib
4
+ import pkgutil
5
+
6
+ # 현재 스크립트의 디렉토리 path 가져오기
7
+ current_dir = os.path.dirname(os.path.abspath(__file__))
8
+ # 프로젝트 루트 디렉토리 추가 (PyJalLib 디렉토리)
9
+ project_root = os.path.abspath(os.path.join(current_dir, "..", "src"))
10
+
11
+ if project_root not in sys.path:
12
+ sys.path.insert(0, project_root)
13
+
14
+ import pyjallib
15
+
16
+ def test_import_modules():
17
+ """pyjallib의 모든 모듈을 임포트해보는 테스트 함수"""
18
+ print("PyJalLib 모듈 임포트 테스트 시작...")
19
+
20
+
21
+ # 성공적으로 임포트된 모듈 수
22
+ imported_count = 0
23
+ # 임포트 실패한 모듈 목록
24
+ failed_imports = []
25
+
26
+ # pyjallib 패키지 내의 모든 모듈을 검색하고 임포트 시도
27
+ for importer, modname, ispkg in pkgutil.walk_packages(pyjallib.__path__, prefix="pyjallib."):
28
+ print(f"임포트 시도: {modname}")
29
+ try:
30
+ importlib.import_module(modname)
31
+ imported_count += 1
32
+ print(f" 성공: {modname}")
33
+ except ImportError as e:
34
+ failed_imports.append((modname, str(e)))
35
+ print(f" 실패: {modname} - {e}")
36
+
37
+ # 결과 출력
38
+ print("\n== 임포트 테스트 결과 ==")
39
+ print(f"성공적으로 임포트된 모듈: {imported_count}개")
40
+
41
+ if failed_imports:
42
+ print("\n임포트 실패한 모듈:")
43
+ for module, error in failed_imports:
44
+ print(f"- {module}: {error}")
45
+ else:
46
+ print("\n모든 모듈이 성공적으로 임포트되었습니다!")
47
+
48
+ pyjallib.reload_jallib_modules()
49
+
50
+ if __name__ == "__main__":
51
+ test_import_modules()
pyjallib-0.1.2/uv.lock ADDED
@@ -0,0 +1,8 @@
1
+ version = 1
2
+ revision = 2
3
+ requires-python = ">=3.10"
4
+
5
+ [[package]]
6
+ name = "pyjallib"
7
+ version = "0.1.2"
8
+ source = { editable = "." }
pyjallib-0.1.1/setup.cfg DELETED
@@ -1,4 +0,0 @@
1
- [egg_info]
2
- tag_build =
3
- tag_date = 0
4
-
@@ -1,28 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: pyjallib
3
- Version: 0.1.1
4
- Summary: A utility library for 3D game character development pipelines.
5
- Author-email: Dongseok Kim <jalnagakds@gmail.com>
6
- Requires-Python: >=3.10
7
- Description-Content-Type: text/markdown
8
-
9
- # pyjallib
10
-
11
- pyjallib Package is a Python library designed to streamline the game character development pipeline. It provides tools and utilities to assist game developers in creating, managing, and optimizing character assets.
12
-
13
- ## Features
14
- - Character asset management
15
- - Pipeline automation tools
16
- - Asset optimization utilities
17
- - Easy integration with common game engines
18
-
19
- ## Installation
20
- ```bash
21
- pip install pyjallib
22
- ```
23
-
24
- ## Documentation
25
- For detailed documentation, please visit our wiki page.
26
-
27
- ## License
28
- This project is licensed under the MIT License - see the LICENSE file for details.
@@ -1,34 +0,0 @@
1
- README.md
2
- pyproject.toml
3
- src/pyjallib/__init__.py
4
- src/pyjallib/namePart.py
5
- src/pyjallib/nameToPath.py
6
- src/pyjallib/naming.py
7
- src/pyjallib/namingConfig.py
8
- src/pyjallib/perforce.py
9
- src/pyjallib/reloadModules.py
10
- src/pyjallib.egg-info/PKG-INFO
11
- src/pyjallib.egg-info/SOURCES.txt
12
- src/pyjallib.egg-info/dependency_links.txt
13
- src/pyjallib.egg-info/top_level.txt
14
- src/pyjallib/max/__init__.py
15
- src/pyjallib/max/align.py
16
- src/pyjallib/max/anim.py
17
- src/pyjallib/max/bip.py
18
- src/pyjallib/max/bone.py
19
- src/pyjallib/max/constraint.py
20
- src/pyjallib/max/header.py
21
- src/pyjallib/max/helper.py
22
- src/pyjallib/max/layer.py
23
- src/pyjallib/max/link.py
24
- src/pyjallib/max/mirror.py
25
- src/pyjallib/max/name.py
26
- src/pyjallib/max/select.py
27
- src/pyjallib/max/skin.py
28
- src/pyjallib/max/twistBone.py
29
- src/pyjallib/max/macro/jal_macro_align.py
30
- src/pyjallib/max/macro/jal_macro_bone.py
31
- src/pyjallib/max/macro/jal_macro_constraint.py
32
- src/pyjallib/max/macro/jal_macro_helper.py
33
- src/pyjallib/max/macro/jal_macro_link.py
34
- src/pyjallib/max/macro/jal_macro_select.py
@@ -1 +0,0 @@
1
- pyjallib
File without changes