absfuyu 5.6.1__py3-none-any.whl → 5.8.0__py3-none-any.whl
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.
Potentially problematic release.
This version of absfuyu might be problematic. Click here for more details.
- absfuyu/__init__.py +1 -1
- absfuyu/__main__.py +2 -2
- absfuyu/cli/__init__.py +2 -2
- absfuyu/cli/color.py +2 -2
- absfuyu/cli/config_group.py +2 -2
- absfuyu/cli/do_group.py +2 -2
- absfuyu/cli/game_group.py +2 -2
- absfuyu/cli/tool_group.py +2 -2
- absfuyu/config/__init__.py +2 -2
- absfuyu/core/__init__.py +2 -2
- absfuyu/core/baseclass.py +2 -2
- absfuyu/core/baseclass2.py +2 -2
- absfuyu/core/decorator.py +2 -2
- absfuyu/core/docstring.py +2 -2
- absfuyu/core/dummy_cli.py +2 -2
- absfuyu/core/dummy_func.py +2 -2
- absfuyu/dxt/__init__.py +2 -2
- absfuyu/dxt/dictext.py +2 -2
- absfuyu/dxt/dxt_support.py +2 -2
- absfuyu/dxt/intext.py +2 -2
- absfuyu/dxt/listext.py +2 -2
- absfuyu/dxt/strext.py +2 -2
- absfuyu/extra/__init__.py +2 -2
- absfuyu/extra/beautiful.py +2 -2
- absfuyu/extra/da/__init__.py +4 -2
- absfuyu/extra/da/dadf.py +148 -13
- absfuyu/extra/da/dadf_base.py +2 -2
- absfuyu/extra/da/df_func.py +2 -2
- absfuyu/extra/da/mplt.py +2 -2
- absfuyu/extra/data_analysis.py +2 -2
- absfuyu/extra/pdf.py +2 -4
- absfuyu/extra/xml.py +90 -0
- absfuyu/fun/__init__.py +2 -2
- absfuyu/fun/rubik.py +2 -2
- absfuyu/fun/tarot.py +2 -2
- absfuyu/game/__init__.py +2 -2
- absfuyu/game/game_stat.py +2 -2
- absfuyu/game/sudoku.py +2 -2
- absfuyu/game/tictactoe.py +2 -2
- absfuyu/game/wordle.py +2 -2
- absfuyu/general/__init__.py +2 -2
- absfuyu/general/content.py +2 -2
- absfuyu/general/human.py +2 -2
- absfuyu/general/shape.py +2 -2
- absfuyu/logger.py +2 -2
- absfuyu/pkg_data/__init__.py +2 -2
- absfuyu/pkg_data/deprecated.py +2 -2
- absfuyu/pkg_data/logo.py +1462 -0
- absfuyu/sort.py +2 -2
- absfuyu/tools/__init__.py +2 -2
- absfuyu/tools/checksum.py +2 -2
- absfuyu/tools/converter.py +2 -2
- absfuyu/tools/generator.py +2 -2
- absfuyu/tools/inspector.py +2 -2
- absfuyu/tools/keygen.py +2 -2
- absfuyu/tools/obfuscator.py +2 -2
- absfuyu/tools/passwordlib.py +2 -2
- absfuyu/tools/shutdownizer.py +2 -2
- absfuyu/tools/sw.py +2 -2
- absfuyu/tools/web.py +2 -2
- absfuyu/typings.py +2 -2
- absfuyu/util/__init__.py +2 -2
- absfuyu/util/api.py +2 -2
- absfuyu/util/json_method.py +2 -2
- absfuyu/util/lunar.py +2 -2
- absfuyu/util/path.py +2 -2
- absfuyu/util/performance.py +2 -2
- absfuyu/util/shorten_number.py +2 -2
- absfuyu/util/text_table.py +2 -2
- absfuyu/util/zipped.py +2 -2
- absfuyu/version.py +2 -2
- {absfuyu-5.6.1.dist-info → absfuyu-5.8.0.dist-info}/METADATA +14 -4
- absfuyu-5.8.0.dist-info/RECORD +81 -0
- absfuyu-5.6.1.dist-info/RECORD +0 -79
- {absfuyu-5.6.1.dist-info → absfuyu-5.8.0.dist-info}/WHEEL +0 -0
- {absfuyu-5.6.1.dist-info → absfuyu-5.8.0.dist-info}/entry_points.txt +0 -0
- {absfuyu-5.6.1.dist-info → absfuyu-5.8.0.dist-info}/licenses/LICENSE +0 -0
absfuyu/extra/xml.py
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Absfuyu: XML
|
|
3
|
+
------------
|
|
4
|
+
XML Tool [W.I.P]
|
|
5
|
+
|
|
6
|
+
Version: 5.8.0
|
|
7
|
+
Date updated: 16/09/2025 (dd/mm/yyyy)
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
# Module level
|
|
11
|
+
# ---------------------------------------------------------------------------
|
|
12
|
+
__all__ = ["XML2Dict"]
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
# Library
|
|
16
|
+
# ---------------------------------------------------------------------------
|
|
17
|
+
from pathlib import Path
|
|
18
|
+
from typing import Any, Self
|
|
19
|
+
|
|
20
|
+
from absfuyu.core.baseclass import GetClassMembersMixin
|
|
21
|
+
|
|
22
|
+
XML_MODE = False
|
|
23
|
+
|
|
24
|
+
try:
|
|
25
|
+
import xmltodict
|
|
26
|
+
except ImportError:
|
|
27
|
+
from subprocess import run
|
|
28
|
+
|
|
29
|
+
from absfuyu.config import ABSFUYU_CONFIG
|
|
30
|
+
|
|
31
|
+
if ABSFUYU_CONFIG._get_setting("auto-install-extra").value: # type: ignore
|
|
32
|
+
cmd = "python -m pip install -U absfuyu[full]".split()
|
|
33
|
+
run(cmd)
|
|
34
|
+
else:
|
|
35
|
+
raise SystemExit("This feature is in absfuyu[full] package") # noqa: B904
|
|
36
|
+
else:
|
|
37
|
+
XML_MODE = True
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
# Class
|
|
41
|
+
# ---------------------------------------------------------------------------
|
|
42
|
+
class XML2Dict(GetClassMembersMixin):
|
|
43
|
+
"""
|
|
44
|
+
Automatically convert .xml file to dict
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
Usage
|
|
48
|
+
-----
|
|
49
|
+
>>> XML2Dict(<path>)
|
|
50
|
+
>>> XML2Dict.parsed_data
|
|
51
|
+
"""
|
|
52
|
+
|
|
53
|
+
def __init__(self, text: str) -> None:
|
|
54
|
+
"""
|
|
55
|
+
Automatically convert .xml file to dict
|
|
56
|
+
|
|
57
|
+
Parameters
|
|
58
|
+
----------
|
|
59
|
+
text : str
|
|
60
|
+
``.xml`` format text
|
|
61
|
+
"""
|
|
62
|
+
self._text = text
|
|
63
|
+
|
|
64
|
+
self.parsed_data: dict[str, Any] = self._parse_xml()
|
|
65
|
+
|
|
66
|
+
def __repr__(self) -> str:
|
|
67
|
+
return f"{self.__class__.__name__}()"
|
|
68
|
+
|
|
69
|
+
def _parse_xml(self) -> dict[str, Any]:
|
|
70
|
+
"""Convert xml to dict"""
|
|
71
|
+
return xmltodict.parse(self._text, encoding="utf-8") # type: ignore
|
|
72
|
+
|
|
73
|
+
@classmethod
|
|
74
|
+
def from_path(cls, xml_path: str | Path) -> Self:
|
|
75
|
+
"""
|
|
76
|
+
Convert from .xml file path
|
|
77
|
+
|
|
78
|
+
Parameters
|
|
79
|
+
----------
|
|
80
|
+
xml_path : str | Path
|
|
81
|
+
Path to .xml file
|
|
82
|
+
|
|
83
|
+
Returns
|
|
84
|
+
-------
|
|
85
|
+
Self
|
|
86
|
+
xml to dict
|
|
87
|
+
"""
|
|
88
|
+
with Path(xml_path).open("r", encoding="utf-8") as f:
|
|
89
|
+
dat = "\n".join(f.readlines())
|
|
90
|
+
return cls(dat)
|
absfuyu/fun/__init__.py
CHANGED
absfuyu/fun/rubik.py
CHANGED
absfuyu/fun/tarot.py
CHANGED
absfuyu/game/__init__.py
CHANGED
absfuyu/game/game_stat.py
CHANGED
absfuyu/game/sudoku.py
CHANGED
absfuyu/game/tictactoe.py
CHANGED
absfuyu/game/wordle.py
CHANGED
absfuyu/general/__init__.py
CHANGED
absfuyu/general/content.py
CHANGED
absfuyu/general/human.py
CHANGED
absfuyu/general/shape.py
CHANGED
absfuyu/logger.py
CHANGED
absfuyu/pkg_data/__init__.py
CHANGED