{
"info": {
"author": "Rasmus Andersson",
"author_email": "rasmus@flajm.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 4 - Beta",
"Environment :: Console",
"Intended Audience :: Developers",
"Intended Audience :: Information Technology",
"License :: OSI Approved :: MIT License",
"Natural Language :: English",
"Operating System :: MacOS :: MacOS X",
"Operating System :: POSIX",
"Operating System :: Unix",
"Programming Language :: C",
"Programming Language :: Python",
"Topic :: Internet :: WWW/HTTP",
"Topic :: Software Development :: Libraries :: Python Modules"
],
"description": "Smisk\n+++++\n\n.. contents ::\n\nSummary\n=======\n\nSmisk is a simple, high-performance and scalable web service framework\nwritten in C, but controlled by Python.\n\nIt is designed to widen the common bottle necks in heavy-duty web services.\n\nMore information at the `Smisk website `_\n\n\nGetting Started\n===============\n\n* Install with ``easy_install smisk``, download from\n `PyPI `_ or \n `use a Debian package `_\n \n* Have a look at a few `examples `_\n\n\nExamples\n========\n\nThis is a minimal Smisk service::\n\n from smisk.core import Application\n class MyApp(Application):\n def service(self):\n self.response.headers = ['Content-Type: text/plain']\n self.response(\"Hello World!\")\n\n MyApp().run()\n\nAnd here we have a WSGI compatible application::\n\n from smisk.wsgi import *\n def hello_app(env, start_response):\n start_response(\"200 OK\", [('Content-Type', 'text/plain')])\n return [\"Hello, World!\"]\n\n main(hello_app)\n\nMore examples `available here... `_\n\n\nAuthors & Contributors\n======================\n* `Rasmus Andersson `_ rasmus-flajm.com\n* `Eric Moritz `_ eric-themoritzfamily.com\n* Ludvig Strigeus\n\nChanges\n=======\n\n1.1.6\n-----\n\n* Handle requests with filename extensions which are actually not filename\n extensions but rather format-less but leet.haxxor kinda dot notation of the\n regular path component.\n\n* Fixed 304 Not Modified response status not to set Location header nor include\n a message-body.\n\n* smisk.util.main.daemonize() does no longer call exit hooks while detaching\n (calling os._exit instead of sys.exit in dead forks).\n\n* Fixed bug in smisk.util.main.control_process_runloop() where signals where\n not correctly forwarded to children.\n\n* When core fail to decode text data from user input (form data and query \n string) it will try to decode the text data using a fallback charset, defined\n by SMISK_FALLBACK_CHARSET in config.h, which is set to \"ISO-8859-1\" in\n accordance with HTTP 1.1 (RFC 2616), sect. 19.3 \"Tolerant Applications\".\n\n* MVC applications respond with \"400 Bad Request\" when user input text can not\n be decoded using app.charset (or iso-8859-1 if app.tolerant is True).\n\n* core.Application has a new boolean property \"tolerant\". When True (default)\n user input will be processed in a tolerant manner. I.e. if a query string\n encoded in iso-8859-1 is sent to an application with app.charset of utf-8,\n the query string will still be decoded using the HTTP 1.1 (RFC 2616) fallback\n encoding iso-8859-1, which is able do decode any byte. If tolerant where \n False, a UnicodeDecodeError would be raised.\n\n* Static method core.URL.decompose_query() accepts a new boolean argument \n \"tolerant\" which if True, charset argument is set and can not be used to \n decode the first argument, causes decoding using the iso-8859-1 charset.\n\n* mvc.Response have two new members: The property \"charsets\" which is a list of\n acceptable charsets. The method \"accepts_charset\" which return True if the \n first argument is acceptable according to the \"charsets\" list.\n\n* MVC applications retain the content type used to find a valid serializer or\n template and uses that content type in the response, if appropriate. Previous\n behaviour was to send responses with the (per serializer or template)\n canonical content type.\n\n1.1.5\n-----\n\n* Fixed a bug with Python 2.5 where PyEval_InitThreads had to be called (even\n though the documentation suggests otherwise)\n\n1.1.4\n-----\n\n* Fixed serious integer overflow bugs in smisk.core where return values from\n PyObject_CallMethod was never decrefed, leading to incorrect number of \n decrefs later on thus causing seemingly random segfaults. Thanks to Ludde.\n\n* Removed the bsddb module -- the smisk.ipc.bsddb module still exist, but\n required an external bsddb module to be installed.\n\n* Fixed a bug in smisk.ipc.memcached where creation of dict cash key tried to\n concatenate a str and int.\n\n* Fixed a bug in smisk.mvc request parsing code where a text payload with an\n explicit character encoding was not properly handled.\n\n* The smisk.serialization.json module now uses the standard library\n (Python >=2.6) json module when cjson is not available.\n\n* The smisk.serialization.json serializer explicitly specifies the character\n encoding (which always is UTF-8)\n\n* The smisk.serialization.php_serial serializer now uses \"sphp\" as the primary\n filename extension. (updated to align with evolving standards)\n\n* Fixed some issues with storage defined in both header file and source file,\n leading to problems with compilation of Python 2.4 version of smisk.core.\n\n* Higher performance codec in smisk.core.xml now also supporting\n decoding/unescaping.\n\n\n1.1.3\n-----\n\n* Fixed a bug with parameter keys not being normalized to unicode.\n\n* Reworked Elixir/SQLAlchemy handling of sessions during HTTP transactions.\n\n* Only a subset of the built-in serializers are loaded by default, rather than\n all. There's a new module called smisk.serialization.all which can be\n imported in order to load all built-in serializers.\n\n* Serializers now need to excplicitly specify their read/write capabilities\n using two boolean attributes: can_serialize and can_unserialize.\n BaseSerializer defines both of these as False.\n\n* plist serializer reworked to use plistlib, which has been modified to support\n serialization of Elixir Entities (database objects).\n\n* New generic XML serializer smisk.serialization.xmlgeneric (not loaded by \n default).\n\n* smisk.mvc.Request instances have a new attribute called cn_url. The value is\n a smisk.core.URL instance which is guaranteed *not* to include any filename\n extension. cn_url is a copy of Request.url if the request was made without\n the canonical path (i.e. not including filename extension. \"/foo/bar\" instead\n of \"/foo/bar.json\"). Otherwise cn_url is a modified copy of url. This is\n useful for building paths based on the request path wihout having to know if\n there's a filename extension involved or not.\n\n* Leaf filters can now be created as pythonic decorators using the aiding\n decorator leaf_filter, found in smisk.mvc.decorators. See\n http://python-smisk.org/docs/1.1.3/library/smisk.mvc.html#leaf-filters\n for more information.\n\n* The previously built-in crash reporter is no longer built by default. Can be\n enabled by defining the macro SMISK_ENABLE_CRASH_REPORTING 1 (more info in \n src/config.h).\n\n* Major documentation update.\n\n* Various minor fixes.\n\n\n1.1.2\n-----\n\n* Inter-process communication module smisk.ipc, providing a shared dictionary\n which can be concurrently manipulated by a set of processes.\n\n* Berkely DB module smisk.core.bsddb\n\n* Benchmark utility module smisk.util.benchmark exposes an iterator which can\n be used to easily benchmark snippets of code.\n \n* The key-value store example application now uses the shared dictionary\n provided by smisk.ipc.\n\n* smisk.core.Request have two soft limits -- max_multipart_size and \n max_formdata_size -- for limiting automatically handled input data size. These\n soft limits can also be used to disable the automated parsing of Smisk.\n\n* smisk.util.cache has a new function -- app_shared_key -- returning a byte\n string which can be used to uniqely identify the application. The key is\n based on the entry file (the python file in which __name__ == \"__main__\").\n\n* smisk.util.type exposes MutableMapping -- in Python >=2.6 this is \n collections.MutableMapping, in Python >=2.3 it is UserDict.DictMixin.\n\n* Serializers no longer emit warning.warn-messages when no suiting\n implementations are available. Now they are simply not registered whitout as\n much as a whisper.\n\n* In the C library, the macro SMISK_PyString_Check has changed name to \n SMISK_STRING_CHECK (however it still does the exact same thing as before,\n just that in preparation for porting Smisk to Python 3, we need to sort out\n the different meanings of \"bytes strings\" and \"character strings\")\n\n* In the C library, we use PyBytes instead of PyString and NUMBER_* instead of\n some PyInt-functions, having macros for Python <2.5. This is a step toward\n the Python 3 port.\n\n* smisk.core is now stored as _smisk and imported by smisk/core/__init__.py.\n This follows the naming custom of other machine-native modules as well as\n provides better name (i.e. _smisk.so instead of core.so) in various listings.\n\n* Fixed a bug in smisk.core where a www-form-urlencoded request with incorrect\n content length and the first key was longer than the provided content length,\n smisk would induce strange errors (because trying to set NULL into a python\n dict).\n\n\n1.1.1\n-----\n\n* Fully unicode on the inside -- request.get, .post, .cookies, etc return\n unicode values and where dictionary keys are used, which have been translated\n from the outside world, they are guranteeded to be encoded as UTF-8.\n (Dictionary keys used as keyword arguments must be str in Python <=2.5)\n\n* YAML read/write-serialization #21 [a72dc2f0855b]\n\n* Handles and reconnects dead MySQL-connections. #23 [49cb2034a8b1]\n\n* No longer stores empty parts as None from multipart messages. #15\n [d9920fb75ca2]\n\n* Makes full use of HTTP 1.1 request methods (OPTIONS, GET, HEAD, PUT, POST,\n DELETE). See example application: examples/mvc/key-value-store/\n\n* smisk.mvc.model no longer disposes SA/Elixir sessions for each request, but\n tries to reuse a session as long as no error occur.\n\n* redirect_to() respects and retains explicit request format, denoted by path\n extension in the original request.\n\n* smisk.test.live introduces \"live\" tests, running a server and a client,\n measuring communication and effects.\n\n\n1.1.0\n-----\n\n* MVC module -- smisk.mvc.\n\n* Better unicode support.\n\n* Compatible with Debian Etch.\n\n* Host server URL rewrites now propagating correctly.\n\n\n1.0.1\n-----\n\n* Full WSGI support -- passes the wsgiref validation tests.\n\n* Iterable request makes reading input data simple.\n\n* Stream implements writelines for optimized sending of chunks of strings.\n\n* Response implements a Stream.writelines proxy, automatically calling\n begin().\n\n* Callable response makes responses simpler. Based on writelines.\n\n* Fixed a bug where smisk_multipart_parse_file would try to fclose a\n uninitialized fd. [11c4ffae718f]\n\n\n1.0.0\n-----\n\n* First stable version\n\nLicense\n=======\nCopyright (c) 2007-2009 Rasmus Andersson\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\nDownload\n========",
"description_content_type": null,
"docs_url": null,
"download_url": "UNKNOWN",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://python-smisk.org/",
"keywords": null,
"license": "Copyright (c) 2007-2009 Rasmus Andersson\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.",
"maintainer": null,
"maintainer_email": null,
"name": "smisk",
"package_url": "https://pypi.org/project/smisk/",
"platform": "ALL",
"project_url": "https://pypi.org/project/smisk/",
"project_urls": {
"Download": "UNKNOWN",
"Homepage": "http://python-smisk.org/"
},
"release_url": "https://pypi.org/project/smisk/1.1.6/",
"requires_dist": null,
"requires_python": null,
"summary": "High-performance web service framework",
"version": "1.1.6"
},
"last_serial": 803345,
"releases": {
"1.0.0": [],
"1.0.1dev": [
{
"comment_text": "",
"digests": {
"md5": "dfb778bf9f4846d863f8a1113765d9a0",
"sha256": "5e326552eea1da37debffb105e0aa3ce748abc383f8a3936ec84c7773ddf61c2"
},
"downloads": -1,
"filename": "smisk-1.0.1dev.tar.gz",
"has_sig": true,
"md5_digest": "dfb778bf9f4846d863f8a1113765d9a0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 707959,
"upload_time": "2008-05-15T22:36:39",
"url": "https://files.pythonhosted.org/packages/26/63/5be5f2d3c76838f2f97484f34e19db9360876e672c5c2bb99e6d54e5f557/smisk-1.0.1dev.tar.gz"
}
],
"1.0.1dev1": [
{
"comment_text": "built for Darwin-9.2.2",
"digests": {
"md5": "aaee82d31e7bd5ceb281906394002564",
"sha256": "c6c18a1a4a40cb00962ff4f795038c19b84eef12932068d660b4072e5b9cc40a"
},
"downloads": -1,
"filename": "smisk-1.0.1dev1.macosx-10.3-i386.tar.gz",
"has_sig": true,
"md5_digest": "aaee82d31e7bd5ceb281906394002564",
"packagetype": "bdist_dumb",
"python_version": "2.5",
"requires_python": null,
"size": 46616,
"upload_time": "2008-05-19T23:48:29",
"url": "https://files.pythonhosted.org/packages/46/3d/10afb0c40404dfd2b50c250c872a9bd752d8134d771f4903b866548be5f6/smisk-1.0.1dev1.macosx-10.3-i386.tar.gz"
},
{
"comment_text": "built on Linux-2.6.24-1-686-i686-with-glibc2.3",
"digests": {
"md5": "1168812d165e00ae5e181d2ac9579245",
"sha256": "da82cd9bf80ad979160b7c3af796ecc9960d883b3a2907d3cb7b227a5356502b"
},
"downloads": -1,
"filename": "smisk-1.0.1dev1-py2.4-linux-i686.egg",
"has_sig": true,
"md5_digest": "1168812d165e00ae5e181d2ac9579245",
"packagetype": "bdist_egg",
"python_version": "2.4",
"requires_python": null,
"size": 112157,
"upload_time": "2008-05-19T23:19:32",
"url": "https://files.pythonhosted.org/packages/e4/cd/852783e254b61a92023a2334bc4c9ddd6940784f30c9a9665df478c072b8/smisk-1.0.1dev1-py2.4-linux-i686.egg"
},
{
"comment_text": "built on Linux-2.6.21-2-amd64-x86_64-with-glibc2.3",
"digests": {
"md5": "7f00bb976ab1d924b627dcc1be5ce70b",
"sha256": "cd552b738c3f282c96e1fafba95905710ea20d1467f3791900c6eccdd82bb9ee"
},
"downloads": -1,
"filename": "smisk-1.0.1dev1-py2.4-linux-x86_64.egg",
"has_sig": true,
"md5_digest": "7f00bb976ab1d924b627dcc1be5ce70b",
"packagetype": "bdist_egg",
"python_version": "2.4",
"requires_python": null,
"size": 118681,
"upload_time": "2008-05-19T23:12:59",
"url": "https://files.pythonhosted.org/packages/21/d6/909ddb15e280dd05fe272edd981e9ee7488e857d16e6e3774a10907bffb1/smisk-1.0.1dev1-py2.4-linux-x86_64.egg"
},
{
"comment_text": "built on Darwin-9.2.2",
"digests": {
"md5": "cd9182584fe70c654da5cd36cb0a681f",
"sha256": "715d642fbdaf04f0550d41e8b149cdd6cd27bc010e21e426543dde28b6ecf906"
},
"downloads": -1,
"filename": "smisk-1.0.1dev1-py2.4-macosx-10.3-i386.egg",
"has_sig": true,
"md5_digest": "cd9182584fe70c654da5cd36cb0a681f",
"packagetype": "bdist_egg",
"python_version": "2.4",
"requires_python": null,
"size": 54763,
"upload_time": "2008-05-19T23:06:40",
"url": "https://files.pythonhosted.org/packages/c2/d8/ddcd8b88327850d1870de1e0396c8835b9a49c1109fc31b9152a3a7dacbb/smisk-1.0.1dev1-py2.4-macosx-10.3-i386.egg"
},
{
"comment_text": "built on Linux-2.6.24-1-686-i686-with-glibc2.3",
"digests": {
"md5": "e4e425e93676102b758678495aeeb1b1",
"sha256": "d44f8df3186bc625804f1483f5b6106e4df5716835fc12edc0125dbf4656b3b8"
},
"downloads": -1,
"filename": "smisk-1.0.1dev1-py2.5-linux-i686.egg",
"has_sig": true,
"md5_digest": "e4e425e93676102b758678495aeeb1b1",
"packagetype": "bdist_egg",
"python_version": "2.5",
"requires_python": null,
"size": 112146,
"upload_time": "2008-05-19T23:19:17",
"url": "https://files.pythonhosted.org/packages/29/e5/fc9149360ccd7abce6a2b21f3c807107778f4600ea44eb1ce1831018a54d/smisk-1.0.1dev1-py2.5-linux-i686.egg"
},
{
"comment_text": "built on Linux-2.6.21-2-amd64-x86_64-with-glibc2.3",
"digests": {
"md5": "258ea300bf517366af4d90775a9bb7cc",
"sha256": "eebd7d1f4ce009dfd762946217af0f36cc621ba14002a3efb299186ae3f0aba1"
},
"downloads": -1,
"filename": "smisk-1.0.1dev1-py2.5-linux-x86_64.egg",
"has_sig": true,
"md5_digest": "258ea300bf517366af4d90775a9bb7cc",
"packagetype": "bdist_egg",
"python_version": "2.5",
"requires_python": null,
"size": 118888,
"upload_time": "2008-05-19T23:12:46",
"url": "https://files.pythonhosted.org/packages/7c/f2/35c5b2735836dec94f43a776d8215145954844e74b8083c22bab8c81ceaa/smisk-1.0.1dev1-py2.5-linux-x86_64.egg"
},
{
"comment_text": "",
"digests": {
"md5": "98d7314fb2982fb4263272959955c935",
"sha256": "54dbfe0ffc4cbe4c67dd449087054036e181f5c9e6e307d753864e1019af3482"
},
"downloads": -1,
"filename": "smisk-1.0.1dev1-py2.5-macosx-10.3-i386.egg",
"has_sig": true,
"md5_digest": "98d7314fb2982fb4263272959955c935",
"packagetype": "bdist_egg",
"python_version": "2.5",
"requires_python": null,
"size": 51277,
"upload_time": "2008-05-19T23:06:16",
"url": "https://files.pythonhosted.org/packages/dc/d9/f1068a967216f7a172bde8cb5d35e050023e52aa0849ad866bd82c542343/smisk-1.0.1dev1-py2.5-macosx-10.3-i386.egg"
},
{
"comment_text": "",
"digests": {
"md5": "4cc92fbc0d364fbb80e5cd3a8aeacd72",
"sha256": "2406a6ba0259bf6b2a76b07f951d574982c1a407ed5d3f368e0df8e7b3224033"
},
"downloads": -1,
"filename": "smisk-1.0.1dev1.tar.gz",
"has_sig": true,
"md5_digest": "4cc92fbc0d364fbb80e5cd3a8aeacd72",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 58190,
"upload_time": "2008-05-19T23:13:44",
"url": "https://files.pythonhosted.org/packages/6e/1f/87e3e9d5fe8be4711ab7151af3fd74d7509583ab8bf2eb71ca825e9875ed/smisk-1.0.1dev1.tar.gz"
}
],
"1.1.0": [
{
"comment_text": "",
"digests": {
"md5": "c61ba137d9b2ed02c10d44b67fbd6001",
"sha256": "0d8507166ef4210309548566a064adb7ecc05d2ace476a9f54332e27acef253c"
},
"downloads": -1,
"filename": "smisk-1.1.0.tar.gz",
"has_sig": true,
"md5_digest": "c61ba137d9b2ed02c10d44b67fbd6001",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 765189,
"upload_time": "2008-12-19T15:23:54",
"url": "https://files.pythonhosted.org/packages/55/2b/6fbd6465d9a353ea917926699b8ebcd0f87b887c3b13695900d43be38dd5/smisk-1.1.0.tar.gz"
}
],
"1.1.0a": [
{
"comment_text": "",
"digests": {
"md5": "2ac470ba46bd7a1784f440aeee081aae",
"sha256": "3fb626ea3becd2c4cf5c88c63383496f04de575b57ee5be1b99316063d90cca2"
},
"downloads": -1,
"filename": "smisk-1.1.0a.tar.gz",
"has_sig": true,
"md5_digest": "2ac470ba46bd7a1784f440aeee081aae",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 752225,
"upload_time": "2008-10-30T02:10:42",
"url": "https://files.pythonhosted.org/packages/1a/4f/c2e026d02a00e8b9dc899380d3b5f0a684927bc47c4f6dea8f5ccf8408fc/smisk-1.1.0a.tar.gz"
}
],
"1.1.1": [
{
"comment_text": "",
"digests": {
"md5": "572cb1ccc7bc6f56946b6298586cc532",
"sha256": "03424c5a1dee859068e88442f436a43dea175f83fa76395ec5f5592dfa6bfd3b"
},
"downloads": -1,
"filename": "smisk-1.1.1.tar.gz",
"has_sig": true,
"md5_digest": "572cb1ccc7bc6f56946b6298586cc532",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 777850,
"upload_time": "2009-01-11T20:16:00",
"url": "https://files.pythonhosted.org/packages/9c/35/e4fac650eb0b932968a54b0021271de16cb22d11dd241ed864332de97945/smisk-1.1.1.tar.gz"
}
],
"1.1.2": [
{
"comment_text": "",
"digests": {
"md5": "1b0358aa2a0b30c24e3a792eabd0d596",
"sha256": "23d827f617c32c4fd6b61dab68772f2c9a06734a0850484e1fbdfb22a701d9b7"
},
"downloads": -1,
"filename": "smisk-1.1.2.tar.gz",
"has_sig": true,
"md5_digest": "1b0358aa2a0b30c24e3a792eabd0d596",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 833230,
"upload_time": "2009-01-27T03:30:52",
"url": "https://files.pythonhosted.org/packages/12/58/fd6a9f9a12ecd3c1698160a49947056f7349e846d1299edbc46d24727593/smisk-1.1.2.tar.gz"
}
],
"1.1.3": [
{
"comment_text": "",
"digests": {
"md5": "d60d4431cc9466be7ba37c1b2cc2cc7e",
"sha256": "d1008771c87fb3f13d4cf0841a6d759d5d15c13f5f451bf8d20f78a832938d58"
},
"downloads": -1,
"filename": "smisk-1.1.3.tar.gz",
"has_sig": true,
"md5_digest": "d60d4431cc9466be7ba37c1b2cc2cc7e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 993087,
"upload_time": "2009-02-23T01:29:07",
"url": "https://files.pythonhosted.org/packages/35/df/ea9bef4b0073452c991ef132b0805159c0628b558866d5c5b6a499255ed5/smisk-1.1.3.tar.gz"
}
],
"1.1.4": [
{
"comment_text": "",
"digests": {
"md5": "cd30bb9dfdf002c57f5a2d7c2402627c",
"sha256": "6c4ce56e779aaab689d34ee35ff31ccb6dcd956fa8f25a339a23b90fde007c7e"
},
"downloads": -1,
"filename": "smisk-1.1.4.tar.gz",
"has_sig": true,
"md5_digest": "cd30bb9dfdf002c57f5a2d7c2402627c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 938966,
"upload_time": "2009-03-14T15:07:19",
"url": "https://files.pythonhosted.org/packages/8b/a4/1062f4ac1c10c5bf855b961882d34b248f4378560e98bc00d9705124d449/smisk-1.1.4.tar.gz"
}
],
"1.1.5": [
{
"comment_text": "",
"digests": {
"md5": "14be91201d69a4e26252bdc8760de7be",
"sha256": "c1e9fd05740a65669723fce18316685a679c475f8545085ea07e285d9ce67c86"
},
"downloads": -1,
"filename": "smisk-1.1.5.tar.gz",
"has_sig": true,
"md5_digest": "14be91201d69a4e26252bdc8760de7be",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 925657,
"upload_time": "2009-03-30T22:52:09",
"url": "https://files.pythonhosted.org/packages/bf/40/1cf1b9efa3f3e09d1101e7adafb4e678a03390ccbfe950e5eaf06284245f/smisk-1.1.5.tar.gz"
}
],
"1.1.6": [
{
"comment_text": "",
"digests": {
"md5": "fe00beffdca462aeeb60651a6c22218e",
"sha256": "6dd79be4d8210151bf4a4d5a30e8a770ee5270d387994bbdf31b33c2e2c0f63b"
},
"downloads": -1,
"filename": "smisk-1.1.6.tar.gz",
"has_sig": true,
"md5_digest": "fe00beffdca462aeeb60651a6c22218e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 938831,
"upload_time": "2009-05-12T17:40:38",
"url": "https://files.pythonhosted.org/packages/bb/55/52cb6146270442b7d2576b3c5eaa8da4758cb808e0b827aa2aa0a1be7aac/smisk-1.1.6.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "fe00beffdca462aeeb60651a6c22218e",
"sha256": "6dd79be4d8210151bf4a4d5a30e8a770ee5270d387994bbdf31b33c2e2c0f63b"
},
"downloads": -1,
"filename": "smisk-1.1.6.tar.gz",
"has_sig": true,
"md5_digest": "fe00beffdca462aeeb60651a6c22218e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 938831,
"upload_time": "2009-05-12T17:40:38",
"url": "https://files.pythonhosted.org/packages/bb/55/52cb6146270442b7d2576b3c5eaa8da4758cb808e0b827aa2aa0a1be7aac/smisk-1.1.6.tar.gz"
}
]
}