reykit 1.1.57__py3-none-any.whl → 1.1.59__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.
reykit/rlog.py CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
 
12
12
  from typing import Any, Literal, Final, overload
13
- from collections.abc import Callable
13
+ from collections.abc import Hashable, Callable
14
14
  from queue import Queue
15
15
  from os.path import abspath as os_abspath
16
16
  from logging import (
@@ -29,8 +29,7 @@ from logging import (
29
29
  from logging.handlers import QueueHandler
30
30
  from concurrent_log_handler import ConcurrentRotatingFileHandler, ConcurrentTimedRotatingFileHandler
31
31
 
32
- from .rbase import Base, ConfigMeta, throw, catch_exc, get_first_notnone, get_stack_param
33
- from .ros import File
32
+ from .rbase import Base, ConfigMeta, null, throw, catch_exc, get_first_notnone, get_stack_param
34
33
  from .rre import search, sub
35
34
  from .rstdout import ConfigStdout, modify_print, reset_print
36
35
  from .rtext import to_text
@@ -41,7 +40,7 @@ from .rwrap import wrap_thread
41
40
  __all__ = (
42
41
  'ConfigLog',
43
42
  'Log',
44
- 'Record'
43
+ 'Mark'
45
44
  )
46
45
 
47
46
 
@@ -939,100 +938,109 @@ class Log(Base):
939
938
  __call__ = log
940
939
 
941
940
 
942
- class Record(Base):
941
+ class Mark(Base):
943
942
  """
944
- Record type.
943
+ Mark object type.
944
+ Based on memory ID, if released, it may change, can use fixed ID value.
945
945
  """
946
946
 
947
947
 
948
- def __init__(
949
- self,
950
- path: str | None = '_rrecord'
951
- ) -> None:
948
+ def __init__(self) -> None:
952
949
  """
953
950
  Build instance attributes.
951
+ """
952
+
953
+ # Build.
954
+ self.data: dict[Hashable, set[int]] = {}
955
+
956
+
957
+ def mark(self, obj: Any, group: Hashable = null) -> int:
958
+ """
959
+ Mark object.
954
960
 
955
961
  Parameters
956
962
  ----------
957
- path : File path.
958
- - `None`: Record to variable.
959
- - `path`: Record to file.
963
+ obj : Object.
964
+ group : Group index.
965
+
966
+ Returns
967
+ -------
968
+ Object memory ID.
960
969
  """
961
970
 
962
- # Set attribute.
963
- self.path = path
964
- if path is None:
965
- self.records = []
971
+ # Handle parameter.
972
+ obj_id = id(obj)
973
+ group_set = self.data.setdefault(group, set())
966
974
 
975
+ # Mark.
976
+ group_set.add(obj_id)
967
977
 
968
- def record(
969
- self,
970
- value: Any
971
- ) -> None:
978
+ return obj_id
979
+
980
+
981
+ def remove(self, obj: Any, group: Hashable = null) -> None:
972
982
  """
973
- Record value.
983
+ Whether marked.
974
984
 
975
985
  Parameters
976
986
  ----------
977
- value : Value.
978
- """
987
+ obj : Object.
988
+ group : Group index.
979
989
 
980
- # To variable.
981
- if self.path is None:
982
- self.records.append(value)
983
-
984
- # To file.
985
- else:
986
- file = File(self.path)
990
+ Returns
991
+ -------
992
+ Judgment result.
993
+ """
987
994
 
988
- ## Convert.
989
- if type(value) != str:
990
- value = str(value)
991
- if file:
992
- value += ':'
993
- else:
994
- value = ':%s:' % value
995
+ # Handle parameter.
996
+ obj_id = id(obj)
997
+ group_set = self.data.setdefault(group, set())
995
998
 
996
- ## Record.
997
- file(value, True)
999
+ # Remove.
1000
+ group_set.remove(obj_id)
998
1001
 
999
1002
 
1000
- def is_recorded(
1001
- self,
1002
- value: Any
1003
- ) -> bool:
1003
+ def remove_group(self, group: Hashable) -> None:
1004
1004
  """
1005
- Judge if has been recorded.
1005
+ Whether marked.
1006
1006
 
1007
1007
  Parameters
1008
1008
  ----------
1009
- value : Record value.
1009
+ group : Group index.
1010
1010
 
1011
1011
  Returns
1012
1012
  -------
1013
- Judge result.
1013
+ Judgment result.
1014
1014
  """
1015
1015
 
1016
- # To variable.
1017
- if self.path is None:
1018
- judge = value in self.records
1016
+ # Remove.
1017
+ del self.data[group]
1019
1018
 
1020
- # To file.
1021
- else:
1022
- file = File(self.path)
1023
1019
 
1024
- ## Convert.
1025
- if type(value) != str:
1026
- value = str(value)
1027
- value = ':%s:' % value
1020
+ def is_marked(self, obj: Any, group: Hashable = null) -> bool:
1021
+ """
1022
+ Whether marked.
1028
1023
 
1029
- ## Judge.
1030
- judge = value in file
1024
+ Parameters
1025
+ ----------
1026
+ obj : Object.
1027
+ group : Group index.
1028
+
1029
+ Returns
1030
+ -------
1031
+ Judgment result.
1032
+ """
1033
+
1034
+ # Handle parameter.
1035
+ obj_id = id(obj)
1036
+ group_set = self.data.setdefault(group, set())
1031
1037
 
1032
- return judge
1038
+ # Judge.
1039
+ result = obj_id in group_set
1033
1040
 
1041
+ return result
1034
1042
 
1035
- __call__ = record
1036
1043
 
1044
+ __call__ = mark
1037
1045
 
1038
- __contains__ = is_recorded
1046
+ __contains__ = is_marked
reykit/ros.py CHANGED
@@ -1270,7 +1270,6 @@ class Folder(Base):
1270
1270
 
1271
1271
  __call__ = paths
1272
1272
 
1273
-
1274
1273
  __add__ = __radd__ = join
1275
1274
 
1276
1275
 
@@ -1926,7 +1925,6 @@ class TempFolder(Base):
1926
1925
 
1927
1926
  __call__ = paths
1928
1927
 
1929
-
1930
1928
  __add__ = __radd__ = join
1931
1929
 
1932
1930
 
reykit/rtask.py CHANGED
@@ -300,7 +300,6 @@ class ThreadPool(Base):
300
300
 
301
301
  __call__ = one
302
302
 
303
-
304
303
  __mul__ = repeat
305
304
 
306
305
 
@@ -875,5 +874,4 @@ class AsyncPool(Base):
875
874
 
876
875
  __call__ = one
877
876
 
878
-
879
877
  __mul__ = repeat
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: reykit
3
- Version: 1.1.57
3
+ Version: 1.1.59
4
4
  Summary: Kit method set.
5
5
  Project-URL: homepage, https://github.com/reyxbo/reykit/
6
6
  Author-email: Rey <reyxbo@163.com>
@@ -4,25 +4,25 @@ reykit/rbase.py,sha256=EfTMt6cRTfHlVXLX9D87lI8x6NEMfyX9IJP0WxBRkQg,22098
4
4
  reykit/rdata.py,sha256=NmOY_h4w2PY5xBbYNmOnb55w7PGsvvCzOBnxPjQ08qw,10293
5
5
  reykit/remail.py,sha256=l4HGKXdfHNBxyBT3YxeZyQhfecbElqTqSAGInwWhap8,6723
6
6
  reykit/rimage.py,sha256=lNN2iMpvSMqh-nPTpxrA9yHy43EA5WoYdxKYhqPwMgk,6154
7
- reykit/rlog.py,sha256=oXv0wGjR94seAUXz8kIhq53qSFaYPckJTjoXhd3e_c8,25599
7
+ reykit/rlog.py,sha256=cy9IQO7HZmqRLTMt04coiM_7hHTr4Kv7Pl77pMoitQk,25803
8
8
  reykit/rmonkey.py,sha256=Dj2GBzBDFXbo0Z-5f8Zep4dfbaIw1bo1FUmC31xvDuk,7929
9
9
  reykit/rnet.py,sha256=6uULgoPk8DTKWg9yNQco7gdw4A59F9ygcZR6rgO4eoY,16897
10
10
  reykit/rnum.py,sha256=PhG4V_BkVfCJUsbpMDN1umGZly1Hsus80TW8bpyBtyY,3653
11
- reykit/ros.py,sha256=J7Jo8rucGhk8UWjxPzm-OLipVPaTLjFjws9athg8H1A,47010
11
+ reykit/ros.py,sha256=8bLvjt0WkUPF6bkwQnm4xeoZTeKqcwM3a0EFt51WNaU,47006
12
12
  reykit/rrand.py,sha256=bYYmuKNqn4un1i-SdA9jb9l1iYaeLfS-tWJRzD3gLDs,8941
13
13
  reykit/rre.py,sha256=1qva7xatKVE9qC2j7IujjXSM59qxHWwTYpiizFFQ8Xo,6024
14
14
  reykit/rschedule.py,sha256=E2gRLrCwrAo2CV1sOHrWoaVP99Wq7QjAqeYv04hWsYo,5767
15
15
  reykit/rstdout.py,sha256=yesWo7wIGablpyAu-2J2Gw11Qp3GdQjGICTyIcvLyt4,8200
16
16
  reykit/rsys.py,sha256=cafnGGerxR0kg5GHNJojmvsMDNsjgsJ3CtIGH5mAJa8,24953
17
17
  reykit/rtable.py,sha256=YuDH2GL9Lwr5LljRDm5hzHrsvaXOs4-X89XVwFD-b0g,12221
18
- reykit/rtask.py,sha256=d3Fs-_ZB-uHtzz7zyI2aAmiQv3NcIvWrco6x10jFuzc,22842
18
+ reykit/rtask.py,sha256=NUTngUUDUZy3TqEHiuiKy17FcE0F1zS118KnKTsBjng,22838
19
19
  reykit/rtext.py,sha256=cWHy19lDcJvpX7LU95kmRVsDimpAUaz5TbKC1h83gB4,13254
20
20
  reykit/rtime.py,sha256=8QJ6YNiC0JUDiW1xc1tkzQUMPYOFT7d7dKCYRuYt9co,17635
21
21
  reykit/rwrap.py,sha256=UaMkBx3tTtFlqCGe7no6VmOIFnnuxNKcmIsAAThZUVs,15326
22
22
  reykit/rzip.py,sha256=BGEONswuBZxQ-zcgd_xp2fcvYesC9AmKaaXWvnT3bTI,3456
23
23
  reykit/rdll/__init__.py,sha256=nLSb8onBm2ilyoxzpDzUeGfSCKwkLEesIhzK3LiJ8mk,701
24
24
  reykit/rdll/rdll_core.py,sha256=o6-rKcTQgxZQe0kD3GnwyNb3KL9IogzgCQNOmYLMm7A,5086
25
- reykit-1.1.57.dist-info/METADATA,sha256=AAtWdfLmqVHiDdhzZHGZs5tbOLIcv1t2vl4xF5pU6GY,1872
26
- reykit-1.1.57.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
27
- reykit-1.1.57.dist-info/licenses/LICENSE,sha256=UYLPqp7BvPiH8yEZduJqmmyEl6hlM3lKrFIefiD4rvk,1059
28
- reykit-1.1.57.dist-info/RECORD,,
25
+ reykit-1.1.59.dist-info/METADATA,sha256=QsDYjMANc0maagQ4xAOzCSKnz2KsiaQtTceF1i_UkkY,1872
26
+ reykit-1.1.59.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
27
+ reykit-1.1.59.dist-info/licenses/LICENSE,sha256=UYLPqp7BvPiH8yEZduJqmmyEl6hlM3lKrFIefiD4rvk,1059
28
+ reykit-1.1.59.dist-info/RECORD,,