🚀 Big News:Socket Has Acquired Secure Annex.Learn More
Socket
Book a DemoSign in
Socket

lru-dict

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

lru-dict - pypi Package Compare versions

Comparing version
1.1.2
to
1.1.3
+2
-1
lru_dict.egg-info/PKG-INFO
Metadata-Version: 1.1
Name: lru-dict
Version: 1.1.2
Version: 1.1.3
Summary: An Dict like LRU container.

@@ -105,3 +105,4 @@ Home-page: https://github.com/amitdev/lru-dict

Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Software Development :: Libraries :: Python Modules
+54
-14

@@ -34,5 +34,10 @@ #include <Python.h>

*/
#define GET_NODE(d, key) (Node *) (d)->ob_type->tp_as_mapping->mp_subscript((d), (key))
#define PUT_NODE(d, key, node) (d)->ob_type->tp_as_mapping->mp_ass_subscript((d), (key), ((PyObject *)node))
#ifndef Py_TYPE
#define Py_TYPE(ob) (((PyObject*)(ob))->ob_type)
#endif
#define GET_NODE(d, key) (Node *) Py_TYPE(d)->tp_as_mapping->mp_subscript((d), (key))
#define PUT_NODE(d, key, node) Py_TYPE(d)->tp_as_mapping->mp_ass_subscript((d), (key), ((PyObject *)node))
/* If someone figures out how to enable debug builds with setuptools, you can delete this */

@@ -78,4 +83,3 @@ #if 0

