memorymanagement 1.2.2__tar.gz → 1.2.4__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: memorymanagement
3
- Version: 1.2.2
3
+ Version: 1.2.4
4
4
  Summary: Adds support for memory management
5
5
  Home-page: https://github.com/Ricardo-Werner-Rivas/memorymanagement/tree/PyPI
6
6
  Author: Ricardo Werner Rivas
@@ -1,8 +1,25 @@
1
- # Imports
1
+ #*===============================================================================================================================
2
+ #* LEGEND
3
+ #*-------------------------------------------------------------------------------------------------------------------------------
4
+ #! Missing
5
+ #& Missing unimportant
6
+ #? Question
7
+ #* Section
8
+ #^ Important
9
+ # Normal comment
10
+ #// Alternative or deprecated code
11
+ #*===============================================================================================================================
12
+
13
+ #^ The different types of comments require the "Colorful Comments Refreshed" extension for VSCode to be properly distinguished
14
+
15
+ #* IMPORTS
16
+ # modules from sys
2
17
  from sys import modules
3
18
 
4
- # Define the class "Cleaner"
19
+ #* MAIN CLASS
20
+ # Class "Cleaner"
5
21
  class Cleaner:
22
+ #& Code comments
6
23
  """
7
24
  Class for references management. It keeps track of the names of the global variables to be deleted and deletes them when ordered.
8
25
 
@@ -45,6 +62,8 @@ class Cleaner:
45
62
  Returns the list of variables to be erased from memory.
46
63
  None of this properties has setter or deleter. Those lists can only be manipulated through the class methods.
47
64
  """
65
+ #* METHODS
66
+ # __init__
48
67
  def __init__(self,not_delete:list[str]|None=None,excluded:list[str]=[],flagged:list[str]=[]):
49
68
  """
50
69
  Initializes the class instance.\n
@@ -68,6 +87,8 @@ class Cleaner:
68
87
  self._excluded=excluded.copy()
69
88
  self._flagged=flagged.copy()
70
89
  self._name=None
90
+
91
+ # Update
71
92
  def update(self,exclude:str|list[str]|tuple[str]|None=None,include:str|list[str]|tuple[str]|None=None):
72
93
  """
73
94
  Flags all the new global variables' references that were not manually excluded here or before.
@@ -92,27 +113,8 @@ class Cleaner:
92
113
  while var in self._excluded:
93
114
  self._excluded.remove(var)
94
115
  self._flagged=[var for var in list(vars(modules["__main__"]))if var not in self.not_delete and var not in self.excluded]
95
- @property
96
- def not_delete(self):
97
- if not self._name or vars(modules["__main__"])[self._name] is not self:
98
- for key,value in vars(modules["__main__"]).items():
99
- if value is self:
100
- self._name=key
101
- self._not_delete.append(self._name)
102
- break
103
- else:
104
- self._name=None
105
- if not self._name:
106
- raise ReferenceError("'Cleaner' object is not referenced")
107
- elif self._name not in self._not_delete:
108
- self._not_delete.append(self._name)
109
- return self._not_delete
110
- @property
111
- def excluded(self):
112
- return self._excluded
113
- @property
114
- def flagged(self):
115
- return self._flagged
116
+
117
+ # Exclude
116
118
  def exclude(self,*exclude:str):
117
119
  """
118
120
  Allows to exclude the desired references from the cleaning process.
@@ -127,6 +129,8 @@ class Cleaner:
127
129
  self._flagged.remove(var)
128
130
  if var not in self._excluded:
129
131
  self._excluded.append(var)
132
+
133
+ # Include
130
134
  def include(self,*include:str):
131
135
  """
132
136
  Allows to include the desired references (previously excluded) in the cleaning process.
@@ -141,6 +145,8 @@ class Cleaner:
141
145
  self._flagged.append(var)
142
146
  while var in self._excluded:
143
147
  self._excluded.remove(var)
148
+
149
+ # Clean
144
150
  def clean(self):
145
151
  """
146
152
  Culminates the cleaning process.
@@ -150,6 +156,54 @@ class Cleaner:
150
156
  if var in list(vars(modules["__main__"])):
151
157
  del vars(modules["__main__"])[var]
152
158
  self._flagged.clear()
159
+
160
+ # Purge
161
+ def purge(self):
162
+ """
163
+ Clears both `flagged` and `excluded` lists from the `Cleaner` object.
164
+ """
165
+ self._flagged.clear()
166
+ self._excluded.clear()
167
+
168
+ #* PROPERTIES
169
+ # Variables not to be deleted
170
+ @property
171
+ # Getter
172
+ def not_delete(self):
173
+ if not self._name or vars(modules["__main__"])[self._name] is not self:
174
+ for key,value in vars(modules["__main__"]).items():
175
+ if value is self:
176
+ self._name=key
177
+ self._not_delete.append(self._name)
178
+ break
179
+ else:
180
+ self._name=None
181
+ if not self._name:
182
+ raise ReferenceError("'Cleaner' object is not referenced")
183
+ elif self._name not in self._not_delete:
184
+ self._not_delete.append(self._name)
185
+ return self._not_delete
186
+ #^ No setter
187
+ #^ No deleter
188
+
189
+ # Excluded variables
190
+ @property
191
+ # Getter
192
+ def excluded(self):
193
+ return self._excluded
194
+ #^ No setter
195
+ #^ No deleter
196
+
197
+ # Flagged variables
198
+ @property
199
+ # Getter
200
+ def flagged(self):
201
+ return self._flagged
202
+ #^ No setter
203
+ #^ No deleter
204
+
205
+ #* SCREEN DUNDER METHODS
206
+ # __str__
153
207
  def __str__(self):
154
208
  string=f"""
155
209
  Flagged: {self.flagged}
@@ -159,5 +213,7 @@ class Cleaner:
159
213
  Not delete: {self.not_delete}
160
214
  """
161
215
  return string
216
+
217
+ # __repr__
162
218
  def __repr__(self):
163
219
  return f"{self.__class__.__name__}(not_delete={self.not_delete},excluded={self.excluded},flagged={self.flagged})"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: memorymanagement
3
- Version: 1.2.2
3
+ Version: 1.2.4
4
4
  Summary: Adds support for memory management
5
5
  Home-page: https://github.com/Ricardo-Werner-Rivas/memorymanagement/tree/PyPI
6
6
  Author: Ricardo Werner Rivas
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = memorymanagement
3
- version = 1.2.2
3
+ version = 1.2.4
4
4
  author = Ricardo Werner Rivas
5
5
  author_email = ricardowernerrivas@gmail.com
6
6
  description = Adds support for memory management