{ "info": { "author": "Javinator9889", "author_email": "javialonso007@hotmail.es", "bugtrack_url": null, "classifiers": [], "description": " ==================================================\r\r\n \r\r\n A tool for searching the entire web with the Google technology\r\r\n \r\r\n |PyPi| |ZIP| |GIT|\r\r\n \r\r\n Index\r\r\n -----\r\r\n \r\r\n 1. `Introduction `__\r\r\n 2. `Purpose `__\r\r\n 3. `Installation `__\r\r\n 4. `Instructions `__\r\r\n 5. `Contribute `__\r\r\n 6. `License `__\r\r\n \r\r\n 1. Introduction\r\r\n ---------------\r\r\n \r\r\n `pyGle `__ aims to be a *very powerful* tool for just **searching the entire web** by using the *Google* technology, without **any limitations** (or almost no one).\r\r\n \r\r\n Just with a *few lines* of code you will be able to:\r\r\n \r\r\n - Perform a *normal search* on Google \ud83d\udd0e\r\r\n - Look at *Google Images* for obtaining all the information you need about a pic \ud83c\udf05\r\r\n - Search *the latest news* and also **a lot of articles** on *Google News* \ud83d\udcf0\r\r\n - Filter and obtain *patents* by using *Google Patents* \ud83d\udcdd\r\r\n - Have a look at hundreds of *different products* at *Google Shops* \ud83d\uded2\r\r\n - Look for *books*, *magazines* and more at *Google Books* \ud83d\udcd8\r\r\n - Videos, videos and more videos at *Google Videos* \ud83c\udfa5\r\r\n \r\r\n As the speed is a crucial factor, I developed this library in order to be the fastest one for each possible situation.\r\r\n \r\r\n With every search, a little log is included at the end of the result with the **available stats** for the web scrapping. After some test, I noticed that using `requests `__ **slow down** the overall speed. For that reason is why you can see the lib performs all *Internet access* by using `urllib `__, which has two advantages:\r\r\n \r\r\n 1. Is included with **all Python installations**, so it is a less library to install.\r\r\n 2. The requests overall time has been reduced at almost **70%**: with *requests*, it took about **3~4 seconds**. With *urllib*, that time now becomes about **~1 second** or less.\r\r\n \r\r\n With the motivation of the said before, when performing a *research*, the lib **instantly** returns the object that you will use in the future for gathering the results. That object is also known as a **Future** (*you can read more information right here* `\ud83d\udc49 Python Concurrent Futures `__), whose functionality is the following:\r\r\n \r\r\n - You want to *do a research* at Google.\r\r\n - As explained before, it needs about **~1 second** to complete, so it is a lot of time for you to do *other things* that do not depend on the result of your search.\r\r\n - So when you ask `pyGle `__ to scrap the web with Google, it returns a **Future** object. At the first moment, it does have **nothing**, but when `pyGle `__ ends its work, the Future object will contain all the data.\r\r\n - `pyGle `__ automatically detects the *number of processors* of your system so it can speed-up all the process.\r\r\n \r\r\n 2. Purpose\r\r\n ----------\r\r\n \r\r\n Searching the web with Google *is very easy* from a web browser such as Chrome or Firefox, but sometimes we need that **information** to be available for a program that we are developing or similar. Or just we need to *transform and work with that info*.\r\r\n \r\r\n For that situation, `pyGle `__ is the real solution. By using the powerful `Python lists `__ and also `Python dictionaries `__, `pyGle `__ will give you all what you need. Let me exemplify you with a simple search of the term *\"test\"*:\r\r\n \r\r\n 1. Here is the simplicity of `pyGle `__ in code for achieving that:\r\r\n \r\r\n .. code:: python\r\r\n \r\r\n from pprint import pprint # Not necessary but for a beautiful print\r\r\n from pyGle import PyGle\r\r\n \r\r\n pSearch = PyGle(query=\"test\")\r\r\n ft = pSearch.doSearch() # A Future object\r\r\n pprint(ft.result())\r\r\n \r\r\n 2. And now, when the Future is done, here is the result:\r\r\n \r\r\n .. code:: python\r\r\n \r\r\n [ { 'cached_version': 'http://webcache.googleusercontent.com/search?q=cache:jNPwduM3zRgJ:www.eljueves.es/news/test-que-meme-eres_2448+&cd=1&hl=es&ct=clnk&gl=es',\r\r\n 'date': '30 may. 2018',\r\r\n 'description': '30 may. 2018 -Olv\u00eddalas Lo mejor para definir tu '\r\r\n 'personalidad son los memes. Descubre cu\u00e1l es el tuyo '\r\r\n 'con este rigurosotestavalado por la Universidad...',\r\r\n 'link': 'http://www.eljueves.es/news/test-que-meme-eres_2448',\r\r\n 'title': 'TEST: \u00bfQu\u00e9 meme eres? - El Jueves'},\r\r\n { 'cached_version': 'https://webcache.googleusercontent.com/search?q=cache:nbx31tovq8UJ:https://www.enfemenino.com/psico/tests-ssc17.html+&cd=2&hl=es&ct=clnk&gl=es',\r\r\n 'date': 'unavailable',\r\r\n 'description': 'Tests-Testde personalidad de inteligencia de '\r\r\n 'belleza... todo tipo detestque te pueden ayudar a '\r\r\n 'tomar decisiones o simplemente aclararte las ideas.',\r\r\n 'link': 'https://www.enfemenino.com/psico/tests-ssc17.html',\r\r\n 'title': 'Tests - Tests de personalidad, inteligencia, moda, belleza, '\r\r\n '| enfemenino'},\r\r\n { 'cached_version': 'https://webcache.googleusercontent.com/search?q=cache:PQFS2G6QNgAJ:https://www.muyinteresante.es/tests+&cd=3&hl=es&ct=clnk&gl=es',\r\r\n 'date': 'unavailable',\r\r\n 'description': 'TestsMuyInteresante.es. Mide tu ingenio y lo que sabes '\r\r\n 'de forma divertida y amena.',\r\r\n 'link': 'https://www.muyinteresante.es/tests',\r\r\n 'title': 'Tests inteligentes y curiosos en Muy Interesante Espa\u00f1a'},\r\r\n { 'cached_version': 'https://webcache.googleusercontent.com/search?q=cache:iQ_U_r5BkKkJ:https://www.testdevelocidad.es/+&cd=4&hl=es&ct=clnk&gl=es',\r\r\n 'date': 'unavailable',\r\r\n 'description': 'Testde velocidad para medir la calidad de tu acceso a '\r\r\n 'Internet con ADSL o fibra \u00f3ptica . Comprueba la '\r\r\n 'velocidad real de tu conexi\u00f3n.',\r\r\n 'link': 'https://www.testdevelocidad.es/',\r\r\n 'title': 'Test de velocidad : Mide tu ADSL o fibra con el SpeedTest de '\r\r\n 'www ...'},\r\r\n { 'cached_version': 'https://webcache.googleusercontent.com/search?q=cache:m6vzOP8qmEsJ:https://www.arealme.com/mental/es/+&cd=5&hl=es&ct=clnk&gl=es',\r\r\n 'date': 'unavailable',\r\r\n 'description': 'Testde edad mental. cual es tu edad mental. Estetestes '\r\r\n 'de origen japon\u00e9s y se llama . Por favor s\u00e9 sincero al '\r\r\n 'responder a las preguntas.',\r\r\n 'link': 'https://www.arealme.com/mental/es/',\r\r\n 'title': 'Test de edad mental (cual es tu edad mental) - A Real Me'},\r\r\n { 'cached_version': 'https://webcache.googleusercontent.com/search?q=cache:gU4XOSuOIR0J:https://www.clara.es/temas/test+&cd=6&hl=es&ct=clnk&gl=es',\r\r\n 'date': 'unavailable',\r\r\n 'description': 'Haz nuestrostesty descubre cu\u00e1l es la mejor dieta para '\r\r\n 'adelgazar los mejores tratamientos est\u00e9ticos y de '\r\r\n 'belleza los alimentos que mejor te sientan.',\r\r\n 'link': 'https://www.clara.es/temas/test',\r\r\n 'title': 'Test dieta, belleza, salud, alimentaci\u00f3n, nutrici\u00f3n, '\r\r\n 'psicolog\u00eda, moda\u2026'},\r\r\n { 'cached_version': 'https://webcache.googleusercontent.com/search?q=cache:2C5cLoSzSKoJ:https://testdivertidos.es/+&cd=7&hl=es&ct=clnk&gl=es',\r\r\n 'date': 'unavailable',\r\r\n 'description': 'TestDivertidos.es - Lostestsgratis m\u00e1s divertidos de '\r\r\n 'internet:testde inteligencia personalidad psicol\u00f3gicos '\r\r\n 'de amor para ni\u00f1os...',\r\r\n 'link': 'https://testdivertidos.es/',\r\r\n 'title': 'Test Divertidos | Los tests m\u00e1s divertidos de la web'},\r\r\n { 'cached_version': 'https://webcache.googleusercontent.com/search?q=cache:hBp-w20VAWEJ:https://www.psicoactiva.com/tests/personalidad/test-personalidad-5factores.htm+&cd=8&hl=es&ct=clnk&gl=es',\r\r\n 'date': 'unavailable',\r\r\n 'description': 'Testgratis que eval\u00faa la Personalidad a partir de sus '\r\r\n 'cinco Dimensiones llamadas Los Cinco Grandes.',\r\r\n 'link': 'https://www.psicoactiva.com/tests/personalidad/test-personalidad-5factores.htm',\r\r\n 'title': 'PsicoActiva.com: Test de personalidad de cinco factores.'},\r\r\n { 'cached_version': 'https://webcache.googleusercontent.com/search?q=cache:3_8PsvuNwh0J:https://www.nationalgeographic.com.es/temas/tests-ng+&cd=9&hl=es&ct=clnk&gl=es',\r\r\n 'date': 'unavailable',\r\r\n 'description': 'Pon a prueba tus conocimientos con losTESTde National '\r\r\n 'Geographic sobre historia naturaleza pa\u00edses ciencia '\r\r\n 'personajes hist\u00f3ricos ciudades...',\r\r\n 'link': 'https://www.nationalgeographic.com.es/temas/tests-ng',\r\r\n 'title': 'Los mejores TEST de National Geographic'},\r\r\n { 'cached_version': 'http://webcache.googleusercontent.com/search?q=cache:-7iUEjuLNkMJ:www.movistar.es/particulares/test-de-velocidad/+&cd=10&hl=es&ct=clnk&gl=es',\r\r\n 'date': 'unavailable',\r\r\n 'description': 'Comprueba la velocidad de tu conexi\u00f3n a Internet con '\r\r\n 'eltestde velocidad que usan los instaladores de '\r\r\n 'Movistar OFERTA FIBRA -63 DESCUENTO 900 104...',\r\r\n 'link': 'http://www.movistar.es/particulares/test-de-velocidad/',\r\r\n 'title': 'Test Velocidad ADSL y Fibra - Mide la velocidad de tu '\r\r\n 'Internet - Movistar'},\r\r\n { 'google_stats': 'Aproximadamente 3.090.000.000 resultados(0,34 '\r\r\n 'segundos)',\r\r\n 'how_many_results': 10,\r\r\n 'related_search': [ 'testcuriosos',\r\r\n 'testdivertidos',\r\r\n 'testpara adolescentes',\r\r\n 'tests de personalidad',\r\r\n 'tests divertidos para pasar el rato',\r\r\n 'testjuegos',\r\r\n 'testde belleza',\r\r\n 'tests de amor'],\r\r\n 'stats': { 'google_search_time': '0.8270025253295898 s',\r\r\n 'overall_time': '0.8999979496002197 s',\r\r\n 'parsing_page_time': '0.040498971939086914 s'},\r\r\n 'url': 'https://www.google.com/search?q=test'}]\r\r\n \r\r\n At this case, I am in Spain, so the results language are based on your **current location** (if you *do not specify one*).\r\r\n \r\r\n If another page must be searched, all the methods start with: ``with``. You can find more instructions at the `wiki `__.\r\r\n \r\r\n 3. Installation\r\r\n ---------------\r\r\n \r\r\n As usual, you have the `pip `__ mode or the `easy install `__ methods:\r\r\n \r\r\n *The commands for Windows are the same but without* ``sudo``\r\r\n \r\r\n *Installing via PyPi (pip)*\r\r\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\r\n \r\r\n - In some Linux systems, *pip* is not directly available in command line, so we have two options:\r\r\n \r\r\n *Installing pip for Python 3* (assuming that you **already have Python 3 installed**):\r\r\n \r\r\n .. code:: bash\r\r\n \r\r\n ## DEBIAN SYSTEMS ##\r\r\n sudo apt update && sudo apt upgrade\r\r\n sudo apt-get install python3-pip\r\r\n \r\r\n .. code:: bash\r\r\n \r\r\n ## CENTOS ##\r\r\n sudo yum install python34-setuptools\r\r\n sudo easy_install pip\r\r\n \r\r\n - Installing `pyGle `__:\r\r\n \r\r\n Once you did what said before, now you are able to install `pyGle `__\r\r\n \r\r\n .. code:: bash\r\r\n \r\r\n #### USING PIP ####\r\r\n sudo pip3 install g-pyGle\r\r\n \r\r\n ## If pip3 is not available ##\r\r\n sudo pip install g-pyGle\r\r\n \r\r\n ## Via Python 3 ##\r\r\n sudo python3 -m pip install g-pyGle\r\r\n \r\r\n ## Without admin permissions ##\r\r\n pip3 install -U g-pyGle\r\r\n OR\r\r\n python3 -m pip install -U g-pyGle\r\r\n \r\r\n *Installing via easy install*\r\r\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\r\n \r\r\n - Basically, we will install *Python 3* on our systems, and then we will be able to install `pyGle `__:\r\r\n \r\r\n - `Windows `__\r\r\n - `Linux (all systems) `__\r\r\n - `MacOS `__\r\r\n - `iOS `__\r\r\n - `Android `__\r\r\n \r\r\n - Now, we can install `pyGle `__ as follows:\r\r\n \r\r\n .. code:: bash\r\r\n \r\r\n #### USING EASY INSTALL ####\r\r\n git clone https://github.com/Javinator9889/pyGle.git\r\r\n cd pyGle\r\r\n sudo python3 setup.py install\r\r\n \r\r\n 4. Instructions\r\r\n ---------------\r\r\n \r\r\n Every time we want to use `pyGle `__, we will do the following:\r\r\n \r\r\n .. code:: python\r\r\n \r\r\n from pyGle import PyGle\r\r\n \r\r\n `pyGle `__ allows us to **enable a history** and **keep the session cookies** (for a faster browsing):\r\r\n \r\r\n .. code:: python\r\r\n \r\r\n pSearch = PyGle(enable_history=True, use_session_cookies=True)\r\r\n \r\r\n As normal, `pyGle `__ will only do a normal Google search if we add a query:\r\r\n \r\r\n .. code:: python\r\r\n \r\r\n pSearch.withQuery(\"what we want to search\")\r\r\n \r\r\n Also, with every method, you can continue *defining your needs* without **creating thousands** of lines of code:\r\r\n \r\r\n .. code:: python\r\r\n \r\r\n pSearch.withQuery(\"what we want to search\").withContainingTwoTerms(\"term 1\", \"term 2\").withTextInTitle(\"text in title\").withSafeModeDeactivated().withSearchStartPositionAt(25)\r\r\n \r\r\n Once we are done, searching is as simple as:\r\r\n \r\r\n .. code:: python\r\r\n \r\r\n ft = pSearch.doSearch()\r\r\n \r\r\n # Wait for the result to be available\r\r\n search_results = ft.result()\r\r\n \r\r\n Finally, we can recover (if enabled) all the history of the search we did just:\r\r\n \r\r\n .. code:: python\r\r\n \r\r\n history = pSearch.getHistory()\r\r\n \r\r\n # Or printing history\r\r\n pSearch.pprintHistory()\r\r\n \r\r\n *If you want to read more, have a look at the *`wiki `__.\r\r\n \r\r\n *Torify*\r\r\n ~~~~~~~~\r\r\n \r\r\n Another functionality included with this lib is the possibility to work under **Tor**.\r\r\n \r\r\n If you do not know what is it, **Tor** is the *easiest way* to browse the web anonymously by using proxies that hide yourself. You can read more `right here `__.\r\r\n \r\r\n If you want *to use this functionality*, you need to have Tor installed on your system. Here you have the instructions for your systems:\r\r\n \r\r\n - `Windows `__\r\r\n - `Linux `__\r\r\n - `MacOS `__\r\r\n - `Android `__\r\r\n \r\r\n Finally, once Tor is configured on your system, for using it is as simple as (*following the latest example*):\r\r\n \r\r\n .. code:: python\r\r\n \r\r\n ft = pSearch.doSearch(torify=True)\r\r\n \r\r\n 5. Contribute\r\r\n -------------\r\r\n \r\r\n If you really appreciate my work, you can *contribute to this project* perfectly, for example:\r\r\n \r\r\n 1. If you find **bugs** \ud83d\udd0e\ud83d\udc1e, you can comment at `issues `__ what happened to you and *I will try to find a solution*.\r\r\n 2. You can **fork** this repository and *include all what you think* `pyGle `__ should have. Create a pull request and, if I like your changes, I will include it on the official repo and you will automatically become a developer and maintainer \ud83d\ude04\r\r\n 3. Also, if you are a great fan, you can donate me what you want by clicking here \ud83e\udd11\r\r\n \r\r\n |Donate me|\r\r\n \r\r\n 6. License\r\r\n ----------\r\r\n \r\r\n ::\r\r\n \r\r\n Copyright (C) 2018 - Javinator9889 - pyGle\r\r\n \r\r\n This program is free software: you can redistribute it and/or modify\r\r\n it under the terms of the GNU General Public License as published by\r\r\n the Free Software Foundation, either version 3 of the License, or\r\r\n (at your option) any later version.\r\r\n \r\r\n This program is distributed in the hope that it will be useful,\r\r\n but WITHOUT ANY WARRANTY; without even the implied warranty of\r\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\r\n GNU General Public License for more details.\r\r\n \r\r\n You should have received a copy of the GNU General Public License\r\r\n along with this program. If not, see .`\r\r\n \r\r\n .. |PyPi| image:: https://img.shields.io/badge/v1.24%20-PyPi-green.svg\r\r\n :target: https://pypi.org/project/g-pyGle/\r\r\n .. |ZIP| image:: https://img.shields.io/badge/Package%20-Zip-blue.svg\r\r\n :target: https://github.com/Javinator9889/pyGle/archive/master.zip\r\r\n .. |GIT| image:: https://img.shields.io/badge/Package%20-Git-red.svg\r\r\n :target: https://github.com/Javinator9889/pyGle.git\r\r\n .. |Donate me| image:: http://pluspng.com/img-png/paypal-donate-button-png-paypal-donate-button-png-file-png-image-200.png\r\r\n :target: https://paypal.me/Javinator9889\r\r\n \r\nPlatform: UNKNOWN\r\nClassifier: Development Status :: 5 - Production/Stable\r\nClassifier: Programming Language :: Python\r\nClassifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)\r\nClassifier: Natural Language :: English\r\nClassifier: Programming Language :: Python :: 2.6\r\nClassifier: Programming Language :: Python :: 2.7\r\nClassifier: Programming Language :: Python :: 3\r\nClassifier: Programming Language :: Python :: 3.1\r\nClassifier: Programming Language :: Python :: 3.2\r\nClassifier: Programming Language :: Python :: 3.3\r\nClassifier: Programming Language :: Python :: 3.4\r\nClassifier: Programming Language :: Python :: 3.5\r\nClassifier: Programming Language :: Python :: 3.6\r\nClassifier: Programming Language :: Python :: 3.7\r\nDescription-Content-Type: text/x-rst\r\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/Javinator9889/pyGle/archive/master.zip", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Javinator9889/pyGle", "keywords": "", "license": "GPL-3.0", "maintainer": "", "maintainer_email": "", "name": "g-pyGle", "package_url": "https://pypi.org/project/g-pyGle/", "platform": "", "project_url": "https://pypi.org/project/g-pyGle/", "project_urls": { "Download": "https://github.com/Javinator9889/pyGle/archive/master.zip", "Homepage": "https://github.com/Javinator9889/pyGle" }, "release_url": "https://pypi.org/project/g-pyGle/1.25/", "requires_dist": null, "requires_python": "", "summary": "A tool for searching the entire web with the Google technology", "version": "1.25" }, "last_serial": 4227202, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "5dfecb55bd20ad75f82c507a0c6c5c93", "sha256": "52f224fafa329315c315b96d351776ee7dfef6762c9c78612f88e5ae6a27a178" }, "downloads": -1, "filename": "g-pyGle-1.0.tar.gz", "has_sig": false, "md5_digest": "5dfecb55bd20ad75f82c507a0c6c5c93", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34725, "upload_time": "2018-08-10T14:58:05", "url": "https://files.pythonhosted.org/packages/b1/d7/049deb1a2a550226798bc1e3fe29605f5cfa7259acb327e6d3c253b4cf10/g-pyGle-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "37ac511ddcf057e622978edef90b03e8", "sha256": "8169d51bc0f1b02023c9919c4f013a523afad048ceceed80c155cc49d08d1c1c" }, "downloads": -1, "filename": "g-pyGle-1.1.tar.gz", "has_sig": false, "md5_digest": "37ac511ddcf057e622978edef90b03e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34808, "upload_time": "2018-08-10T15:17:00", "url": "https://files.pythonhosted.org/packages/48/32/e3200a2a2b689dc24f12fb5341061a9247e18284c1d880fc72eaefeeb6f6/g-pyGle-1.1.tar.gz" } ], "1.11": [ { "comment_text": "", "digests": { "md5": "57cc11a94c845dc9b043d6a7d8a230eb", "sha256": "6e23f76672eaf3de27c4b088b57578fd9edd37b01ae0f31be3bb0314b420d296" }, "downloads": -1, "filename": "g-pyGle-1.11.tar.gz", "has_sig": false, "md5_digest": "57cc11a94c845dc9b043d6a7d8a230eb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36164, "upload_time": "2018-08-11T10:41:55", "url": "https://files.pythonhosted.org/packages/b4/25/f2471129b815b4aefbd894b85288e397d3c69f67e5d6555102f242bd4301/g-pyGle-1.11.tar.gz" } ], "1.12": [ { "comment_text": "", "digests": { "md5": "0e242d76eeaebe8b05599e1a06e65865", "sha256": "a9c870d549355b5c1549bcaf11227c833bff4bee9476784c8e0de3a99d6bf413" }, "downloads": -1, "filename": "g-pyGle-1.12.tar.gz", "has_sig": false, "md5_digest": "0e242d76eeaebe8b05599e1a06e65865", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35923, "upload_time": "2018-08-14T17:20:48", "url": "https://files.pythonhosted.org/packages/81/be/8d9397ac5df9abb65f425f9cbdbae41034ec635f1608d8b7d850ddb50d32/g-pyGle-1.12.tar.gz" } ], "1.24": [ { "comment_text": "", "digests": { "md5": "8f9e110db033163925e4edc38a23b21b", "sha256": "f032ab11408298f866e52b250649b3649cd03fa37c187dccc115acf29135e301" }, "downloads": -1, "filename": "g-pyGle-1.24.tar.gz", "has_sig": false, "md5_digest": "8f9e110db033163925e4edc38a23b21b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36580, "upload_time": "2018-08-31T17:31:06", "url": "https://files.pythonhosted.org/packages/b6/4a/f6188bfe656a2201d9e3493f68b36f191e9ddca8445c7489e43a567f547c/g-pyGle-1.24.tar.gz" } ], "1.25": [ { "comment_text": "", "digests": { "md5": "6214b470d89c2c6f8dba8f098dfa852b", "sha256": "f2cbfe6bd829098e55ce58a101b107791315212fd8e8a2d55ba53b3f276fa696" }, "downloads": -1, "filename": "g-pyGle-1.25.tar.gz", "has_sig": false, "md5_digest": "6214b470d89c2c6f8dba8f098dfa852b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36593, "upload_time": "2018-08-31T17:59:11", "url": "https://files.pythonhosted.org/packages/59/5a/349778ef51e846a1f08c00f87038efc95dbf7a96809d5e483afbd678d59e/g-pyGle-1.25.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6214b470d89c2c6f8dba8f098dfa852b", "sha256": "f2cbfe6bd829098e55ce58a101b107791315212fd8e8a2d55ba53b3f276fa696" }, "downloads": -1, "filename": "g-pyGle-1.25.tar.gz", "has_sig": false, "md5_digest": "6214b470d89c2c6f8dba8f098dfa852b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36593, "upload_time": "2018-08-31T17:59:11", "url": "https://files.pythonhosted.org/packages/59/5a/349778ef51e846a1f08c00f87038efc95dbf7a96809d5e483afbd678d59e/g-pyGle-1.25.tar.gz" } ] }