absfuyu 3.4.0__py3-none-any.whl → 4.0.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/util/lunar.py CHANGED
@@ -4,8 +4,8 @@ Absfuyu: Lunar calendar
4
4
  -----------------------
5
5
  Convert to lunar calendar
6
6
 
7
- Version: 1.0.2
8
- Date updated: 05/04/2024 (dd/mm/yyyy)
7
+ Version: 1.0.3
8
+ Date updated: 15/11/2024 (dd/mm/yyyy)
9
9
 
10
10
  Source:
11
11
  -------
@@ -22,7 +22,6 @@ __all__ = ["LunarCalendar"]
22
22
  ###########################################################################
23
23
  import math
24
24
  from datetime import date, datetime
25
- from typing import Optional, Union
26
25
 
27
26
 
28
27
  # Class
@@ -56,9 +55,9 @@ class LunarCalendar:
56
55
  def _julian_day_from_date(
57
56
  self,
58
57
  *,
59
- overwrite_year: Optional[int] = None,
60
- overwrite_month: Optional[int] = None,
61
- overwrite_day: Optional[int] = None,
58
+ overwrite_year: int | None = None,
59
+ overwrite_month: int | None = None,
60
+ overwrite_day: int | None = None,
62
61
  ) -> int:
63
62
  """
64
63
  Compute the (integral) Julian day number of `self.date`
@@ -211,7 +210,7 @@ class LunarCalendar:
211
210
  """
212
211
  return int(self._new_moon(k) + 0.5 + self.time_zone / 24.0)
213
212
 
214
- def _get_lunar_month_11(self, *, overwrite_year: Optional[int] = None) -> int:
213
+ def _get_lunar_month_11(self, *, overwrite_year: int | None = None) -> int:
215
214
  """
216
215
  Find the day that starts the luner month 11
217
216
  of the given year for the given time zone.
@@ -373,7 +372,7 @@ class LunarCalendar:
373
372
  return cls(year, month, day, lunar_leap=lunar_leap).to_lunar()
374
373
 
375
374
  @classmethod
376
- def from_datetime(cls, datetime_object: Union[date, datetime]):
375
+ def from_datetime(cls, datetime_object: date | datetime):
377
376
  """
378
377
  Convert from ``datetime.datetime`` object
379
378
 
absfuyu/util/path.py CHANGED
@@ -3,8 +3,8 @@ Absfuyu: Path
3
3
  -------------
4
4
  Path related
5
5
 
6
- Version: 1.6.5
7
- Date updated: 10/04/2024 (dd/mm/yyyy)
6
+ Version: 1.6.7
7
+ Date updated: 06/01/2025 (dd/mm/yyyy)
8
8
 
9
9
  Feature:
10
10
  --------
@@ -32,7 +32,7 @@ import shutil
32
32
  from datetime import datetime
33
33
  from functools import partial
34
34
  from pathlib import Path
35
- from typing import Any, List, Literal, NamedTuple, Optional, Union
35
+ from typing import Any, Literal, NamedTuple
36
36
 
37
37
  from deprecated.sphinx import versionadded
38
38
 
@@ -69,7 +69,7 @@ class DirectoryInfo(NamedTuple):
69
69
  class DirectoryBase:
70
70
  def __init__(
71
71
  self,
72
- source_path: Union[str, Path],
72
+ source_path: str | Path,
73
73
  create_if_not_exist: bool = False,
74
74
  ) -> None:
75
75
  """
@@ -114,21 +114,21 @@ class DirectoryBase:
114
114
  # Everything
115
115
  @property
116
116
  @versionadded(version="3.3.0")
117
- def everything(self) -> List[Path]:
117
+ def everything(self) -> list[Path]:
118
118
  """
119
119
  Every folders and files in this Directory
120
120
  """
121
121
  return list(x for x in self.source_path.glob("**/*"))
122
122
 
123
123
  @versionadded(version="3.3.0")
124
- def _every_folder(self) -> List[Path]:
124
+ def _every_folder(self) -> list[Path]:
125
125
  """
126
126
  Every folders in this Directory
