PyREUser3 0.1.0__tar.gz → 0.3.0__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 (60) hide show
  1. pyreuser3-0.3.0/PKG-INFO +71 -0
  2. pyreuser3-0.3.0/PyREUser3.egg-info/PKG-INFO +71 -0
  3. {pyreuser3-0.1.0 → pyreuser3-0.3.0}/PyREUser3.egg-info/SOURCES.txt +1 -0
  4. {pyreuser3-0.1.0 → pyreuser3-0.3.0}/README.md +27 -2
  5. pyreuser3-0.3.0/docs/PYPI.md +38 -0
  6. {pyreuser3-0.1.0 → pyreuser3-0.3.0}/docs/README.zh-CN.md +27 -2
  7. {pyreuser3-0.1.0 → pyreuser3-0.3.0}/pyproject.toml +2 -2
  8. {pyreuser3-0.1.0 → pyreuser3-0.3.0}/pyreuser3/__init__.py +9 -16
  9. {pyreuser3-0.1.0 → pyreuser3-0.3.0}/pyreuser3/__main__.py +2 -1
  10. pyreuser3-0.3.0/pyreuser3/api.py +464 -0
  11. {pyreuser3-0.1.0 → pyreuser3-0.3.0}/pyreuser3/cli.py +71 -12
  12. pyreuser3-0.3.0/pyreuser3/core.py +410 -0
  13. pyreuser3-0.3.0/pyreuser3/export/__init__.py +9 -0
  14. {pyreuser3-0.1.0 → pyreuser3-0.3.0}/pyreuser3/export/base.py +82 -74
  15. {pyreuser3-0.1.0 → pyreuser3-0.3.0}/pyreuser3/export/enums.py +44 -31
  16. {pyreuser3-0.1.0 → pyreuser3-0.3.0}/pyreuser3/export/fields.py +65 -44
  17. {pyreuser3-0.1.0 → pyreuser3-0.3.0}/pyreuser3/export/metadata.py +107 -74
  18. {pyreuser3-0.1.0 → pyreuser3-0.3.0}/pyreuser3/export/postprocess.py +127 -83
  19. {pyreuser3-0.1.0 → pyreuser3-0.3.0}/pyreuser3/export/tree.py +102 -74
  20. {pyreuser3-0.1.0 → pyreuser3-0.3.0}/pyreuser3/export/user3.py +89 -60
  21. pyreuser3-0.3.0/pyreuser3/pack/__init__.py +9 -0
  22. {pyreuser3-0.1.0 → pyreuser3-0.3.0}/pyreuser3/pack/base.py +115 -82
  23. pyreuser3-0.3.0/pyreuser3/pack/models.py +154 -0
  24. {pyreuser3-0.1.0 → pyreuser3-0.3.0}/pyreuser3/pack/plan.py +220 -158
  25. {pyreuser3-0.1.0 → pyreuser3-0.3.0}/pyreuser3/pack/writer.py +104 -67
  26. pyreuser3-0.3.0/pyreuser3/rich_ui.py +127 -0
  27. pyreuser3-0.3.0/pyreuser3/schema.py +199 -0
  28. pyreuser3-0.3.0/pyreuser3/web/__init__.py +10 -0
  29. pyreuser3-0.3.0/pyreuser3/web/__main__.py +9 -0
  30. pyreuser3-0.3.0/pyreuser3/web/handler.py +208 -0
  31. pyreuser3-0.3.0/pyreuser3/web/jobs.py +271 -0
  32. {pyreuser3-0.1.0 → pyreuser3-0.3.0}/pyreuser3/web/page.py +155 -31
  33. pyreuser3-0.3.0/pyreuser3/web/picker.py +94 -0
  34. pyreuser3-0.3.0/pyreuser3/web/runners.py +267 -0
  35. pyreuser3-0.3.0/pyreuser3/web/server.py +102 -0
  36. pyreuser3-0.3.0/pyreuser3/web/settings.py +45 -0
  37. pyreuser3-0.1.0/PKG-INFO +0 -165
  38. pyreuser3-0.1.0/PyREUser3.egg-info/PKG-INFO +0 -165
  39. pyreuser3-0.1.0/pyreuser3/api.py +0 -410
  40. pyreuser3-0.1.0/pyreuser3/core.py +0 -358
  41. pyreuser3-0.1.0/pyreuser3/export/__init__.py +0 -11
  42. pyreuser3-0.1.0/pyreuser3/pack/__init__.py +0 -10
  43. pyreuser3-0.1.0/pyreuser3/pack/models.py +0 -140
  44. pyreuser3-0.1.0/pyreuser3/rich_ui.py +0 -126
  45. pyreuser3-0.1.0/pyreuser3/schema.py +0 -193
  46. pyreuser3-0.1.0/pyreuser3/web/__init__.py +0 -6
  47. pyreuser3-0.1.0/pyreuser3/web/__main__.py +0 -6
  48. pyreuser3-0.1.0/pyreuser3/web/handler.py +0 -178
  49. pyreuser3-0.1.0/pyreuser3/web/jobs.py +0 -243
  50. pyreuser3-0.1.0/pyreuser3/web/picker.py +0 -92
  51. pyreuser3-0.1.0/pyreuser3/web/runners.py +0 -238
  52. pyreuser3-0.1.0/pyreuser3/web/server.py +0 -104
  53. pyreuser3-0.1.0/pyreuser3/web/settings.py +0 -42
  54. {pyreuser3-0.1.0 → pyreuser3-0.3.0}/LICENSE +0 -0
  55. {pyreuser3-0.1.0 → pyreuser3-0.3.0}/MANIFEST.in +0 -0
  56. {pyreuser3-0.1.0 → pyreuser3-0.3.0}/PyREUser3.egg-info/dependency_links.txt +0 -0
  57. {pyreuser3-0.1.0 → pyreuser3-0.3.0}/PyREUser3.egg-info/entry_points.txt +0 -0
  58. {pyreuser3-0.1.0 → pyreuser3-0.3.0}/PyREUser3.egg-info/requires.txt +0 -0
  59. {pyreuser3-0.1.0 → pyreuser3-0.3.0}/PyREUser3.egg-info/top_level.txt +0 -0
  60. {pyreuser3-0.1.0 → pyreuser3-0.3.0}/setup.cfg +0 -0
