{ "info": { "author": "Alice Bevan-McGregor", "author_email": "alice@gothcandy.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Internet :: WWW/HTTP :: WSGI", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "=======\nWebCore\n=======\n\n \u00a9 2006-2016 Alice Bevan-McGregor and contributors.\n\n..\n\n https://github.com/marrow/WebCore\n\n..\n\n |latestversion| |ghtag| |downloads| |masterstatus| |mastercover| |masterreq| |ghwatch| |ghstar|\n\n\n1. `What is WebCore?`_\n\n2. `Installation`_\n\n 1. `Dependencies and Extras`_\n\n 2. `Development Version`_\n\n3. `Basic Concepts`_\n\n 1. `Application`_\n\n 2. `Context`_\n\n 3. `Controllers, Endpoints, Dispatch, Oh My!`_\n\n4. `Plugins and Namespaces`_\n\n5. `Version History`_\n\n6. `License`_\n\n\nWhat is WebCore?\n================\n\nWebCore is a nanoframework, a fraction of the size of competing \"microframeworks\", and culmination of more than ten\nyears of web development experience. It provides a clean API for standard points of extension while strongly\nencouraging model, view, controller separation. Being less than 400 source lines of code (SLoC; excluding comments and\ndocumentation) and containing more comments and lines of documentation than lines of code, WebCore is built to be\ninsanely easy to test, adapt, and use, allowing any developer familiar with programming (not just Python programming)\nto be able to read and understand the entirety of the framework in an evening.\n\nIt is substantially smaller and more efficient than monolithic frameworks such as Django or Pyramid::\n\n from web.core import Application\n \n Application(\"Hi.\").serve('wsgiref')\n\nReally; that's it. (It can be made into one line if you're willing to make the import ugly using ``__import__``.) The\nApplication class represents a standard Python WSGI application, the rest is up to you to pick the components that\nbest fit your own needs.\n\n\nInstallation\n============\n\nInstalling ``WebCore`` is easy, just execute the following in a terminal::\n\n pip install WebCore\n\n**Note:** We *strongly* recommend always using a container, virtualization, or sandboxing environment of some kind when\ndeveloping using Python; installing things system-wide is yucky (for a variety of reasons) nine times out of ten. We\nprefer light-weight `virtualenv `__, others prefer solutions as\nrobust as `Vagrant `__.\n\nIf you add ``WebCore`` to the ``install_requires`` argument of the call to ``setup()`` in your application's\n``setup.py`` file, WebCore will be automatically installed and made available when your own application or\nlibrary is installed. We recommend using \"less than\" version numbers to ensure there are no unintentional\nside-effects when updating. Use ``WebCore<2.1`` to get all bugfixes for the current release, and\n``WebCore<3.0`` to get bugfixes and feature updates while ensuring that large breaking changes are not installed.\n\nDependencies and Extras\n-----------------------\n\nWebCore only depends on the excellent `webob `__ package to provide request, response, and HTTP\nstatus code exception helpers and the `marrow.package `__ utility package for plugin\nmanagement. All other dependencies will be application dependencies; choice of template engine,\ndatabase layer, session storage mechanism, and even dispatch method are left entirely up to the developer making use\nof the framework. Provided are a number of ``extras`` requirements, which you can define using a comma-separated list\nappended to the package name during installation from the command-line, or within your own package's\n``install_requires``. For example, to install a typical set of development tools at the same time as WebCore, run::\n\n pip install WebCore[development]\n\nThe available extras are:\n\n- ``development`` -- this installs a recommended set of development-time packages, including\n `pytest `__ and a suite of plugins for it, plus the \n `backlash `__ interactive debugger (needed by the optional\n ``DebugExtension``), object dispatch, the comprehensive ``ptipython`` upgraded REPL, and the\n `waitress `__ development web server.\n\n- ``production`` -- install recommended production-time packages; currently this only installs the ``flup`` FastCGI\n server bridge.\n\nThe default choices for dispatch are allowed as extras:\n\n- ``object`` -- install object dispatch\n\n- ``route`` -- install route-based dispatch\n\n- ``traversal`` -- install traversal dispatch\n\nYou can also name a supported server bridge as an extra. Currently available bridges with third-party dependencies include:\n\n- ``waitress``\n\n- ``tornado``\n\n- ``flup``\n\nDevelopment Version\n-------------------\n\n|developstatus| |developcover| |ghsince| |issuecount| |ghfork|\n\nDevelopment takes place on `GitHub `__ in the\n`WebCore `__ project. Issue tracking, documentation, and downloads\nare provided there. Development chat (both development of WebCore and chat for users using WebCore to develop their\nown solutions) is graciously provided by `Freenode `__ in the ``#webcore``\nchannel.\n\nInstalling the current development version requires `Git `__, a distributed source code management\nsystem. If you have Git you can run the following to download and *link* the development version into your Python\nruntime::\n\n git clone https://github.com/marrow/WebCore.git\n pip install -e WebCore\n\nYou can then upgrade to the latest version at any time::\n\n (cd WebCore; git pull; pip install -e .)\n\nExtra dependenies can be declared the same as per web-based installation::\n\n pip install -e WebCore[development]\n\nIf you would like to make changes and contribute them back to the project, fork the GitHub project, make your changes,\nand submit a pull request. This process is beyond the scope of this documentation; for more information see\n`GitHub's documentation `__.\n\n\nBasic Concepts\n==============\n\nApplication\n-----------\n\nThe ``Application`` class is the primary entry point for the web framework. Its constructor currently takes up to\nthree arguments:\n\n- ``root`` -- the root object to use as the controller for ``/`` requests\n\n- ``extensions`` -- a list of extensions to use with your application\n\n- ``logging`` -- Python ``logging`` configuration\n\nThe \"root controller\" is used as the starting point for dispatch resolution of the endpoint for a request, see the\nControllers section below for details on what can be used here, but it's basically anything.\n\nBy defualt the ``BaseExtension``, providing basic request and response objects and baisc views, is always enabled for \nyour application, has no configuration, and does not need to be instantiated yourself. Other extensions should be\ninstantiated and passed in the ``extensions`` list.\n\nLogging configuration offers two choices: simple \"global logging level\" by defining ``logging`` as a dictionary\nonly containing a ``level`` key naming the level to set, or full ``logging.config.dictConfig`` configuration. Passing\nonly a level is equivalent to running ``logging.basicConfig``.\n\nThis configuration can entirely come from YAML, for example::\n\n root: !!python/name:web.app.example.RootController\n \n extensions:\n - !!python/object:web.ext.debug.DebugExtension\n - !!python/object:web.ext.analytics.AnalyticsExtension\n - !!python/object:web.ext.annotation:AnnotationExtension\n \n logging:\n level: debug\n\nThis would make managing complex extension configuration easier. One way to invoke WebCore with a configuration like\nthis, while allowing for a distinction between production and development environments and use under ModWSGI would\nbe::\n\n import yaml\n from web.core import Application\n \n fname = 'development.yaml' if __debug__ else 'production.yaml'\n with open(fname, 'r', encoding='utf-8') as fh:\n config = yaml.load(fh)\n \n app = Application(**config)\n \n if __name__ == \"__main__\":\n app.serve('wsgiref')\n\nNow, running ``python run.py`` (if saved as ``run.py``) would serve the ``development.yaml`` configuration, and\nrunning as ``python -O run.py`` (optimization enabled) or with ``PYTHONOPTIMIZE=1`` set in the environment will\nutilize the ``production.yaml`` file.\n\nWebCore is highly aware running with optimizations enabled, eliminating many of the expensive validation checks that\nare only really useful in development. For example, calling an endpoint with invalid arguments will ``404`` with a\nfriendly warning in development, but ``500`` in production as the ``TypeError`` is not preemptively checked and\ncaught; this is one of the most expensive validation checks. Feel free to browse the code looking for ``if __debug__``\nblocks to see what else changes in \"production mode\".\n\nThe order you define the extensions in does not matter; they declare dependencies and will be automatically\ndependency-ordered when collecting callbacks. Please see the ``extension.py`` example for additional information on\nwhat you can do with them.\n\n\nContext\n-------\n\nThe overall application has an ``ApplicationContext`` associated with it. This object is passed around to the various\nextension callbacks and acts as an attribute access dictionary. (All of the typical dictionary methods will work,\nand the keys can be accessed as attributes instead, saving some typing.) During the processing of a request a subclass\nis constructed called ``RequestContext`` and in-request extension callbacks, and your controller endpoints, are given\na reference to this instance.\n\nThe attributes present in the base ``ApplicationContext`` are:\n\n- ``app`` -- a reference to the ``Application`` instance\n\n- ``root`` -- the original object passed when constructing the ``Application`` instance\n\n- ``extension`` -- the ``WebExtensions`` extension registry\n\n- ``dispatch`` -- the ``WebDispatchers`` dispatch protocol bridge and plugin registry\n\n- ``view`` -- the ``WebViews`` view handler registry\n\nExtensions would access these during ``start`` and ``stop`` events, for example to register new view handlers.\n\nThe attributes present in the ``RequestContext`` (added by WebCore itself or the ``BaseExtension`` during request\nprocessing) are:\n\n- ``environ`` -- the WSGI request environment as passed to WebCore's WSGI handler\n\n- ``request`` -- a ``webob.Request`` representing the current HTTP request\n\n- ``response`` -- a ``webob.Response`` object corresponding to the response WebCore will return\n\n- ``path`` -- a list of dispatch steps represented by tuples of ``(handler, script_name)``\n\nAdditional attributes may be added by other extensions.\n\n\nControllers, Endpoints, Dispatch, Oh My!\n----------------------------------------\n\nControllers and, more generally, *callable endpoints*, are functions or methods called to process a request and return\na value for view or raise an exception. Non-method callables are passed the context as a first argument; methods are\nassumed to have access via ``self`` as the context will have been passed as the only positional argument to the class\nconstructor. *Callable endpoints* are additionally passed any unprocessed path elements as positional parameters, and\na combination of query string arguments (``GET`` values) and form-encoded body elements (``POST`` values) as keyword\narguments, with arguments from the request body taking precedence and duplicated keys being passed as a list of\nvalues. They may return any value there is a view registered for, see the\n`docstring of the view manager `__ for details.\n\n*Static endpoints*, on the other hand, are non-callable objects that can be handled by a view. The very first example\nat the top of this document relies on the fact that there is a view to handle strings, both static, and as returned by\na *callable endpoint* such as::\n\n def hello(context):\n return \"Hello world!\"\n\nTo allow for customization of the name, you would write this endpoint as::\n\n def hello(context, name=\"world\"):\n return \"Hello {}!\".format(name)\n\nAs noted in the Application section, when Python is run with optimizations enabled (``-O`` or ``PYTHONOPTIMIZE`` set)\nunknown arguments being passed (unknown query string arguments or form values) will result in a ``TypeError`` being\nraised and thus a ``500 Internal Server Error`` due to the uncaught exception. In development (without optimizations)\na ``404 Not Found`` error with a message indicating the mismatched values will be the result. You can use ``*args``\nand ``**kwargs`` to capture any otherwise undefined positional and keyword arguments, or use an extension to mutate\nthe incoming data and strip invalid arguments prior to the endpoint being called.\n\nThat \"hello world\" endpoint, however, may be called in one of several different ways, as no other restrictions have\nbeen put in place:\n\n- ``GET /`` -- Hello world! (Default used.)\n\n- ``GET /Alice`` -- Hello Alice! (Passed positionally.)\n\n- ``GET /?name=Bob`` -- Hello Bob! (Via query string assignment.)\n\n- ``POST /`` submitting a form with a ``name`` field and value of ``Eve`` -- Hello Eve! (Via form-encoded body\n assignment.)\n\nOther HTTP verbs will work as well, but a form-encoded body is only expected and processed on ``POST`` requests.\n\nThe process of finding the endpoint to use to process a request is called *dispatch*. There are a number of forms of\ndispatch available, some should be immediately familiar.\n\n- **Object dispatch.** This is the default (providided by the \n `web.dispatch.object `__ package) form of dispatch for WebCore, and\n is also utilized by several other frameworks such as TurboGears. Essentially each path element is looked up as\n an attribute of the previously looked up object treating a path such as ``/foo/bar/baz`` as an attempt to resolve\n the Python reference ``root.foo.bar.baz``. This is quite flexible, allowing easy redirection of descent using\n Python-standard protocols such as ``__getattr__`` methods, use of lazy evaluation descriptors, etc., etc.\n\n- **Registered routes.** This will likely be the approach most familiar to developers switching from PHP frameworks or\n who have used any of the major macro- or micro-frameworks in Python such as Django, Flask, etc. You explicitly map \n URLs, generally using a regular expression or regular expression short-hand, to specific callable endpoints. Often\n this is a accomplished using a decorator. WebCore offers this form of dispatch throuhg the\n `web.dispatch.route `__ package.\n\n- **Traversal.** This is similar to object dispatch, but descending through mapping keys. The previous example then\n translates to ``root['foo']['bar']['baz']``, allowing managed descent through the ``__getitem__`` protocol. This\n is one of the methods (the other being routes) provided by Pyramid. We offer this form of dispatch through the\n `web.dispatch.traversal `__ package.\n\nThere may be other dispatchers available and the protocol allows for \"dispatch middleware\" to offer even more flexible\napproaches to endpoint lookup. The dispatch protocol itself is framework agnostic (these example dispatchers are in\nno way WebCore-specific) and\n`has its own documentation `__.\n\n\nPlugins and Namespaces\n======================\n\nWebCore recommends registration of extensions and other plugins as Python-standard ``entry_points`` references.\nPlease see the `relevant setuptools documentation \n`__ for details on this\nprocess. Additionally, WebCore marks package namespaces for shared use. The namespaces used, and their purposes, are:\n\n- ``web`` -- the top level shared namespace for WebCore and WebCore accessories\n\n- ``web.app`` -- a namespace for reusable application components and your own use\n\n- ``web.ext`` -- a namespace for WebCore extensions; your own can be placed here\n\n- ``web.server`` -- light-weight WSGI server adapters; your own WSGI server can define a dependency-free adapter\n here, for example\n\nThe plugin namespaces follow a similar pattern:\n\n- ``web.app`` -- re-usable components you can attach to your own controller trees\n\n- ``web.extension`` -- extensions registered by name and \"provides\" tag\n\n- ``web.server`` -- similarly, server adapters registered by name\n\nWebCore also makes use of the ``web.dispatch`` namespace to look up dispatchers. Other WebCore-related packages and\nextensions may make use of other plugin namespaces. Have a gander at WebCore's ``setup.py`` file for an example of\nhow to register plugins this way, and copy the ``__init__.py`` file from the ``web`` package into the overlay in your\nown package (and declare such in your ``setup.py`` package metadata as the ``namespace_packages`` argument) to\nparticipate in the Python package namespaces.\n\n\nVersion History\n===============\n\nVersion 2.0\n-----------\n\n- A complete modernization rewrite of WebCore, from the ground up.\n- Features multiple extension interfaces to extend registered view handlers and provide a uniform callback mechanism.\n- Standard usage makes use of no superglobals or \"thread locals\", instead relying on a context object collaboratively\n populated by extensions.\n- WebCore's former \"dialect\" system is now dispatch.\n\nVersion 2.0.1\n-------------\n\n- Thanks Pypi.\n\nVersion 2.0.2\n-------------\n\n- Corrected argument specification for ``transform`` extension callbacks, fixing ``AnnotationExtension`` usage as per\n `#163 `__.\n- Additional source-level documentation and expanded examples.\n- An excessively large number of additional WSGI server adapters; now supported are: waitress\n `tornado `__, `fcgi `__,\n `cherrypy `__, `appengine `__, `paste `__,\n `eventlet `__, `gevent `__, `diesel `_,\n and `bjoern `__. Each is available as an ``extras_require`` by the same name which will\n pull in the required third-party dependency.\n\nVersion 2.0.3\n-------------\n\n- Argument processing moved out of ``web.core`` into extension ``mutate`` handlers. Features improved rich\n unflattening of query string and form encoded body parameters. Configurable behaviour. For details, see:\n `web/ext/args.py `__\n- `Extensively documented `__ access control list\n extension validating endpoint security and return value permission using context-aware predicates.\n- The ability for extensions to define additional callbacks for collection.\n- The ``DatabaseExtension`` (formerly ``DBExtension``) has been moved into `its own repository\n `__.\n- Content negotiation endpoint return value serialization, with pluggable ``dumps`` registry.\n- Complete unit test coverage.\n\n\nLicense\n=======\n\nWebCore has been released under the MIT Open Source license.\n\nThe MIT License\n---------------\n\nCopyright \u00a9 2006-2016 Alice Bevan-McGregor and contributors.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated\ndocumentation files (the \u201cSoftware\u201d), to deal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit\npersons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the\nSoftware.\n\nTHE SOFTWARE IS PROVIDED \u201cAS IS\u201d, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE\nWARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\nOTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\n.. |ghwatch| image:: https://img.shields.io/github/watchers/marrow/WebCore.svg?style=social&label=Watch\n :target: https://github.com/marrow/WebCore/subscription\n :alt: Subscribe to project activity on Github.\n\n.. |ghstar| image:: https://img.shields.io/github/stars/marrow/WebCore.svg?style=social&label=Star\n :target: https://github.com/marrow/WebCore/subscription\n :alt: Star this project on Github.\n\n.. |ghfork| image:: https://img.shields.io/github/forks/marrow/WebCore.svg?style=social&label=Fork\n :target: https://github.com/marrow/WebCore/fork\n :alt: Fork this project on Github.\n\n.. |masterstatus| image:: http://img.shields.io/travis/marrow/WebCore/master.svg?style=flat\n :target: https://travis-ci.org/marrow/WebCore/branches\n :alt: Release build status.\n\n.. |mastercover| image:: http://img.shields.io/codecov/c/github/marrow/WebCore/master.svg?style=flat\n :target: https://codecov.io/github/marrow/WebCore?branch=master\n :alt: Release test coverage.\n\n.. |masterreq| image:: https://img.shields.io/requires/github/marrow/WebCore.svg\n :target: https://requires.io/github/marrow/WebCore/requirements/?branch=master\n :alt: Status of release dependencies.\n\n.. |developstatus| image:: http://img.shields.io/travis/marrow/WebCore/develop.svg?style=flat\n :target: https://travis-ci.org/marrow/WebCore/branches\n :alt: Development build status.\n\n.. |developcover| image:: http://img.shields.io/codecov/c/github/marrow/WebCore/develop.svg?style=flat\n :target: https://codecov.io/github/marrow/WebCore?branch=develop\n :alt: Development test coverage.\n\n.. |developreq| image:: https://img.shields.io/requires/github/marrow/WebCore.svg\n :target: https://requires.io/github/marrow/WebCore/requirements/?branch=develop\n :alt: Status of development dependencies.\n\n.. |issuecount| image:: http://img.shields.io/github/issues-raw/marrow/WebCore.svg?style=flat\n :target: https://github.com/marrow/WebCore/issues\n :alt: Github Issues\n\n.. |ghsince| image:: https://img.shields.io/github/commits-since/marrow/WebCore/2.0.3.svg\n :target: https://github.com/marrow/WebCore/commits/develop\n :alt: Changes since last release.\n\n.. |ghtag| image:: https://img.shields.io/github/tag/marrow/WebCore.svg\n :target: https://github.com/marrow/WebCore/tree/2.0.3\n :alt: Latest Github tagged release.\n\n.. |latestversion| image:: http://img.shields.io/pypi/v/WebCore.svg?style=flat\n :target: https://pypi.python.org/pypi/WebCore\n :alt: Latest released version.\n\n.. |downloads| image:: http://img.shields.io/pypi/dw/WebCore.svg?style=flat\n :target: https://pypi.python.org/pypi/WebCore\n :alt: Downloads per week.\n\n.. |cake| image:: http://img.shields.io/badge/cake-lie-1b87fb.svg?style=flat\n\n", "description_content_type": null, "docs_url": "https://pythonhosted.org/WebCore/", "download_url": "https://github.com/marrow/WebCore/releases", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/marrow/WebCore/", "keywords": "marrow", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "WebCore", "package_url": "https://pypi.org/project/WebCore/", "platform": "", "project_url": "https://pypi.org/project/WebCore/", "project_urls": { "Download": "https://github.com/marrow/WebCore/releases", "Homepage": "https://github.com/marrow/WebCore/" }, "release_url": "https://pypi.org/project/WebCore/2.0.3/", "requires_dist": null, "requires_python": "", "summary": "A powerful web development nanoframework so small it's not even a microframework.", "version": "2.0.3" }, "last_serial": 4911121, "releases": { "0.5": [ { "comment_text": "", "digests": { "md5": "1d016a0f68b101c2f47539f99d256d7d", "sha256": "6f7af537c6cb5a923272a09ee73effec6883f6c85037337c30a4a6dec8733356" }, "downloads": -1, "filename": "WebCore-0.5-py2.6.egg", "has_sig": false, "md5_digest": "1d016a0f68b101c2f47539f99d256d7d", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 65712, "upload_time": "2009-11-23T03:28:15", "url": "https://files.pythonhosted.org/packages/c9/59/50514767a3e4641fa929c7f7df2fb206b9987d785fac058b28f4f024c87f/WebCore-0.5-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "e97ab57ab1bd27929f64bc3ec069e756", "sha256": "cc0714ae4812a6b1685b4c19c721ccbe2fc2b365d95befb21c7e67023deba052" }, "downloads": -1, "filename": "WebCore-0.5.tar.gz", "has_sig": false, "md5_digest": "e97ab57ab1bd27929f64bc3ec069e756", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22646, "upload_time": "2009-11-23T03:28:12", "url": "https://files.pythonhosted.org/packages/35/35/6e8b9649cad90ec676f56eea8ebae5cee69c44be2f28b35a0fa68ed6779b/WebCore-0.5.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "f55148dc9f3175f405734f2bcb76b93a", "sha256": "96c8d7da27f97af79906156acfa6f8eea6a446be39a77103c9ad278a304ffcb3" }, "downloads": -1, "filename": "WebCore-0.5.1-py2.5.egg", "has_sig": false, "md5_digest": "f55148dc9f3175f405734f2bcb76b93a", "packagetype": "bdist_egg", "python_version": "2.5", "requires_python": null, "size": 65669, "upload_time": "2009-11-23T04:30:57", "url": "https://files.pythonhosted.org/packages/58/11/594279710a0365fe83f7bfa24d5e7c179da01f4f8e8884a92217284c8b8c/WebCore-0.5.1-py2.5.egg" }, { "comment_text": "", "digests": { "md5": "33b1c405a363fdf807f6ab846a1efa8c", "sha256": "5bbb1c23973da5c4700253f44c5f5d09b01a83b73ee32226e62b651f83ecc0e5" }, "downloads": -1, "filename": "WebCore-0.5.1-py2.6.egg", "has_sig": false, "md5_digest": "33b1c405a363fdf807f6ab846a1efa8c", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 65672, "upload_time": "2009-11-23T04:30:42", "url": "https://files.pythonhosted.org/packages/29/3a/1fd967141e5d2190f1596896d8952f543a3602e606a49d024cd11f7a53dc/WebCore-0.5.1-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "2800e5d7adb842e329fed485ee28a849", "sha256": "de10ffbf4c9277131b0b7975d81be35cda810efc3e383c4875494be6958da617" }, "downloads": -1, "filename": "WebCore-0.5.1.tar.gz", "has_sig": false, "md5_digest": "2800e5d7adb842e329fed485ee28a849", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22619, "upload_time": "2009-11-23T04:30:40", "url": "https://files.pythonhosted.org/packages/52/d0/b761078fe955fd7272749d69ed72a3db551d7a406e2c4ec7aa05875fc701/WebCore-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "c4aee35f90a1ba6abb593e72b4729f6e", "sha256": "3a778bc0e8472283a1972f38546590fdd71cbe24a9b2252af9166a5d91096943" }, "downloads": -1, "filename": "WebCore-0.5.2-py2.5.egg", "has_sig": false, "md5_digest": "c4aee35f90a1ba6abb593e72b4729f6e", "packagetype": "bdist_egg", "python_version": "2.5", "requires_python": null, "size": 65672, "upload_time": "2009-11-26T12:08:41", "url": "https://files.pythonhosted.org/packages/97/a5/5827236afd07aacbd5570b078ed0d699e59b5e11d38f8a4c9ef4df374374/WebCore-0.5.2-py2.5.egg" }, { "comment_text": "", "digests": { "md5": "bc62e58086453fc7e40cf5d9f73ac350", "sha256": "2c0dd06d5302153a8e1e0a415c86586991cfcc7f2d1c235727985ca1e7056bdb" }, "downloads": -1, "filename": "WebCore-0.5.2-py2.6.egg", "has_sig": false, "md5_digest": "bc62e58086453fc7e40cf5d9f73ac350", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 65675, "upload_time": "2009-11-26T12:08:33", "url": "https://files.pythonhosted.org/packages/b8/51/b5c7f4d1f4a378f722e56012c8701f08bc37b85de0c7d6d2f0ed7fd910d8/WebCore-0.5.2-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "0a05ded751a15e8740bb7ef21099d258", "sha256": "295e057c0596a14845baa111d01e359348ee96bb41f416ede242d4feb3e5f564" }, "downloads": -1, "filename": "WebCore-0.5.2.tar.gz", "has_sig": false, "md5_digest": "0a05ded751a15e8740bb7ef21099d258", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22515, "upload_time": "2009-11-26T12:08:31", "url": "https://files.pythonhosted.org/packages/4e/c6/f4f7d42db2bbaf584a2972a540781208a717d4c7b8b02bc3b7da981322d4/WebCore-0.5.2.tar.gz" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "4ee047be984feb121bcbbf1832ff3287", "sha256": "9d126c5b0204651525a6fc2bc28a75cea5e57222ed8e61b10afe091f24d155dc" }, "downloads": -1, "filename": "WebCore-0.5.3-py2.5.egg", "has_sig": false, "md5_digest": "4ee047be984feb121bcbbf1832ff3287", "packagetype": "bdist_egg", "python_version": "2.5", "requires_python": null, "size": 65640, "upload_time": "2009-12-03T09:20:09", "url": "https://files.pythonhosted.org/packages/95/79/c5835ac0e51454134174bb1fd00029e4a84c706786140eaf3a763f7d2d1a/WebCore-0.5.3-py2.5.egg" }, { "comment_text": "", "digests": { "md5": "b66e9fc09a4b4be62dc209bf7d1cc7df", "sha256": "1d76e01d7c6faca54156fd960d14a7b33536fbeb5c2bc970be6c11917517f324" }, "downloads": -1, "filename": "WebCore-0.5.3-py2.6.egg", "has_sig": false, "md5_digest": "b66e9fc09a4b4be62dc209bf7d1cc7df", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 65642, "upload_time": "2009-12-03T09:19:10", "url": "https://files.pythonhosted.org/packages/c6/7f/a5fdca4e4d98b772542bb45ccc755ebfdb1e75dd12f4ce158a5929582a91/WebCore-0.5.3-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "bbed5168b878b475c2cc83eaf3bb2faa", "sha256": "0677911caae0929a6be0b85e291e2995321bf59306700c1dc42897160d7a9ebe" }, "downloads": -1, "filename": "WebCore-0.5.3.tar.gz", "has_sig": false, "md5_digest": "bbed5168b878b475c2cc83eaf3bb2faa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22565, "upload_time": "2009-12-03T09:19:07", "url": "https://files.pythonhosted.org/packages/0e/19/d95e15b5a055721723a014ee4d15777c99397f819381c8f76ef3cfecd330/WebCore-0.5.3.tar.gz" } ], "0.5.4": [ { "comment_text": "", "digests": { "md5": "17fdade00908b3a0bb0677c0d89be496", "sha256": "73836717230962975d3d6c5bf61731ff60b211523bf71ed1e33291bf3a842413" }, "downloads": -1, "filename": "WebCore-0.5.4-py2.6.egg", "has_sig": false, "md5_digest": "17fdade00908b3a0bb0677c0d89be496", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 63762, "upload_time": "2009-12-08T11:07:49", "url": "https://files.pythonhosted.org/packages/45/e3/6db30b788ec7323ba6663e94e6b3146e0697ee1f97e19c0fda085716541b/WebCore-0.5.4-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "a87b62236f81ca348a4e1eea1c0167cc", "sha256": "a58debf41ea496ed17c191cd6bfaf8d718b157dc609a5845b8cb3779904e7cc1" }, "downloads": -1, "filename": "WebCore-0.5.4.tar.gz", "has_sig": false, "md5_digest": "a87b62236f81ca348a4e1eea1c0167cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20956, "upload_time": "2009-12-08T11:07:46", "url": "https://files.pythonhosted.org/packages/e6/fc/83571565308eebfd980d0b12282de03ee383767b3960242ffd7cc02f4e41/WebCore-0.5.4.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "e3662c535761c5a693383b84ae1e9ca2", "sha256": "2f68b760b00156039beaa439d4b88ae76111db33bff9452b3c2efdfc22b6dc25" }, "downloads": -1, "filename": "WebCore-0.6-py2.6.egg", "has_sig": false, "md5_digest": "e3662c535761c5a693383b84ae1e9ca2", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 64402, "upload_time": "2010-02-02T11:21:25", "url": "https://files.pythonhosted.org/packages/41/f3/90821924adb441b2ff1f618022c2f783454e99cbb478fe97df6dd2c78154/WebCore-0.6-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "9d80f5b93d3a91e69c1589a99eacffdd", "sha256": "6e3475c4d6620fd675573d91e19b77ec6e4250bdabc7183a96db25a257835f7f" }, "downloads": -1, "filename": "WebCore-0.6.tar.gz", "has_sig": false, "md5_digest": "9d80f5b93d3a91e69c1589a99eacffdd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21170, "upload_time": "2010-02-02T11:21:15", "url": "https://files.pythonhosted.org/packages/d8/df/8155bc42257da239e61b73069430ac8458b02c9c4bb06d6514b1c94fc38e/WebCore-0.6.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "7d4575c02fa2f884ba3b78e4dfe2f364", "sha256": "bc9a1380405db15f5ca0f71251054ad70752f4cf004275ea20d67736a6a5d88e" }, "downloads": -1, "filename": "WebCore-0.6.1-py2.6.egg", "has_sig": false, "md5_digest": "7d4575c02fa2f884ba3b78e4dfe2f364", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 64452, "upload_time": "2010-02-10T05:01:35", "url": "https://files.pythonhosted.org/packages/dd/df/2eb1bc6bf4222d613e40b1c07d8533be682180d8ea83cd55d696a5a568d3/WebCore-0.6.1-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "c2e3ba2092acfe0d02c3782b8868377b", "sha256": "97e1363638a3f5ecfea09afc007487dc242a25f822548737c37a63782ff3c256" }, "downloads": -1, "filename": "WebCore-0.6.1.tar.gz", "has_sig": false, "md5_digest": "c2e3ba2092acfe0d02c3782b8868377b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21168, "upload_time": "2010-02-10T05:01:32", "url": "https://files.pythonhosted.org/packages/d9/52/819a95bfec288c6840277fe267d39f0aaa0319ef9d93f8bd7611e2a48607/WebCore-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "8f68403ba514b8d8d82e28bf4c8ec03c", "sha256": "b24ca58b3a39a4cabb59f1d470ee8cd74878de5682563b755ca5a4b94f7762b3" }, "downloads": -1, "filename": "WebCore-0.6.2-py2.6.egg", "has_sig": false, "md5_digest": "8f68403ba514b8d8d82e28bf4c8ec03c", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 65877, "upload_time": "2010-02-16T10:31:42", "url": "https://files.pythonhosted.org/packages/09/e2/bc0b9382bcbc8cc5d0b96139c7697fc992e75cfe29a25ea80c4d3c4d895d/WebCore-0.6.2-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "bf1f227e45cc0fea16061bb4924ae08e", "sha256": "01b4eb7ba7513b7e985867efaf52693c6c8a1b560f92ba2be257bfbf6ee4f6e3" }, "downloads": -1, "filename": "WebCore-0.6.2.tar.gz", "has_sig": false, "md5_digest": "bf1f227e45cc0fea16061bb4924ae08e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21606, "upload_time": "2010-02-16T10:31:40", "url": "https://files.pythonhosted.org/packages/32/6a/d59eeb0e52438f0d27a54cea91e3e178975bbaf53d74fedfb455ba7ab63b/WebCore-0.6.2.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "901ab208458e4d105a1b140ecd2ffb87", "sha256": "8477693eaf33d0c471991abbf0e5d9e18c8659c6df3e2abbd15698ff94be17cf" }, "downloads": -1, "filename": "WebCore-0.9.0-py2.6.egg", "has_sig": false, "md5_digest": "901ab208458e4d105a1b140ecd2ffb87", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 81797, "upload_time": "2010-03-02T20:49:54", "url": "https://files.pythonhosted.org/packages/33/e3/5e025a57e80fdebbcba61949e4eb957da9d2d1a51b49954b46f4e918e1de/WebCore-0.9.0-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "d55b5f368b69a8ed3ab8831ce7d16e0a", "sha256": "51154770946cb3d34272a285887bfb9848006f7c42aaf4d01611698a4e4e0c52" }, "downloads": -1, "filename": "WebCore-0.9.0.tar.gz", "has_sig": false, "md5_digest": "d55b5f368b69a8ed3ab8831ce7d16e0a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22189, "upload_time": "2010-03-02T20:49:51", "url": "https://files.pythonhosted.org/packages/42/38/f6797c9ff5d3abb147ddc2cd0253e6972e181967041db999a8bee659d2b7/WebCore-0.9.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "60fc50234a3d934495ebd2f3de1de2fa", "sha256": "41be2af0331b6675576ef29a8b731f0bcaf0c0cb5905e9bc7bfc3dcc2230afb2" }, "downloads": -1, "filename": "WebCore-1.0.0-py2.7.egg", "has_sig": false, "md5_digest": "60fc50234a3d934495ebd2f3de1de2fa", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 89027, "upload_time": "2010-08-25T03:19:21", "url": "https://files.pythonhosted.org/packages/97/0b/6b7dd687a71b1589b79138ec7f9ee5c1860fb727f40c1445652dfc72e8dd/WebCore-1.0.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "55b1de73e2e8a58b57b3c913a782c9ac", "sha256": "da19f21c412685f35b81d4a9be47d999498131bc45847ef7d3596f78b543c0e1" }, "downloads": -1, "filename": "WebCore-1.0.0.tar.gz", "has_sig": false, "md5_digest": "55b1de73e2e8a58b57b3c913a782c9ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22937, "upload_time": "2010-08-25T03:19:18", "url": "https://files.pythonhosted.org/packages/0b/56/2c89e01e1aa973d8e629a37ecb3c3c4583b587529bd2a249f6bda8ad4680/WebCore-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "6e329b87e460d66985dcd65e7311a535", "sha256": "df77e1edb45f2259fdf07b72cf8959607f59e1558c6616e945e7eba08e5c7287" }, "downloads": -1, "filename": "WebCore-1.0.1-py2.6.egg", "has_sig": false, "md5_digest": "6e329b87e460d66985dcd65e7311a535", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 89760, "upload_time": "2010-12-14T08:37:58", "url": "https://files.pythonhosted.org/packages/2a/47/6496a1ba86b4a5d1de21bd5c4375bfc397c60d90305f1cc6ffdecf878c5f/WebCore-1.0.1-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "77557758b202d7483b14ca74aa2f98ce", "sha256": "f8d73f4177f429395e34ee9c9dd6963c81c18f616f9f4519a1e8fe9e8bb5143d" }, "downloads": -1, "filename": "WebCore-1.0.1-py2.7.egg", "has_sig": false, "md5_digest": "77557758b202d7483b14ca74aa2f98ce", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 89336, "upload_time": "2010-12-14T08:36:43", "url": "https://files.pythonhosted.org/packages/a7/69/d15d30b6b274f079e83dc783f6009767baf2c4253f61a52821e33c17ea04/WebCore-1.0.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "0eb68159b70b95d1457e102b89dab36c", "sha256": "6be183b120c73b3077aa8c3d9129d5a5437dd4e201bb0a1cdff8c09e9b75a30a" }, "downloads": -1, "filename": "WebCore-1.0.1.tar.gz", "has_sig": false, "md5_digest": "0eb68159b70b95d1457e102b89dab36c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23069, "upload_time": "2010-12-14T08:36:41", "url": "https://files.pythonhosted.org/packages/0b/d2/93939215dd8a6a17ac4d4cc313165aa3dc5afd5f8eef475ece3dfd763f19/WebCore-1.0.1.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "5fb5d94dd61cd80cd931eb2c16a37342", "sha256": "5c27f36d4c2263cedb0d44b11cba2d4d2c95c327d71b8542ca11019301674b2a" }, "downloads": -1, "filename": "WebCore-1.1.0-py2.6.egg", "has_sig": false, "md5_digest": "5fb5d94dd61cd80cd931eb2c16a37342", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 88030, "upload_time": "2011-12-21T15:56:47", "url": "https://files.pythonhosted.org/packages/9a/72/ed03772959748ac97b929591e9eb2efae5fc8f934fa4deb57834007b3fc5/WebCore-1.1.0-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "2f3347afd6fb01547743ba6dff5f6efa", "sha256": "4883c7cfa59f43c6ad2a5ffe042989d13d739577bef26e3ec41361aefb5922fb" }, "downloads": -1, "filename": "WebCore-1.1.0-py2.7.egg", "has_sig": false, "md5_digest": "2f3347afd6fb01547743ba6dff5f6efa", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 87794, "upload_time": "2011-12-21T15:56:23", "url": "https://files.pythonhosted.org/packages/0b/ca/e5bd3946f97e63bba315b793fe87a4b8276691c798797900a9234765e0dc/WebCore-1.1.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "3a62a37f09c64358899b11a221630310", "sha256": "688dc63c73af63f795860bfb30a3c748089dd89f83bbf333c44836ae9f1ccd18" }, "downloads": -1, "filename": "WebCore-1.1.0.tar.gz", "has_sig": false, "md5_digest": "3a62a37f09c64358899b11a221630310", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25727, "upload_time": "2011-12-21T15:56:22", "url": "https://files.pythonhosted.org/packages/c3/eb/2afc63125a2d631728b3810c85915adcf7fa1eeffd8730eb0d50af6707e6/WebCore-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "6c146fa2e64e2d3fcf709e4bcb8f4fdf", "sha256": "edc5f704bec6bab332521904e48a5d58eb2a3cdbf6a63a50ab15ce57f5783bc9" }, "downloads": -1, "filename": "WebCore-1.1.1-py2.6.egg", "has_sig": false, "md5_digest": "6c146fa2e64e2d3fcf709e4bcb8f4fdf", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 88953, "upload_time": "2012-07-08T23:19:46", "url": "https://files.pythonhosted.org/packages/84/ae/71ea7c0c81297ba27ec6a3ea55e8055c27d6abff3875dfb990f0cdc854b5/WebCore-1.1.1-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "84e738eafb309597b31ef6750d3d3cb6", "sha256": "1ba09ad5779cbfdac2e7564ac0719e87901921547b87070224f3caa07d901959" }, "downloads": -1, "filename": "WebCore-1.1.1-py2.7.egg", "has_sig": false, "md5_digest": "84e738eafb309597b31ef6750d3d3cb6", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 88751, "upload_time": "2012-07-08T23:19:04", "url": "https://files.pythonhosted.org/packages/8e/4d/06c70594dd2d124f16a8f581c168ff3beed5deaef705887b6aa27c613c86/WebCore-1.1.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "9907329391ac552ae5542f258e8fcb0d", "sha256": "9d1c4fb5b782ee58904b189ea3589df188c130c7f9e42b0e41e3dea6a7cfcf2c" }, "downloads": -1, "filename": "WebCore-1.1.1.tar.gz", "has_sig": false, "md5_digest": "9907329391ac552ae5542f258e8fcb0d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25839, "upload_time": "2012-07-08T23:19:02", "url": "https://files.pythonhosted.org/packages/95/e2/b948d308138e047c345f3814f71710e2836fc9733fc81dd00f5af84d39cb/WebCore-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "3ff3ee983feea12e020e8ca2cf7a9850", "sha256": "337e017c2721a18f5ed308488da041d0e488d957c1d7184c713c9fac828ab8c3" }, "downloads": -1, "filename": "WebCore-1.1.2.tar.gz", "has_sig": false, "md5_digest": "3ff3ee983feea12e020e8ca2cf7a9850", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25651, "upload_time": "2012-10-11T22:03:39", "url": "https://files.pythonhosted.org/packages/13/c9/16643e72de39b066cecb1a4f3f3a3a3588211301009920891fcb6cf49756/WebCore-1.1.2.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "7808a6ea8975f8af4d06a7d9c9ff113d", "sha256": "9e026372da5170e8d3ab890cd6ea7cd61797ce4dece5e81f76c90f1ba37fc54e" }, "downloads": -1, "filename": "WebCore-2.0.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "7808a6ea8975f8af4d06a7d9c9ff113d", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 43022, "upload_time": "2016-04-17T08:54:52", "url": "https://files.pythonhosted.org/packages/f8/cd/a5a125e173917b6aad7f0ba8d5645087720a02d0b9f526464c9c8a50078e/WebCore-2.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a1c420220a0f3979b188111aded6de1e", "sha256": "4afa33f9e925e97d79e81fa22bf520f88d975fe9b7cec6bdec0d50110231f3df" }, "downloads": -1, "filename": "WebCore-2.0.0.tar.gz", "has_sig": true, "md5_digest": "a1c420220a0f3979b188111aded6de1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36193, "upload_time": "2016-04-17T08:54:42", "url": "https://files.pythonhosted.org/packages/13/1a/d46710086904fa545f9736c1adb7b31a97acc2a23740c516c86397a6e65a/WebCore-2.0.0.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "94084a6913796ccc524a584ffdfe1e5e", "sha256": "3ff4d81193f457ae136c5fb24172cbd135991d50f3f69478a942bc0557a4cc27" }, "downloads": -1, "filename": "WebCore-2.0.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "94084a6913796ccc524a584ffdfe1e5e", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 51123, "upload_time": "2016-04-25T18:09:43", "url": "https://files.pythonhosted.org/packages/29/c0/4582498293cc078cd807da3651c7d5f0ed81a91c86e99240b420b0e75a82/WebCore-2.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3a42c2c2a2bbe9d38b688ad4c1c6ef5c", "sha256": "b5ade2ad64956a11378e0b0e8c65a7076564f28fec92f551ecece7f895267f8e" }, "downloads": -1, "filename": "WebCore-2.0.2.tar.gz", "has_sig": true, "md5_digest": "3a42c2c2a2bbe9d38b688ad4c1c6ef5c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67005, "upload_time": "2016-04-25T18:09:07", "url": "https://files.pythonhosted.org/packages/d9/e3/d7f0f1e37c758bc442f2791e65b1c1ac3b556d48fe42ff5c4629b63e219d/WebCore-2.0.2.tar.gz" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "4d1f32c6478cc090de9022c346bd100a", "sha256": "e89510248d4c5ca4829656d27a0fb282d7511be70b5e555dae62b6df752153ab" }, "downloads": -1, "filename": "WebCore-2.0.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "4d1f32c6478cc090de9022c346bd100a", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 113186, "upload_time": "2016-09-25T06:42:07", "url": "https://files.pythonhosted.org/packages/7f/fb/bb35a14b76c9b1a0b94cbcbd313c3d80c17b49bcf2eae800f6a0ef523c62/WebCore-2.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5d48dd0f10d2c80b7fe8e6962b66f85b", "sha256": "c7c4249b1b922b81da8f52a1ffa9d581a0ad6a65fc5156509ded7c71a3d4e84b" }, "downloads": -1, "filename": "WebCore-2.0.3.tar.gz", "has_sig": true, "md5_digest": "5d48dd0f10d2c80b7fe8e6962b66f85b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 74855, "upload_time": "2016-09-25T06:42:04", "url": "https://files.pythonhosted.org/packages/d2/67/4334e61a2d002db9a10917879438d53e35e9612492be3e8bfbd9dd88ad57/WebCore-2.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4d1f32c6478cc090de9022c346bd100a", "sha256": "e89510248d4c5ca4829656d27a0fb282d7511be70b5e555dae62b6df752153ab" }, "downloads": -1, "filename": "WebCore-2.0.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "4d1f32c6478cc090de9022c346bd100a", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 113186, "upload_time": "2016-09-25T06:42:07", "url": "https://files.pythonhosted.org/packages/7f/fb/bb35a14b76c9b1a0b94cbcbd313c3d80c17b49bcf2eae800f6a0ef523c62/WebCore-2.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5d48dd0f10d2c80b7fe8e6962b66f85b", "sha256": "c7c4249b1b922b81da8f52a1ffa9d581a0ad6a65fc5156509ded7c71a3d4e84b" }, "downloads": -1, "filename": "WebCore-2.0.3.tar.gz", "has_sig": true, "md5_digest": "5d48dd0f10d2c80b7fe8e6962b66f85b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 74855, "upload_time": "2016-09-25T06:42:04", "url": "https://files.pythonhosted.org/packages/d2/67/4334e61a2d002db9a10917879438d53e35e9612492be3e8bfbd9dd88ad57/WebCore-2.0.3.tar.gz" } ] }