eric7/Documentation/Source/eric7.EricUtilities.EricCache.html

branch
eric7
changeset 8372
e0227a7c850e
child 8596
d64760b2da50
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/Documentation/Source/eric7.EricUtilities.EricCache.html	Mon May 24 11:19:57 2021 +0200
@@ -0,0 +1,383 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric7.EricUtilities.EricCache</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body>
+<a NAME="top" ID="top"></a>
+<h1>eric7.EricUtilities.EricCache</h1>
+
+<p>
+Module implementing classes used for caching objects.
+</p>
+<h3>Global Attributes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+
+<table>
+
+<tr>
+<td><a href="#EricCache">EricCache</a></td>
+<td>Class implementing a LRU cache of a specific size.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr />
+<hr />
+<a NAME="EricCache" ID="EricCache"></a>
+<h2>EricCache</h2>
+
+<p>
+    Class implementing a LRU cache of a specific size.
+</p>
+<p>
+    If the maximum number of entries is exceeded, the least recently used item
+    is removed from the cache. A cache hit moves the entry to the front of the
+    cache.
+</p>
+<h3>Derived from</h3>
+None
+<h3>Class Attributes</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+
+<table>
+
+<tr>
+<td><a href="#EricCache.__init__">EricCache</a></td>
+<td>Constructor</td>
+</tr>
+<tr>
+<td><a href="#EricCache.__adjustToSize">__adjustToSize</a></td>
+<td>Private method to adjust the cache to its size.</td>
+</tr>
+<tr>
+<td><a href="#EricCache.__moveLast">__moveLast</a></td>
+<td>Private method to move a cached item to the MRU position.</td>
+</tr>
+<tr>
+<td><a href="#EricCache.__pruneCache">__pruneCache</a></td>
+<td>Private slot to prune outdated cache entries and restart the timer.</td>
+</tr>
+<tr>
+<td><a href="#EricCache.add">add</a></td>
+<td>Public method to add an item to the cache.</td>
+</tr>
+<tr>
+<td><a href="#EricCache.clear">clear</a></td>
+<td>Public method to clear the cache.</td>
+</tr>
+<tr>
+<td><a href="#EricCache.get">get</a></td>
+<td>Public method to get an entry from the cache given its key.</td>
+</tr>
+<tr>
+<td><a href="#EricCache.getMaximumCacheTime">getMaximumCacheTime</a></td>
+<td>Public method to get the maximum time entries may exist in the cache.</td>
+</tr>
+<tr>
+<td><a href="#EricCache.getSize">getSize</a></td>
+<td>Public method to get the maximum size of the cache.</td>
+</tr>
+<tr>
+<td><a href="#EricCache.info">info</a></td>
+<td>Public method to get some information about the cache.</td>
+</tr>
+<tr>
+<td><a href="#EricCache.length">length</a></td>
+<td>Public method to get the current length of the cache.</td>
+</tr>
+<tr>
+<td><a href="#EricCache.remove">remove</a></td>
+<td>Public method to remove an item from the cache.</td>
+</tr>
+<tr>
+<td><a href="#EricCache.reset">reset</a></td>
+<td>Public method to reset the cache.</td>
+</tr>
+<tr>
+<td><a href="#EricCache.setMaximumCacheTime">setMaximumCacheTime</a></td>
+<td>Public method to set the maximum time entries may exist in the cache.</td>
+</tr>
+<tr>
+<td><a href="#EricCache.setSize">setSize</a></td>
+<td>Public method to change the maximum size of the cache.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+
+<table>
+<tr><td>None</td></tr>
+</table>
+
+<a NAME="EricCache.__init__" ID="EricCache.__init__"></a>
+<h4>EricCache (Constructor)</h4>
+<b>EricCache</b>(<i>size=100</i>)
+
+<p>
+        Constructor
+</p>
+<dl>
+
+<dt><i>size</i> (int)</dt>
+<dd>
+maximum number of entries that may be stored in the cache
+</dd>
+</dl>
+<dl>
+
+<dt>Raises <b>ValueError</b>:</dt>
+<dd>
+raised to indicate an illegal 'size' parameter
+</dd>
+</dl>
+<a NAME="EricCache.__adjustToSize" ID="EricCache.__adjustToSize"></a>
+<h4>EricCache.__adjustToSize</h4>
+<b>__adjustToSize</b>(<i></i>)
+
+<p>
+        Private method to adjust the cache to its size.
+</p>
+<a NAME="EricCache.__moveLast" ID="EricCache.__moveLast"></a>
+<h4>EricCache.__moveLast</h4>
+<b>__moveLast</b>(<i>key</i>)
+
+<p>
+        Private method to move a cached item to the MRU position.
+</p>
+<dl>
+
+<dt><i>key</i> (any hashable type that can be used as a dict key)</dt>
+<dd>
+key of the item to be retrieved
+</dd>
+</dl>
+<a NAME="EricCache.__pruneCache" ID="EricCache.__pruneCache"></a>
+<h4>EricCache.__pruneCache</h4>
+<b>__pruneCache</b>(<i></i>)
+
+<p>
+        Private slot to prune outdated cache entries and restart the timer.
+</p>
+<a NAME="EricCache.add" ID="EricCache.add"></a>
+<h4>EricCache.add</h4>
+<b>add</b>(<i>key, item</i>)
+
+<p>
+        Public method to add an item to the cache.
+</p>
+<p>
+        If the key is already in use, the cached item is replaced by the new
+        one given and is moved to the MRU position
+</p>
+<dl>
+
+<dt><i>key</i> (any hashable type that can be used as a dict key)</dt>
+<dd>
+key of the item to be retrieved
+</dd>
+<dt><i>item</i> (object)</dt>
+<dd>
+item to be cached under the given key
+</dd>
+</dl>
+<a NAME="EricCache.clear" ID="EricCache.clear"></a>
+<h4>EricCache.clear</h4>
+<b>clear</b>(<i></i>)
+
+<p>
+        Public method to clear the cache.
+</p>
+<a NAME="EricCache.get" ID="EricCache.get"></a>
+<h4>EricCache.get</h4>
+<b>get</b>(<i>key</i>)
+
+<p>
+        Public method to get an entry from the cache given its key.
+</p>
+<p>
+        If the key is present in the cache, it is moved to the MRU position.
+</p>
+<dl>
+
+<dt><i>key</i> (any hashable type that can be used as a dict key)</dt>
+<dd>
+key of the item to be retrieved
+</dd>
+</dl>
+<dl>
+<dt>Return:</dt>
+<dd>
+cached item for the given key or None, if the key is not
+            present
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+object or None
+</dd>
+</dl>
+<a NAME="EricCache.getMaximumCacheTime" ID="EricCache.getMaximumCacheTime"></a>
+<h4>EricCache.getMaximumCacheTime</h4>
+<b>getMaximumCacheTime</b>(<i></i>)
+
+<p>
+        Public method to get the maximum time entries may exist in the cache.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+maximum cache time in seconds
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+int
+</dd>
+</dl>
+<a NAME="EricCache.getSize" ID="EricCache.getSize"></a>
+<h4>EricCache.getSize</h4>
+<b>getSize</b>(<i></i>)
+
+<p>
+        Public method to get the maximum size of the cache.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+maximum number of entries of the cache
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+int
+</dd>
+</dl>
+<a NAME="EricCache.info" ID="EricCache.info"></a>
+<h4>EricCache.info</h4>
+<b>info</b>(<i></i>)
+
+<p>
+        Public method to get some information about the cache.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+dictionary containing the cache info
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+dict (with keys "hits", "misses", "maxsize", "currsize")
+</dd>
+</dl>
+<a NAME="EricCache.length" ID="EricCache.length"></a>
+<h4>EricCache.length</h4>
+<b>length</b>(<i></i>)
+
+<p>
+        Public method to get the current length of the cache.
+</p>
+<dl>
+<dt>Return:</dt>
+<dd>
+current length of the cache
+</dd>
+</dl>
+<dl>
+<dt>Return Type:</dt>
+<dd>
+int
+</dd>
+</dl>
+<a NAME="EricCache.remove" ID="EricCache.remove"></a>
+<h4>EricCache.remove</h4>
+<b>remove</b>(<i>key</i>)
+
+<p>
+        Public method to remove an item from the cache.
+</p>
+<dl>
+
+<dt><i>key</i> (any hashable type that can be used as a dict key)</dt>
+<dd>
+key of the item to be retrieved
+</dd>
+</dl>
+<a NAME="EricCache.reset" ID="EricCache.reset"></a>
+<h4>EricCache.reset</h4>
+<b>reset</b>(<i></i>)
+
+<p>
+        Public method to reset the cache.
+</p>
+<p>
+        This is like clear() but sets the various counters to their initial
+        value as well.
+</p>
+<a NAME="EricCache.setMaximumCacheTime" ID="EricCache.setMaximumCacheTime"></a>
+<h4>EricCache.setMaximumCacheTime</h4>
+<b>setMaximumCacheTime</b>(<i>time</i>)
+
+<p>
+        Public method to set the maximum time entries may exist in the cache.
+</p>
+<dl>
+
+<dt><i>time</i> (int)</dt>
+<dd>
+maximum cache time in seconds
+</dd>
+</dl>
+<a NAME="EricCache.setSize" ID="EricCache.setSize"></a>
+<h4>EricCache.setSize</h4>
+<b>setSize</b>(<i>newSize</i>)
+
+<p>
+        Public method to change the maximum size of the cache.
+</p>
+<dl>
+
+<dt><i>newSize</i> (int)</dt>
+<dd>
+maximum number of entries that may be stored in the
+            cache
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file

eric ide

mercurial