memorymanagement 1.2.4__tar.gz → 1.3.0__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.
- {memorymanagement-1.2.4 → memorymanagement-1.3.0}/PKG-INFO +1 -1
- {memorymanagement-1.2.4 → memorymanagement-1.3.0}/memorymanagement/__init__.py +1 -0
- {memorymanagement-1.2.4 → memorymanagement-1.3.0}/memorymanagement/pointers/core.py +55 -19
- {memorymanagement-1.2.4 → memorymanagement-1.3.0}/memorymanagement.egg-info/PKG-INFO +1 -1
- {memorymanagement-1.2.4 → memorymanagement-1.3.0}/setup.cfg +1 -1
- {memorymanagement-1.2.4 → memorymanagement-1.3.0}/LICENSE +0 -0
- {memorymanagement-1.2.4 → memorymanagement-1.3.0}/README.md +0 -0
- {memorymanagement-1.2.4 → memorymanagement-1.3.0}/memorymanagement/cleaning/__init__.py +0 -0
- {memorymanagement-1.2.4 → memorymanagement-1.3.0}/memorymanagement/cleaning/core.py +0 -0
- {memorymanagement-1.2.4 → memorymanagement-1.3.0}/memorymanagement/pointers/__init__.py +0 -0
- {memorymanagement-1.2.4 → memorymanagement-1.3.0}/memorymanagement/pointers/decorators.py +0 -0
- {memorymanagement-1.2.4 → memorymanagement-1.3.0}/memorymanagement.egg-info/SOURCES.txt +0 -0
- {memorymanagement-1.2.4 → memorymanagement-1.3.0}/memorymanagement.egg-info/dependency_links.txt +0 -0
- {memorymanagement-1.2.4 → memorymanagement-1.3.0}/memorymanagement.egg-info/top_level.txt +0 -0
- {memorymanagement-1.2.4 → memorymanagement-1.3.0}/pyproject.toml +0 -0
|
@@ -94,7 +94,7 @@ class Pointer(Generic[PT]):
|
|
|
94
94
|
Arguments
|
|
95
95
|
---------
|
|
96
96
|
value : `Any`, Optional
|
|
97
|
-
Object to point to. If want to point to a class instance atribute, pass to this argument the class instance without the atribute.
|
|
97
|
+
Object to point to. If want to point to a class instance's atribute, pass to this argument the class instance without the atribute.
|
|
98
98
|
reference : `str`|`None`, Optional
|
|
99
99
|
Name linked to the value to point to. Useful in case there are multiple references pointing to the same value.
|
|
100
100
|
attr : `str`|`None`, Optional
|
|
@@ -128,12 +128,12 @@ class Pointer(Generic[PT]):
|
|
|
128
128
|
# Point to
|
|
129
129
|
def point_to(self,reference:str|None=None,value=None,*,attr:str|None=None):
|
|
130
130
|
"""
|
|
131
|
-
Changes the address which the
|
|
131
|
+
Changes the address which the `Pointer` object points to.
|
|
132
132
|
|
|
133
133
|
Arguments
|
|
134
134
|
---------
|
|
135
135
|
reference : `str`|`None`, Optional
|
|
136
|
-
Reference pointing to the desired value. If wanted class attribute, introduce the reference for the class
|
|
136
|
+
Reference pointing to the desired value. If wanted class attribute, introduce the reference for the class instance.
|
|
137
137
|
value : `Any`|`None`, Optional
|
|
138
138
|
Value to point to. If wanted class attribute, introduce just the class object.
|
|
139
139
|
attr : `str`|`None`, Optional
|
|
@@ -174,10 +174,17 @@ class Pointer(Generic[PT]):
|
|
|
174
174
|
else:
|
|
175
175
|
raise AttributeError(f"\"{attr}\" is not an attribute of \"{self._value}\"")
|
|
176
176
|
|
|
177
|
+
# Get references
|
|
178
|
+
def get_refs(self):
|
|
179
|
+
"""
|
|
180
|
+
Gets all the references pointing to the same current value of the `Pointer` object.
|
|
181
|
+
"""
|
|
182
|
+
return tuple(key for key,v in self._vars_dict.items() if v is self._value)
|
|
183
|
+
|
|
177
184
|
# Switch reference
|
|
178
185
|
def switch_ref(self,reference:str):
|
|
179
186
|
"""
|
|
180
|
-
Allows to switch between references pointing to the same current value of the
|
|
187
|
+
Allows to switch between references pointing to the same current value of the `Pointer` object.
|
|
181
188
|
|
|
182
189
|
Arguments
|
|
183
190
|
---------
|
|
@@ -195,9 +202,7 @@ class Pointer(Generic[PT]):
|
|
|
195
202
|
"""
|
|
196
203
|
Prints all the references pointing to the same current value of the pointer.
|
|
197
204
|
"""
|
|
198
|
-
|
|
199
|
-
refs=refs if len(refs)!=0 else [None]
|
|
200
|
-
print(refs)
|
|
205
|
+
print(tuple(key for key,v in self._vars_dict.items() if v is self._value))
|
|
201
206
|
|
|
202
207
|
#* PROPERTIES
|
|
203
208
|
# Value
|
|
@@ -235,11 +240,13 @@ class Pointer(Generic[PT]):
|
|
|
235
240
|
else:
|
|
236
241
|
del self._value
|
|
237
242
|
del self._vars_dict[self.reference]
|
|
243
|
+
|
|
238
244
|
# Reference
|
|
239
245
|
@property
|
|
240
246
|
# Getter
|
|
241
247
|
def reference(self):
|
|
242
248
|
return self._name
|
|
249
|
+
|
|
243
250
|
# Attribute
|
|
244
251
|
@property
|
|
245
252
|
def attr(self):
|
|
@@ -265,36 +272,42 @@ class Pointer(Generic[PT]):
|
|
|
265
272
|
return self.value+value.value
|
|
266
273
|
else:
|
|
267
274
|
return self.value+value
|
|
275
|
+
|
|
268
276
|
# Difference
|
|
269
277
|
def __sub__(self,value):
|
|
270
278
|
if isinstance(value,Pointer):
|
|
271
279
|
return self.value-value.value
|
|
272
280
|
else:
|
|
273
281
|
return self.value-value
|
|
282
|
+
|
|
274
283
|
# Multiplication
|
|
275
284
|
def __mul__(self,value):
|
|
276
285
|
if isinstance(value,Pointer):
|
|
277
286
|
return self.value*value.value
|
|
278
287
|
else:
|
|
279
288
|
return self.value*value
|
|
289
|
+
|
|
280
290
|
# Fraction
|
|
281
291
|
def __truediv__(self,value):
|
|
282
292
|
if isinstance(value,Pointer):
|
|
283
293
|
return self.value/value.value
|
|
284
294
|
else:
|
|
285
295
|
return self.value/value
|
|
296
|
+
|
|
286
297
|
# Integer division
|
|
287
298
|
def __floordiv__(self,value):
|
|
288
299
|
if isinstance(value,Pointer):
|
|
289
300
|
return self.value//value.value
|
|
290
301
|
else:
|
|
291
302
|
return self.value//value
|
|
303
|
+
|
|
292
304
|
# Module
|
|
293
305
|
def __mod__(self,value):
|
|
294
306
|
if isinstance(value,Pointer):
|
|
295
307
|
return self.value%value.value
|
|
296
308
|
else:
|
|
297
309
|
return self.value%value
|
|
310
|
+
|
|
298
311
|
# Power
|
|
299
312
|
def __pow__(self,value):
|
|
300
313
|
if isinstance(value,Pointer):
|
|
@@ -306,21 +319,27 @@ class Pointer(Generic[PT]):
|
|
|
306
319
|
# Addition
|
|
307
320
|
def __radd__(self,value):
|
|
308
321
|
return value+self.value
|
|
322
|
+
|
|
309
323
|
# Difference
|
|
310
324
|
def __rsub__(self,value):
|
|
311
325
|
return value-self.value
|
|
326
|
+
|
|
312
327
|
# Multiplication
|
|
313
328
|
def __rmul__(self,value):
|
|
314
329
|
return value*self.value
|
|
330
|
+
|
|
315
331
|
# Fraction
|
|
316
332
|
def __rtruediv__(self,value):
|
|
317
333
|
return value/self.value
|
|
334
|
+
|
|
318
335
|
# Integer division
|
|
319
336
|
def __rfloordiv__(self,value):
|
|
320
337
|
return value//self.value
|
|
338
|
+
|
|
321
339
|
# Module
|
|
322
340
|
def __rmod__(self,value):
|
|
323
341
|
return value%self.value
|
|
342
|
+
|
|
324
343
|
# Power
|
|
325
344
|
def __rpow__(self,value):
|
|
326
345
|
return value**self.value
|
|
@@ -330,26 +349,32 @@ class Pointer(Generic[PT]):
|
|
|
330
349
|
def __iadd__(self,value):
|
|
331
350
|
self.value=self.value+value
|
|
332
351
|
return self
|
|
352
|
+
|
|
333
353
|
# Difference
|
|
334
354
|
def __isub__(self,value):
|
|
335
355
|
self.value=self.value-value
|
|
336
356
|
return self
|
|
357
|
+
|
|
337
358
|
# Multiplication
|
|
338
359
|
def __imul__(self,value):
|
|
339
360
|
self.value=self.value*value
|
|
340
361
|
return self
|
|
362
|
+
|
|
341
363
|
# Fraction
|
|
342
364
|
def __itruediv__(self,value):
|
|
343
365
|
self.value=self.value/value
|
|
344
366
|
return self
|
|
367
|
+
|
|
345
368
|
# Integer division
|
|
346
369
|
def __ifloordiv__(self,value):
|
|
347
370
|
self.value=self.value//value
|
|
348
371
|
return self
|
|
372
|
+
|
|
349
373
|
# Module
|
|
350
374
|
def __imod__(self,value):
|
|
351
375
|
self.value=self.value%value
|
|
352
376
|
return self
|
|
377
|
+
|
|
353
378
|
def __ipow__(self,value):
|
|
354
379
|
self.value=self.value**value
|
|
355
380
|
return self
|
|
@@ -361,30 +386,35 @@ class Pointer(Generic[PT]):
|
|
|
361
386
|
return self.value==value.value
|
|
362
387
|
else:
|
|
363
388
|
return self.value==value
|
|
389
|
+
|
|
364
390
|
# Inequality
|
|
365
391
|
def __ne__(self,value):
|
|
366
392
|
if isinstance(value,Pointer):
|
|
367
393
|
return self.value!=value.value
|
|
368
394
|
else:
|
|
369
395
|
return self.value!=value
|
|
396
|
+
|
|
370
397
|
# Lower than
|
|
371
398
|
def __lt__(self,value):
|
|
372
399
|
if isinstance(value,Pointer):
|
|
373
400
|
return self.value<value.value
|
|
374
401
|
else:
|
|
375
402
|
return self.value<value
|
|
403
|
+
|
|
376
404
|
# Lower or equal
|
|
377
405
|
def __le__(self,value):
|
|
378
406
|
if isinstance(value,Pointer):
|
|
379
407
|
return self.value<=value.value
|
|
380
408
|
else:
|
|
381
409
|
return self.value<=value
|
|
410
|
+
|
|
382
411
|
# Greater than
|
|
383
412
|
def __gt__(self,value):
|
|
384
413
|
if isinstance(value,Pointer):
|
|
385
414
|
return self.value>value.value
|
|
386
415
|
else:
|
|
387
416
|
return self.value>value
|
|
417
|
+
|
|
388
418
|
# Greater or equal
|
|
389
419
|
def __ge__(self,value):
|
|
390
420
|
if isinstance(value,Pointer):
|
|
@@ -396,9 +426,11 @@ class Pointer(Generic[PT]):
|
|
|
396
426
|
# Negative
|
|
397
427
|
def __neg__(self):
|
|
398
428
|
return Pointer(-self.value)
|
|
429
|
+
|
|
399
430
|
# Positive
|
|
400
431
|
def __pos__(self):
|
|
401
432
|
return Pointer(+self.value)
|
|
433
|
+
|
|
402
434
|
# Absolute value
|
|
403
435
|
def __abs__(self):
|
|
404
436
|
return Pointer(abs(self.value))
|
|
@@ -412,9 +444,11 @@ class Pointer(Generic[PT]):
|
|
|
412
444
|
# __int__
|
|
413
445
|
def __int__(self):
|
|
414
446
|
return int(self.value)
|
|
447
|
+
|
|
415
448
|
# __float__
|
|
416
449
|
def __float__(self):
|
|
417
450
|
return float(self.value)
|
|
451
|
+
|
|
418
452
|
# __index__
|
|
419
453
|
def __index__(self):
|
|
420
454
|
return self.value
|
|
@@ -423,20 +457,22 @@ class Pointer(Generic[PT]):
|
|
|
423
457
|
# Representation
|
|
424
458
|
def __repr__(self):
|
|
425
459
|
return f"{self.__class__.__name__}({self.value})"
|
|
460
|
+
|
|
426
461
|
# HTML representation
|
|
427
462
|
def _repr_html_(self):
|
|
428
|
-
return f"""
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
463
|
+
return f"""\
|
|
464
|
+
<table>
|
|
465
|
+
<thead>
|
|
466
|
+
<tr>
|
|
467
|
+
<th style=\"text-align: center;\">{self.reference}</th>
|
|
468
|
+
</tr>
|
|
469
|
+
</thead>
|
|
470
|
+
<tr>
|
|
471
|
+
<td style=\"text-align: center;\">{self.value}</td>
|
|
472
|
+
</tr>
|
|
473
|
+
</table>\
|
|
474
|
+
"""
|
|
475
|
+
|
|
440
476
|
# Printing
|
|
441
477
|
def __str__(self):
|
|
442
478
|
return str(self.value)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{memorymanagement-1.2.4 → memorymanagement-1.3.0}/memorymanagement.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|