static PyTypeObject NodeType = {
PyObject_HEAD_INIT(NULL)
0, /* ob_size */
PyVarObject_HEAD_INIT(NULL, 0)
"lru.Node", /* tp_name */

@@ -463,3 +467,4 @@ sizeof(Node), /* tp_basicsize */

"An LRU dict behaves like a standard dict, except that it stores only fixed\n"
"set of elements. Once the size overflows, it evicts least recently used items.\n\n"
"set of elements. Once the size overflows, it evicts least recently used\n"
"items.\n\n"
"Eg:\n"

@@ -471,7 +476,7 @@ ">>> l = LRU(3)\n"

"[2,3,4]\n\n"
"Note: An LRU(n) can be thought of as a dict that will have the most recently accessed n items.\n");
"Note: An LRU(n) can be thought of as a dict that will have the most\n"
"recently accessed n items.\n");
static PyTypeObject LRUType = {
PyObject_HEAD_INIT(NULL)
0, /* ob_size */
PyVarObject_HEAD_INIT(NULL, 0)
"lru.LRU", /* tp_name */

@@ -516,4 +521,18 @@ sizeof(LRU), /* tp_basicsize */

PyMODINIT_FUNC
initlru(void)
#if PY_MAJOR_VERSION >= 3
static struct PyModuleDef moduledef = {
PyModuleDef_HEAD_INIT,
"lru", /* m_name */
lru_doc, /* m_doc */
-1, /* m_size */
NULL, /* m_methods */
NULL, /* m_reload */
NULL, /* m_traverse */
NULL, /* m_clear */
NULL, /* m_free */
};
#endif
static PyObject *
moduleinit(void)
{

@@ -524,11 +543,16 @@ PyObject *m;

if (PyType_Ready(&NodeType) < 0)
return;
return NULL;
LRUType.tp_new = PyType_GenericNew;
if (PyType_Ready(&LRUType) < 0)
return;
return NULL;
m = Py_InitModule3("lru", NULL, "lru module");
#if PY_MAJOR_VERSION >= 3
m = PyModule_Create(&moduledef);
#else
m = Py_InitModule3("lru", NULL, lru_doc);
#endif
if (m == NULL)
return;
return NULL;

@@ -538,2 +562,18 @@ Py_INCREF(&NodeType);

PyModule_AddObject(m, "LRU", (PyObject *) &LRUType);
return m;
}
#if PY_MAJOR_VERSION < 3
PyMODINIT_FUNC
initlru(void)
{
moduleinit();
}
#else
PyMODINIT_FUNC
PyInit_lru(void)
{
return moduleinit();
}
#endif
Metadata-Version: 1.1
Name: lru-dict
Version: 1.1.2
Version: 1.1.3
Summary: An Dict like LRU container.

@@ -105,3 +105,4 @@ Home-page: https://github.com/amitdev/lru-dict

Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Software Development :: Libraries :: Python Modules

@@ -7,3 +7,3 @@ from setuptools import setup, Extension

setup (name = 'lru-dict',
version = '1.1.2',
version = '1.1.3',
description = 'An Dict like LRU container.',

@@ -24,2 +24,3 @@ long_description = open('README.rst').read(),

'Programming Language :: Python :: 2',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: Implementation :: CPython',

@@ -26,0 +27,0 @@ 'Topic :: Software Development :: Libraries :: Python Modules',

@@ -23,6 +23,7 @@ import gc

def _check_kvi(self, valid_keys, l):
valid_vals = map(str, valid_keys)
self.assertEquals(valid_keys, l.keys())
self.assertEquals(valid_vals, l.values())
self.assertEquals(zip(valid_keys, valid_vals), l.items())
valid_keys = list(valid_keys)
valid_vals = list(map(str, valid_keys))
self.assertEqual(valid_keys, l.keys())
self.assertEqual(valid_vals, l.values())
self.assertEqual(list(zip(valid_keys, valid_vals)), l.items())

@@ -35,4 +36,4 @@ def test_invalid_size(self):

l = LRU(1)
self.assertEquals([], l.keys())
self.assertEquals([], l.values())
self.assertEqual([], l.keys())
self.assertEqual([], l.values())

@@ -42,3 +43,3 @@ def test_add_within_size(self):

l = LRU(size)
for i in xrange(size):
for i in range(size):
l[i] = str(i)

@@ -50,5 +51,5 @@ self._check_kvi(range(size-1,-1,-1), l)

l = LRU(size)
for i in xrange(size):
for i in range(size):
l[i] = str(i)
for i in xrange(0,size,2):
for i in range(0,size,2):
del l[i]

@@ -64,11 +65,11 @@ self._check_kvi(range(size-1,0,-2), l)

n = size*2
for i in xrange(n):
for i in range(n):
l[i] = str(i)
for i in xrange(size,n,2):
for i in range(size,n,2):
del l[i]
self._check_kvi(range(n-1,size,-2), l)
for i in xrange(0,size):
for i in range(0,size):
with self.assertRaises(KeyError):
l[i]
for i in xrange(size,n,2):
for i in range(size,n,2):
with self.assertRaises(KeyError):

@@ -80,3 +81,3 @@ l[i]

l = LRU(size)
for i in xrange(size):
for i in range(size):
l[i] = str(i)

@@ -89,7 +90,7 @@ l[size] = str(size)

l = LRU(size)
for i in xrange(size):
for i in range(size):
l[i] = str(i)
for i in xrange(size):
self.assertEquals(l[i], str(i))
self.assertEquals(l.get(i,None), str(i))
for i in range(size):
self.assertEqual(l[i], str(i))
self.assertEqual(l.get(i,None), str(i))

@@ -100,8 +101,8 @@ def test_access(self):

n = size * 2
for i in xrange(n):
for i in range(n):
l[i] = str(i)
self._check_kvi(range(n-1,size-1,-1), l)
for i in xrange(size, n):
self.assertEquals(l[i], str(i))
self.assertEquals(l.get(i,None), str(i))
for i in range(size, n):
self.assertEqual(l[i], str(i))
self.assertEqual(l.get(i,None), str(i))

@@ -112,3 +113,3 @@ def test_overwrite(self):

l[1] = '1'
self.assertEquals('1', l[1])
self.assertEqual('1', l[1])
self._check_kvi([1], l)

@@ -119,8 +120,8 @@

l = LRU(size)
for i in xrange(2*size):
for i in range(2*size):
l[i] = str(i)
self.assertTrue(l.has_key(i))
for i in xrange(size, 2*size):
for i in range(size, 2*size):
self.assertTrue(l.has_key(i))
for i in xrange(size):
for i in range(size):
self.assertFalse(l.has_key(i))

@@ -163,3 +164,3 @@

l[i] = str(i)
for i in xrange(size):
for i in range(size):
_ = l[random.randint(0, size-1)]

@@ -166,0 +167,0 @@ l.clear()