@@ -0,0 +1,71 @@
1
+ Metadata-Version: 2.4
2
+ Name: PyREUser3
3
+ Version: 0.3.0
4
+ Summary: Pure Python tools for converting RE Engine .user.3 files to and from JSON.
5
+ Author: Egg Targaryen
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/dzxrly/PyREUser3
8
+ Project-URL: Repository, https://github.com/dzxrly/PyREUser3
9
+ Project-URL: Issues, https://github.com/dzxrly/PyREUser3/issues
10
+ Keywords: RE Engine,user.3,JSON,modding,RSZ
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3 :: Only
16
+ Classifier: Programming Language :: Python :: 3.9
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Programming Language :: Python :: 3.14
22
+ Classifier: Topic :: File Formats
23
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
24
+ Classifier: Topic :: Utilities
25
+ Requires-Python: >=3.9
26
+ Description-Content-Type: text/markdown
27
+ License-File: LICENSE
28
+ Requires-Dist: rich>=13.0
29
+ Provides-Extra: dev
30
+ Requires-Dist: build>=1.2; extra == "dev"
31
+ Requires-Dist: twine>=5.0; extra == "dev"
32
+ Dynamic: license-file
33
+
34
+ # PyREUser3
35
+
36
+ PyREUser3 is a pure Python package for converting RE Engine `.user.3` database files to JSON and packing compatible JSON back to `.user.3`.
37
+
38
+ ## Installation
39
+
40
+ ```bash
41
+ pip install pyreuser3
42
+ ```
43
+
44
+ ## What Is Included
45
+
46
+ - `.user.3 -> JSON` export.
47
+ - `JSON -> .user.3` packing.
48
+ - A reusable Python API through `REUser3Converter`.
49
+ - CLI commands through `pyreuser3`.
50
+ - A local `.user.3` export Web UI through `pyreuser3-web`.
51
+
52
+ The published package intentionally does not include game resources, dumped game data, RE_RSZ templates, `il2cpp_dump.json`, `.msg.23` conversion tools, or repository-specific helper scripts. You need to provide data files that match the target game and version.
53
+
54
+ ## Requirements
55
+
56
+ - Python 3.9 or newer.
57
+ - A RE_RSZ schema JSON file for the target game/version.
58
+ - An `il2cpp_dump.json` file when exporting readable enum labels.
59
+ - One or more unpacked `.user.3` files.
60
+
61
+ ## Usage
62
+
63
+ Usage details may change as the package evolves. For the latest command-line and Python API examples, read the GitHub README:
64
+
65
+ https://github.com/dzxrly/PyREUser3#readme
66
+
67
+ ## Links
68
+
69
+ - Homepage: https://github.com/dzxrly/PyREUser3
70
+ - Issues: https://github.com/dzxrly/PyREUser3/issues
71
+ - License: MIT License
@@ -0,0 +1,71 @@
1
+ Metadata-Version: 2.4
2
+ Name: PyREUser3
3
+ Version: 0.3.0
4
+ Summary: Pure Python tools for converting RE Engine .user.3 files to and from JSON.
5
+ Author: Egg Targaryen
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/dzxrly/PyREUser3
8
+ Project-URL: Repository, https://github.com/dzxrly/PyREUser3
9
+ Project-URL: Issues, https://github.com/dzxrly/PyREUser3/issues
10
+ Keywords: RE Engine,user.3,JSON,modding,RSZ
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3 :: Only
16
+ Classifier: Programming Language :: Python :: 3.9
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Programming Language :: Python :: 3.14
22
+ Classifier: Topic :: File Formats
23
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
24
+ Classifier: Topic :: Utilities
25
+ Requires-Python: >=3.9
26
+ Description-Content-Type: text/markdown
27
+ License-File: LICENSE
28
+ Requires-Dist: rich>=13.0
29
+ Provides-Extra: dev
30
+ Requires-Dist: build>=1.2; extra == "dev"
31
+ Requires-Dist: twine>=5.0; extra == "dev"
32
+ Dynamic: license-file
33
+
34
+ # PyREUser3
35
+
36
+ PyREUser3 is a pure Python package for converting RE Engine `.user.3` database files to JSON and packing compatible JSON back to `.user.3`.
37
+
38
+ ## Installation
39
+
40
+ ```bash
41
+ pip install pyreuser3
42
+ ```
43
+
44
+ ## What Is Included
45
+
46
+ - `.user.3 -> JSON` export.
47
+ - `JSON -> .user.3` packing.
48
+ - A reusable Python API through `REUser3Converter`.
49
+ - CLI commands through `pyreuser3`.
50
+ - A local `.user.3` export Web UI through `pyreuser3-web`.
51
+
52
+ The published package intentionally does not include game resources, dumped game data, RE_RSZ templates, `il2cpp_dump.json`, `.msg.23` conversion tools, or repository-specific helper scripts. You need to provide data files that match the target game and version.
53
+
54
+ ## Requirements
55
+
56
+ - Python 3.9 or newer.
57
+ - A RE_RSZ schema JSON file for the target game/version.
58
+ - An `il2cpp_dump.json` file when exporting readable enum labels.
59
+ - One or more unpacked `.user.3` files.
60
+
61
+ ## Usage
62
+
63
+ Usage details may change as the package evolves. For the latest command-line and Python API examples, read the GitHub README:
64
+
65
+ https://github.com/dzxrly/PyREUser3#readme
66
+
67
+ ## Links
68
+
69
+ - Homepage: https://github.com/dzxrly/PyREUser3
70
+ - Issues: https://github.com/dzxrly/PyREUser3/issues
71
+ - License: MIT License
@@ -8,6 +8,7 @@ PyREUser3.egg-info/dependency_links.txt
8
8
  PyREUser3.egg-info/entry_points.txt