127
127
  """
128
128
  return list(x for x in self.source_path.glob("**/*") if x.is_dir())
129
129
 
130
130
  @versionadded(version="3.3.0")
131
- def _every_file(self) -> List[Path]:
131
+ def _every_file(self) -> list[Path]:
132
132
  """
133
133
  Every folders in this Directory
134
134
  """
@@ -224,7 +224,7 @@ class DirectoryBasicOperation(DirectoryBase):
224
224
  logger.debug("Overwriting file...DONE")
225
225
 
226
226
  # Delete folder
227
- def _mtime_folder(self) -> List[FileOrFolderWithModificationTime]:
227
+ def _mtime_folder(self) -> list[FileOrFolderWithModificationTime]:
228
228
  """
229
229
  Get modification time of file/folder (first level only)
230
230
  """
@@ -236,7 +236,7 @@ class DirectoryBasicOperation(DirectoryBase):
236
236
  ]
237
237
 
238
238
  @staticmethod
239
- def _delete_files(list_of_files: List[Path]) -> None:
239
+ def _delete_files(list_of_files: list[Path]) -> None:
240
240
  """
241
241
  Delete files/folders
242
242
  """
@@ -316,7 +316,9 @@ class DirectoryBasicOperation(DirectoryBase):
316
316
  logger.error(f"Removing {self.source_path}...FAILED\n{e}")
317
317
 
318
318
  # Zip
319
- def compress(self, *, format: str = "zip") -> Union[Path, None]:
319
+ def compress(
320
+ self, *, format: Literal["zip", "tar", "gztar", "bztar", "xztar"] = "zip"
321
+ ) -> Path | None:
320
322
  """
321
323
  Compress the directory (Default: Create ``.zip`` file)
322
324
 
@@ -366,7 +368,7 @@ class Directory(DirectoryBasicOperation, DirectoryTree):
366
368
  """
367
369
 
368
370
  # Directory structure
369
- def _list_dir(self, *ignore: str) -> List[Path]:
371
+ def _list_dir(self, *ignore: str) -> list[Path]:
370
372
  """
371
373
  List all directories and files
372
374
 
@@ -395,7 +397,7 @@ class Directory(DirectoryBasicOperation, DirectoryTree):
395
397
 
396
398
  @staticmethod
397
399
  @versionadded(version="3.3.0")
398
- def _split_dir(list_of_path: List[Path]) -> List[List[str]]:
400
+ def _split_dir(list_of_path: list[Path]) -> list[list[str]]:
399
401
  """
400
402
  Split pathname by ``os.sep``
401
403
 
@@ -421,11 +423,11 @@ class Directory(DirectoryBasicOperation, DirectoryTree):
421
423
 
422
424
  def _separate_dir_and_files(
423
425
  self,
424
- list_of_path: List[Path],
426
+ list_of_path: list[Path],
425
427
  *,
426
- tab_symbol: Optional[str] = None,
427
- sub_dir_symbol: Optional[str] = None,
428
- ) -> List[str]:
428
+ tab_symbol: str | None = None,
429
+ sub_dir_symbol: str | None = None,
430
+ ) -> list[str]:
429
431
  """
430
432
  Separate dir and file and transform into folder structure
431
433
 
@@ -453,7 +455,7 @@ class Directory(DirectoryBasicOperation, DirectoryTree):
453
455
  if not sub_dir_symbol:
454
456
  sub_dir_symbol = "|-- "
455
457
 
456
- temp: List[List[str]] = self._split_dir(list_of_path)
458
+ temp: list[list[str]] = self._split_dir(list_of_path)
457
459
 
458
460
  return [ # Returns n-tab space with sub-dir-symbol for the last item in x
459
461
  f"{tab_symbol * (len(x) - 1)}{sub_dir_symbol}{x[-1]}" for x in temp
@@ -485,8 +487,8 @@ class Directory(DirectoryBasicOperation, DirectoryTree):
485
487
  )
486
488
  ...
487
489
  """
488
- temp: List[Path] = self._list_dir(*ignore)
489
- out: List[str] = self._separate_dir_and_files(temp)
490
+ temp: list[Path] = self._list_dir(*ignore)
491
+ out: list[str] = self._separate_dir_and_files(temp)
490
492
  return "\n".join(out) # Join the list
491
493
 
492
494
  def list_structure_pkg(self) -> str:
@@ -506,7 +508,7 @@ class Directory(DirectoryBasicOperation, DirectoryTree):
506
508
  class SaveFileAs:
507
509
  """File as multiple file type"""
508
510
 
509
- def __init__(self, data: Any, *, encoding: Union[str, None] = "utf-8") -> None:
511
+ def __init__(self, data: Any, *, encoding: str | None = "utf-8") -> None:
510
512
  """
511
513
  :param encoding: Default: utf-8
512
514
  """
@@ -519,7 +521,7 @@ class SaveFileAs:
519
521
  def __repr__(self) -> str:
520
522
  return self.__str__()
521
523
 
522
- def to_txt(self, path: Union[str, Path]) -> None:
524
+ def to_txt(self, path: str | Path) -> None:
523
525
  """
524
526
  Save as ``.txt`` file
525
527
 
@@ -3,8 +3,8 @@ Absfuyu: Performance
3
3
  --------------------
4
4
  Performance Check
5
5
 
6
- Version: 1.2.3
7
- Date updated: 05/04/2024 (dd/mm/yyyy)
6
+ Version: 1.2.4
7
+ Date updated: 15/11/2024 (dd/mm/yyyy)
8
8
 
9
9
  Feature:
10
10
  --------
@@ -33,7 +33,7 @@ import time
33
33
  import tracemalloc
34
34
  from functools import wraps
35
35
  from inspect import getsource
36
- from typing import Any, Callable, Dict, List, Union
36
+ from typing import Any, Callable
37
37
 
38
38
  from deprecated.sphinx import versionadded, versionchanged
39
39
 
@@ -271,7 +271,7 @@ class Checker:
271
271
  return f"{self.__class__.__name__}({self.item_to_check})"
272
272
 
273
273
  @property
274
- def name(self) -> Union[Any, None]:
274
+ def name(self) -> Any | None:
275
275
  """``__name__`` of variable (if any)"""
276
276
  try:
277
277
  return self.item_to_check.__name__
@@ -284,7 +284,7 @@ class Checker:
284
284
  return self.item_to_check
285
285
 
286
286
  @property
287
- def docstring(self) -> Union[str, None]:
287
+ def docstring(self) -> str | None:
288
288
  """``__doc__`` of variable (if any)"""
289
289
  return self.item_to_check.__doc__ # type: ignore
290
290
 
@@ -299,20 +299,20 @@ class Checker:
299
299
  return id(self.item_to_check)
300
300
 
301
301
  @property
302
- def dir_(self) -> List[str]:
302
+ def dir_(self) -> list[str]:
303
303
  """``dir()`` of variable"""
304
304
  # return self.item_to_check.__dir__()
305
305
  return ListNoDunder(self.item_to_check.__dir__())
306
306
 
307
307
  @property
308
- def source(self) -> Union[str, None]:
308
+ def source(self) -> str | None:
309
309
  """Source code of variable (if available)"""
310
310
  try:
311
311
  return getsource(self.item_to_check)
312
312
  except Exception:
313
313
  return None
314
314
 
315
- def check(self, full: bool = False) -> Dict[str, Any]:
315
+ def check(self, full: bool = False) -> dict[str, Any]:
316
316
  """
317
317
  Check the variable
318
318
 
absfuyu/util/zipped.py CHANGED
@@ -3,8 +3,8 @@ Absfuyu: Zipped
3
3
  ---------------
4
4
  Zipping stuff (deprecated soon, most features already in absfuyu.util.path.Directory)
5
5
 
6
- Version: 1.0.1
7
- Date updated: 24/11/2023 (dd/mm/yyyy)
6
+ Version: 1.1.0
7
+ Date updated: 07/01/2025 (dd/mm/yyyy)
8
8
  """
9
9
 
10
10
  # Module level
@@ -17,7 +17,6 @@ __all__ = ["Zipper"]
17
17
  import shutil
18
18
  import zipfile
19
19
  from pathlib import Path
20
- from typing import Union
21
20
 
22
21
  from absfuyu.logger import logger
23
22
 
@@ -26,9 +25,7 @@ from absfuyu.logger import logger
26
25
  class Zipper:
