{
"info": {
"author": "Lukasz Langa",
"author_email": "lukasz@langa.pl",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Natural Language :: English",
"Operating System :: MacOS :: MacOS X",
"Operating System :: Microsoft :: Windows :: Windows NT/2000",
"Operating System :: POSIX",
"Programming Language :: Python",
"Programming Language :: Python :: 2.7",
"Topic :: Software Development :: Libraries :: Python Modules"
],
"description": "==========\nlck.common\n==========\n\nThis library consists of various simple common routines and language constructs\nthat are so useful they ten to be rewritten in every subsequent project I'm\nworking on. Each function, decorator or module on its own is too simple to\ndedicate an entire PyPI package for it. Together however, this library\nrepresents a Swiss army knife for everyday needs (YMMV). Among the things you\nmight find inside:\n\n * robust memoization\n \n * some less obvious collections (e.g. ``orderedset``)\n\n * a ``@synchronized`` decorator (with threading or lockfile backends)\n\n * some controversial language enhancements like the Null object\n\n * converter from ElementTree instances to dicts\n\n * file finder (searching locations commonly used for storing app data)\n\nThe latest version can be installed via `PyPI \n`_::\n\n $ pip install lck.common\n \nor::\n\n $ easy_install lck.common\n\nThe `source code repository `_ and \n`issue tracker `_ are \nmaintained on `GitHub `_.\n\nFor the curious, ``lck`` stands for LangaCore Kit. LangaCore is a one man\nsoftware development shop of mine.\n\n**Note:** ``lck.common`` requires **Python 2.7** because all of its code is using\nthe so-called four futures (``absolute_imports``, ``division``, ``print_function``\nand ``unicode_literals``). One of the virtues in the creation of this library\nis to make the code beautiful. These switches give a useful transitional\nstate between the old Python 2.x and the new Python 3.x. You should use them as\nwell.\n\nChange Log\n----------\n\n0.4.5\n~~~~~\n\n* fixed an uncommon bug in memoization where an exception in the memoized\n function could leave stale keys in the cache \n\n0.4.4\n~~~~~\n\n* ``lck.git`` introduced with a ``get_version`` routine\n\n* ``decode_entities`` added to ``lck.xml``\n\n0.4.3\n~~~~~\n\n* ``lck.lang.Null`` introduced, see `Null Object pattern `_\n\n* ``lck.lang.unset`` is now a ``Null`` instance\n\n* ``lck.xml`` introduced with a ``etree_to_dict`` routine\n\n* ``lck.config`` has been removed, use the `configparser backport `_\n\n0.4.2\n~~~~~\n\n* ``lck.crypto`` introduced with a couple of thin wrappers over PyCrypto\n\n* ``lck.math`` introduced starting with Elo rating calculation routine.\n\n0.4.1\n~~~~~\n\n* ``lck.lang.unset`` is now also ``False`` and ``len(unset)`` is zero\n\n0.4.0\n~~~~~\n\n* migrated to the ``lck`` namespace from ``langacore.kit``\n\n* migrated licensing from GPL 3 to MIT\n\n* bumped the trove from alpha status to beta, the code is in production for over\n a year now\n\nAncient history\n~~~~~~~~~~~~~~~\n\n* No proper change log was kept before 0.4.0",
"description_content_type": null,
"docs_url": "https://pythonhosted.org/lck.common/",
"download_url": "UNKNOWN",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://packages.python.org/lck.common/",
"keywords": "",
"license": "MIT",
"maintainer": null,
"maintainer_email": null,
"name": "lck.common",
"package_url": "https://pypi.org/project/lck.common/",
"platform": "any",
"project_url": "https://pypi.org/project/lck.common/",
"project_urls": {
"Download": "UNKNOWN",
"Homepage": "http://packages.python.org/lck.common/"
},
"release_url": "https://pypi.org/project/lck.common/0.4.5/",
"requires_dist": null,
"requires_python": null,
"summary": "A library of various simple common routines that keep being rewritten all over again in every project I'm working on.",
"version": "0.4.5"
},
"last_serial": 648686,
"releases": {
"0.4.0": [
{
"comment_text": "",
"digests": {
"md5": "2ee485993be38baa8bfdb176256a31cb",
"sha256": "4ca330c80baf52cf184aa9a3a7fe78535d2c4af5061ee5ca18bb6fa02cd08cf0"
},
"downloads": -1,
"filename": "lck.common-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "2ee485993be38baa8bfdb176256a31cb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 250194,
"upload_time": "2011-03-25T23:22:05",
"url": "https://files.pythonhosted.org/packages/ed/ad/8ce4edd82282f2e4559f535060ba5de2978dd1e529bcc56664bdd9aec8b9/lck.common-0.4.0.tar.gz"
}
],
"0.4.1": [
{
"comment_text": "",
"digests": {
"md5": "bf64c6b88883252f722bd21d14832602",
"sha256": "05faeb58c7be0ec97161ff1282bb4af45f43f1f8c20e5249fb93c77a7bc9cb8b"
},
"downloads": -1,
"filename": "lck.common-0.4.1.tar.gz",
"has_sig": false,
"md5_digest": "bf64c6b88883252f722bd21d14832602",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 250114,
"upload_time": "2011-03-30T18:52:14",
"url": "https://files.pythonhosted.org/packages/b1/c2/60c7398c447136dc7b97f691b364500b90dad1f37150c09a4870f5ae066f/lck.common-0.4.1.tar.gz"
}
],
"0.4.2": [
{
"comment_text": "",
"digests": {
"md5": "913394c55e950e06aaae43e0e3b0698b",
"sha256": "12d6cf0c1b96c57bd64aea3ec32244a2a4303af51f5c08ee24e22833d538be99"
},
"downloads": -1,
"filename": "lck.common-0.4.2.tar.gz",
"has_sig": false,
"md5_digest": "913394c55e950e06aaae43e0e3b0698b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 251906,
"upload_time": "2011-06-14T21:16:16",
"url": "https://files.pythonhosted.org/packages/4a/9d/c893e90702b8c086da496ef343cdcd616cc201fd122faa724ef35174c752/lck.common-0.4.2.tar.gz"
}
],
"0.4.3": [
{
"comment_text": "",
"digests": {
"md5": "0e431b54a12f2f2bd65087e2dff6257a",
"sha256": "67930f906cf8b632b5ebbefd234b7f6e126337c9e12c16181a10930225d1bf62"
},
"downloads": -1,
"filename": "lck.common-0.4.3.tar.gz",
"has_sig": false,
"md5_digest": "0e431b54a12f2f2bd65087e2dff6257a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 252737,
"upload_time": "2011-07-11T14:55:38",
"url": "https://files.pythonhosted.org/packages/69/49/3d5435a3cc88497969d7d9a6a37717354e3fc3079ec65669bb5269e1f96a/lck.common-0.4.3.tar.gz"
}
],
"0.4.4": [
{
"comment_text": "",
"digests": {
"md5": "f8f0861319cc3037ce931f2b68d3635e",
"sha256": "6ee12819b2ab40c480fe9ee251d526af55d79a22f2bec4758e7aeb38e42e6873"
},
"downloads": -1,
"filename": "lck.common-0.4.4.tar.gz",
"has_sig": false,
"md5_digest": "f8f0861319cc3037ce931f2b68d3635e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 253803,
"upload_time": "2011-09-29T00:45:28",
"url": "https://files.pythonhosted.org/packages/1d/cb/4535081877f614c9cbb29b74bf84044e01d1c5ee631ef2ec6274c661dbd0/lck.common-0.4.4.tar.gz"
}
],
"0.4.5": [
{
"comment_text": "",
"digests": {
"md5": "c385aae04db996bd3155ace3367e0ac5",
"sha256": "4d5bb276fa024a64398f23912f3d371f6479cebff015615f8ef38cc48c4ee46e"
},
"downloads": -1,
"filename": "lck.common-0.4.5.tar.gz",
"has_sig": false,
"md5_digest": "c385aae04db996bd3155ace3367e0ac5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 254105,
"upload_time": "2012-02-05T11:42:23",
"url": "https://files.pythonhosted.org/packages/0c/23/8dc64258999570bac97eac6419ef66592d53951ca578ffb05e5f0a7469d9/lck.common-0.4.5.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "c385aae04db996bd3155ace3367e0ac5",
"sha256": "4d5bb276fa024a64398f23912f3d371f6479cebff015615f8ef38cc48c4ee46e"
},
"downloads": -1,
"filename": "lck.common-0.4.5.tar.gz",
"has_sig": false,
"md5_digest": "c385aae04db996bd3155ace3367e0ac5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 254105,
"upload_time": "2012-02-05T11:42:23",
"url": "https://files.pythonhosted.org/packages/0c/23/8dc64258999570bac97eac6419ef66592d53951ca578ffb05e5f0a7469d9/lck.common-0.4.5.tar.gz"
}
]
}