{ "info": { "author": "Zakir Durumeric", "author_email": "zakird@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Operating System :: Microsoft :: Windows", "Topic :: System :: Systems Administration :: Authentication/Directory :: LDAP" ], "description": "Introduction\n============\n\npyad is a Python library designed to provide a simple, Pythonic interface to Active Directory through ADSI on the Windows platform. Complete documentation can be found at http://zakird.github.io/pyad/. Code is maintained at https://github.com/zakird/pyad. The library can be downloaded from PyPI at https://pypi.python.org/pypi/pyad.\n\n\nRequirements\n============\n\npyad requires pywin32, available at http://sourceforge.net/projects/pywin32.\n\nAlternatively,\n::\n pip install pypiwin32\n\nworks as well.\n\n\nConnecting to Active Directory\n==============================\n\nBy default, pyad will connect to the Active Directory domain to which the machine is joined (rootDSE)::\n\n from pyad import aduser\n user = aduser.ADUser.from_cn(\"myuser\")\n\n\nHowever, it is possible to connect to a specific domain controller or to use alternate credentials, by calling pyad.set_defaults() or by passing in connection information in the options dictionary for each object you connect to. Authentication is performed over a secured connection, pyad will not pass credentials over clear text. The following options can be set in the `set_defaults` call: `ldap_server`, `gc_server`, `ldap_port`, `gc_port`, `username`, `password`, and `ssl` (True/False). For example, the following code will set the default connection parameters for all objects accessed through pyad::\n\n from pyad import *\n pyad.set_defaults(ldap_server=\"dc1.domain.com\", username=\"service_account\", password=\"mypassword\")\n user = pyad.aduser.ADUser.from_cn(\"myuser\")\n\n\nIt is also possible to pass in options when connecting to a specific object. This will not set the library defaults, but these settings will be used from any objects you derive from it (e.g. if you request group membership of a user) Example::\n\n from pyad import aduser\n user = aduser.ADUser.from_cn(\"myuser\", options=dict(ldap_server=\"dc1.domain.com\"))\n\n\nBasic Object Manipulation\n=========================\n\nThere are first order Python classes for different types of objects in Active Directory. For example, ADUser represents user objects and ADGroup represents groups. All objects subclass ADObject. Most methods are defined in ADObject, but subclasses generally provide additional helper methods (e.g. ADUser has `set_password` and ADGroup has `add_member`).\n\nIt is possible to connect to an object by distinguished name, CN, UPN, and GUID if you already know the type of object. Examples::\n\n from pyad import aduser\n user1 = aduser.ADUser.from_dn(\"cn=myuser, ou=staff, dc=domain, dc=com\")\n user2 = aduser.ADUser.from_cn(\"myuser\")\n user3 = aduser.ADUser.from_guid(\"XXX-XXX-XXX\")\n\n\nIt is also possible to use the pyad factory with an arbitrary Active Directory object and to receive an appropriately classed Python object::\n\n from pyad import pyad\n user = pyad.from_cn(\"user1\")\n computer = pyad.from_dn(\"cn=WS1,ou=Workstations,dc=domain,dc=com\")\n group = pyad.from_guid(\"XXX-XXX-XXX\")\n\n\nUnlike the ADSI interface, pyad objects are intended to interact with one another. Instead of adding the DN of a user to the members attribute of a group to add the user, you instead add the user object to the group. For instance::\n\n user1 = ADUser.from_cn(\"myuser1\")\n user2 = ADUser.from_cn(\"myuser2\")\n group = ADGroup.from_dn(\"staff\")\n\n group.add_members([user1, user2])\n\n for user in group.get_members():\n print user1.description\n\n\nHowever, it is still possible to directly manipulate any attribute outside of the helper methods that pyad provides::\n\n user1 = ADUser.from_cn(\"myuser1\")\n user.set_attribute(\"description\", \"new description\")\n user.append_to_attribute(\"member\", \"cn=myuser1, ou=staff, dc=domain, dc=com\")\n\n\nMore details on how to manipulate the objects you find to is found in the next section.\n\n\nCreating, Moving, and Deleting Objects\n======================================\n\nThere are two methodologies for creating and deleting objects. In both cases, you must first bind to the parent container. When creating a new object, several attributes are required, but other additional attributes can be specified with the `optional_attributes` parameter. Example 1::\n\n ou = ADContainer.from_dn(\"ou=workstations, dc=domain, dc=com\")\n\n # create a new group without any optional attributes\n new_computer = ADComputer.create(\"WS-489\", ou)\n\n # create a new group with additional attributes\n new_group = ADGroup.create(\"IT-STAFF\", security_enabled=True, scope='UNIVERSAL',\n optional_attributes = {\"description\":\"all IT staff in our company\"})\n\nIt is also possible to create new objects from the parent container::\n\n ou = ADContainer.from_dn(\"ou=workstations, dc=domain, dc=com\")\n computer = ou.create_computer(\"WS-490\")\n\nOnce objects are created, they can be moved::\n\n computer = ADComputer.from_cn(\"WS-500\")\n computer.move(ADContainer.from_dn(\"ou=workstations, ou=HR, dc=company, dc=com\"))\n\nor renamed::\n\n computer = ADComputer.from_cn(\"WS-500\")\n computer.rename(\"WS-501\")\n\nObjects can be removed by calling delete()::\n\n ADComputer.from_cn(\"WS-500\").delete()\n\n\nSearching Active Directory\n==========================\n\nAs shown above, objects can be directly connected to via CN, DN, GUID, or UPN. However, objects can also be searched for through the ADQuery interface (and in the background, this is how objects are actually found when you connect by CN). It is important to note that the ADQuery interface will not provide you with pyad objects, but instead with only the attributes for which you queried, for performance reasons. Example::\n\n import pyad.adquery\n q = pyad.adquery.ADQuery()\n\n q.execute_query(\n attributes = [\"distinguishedName\", \"description\"],\n where_clause = \"objectClass = '*'\",\n base_dn = \"OU=users, DC=domain, DC=com\"\n )\n\n for row in q.get_results():\n print row[\"distinguishedName\"]\n\nLicense\n=======\n\npyad is licensed under the Apache License, Version 2.0 (the \"License\"). You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/zakird/pyad/", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://zakird.com/pyad", "keywords": "python microsoft windows active directory AD adsi", "license": "Apache License, Version 2.0", "maintainer": "", "maintainer_email": "", "name": "pyad", "package_url": "https://pypi.org/project/pyad/", "platform": "", "project_url": "https://pypi.org/project/pyad/", "project_urls": { "Download": "https://github.com/zakird/pyad/", "Homepage": "https://zakird.com/pyad" }, "release_url": "https://pypi.org/project/pyad/0.6.0/", "requires_dist": null, "requires_python": "", "summary": "An Object-Oriented Active Directory management framework built on ADSI", "version": "0.6.0" }, "last_serial": 5100855, "releases": { "0.4.10": [ { "comment_text": "", "digests": { "md5": "9fec55f71f788dd94c05e8ee5b692bac", "sha256": "915eef56ca9ba617dfec6e984f23daebe0d4f906b29c22ba78d83e50068c0512" }, "downloads": -1, "filename": "pyad-0.4.10-py2.7.egg", "has_sig": false, "md5_digest": "9fec55f71f788dd94c05e8ee5b692bac", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 45116, "upload_time": "2012-02-20T06:31:43", "url": "https://files.pythonhosted.org/packages/1c/b4/a157cc811fffc22f011d3c616558652d750bf71c5fd5b4c7edad81ca23f6/pyad-0.4.10-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "92f3947c7785b2048f01ac3cd2ed0d13", "sha256": "59cac30b3d37abc59074389a0241d0e0be47ec62a5f721b04deae71c31255113" }, "downloads": -1, "filename": "pyad-0.4.10.tar.gz", "has_sig": false, "md5_digest": "92f3947c7785b2048f01ac3cd2ed0d13", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17629, "upload_time": "2012-02-20T06:32:35", "url": "https://files.pythonhosted.org/packages/d6/e0/51a81869aa8378f40b006429ccd8c4ee30e263ae70e61f5a8cf733e5f0fc/pyad-0.4.10.tar.gz" } ], "0.4.12": [ { "comment_text": "", "digests": { "md5": "f2b1cdb3b473fb3300b9415b5d9e4760", "sha256": "c07bc181ba2fadc9c41f333540344985d3640de547117a7f0c62b080fd80f059" }, "downloads": -1, "filename": "pyad-0.4.12-py2.6.egg", "has_sig": false, "md5_digest": "f2b1cdb3b473fb3300b9415b5d9e4760", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 45169, "upload_time": "2012-05-25T09:44:07", "url": "https://files.pythonhosted.org/packages/5b/06/83db5f594d026d7fb3fcb758be10f8720d6217a0cd116574536ac121673a/pyad-0.4.12-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "a2692e30073df49d52b88c008e6348de", "sha256": "91bf1bcd277150580049b6b0e40ac0916f3370af7abc61c48b1d73f5ca6effd9" }, "downloads": -1, "filename": "pyad-0.4.12-py2.7.egg", "has_sig": false, "md5_digest": "a2692e30073df49d52b88c008e6348de", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 45079, "upload_time": "2012-05-25T09:43:45", "url": "https://files.pythonhosted.org/packages/ab/52/6c7d00469c1c5790c09f52ae66dd53a161c934b8f4e42a8b2c777c09aa71/pyad-0.4.12-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "deed29342a74830ea89f0b7f59d2ea7a", "sha256": "53a8fd866cdb1e5604e2a7bd43dd7616499171f751885a303939eac79cbfb8b9" }, "downloads": -1, "filename": "pyad-0.4.12.tar.gz", "has_sig": false, "md5_digest": "deed29342a74830ea89f0b7f59d2ea7a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17627, "upload_time": "2012-05-25T09:43:04", "url": "https://files.pythonhosted.org/packages/ac/50/ab2ee05db1cef7496914d743c7e0536f01518a5cbed1e918dabfb46482e6/pyad-0.4.12.tar.gz" } ], "0.4.13": [ { "comment_text": "", "digests": { "md5": "478e9ba3c7074feb5d5deb353ce885ed", "sha256": "ae23a15fc3a98ef70a03e9964ff19ae269b8c8ac9f974c567ae19bafcb9ce794" }, "downloads": -1, "filename": "pyad-0.4.13-py2.6.egg", "has_sig": false, "md5_digest": "478e9ba3c7074feb5d5deb353ce885ed", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 37757, "upload_time": "2012-05-25T18:08:57", "url": "https://files.pythonhosted.org/packages/3b/62/bff96bc6655b1965eb0113bee806f0ddb9c3d5099439d16dce311416162b/pyad-0.4.13-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "4353dde8f52aed46abd07ce52fbfb4a3", "sha256": "42f054f75e6d558fe01ea88aa4e5d870e7a187247706dce9ca2c250d10eb9b7c" }, "downloads": -1, "filename": "pyad-0.4.13-py2.7.egg", "has_sig": false, "md5_digest": "4353dde8f52aed46abd07ce52fbfb4a3", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 37698, "upload_time": "2012-05-25T18:08:52", "url": "https://files.pythonhosted.org/packages/96/d9/f0354221edc88811be6a5ce91893ba377130e164a61e2eb32c17fb7b0a24/pyad-0.4.13-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "336f39c707bed74a1037f3b417880731", "sha256": "b65b85999bb1bddb5245a83f9e63209aea06c2368e948f36765992e24b19b280" }, "downloads": -1, "filename": "pyad-0.4.13.tar.gz", "has_sig": false, "md5_digest": "336f39c707bed74a1037f3b417880731", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17640, "upload_time": "2012-05-25T18:08:42", "url": "https://files.pythonhosted.org/packages/f7/56/0fbeccb266e844de91d076ee5dae3f0865b28a786b490c3ae31b0e5ae6c0/pyad-0.4.13.tar.gz" } ], "0.4.14": [ { "comment_text": "", "digests": { "md5": "6db0a18470aaaf7f64b4b0948c99e9be", "sha256": "c8e8916b57a2735a56767123d88086cedb77177cc6d9862b3a285a2ed24398d3" }, "downloads": -1, "filename": "pyad-0.4.14-py2.6.egg", "has_sig": false, "md5_digest": "6db0a18470aaaf7f64b4b0948c99e9be", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 37770, "upload_time": "2012-05-25T18:17:32", "url": "https://files.pythonhosted.org/packages/6f/d6/d250a786f2c4899cfd47b674824b4289ba8354b981b9fbb54233cd6707b7/pyad-0.4.14-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "d5cee5b39db14ae8288e261e50895a39", "sha256": "11199a47419f7e8201a0391d9f7afffc64e44deba2ee82ca0a3ace885fba231e" }, "downloads": -1, "filename": "pyad-0.4.14-py2.7.egg", "has_sig": false, "md5_digest": "d5cee5b39db14ae8288e261e50895a39", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 37711, "upload_time": "2012-05-25T18:17:37", "url": "https://files.pythonhosted.org/packages/f6/6c/e46fb41f8cec62dbb2098a0ec629a593db33aeaef92c526667638997b7e3/pyad-0.4.14-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "ed5e2f155dcbd6cfb8c5a2f50fbc1f83", "sha256": "c4cd49aa5022f9f82c4715e36757a1dd38573451c067314abe626cd64dbe7453" }, "downloads": -1, "filename": "pyad-0.4.14.tar.gz", "has_sig": false, "md5_digest": "ed5e2f155dcbd6cfb8c5a2f50fbc1f83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17651, "upload_time": "2012-05-25T18:17:26", "url": "https://files.pythonhosted.org/packages/b8/51/7a10bd9238628743ac144897b0cc5f967d864e8d066e9ca05f078487a38a/pyad-0.4.14.tar.gz" } ], "0.4.15": [ { "comment_text": "built for Darwin-11.3.0", "digests": { "md5": "630b614972b2715a6ec2a7a389aa0f78", "sha256": "d9a5402bfe0f4dd173bf9f2371f4f506cbbe111635e8fc8bfbd08b7e7549e8bf" }, "downloads": -1, "filename": "pyad-0.4.15.macosx-10.7-intel.tar.gz", "has_sig": false, "md5_digest": "630b614972b2715a6ec2a7a389aa0f78", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 32700, "upload_time": "2012-05-28T08:28:45", "url": "https://files.pythonhosted.org/packages/fe/5f/c4539b0353968f6d6565063d8b6287759a152fe78f58b3fe50f659eea37c/pyad-0.4.15.macosx-10.7-intel.tar.gz" }, { "comment_text": "", "digests": { "md5": "9466b5b1780664242718727c8cf8150b", "sha256": "2e924725609d68ee58138bad6384c660227cd87ec98a8624a3ec37e5c7810d9b" }, "downloads": -1, "filename": "pyad-0.4.15-py2.6.egg", "has_sig": false, "md5_digest": "9466b5b1780664242718727c8cf8150b", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 45217, "upload_time": "2012-05-28T08:29:31", "url": "https://files.pythonhosted.org/packages/35/2c/a0fc1a6dfc5300d656809dcf165ad6642585c9b962ba66c3dba8e3734aab/pyad-0.4.15-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "bef87ce6ccec5ac8d0645e3d0bba6925", "sha256": "520171ee3cc794c6a3504f22fbbafe0c72066facd56796847f857e6ce775203e" }, "downloads": -1, "filename": "pyad-0.4.15-py2.7.egg", "has_sig": false, "md5_digest": "bef87ce6ccec5ac8d0645e3d0bba6925", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 45126, "upload_time": "2012-05-28T08:29:24", "url": "https://files.pythonhosted.org/packages/9c/7d/89bc53486d1f1b34f9217b6defa02a9dc748cd8801e1844a2b0b94193b47/pyad-0.4.15-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "7a0f55b239af11f4d7f78017dee8e964", "sha256": "0236d3fda63e94585112fbc5a6e11a8bec785b6ae90578e5fae5872d11be194b" }, "downloads": -1, "filename": "pyad-0.4.15.tar.gz", "has_sig": false, "md5_digest": "7a0f55b239af11f4d7f78017dee8e964", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17646, "upload_time": "2012-05-28T08:28:31", "url": "https://files.pythonhosted.org/packages/92/0e/c96bd7214f4329a46897c98962bb3897c42aa0bf52a4d5dcaf71e4e40872/pyad-0.4.15.tar.gz" } ], "0.4.16": [ { "comment_text": "", "digests": { "md5": "8d884f29eb4a35bb0dd19593f71afa42", "sha256": "c13da7b8a1e5f88d8e046417171e317260f6bbc9e5b44474b17cab7b3d971f97" }, "downloads": -1, "filename": "pyad-0.4.16-py2.6.egg", "has_sig": false, "md5_digest": "8d884f29eb4a35bb0dd19593f71afa42", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 45231, "upload_time": "2012-05-29T04:26:13", "url": "https://files.pythonhosted.org/packages/25/1e/232eea78958b87213ca729c166b049b312b180d96dd89d4fec1ebb61d9f0/pyad-0.4.16-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "4620466edc058e0a8cd7cd66697d55a4", "sha256": "f7702fa6cfdbb58b12393a3c6a73575e9f4dc289fd39cbbe8ec78b1ffdd8419e" }, "downloads": -1, "filename": "pyad-0.4.16-py2.7.egg", "has_sig": false, "md5_digest": "4620466edc058e0a8cd7cd66697d55a4", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 45139, "upload_time": "2012-05-29T04:26:04", "url": "https://files.pythonhosted.org/packages/84/8e/b6f8141d8fdc9f448dda049002cb5774b66c8717ea9ec065145ae67275df/pyad-0.4.16-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "7e4638df95ce1e1e65f23d56ceea28e7", "sha256": "cfcd111a0612ca6aa892454c1a6b98897cf46749f8c428ddf05f4443e7a4020c" }, "downloads": -1, "filename": "pyad-0.4.16.tar.gz", "has_sig": false, "md5_digest": "7e4638df95ce1e1e65f23d56ceea28e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17635, "upload_time": "2012-05-29T04:25:57", "url": "https://files.pythonhosted.org/packages/a4/ec/ec740e853487fa408ba7a569aa615d983e957aacd57009a6e995763574c1/pyad-0.4.16.tar.gz" } ], "0.4.17": [ { "comment_text": "", "digests": { "md5": "537c9ba6696bed731406092c6eabe9c1", "sha256": "075733f669bfd0ddedb0bd7018ec573bdfa521a45c0aee3aa13fbaf350cd47b8" }, "downloads": -1, "filename": "pyad-0.4.17-py2.6.egg", "has_sig": false, "md5_digest": "537c9ba6696bed731406092c6eabe9c1", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 45228, "upload_time": "2012-05-29T18:31:15", "url": "https://files.pythonhosted.org/packages/77/2a/9e39da067522b54608147d1d488108d91ac31295e098b7dc42b948e570e0/pyad-0.4.17-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "2fa3201f68798ed3735cc208cf18c6a0", "sha256": "df2219c262daa501a1d5e884652b9c6da216a467389d15dac42c4f84db397402" }, "downloads": -1, "filename": "pyad-0.4.17-py2.7.egg", "has_sig": false, "md5_digest": "2fa3201f68798ed3735cc208cf18c6a0", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 45136, "upload_time": "2012-05-29T18:31:07", "url": "https://files.pythonhosted.org/packages/26/ad/fcf927e0f3607c0083eabb6d2578119e75c27526c2cf9320589c44fae327/pyad-0.4.17-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "107bb9a1487f08cf27b81f578f466ccc", "sha256": "f9e31d4b33466f30c4a50f5721a163444362b7a88e15fb95238bdf292ac1f4b6" }, "downloads": -1, "filename": "pyad-0.4.17.tar.gz", "has_sig": false, "md5_digest": "107bb9a1487f08cf27b81f578f466ccc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17638, "upload_time": "2012-05-29T18:30:58", "url": "https://files.pythonhosted.org/packages/2a/fd/be86e180867e026b5afc492cbed259a40b4ce1c5ec1adb5202d5ccc5786f/pyad-0.4.17.tar.gz" } ], "0.4.18": [ { "comment_text": "", "digests": { "md5": "9c468ec6340e552e5f2d7e63f3563da4", "sha256": "2b58a5974a2e283813cca29fc7aee5773c98bfdaf32925f33e3eaeaf5681ae0d" }, "downloads": -1, "filename": "pyad-0.4.18-py2.6.egg", "has_sig": false, "md5_digest": "9c468ec6340e552e5f2d7e63f3563da4", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 45455, "upload_time": "2012-08-10T07:45:23", "url": "https://files.pythonhosted.org/packages/83/de/6320ce232f23b478dd0203c6aaf8ff61570352d4ac99a15e92c862e934c5/pyad-0.4.18-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "e7799ef6d9202a9a62d074a80d6845a4", "sha256": "0fb9f2bf65a5d6558947fc2090d03f8487359c7787b62b2181a525a37aba73b2" }, "downloads": -1, "filename": "pyad-0.4.18-py2.7.egg", "has_sig": false, "md5_digest": "e7799ef6d9202a9a62d074a80d6845a4", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 45363, "upload_time": "2012-08-10T07:45:05", "url": "https://files.pythonhosted.org/packages/8d/8f/aee6180e4cba803d9a846380fc96d64a2431d6c81f4efdecb0a55c856efd/pyad-0.4.18-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "6ae63ebd1e06f253b9daa1f443e5c1ac", "sha256": "8560fc7855e82720e8b9b6ea4e1041b5cb83c6f89ace9cc78c7143bbb3435fd8" }, "downloads": -1, "filename": "pyad-0.4.18.tar.gz", "has_sig": false, "md5_digest": "6ae63ebd1e06f253b9daa1f443e5c1ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17696, "upload_time": "2012-08-10T07:39:25", "url": "https://files.pythonhosted.org/packages/64/ae/dd06cef537441b4bf59e7ce5aeb4af2b8dc04c850d313f0c7e255c15d4fe/pyad-0.4.18.tar.gz" } ], "0.4.19": [ { "comment_text": "", "digests": { "md5": "e6526e7d356919d8bb289218f774740c", "sha256": "20b2b66f4357cd582b2c3d02bb2f30f15381f5a48f1b1a372a3d96b57efe6817" }, "downloads": -1, "filename": "pyad-0.4.19-py2.6.egg", "has_sig": false, "md5_digest": "e6526e7d356919d8bb289218f774740c", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 45283, "upload_time": "2012-09-18T02:04:01", "url": "https://files.pythonhosted.org/packages/29/7a/7715da750088e1e3d0d5fe5d5058f8419d9def56dfb52458a19e5fa8fc5f/pyad-0.4.19-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "4ad1c891e5e964a5b1c3d6cea5fb6e4c", "sha256": "2e455ac13b9ea2df87bf03f041a0b8f2de4ba06fef9a4a23a19cb3aaecb8a70d" }, "downloads": -1, "filename": "pyad-0.4.19-py2.7.egg", "has_sig": false, "md5_digest": "4ad1c891e5e964a5b1c3d6cea5fb6e4c", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 45194, "upload_time": "2012-09-18T02:03:23", "url": "https://files.pythonhosted.org/packages/37/1f/d1509e3cecc40dd3885e3eb39a9cc6b849743277d2d27109cfffa0185779/pyad-0.4.19-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "0e4e98a51afa574091a1a601bc2086fe", "sha256": "ce68a6e7b343735ee7b4fb0e13a7b586f6645d4fd0d4c5cdf4c319e78775db14" }, "downloads": -1, "filename": "pyad-0.4.19.tar.gz", "has_sig": false, "md5_digest": "0e4e98a51afa574091a1a601bc2086fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17579, "upload_time": "2012-09-18T02:03:22", "url": "https://files.pythonhosted.org/packages/9b/8f/33bccac0292bbd09e642f635b0ce66810ab3a6f45ac6fed95a789eebacdb/pyad-0.4.19.tar.gz" } ], "0.4.9": [ { "comment_text": "", "digests": { "md5": "6d4a66a8bbe6f6408cdfafa594d18093", "sha256": "3c4c293837ef8e3061d610a3b45ce1a74f7bc33b469d724b91d08f14f42089cd" }, "downloads": -1, "filename": "pyad-0.4.9-py2.7.egg", "has_sig": false, "md5_digest": "6d4a66a8bbe6f6408cdfafa594d18093", "packagetype": "bdist_egg", "python_version": "any", "requires_python": null, "size": 44474, "upload_time": "2011-11-03T19:48:33", "url": "https://files.pythonhosted.org/packages/e9/94/7c93e74b1b8e983b14823effba382488412eab71484adff9856eac2c5a23/pyad-0.4.9-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "56b6ade7f1eb1e60cd58d8b91317e0b3", "sha256": "4e8acdef75cdec4b8f061ee69c911c2cf2b151a3ae35b0e0ada3d402b66024bd" }, "downloads": -1, "filename": "pyad.0.4.9.tar.gz", "has_sig": false, "md5_digest": "56b6ade7f1eb1e60cd58d8b91317e0b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 253440, "upload_time": "2011-11-03T19:48:42", "url": "https://files.pythonhosted.org/packages/2a/d9/5beeab88ad803f8ed120d41260de6604d83cbe74405552a1a1e97d9cbfef/pyad.0.4.9.tar.gz" } ], "0.5.02": [ { "comment_text": "", "digests": { "md5": "5bb25709c8be9a3fd96d2b9048456d16", "sha256": "2048c51b591152ed02420e554bcd76773785a34cae64d2dcd18ae62b1ce5d0e8" }, "downloads": -1, "filename": "pyad-0.5.02-py2.6.egg", "has_sig": false, "md5_digest": "5bb25709c8be9a3fd96d2b9048456d16", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 51761, "upload_time": "2013-07-07T20:26:00", "url": "https://files.pythonhosted.org/packages/93/8c/754806dd8cbc79cde5892e1f97a0ca6fe4f7d58cac4ea709fca9498aa591/pyad-0.5.02-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "b9d4abc8a768d1883abb03a6a9269ed7", "sha256": "d8b348b46274d657182375d332a668baee5fb0ead9ba4a76f07dd82891a07e8b" }, "downloads": -1, "filename": "pyad-0.5.02-py2.7.egg", "has_sig": false, "md5_digest": "b9d4abc8a768d1883abb03a6a9269ed7", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 51693, "upload_time": "2013-07-07T20:25:16", "url": "https://files.pythonhosted.org/packages/de/c6/fdbed0ef0761e497f2a7aad2e4ffa7dbc132cf5489ff59355943c8c74826/pyad-0.5.02-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "2fce5b92fe88fbd8af5a106a6ebe4a61", "sha256": "9dcbc254925d7c1ddb19e3187ce7eeede375d8bb554b0addb71a1820c4f69913" }, "downloads": -1, "filename": "pyad-0.5.02.tar.gz", "has_sig": false, "md5_digest": "2fce5b92fe88fbd8af5a106a6ebe4a61", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22265, "upload_time": "2013-07-07T20:24:35", "url": "https://files.pythonhosted.org/packages/72/5d/56cb209ed38d52c99f39bad3bba68f39ea8a5c66b45b2ad03198e18f42ae/pyad-0.5.02.tar.gz" } ], "0.5.03": [ { "comment_text": "", "digests": { "md5": "873cc54e5a7032e7e8235cd067c69707", "sha256": "779ff89c70cd27fc3ccbd277cddd1afc0d39ad00cd41884d3f3f611f2d9bc032" }, "downloads": -1, "filename": "pyad-0.5.03-py2.6.egg", "has_sig": false, "md5_digest": "873cc54e5a7032e7e8235cd067c69707", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 51483, "upload_time": "2013-07-07T20:44:32", "url": "https://files.pythonhosted.org/packages/f4/29/5023a630ef930e26ac2e2722087f77fa57462edc337e13dd4ddd5b978f0c/pyad-0.5.03-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "68b26b5b90e582a3f72d11f7623d156f", "sha256": "90e2e58564f316e344b90a33a60fd2a047cf29059003b48ab79727831226caa7" }, "downloads": -1, "filename": "pyad-0.5.03-py2.7.egg", "has_sig": false, "md5_digest": "68b26b5b90e582a3f72d11f7623d156f", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 51416, "upload_time": "2013-07-07T20:44:43", "url": "https://files.pythonhosted.org/packages/f5/f4/c038c0b014663eaa85c6b659b3d2dcf45b013757d27fa25f6a01f0813a45/pyad-0.5.03-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "7503482c61e74cf114ac0f02edadf6c5", "sha256": "1d13693f7675d3608ac52f6f7c62c0542079c0cc9fd8504a8562d8626310bd02" }, "downloads": -1, "filename": "pyad-0.5.03.tar.gz", "has_sig": false, "md5_digest": "7503482c61e74cf114ac0f02edadf6c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19624, "upload_time": "2013-07-07T20:44:58", "url": "https://files.pythonhosted.org/packages/d5/67/43d015442df44b0b4e0aa67a7fe6d0d4b054668ffe9c7f686c710cc107f8/pyad-0.5.03.tar.gz" } ], "0.5.04": [ { "comment_text": "", "digests": { "md5": "a96282993888f80d9a54c210d6fdf030", "sha256": "dea287f33035bdb968330b54611ea03318e9063dea67cd30d458f7dc51edf36a" }, "downloads": -1, "filename": "pyad-0.5.04-py2.6.egg", "has_sig": false, "md5_digest": "a96282993888f80d9a54c210d6fdf030", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 51471, "upload_time": "2013-07-07T22:22:12", "url": "https://files.pythonhosted.org/packages/86/e2/1f1ace4d43492026fa9cccb174db48c50de78f8ce966f01378f6c437eabb/pyad-0.5.04-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "85fc703edd6a6e10c375d67790dfca4e", "sha256": "0f539bb6cb305110e0a1a36a4267d9a2f24f0576e63a64a25af4ab72db014d54" }, "downloads": -1, "filename": "pyad-0.5.04-py2.7.egg", "has_sig": false, "md5_digest": "85fc703edd6a6e10c375d67790dfca4e", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 51402, "upload_time": "2013-07-07T22:22:20", "url": "https://files.pythonhosted.org/packages/03/b4/3fb6e4438c1aa20d6e8144999ec96aba82088916904dc5758254248c76be/pyad-0.5.04-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "fd4e2a495af51cab440b10c513588091", "sha256": "9c853027bc77cbf5f03d01cdf7d3c456b268ce88c108b32e59bbcdbfc23c4c9a" }, "downloads": -1, "filename": "pyad-0.5.04.tar.gz", "has_sig": false, "md5_digest": "fd4e2a495af51cab440b10c513588091", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21940, "upload_time": "2013-07-07T22:22:37", "url": "https://files.pythonhosted.org/packages/de/b0/60593b2bcc6a802a9958c3506a2e52237b6ea39c91c9626097d3ed1e0538/pyad-0.5.04.tar.gz" } ], "0.5.05": [ { "comment_text": "", "digests": { "md5": "657ff80ad76bcb056f4080998336cc80", "sha256": "6bf2769da1e0087791e2759a785d354b01df37d915020044e3961b6746ce845b" }, "downloads": -1, "filename": "pyad-0.5.05-py2.6.egg", "has_sig": false, "md5_digest": "657ff80ad76bcb056f4080998336cc80", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 51549, "upload_time": "2013-07-18T20:25:59", "url": "https://files.pythonhosted.org/packages/7e/98/6c3425f3015eabb28382f136b57454d74d6cdd3bb70f35b4baadcb042369/pyad-0.5.05-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "f9cc23d9de367ddd822dc6838dc144dd", "sha256": "1650e8c89660957b4f62dbe30b25f11c75e2422ee5315c6dd3f2cc8a5045208a" }, "downloads": -1, "filename": "pyad-0.5.05-py2.7.egg", "has_sig": false, "md5_digest": "f9cc23d9de367ddd822dc6838dc144dd", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 51483, "upload_time": "2013-07-18T20:25:41", "url": "https://files.pythonhosted.org/packages/c3/78/d9def877bc8ab8b0131eff677eb716ab3d525bf6f69bf14cf19dd7534c62/pyad-0.5.05-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "3866673c6cd493e6d1fc0d7230e31d6f", "sha256": "77bff6b6ece16c4ca7fb1b0de4320982c2252abbf77d77bff60144b5af1fa32d" }, "downloads": -1, "filename": "pyad-0.5.05.tar.gz", "has_sig": false, "md5_digest": "3866673c6cd493e6d1fc0d7230e31d6f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22048, "upload_time": "2013-07-18T20:26:17", "url": "https://files.pythonhosted.org/packages/0c/84/65fbc8fb2c4918b263a5671749182ac327de2fd5cc8eea82abdd52f942b9/pyad-0.5.05.tar.gz" } ], "0.5.06": [ { "comment_text": "", "digests": { "md5": "bf11cd9dafdf80fcbb20eb2738ae300b", "sha256": "e4cc5468c8239e0f1f44804a13ac3ddbbd36ab7cad7ac959be382565334236fa" }, "downloads": -1, "filename": "pyad-0.5.06-py2.6.egg", "has_sig": false, "md5_digest": "bf11cd9dafdf80fcbb20eb2738ae300b", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 43638, "upload_time": "2013-07-28T17:16:50", "url": "https://files.pythonhosted.org/packages/60/d7/ca893c442eb9e7f6cdabcc90a4a2a1afbdb14456aa3190e23e62602021b3/pyad-0.5.06-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "3ec70e984517c9c584fcfc2b7407e0ef", "sha256": "31b1c9ddbf865ab81981b56c2c0b9028e6334ebe1954faf06b57b3d4c16aac3a" }, "downloads": -1, "filename": "pyad-0.5.06-py2.7.egg", "has_sig": false, "md5_digest": "3ec70e984517c9c584fcfc2b7407e0ef", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 43590, "upload_time": "2013-07-28T17:16:53", "url": "https://files.pythonhosted.org/packages/4f/0e/48116b98849d7b4a2a46c54932197e875aab58f8f66937c5fdeeb9104a1f/pyad-0.5.06-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "50064e0012e85f3806b4295986713514", "sha256": "c5b71481417a18eba102d68ea4d8724402032bc3304370e53d21b3c21e2a4a02" }, "downloads": -1, "filename": "pyad-0.5.06.tar.gz", "has_sig": false, "md5_digest": "50064e0012e85f3806b4295986713514", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22165, "upload_time": "2013-07-28T17:16:55", "url": "https://files.pythonhosted.org/packages/30/e6/73e816259fa04a1f165ce89c4c285d9025efcd9bfd35ce28e8d902904a28/pyad-0.5.06.tar.gz" } ], "0.5.07": [ { "comment_text": "", "digests": { "md5": "1fba0a6fb55ce9f8a31e2df60fd374bf", "sha256": "6bbc8ced3bd7afac11d87834ae791f53928ee2848f2701c4bbe69bd8c3b351f7" }, "downloads": -1, "filename": "pyad-0.5.07-py2.6.egg", "has_sig": false, "md5_digest": "1fba0a6fb55ce9f8a31e2df60fd374bf", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 51868, "upload_time": "2013-07-28T17:34:45", "url": "https://files.pythonhosted.org/packages/e2/4a/5b9e2240281f7f32da477de1f51d1d8b563ba971b69f44421145dda1ce4d/pyad-0.5.07-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "6f6b5cac366008d376115e9e8ee4efaf", "sha256": "ac450c7b340bf6644aa1a58596f012885385cd1fda408311b2f330ad80e8ed9b" }, "downloads": -1, "filename": "pyad-0.5.07-py2.7.egg", "has_sig": false, "md5_digest": "6f6b5cac366008d376115e9e8ee4efaf", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 51795, "upload_time": "2013-07-28T17:34:49", "url": "https://files.pythonhosted.org/packages/42/86/6df9a284f3f4d1963b3af39a55f23e09a7148c5726adc89b7d92a4759cef/pyad-0.5.07-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "70d712a58c2ff9043acdca4853949bee", "sha256": "83d69c92ec3f845590d3149ed5420d7da52070c62c919e5979535a370865061f" }, "downloads": -1, "filename": "pyad-0.5.07.tar.gz", "has_sig": false, "md5_digest": "70d712a58c2ff9043acdca4853949bee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22161, "upload_time": "2013-07-28T17:34:52", "url": "https://files.pythonhosted.org/packages/bf/c6/ee33e45b756d0a1a93dd0a0aa196a45009db65d5dbc9901e11624c8ecbcb/pyad-0.5.07.tar.gz" } ], "0.5.08": [ { "comment_text": "", "digests": { "md5": "3e9524abaa00870d0dd4f935ab98f0f6", "sha256": "76d41f6509062bc946f06ca9c92a8b40f4f02a52ee169f2ce969c3ab8cb4e360" }, "downloads": -1, "filename": "pyad-0.5.08-py2.6.egg", "has_sig": false, "md5_digest": "3e9524abaa00870d0dd4f935ab98f0f6", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 51866, "upload_time": "2013-08-11T21:20:29", "url": "https://files.pythonhosted.org/packages/cc/94/dfdb4f4279ca80d011a5a149e29bf4d587cc453c4cad0244b787d39ee24c/pyad-0.5.08-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "e318e5cab6fe4f6b514268dc613cef02", "sha256": "3975cc2c7a33b6e96e076df0af57c879a5606b8788f2d8af17b72ef93457f180" }, "downloads": -1, "filename": "pyad-0.5.08-py2.7.egg", "has_sig": false, "md5_digest": "e318e5cab6fe4f6b514268dc613cef02", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 51789, "upload_time": "2013-08-11T21:20:09", "url": "https://files.pythonhosted.org/packages/bb/7e/1d4fe7f3d88e03f9ef4cb8ff782472505e9b97e4ef0baa0ee42635e0b2cb/pyad-0.5.08-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "df310e63180b161a4237061f5dac9d6c", "sha256": "494a2a21cdb35170e845ec3b187adf642f18ab9440ef4e8ff2fc808bb03a47b5" }, "downloads": -1, "filename": "pyad-0.5.08.tar.gz", "has_sig": false, "md5_digest": "df310e63180b161a4237061f5dac9d6c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22169, "upload_time": "2013-08-11T21:19:58", "url": "https://files.pythonhosted.org/packages/38/6c/fea1181d3dc15825b90eb461f8ab7997b50d456136ba1452999a3d2ec10c/pyad-0.5.08.tar.gz" } ], "0.5.11": [ { "comment_text": "built for Darwin-13.1.0", "digests": { "md5": "5cbc40347f79f012c1132604464236ce", "sha256": "4cab21bcd92853a9e25a1364c63166baad5038533abefac520ab3de478bc400a" }, "downloads": -1, "filename": "pyad-0.5.11.macosx-10.9-intel.tar.gz", "has_sig": false, "md5_digest": "5cbc40347f79f012c1132604464236ce", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 39012, "upload_time": "2014-07-29T02:57:03", "url": "https://files.pythonhosted.org/packages/1f/78/a977de08e9c81c5ed4c9f05240acd009403fddb4328f4ac171c91909740e/pyad-0.5.11.macosx-10.9-intel.tar.gz" }, { "comment_text": "", "digests": { "md5": "94649e943ba4b069d4967066c1dd1edb", "sha256": "214b7689f32b2117f372e39c91fd5e7ccb5b4cfc77d917a70f3ad937e670e666" }, "downloads": -1, "filename": "pyad-0.5.11.tar.gz", "has_sig": false, "md5_digest": "94649e943ba4b069d4967066c1dd1edb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22779, "upload_time": "2014-07-29T02:57:09", "url": "https://files.pythonhosted.org/packages/29/c9/923d2d964c1df8dd7aeed48b42c82ed87b3e0ea1fb55a589bda06dd173dd/pyad-0.5.11.tar.gz" } ], "0.5.14": [ { "comment_text": "", "digests": { "md5": "e22e67cac0c6b862eb43db17f5821172", "sha256": "772d595404d18c9dc56ca35a900534d731aca8385034b02fd45e64dcff8f5835" }, "downloads": -1, "filename": "pyad-0.5.14-py2.7.egg", "has_sig": false, "md5_digest": "e22e67cac0c6b862eb43db17f5821172", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 52375, "upload_time": "2014-10-30T23:24:54", "url": "https://files.pythonhosted.org/packages/50/8a/d5e59a84925e643b66b7893f737937a148325de182e845836793b6a0ad7e/pyad-0.5.14-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "713dcd4607744e9bcbaab4ec010bb714", "sha256": "dd39216802e50e586b11f88f607e47cf10d6712ab0116355fe57db833da7631b" }, "downloads": -1, "filename": "pyad-0.5.14.tar.gz", "has_sig": false, "md5_digest": "713dcd4607744e9bcbaab4ec010bb714", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22808, "upload_time": "2014-10-30T23:24:43", "url": "https://files.pythonhosted.org/packages/28/f3/251f4fcc765bca67d6a9944590696bb11fea124f0a2851b9667b7abfa3d6/pyad-0.5.14.tar.gz" } ], "0.5.16": [ { "comment_text": "", "digests": { "md5": "9f7f7d1c0422d5d95f8434201fc197e7", "sha256": "e5ae803d71fd1ed158786e3a47babaa12fe627aeffbdf8367b0bceeef3a2231a" }, "downloads": -1, "filename": "pyad-0.5.16.tar.gz", "has_sig": false, "md5_digest": "9f7f7d1c0422d5d95f8434201fc197e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19886, "upload_time": "2016-10-05T17:30:46", "url": "https://files.pythonhosted.org/packages/5f/e3/7681491403480d21fad9a15b56c69f94b24974c26c187339daa502738832/pyad-0.5.16.tar.gz" } ], "0.5.20": [ { "comment_text": "", "digests": { "md5": "afaba73053f527147ba0932eccb9b1ea", "sha256": "b747e32898b74ae2cac135b3b0ca7598c61f5bee8899870dababc9f12d8f1478" }, "downloads": -1, "filename": "pyad-0.5.20.tar.gz", "has_sig": false, "md5_digest": "afaba73053f527147ba0932eccb9b1ea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22453, "upload_time": "2018-01-22T19:12:58", "url": "https://files.pythonhosted.org/packages/37/b5/fbca3df37f3a221748f6fb93ee2b2a12df6c317634f51b3d3a747653f48b/pyad-0.5.20.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "389a4593a4fa5cfe68a3a590d629cd1f", "sha256": "99f8b491e15045ada151ebf6d6951e9dd4b5bb4add9c926c8f5a934ddbf075c8" }, "downloads": -1, "filename": "pyad-0.6.0.tar.gz", "has_sig": false, "md5_digest": "389a4593a4fa5cfe68a3a590d629cd1f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23154, "upload_time": "2019-04-04T20:38:33", "url": "https://files.pythonhosted.org/packages/10/ce/2cd47968777dcef2c6cf178a5bd628406f02157c15bf9224982fb2d18249/pyad-0.6.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "389a4593a4fa5cfe68a3a590d629cd1f", "sha256": "99f8b491e15045ada151ebf6d6951e9dd4b5bb4add9c926c8f5a934ddbf075c8" }, "downloads": -1, "filename": "pyad-0.6.0.tar.gz", "has_sig": false, "md5_digest": "389a4593a4fa5cfe68a3a590d629cd1f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23154, "upload_time": "2019-04-04T20:38:33", "url": "https://files.pythonhosted.org/packages/10/ce/2cd47968777dcef2c6cf178a5bd628406f02157c15bf9224982fb2d18249/pyad-0.6.0.tar.gz" } ] }