PyLibMS 2.0.0__tar.gz → 2.0.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 (65) hide show
  1. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Field/LMS_Field.py +1 -1
  2. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Field/Stream.py +1 -1
  3. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Message/Definitions/LMS_MessageText.py +1 -1
  4. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Message/MSBTStream.py +1 -1
  5. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Message/Section/ATR1.py +1 -1
  6. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Message/Section/TXT2.py +1 -1
  7. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Message/Tag/LMS_Tag.py +1 -1
  8. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Message/Tag/Stream.py +1 -1
  9. pylibms-2.0.0/LMS/Config/TitleConfig.py → pylibms-2.0.2/LMS/TitleConfig/Config.py +11 -10
  10. {pylibms-2.0.0/LMS/Config → pylibms-2.0.2/LMS/TitleConfig}/Definitions/Attributes.py +1 -1
  11. {pylibms-2.0.0/LMS/Config → pylibms-2.0.2/LMS/TitleConfig}/Definitions/Tags.py +1 -1
  12. pylibms-2.0.2/LMS/__init__.py +0 -0
  13. {pylibms-2.0.0 → pylibms-2.0.2}/MANIFEST.in +1 -1
  14. {pylibms-2.0.0 → pylibms-2.0.2}/PKG-INFO +3 -7
  15. {pylibms-2.0.0 → pylibms-2.0.2}/PyLibMS.egg-info/PKG-INFO +3 -7
  16. {pylibms-2.0.0 → pylibms-2.0.2}/PyLibMS.egg-info/SOURCES.txt +8 -12
  17. pylibms-2.0.2/README.md +15 -0
  18. {pylibms-2.0.0 → pylibms-2.0.2}/pyproject.toml +1 -1
  19. pylibms-2.0.0/README.md +0 -19
  20. {pylibms-2.0.0 → pylibms-2.0.2}/LICENSE +0 -0
  21. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Common/LMS_Exceptions.py +0 -0
  22. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Common/LMS_FileInfo.py +0 -0
  23. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Common/Stream/FileInfo.py +0 -0
  24. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Common/Stream/Hashtable.py +0 -0
  25. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Common/Stream/Section.py +0 -0
  26. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Common/__init__.py +0 -0
  27. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Field/LMS_DataType.py +0 -0
  28. {pylibms-2.0.0/LMS/Config/Definitions → pylibms-2.0.2/LMS/Field}/__init__.py +0 -0
  29. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/FileIO/Encoding.py +0 -0
  30. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/FileIO/Stream.py +0 -0
  31. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Message/Definitions/LMS_FieldMap.py +0 -0
  32. {pylibms-2.0.0/LMS/Config → pylibms-2.0.2/LMS/Message/Definitions}/__init__.py +0 -0
  33. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Message/MSBT.py +0 -0
  34. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Message/MSBTEntry.py +0 -0
  35. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Message/Section/TSY1.py +0 -0
  36. {pylibms-2.0.0/LMS/Field → pylibms-2.0.2/LMS/Message/Section}/__init__.py +0 -0
  37. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Message/Tag/LMS_TagExceptions.py +0 -0
  38. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Message/Tag/System.yaml +0 -0
  39. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Message/Tag/Tag_Formats.py +0 -0
  40. {pylibms-2.0.0/LMS/Message/Definitions → pylibms-2.0.2/LMS/Message/Tag}/__init__.py +0 -0
  41. {pylibms-2.0.0/LMS/Message/Section → pylibms-2.0.2/LMS/Message}/__init__.py +0 -0
  42. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Project/Definitions/Attribute.py +0 -0
  43. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Project/Definitions/Color.py +0 -0
  44. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Project/Definitions/Style.py +0 -0
  45. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Project/Definitions/Tag.py +0 -0
  46. {pylibms-2.0.0/LMS/Message/Tag → pylibms-2.0.2/LMS/Project/Definitions}/__init__.py +0 -0
  47. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Project/MSBP.py +0 -0
  48. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Project/MSBPRead.py +0 -0
  49. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Project/Section/ALI2.py +0 -0
  50. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Project/Section/ATI2.py +0 -0
  51. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Project/Section/CLR1.py +0 -0
  52. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Project/Section/SYL3.py +0 -0
  53. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Project/Section/String.py +0 -0
  54. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Project/Section/TAG2.py +0 -0
  55. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Project/Section/TGG2.py +0 -0
  56. {pylibms-2.0.0 → pylibms-2.0.2}/LMS/Project/Section/TGP2.py +0 -0
  57. {pylibms-2.0.0/LMS/Message → pylibms-2.0.2/LMS/Project}/__init__.py +0 -0
  58. {pylibms-2.0.0/LMS/Config → pylibms-2.0.2/LMS/TitleConfig}/Definitions/Value.py +0 -0
  59. {pylibms-2.0.0/LMS/Project → pylibms-2.0.2/LMS/TitleConfig}/Definitions/__init__.py +0 -0
  60. {pylibms-2.0.0/LMS/Project → pylibms-2.0.2/LMS/TitleConfig/Presets}/__init__.py +0 -0
  61. {pylibms-2.0.0/LMS → pylibms-2.0.2/LMS/TitleConfig}/__init__.py +0 -0
  62. {pylibms-2.0.0 → pylibms-2.0.2}/PyLibMS.egg-info/dependency_links.txt +0 -0
  63. {pylibms-2.0.0 → pylibms-2.0.2}/PyLibMS.egg-info/requires.txt +0 -0
  64. {pylibms-2.0.0 → pylibms-2.0.2}/PyLibMS.egg-info/top_level.txt +0 -0
  65. {pylibms-2.0.0 → pylibms-2.0.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  from dataclasses import dataclass, field
2
2
 
3
- from LMS.Config.Definitions.Value import ValueDefinition
3
+ from LMS.TitleConfig.Definitions.Value import ValueDefinition
4
4
  from LMS.Field.LMS_DataType import LMS_DataType
5
5
 
6
6
 
@@ -1,4 +1,4 @@
1
- from LMS.Config.Definitions.Value import ValueDefinition
1
+ from LMS.TitleConfig.Definitions.Value import ValueDefinition
2
2
  from LMS.Field.LMS_DataType import LMS_DataType
3
3
  from LMS.Field.LMS_Field import LMS_Field
4
4
  from LMS.FileIO.Stream import FileReader, FileWriter
@@ -1,7 +1,7 @@
1
1
  import re
2
2
  from typing import overload
3
3
 
4
- from LMS.Config.TitleConfig import TagConfig
4
+ from LMS.TitleConfig.Config import TagConfig
5
5
  from LMS.Field.LMS_Field import LMS_Field
6
6
  from LMS.Message.Tag.LMS_Tag import LMS_DecodedTag, LMS_EncodedTag, LMS_TagBase
7
7
  from LMS.Message.Tag.Tag_Formats import (DECODED_FORMAT, ENCODED_FORMAT,
@@ -5,7 +5,7 @@ from LMS.Common.Stream.FileInfo import read_file_info, write_file_info
5
5
  from LMS.Common.Stream.Hashtable import read_labels, write_labels
6
6
  from LMS.Common.Stream.Section import (read_section_data, write_section,
7
7
  write_unsupported_section)
8
- from LMS.Config.TitleConfig import AttributeConfig, TagConfig
8
+ from LMS.TitleConfig.Config import AttributeConfig, TagConfig
9
9
  from LMS.FileIO.Stream import FileReader, FileWriter
10
10
  from LMS.Message.MSBT import MSBT
11
11
  from LMS.Message.MSBTEntry import MSBTEntry
@@ -1,4 +1,4 @@
1
- from LMS.Config.Definitions.Attributes import AttributeConfig
1
+ from LMS.TitleConfig.Definitions.Attributes import AttributeConfig
2
2
  from LMS.Field.LMS_DataType import LMS_DataType
3
3
  from LMS.Field.LMS_Field import LMS_DataType, LMS_Field
4
4
  from LMS.Field.Stream import read_field, write_field
@@ -1,4 +1,4 @@
1
- from LMS.Config.Definitions.Tags import TagConfig
1
+ from LMS.TitleConfig.Definitions.Tags import TagConfig
2
2
  from LMS.FileIO.Encoding import FileEncoding
3
3
  from LMS.FileIO.Stream import FileReader, FileWriter
4
4
  from LMS.Message.Definitions.LMS_MessageText import LMS_MessageText
@@ -1,7 +1,7 @@
1
1
  import re
2
2
  from abc import ABC, abstractmethod
3
3
 
4
- from LMS.Config.Definitions.Tags import TagConfig
4
+ from LMS.TitleConfig.Definitions.Tags import TagConfig
5
5
  from LMS.Field.LMS_Field import LMS_Field, cast_value
6
6
  from LMS.Message.Definitions.LMS_FieldMap import LMS_FieldMap
7
7
  from LMS.Message.Tag.LMS_TagExceptions import LMS_InvalidTagFormatError
@@ -1,4 +1,4 @@
1
- from LMS.Config.Definitions.Tags import TagConfig, TagDefinition
1
+ from LMS.TitleConfig.Definitions.Tags import TagConfig, TagDefinition
2
2
  from LMS.Field.LMS_DataType import LMS_DataType
3
3
  from LMS.Field.LMS_Field import LMS_Field
4
4
  from LMS.Field.Stream import read_field, write_field
@@ -1,12 +1,11 @@
1
- import importlib.resources as pkg_resources
2
- import os
1
+ from importlib import resources
3
2
  from typing import Self
4
3
 
5
4
  import yaml
6
5
 
7
- from LMS.Config.Definitions.Attributes import AttributeConfig
8
- from LMS.Config.Definitions.Tags import TagConfig, TagDefinition
9
- from LMS.Config.Definitions.Value import ValueDefinition
6
+ from LMS.TitleConfig.Definitions.Attributes import AttributeConfig
7
+ from LMS.TitleConfig.Definitions.Tags import TagConfig, TagDefinition
8
+ from LMS.TitleConfig.Definitions.Value import ValueDefinition
10
9
  from LMS.Field.LMS_DataType import LMS_DataType
11
10
  from LMS.Project.MSBP import MSBP
12
11
 
@@ -15,10 +14,12 @@ class TitleConfig:
15
14
  """Represents a configuration for a specific game/title."""
16
15
 
17
16
  # Populate the preset list from the directory
18
- PRESET_LIST = [
19
- name.removesuffix(".yaml") for name in pkg_resources.contents("LMS.Config.Presets") if name.endswith(".yaml")
20
- ]
17
+ PRESET_LIST = []
21
18
 
19
+ for file in resources.files("LMS.TitleConfig.Presets").iterdir():
20
+ if (config := file.name).endswith(".yaml"):
21
+ PRESET_LIST.append(config.removesuffix(".yaml"))
22
+
22
23
  def __init__(self, attribute_configs: dict[str, AttributeConfig], tag_config: TagConfig):
23
24
  self._attribute_configs = attribute_configs
24
25
  self._tag_config = tag_config
@@ -39,7 +40,7 @@ class TitleConfig:
39
40
  if game not in cls.PRESET_LIST:
40
41
  raise FileNotFoundError(f"Preset '{game}' not found.")
41
42
 
42
- with pkg_resources.open_text("LMS.Config.Presets", f"{game}.yaml") as f:
43
+ with resources.open_text("LMS.TitleConfig.Presets", f"{game}.yaml") as f:
43
44
  return cls.load_config(f.read())
44
45
 
45
46
  @classmethod
@@ -64,7 +65,7 @@ class TitleConfig:
64
65
  tag_config = []
65
66
 
66
67
  # Add the System tag definitions to the config
67
- with open(r"LMS\Message\Tag\System.yaml", "r") as f:
68
+ with resources.open_text("LMS.Message.Tag", "System.yaml") as f:
68
69
  system_tags = yaml.safe_load(f)
69
70
  tag_config = system_tags
70
71
 
@@ -1,6 +1,6 @@
1
1
  from dataclasses import dataclass, field
2
2
 
3
- from LMS.Config.Definitions.Value import ValueDefinition
3
+ from LMS.TitleConfig.Definitions.Value import ValueDefinition
4
4
 
5
5
 
6
6
  @dataclass(frozen=True)
@@ -2,7 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  from dataclasses import dataclass
4
4
 
5
- from LMS.Config.Definitions.Value import ValueDefinition
5
+ from LMS.TitleConfig.Definitions.Value import ValueDefinition
6
6
 
7
7
 
8
8
  @dataclass(frozen=True)
File without changes
@@ -1,3 +1,3 @@
1
1
  include README.md LICENSE
2
2
  include LMS/Message/Tag/System.yaml
3
- recursive-include Preset *.yaml
3
+ recursive-include TitleCofnig/Presets *.yaml
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyLibMS
3
- Version: 2.0.0
3
+ Version: 2.0.2
4
4
  Summary: Python library built for the libMessageStudio (LMS) proprietary file formats from Nintendo. Supports MSBT, MSBP, and MSBF.
5
5
  Author: AbdyyEee
6
6
  License: Copyright 2025 AbdyyEee
@@ -20,11 +20,7 @@ Requires-Dist: PyYAML==6.0.1
20
20
  Dynamic: license-file
21
21
 
22
22
  # PylibMS
23
- PyLMS is a library built in Python3.10+ for Nintendo's LMS (libMessageStudio) file formats. Intended for games on the Nintendo 3DS and Wii U revisions of the file format.
24
- > [!NOTE]
25
- > PylibMS is being refactored in it's entirety, with MSBF support being added soon. Use at your own risk.
26
-
27
- Games that work with the library, including but not limited to:
23
+ Python library built in Python 3.10+ or the libMessageStudio (LMS) proprietary file formats from Nintendo. Supports MSBT, MSBP, and MSBF. Games that work with the library, including but not limited to:
28
24
  * Tomodachi Life
29
25
  * Nintendo Badge Arcade
30
26
  * The Legend of Zelda: A Link Between Worlds
@@ -37,4 +33,4 @@ See [the wiki](https://github.com/AbdyyEee/PylibMS/wiki) for explanations and ex
37
33
  ```
38
34
  pip install PylibMS
39
35
  ```
40
- Python version must be >= 10.
36
+ Python version must be `>=3.10.`
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyLibMS
3
- Version: 2.0.0
3
+ Version: 2.0.2
4
4
  Summary: Python library built for the libMessageStudio (LMS) proprietary file formats from Nintendo. Supports MSBT, MSBP, and MSBF.
5
5
  Author: AbdyyEee
6
6
  License: Copyright 2025 AbdyyEee
@@ -20,11 +20,7 @@ Requires-Dist: PyYAML==6.0.1
20
20
  Dynamic: license-file
21
21
 
22
22
  # PylibMS
23
- PyLMS is a library built in Python3.10+ for Nintendo's LMS (libMessageStudio) file formats. Intended for games on the Nintendo 3DS and Wii U revisions of the file format.
24
- > [!NOTE]
25
- > PylibMS is being refactored in it's entirety, with MSBF support being added soon. Use at your own risk.
26
-
27
- Games that work with the library, including but not limited to:
23
+ Python library built in Python 3.10+ or the libMessageStudio (LMS) proprietary file formats from Nintendo. Supports MSBT, MSBP, and MSBF. Games that work with the library, including but not limited to:
28
24
  * Tomodachi Life
29
25
  * Nintendo Badge Arcade
30
26
  * The Legend of Zelda: A Link Between Worlds
@@ -37,4 +33,4 @@ See [the wiki](https://github.com/AbdyyEee/PylibMS/wiki) for explanations and ex
37
33
  ```
38
34
  pip install PylibMS
39
35
  ```
40
- Python version must be >= 10.
36
+ Python version must be `>=3.10.`
@@ -9,12 +9,6 @@ LMS/Common/__init__.py
9
9
  LMS/Common/Stream/FileInfo.py
10
10
  LMS/Common/Stream/Hashtable.py
11
11
  LMS/Common/Stream/Section.py
12
- LMS/Config/TitleConfig.py
13
- LMS/Config/__init__.py
14
- LMS/Config/Definitions/Attributes.py
15
- LMS/Config/Definitions/Tags.py
16
- LMS/Config/Definitions/Value.py
17
- LMS/Config/Definitions/__init__.py
18
12
  LMS/Field/LMS_DataType.py
19
13
  LMS/Field/LMS_Field.py
20
14
  LMS/Field/Stream.py
@@ -54,13 +48,15 @@ LMS/Project/Section/String.py
54
48
  LMS/Project/Section/TAG2.py
55
49
  LMS/Project/Section/TGG2.py
56
50
  LMS/Project/Section/TGP2.py
51
+ LMS/TitleConfig/Config.py
52
+ LMS/TitleConfig/__init__.py
53
+ LMS/TitleConfig/Definitions/Attributes.py
54
+ LMS/TitleConfig/Definitions/Tags.py
55
+ LMS/TitleConfig/Definitions/Value.py
56
+ LMS/TitleConfig/Definitions/__init__.py
57
+ LMS/TitleConfig/Presets/__init__.py
57
58
  PyLibMS.egg-info/PKG-INFO
58
59
  PyLibMS.egg-info/SOURCES.txt
59
60
  PyLibMS.egg-info/dependency_links.txt
60
61
  PyLibMS.egg-info/requires.txt
61
- PyLibMS.egg-info/top_level.txt
62
- PylibMS.egg-info/PKG-INFO
63
- PylibMS.egg-info/SOURCES.txt
64
- PylibMS.egg-info/dependency_links.txt
65
- PylibMS.egg-info/requires.txt
66
- PylibMS.egg-info/top_level.txt
62
+ PyLibMS.egg-info/top_level.txt
@@ -0,0 +1,15 @@
1
+ # PylibMS
2
+ Python library built in Python 3.10+ or the libMessageStudio (LMS) proprietary file formats from Nintendo. Supports MSBT, MSBP, and MSBF. Games that work with the library, including but not limited to:
3
+ * Tomodachi Life
4
+ * Nintendo Badge Arcade
5
+ * The Legend of Zelda: A Link Between Worlds
6
+ * Animal Crossing: Amiibo Festival
7
+ * Super Mario 3D World
8
+ * Super Mario 3D Land.
9
+ # Features and Usage
10
+ See [the wiki](https://github.com/AbdyyEee/PylibMS/wiki) for explanations and examples on how to use the library.
11
+ # Installation
12
+ ```
13
+ pip install PylibMS
14
+ ```
15
+ Python version must be `>=3.10.`
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "PyLibMS"
7
- version = "2.0.0"
7
+ version = "2.0.2"
8
8
  requires-python = ">=3.10"
9
9
  description = "Python library built for the libMessageStudio (LMS) proprietary file formats from Nintendo. Supports MSBT, MSBP, and MSBF."
10
10
  readme = "README.md"
pylibms-2.0.0/README.md DELETED
@@ -1,19 +0,0 @@
1
- # PylibMS
2
- PyLMS is a library built in Python3.10+ for Nintendo's LMS (libMessageStudio) file formats. Intended for games on the Nintendo 3DS and Wii U revisions of the file format.
3
- > [!NOTE]
4
- > PylibMS is being refactored in it's entirety, with MSBF support being added soon. Use at your own risk.
5
-
6
- Games that work with the library, including but not limited to:
7
- * Tomodachi Life
8
- * Nintendo Badge Arcade
9
- * The Legend of Zelda: A Link Between Worlds
10
- * Animal Crossing: Amiibo Festival
11
- * Super Mario 3D World
12
- * Super Mario 3D Land.
13
- # Features and Usage
14
- See [the wiki](https://github.com/AbdyyEee/PylibMS/wiki) for explanations and examples on how to use the library.
15
- # Installation
16
- ```
17
- pip install PylibMS
18
- ```
19
- Python version must be >= 10.
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes