tensorneko-util 0.3.22__tar.gz → 0.3.23__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 (137) hide show
  1. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/PKG-INFO +2 -1
  2. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/README.md +1 -1
  3. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/setup_util.py +1 -0
  4. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/dispatcher.py +17 -2
  5. tensorneko_util-0.3.23/src/tensorneko_util/version.txt +1 -0
  6. tensorneko_util-0.3.22/src/tensorneko_util/visualization/watcher/web/dist/assets/index.5195781e.js → tensorneko_util-0.3.23/src/tensorneko_util/visualization/watcher/web/dist/assets/index.f19b5d1c.js +34 -34
  7. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/visualization/watcher/web/dist/index.html +1 -1
  8. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util.egg-info/PKG-INFO +2 -1
  9. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util.egg-info/SOURCES.txt +1 -1
  10. tensorneko_util-0.3.22/src/tensorneko_util/version.txt +0 -1
  11. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/LICENSE +0 -0
  12. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/setup.cfg +0 -0
  13. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/setup.py +0 -0
  14. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/__init__.py +0 -0
  15. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/_rich.py +0 -0
  16. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/backend/__init__.py +0 -0
  17. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/backend/audio_lib.py +0 -0
  18. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/backend/blocking.py +0 -0
  19. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/backend/parallel.py +0 -0
  20. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/backend/tqdm.py +0 -0
  21. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/backend/visual_lib.py +0 -0
  22. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/debug/__init__.py +0 -0
  23. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/debug/logger.py +0 -0
  24. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/debug/parser.py +0 -0
  25. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/__init__.py +0 -0
  26. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/_default_backends.py +0 -0
  27. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/_path_conversion.py +0 -0
  28. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/audio/__init__.py +0 -0
  29. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/audio/audio_data.py +0 -0
  30. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/audio/audio_reader.py +0 -0
  31. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/audio/audio_writer.py +0 -0
  32. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/audio/audio_writer.pyi +0 -0
  33. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/hdf5/__init__.py +0 -0
  34. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/hdf5/hdf5_reader.py +0 -0
  35. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/hdf5/hdf5_writer.py +0 -0
  36. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/image/__init__.py +0 -0
  37. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/image/image_reader.py +0 -0
  38. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/image/image_writer.py +0 -0
  39. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/json/__init__.py +0 -0
  40. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/json/json_data.py +0 -0
  41. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/json/json_reader.py +0 -0
  42. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/json/json_writer.py +0 -0
  43. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/matlab/__init__.py +0 -0
  44. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/matlab/mat_reader.py +0 -0
  45. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/matlab/mat_writer.py +0 -0
  46. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/npy/__init__.py +0 -0
  47. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/npy/npy_reader.py +0 -0
  48. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/npy/npy_writer.py +0 -0
  49. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/pickle/__init__.py +0 -0
  50. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/pickle/pickle_reader.py +0 -0
  51. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/pickle/pickle_writer.py +0 -0
  52. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/reader.py +0 -0
  53. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/text/__init__.py +0 -0
  54. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/text/text_reader.py +0 -0
  55. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/text/text_writer.py +0 -0
  56. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/toml/__init__.py +0 -0
  57. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/toml/toml_reader.py +0 -0
  58. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/toml/toml_writer.py +0 -0
  59. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/video/__init__.py +0 -0
  60. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/video/video_data.py +0 -0
  61. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/video/video_reader.py +0 -0
  62. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/video/video_reader.pyi +0 -0
  63. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/video/video_writer.py +0 -0
  64. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/video/video_writer.pyi +0 -0
  65. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/writer.py +0 -0
  66. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/yaml/__init__.py +0 -0
  67. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/yaml/yaml_reader.py +0 -0
  68. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/io/yaml/yaml_writer.py +0 -0
  69. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/msg/__init__.py +0 -0
  70. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/msg/gotify.py +0 -0
  71. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/msg/postgres.py +0 -0
  72. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/notebook/__init__.py +0 -0
  73. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/notebook/animation.py +0 -0
  74. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/notebook/display.py +0 -0
  75. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/preprocess/__init__.py +0 -0
  76. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/preprocess/crop.py +0 -0
  77. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/preprocess/crop.pyi +0 -0
  78. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/preprocess/face_detector/__init__.py +0 -0
  79. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/preprocess/face_detector/_utils.py +0 -0
  80. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/preprocess/face_detector/abstract_face_detector.py +0 -0
  81. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/preprocess/face_detector/anime_face_detector.py +0 -0
  82. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/preprocess/face_detector/facexzoo_face_detector.py +0 -0
  83. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/preprocess/face_detector/opencv_face_detector.py +0 -0
  84. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/preprocess/ffmpeg.py +0 -0
  85. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/preprocess/image.py +0 -0
  86. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/preprocess/video.py +0 -0
  87. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/__init__.py +0 -0
  88. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/average_meter.py +0 -0
  89. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/bimap.py +0 -0
  90. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/dispatched_misc.py +0 -0
  91. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/dispatched_misc.pyi +0 -0
  92. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/downloader.py +0 -0
  93. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/eventbus/__init__.py +0 -0
  94. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/eventbus/bus.py +0 -0
  95. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/eventbus/decorator.py +0 -0
  96. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/eventbus/event.py +0 -0
  97. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/fp/__init__.py +0 -0
  98. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/fp/args.py +0 -0
  99. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/fp/array/__init__.py +0 -0
  100. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/fp/array/abstract_seq.py +0 -0
  101. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/fp/array/seq.py +0 -0
  102. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/fp/array/stream.py +0 -0
  103. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/fp/func.py +0 -0
  104. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/fp/monad/__init__.py +0 -0
  105. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/fp/monad/eval.py +0 -0
  106. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/fp/monad/monad.py +0 -0
  107. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/fp/monad/option.py +0 -0
  108. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/fp/underscore.py +0 -0
  109. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/misc.py +0 -0
  110. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/multi_layer_indexer.py +0 -0
  111. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/ref.py +0 -0
  112. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/ref.pyi +0 -0
  113. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/registry.py +0 -0
  114. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/server.py +0 -0
  115. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/singleton.py +0 -0
  116. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/timer.py +0 -0
  117. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/type.py +0 -0
  118. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/util/window_merger.py +0 -0
  119. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/visualization/__init__.py +0 -0
  120. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/visualization/color.py +0 -0
  121. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/visualization/image_browser/__init__.py +0 -0
  122. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/visualization/image_browser/server.py +0 -0
  123. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/visualization/image_browser/web/index.html +0 -0
  124. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/visualization/matplotlib.py +0 -0
  125. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/visualization/multi_plots.py +0 -0
  126. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/visualization/seaborn.py +0 -0
  127. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/visualization/tensorboard.py +0 -0
  128. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/visualization/watcher/__init__.py +0 -0
  129. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/visualization/watcher/component.py +0 -0
  130. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/visualization/watcher/server.py +0 -0
  131. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/visualization/watcher/view.py +0 -0
  132. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util/visualization/watcher/web/dist/assets/index.9d369ef8.css +0 -0
  133. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util.egg-info/dependency_links.txt +0 -0
  134. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util.egg-info/requires.txt +0 -0
  135. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/src/tensorneko_util.egg-info/top_level.txt +0 -0
  136. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/test/test_library_info.py +0 -0
  137. {tensorneko_util-0.3.22 → tensorneko_util-0.3.23}/test/test_version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tensorneko_util