9
9
  PyREUser3.egg-info/requires.txt
10
10
  PyREUser3.egg-info/top_level.txt
11
+ docs/PYPI.md
11
12
  docs/README.zh-CN.md
12
13
  pyreuser3/__init__.py
13
14
  pyreuser3/__main__.py
@@ -1,6 +1,15 @@
1
- # PyREUser3
1
+ <h1 align="center">PyREUser3</h1>
2
2
 
3
- English | [简体中文](./docs/README.zh-CN.md)
3
+ <p align="center">
4
+ English | <a href="https://github.com/dzxrly/PyREUser3/blob/main/docs/README.zh-CN.md">简体中文</a>
5
+ </p>
6
+
7
+ <p align="center">
8
+ <a href="https://pypi.org/project/PyREUser3/"><img alt="PyPI Project" src="https://img.shields.io/badge/PyPI-PyREUser3-blue"></a>
9
+ <a href="https://pypi.org/project/PyREUser3/"><img alt="PyPI Version" src="https://img.shields.io/pypi/v/PyREUser3"></a>
10
+ <a href="https://pepy.tech/project/PyREUser3"><img alt="Downloads" src="https://static.pepy.tech/badge/PyREUser3"></a>
11
+ <a href="https://github.com/dzxrly/PyREUser3/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/pypi/l/PyREUser3"></a>
12
+ </p>
4
13
 
