{ "info": { "author": "Renato Fabbri", "author_email": "renato.fabbri@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Information Technology", "Intended Audience :: Other Audience", "Intended Audience :: Religion", "Intended Audience :: Science/Research", "License :: Public Domain", "Programming Language :: Python :: 3", "Topic :: Artistic Software", "Topic :: Communications :: Email", "Topic :: Multimedia :: Graphics :: Presentation", "Topic :: Multimedia :: Sound/Audio :: Sound Synthesis", "Topic :: Multimedia :: Video :: Display", "Topic :: Other/Nonlisted Topic", "Topic :: Scientific/Engineering :: Information Analysis", "Topic :: Scientific/Engineering :: Physics", "Topic :: Scientific/Engineering :: Visualization", "Topic :: Text Processing", "Topic :: Text Processing :: Linguistic" ], "description": "==================================================================\nPython utilities for the analysis of the GMANE email list database\n==================================================================\n\nThis project delivers helper classes for the analysis of the GMANE\nemail database. Install with:\n\n $ pip install gmaneLegacy\n\nor\n\n $ python setup.py install\n\nFor greater control of customization (and debugging), clone the repo and install with pip with -e:\n\n $ git clone https://github.com/ttm/gmaneLegacy.git\n\n $ pip install -e \n\nThis install method is especially useful with\nreload function from IPython.lib.deepreload and the standard importlib.\n\nFunctionalities are based on physics articles on interaction networks:\n[1] Stability in human interaction networks: primitive typology of vertex, prominence of measures and activity statistics: http://arxiv.org/abs/1310.7769\n[2] A connective differentiation of textual production in interaction networks: http://arxiv.org/abs/1412.7309\n[3] Versinus: a visualization method for graphs in evolution: http://arxiv.org/abs/1412.7311\n\nWith core concepts of 1) analysis of topological structure; 2) analysis of textual production; 3) visualization of evolving structures. Activity distribution along time and among participants are also approached through specific routines and indirectly through 1), 2) and 3).\n\nIdeally, this package should ease:\n- Downloading GMANE email list data.\n- Building elementary data structures with downloaded data.\n- Analysis of data through complex networks and NLP criteria.\n- Visualization through diverse layout methods.\n\nPS.\nImplemented measures of symmetry in network agents activity by hand (not found in network and numeric packages) according to [1].\nPS2.\nongoing research in \ntests/newTextTables.py and\ntests/makeOverallTextAnalysis.py\nPS.\nAlso check the gmane Python package https://github.com/ttm/gmane\n\n\nUsage example\n=================\nDownload messages from one GMANE list:\n\n.. code:: python\n\n import gmane as g\n dl=g.DownloadGmaneData() # saves into ~/.gmane/\n dl.downloadListsIDS() # acquires all GMANE list_ids\n dl.downloadListMessages(dl.list_ids[100])\n dl.cleanDownloadedLists() # remove empty messages for coherence\n dl.downloadedStats() # creates ~/.gmane/stats.txt\n\n # to load message contents to Python objects:\n # load 10 messages from list with list_id gmane.ietf.rfc822\n lm=g.LoadMessages(\"gmane.ietf.rfc822\",10)\n\n # or access the structures downloaded to your filesystem\n dl=g.DownloadGmaneData()\n dl.getDownloadedLists()\n lms=[]\n # and download all messages from 5 lists\n for list_id in dl.downloaded_lists[:5]:\n lms.append(g.LoadMessages(list_id))\n\n # to load first three lists with the greated number\n # of downloaded messages:\n dl.downloadedStats() # might take a while\n load_msgs=[]\n for list_stat in dl.lists[:3]:\n list_id=list_stat[0]\n load_msgs.append(g.LoadMessages(list_id))\n\n # to make basic datastructures of a list with\n # greatest number of messages:\n ds=g.MessageDataStructures(load_msgs[0])\n mm=ds.messages\n ids=ds.message_ids\n print(\"first: \", mm[ids[0]][2], \"last:\", mm[ids[-1]][2])\n\n # circular (directional) statistics for activity along time\n # (hours of the day, days of the week, days of the month, etc):\n # mean_vec, mean_angle, size_mean_vec, circular_mean,\n # circular_variance, circular dispersion\n # and histograms\n ts=g.TimeStatistics(ds)\n print(\"made overall circular activity statistics along time\")\n\n # make latex tables to observe distributions within bins of interest\n hi=100*ts.hours[\"histogram\"]/ts.hours[\"histogram\"].sum()\n row_labels=list(range(24))\n tstring=g.parcialSums(row_labels,data=[hi],partials=[1,2,3,4,6,12],\n partial_labels=[\"h\",\"2h\",\"3h\",\"4h\",\"6h\",\"12h\"],datarow_labels=[\"APACHE\"])\n g.writeTex(tstring,\"here.tex\")\n\n ps=g.AgentStatistics(ds)\n print(\"made overall activity statistics among participants\")\n \n # build the interaction network of the messages:\n nw=g.InteractionNetwok(ds)\n\n print(\"number of nodes: {}, number of edges: {}\".format(\n nw.g.number_of_nodes(), nw.g.number_of_edges()))\n\n nm=g.NetworkMeasures(nw) # take measures, including symmetry related measures\n np=g.NetworkPartitioning(nm) # partition in primitive typology\n sa=np.sectorialized_agents # get members of each sector\n print(\"{} agents in periphery, {} are intermediary and {} hubs\".format(sa[0],sa[1],sa[2]))\n sa=np.sectorialized_agents__ # smoothed histogram for classification\n print(\"{} agents in periphery, {} are intermediary and {} hubs\".format(sa[0],sa[1],sa[2]))\n\n # draw\n nd=g.NetworkDrawer()\n print(\"drawer started\")\n nd.makeLayout(nm)\n print(\"gave (x,y) for each author with 5-15-80\")\n nd2=g.NetworkDrawer()\n print(\"drawer two started\")\n nd2.makeLayout(nm,np)\n print(\"gave (x,y) for each author with \\\n sectors by comparison with Erdos-Renyi\")\n nd.drawNetwork( iN,nm ,\"test.png\")\n nd2.drawNetwork( iN,nm,\"test2.png\")\n\n # make basic PCA plots of network measures:\n npca=g.NetworkPCA(nm)\n # Plot PCA with a colored primitive sectors \n npca=g.NetworkPCA(nm,np)\n\n # Evolves network with measures, partitions,\n # PCA, principal components and Versinus plots saved to disk\n lm=lms[0] # loaded messages from list with most messages\n ne=g.NetworkEvolution(step_size=10)\n ne.evolveRaw(lm.messages,imagerate=4,erdos_sectors=True)\n # ne.makeVideo() use this to avoid evolving again just to make video\n # see testDrawer.py or g.NetworkEvolution to make movies:\n # https://www.youtube.com/watch?v=iS8NwEy291g\n\n # after making network evolution measurements and video,\n # you can both make music:\n em=g.EvolutionMusic()\n print(\"music is done\")\n # avconv -i mixY.wav -i evo[....].avi final.avi\n # delivers you the final.avi animation with a soundtrack relative to network measures\n # currently it is the 'four hubs dance' by default:\n # https://www.youtube.com/watch?v=YxDiwzAUPeU\n\n # and further analysis of measures and Erdos sectors:\n et=g.EvolutionTimelines()\n print(\"Written png files with network measures along evolution timeline\")\n\n # Enjoy!\n\nFurther documentation is in tests/ folder and object docstrings.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ttm/gmaneLegacy", "keywords": "complexity networks human interaction physics data mining analysis visualization", "license": "Public Domain", "maintainer": "", "maintainer_email": "", "name": "gmaneLegacy", "package_url": "https://pypi.org/project/gmaneLegacy/", "platform": "", "project_url": "https://pypi.org/project/gmaneLegacy/", "project_urls": { "Homepage": "https://github.com/ttm/gmaneLegacy" }, "release_url": "https://pypi.org/project/gmaneLegacy/0.1.dev27/", "requires_dist": null, "requires_python": "", "summary": "Utilities for the analysis of the GMANE email list database", "version": "0.1.dev27" }, "last_serial": 5257198, "releases": { "0.1.dev26": [ { "comment_text": "", "digests": { "md5": "5d64abd3a4b416eb3ec19cb31a4fe3a4", "sha256": "9abdee7ad1406c0b13db75366eb645964f0d922194030d3634a58974b8526c2c" }, "downloads": -1, "filename": "gmaneLegacy-0.1.dev26.tar.gz", "has_sig": false, "md5_digest": "5d64abd3a4b416eb3ec19cb31a4fe3a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56218, "upload_time": "2019-05-11T19:38:00", "url": "https://files.pythonhosted.org/packages/60/ad/9e8283b23f6b8211c483860ac3ab02d3700d2541de7d070aecc45cafc3e1/gmaneLegacy-0.1.dev26.tar.gz" } ], "0.1.dev27": [ { "comment_text": "", "digests": { "md5": "9bec3b14b3d56f588dc462961270ed77", "sha256": "064f9317ec02db879e79ce93597d0969e729bd9b5d9792950cc6943fd188fa8a" }, "downloads": -1, "filename": "gmaneLegacy-0.1.dev27.tar.gz", "has_sig": false, "md5_digest": "9bec3b14b3d56f588dc462961270ed77", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56436, "upload_time": "2019-05-11T20:28:23", "url": "https://files.pythonhosted.org/packages/23/86/149eb9988026fadd32b6baac8b677022249282d7d97f4e1583e131c5cd11/gmaneLegacy-0.1.dev27.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9bec3b14b3d56f588dc462961270ed77", "sha256": "064f9317ec02db879e79ce93597d0969e729bd9b5d9792950cc6943fd188fa8a" }, "downloads": -1, "filename": "gmaneLegacy-0.1.dev27.tar.gz", "has_sig": false, "md5_digest": "9bec3b14b3d56f588dc462961270ed77", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56436, "upload_time": "2019-05-11T20:28:23", "url": "https://files.pythonhosted.org/packages/23/86/149eb9988026fadd32b6baac8b677022249282d7d97f4e1583e131c5cd11/gmaneLegacy-0.1.dev27.tar.gz" } ] }