3
- Version: 0.3.22
3
+ Version: 0.3.23
4
4
  Summary: The Utils for Library TensorNeko.
5
5
  Home-page: https://github.com/ControlNet/tensorneko
6
6
  Author: ControlNet
@@ -16,6 +16,7 @@ Classifier: Programming Language :: Python :: 3.10
16
16
  Classifier: Programming Language :: Python :: 3.11
17
17
  Classifier: Programming Language :: Python :: 3.12
18
18
  Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Programming Language :: Python :: 3.14
19
20
  Classifier: License :: OSI Approved :: MIT License
20
21
  Classifier: Operating System :: OS Independent
21
22
  Classifier: Intended Audience :: Developers
@@ -32,7 +32,7 @@ pip install tensorneko # for PyTorch only
32
32
  pip install tensorneko[lightning] # for PyTorch and Lightning
33
33
  ```
34
34
 
35
- To use the library without PyTorch and PyTorch Lightning, you can install the util library (support Python 3.7 ~ 3.13 with limited features) with following command.
35
+ To use the library without PyTorch and PyTorch Lightning, you can install the util library (support Python 3.7 ~ 3.14 with limited features) with following command.
36
36
  ```shell
37
37
  pip install tensorneko_util
38
38
  ```
@@ -48,6 +48,7 @@ setuptools.setup(
48
48
  "Programming Language :: Python :: 3.11",
49
49
  "Programming Language :: Python :: 3.12",
50
50
  "Programming Language :: Python :: 3.13",
51
+ "Programming Language :: Python :: 3.14",
51
52
  "License :: OSI Approved :: MIT License",
52
53
  "Operating System :: OS Independent",
53
54
  "Intended Audience :: Developers",
@@ -1,12 +1,28 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import inspect
4
+ import sys
4
5
  import warnings
5
6
  from typing import Callable, Dict, List, Generic, Sequence, Optional, TYPE_CHECKING, overload
6
7
 
7
8
  from .type import T
8
9
 
9
10
 
11
+ def _is_union_type(annotation) -> bool:
12
+ """
13
+ Check if the annotation is a Union type.
14
+ Compatible with Python 3.8 ~ 3.14+
15
+ """
16
+ if sys.version_info >= (3, 14):
17
+ # Python 3.14+: str(Union[int, str]) returns "int | str"
18
+ # Use typing.get_origin() for reliable detection
19
+ from typing import Union, get_origin
20
+ return get_origin(annotation) is Union
21
+ else:
22
+ # Python < 3.14: str(Union[int, str]) returns "typing.Union[int, str]"
23
+ return str(annotation)[:13] == "typing.Union["
24
+
25
+
10
26
  class DispatcherTypeWarning(Warning):
11
27
  pass
12
28
 
@@ -38,8 +54,7 @@ class Dispatcher:
38
54
  possible_types = [[]]
39
55
 
40
56
  for param in parameters:
41
- # if is union type
42
- is_union = str(param.annotation)[:13] == "typing.Union["
57
+ is_union = _is_union_type(param.annotation)
43
58
 
44
59
  # if no default value and not union, just append to each possible types
45
60
  if param.default is inspect.Signature.empty and not is_union: