absfuyu 5.8.0__py3-none-any.whl → 5.10.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.

Files changed (80) hide show
  1. absfuyu/__init__.py +1 -1
  2. absfuyu/__main__.py +2 -2
  3. absfuyu/cli/__init__.py +2 -2
  4. absfuyu/cli/color.py +2 -2
  5. absfuyu/cli/config_group.py +2 -2
  6. absfuyu/cli/do_group.py +2 -2
  7. absfuyu/cli/game_group.py +20 -2
  8. absfuyu/cli/tool_group.py +2 -2
  9. absfuyu/config/__init__.py +2 -2
  10. absfuyu/core/__init__.py +2 -2
  11. absfuyu/core/baseclass.py +2 -2
  12. absfuyu/core/baseclass2.py +2 -2
  13. absfuyu/core/decorator.py +2 -2
  14. absfuyu/core/docstring.py +2 -2
  15. absfuyu/core/dummy_cli.py +2 -2
  16. absfuyu/core/dummy_func.py +2 -2
  17. absfuyu/dxt/__init__.py +2 -2
  18. absfuyu/dxt/dictext.py +2 -2
  19. absfuyu/dxt/dxt_support.py +2 -2
  20. absfuyu/dxt/intext.py +2 -2
  21. absfuyu/dxt/listext.py +13 -18
  22. absfuyu/dxt/strext.py +2 -2
  23. absfuyu/extra/__init__.py +2 -2
  24. absfuyu/extra/beautiful.py +2 -2
  25. absfuyu/extra/da/__init__.py +37 -3
  26. absfuyu/extra/da/dadf.py +2 -2
  27. absfuyu/extra/da/dadf_base.py +2 -2
  28. absfuyu/extra/da/df_func.py +2 -2
  29. absfuyu/extra/da/mplt.py +2 -2
  30. absfuyu/extra/data_analysis.py +2 -2
  31. absfuyu/extra/pdf.py +2 -2
  32. absfuyu/extra/rclone.py +253 -0
  33. absfuyu/extra/xml.py +2 -2
  34. absfuyu/fun/__init__.py +2 -2
  35. absfuyu/fun/rubik.py +2 -2
  36. absfuyu/fun/tarot.py +2 -2
  37. absfuyu/game/__init__.py +2 -2
  38. absfuyu/game/game_stat.py +2 -2
  39. absfuyu/game/schulte.py +78 -0
  40. absfuyu/game/sudoku.py +2 -2
  41. absfuyu/game/tictactoe.py +2 -2
  42. absfuyu/game/wordle.py +2 -2
  43. absfuyu/general/__init__.py +2 -2
  44. absfuyu/general/content.py +2 -2
  45. absfuyu/general/human.py +2 -2
  46. absfuyu/general/shape.py +2 -2
  47. absfuyu/logger.py +2 -2
  48. absfuyu/pkg_data/__init__.py +2 -2
  49. absfuyu/pkg_data/deprecated.py +2 -2
  50. absfuyu/pkg_data/logo.py +2 -2
  51. absfuyu/sort.py +2 -2
  52. absfuyu/tools/__init__.py +2 -2
  53. absfuyu/tools/checksum.py +2 -2
  54. absfuyu/tools/converter.py +2 -2
  55. absfuyu/tools/generator.py +2 -2
  56. absfuyu/tools/inspector.py +2 -2
  57. absfuyu/tools/keygen.py +2 -2
  58. absfuyu/tools/obfuscator.py +2 -2
  59. absfuyu/tools/passwordlib.py +2 -2
  60. absfuyu/tools/shutdownizer.py +2 -2
  61. absfuyu/tools/sw.py +76 -5
  62. absfuyu/tools/web.py +2 -2
  63. absfuyu/typings.py +2 -2
  64. absfuyu/util/__init__.py +31 -2
  65. absfuyu/util/api.py +2 -2
  66. absfuyu/util/gui.py +91 -0
  67. absfuyu/util/json_method.py +2 -2
  68. absfuyu/util/lunar.py +2 -2
  69. absfuyu/util/path.py +2 -2
  70. absfuyu/util/performance.py +2 -2
  71. absfuyu/util/shorten_number.py +2 -2
  72. absfuyu/util/text_table.py +2 -2
  73. absfuyu/util/zipped.py +2 -2
  74. absfuyu/version.py +2 -2
  75. {absfuyu-5.8.0.dist-info → absfuyu-5.10.0.dist-info}/METADATA +4 -1
  76. absfuyu-5.10.0.dist-info/RECORD +84 -0
  77. absfuyu-5.8.0.dist-info/RECORD +0 -81
  78. {absfuyu-5.8.0.dist-info → absfuyu-5.10.0.dist-info}/WHEEL +0 -0
  79. {absfuyu-5.8.0.dist-info → absfuyu-5.10.0.dist-info}/entry_points.txt +0 -0
  80. {absfuyu-5.8.0.dist-info → absfuyu-5.10.0.dist-info}/licenses/LICENSE +0 -0
