{ "info": { "author": "Tran Ly Vu", "author_email": "vutransingapore@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Framework :: Flake8", "Framework :: Pytest", "Intended Audience :: Education", "Intended Audience :: End Users/Desktop", "Intended Audience :: Information Technology", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Operating System :: POSIX", "Operating System :: POSIX :: BSD", "Operating System :: POSIX :: Linux", "Operating System :: Unix", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Education", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Scientific/Engineering :: Information Analysis" ], "description": "

\n\t\t\n

\n\n

\n\t\n\t\n\t\n \n \n

\n\n---\nwikilink is a multiprocessing web-scraping application to scrape the wiki pages, extract urls and find the minimum number of links between 2 given wiki pages.\n\nI discussed brief the motivation and an overview of the project in [my blog](https://tranlyvu.github.io/algorithms/BFS-and-a-simple-application/).\n\nThe project is currently at version [v0.3.0.post1](https://github.com/tranlyvu/wiki-link/releases), also see [change log](https://github.com/tranlyvu/wiki-link/blob/dev/CHANGELOG.md) for more details on release history.\n\nIf you like this project, feel fee to leave a few words of appreciation here [![Say Thanks!](https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg)](https://saythanks.io/to/tranlyvu)\n\n| Build | [![Build Status][3]][4] | [![Coverage Status][5]][6] | \n| :--- | :--- | :--- |\n| **Quality** | [![Maintainability][13]][14] | [![Requirements Status][19]][20] |\n| **Support** | [![Join the chat][17]][18] | [![blog][1]][2] |\n| **Platform** | [![python version](https://img.shields.io/pypi/pyversions/wikilink.svg)](https://pypi.org/project/wikilink/)| [![implementation](https://img.shields.io/pypi/implementation/wikilink.svg)](https://pypi.org/project/wikilink/) |\n\n[3]: https://travis-ci.org/tranlyvu/wiki-link.svg?branch=dev\n[4]: https://travis-ci.org/tranlyvu/wiki-link \n[5]: https://coveralls.io/repos/github/tranlyvu/wiki-link/badge.svg\n[6]: https://coveralls.io/github/tranlyvu/wiki-link\n\n[13]: https://api.codeclimate.com/v1/badges/8679cde6756683bd787d/maintainability\n[14]: https://codeclimate.com/github/tranlyvu/wiki-link/maintainability\n\n[17]: https://badges.gitter.im/find-link/Lobby.svg\n[18]: https://gitter.im/find-link/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n[1]: https://img.shields.io/badge/docs-on%20blog-brightgreen.svg\n[2]: https://tranlyvu.github.io/algorithms/BFS-and-a-simple-application/\n\n[19]: https://requires.io/github/tranlyvu/wiki-link/requirements.svg?branch=dev\n[20]: https://requires.io/github/tranlyvu/wiki-link/requirements/?branch=dev\n\n---\nTable of contents\n---\n\n1. [Usage](#Usage)\n2. [Contribution](#Contribution) \n3. [License](#License)\n\n---\nUsage\n---\n\nInstall with pip\n\n```\n$ pip install wikilink\n```\n\n### Database support\n\nwikilink currently supports [Mysql](https://www.mysql.com/downloads/) and [PostgreSQL](https://www.postgresql.org/)\n\n### API\n\n```\nsetup_db(db, username, password, ip=\"127.0.0.1\", port=3306): set up database\n\nArgs:\n\tdb(str): Database engine, currently support \"mysql\" and \"postgresql\"\n\tname(str): database username\n\tpassword(str): database password\n\tip(str): IP address of database (Default = \"127.0.0.1\")\n\tport(str): port that databse is running on (default=3306)\n\nReturns:\n\tNone\n```\n\n```\nmin_link(source, destination, limit=6, multiprocessing=False): find minimum number of link from source url to destination url within limit \n\nArgs:\n\tsource(str): source wiki url, i.e. \"https://en.wikipedia.org/wiki/Cristiano_Ronaldo\"\n\tdestination(str): Destination wiki url, i.e. \"https://en.wikipedia.org/wiki/Cristiano_Ronaldo\"\n\tlimit(int): max number of links from the source that will be considered (default=6)\n\tmultiprocessing(boolean): enable/disable multiprocessing mode (default=False)\n\nReturns:\n\t(int) minimum number of sepration between source and destination urls\n\treturn None and print messages if exceeding limits or no path found\n\nRaises:\n\tDisconnectionError: error connecting to DB\n```\n\n### Examples\n\n```\n>>> from wikilink import WikiLink\n>>> app = WikiLink()\n>>> app.setup_db(\"mysql\", \"root\", \"12345\", \"127.0.0.1\", \"3306\")\n>>> source = \"https://en.wikipedia.org/wiki/Cristiano_Ronaldo\"\n>>> destination = \"https://en.wikipedia.org/wiki/Lionel_Messi\"\n>>> app.min_link(source, destination, 6)\n1\n```\n\n---\nContribution [![Open Source Helpers][7]][8]\n---\n[7]: https://www.codetriage.com/tranlyvu/wiki-link/badges/users.svg\n[8]: https://www.codetriage.com/tranlyvu/wiki-link\n\n### How to contribute\n\nPlease follow our contribution convention at [contribution instructions](https://github.com/tranlyvu/wiki-link/blob/dev/CONTRIBUTING.md) and [code of conduct](https://github.com/tranlyvu/wiki-link/blob/dev/CODE-OF-CONDUCT.md).\n\nTo set up development environment, simply run:\n\n```\n$ pip install -r requirements.txt\n```\n\nPlease check out the [issue file](https://github.com/tranlyvu/wiki-link/blob/dev/RELEASENOTES.md) for list of issues that required helps.\n\n\n### Appreciation\n\nFeel free to add your name into the [list of contributors](https://github.com/tranlyvu/wiki-link/blob/dev/CONTRIBUTORS.md). You will automatically be inducted into Hall of Fame as a way to show my appreciation for your contributions.\n\n#### Hall of Fame\n\n[![](https://sourcerer.io/fame/tranlyvu/tranlyvu/wiki-link/images/0)](https://sourcerer.io/fame/tranlyvu/tranlyvu/wiki-link/links/0)[![](https://sourcerer.io/fame/tranlyvu/tranlyvu/wiki-link/images/1)](https://sourcerer.io/fame/tranlyvu/tranlyvu/wiki-link/links/1)[![](https://sourcerer.io/fame/tranlyvu/tranlyvu/wiki-link/images/2)](https://sourcerer.io/fame/tranlyvu/tranlyvu/wiki-link/links/2)[![](https://sourcerer.io/fame/tranlyvu/tranlyvu/wiki-link/images/3)](https://sourcerer.io/fame/tranlyvu/tranlyvu/wiki-link/links/3)[![](https://sourcerer.io/fame/tranlyvu/tranlyvu/wiki-link/images/4)](https://sourcerer.io/fame/tranlyvu/tranlyvu/wiki-link/links/4)[![](https://sourcerer.io/fame/tranlyvu/tranlyvu/wiki-link/images/5)](https://sourcerer.io/fame/tranlyvu/tranlyvu/wiki-link/links/5)[![](https://sourcerer.io/fame/tranlyvu/tranlyvu/wiki-link/images/6)](https://sourcerer.io/fame/tranlyvu/tranlyvu/wiki-link/links/6)[![](https://sourcerer.io/fame/tranlyvu/tranlyvu/wiki-link/images/7)](https://sourcerer.io/fame/tranlyvu/tranlyvu/wiki-link/links/7)\n\n---\nLicense\n---\n\nSee the [LICENSE](https://github.com/tranlyvu/wiki-link/blob/master/LICENSE) file for license rights and limitations (Apache License 2.0).\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/tranlyvu/wiki-link", "keywords": "Web Scraping,Artificial Intelligence,Breadth First Search,Graph,Data Science,Web Extracting,Information Analysis", "license": "Apache License 2.0", "maintainer": "Tran Ly Vu ", "maintainer_email": "vutransingapore@gmail.com", "name": "wikilink", "package_url": "https://pypi.org/project/wikilink/", "platform": "any", "project_url": "https://pypi.org/project/wikilink/", "project_urls": { "CI: Travis": "https://travis-ci.org/tranlyvu/wiki-link", "Chat: Gitter": "https://gitter.im/find-link/Lobby", "Coverage: coveralls": "https://coveralls.io/github/tranlyvu/wiki-link", "Homepage": "https://github.com/tranlyvu/wiki-link", "Source": "https://github.com/tranlyvu/wiki-link", "Tracker": "https://github.com/tranlyvu/wiki-link/issues" }, "release_url": "https://pypi.org/project/wikilink/0.3.0.post1/", "requires_dist": [ "beautifulsoup4 (>=4.7.1)", "requests (>=2.21.0)", "SQLAlchemy-Utils (>=0.33.11)", "mysqlclient (>=1.4.2.post1)" ], "requires_python": ">=3.0, <4", "summary": "A multiprocessing web-scraping application to scrape wiki pages and find minimum number of links between two given wiki pages.", "version": "0.3.0.post1" }, "last_serial": 5007222, "releases": { "0.3.0": [ { "comment_text": "", "digests": { "md5": "a7fb594d6016714e9186f9a27783daad", "sha256": "6f2f095f9c0b08c16917e820dc7aae0bba6ba117467c6da121939cf3fb44cf94" }, "downloads": -1, "filename": "wikilink-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a7fb594d6016714e9186f9a27783daad", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.0, <4", "size": 16823, "upload_time": "2019-03-30T14:15:14", "url": "https://files.pythonhosted.org/packages/56/af/3ef4940f16074dc54a75ae8e6d2face00bc604f5ab40650f8efeaa11c78d/wikilink-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c4357c5c4689d2af1b31f2e6257ae051", "sha256": "a20d64ef9cf6f95dda51c8988cd1705e22df1ca5c4a384407d49d292eee33f2a" }, "downloads": -1, "filename": "wikilink-0.3.0.tar.gz", "has_sig": false, "md5_digest": "c4357c5c4689d2af1b31f2e6257ae051", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0, <4", "size": 18391, "upload_time": "2019-03-30T14:15:16", "url": "https://files.pythonhosted.org/packages/61/b9/97c2811d93690c5d7f221dcd7e7b048d8a8038b9e775f1bcfbcdd5660727/wikilink-0.3.0.tar.gz" } ], "0.3.0.post1": [ { "comment_text": "", "digests": { "md5": "308a4ecbf598115b7032e0a2dbc033ad", "sha256": "0a4d7b74fef81a880339be27c1157bb20ea2854e656766d2ae8379339631ea94" }, "downloads": -1, "filename": "wikilink-0.3.0.post1-py3-none-any.whl", "has_sig": false, "md5_digest": "308a4ecbf598115b7032e0a2dbc033ad", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.0, <4", "size": 16880, "upload_time": "2019-03-30T14:24:35", "url": "https://files.pythonhosted.org/packages/00/8d/d423436ac2fcba1f715c66c426d051738d39076cd51e7218613ede6b96ad/wikilink-0.3.0.post1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4a3847eb0e1f977770f2a591b4508420", "sha256": "1f22b27d8f1e2a77aa4060491c0232df9c623ec8670de33220c70f8dc0b294e5" }, "downloads": -1, "filename": "wikilink-0.3.0.post1.tar.gz", "has_sig": false, "md5_digest": "4a3847eb0e1f977770f2a591b4508420", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0, <4", "size": 18408, "upload_time": "2019-03-30T14:25:27", "url": "https://files.pythonhosted.org/packages/b5/7e/b8fa75975522897b2a31dca41ca2158c4d0b5b80668afd0b63fdc092f430/wikilink-0.3.0.post1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "308a4ecbf598115b7032e0a2dbc033ad", "sha256": "0a4d7b74fef81a880339be27c1157bb20ea2854e656766d2ae8379339631ea94" }, "downloads": -1, "filename": "wikilink-0.3.0.post1-py3-none-any.whl", "has_sig": false, "md5_digest": "308a4ecbf598115b7032e0a2dbc033ad", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.0, <4", "size": 16880, "upload_time": "2019-03-30T14:24:35", "url": "https://files.pythonhosted.org/packages/00/8d/d423436ac2fcba1f715c66c426d051738d39076cd51e7218613ede6b96ad/wikilink-0.3.0.post1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4a3847eb0e1f977770f2a591b4508420", "sha256": "1f22b27d8f1e2a77aa4060491c0232df9c623ec8670de33220c70f8dc0b294e5" }, "downloads": -1, "filename": "wikilink-0.3.0.post1.tar.gz", "has_sig": false, "md5_digest": "4a3847eb0e1f977770f2a591b4508420", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.0, <4", "size": 18408, "upload_time": "2019-03-30T14:25:27", "url": "https://files.pythonhosted.org/packages/b5/7e/b8fa75975522897b2a31dca41ca2158c4d0b5b80668afd0b63fdc092f430/wikilink-0.3.0.post1.tar.gz" } ] }