{ "info": { "author": "Shobeir Fakhraei", "author_email": "shobeir@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python" ], "description": "# GraphiPy\nA Universal Social Data Extractor\n\nGraphiPy simplifies the extraction of data from different social media websites. Instead of having to study the different APIs of each website, just provide the API keys and use GraphiPy!\n\nCurrently, GraphiPy provides support to 7 different websites:\n- [Reddit](https://www.reddit.com/dev/api/)\n- [Facebook](https://developers.facebook.com/docs/graph-api/)\n- [LinkedIn](https://developer.linkedin.com/docs/rest-api#) (Work in progress) \n- [Pinterest](https://developers.pinterest.com/docs/getting-started/introduction/)\n- [Tumblr](https://www.tumblr.com/docs/en/api/v2)\n- [Twitter](https://developer.twitter.com/en/docs)\n- [YouTube](https://developers.google.com/youtube/v3/)\n\n## How it Works\nGraphiPy acts like a Graph in which all the different information are stored as nodes and connections between different nodes will be stored as edges.\n\nCurrently, we have 3 graph types:\n- [Dictionary](https://docs.python.org/3/tutorial/datastructures.html#dictionaries)\n- [Pandas](https://pandas.pydata.org/)\n- [Neo4j](https://neo4j.com/)\n\nAll graph types are based on a class called [BaseGraph](https://github.com/shobeir/GraphiPy/blob/master/graphipy/graph/graph_base.py)\n\n## [Dictionary Graph](https://github.com/shobeir/GraphiPy/blob/master/graphipy/graph/graph_dict.py)\nTo provide easy access, the type of the nodes and edges are stored as keys while the rows of data are stored as values. The rows of data is also a dictionary, with the \\_id of the nodes and edges as keys (to avoid duplicate data) and the values would be the node and edge objects.\n\n## [Pandas Graph](https://github.com/shobeir/GraphiPy/blob/master/graphipy/graph/graph_pandas.py)\nSimilar to the Dictionary Graph, the type of nodes and edges are stored as keys and the dataframes are stored as values.\n\nSince inserting rows one by one into the dataframe takes polynomial time, the implementation uses the help of Python's dictionary. After a certain number of elements are inside the dictionaries, all of them are converted into dataframes and appended into the existing dataframes.\n\n## [Neo4j Graph](https://github.com/shobeir/GraphiPy/blob/master/graphipy/graph/graph_neo4j.py)\nGraphiPy directly connects and inserts to your Neo4j database. In order to avoid duplicate data, MERGE is used instead of CREATE. Thus, whenever an existing node \\_id is inserted, its attributes are updated instead of inserting a completely new node.\n\nFor more information on how to use GraphiPy, please see one of the notebooks:\n- [Reddit](https://github.com/shobeir/GraphiPy/blob/master/demo/RedditDemo.ipynb)\n- [Facebook](https://github.com/shobeir/GraphiPy/blob/master/demo/FacebookDemo.ipynb)\n- [LinkedIn](https://github.com/shobeir/GraphiPy/blob/master/demo/LinkedinDemo.ipynb)\n- [Pinterest](https://github.com/shobeir/GraphiPy/blob/master/demo/PinterestDemo.ipynb)\n- [Tumblr](https://github.com/shobeir/GraphiPy/blob/master/demo/TumblrDemo.ipynb)\n- [Twitter](https://github.com/shobeir/GraphiPy/blob/master/demo/TwitterDemo.ipynb)\n- [YouTube](https://github.com/shobeir/GraphiPy/blob/master/demo/YoutubeDemo.ipynb)\n\n## [Data Exportation and Visualization with NetworkX](https://github.com/shobeir/GraphiPy/blob/master/graphipy/exportnx.py)\nGraphiPy can also export data as CSV files and visualize the graphs using NetworkX. It is also possible to convert from one graph type to another (e.g. from Pandas to Neo4j and vice versa). For more information, see [this notebook](https://github.com/shobeir/GraphiPy/blob/master/demo/DataExportDemo.ipynb)\n\n## Gephi Support\n[Gephi](https://gephi.org/) is an open-source software for network visualization and analysis. It helps data analysts to intuitively reveal patterns and trends, highlight outliers and tells stories with their data.\n\nThe csv files exported from Graphify can be directly imported to Gephi.\n\n### Data of 20 youtube videos with keyword \"dota2\"\n![Data of 20 youtube videos with keyword \"dota2\"](https://user-images.githubusercontent.com/25040463/48648253-85e33080-e9a3-11e8-9412-cf0f2bd286de.png)\n\n## Folder Structure\n```\n.\n\u251c\u2500\u2500 demo\n| \u251c\u2500\u2500 DataExportDemo.ipynb\n| \u251c\u2500\u2500 FacebookDemo.ipynb\n| \u251c\u2500\u2500 LinkedinDemo.ipynb\n| \u251c\u2500\u2500 PinterestDemo.ipynb\n| \u251c\u2500\u2500 RedditDemo.ipynb\n| \u251c\u2500\u2500 TumblrDemo.ipynb\n| \u251c\u2500\u2500 TwitterDemo.ipynb\n| \u2514\u2500\u2500 YoutubeDemo.ipynb\n\u251c\u2500\u2500 graphipy\n| \u251c\u2500\u2500 api\n| | \u251c\u2500\u2500 _init_.py\n| | \u251c\u2500\u2500 facebook_api.py\t\n| | \u251c\u2500\u2500 linkedin_api.py\t\n| | \u251c\u2500\u2500 pinterest_api.py\n| | \u251c\u2500\u2500 reddit_api.py\t\n| | \u251c\u2500\u2500 tumblr_api.py\t\n| | \u251c\u2500\u2500 twitter_api.py\t\n| | \u2514\u2500\u2500 youtube_api.py\t\n| \u251c\u2500\u2500 graph\n| | \u251c\u2500\u2500 _init_.py\n| | \u251c\u2500\u2500 graph_base.py\n| | \u251c\u2500\u2500 graph_dict.py\n| | \u251c\u2500\u2500 graph_neo4j.py\n| | \u2514\u2500\u2500 graph_pandas.py\n| \u251c\u2500\u2500 _init_.py\n| \u251c\u2500\u2500 exportnx.py\n| \u2514\u2500\u2500 graphipy.py\n\u251c\u2500\u2500 .gitignore \n\u251c\u2500\u2500 README.md\n\u2514\u2500\u2500 requirements.txt\n```\n| Folder/Filename | Description |\n|----|:---:|\n| demo | Jupyter notebooks explaining how to use the library in detail |\n| graphipy | The major directory of the library containing classes for all social media platforms, graph data structure and exporting functionalities |\n| graphipy/api | Class definitions for all social media platforms, including fetch functions and customized nodes and edges |\n| graphipy/graph | Definitions of the graph data structure implemented with dictionary, Pandas and Neo4J |\n| requirements.txt | All dependencies |\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/shobeir/GraphiPy", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "GraphiPy", "package_url": "https://pypi.org/project/GraphiPy/", "platform": "", "project_url": "https://pypi.org/project/GraphiPy/", "project_urls": { "Homepage": "https://github.com/shobeir/GraphiPy" }, "release_url": "https://pypi.org/project/GraphiPy/0.0.1/", "requires_dist": [ "pytumblr (>=0.0.8)", "httplib2 (>=0.11.3)", "google-api-python-client (>=1.7.4)", "google-auth (>=1.5.1)", "google-auth-oauthlib (>=0.2.0)", "google-auth-httplib2 (>=0.0.3)", "oauth2client (>=4.1.3)", "facebook-sdk (>=3.0.0)", "pandas (>=0.23.0)", "py2neo (>=4.1.0)", "networkX (>=2.2)" ], "requires_python": "", "summary": "A Universal Social Data Extractor", "version": "0.0.1" }, "last_serial": 4558106, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "d31838d95b96548015f27068120f76f7", "sha256": "f9c7817bacf118885f0f3517e62f13e63d69e04e25686c644af1ebc3629dd0f4" }, "downloads": -1, "filename": "GraphiPy-0.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d31838d95b96548015f27068120f76f7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28032, "upload_time": "2018-11-20T05:42:22", "url": "https://files.pythonhosted.org/packages/38/13/0232bd272040a62a529884f8410c6bca409da36255be521ca8e10fe34770/GraphiPy-0.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2f587a5ed96256592898ca478ed74311", "sha256": "1fd35644b90bea9d52f19e9ff45eb3b39598e7b65d7e9c7bf32c4bb5e15fb330" }, "downloads": -1, "filename": "GraphiPy-0.0.0.tar.gz", "has_sig": false, "md5_digest": "2f587a5ed96256592898ca478ed74311", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22848, "upload_time": "2018-11-20T05:42:26", "url": "https://files.pythonhosted.org/packages/b7/2f/d439db00389494bdbfafaff934180131e121fe3b1ac7bb24739f1da3b7e0/GraphiPy-0.0.0.tar.gz" } ], "0.0.1": [ { "comment_text": "", "digests": { "md5": "237666debe705df3355a9461b4bd2573", "sha256": "91d4bf3205d66244556c38d3c5644e17e21ca9789afe887e4c7fc48e1a6d1bea" }, "downloads": -1, "filename": "GraphiPy-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "237666debe705df3355a9461b4bd2573", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28580, "upload_time": "2018-11-20T06:02:00", "url": "https://files.pythonhosted.org/packages/5c/99/ceb6a2ff3a81b6e0ec049ea308bf9779d35551345643f23861d17daf4bfb/GraphiPy-0.0.1-py3-none-any.whl" } ], "0.0.1a0": [ { "comment_text": "", "digests": { "md5": "5a7549bf89dde591cffb33cbfde8b856", "sha256": "dce71dad3b2acea73dde4fd9d7c6e29c2e1a25274565f13425415983709662d0" }, "downloads": -1, "filename": "GraphiPy-0.0.1a0-py3-none-any.whl", "has_sig": false, "md5_digest": "5a7549bf89dde591cffb33cbfde8b856", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28846, "upload_time": "2018-11-28T00:54:46", "url": "https://files.pythonhosted.org/packages/70/82/d29a58614995b88c14687e49b3d9648d1c0c66796e3078aa5c6c5e10c523/GraphiPy-0.0.1a0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "19255b12f0b0835db2c28b891993474b", "sha256": "1df5e742dda89f68e28f0e537c10d5e1d0e142bb5c8dfe8fa13750f39eb4b90d" }, "downloads": -1, "filename": "GraphiPy-0.0.1a0.tar.gz", "has_sig": false, "md5_digest": "19255b12f0b0835db2c28b891993474b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24279, "upload_time": "2018-11-28T00:54:47", "url": "https://files.pythonhosted.org/packages/58/63/98fea09e83bc1ef102e27e94c05aecf2704d0c37dcd5b16fd5ad70800bd6/GraphiPy-0.0.1a0.tar.gz" } ], "0.0.2a0": [ { "comment_text": "", "digests": { "md5": "c6e9602c4a8f040b6372b056eb4dce6e", "sha256": "d87e21a387e56f5682889c0c3c0748bb90aeb6cc0de6800dc7c5a58115141146" }, "downloads": -1, "filename": "GraphiPy-0.0.2a0-py3-none-any.whl", "has_sig": false, "md5_digest": "c6e9602c4a8f040b6372b056eb4dce6e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28844, "upload_time": "2018-11-28T00:59:03", "url": "https://files.pythonhosted.org/packages/09/57/26a0b03c205ed47fe7b17a11559f9c32ba21211f2b918f8074201232597a/GraphiPy-0.0.2a0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3df169d9b8c3e3d37609519e47b8a6e5", "sha256": "5c662d162b70561b0e2f3354515bf57967d9c435f786331cca546d59b26d9033" }, "downloads": -1, "filename": "GraphiPy-0.0.2a0.tar.gz", "has_sig": false, "md5_digest": "3df169d9b8c3e3d37609519e47b8a6e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24273, "upload_time": "2018-11-28T00:59:05", "url": "https://files.pythonhosted.org/packages/5b/bd/7e37402160ede4079f9bf91ce13ea0c91e1355ea1fe34f294e5dbf107ae5/GraphiPy-0.0.2a0.tar.gz" } ], "0.0.2b0": [ { "comment_text": "", "digests": { "md5": "9e98898d390f0ead798a727b013bc1ba", "sha256": "ced71108e1ebbd8330c6bd5ec849ec0a82740d31204dd8a7f2eebbd4a2205768" }, "downloads": -1, "filename": "GraphiPy-0.0.2b0-py3-none-any.whl", "has_sig": false, "md5_digest": "9e98898d390f0ead798a727b013bc1ba", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28862, "upload_time": "2018-11-29T23:56:08", "url": "https://files.pythonhosted.org/packages/8b/50/72387ad6d0afa658b47ccd8b5795a07673000e24c8f4b5b85da9b5e5a45d/GraphiPy-0.0.2b0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f842c9bc554a2c053fdda1188dcc4c81", "sha256": "affe86cc239c9ed7b154d1d97068f12ec0061b2eb73b943ec647fa651aab9cec" }, "downloads": -1, "filename": "GraphiPy-0.0.2b0.tar.gz", "has_sig": false, "md5_digest": "f842c9bc554a2c053fdda1188dcc4c81", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24433, "upload_time": "2018-11-29T23:56:09", "url": "https://files.pythonhosted.org/packages/f5/9c/32c6d9a161f623335a4d1a4f74ab892767df8c16631ef05faf5d80ac9fc2/GraphiPy-0.0.2b0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "237666debe705df3355a9461b4bd2573", "sha256": "91d4bf3205d66244556c38d3c5644e17e21ca9789afe887e4c7fc48e1a6d1bea" }, "downloads": -1, "filename": "GraphiPy-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "237666debe705df3355a9461b4bd2573", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28580, "upload_time": "2018-11-20T06:02:00", "url": "https://files.pythonhosted.org/packages/5c/99/ceb6a2ff3a81b6e0ec049ea308bf9779d35551345643f23861d17daf4bfb/GraphiPy-0.0.1-py3-none-any.whl" } ] }