kenenet 0.5.6__py3-none-any.whl → 0.5.7__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.
kenenet/__init__.py CHANGED
@@ -57,37 +57,38 @@ class Config:
57
57
  SHOW_TIMESTAMPS = True
58
58
  EXCLUDE_INTERNALS = True
59
59
 
60
+
60
61
  # ==========================================================================
61
62
  # CORE TRACKING FUNCTIONALITY
62
63
  # ==========================================================================
63
64
 
64
65
  class VariableTracker:
65
66
  _instance = None
66
-
67
+
67
68
  @classmethod
68
69
  def get_instance(cls):
69
70
  if cls._instance is None:
70
71
  cls._instance = VariableTracker()
71
72
  return cls._instance
72
-
73
+
73
74
  def __init__(self):
74
75
  self.active = False
75
76
  self.frame_locals = {}
76
77
  self.global_vars = {}
77
-
78
+
78
79
  def format_value(self, value):
79
80
  try:
80
81
  return repr(value)
81
82
  except:
82
83
  return f"<{type(value).__name__} object>"
83
-
84
+
84
85
  def print_change(self, name, old, new, scope="Global"):
85
86
  timestamp = f"[{datetime.datetime.now().strftime('%H:%M:%S.%f')[:-3]}] " if Config.SHOW_TIMESTAMPS else ""
86
87
  print(f"{timestamp}{scope} '{name}' changed from {self.format_value(old)} to {self.format_value(new)}")
87
-
88
+
88
89
  def _should_track(self, name):
89
90
  return not (name.startswith('_') and name not in ('__name__', '__file__')) and name not in Config.EXCLUDED_NAMES
90
-
91
+
91
92
  def start_tracking(self, module_name):
92
93
  if self.active: return
93
94
  module = sys.modules[module_name]
@@ -95,7 +96,7 @@ class VariableTracker:
95
96
  sys.settrace(track_frame)
96
97
  self.active = True
97
98
  print(f"Variable tracking started at {datetime.datetime.now().strftime('%H:%M:%S.%f')[:-3]}")
98
-
99
+
99
100
  def stop_tracking(self):
100
101
  if not self.active: return
101
102
  sys.settrace(None)
@@ -104,6 +105,7 @@ class VariableTracker:
104
105
  self.active = False
105
106
  print(f"Variable tracking stopped at {datetime.datetime.now().strftime('%H:%M:%S.%f')[:-3]}")
106
107
 
108
+
107
109
  # ==========================================================================
108
110
  # TRACE FUNCTION
109
111
  # ==========================================================================
@@ -113,7 +115,7 @@ def track_frame(frame, event, arg):
113
115
  if not tracker.active or event != 'line': return track_frame
114
116
  scope = "Global" if frame.f_code.co_name == '<module>' else f"Local in '{frame.f_code.co_name}'"
115
117
  current_vars = {name: value for name, value in (frame.f_locals if scope != "Global" else frame.f_globals).items() if tracker._should_track(name)}
116
-
118
+
117
119
  if scope == "Global":
118
120
  for name, value in current_vars.items():
119
121
  if name not in tracker.global_vars:
@@ -136,12 +138,14 @@ def track_frame(frame, event, arg):
136
138
  if event == 'return' and scope != "Global": del tracker.frame_locals[id(frame)]
137
139
  return track_frame
138
140
 
141
+
139
142
  # ==========================================================================
140
143
  # PUBLIC API
141
144
  # ==========================================================================
142
145
 
143
146
  debug_mode = False # Global variable to track if debugging is enabled
144
147
 
148
+
145
149
  def track_variables():
146
150
  caller_frame = inspect.currentframe().f_back
147
151
  module_name = caller_frame.f_globals['__name__']
@@ -149,9 +153,11 @@ def track_variables():
149
153
  tracker.start_tracking(module_name)
150
154
  caller_frame.f_trace = track_frame
151
155
 
156
+
152
157
  def stop_tracking():
153
158
  VariableTracker.get_instance().stop_tracking()
154
159
 
160
+
155
161
  def debug():
156
162
  global debug_mode
157
163
  if not debug_mode:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kenenet
3
- Version: 0.5.6
3
+ Version: 0.5.7
4
4
  Summary: dude what the fuck even is this package
5
5
  Home-page: https://www.youtube.com/@KiddyKene
6
6
  Author: kiddykene
@@ -0,0 +1,5 @@
1
+ kenenet/__init__.py,sha256=ADgTAhQmBqHkgnGJ-FanKu7RVAW2f5nwST-C5KCvygs,8981
2
+ kenenet-0.5.7.dist-info/METADATA,sha256=yxh3maVucwATfjITkSJ6CVUVpep1ulmjlzKAswrsygE,633
3
+ kenenet-0.5.7.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
4
+ kenenet-0.5.7.dist-info/top_level.txt,sha256=gUsWXLrM0jF4b4nbYJZdksdFewIx_F3xOF-zER8fMuQ,8
5
+ kenenet-0.5.7.dist-info/RECORD,,
@@ -1,5 +0,0 @@
1
- kenenet/__init__.py,sha256=q2j8V3Lo-xxhoWdVPdtHJKB3pKcYeufp8K6quRuVN5g,8937
2
- kenenet-0.5.6.dist-info/METADATA,sha256=VtbLZ5__iQ54DtZm9ixzcuHTrOLeyLsHo9Fqg4xN8II,633
3
- kenenet-0.5.6.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
4
- kenenet-0.5.6.dist-info/top_level.txt,sha256=gUsWXLrM0jF4b4nbYJZdksdFewIx_F3xOF-zER8fMuQ,8
5
- kenenet-0.5.6.dist-info/RECORD,,