27
26
  """Zip file or folder"""
28
27
 
29
- def __init__(
30
- self, path_to_zip: Union[str, Path], name: Union[str, None] = None
31
- ) -> None:
28
+ def __init__(self, path_to_zip: str | Path, name: str | None = None) -> None:
32
29
  """
33
30
  path_to_zip: source location
34
31
  name: zipped file name
@@ -77,6 +74,21 @@ class Zipper:
77
74
  except OSError as e:
78
75
  logger.error(f"Error: {e.filename} - {e.strerror}.")
79
76
 
77
+ # Added in version 4.0.0
78
+ def unzip(self):
79
+ """
80
+ Unzip every archive files in directory
81
+ """
82
+ _valid = [".zip", ".cbz"]
83
+ for x in self.source_path.glob("*"):
84
+ if x.suffix.lower() in _valid:
85
+ logger.debug(f"Unzipping {x.name}...")
86
+ if x.suffix.lower() == ".cbz":
87
+ temp = x.rename(x.with_suffix(".zip"))
88
+ shutil.unpack_archive(temp, temp.parent.joinpath(temp.stem))
89
+ else:
90
+ shutil.unpack_archive(x, x.parent.joinpath(x.stem))
91
+
80
92
 
81
93
  # Run
82
94
  ###########################################################################
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: absfuyu
3
- Version: 3.4.0
3
+ Version: 4.0.0
4
4
  Summary: A small collection of code
5
5
  Project-URL: Homepage, https://github.com/AbsoluteWinter/absfuyu-public
6
6
  Project-URL: Documentation, https://absolutewinter.github.io/absfuyu-docs/
@@ -18,24 +18,20 @@ Classifier: Natural Language :: English
18
18
  Classifier: Operating System :: OS Independent
19
19
  Classifier: Programming Language :: Python :: 3
20
20
  Classifier: Programming Language :: Python :: 3 :: Only
21
- Classifier: Programming Language :: Python :: 3.8
22
- Classifier: Programming Language :: Python :: 3.9
23
- Classifier: Programming Language :: Python :: 3.10
24
21
  Classifier: Programming Language :: Python :: 3.11
25
22
  Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Programming Language :: Python :: 3.13
26
24
  Classifier: Topic :: Software Development :: Libraries
27
25
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
28
26
  Classifier: Topic :: Utilities
29
- Requires-Python: <4,>=3.8
27
+ Requires-Python: <4,>=3.11
30
28
  Requires-Dist: bs4
31
29
  Requires-Dist: click>=8.0.0
32
30
  Requires-Dist: colorama
33
31
  Requires-Dist: deprecated
34
- Requires-Dist: importlib-resources; python_version < '3.10'
35
32
  Requires-Dist: python-dateutil
36
33
  Requires-Dist: requests
37
- Requires-Dist: tomli>=1.1.0; python_version < '3.11'
38
- Requires-Dist: typing-extensions>=4.0.1; python_version < '3.11'
34
+ Requires-Dist: typing-extensions>=4.5.0; python_version < '3.12'
39
35
  Requires-Dist: unidecode
40
36
  Provides-Extra: beautiful
41
37
  Requires-Dist: rich; extra == 'beautiful'
@@ -1,6 +1,6 @@
1
- absfuyu/__init__.py,sha256=_yzkAdSotbRg7ZyL2DwGHvhipMMNblfJPmT9ApkUZsI,638
1
+ absfuyu/__init__.py,sha256=3QPuQhsAV4d3FaiT_3HTn6df1fPKIPDCxng8qpVULDU,638
2
2
  absfuyu/__main__.py,sha256=OpMwc35W5VANzw6gvlqJaJOl2H89i_frFZbleUQwDss,163
3
- absfuyu/core.py,sha256=HYEbVQ_zKFyMje6pwssw53RojT1RwMjZsA0F6jInxMg,1248
3
+ absfuyu/core.py,sha256=NW8veKHacn7hPqlnVXLGEmj_gzip2R3JgfFNwUTuwtU,959
4
4
  absfuyu/everything.py,sha256=PGIXlqgxyADFPygohVYVIb7fZz72L_xXrlLX0WImuYg,788
5
5
  absfuyu/logger.py,sha256=vT0CniqNv-cNXbtkhu1jaOhehHvlInHQt1PFsna5qIY,13135
6
6
  absfuyu/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -9,9 +9,9 @@ absfuyu/version.py,sha256=KMaeXNl93L4VU2RnTySoFv23IDyTvHfy84nyatFcKaE,14128
9
9
  absfuyu/cli/__init__.py,sha256=nKTbe4iPpkjtDDMJwVY36heInKDm1zyek9ags5an7s4,1105
10
10
  absfuyu/cli/color.py,sha256=7M3XqFllt26tv_NR5qKgyTId6wnVADtUB74cDYy8pOQ,497
11
11
  absfuyu/cli/config_group.py,sha256=FsyYm2apSyAA2PAD12CpHAizenRds_QlLf8j0AlLuVo,1230
12
- absfuyu/cli/do_group.py,sha256=HUXmlx11fSrcq4BwAhxDvQXSj6IPiwt4f2OlVR6sFjM,2343
12
+ absfuyu/cli/do_group.py,sha256=xjdMhivqFLvK-beNoOhQBl5c2mB9gcFMdmBKlCWFfL4,2645
13
13
  absfuyu/cli/game_group.py,sha256=ySpL2hm4VCplhNY0s22kBGI5eFCdJj9fm1T58yftU74,2348
14
- absfuyu/config/__init__.py,sha256=Rowa9XlSQiXVRdbL_6wOh7eWAm1jyPG4sPn_WjBj8D0,8650
14
+ absfuyu/config/__init__.py,sha256=4r77tFm3mgHX8H1uWWNXC_FZ8hiSJzsYAyiStZiVj5w,8641
15
15
  absfuyu/config/config.json,sha256=-ZQnmDuLq0aAFfsrQbSNR3tq5k9Eu9IVUQgYD9htIQM,646
16
16
  absfuyu/extensions/__init__.py,sha256=hxeZm3w00K4GC78cDTIo5ROWiWAZw4zEmlevfOqbNvo,146
17
17
  absfuyu/extensions/beautiful.py,sha256=eGfmJ72UQTVvevMCr80RoyYuCYxLaHkvAm1Kk2pkqc0,5331
@@ -21,39 +21,39 @@ absfuyu/extensions/dev/passwordlib.py,sha256=RvN-AOYann_K-OXVJOmtfTi38uYlcr7Gd2O
21
21
  absfuyu/extensions/dev/project_starter.py,sha256=RkTHwMXdChB45d7rrDuDMzo3a34-P514JlOmYHHNads,1593
22
22
  absfuyu/extensions/dev/shutdownizer.py,sha256=Vm9AUsUGyvRWRYAl4fp4CriSmixzBtV8ZGvqmNjdEvo,4027
23
23
  absfuyu/extensions/extra/__init__.py,sha256=gUB8fIOz4V9xQxk689dMe7NFFu_r-CneCsi32DtjQAo,552
24
- absfuyu/extensions/extra/data_analysis.py,sha256=CyAv-bLevoUDzpnULWP_b_I1_QGWK6DQa7pI6k8WBVQ,31695
24
+ absfuyu/extensions/extra/data_analysis.py,sha256=JR8smS6gVRZ4jJtboshCpC3jFabVLQ8LBhWOA-sfIG4,32969
25
25
  absfuyu/fun/WGS.py,sha256=Aug9BsLTawBDkjdCQ3oqWAfGGeY6ZSBV1kENrTVnlUA,9461
26
- absfuyu/fun/__init__.py,sha256=dkJ59Ci0_ncwfKUbY_HL862GwfDpKlcMKMMLbGXnbbU,6273
27
- absfuyu/fun/tarot.py,sha256=ZHRuqclhSeTjolIqgl1D85e5QSwhxUSYWCqtQEyMHsA,2570
28
- absfuyu/game/__init__.py,sha256=p3aHtyYgT1joM5Q596ycrU8vOpCahEOCkOQdJAH5iAU,4417
26
+ absfuyu/fun/__init__.py,sha256=AOaq3NdgaK7e5hk622Wspiu6Z2biVK-jpk2FChn05rA,6366
27
+ absfuyu/fun/tarot.py,sha256=Y0z5rNWLOmqfJV961L_9LzUORRNR89Vegy7KqgNR9xs,2539
28
+ absfuyu/game/__init__.py,sha256=Nnkhnca6aw-kg98kExhUeX78dqu_ivQzB_pFvyI21XE,4417
29
29
  absfuyu/game/game_stat.py,sha256=4limsvYGw_t2PMZXrGfivouc4SDexFcc9f3SjXGVj_o,961
30
- absfuyu/game/sudoku.py,sha256=RVjo3maXukxf6Og1MbALasN48uXNraMd2KcGhfgc9G8,10141
31
- absfuyu/game/tictactoe.py,sha256=WeWbRTWPsKl_NXdxuL2h5f9Bu8zMvkRxwIf4VIeAiAA,9609
30
+ absfuyu/game/sudoku.py,sha256=zMsQ2opVFpREZMdSmu2ZXwV4mu463rRLdwrGV9qwg2s,10130
31
+ absfuyu/game/tictactoe.py,sha256=OfI7WHxxiAbhuRAt8qsDG1BJuc3hlhX4N6-HORq9fbI,9603
32
32
  absfuyu/game/wordle.py,sha256=1RpgB8fBgcL_E2TgbTFXjZHtzthJQysCAl0fbK_LG5w,101336
33
33
  absfuyu/general/__init__.py,sha256=6AJZ7Ul6l8MKaqEwRD2ktQUIBfhTPaDUYDQB7MUQ5rc,2481
34
34
  absfuyu/general/content.py,sha256=7yhl-6Rhyp2geNpuKQkuhxor3EcyovW3COdiYsmjUDI,17441
35
- absfuyu/general/data_extension.py,sha256=4jSND6dzLqoQD3LkskxdslTxDMD-scgekgHBfJNOIlQ,49378
35
+ absfuyu/general/data_extension.py,sha256=iCuJq_x7XDhhxUzu86rt7iQd170urGjCiPG3dcw88rk,48932
36
36
  absfuyu/general/generator.py,sha256=pozKlZgTqKxzwsKR6-tI8Lel0qTjTMubv4T3Zk7ifEQ,9691
37
37
  absfuyu/general/human.py,sha256=drZT1nI_YwGMOwZu8pbzf3frM-SUY15cOcnUpc4pzQk,12241
38
- absfuyu/pkg_data/__init__.py,sha256=nqlQFF05sgnpPJYbac7gdUULPNy9PUVhW_KL8vGBqhQ,5000
38
+ absfuyu/pkg_data/__init__.py,sha256=VbUoFnUDiw_3bKZVvIzwf_ve0y97rmhfpkbbrP_ob_w,4761
39
39
  absfuyu/pkg_data/chemistry.pkl,sha256=kYWNa_PVffoDnzT8b9Jvimmf_GZshPe1D-SnEKERsLo,4655
40
40
  absfuyu/pkg_data/tarot.pkl,sha256=ssXTCC_BQgslO5F-3a9HivbxFQ6BioIe2E1frPVi2m0,56195
41
41
  absfuyu/tools/__init__.py,sha256=VDmmMLEfiRyUWPVrPYc8JUEa5TXjLguKVnyI3YavFv0,118
42
- absfuyu/tools/converter.py,sha256=9fbFpzxOmY44YDi_5S6CtcQPebeY-9wFeZ9057cJWeY,9925
42
+ absfuyu/tools/converter.py,sha256=tHIuunrEoX8wai0lXda3nQBKr2ymO5-cxy0dEIuOsVc,9871
43
43
  absfuyu/tools/keygen.py,sha256=drj8OUDCXrLvcVf9_Shd5UMShm_mBTxa9Sg_BrAT5yM,7356
44
44
  absfuyu/tools/obfuscator.py,sha256=c1HMEg40BY9XM_dHK1mokjHE9Sp5Vd083oFxvPnFrKA,8666
45
45
  absfuyu/tools/stats.py,sha256=zZNK59qn0xqQlyw5CP3MP5WRMSxncdKZythqvgNR1lQ,5191
46
46
  absfuyu/tools/web.py,sha256=Mb5RYj1Fu5eB-mYMusyrE2JG6_ZPEf8WT72Z8q6Ep74,1406
47
- absfuyu/util/__init__.py,sha256=PMdzc23qt18hRBEc1vF5S2dStbLX8UqiIac_DH27Fac,3821
48
- absfuyu/util/api.py,sha256=a7HvcNyRNgggUqyssYsggC8-1qofmVvFeRcOmLPQSqI,4427
49
- absfuyu/util/json_method.py,sha256=7Qtdrf_Wh1qVswwHEdqGe0Zw3s_UYyBrpw8SGF7RVwI,2721
50
- absfuyu/util/lunar.py,sha256=B7Xola5m8fNNAbqpsbLLJzAj8Z0HYT2EbNq-sYPPdl8,13804
51
- absfuyu/util/path.py,sha256=_eeroXaHiJTzIyhX65b-gkMQ4tiHjKT_ZFHLFoHCzlo,16620
52
- absfuyu/util/performance.py,sha256=vOSlMmKIT_LLM5Dey3ra-iLLEaW5SsBzIR5-dovzB0w,9142
47
+ absfuyu/util/__init__.py,sha256=1V2DwIUt-bSiSURnk6AzfKB0HRLHwoi8_6RaIvywlzU,3716
48
+ absfuyu/util/api.py,sha256=qI3T3bO_dRyRLjmeCtKAJzWr5v7b8ZG1U1rsb4UJk2g,4395
49
+ absfuyu/util/json_method.py,sha256=8DlNXRNqHKbbikG3p08LEKWuw8FxjYP7k_sCYhwH9Bg,2684
50
+ absfuyu/util/lunar.py,sha256=xW7HcgyIRjWBhQv36RimNZIT8Ed_X83moqr5h5-Ku9k,13750
51
+ absfuyu/util/path.py,sha256=p4Ac98FfW5pXLNRRuQ_QEx_G7-UOSBKABAg_xrOq7u4,16628
52
+ absfuyu/util/performance.py,sha256=F-aLJ-5wmwkiOdl9_wZcFRKifL9zOahw52JeL4TbCuQ,9105
53
53
  absfuyu/util/pkl.py,sha256=ZZf6-PFC2uRGXqARNi0PGH3A0IXwMP0sYPWZJXENvak,1559
54
- absfuyu/util/zipped.py,sha256=C0T2XRJcRPqoUiKBbViY2IgFI_47tdGMT9WXLxK1DeM,2570
55
- absfuyu-3.4.0.dist-info/METADATA,sha256=PFKTz0flBfAbXRFCZHcssanawKuqT7BULYqD6t1VWPA,3969
56
- absfuyu-3.4.0.dist-info/WHEEL,sha256=xl5aZkiJYVTjhVaiADvIe6UeUVylGNomrxKZ0Zda1CE,87
57
- absfuyu-3.4.0.dist-info/entry_points.txt,sha256=bW5CgJRTTWJ2Pywojo07sf-YucRPcnHzMmETh5avbX0,79
58
- absfuyu-3.4.0.dist-info/licenses/LICENSE,sha256=_tQM-uZht2y-26_MHcIasBp8gtJ2YmvLOezIbhixrAA,1076
59
- absfuyu-3.4.0.dist-info/RECORD,,
54
+ absfuyu/util/zipped.py,sha256=CU_le1MynFwHfpajCRRJ7_A-r1jfMjt9uu72jLooW6w,3111
55
+ absfuyu-4.0.0.dist-info/METADATA,sha256=t6D2KuZnSo6spME1rJtjEReUJ9nlv8pK9lxEJGixqnA,3757
56
+ absfuyu-4.0.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
57
+ absfuyu-4.0.0.dist-info/entry_points.txt,sha256=bW5CgJRTTWJ2Pywojo07sf-YucRPcnHzMmETh5avbX0,79
58
+ absfuyu-4.0.0.dist-info/licenses/LICENSE,sha256=_tQM-uZht2y-26_MHcIasBp8gtJ2YmvLOezIbhixrAA,1076
59
+ absfuyu-4.0.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.23.0
2
+ Generator: hatchling 1.27.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any