5
14
  PyREUser3 is a pure Python package for converting RE Engine `.user.3` database files to JSON and packing compatible JSON back to `.user.3`.
6
15
 
@@ -86,6 +95,22 @@ converter.pack_file(
86
95
  )
87
96
  ```
88
97
 
98
+ Convert a `.user.3` file to an in-memory JSON-compatible Python object without writing a JSON file:
99
+
100
+ ```python
101
+ readable_data = converter.user3_to_json(
102
+ "input/OtomonData.user.3",
103
+ json_format="readable",
104
+ )
105
+
106
+ repack_data = converter.user3_to_json(
107
+ "input/OtomonData.user.3",
108
+ json_format="repack",
109
+ )
110
+ ```
111
+
112
+ Use `json_format="readable"` for the same shape produced by `export_file()`, or `json_format="repack"` for the full instance-table document accepted by `pack()`.
113
+
89
114
  For stable patch-and-repack workflows, use `patch_file()` or `parse_pack_file()`:
90
115
 
91
116
  ```python
@@ -0,0 +1,38 @@
1
+ # PyREUser3
2
+
3
+ PyREUser3 is a pure Python package for converting RE Engine `.user.3` database files to JSON and packing compatible JSON back to `.user.3`.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ pip install pyreuser3
9
+ ```
10
+
11
+ ## What Is Included
12
+
13
+ - `.user.3 -> JSON` export.
14
+ - `JSON -> .user.3` packing.
15
+ - A reusable Python API through `REUser3Converter`.
16
+ - CLI commands through `pyreuser3`.
17
+ - A local `.user.3` export Web UI through `pyreuser3-web`.
18
+
19
+ The published package intentionally does not include game resources, dumped game data, RE_RSZ templates, `il2cpp_dump.json`, `.msg.23` conversion tools, or repository-specific helper scripts. You need to provide data files that match the target game and version.
20
+
21
+ ## Requirements
22
+
23
+ - Python 3.9 or newer.
24
+ - A RE_RSZ schema JSON file for the target game/version.
25
+ - An `il2cpp_dump.json` file when exporting readable enum labels.
26
+ - One or more unpacked `.user.3` files.
27
+
28
+ ## Usage
29
+
30
+ Usage details may change as the package evolves. For the latest command-line and Python API examples, read the GitHub README:
31
+
32
+ https://github.com/dzxrly/PyREUser3#readme
33
+
34
+ ## Links
35
+
36
+ - Homepage: https://github.com/dzxrly/PyREUser3
37
+ - Issues: https://github.com/dzxrly/PyREUser3/issues
38
+ - License: MIT License
@@ -1,6 +1,15 @@
1
- # PyREUser3
1
+ <h1 align="center">PyREUser3</h1>
2
2
 
3
- [English](../README.md) | 简体中文
3
+ <p align="center">
4
+ <a href="https://github.com/dzxrly/PyREUser3/blob/main/README.md">English</a> | 简体中文
5
+ </p>
6
+
7
+ <p align="center">
8
+ <a href="https://pypi.org/project/PyREUser3/"><img alt="PyPI 项目" src="https://img.shields.io/badge/PyPI-PyREUser3-blue"></a>
9
+ <a href="https://pypi.org/project/PyREUser3/"><img alt="PyPI 版本" src="https://img.shields.io/pypi/v/PyREUser3"></a>
10
+ <a href="https://pepy.tech/project/PyREUser3"><img alt="下载量" src="https://static.pepy.tech/badge/PyREUser3"></a>
11
+ <a href="https://github.com/dzxrly/PyREUser3/blob/main/LICENSE"><img alt="许可证" src="https://img.shields.io/pypi/l/PyREUser3"></a>
12
+ </p>
4
13
 
5
14
  PyREUser3 是一个纯 Python 包,用于在 RE Engine 的 `.user.3` 数据库文件和 JSON 之间进行双向转换。
6
15
 
@@ -115,6 +124,22 @@ converter.pack_file(
115
124
  )
116
125
  ```
