{ "info": { "author": "Twingly AB", "author_email": "support@twingly.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software 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.5", "Topic :: Internet", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Twingly Search API Python\n=========================\n\n|Build Status|\n\nA Python library for Twingly\u2019s Search API (previously known as Analytics\nAPI). Twingly is a blog search service that provides a searchable API\nknown as `Twingly Search\nAPI `__.\n\nInstallation\n------------\n\nInstall via PyPI\n\n.. code:: shell\n\n pip install twingly-search\n\nOr add ``twingly-search`` to your application\u2019s `requirements\nfile `__\nand then run\n\n.. code:: shell\n\n pip install -r requirements.txt\n\nOr from source code\n\n.. code:: shell\n\n git clone https://github.com/twingly/twingly-search-api-python.git\n cd twingly-search-api-python\n python setup.py install\n\nUsage\n-----\n\n.. code:: python\n\n from twingly_search import Client\n\n client = Client()\n\n q = 'github page-size: 10 lang:sv tspan:24h'\n\n result = client.execute_query(q)\n\n for post in result.posts:\n print post.url\n\nExample code can be found in `examples/ `__.\n\nThe ``twingly_search`` library talks to a commercial blog search API and\nrequires an API key. Best practice is to set the ``TWINGLY_SEARCH_KEY``\nenvironment variable to the obtained key. ``twingly_search.Client`` can\nbe passed a key at initialization if your setup does not allow\nenvironment variables.\n\nTo learn more about the capabilities of the API, please read the\n`Twingly Search API\ndocumentation `__.\n\nDocumentation\n~~~~~~~~~~~~~\n\n``twingly_search`` is documented with\n`pydoc `__. To read the\ndocumentation directly in your console you can run\n\n.. code:: shell\n\n pydoc twingly_search\n\nor you can start a local pydoc web server with\n\n.. code:: shell\n\n pydoc -p 1234 twingly_search\n\nIn this case documentation will be available at\nhttp://localhost:1234/twingly_search.html\n\nRequirements\n------------\n\n- API key, `sign up `__ via\n `twingly.com `__ to get one\n- Python 2.7+, 3.0+ with\n `SNI `__\n support, see `Requests\n FAQ `__\n for more information\n\nDevelopment\n-----------\n\nTests\n~~~~~\n\nInstall all dependencies\n\n::\n\n make localdeps\n\nRun the tests\n\n::\n\n make test\n\nRelease\n~~~~~~~\n\nMake the release\n^^^^^^^^^^^^^^^^\n\nTo be able to publish the package, install ``twine`` and, optionally,\n``python-dotenv``:\n\n::\n\n pip install twine\n pip install python-dotenv[cli] # optional\n\nIf using ``python-dotenv`` or equivalent: set ``TWINE_USERNAME`` and\n``TWINE_PASSWORD`` in ``.env``, using the PyPI username and password.\n\nYou will need ``pandoc`` to convert README.md to reStructuredText:\n\n::\n\n brew install pandoc\n pip install pypandoc\n\n1. Bump the version in `setup.py <./setup.py>`__ and\n `\\__init__.py <./twingly-search/__init__.py>`__.\n\n2. Create a tag with the same version and push it to GitHub:\n\n ::\n\n git tag && git push --follow-tags\n\n3. Publish to `PyPi `__,\n assuming usage of ``python-dotenv``:\n\n ::\n\n dotenv run ./publish-to-pypi.sh\n\nUpdate the changelog\n^^^^^^^^^^^^^^^^^^^^\n\n- Install `GitHub Changelog\n Generator `__\n if you don\u2019t have it\n\n - ``gem install github_changelog_generator``\n\n- Set ``CHANGELOG_GITHUB_TOKEN`` to a personal access token to increase\n your GitHub API rate limit\n- Generate the changelog\n\n - ``github_changelog_generator``\n\nLicense\n-------\n\nThe MIT License (MIT)\n\nCopyright (c) 2016 Twingly AB\n\nPermission is hereby granted, free of charge, to any person obtaining a\ncopy of this software and associated documentation files (the\n\u201cSoftware\u201d), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be included\nin all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \u201cAS IS\u201d, WITHOUT WARRANTY OF ANY KIND, EXPRESS\nOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n.. |Build Status| image:: https://travis-ci.org/twingly/twingly-search-api-python.png?branch=master\n :target: https://travis-ci.org/twingly/twingly-search-api-python\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/twingly/twingly-search-api-python", "keywords": "twingly", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "twingly-search", "package_url": "https://pypi.org/project/twingly-search/", "platform": "", "project_url": "https://pypi.org/project/twingly-search/", "project_urls": { "Homepage": "https://github.com/twingly/twingly-search-api-python" }, "release_url": "https://pypi.org/project/twingly-search/2.1.3/", "requires_dist": [ "future", "requests", "pytz", "deprecation" ], "requires_python": "", "summary": "Python library for Twingly Search API", "version": "2.1.3" }, "last_serial": 5114304, "releases": { "1.0.3": [ { "comment_text": "", "digests": { "md5": "4f6b5a6e88889434372279e50f41c2ec", "sha256": "b536b2d805bdde29d14d335715fc190de1e16e99458fdc3074ec7797ab0870bd" }, "downloads": -1, "filename": "twingly_search-1.0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "4f6b5a6e88889434372279e50f41c2ec", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 10938, "upload_time": "2016-02-05T11:27:29", "url": "https://files.pythonhosted.org/packages/a0/d4/d076ad4509bdaf62228534046b00e748a16e78bb84ea3a8da716c0063d23/twingly_search-1.0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "477663db7421643abea806f63d4f4457", "sha256": "b24571e9469045ddf86b544988a8937f7b6628e8a628e0b2abf2fad5df26fd2b" }, "downloads": -1, "filename": "twingly-search-1.0.3.tar.gz", "has_sig": false, "md5_digest": "477663db7421643abea806f63d4f4457", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6376, "upload_time": "2016-02-05T11:27:24", "url": "https://files.pythonhosted.org/packages/37/d4/61be7fd4ef3034e88dd5f7d195a1a60b7030b487cd92b379bf4960ed5e90/twingly-search-1.0.3.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "a3ca25c577fa6e0948cf5304b04e8f73", "sha256": "83dfe37cad511e21772b9d1c2abbea43693bf2ab5b4fc69e13b91c982feeb2ce" }, "downloads": -1, "filename": "twingly_search-1.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "a3ca25c577fa6e0948cf5304b04e8f73", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 11489, "upload_time": "2016-03-03T07:54:25", "url": "https://files.pythonhosted.org/packages/21/46/7af5ce384af17cd49d3b3f75584c1d218e9c1ebb71569a49a1282f0ad39e/twingly_search-1.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "adf322688ff961328daa7b7218e22302", "sha256": "988dbd21b4abdb2063547d4c35736526b1dc0b0281e2b2393b923e2ea7901ba5" }, "downloads": -1, "filename": "twingly-search-1.2.0.tar.gz", "has_sig": false, "md5_digest": "adf322688ff961328daa7b7218e22302", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6781, "upload_time": "2016-03-03T07:54:09", "url": "https://files.pythonhosted.org/packages/af/f0/235ca0cc505ac92942f1c849dfe6ac19035d390cadb55899bad7c5e6c1c1/twingly-search-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "d1ddf13e2f6558bffc36ab04eefd7b68", "sha256": "dbad924512f406247ca6bbd3737671256d8e2be7eaf8b0be5b3e267e64fadfbc" }, "downloads": -1, "filename": "twingly_search-1.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "d1ddf13e2f6558bffc36ab04eefd7b68", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 11942, "upload_time": "2016-06-21T13:10:42", "url": "https://files.pythonhosted.org/packages/ce/a5/e341ea24d406eaf554eaa20373328aa50400d14d9f7b03444f9c5edf4da9/twingly_search-1.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b92b8b53dfd2b869afe8291622f4399e", "sha256": "363b0dba7c17cce7bff469a4b2a08b836a084346b65ad0d72944cbe1a21b5f7a" }, "downloads": -1, "filename": "twingly-search-1.2.1.tar.gz", "has_sig": false, "md5_digest": "b92b8b53dfd2b869afe8291622f4399e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8497, "upload_time": "2016-06-21T13:10:38", "url": "https://files.pythonhosted.org/packages/d5/b8/440355bce5a3800ff29cf135a459fd736ba569e84f90495422163350a529/twingly-search-1.2.1.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "28f4c3e5a02d1375e4b1203805cfb4c7", "sha256": "c87f0374610b2bb965861c95afb27e55003996e62990ddf2e08ef10a12b2bc31" }, "downloads": -1, "filename": "twingly_search-2.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "28f4c3e5a02d1375e4b1203805cfb4c7", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 13609, "upload_time": "2017-05-22T07:35:37", "url": "https://files.pythonhosted.org/packages/bf/de/3b03f938a930084969f75468e0abdab56d3c4d002510044a4471573341d7/twingly_search-2.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f404d9749e16858bfbb3d3d724539991", "sha256": "13e1c3a80fd69f7f94c45d639abe66f027ae4c2369ecc9c045c9f4777399643b" }, "downloads": -1, "filename": "twingly-search-2.0.0.tar.gz", "has_sig": false, "md5_digest": "f404d9749e16858bfbb3d3d724539991", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10916, "upload_time": "2017-05-22T07:35:34", "url": "https://files.pythonhosted.org/packages/2a/66/b1b05c1c57771bdd85a1ca6ba9aaa6a180984348b1ca215898f68771897f/twingly-search-2.0.0.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "181892dc3324f283328cc1f6820b5947", "sha256": "1bbbfb74855067453714088426979bbfd6e93cacfa864f0a080101f519dfaf06" }, "downloads": -1, "filename": "twingly_search-2.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "181892dc3324f283328cc1f6820b5947", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 13788, "upload_time": "2017-06-01T07:06:53", "url": "https://files.pythonhosted.org/packages/18/41/55312ed4b5c63055f3298b0cd7b7ecdc48c62efad9c74030794bc41f8244/twingly_search-2.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a3b2411923879d7df8d742b0d6ed83a3", "sha256": "c7cf2c802ba828b5d9ad0b4a399e7d51cae09fa780e7c3cace4fb8f77ef4b9fd" }, "downloads": -1, "filename": "twingly-search-2.1.0.tar.gz", "has_sig": false, "md5_digest": "a3b2411923879d7df8d742b0d6ed83a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11071, "upload_time": "2017-06-01T07:06:52", "url": "https://files.pythonhosted.org/packages/0c/97/8bb852f9bec891ae1abe7b584eb982bfddba7b153e1a5b819b1153db17a0/twingly-search-2.1.0.tar.gz" } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "d2304c1bc09fbd8df8251b4585a8487d", "sha256": "b82eebe1fc28319b33db77e74fd4240db6fc75fb659f951e6a98fb86ce6863ac" }, "downloads": -1, "filename": "twingly_search-2.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "d2304c1bc09fbd8df8251b4585a8487d", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14339, "upload_time": "2017-10-20T11:13:37", "url": "https://files.pythonhosted.org/packages/65/ed/f6167ac9d1bb094e15445cebc751a45895c20040393051f9eac437ad0454/twingly_search-2.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "20652e97950820beb79be919f491e604", "sha256": "b14b61216a294d5f6f3dc5006a27d56c9466e91022bde242e1b3a619096653d6" }, "downloads": -1, "filename": "twingly-search-2.1.1.tar.gz", "has_sig": false, "md5_digest": "20652e97950820beb79be919f491e604", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9255, "upload_time": "2017-10-20T11:13:35", "url": "https://files.pythonhosted.org/packages/11/c5/48a3e9afd759686eaa5d81c932375e6e0d20bf69d0d0dbccd4cff3dee0df/twingly-search-2.1.1.tar.gz" } ], "2.1.2": [ { "comment_text": "", "digests": { "md5": "58445200774b3d3622fe8407473990c4", "sha256": "afd830e74cd0e8fc1142816cb4d9a4b35c8d60c6407932d6574840eb5660f903" }, "downloads": -1, "filename": "twingly_search-2.1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "58445200774b3d3622fe8407473990c4", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 11215, "upload_time": "2019-04-05T20:26:30", "url": "https://files.pythonhosted.org/packages/16/00/1d53ec1e45e4924c9fcb492d56148a690618396a535ba5a6b999d12735ff/twingly_search-2.1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "78df067913f61bf13253177e9d816f72", "sha256": "80e783aa925dd709574a12f587d779be1f8fcca73899eda73a9738ad2eeaab5f" }, "downloads": -1, "filename": "twingly-search-2.1.2.tar.gz", "has_sig": false, "md5_digest": "78df067913f61bf13253177e9d816f72", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9414, "upload_time": "2019-04-05T20:26:31", "url": "https://files.pythonhosted.org/packages/b7/2d/7dbe43a1c08d4e37872fa5af76eef80c52b0a26e6f49348da965cb9a86ac/twingly-search-2.1.2.tar.gz" } ], "2.1.3": [ { "comment_text": "", "digests": { "md5": "487f3fb4c2401db00cf713190835c667", "sha256": "b6869f016cebc96df66cc5c8ebcf3bb4dbf3b5abf7eb8b8125b00b6c92675520" }, "downloads": -1, "filename": "twingly_search-2.1.3-py2-none-any.whl", "has_sig": false, "md5_digest": "487f3fb4c2401db00cf713190835c667", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 11222, "upload_time": "2019-04-08T15:48:28", "url": "https://files.pythonhosted.org/packages/c8/85/cffab4567314c61c6e098f9688f0ad7b5f31308bd65d14d9cff50c4481b4/twingly_search-2.1.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f8b60d9bc1f4002a3a2fc1145334a6bc", "sha256": "f063ce128151fdcfcf26a001ac84c5547c57702686a3fa75c84a2e2c8e7c1086" }, "downloads": -1, "filename": "twingly-search-2.1.3.tar.gz", "has_sig": false, "md5_digest": "f8b60d9bc1f4002a3a2fc1145334a6bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9442, "upload_time": "2019-04-08T15:48:30", "url": "https://files.pythonhosted.org/packages/99/68/31dfbdde9def8ea4398302c4be7cd752396703bcb42a7b9d593d5bfe7f7e/twingly-search-2.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "487f3fb4c2401db00cf713190835c667", "sha256": "b6869f016cebc96df66cc5c8ebcf3bb4dbf3b5abf7eb8b8125b00b6c92675520" }, "downloads": -1, "filename": "twingly_search-2.1.3-py2-none-any.whl", "has_sig": false, "md5_digest": "487f3fb4c2401db00cf713190835c667", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 11222, "upload_time": "2019-04-08T15:48:28", "url": "https://files.pythonhosted.org/packages/c8/85/cffab4567314c61c6e098f9688f0ad7b5f31308bd65d14d9cff50c4481b4/twingly_search-2.1.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f8b60d9bc1f4002a3a2fc1145334a6bc", "sha256": "f063ce128151fdcfcf26a001ac84c5547c57702686a3fa75c84a2e2c8e7c1086" }, "downloads": -1, "filename": "twingly-search-2.1.3.tar.gz", "has_sig": false, "md5_digest": "f8b60d9bc1f4002a3a2fc1145334a6bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9442, "upload_time": "2019-04-08T15:48:30", "url": "https://files.pythonhosted.org/packages/99/68/31dfbdde9def8ea4398302c4be7cd752396703bcb42a7b9d593d5bfe7f7e/twingly-search-2.1.3.tar.gz" } ] }