memorymanagement 1.2.3__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.

Potentially problematic release.


This version of memorymanagement might be problematic. Click here for more details.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: memorymanagement
3
- Version: 1.2.3
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,7 +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
  """
48
-
65
+ #* METHODS
66
+ # __init__
49
67
  def __init__(self,not_delete:list[str]|None=None,excluded:list[str]=[],flagged:list[str]=[]):
50
68
  """
51
69
  Initializes the class instance.\n
@@ -70,6 +88,7 @@ class Cleaner:
70
88
  self._flagged=flagged.copy()
71
89
  self._name=None
72
90
 
91
+ # Update
73
92
  def update(self,exclude:str|list[str]|tuple[str]|None=None,include:str|list[str]|tuple[str]|None=None):
74
93
  """
75
94
  Flags all the new global variables' references that were not manually excluded here or before.
@@ -95,30 +114,7 @@ class Cleaner:
95
114
  self._excluded.remove(var)
96
115
  self._flagged=[var for var in list(vars(modules["__main__"]))if var not in self.not_delete and var not in self.excluded]
97
116
 
98
- @property
99
- def not_delete(self):
100
- if not self._name or vars(modules["__main__"])[self._name] is not self:
101
- for key,value in vars(modules["__main__"]).items():
102
- if value is self:
103
- self._name=key
104
- self._not_delete.append(self._name)
105
- break
106
- else:
107
- self._name=None
108
- if not self._name:
109
- raise ReferenceError("'Cleaner' object is not referenced")
110
- elif self._name not in self._not_delete:
111
- self._not_delete.append(self._name)
112
- return self._not_delete
113
-
114
- @property
115
- def excluded(self):
116
- return self._excluded
117
-
118
- @property
119
- def flagged(self):
120
- return self._flagged
121
-
117
+ # Exclude
122
118
  def exclude(self,*exclude:str):
123
119
  """
124
120
  Allows to exclude the desired references from the cleaning process.
@@ -134,6 +130,7 @@ class Cleaner:
134
130
  if var not in self._excluded:
135
131
  self._excluded.append(var)
136
132
 
133
+ # Include
137
134
  def include(self,*include:str):
138
135
  """
139
136
  Allows to include the desired references (previously excluded) in the cleaning process.
@@ -149,6 +146,7 @@ class Cleaner:
149
146
  while var in self._excluded:
150
147
  self._excluded.remove(var)
151
148
 
149
+ # Clean
152
150
  def clean(self):
153
151
  """
154
152
  Culminates the cleaning process.
@@ -159,6 +157,7 @@ class Cleaner:
159
157
  del vars(modules["__main__"])[var]
160
158
  self._flagged.clear()
161
159
 
160
+ # Purge
162
161
  def purge(self):
163
162
  """
164
163
  Clears both `flagged` and `excluded` lists from the `Cleaner` object.
@@ -166,6 +165,45 @@ class Cleaner:
166
165
  self._flagged.clear()
167
166
  self._excluded.clear()
168
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__
169
207
  def __str__(self):
170
208
  string=f"""
171
209
  Flagged: {self.flagged}
@@ -176,5 +214,6 @@ class Cleaner:
176
214
  """
177
215
  return string
178
216
 
217
+ # __repr__
179
218
  def __repr__(self):
180
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.3
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.3
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