117
126
 
127
+ 不写入 JSON 文件,直接把 `.user.3` 转成内存中的 JSON 兼容 Python 对象:
128
+
129
+ ```python
130
+ readable_data = converter.user3_to_json(
131
+ "input/OtomonData.user.3",
132
+ json_format="readable",
133
+ )
134
+
135
+ repack_data = converter.user3_to_json(
136
+ "input/OtomonData.user.3",
137
+ json_format="repack",
138
+ )
139
+ ```
140
+
141
+ 使用 `json_format="readable"` 时返回与 `export_file()` 一致的可读导出结构;使用 `json_format="repack"` 时返回可传给 `pack()` 的完整实例表结构。
142
+
118
143
  批量处理目录:
119
144
 
120
145
  ```python
@@ -4,9 +4,9 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "PyREUser3"
7
- version = "0.1.0"
7
+ version = "0.3.0"
8
8
  description = "Pure Python tools for converting RE Engine .user.3 files to and from JSON."
9
- readme = "README.md"
9
+ readme = "docs/PYPI.md"
10
10
  requires-python = ">=3.9"
11
11
  license = "MIT"
12
12
  license-files = ["LICENSE"]
@@ -1,8 +1,7 @@
1
- """RE User3 JSON 工具包的公开导出入口。
1
+ """Expose the stable public API while keeping expensive converter modules lazy.
2
2
 
3
- 较重的转换模块会依赖 Rich 等命令行显示库。这里使用惰性导出,
4
- `pyreuser3-web --help` `python -m pyreuser3.web --help` 这类轻量入口
5
- 不需要提前加载完整导出器或封包器。
3
+ The package-level __getattr__ hook avoids importing Rich and binary conversion code for
4
+ lightweight operations such as version checks and Web UI help output.
6
5
  """
7
6
 
8
7
  from __future__ import annotations
@@ -40,25 +39,19 @@ _EXPORT_MODULES = {
40
39
 
41
40
 
42
41
  def __getattr__(name: str) -> Any:
43
- """首次访问公开名称时再惰性导入对应模块。
42
+ """Resolve a lazily exported package attribute on first access.
44
43
 
45
- PEP 562 的模块级 ``__getattr__`` 钩子:仅当访问 ``__all__`` 中声明的名称
46
- 且该名称尚未缓存到模块全局时才会触发,从而实现按需导入的惰性导出。
44
+ Args:
45
+ name (str): Symbolic schema, class, field, or enum name being stored or looked up.
47
46
 
48
- 参数:
49
- name (str): 正在访问的属性名(通常是 ``__all__`` 中的某个公开名称)。
50
-
51
- 返回:
52
- Any: 解析并缓存后的目标对象(类、函数或常量)。
53
-
54
- 异常:
55
- AttributeError: 当 ``name`` 不在惰性导出表 ``_EXPORT_MODULES`` 中时抛出。
47
+ Returns:
48
+ Any: Normalized value ready for the next parse, export, post-processing, or pack step.
56
49
  """
57
50
  module_name = _EXPORT_MODULES.get(name)
58
51
  if module_name is None:
59
52
  raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
60
53
 
61
- # 导入后把结果缓存到 globals,后续访问不再触发 __getattr__
54
+ # Cache the resolved object in globals so later attribute access bypasses __getattr__ and avoids another import.
62
55
  module = import_module(module_name, __name__)
63
56
  value = getattr(module, name)
64
57
  globals()[name] = value
@@ -1,4 +1,5 @@
1
- """Run the PyREUser3 CLI with ``python -m pyreuser3``."""
1
+ """Provide helpers for __main__.
2
+ """
2
3
 
3
4
  from __future__ import annotations
4
5