absfuyu/__init__.py CHANGED
@@ -22,7 +22,7 @@ Using in cmd:
22
22
  __title__ = "absfuyu"
23
23
  __author__ = "AbsoluteWinter"
24
24
  __license__ = "MIT License"
25
- __version__ = "5.8.0"
25
+ __version__ = "5.10.0"
26
26
  __all__ = [
27
27
  "core",
28
28
  "config",
absfuyu/__main__.py CHANGED
@@ -3,8 +3,8 @@ ABSFUYU
3
3
  -------
4
4
  COMMAND LINE INTERFACE
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 23/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Library
absfuyu/cli/__init__.py CHANGED
@@ -3,8 +3,8 @@ ABSFUYU
3
3
  -------
4
4
  COMMAND LINE INTERFACE
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 23/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  __all__ = ["cli"]
absfuyu/cli/color.py CHANGED
@@ -3,8 +3,8 @@ ABSFUYU CLI
3
3
  -----------
4
4
  Color
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 23/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
@@ -3,8 +3,8 @@ ABSFUYU CLI
3
3
  -----------
4
4
  Config
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 23/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
absfuyu/cli/do_group.py CHANGED
@@ -3,8 +3,8 @@ ABSFUYU CLI
3
3
  -----------
4
4
  Do
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 23/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
absfuyu/cli/game_group.py CHANGED
@@ -3,8 +3,8 @@ ABSFUYU CLI
3
3
  -----------
4
4
  Game
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 25/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
@@ -17,6 +17,7 @@ __all__ = ["game_group"]
17
17
  import click
18
18
 
19
19
  from absfuyu.game import game_escapeLoop, game_RockPaperScissors
20
+ from absfuyu.game.schulte import SchulteTable
20
21
  from absfuyu.game.sudoku import Sudoku
21
22
  from absfuyu.game.tictactoe import GameMode, TicTacToe
22
23
  from absfuyu.game.wordle import Wordle
@@ -103,6 +104,22 @@ def tictactoe(size: int, game_mode: str, bot_time: float) -> None:
103
104
  instance.play(game_mode, bot_time=bot_time)
104
105
 
105
106
 
107
+ @click.command(name="schulte")
108
+ @click.option(
109
+ "--size",
110
+ "-s",
111
+ "size",
112
+ type=int,
113
+ default=5,
114
+ show_default=True,
115
+ help="Size of the table",
116
+ )
117
+ def schulte_table(size: int) -> None:
118
+ """Schulte table"""
119
+ engine = SchulteTable(size=size)
120
+ engine.make_table()
121
+
122
+
106
123
  @click.group(name="game")
107
124
  def game_group() -> None:
108
125
  """Play game"""
@@ -114,3 +131,4 @@ game_group.add_command(escape_loop)
114
131
  game_group.add_command(wordle_solver)
115
132
  game_group.add_command(sudoku_solver)
116
133
  game_group.add_command(tictactoe)
134
+ game_group.add_command(schulte_table)
absfuyu/cli/tool_group.py CHANGED
@@ -3,8 +3,8 @@ ABSFUYU CLI
3
3
  -----------
4
4
  Tool
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 23/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
@@ -3,8 +3,8 @@ Absfuyu: Configuration
3
3
  ----------------------
4
4
  Package configuration module
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 23/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
absfuyu/core/__init__.py CHANGED
@@ -3,8 +3,8 @@ Absfuyu: Core
3
3
  -------------
4
4
  Bases for other features
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 23/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
absfuyu/core/baseclass.py CHANGED
@@ -3,8 +3,8 @@ Absfuyu: Core
3
3
  -------------
4
4
  Bases for other features
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 23/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
@@ -3,8 +3,8 @@ Absfuyu: Core
3
3
  -------------
4
4
  Bases for other features (with library)
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 23/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
absfuyu/core/decorator.py CHANGED
@@ -3,8 +3,8 @@ Absfuyu: Core
3
3
  -------------
4
4
  Decorator
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 23/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
absfuyu/core/docstring.py CHANGED
@@ -3,8 +3,8 @@ Absfuyu: Core
3
3
  -------------
4
4
  Sphinx docstring decorator
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 23/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
absfuyu/core/dummy_cli.py CHANGED
@@ -3,8 +3,8 @@ Absfuyu: Core
3
3
  -------------
4
4
  Dummy cli
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 23/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
@@ -3,8 +3,8 @@ Absfuyu: Core
3
3
  -------------
4
4
  Dummy functions when other libraries are unvailable
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 23/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
absfuyu/dxt/__init__.py CHANGED
@@ -3,8 +3,8 @@ Absfuyu: Data Extension
3
3
  -----------------------
4
4
  Extension for data type such as ``list``, ``str``, ``dict``, ...
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 23/09/2025 (dd/mm/yyyy)
8
8
 
9
9
  Features:
10
10
  ---------
absfuyu/dxt/dictext.py CHANGED
@@ -3,8 +3,8 @@ Absfuyu: Data Extension
3
3
  -----------------------
4
4
  dict extension
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 23/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
@@ -3,8 +3,8 @@ Absfuyu: Data Extension
3
3
  -----------------------
4
4
  Support classes
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 23/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
absfuyu/dxt/intext.py CHANGED
@@ -3,8 +3,8 @@ Absfuyu: Data Extension
3
3
  -----------------------
4
4
  int extension
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 23/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
absfuyu/dxt/listext.py CHANGED
@@ -3,8 +3,8 @@ Absfuyu: Data Extension
3
3
  -----------------------
4
4
  list extension
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 25/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
@@ -80,9 +80,7 @@ class ListExt(GetClassMembersMixin, list):
80
80
  >>> ListExt(range(10)).head(2)
81
81
  [0, 1]
82
82
  """
83
- number_of_items = int(
84
- set_min_max(number_of_items, min_value=0, max_value=len(self))
85
- )
83
+ number_of_items = int(set_min_max(number_of_items, min_value=0, max_value=len(self)))
86
84
  return self[:number_of_items]
87
85
 
88
86
  def tail(self, number_of_items: int = 5) -> list:
@@ -106,9 +104,7 @@ class ListExt(GetClassMembersMixin, list):
106
104
  >>> ListExt(range(10)).tail(2)
107
105
  [8, 9]
108
106
  """
109
- number_of_items = int(
110
- set_min_max(number_of_items, min_value=0, max_value=len(self))
111
- )
107
+ number_of_items = int(set_min_max(number_of_items, min_value=0, max_value=len(self)))
112
108
  return self[::-1][:number_of_items][::-1]
113
109
 
114
110
  # Misc
@@ -165,15 +161,13 @@ class ListExt(GetClassMembersMixin, list):
165
161
  type_weights[type(x)] = len(type_weights)
166
162
  # logger.debug(f"Type weight: {type_weights}")
167
163
 
168
- output = sorted(
169
- lst, key=lambda x: (type_weights[type(x)], str(x)), reverse=reverse
170
- )
164
+ output = sorted(lst, key=lambda x: (type_weights[type(x)], str(x)), reverse=reverse)
171
165
 
172
166
  # logger.debug(output)
173
167
  return self.__class__(output)
174
168
 
175
169
  @overload
176
- def freq(self) -> dict: ...
170
+ def freq(self) -> dict: ... # type: ignore
177
171
 
178
172
  @overload
179
173
  def freq(
@@ -256,9 +250,7 @@ class ListExt(GetClassMembersMixin, list):
256
250
  # logger.debug(times_appear)
257
251
 
258
252
  if appear_increment:
259
- times_appear_increment: list[int] = list(
260
- accumulate(times_appear.values(), operator.add)
261
- )
253
+ times_appear_increment: list[int] = list(accumulate(times_appear.values(), operator.add))
262
254
  # logger.debug(times_appear_increment)
263
255
  return times_appear_increment # incremental index list
264
256
  else:
@@ -459,6 +451,11 @@ class ListExt(GetClassMembersMixin, list):
459
451
  """
460
452
  return [self.pick_one() for _ in range(number_of_items)]
461
453
 
454
+ @versionadded("5.10.0")
455
+ def shuffle(self) -> Self:
456
+ random.shuffle(self)
457
+ return self
458
+
462
459
  # Len
463
460
  @versionchanged("5.2.0", reason="Handle more type")
464
461
  def len_items(self) -> Self:
@@ -857,9 +854,7 @@ class ListExt(GetClassMembersMixin, list):
857
854
  fill = " "
858
855
 
859
856
  # Calculate how many columns of text
860
- column_count = (
861
- max(1, available_width // max_item_length) if max_item_length > 0 else 1
862
- )
857
+ column_count = max(1, available_width // max_item_length) if max_item_length > 0 else 1
863
858
 
864
859
  # splitted_chunk: list[list[str]] = self.split_chunk(cols)
865
860
  # mod_chunk = self.__class__(
absfuyu/dxt/strext.py CHANGED
@@ -3,8 +3,8 @@ Absfuyu: Data Extension
3
3
  -----------------------
4
4
  str extension
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 23/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module Package
absfuyu/extra/__init__.py CHANGED
@@ -3,8 +3,8 @@ Absfuyu: Extra
3
3
  --------------
4
4
  Features that require additional libraries
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 23/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
 
@@ -3,8 +3,8 @@ Absfuyu: Beautiful
3
3
  ------------------
4
4
  A decorator that makes output more beautiful
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 23/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
@@ -3,13 +3,19 @@ Absfuyu: Data Analysis
3
3
  ----------------------
4
4
  Data Analyst
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 23/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
11
11
  # ---------------------------------------------------------------------------
12
- __all__ = ["MatplotlibFormatString", "DADF"]
12
+ __all__ = [
13
+ "MatplotlibFormatString",
14
+ "DADF",
15
+ # Function
16
+ "custom_pandas_settings",
17
+ "reset_custom_pandas_settings",
18
+ ]
13
19
 
14
20
 
15
21
  # Library
@@ -36,3 +42,31 @@ else:
36
42
 
37
43
  from absfuyu.extra.da.dadf import DADF
38
44
  from absfuyu.extra.da.mplt import MatplotlibFormatString
45
+
46
+
47
+ # Function
48
+ # ---------------------------------------------------------------------------
49
+ def custom_pandas_settings(*, show_all_rows: bool = False) -> None:
50
+ """
51
+ Custom pandas settings. Currently only show all cols/rows
52
+
53
+ Parameters
54
+ ----------
55
+ show_all_rows : bool, optional
56
+ Show all rows, by default False
57
+ """
58
+ # Shows all columns
59
+ pd.set_option("display.max_columns", None) # type: ignore
60
+
61
+ if show_all_rows:
62
+ # (optional) also show all rows if needed
63
+ pd.set_option("display.max_rows", None) # type: ignore
64
+
65
+
66
+ def reset_custom_pandas_settings() -> None:
67
+ """
68
+ Reset custom pandas settings
69
+ """
70
+ settings = ["display.max_columns", "display.max_rows"]
71
+ for x in settings:
72
+ pd.reset_option(x) # type: ignore
absfuyu/extra/da/dadf.py CHANGED
@@ -3,8 +3,8 @@ Absfuyu: Data Analysis
3
3
  ----------------------
4
4
  Data Analyst DataFrame
5
5
 
6
- Version: 5.8.0
7
- Date updated: 17/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 23/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
@@ -3,8 +3,8 @@ Absfuyu: Data Analysis
3
3
  ----------------------
4
4
  Data Analyst DataFrame - Base/Core
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 23/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
@@ -3,8 +3,8 @@ Absfuyu: Data Analysis
3
3
  ----------------------
4
4
  DF Function
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 23/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
absfuyu/extra/da/mplt.py CHANGED
@@ -3,8 +3,8 @@ Absfuyu: Data Analysis
3
3
  ----------------------
4
4
  Matplotlib Helper
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 23/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
@@ -4,8 +4,8 @@ Absfuyu: Data Analysis [W.I.P]
4
4
  Extension for ``pd.DataFrame``
5
5
  (deprecated)
6
6
 
7
- Version: 5.8.0
8
- Date updated: 16/09/2025 (dd/mm/yyyy)
7
+ Version: 5.10.0
8
+ Date updated: 23/09/2025 (dd/mm/yyyy)
9
9
  """
10
10
 
11
11
  # Library
absfuyu/extra/pdf.py CHANGED
@@ -3,8 +3,8 @@ Absfuyu: PDF
3
3
  ------------
4
4
  PDF Tool [W.I.P]
5
5
 
6
- Version: 5.8.0
7
- Date updated: 16/09/2025 (dd/mm/yyyy)
6
+ Version: 5.10.0
7
+ Date updated: 23/09/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level