{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# DiShIn: Semantic Similarity Measures using Disjunctive Shared Information\n\nThis software package provides the basic functions to start using semantic similarity measures directly from a rdf or owl file. \n\nA web tool using this package is available at: http://labs.fc.ul.pt/dishin/\n\nPackage documentation: https://dishin.readthedocs.io/en/latest/\n\n### INSTALLATION\n\nEither clone this repository or install from pypi:\n\n```\npip install ssmpy\n```\n=======\n## Reference: \n\n- F. Couto and A. Lamurias, \u201cSemantic similarity definition,\u201d in Encyclopedia of Bioinformatics and Computational Biology (S. Ranganathan, K. Nakai, C. Sch\u00f6nbach, and M. Gribskov, eds.), vol. 1, pp. 870\u2013876, Oxford: Elsevier, 2019\n[https://doi.org/10.1016/B978-0-12-809633-8.20401-9]\n[https://www.researchgate.net/publication/323219905_Semantic_Similarity_Definition]\n\n## USAGE: \n\nYou can use DiShIn as a command line tool with the dishin.py script of this repository:\n\n```shell\npython dishin.py .db \npython dishin.py .[owl|rdf] .db \n```\n\nor use the python functions directly:\n\n```python\n>>> import ssmpy\n```\n\nYou can find more usage examples at https://dishin.readthedocs.io/en/latest/other_examples.html.\n\n### Metals Example\n\nTo create the semantic base file (_metals.db_) from the _metals.owl_ file:\n```shell\npython dishin.py metals.owl metals.db https://raw.githubusercontent.com/lasigeBioTM/ssm/master/metals.owl# http://www.w3.org/2000/01/rdf-schema#subClassOf metals.txt\n```\n\nThe _metals.txt_ contains the a list of occurrences. For example, the following contents has one occurrence for each term, except gold and silver with two occurrences.\n```txt\ngold\nsilver\ngold\nsilver\ncopper\nplatinum\npalladium\nmetal\ncoinage\nprecious\n```\n\nNow to calculate the similarity between _copper_ and _gold_ execute:\n\n```shell\npython dishin.py metals.db copper gold\n```\n\nOutput:\n```txt\nResnik DiShIn intrinsic 0.2938933324510595\nResnik MICA intrinsic 0.587786664902119\nLin DiShIn intrinsic 0.19539774554219633\nLin MICA intrinsic 0.39079549108439265\nJC DiShIn intrinsic 0.41316029085112316\nJC MICA intrinsic 0.5456783339686456\nResnik DiShIn extrinsic 0.22599256187152864\nResnik MICA extrinsic 0.45198512374305727\nLin DiShIn extrinsic 0.1504595366201814\nLin MICA extrinsic 0.3009190732403628\nJC DiShIn extrinsic 0.3918424740632774\nJC MICA extrinsic 0.47617668319259754\n```\n\nUsing the python function directly (first download metals.db and metals.txt from this repository):\n```python\n>>> ssmpy.create_semantic_base(\"metals.owl\", \"metals.db\", \"https://raw.githubusercontent.com/lasigeBioTM/ssm/master/metals.owl#\", \"http://www.w3.org/2000/01/rdf-schema#subClassOf\", \"metals.txt\")\n>>> ssmpy.semantic_base(\"metals.db\")\n>>> e1 = ssmpy.get_id(\"copper\")\n>>> e2 = ssmpy.get_id(\"gold\")\n>>> ssmpy.ssm_resnik (e1,e2)\n```\n\n### Gene Ontology (GO) and UniProt proteins Example\n\nDownload the lastest version of the database we created:\n```shell\nwget http://labs.rd.ciencias.ulisboa.pt/dishin/go201907.db.gz\ngunzip -N go201907.db.gz\n```\n\nNow to calculate the similarity between _maltose biosynthetic process_ and _maltose catabolic process_ execute:\n```shell\npython dishin.py go.db GO_0000023 GO_0000025\n```\n\nOutput:\n```txt\nResnik DiShIn intrinsic 3.7851272458782113\nResnik MICA intrinsic 8.911024218626034\nLin DiShIn intrinsic 0.4088671082942098\nLin MICA intrinsic 0.9625633347404052\nJC DiShIn intrinsic 0.09136641197816901\nJC MICA intrinsic 1.442695040888967\nResnik DiShIn extrinsic 4.273448119532465\nResnik MICA extrinsic 10.354796690276364\nLin DiShIn extrinsic 0.3919119421698985\nLin MICA extrinsic 0.9496239027945961\nJC DiShIn extrinsic 0.0754073347935026\nJC MICA extrinsic 0.9102392266268364\n```\n\nNow to calculate the similarity between proteins [Q12345](http://www.uniprot.org/uniprot/Q12345) and [Q12346](http://www.uniprot.org/uniprot/Q12346) execute:\n\n```shell\npython dishin.py go.db Q12345 Q12346\n```\n\nOutput:\n```txt\nResnik DiShIn intrinsic 1.3730675314939769\nResnik MICA intrinsic 1.653493583942882\nLin DiShIn intrinsic 0.16453282374961184\nLin MICA intrinsic 0.19975479444590458\nJC DiShIn intrinsic 0.081825490673384\nJC MICA intrinsic 0.09503231097236876\nResnik DiShIn extrinsic 0.9309878004221438\nResnik MICA extrinsic 1.143670161919403\nLin DiShIn extrinsic 0.15280642004118333\nLin MICA extrinsic 0.19273825637513847\nJC DiShIn extrinsic 0.1013441951183969\nJC MICA extrinsic 0.11970943511723715\n```\n\nTo create an updated version of the database, download the ontology and annotations:\n```shell\nwget http://purl.obolibrary.org/obo/go.owl\nwget http://geneontology.org/gene-associations/goa_uniprot_all_noiea.gaf.gz\ngunzip goa_uniprot_all_noiea.gaf.gz \n```\n\nAnd then create the new database:\n```shell\npython dishin.py go.owl go.db http://purl.obolibrary.org/obo/ http://www.w3.org/2000/01/rdf-schema#subClassOf goa_uniprot_all_noiea.gaf\n```\n\n### Chemical Entities of Biological Interest (ChEBI) Example\n\nDownload the lastest version of the database we created:\n```shell\nwget http://labs.rd.ciencias.ulisboa.pt/dishin/chebi201907.db.gz\ngunzip -N chebi201907.db.gz\n```\n\nNow to calculate the similarity between _aripiprazole_ and _bithionol_ execute:\n```shell\npython dishin.py chebi.db CHEBI_31236 CHEBI_3131\n```\n\nOutput:\n```txt\nResnik DiShIn intrinsic 1.3532341094444025\nResnik MICA intrinsic 5.3808132551673\nLin DiShIn intrinsic 0.12372266288871554\nLin MICA intrinsic 0.49195371280548356\nJC DiShIn intrinsic 0.05216806727627202\nJC MICA intrinsic 0.08997939012118301\n```\nTo create an updated version of the database, download the ontology:\n```shell\nwget ftp://ftp.ebi.ac.uk/pub/databases/chebi/ontology/chebi_lite.owl\n```\n\nAnd then create the new database:\n```shell\npython dishin.py chebi_lite.owl chebi.db http://purl.obolibrary.org/obo/ http://www.w3.org/2000/01/rdf-schema#subClassOf ''\n```\n\n### Human Phenotype (HP) Example\n\nDownload the lastest version of the database we created:\n```shell\nwget http://labs.rd.ciencias.ulisboa.pt/dishin/hp201907.db.gz\ngunzip -N hp201907.db.gz\n```\n\nNow to calculate the similarity between _Optic nerve coloboma_ and _Optic nerve dysplasia_ execute:\n```shell\npython dishin.py hp.db HP_0000588 HP_0001093\n```\n\nOutput:\n```txt\nResnik DiShIn intrinsic 4.514739038358012\nResnik MICA intrinsic 5.917583373691076\nLin DiShIn intrinsic 0.5079590611976912\nLin MICA intrinsic 0.665794870870856\nJC DiShIn intrinsic 0.11433121677975834\nJC MICA intrinsic 0.16832667824491762\n```\n\nTo create an updated version of the database, download the ontology:\n```shell\nwget http://purl.obolibrary.org/obo/hp.owl\n```\n\nAnd then create the new database:\n```shell\npython dishin.py hp.owl hp.db http://purl.obolibrary.org/obo/ http://www.w3.org/2000/01/rdf-schema#subClassOf ''\n```\n\n### Human Disease Ontology (HDO) Example\n\nDownload the lastest version of the database we created:\n```shell\nwget http://labs.rd.ciencias.ulisboa.pt/dishin/doid201907.db.gz\ngunzip -N doid201907.db.gz\n```\n\nNow to calculate the similarity between _Asthma_ and _Lung cancer_ execute:\n```shell\npython dishin.py doid.db DOID_2841 DOID_1324\n```\n\nOutput:\n```txt\nResnik DiShIn intrinsic 2.316903156622129\nResnik MICA intrinsic 3.730767546816189\nLin DiShIn intrinsic 0.40974430023007496\nLin MICA intrinsic 0.6597862035890811\nJC DiShIn intrinsic 0.14980794775373127\nJC MICA intrinsic 0.2599100799712222\n```\nTo create an updated version of the database, download the ontology:\n```shell\nwget http://purl.obolibrary.org/obo/doid.owl\n```\n\nAnd then create the new database:\n```shell\npython dishin.py doid.owl doid.db http://purl.obolibrary.org/obo/ http://www.w3.org/2000/01/rdf-schema#subClassOf ''\n```\n\n### Radiology Lexicon (RadLex) Example\n\nDownload the lastest version of the database we created:\n```shell\nwget http://labs.rd.ciencias.ulisboa.pt/dishin/radlex201907.db.gz\ngunzip -N radlex201907.db.gz\n```\n\nNow to calculate the similarity between _nervous system of right upper limb_ and _nervous system of left upper limb_ execute:\n```shell\npython dishin.py radlex.db RID16139 RID16140\n```\n\nOutput:\n```txt\nResnik MICA intrinsic 9.363855135365721\nLin MICA intrinsic 0.9310781524369027\nJC MICA intrinsic 0.7213475204444816\n```\n\nTo create an updated version of the database, download the _RDF/XML_ version from http://bioportal.bioontology.org/ontologies/RADLEX and save it as _radlex.rdf_\n\nAnd then create the new database:\n```shell\npython dishin.py radlex.rdf radlex.db http://radlex.org/RID/ http://www.w3.org/2000/01/rdf-schema#subClassOf '' \n```\n\n### WordNet Example\n\nDownload the lastest version of the database we created:\n```shell\nwget http://labs.rd.ciencias.ulisboa.pt/dishin/wordnet201907.db.gz\ngunzip wordnet201907.db.gz\n```\n\nNow to calculate the similarity between the nouns _ambulance_ and _motorcycle_ execute:\n```shell\npython dishin.py wordnet.db ambulance-noun-1 motorcycle-noun-1\n```\n\nOutput:\n```txt\nResnik MICA intrinsic 6.331085809208157\nLin MICA intrinsic 0.6792379292396559\nJC MICA intrinsic 0.1672363673134892\n```\n\nTo create an updated version of the database, download the ontology:\n```shell\nwget http://www.w3.org/2006/03/wn/wn20/rdf/wordnet-hyponym.rdf\n```\n\nAnd then create the new database:\n```shell\npython dishin.py wordnet-hyponym.rdf wordnet.db http://www.w3.org/2006/03/wn/wn20/instances/synset- http://www.w3.org/2006/03/wn/wn20/schema/hyponymOf ''\n```\n## Source Code \n\n- semanticbase.py : provides a function to produce the semantic-base as a SQLite database \n\n- ssm.py : provides the functions to calculate semantic similarity based on the SQLite database\n\n- annotations.py : provides the functions to get the annotations for the given proteins \n\n- dishin.py : executes the functions according to the input given\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/lasigeBioTM/DiShIn", "keywords": "graphs,semantic similarity,ontologies", "license": "", "maintainer": "Andre Lamurias", "maintainer_email": "alamurias@lasige.di.fc.ul.pt", "name": "ssmpy", "package_url": "https://pypi.org/project/ssmpy/", "platform": "", "project_url": "https://pypi.org/project/ssmpy/", "project_urls": { "Homepage": "https://github.com/lasigeBioTM/DiShIn" }, "release_url": "https://pypi.org/project/ssmpy/0.2.3/", "requires_dist": [ "rdflib" ], "requires_python": "", "summary": "Basic functions to start using semantic similarity measures directly from a rdf or owl file.", "version": "0.2.3" }, "last_serial": 5983517, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "cd3e82cbc0c2ecdc02ae8c0eb4b6e0a6", "sha256": "e45db9ec180283f6a0ecdff27aa9d62b7d0da219295726cec8d6e09bf072f901" }, "downloads": -1, "filename": "ssmpy-0.1.0-py3.6.egg", "has_sig": false, "md5_digest": "cd3e82cbc0c2ecdc02ae8c0eb4b6e0a6", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 17455, "upload_time": "2019-06-26T16:24:22", "url": "https://files.pythonhosted.org/packages/5e/77/df1d3fbda46ad2bc579092012fbcad83491e2284d4036c56b60d0ad57cfa/ssmpy-0.1.0-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "0bc2ce28b60767e2fd96fa00f44ff9f3", "sha256": "273419d7caf61e4b8b15397651f9edb645e4bec99e08a5a3c3552f7fa46fe326" }, "downloads": -1, "filename": "ssmpy-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0bc2ce28b60767e2fd96fa00f44ff9f3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17285, "upload_time": "2019-06-26T16:24:19", "url": "https://files.pythonhosted.org/packages/b6/aa/a135a8e938ca90e72e042d6af69839863daf13abd4af693c4aaa6f3094c8/ssmpy-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "15b6e02e4d099c605499119b2fdce3bb", "sha256": "0eeb79f2a9bb19da3175ebf529a0a058ecffbf74c4f4690d3f749d08338799a8" }, "downloads": -1, "filename": "ssmpy-0.1.0.tar.gz", "has_sig": false, "md5_digest": "15b6e02e4d099c605499119b2fdce3bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11217, "upload_time": "2019-06-26T16:24:24", "url": "https://files.pythonhosted.org/packages/f2/f1/5a3d786b83837bd2e4b9e97db6fdd16b000d307f4d60b2ae82e46c28d397/ssmpy-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "d75e2aeb8d92db40ccedf38143d3de47", "sha256": "dd7e4f90686b43638794ee2b18f5246c676f49787caa2dddbfa0ce4f81487446" }, "downloads": -1, "filename": "ssmpy-0.1.1-py3.7.egg", "has_sig": false, "md5_digest": "d75e2aeb8d92db40ccedf38143d3de47", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 17658, "upload_time": "2019-10-01T14:11:50", "url": "https://files.pythonhosted.org/packages/06/7c/bcca4405da7c0098a082fb32117d912d4710da8afc47d6a9d5e8ce79d0dc/ssmpy-0.1.1-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "77b735e8f4f6fb2f47fd64b1b5785d0b", "sha256": "a8abf9f96bcb5e0b2752872035fa34c66a8009e73c8c30ff2c6e3902c36234cc" }, "downloads": -1, "filename": "ssmpy-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "77b735e8f4f6fb2f47fd64b1b5785d0b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17358, "upload_time": "2019-10-01T14:11:48", "url": "https://files.pythonhosted.org/packages/5b/47/ddb23fefcc4a9491260f9a20507b0477f648c63e6440c88bbce9a5f5a1ff/ssmpy-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3ac5d2c5f58e7204fdf1a77da9393858", "sha256": "998b5626da2074464a62dc51dfec56bff2a9a935271a865792743dc4c818a676" }, "downloads": -1, "filename": "ssmpy-0.1.1.tar.gz", "has_sig": false, "md5_digest": "3ac5d2c5f58e7204fdf1a77da9393858", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11201, "upload_time": "2019-10-01T14:11:51", "url": "https://files.pythonhosted.org/packages/f0/c2/e2b58ddf7535232564aa745f41d681b3b28f1bbcad3b87a1d94630fef7c8/ssmpy-0.1.1.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "819e030f49c7f056b97c02f5da38be2c", "sha256": "ee7c0100d9d482f7d47f7d6a60c2046584ba7f574aa58a60365a5ccfc20b48bf" }, "downloads": -1, "filename": "ssmpy-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "819e030f49c7f056b97c02f5da38be2c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17377, "upload_time": "2019-10-02T10:15:00", "url": "https://files.pythonhosted.org/packages/65/78/cf4188beaefd34dfc95c22ecbffa7501dca8cbcccf1a3eec5dfab88cbeb6/ssmpy-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "adcc6f1c3882c0486995578ce7280648", "sha256": "78e4c9845eceb95ff69b536d862c2a874e2d54ffaa5090d244faaa605b9edc96" }, "downloads": -1, "filename": "ssmpy-0.1.3.tar.gz", "has_sig": false, "md5_digest": "adcc6f1c3882c0486995578ce7280648", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11219, "upload_time": "2019-10-02T10:15:01", "url": "https://files.pythonhosted.org/packages/43/34/5ba11bfd536d2a7475702aafadcb5f97061878524743179e04080ace7352/ssmpy-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "564637a3b9610a5206e77a4dbe498a3d", "sha256": "a61f90bbc6a7e2d96ec2d3036f876db8737fb42c28bdd00a15eb67f1abcac80a" }, "downloads": -1, "filename": "ssmpy-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "564637a3b9610a5206e77a4dbe498a3d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17373, "upload_time": "2019-10-02T10:18:04", "url": "https://files.pythonhosted.org/packages/8a/92/b48e54471a70590848de2ca72f9a06c877955117fc9aa8232002db3bce4f/ssmpy-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a3464e5b7d992376cb90275eac70a3dc", "sha256": "a66341e14590a4d976c268287af1493446088169bcefbc7b7af0b2641d5c5e2a" }, "downloads": -1, "filename": "ssmpy-0.1.4.tar.gz", "has_sig": false, "md5_digest": "a3464e5b7d992376cb90275eac70a3dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11214, "upload_time": "2019-10-02T10:18:06", "url": "https://files.pythonhosted.org/packages/90/93/a9d0b8122c311415f036621a462d97e16f63c39c20b2417b22b31be8442a/ssmpy-0.1.4.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "49359d12654b55833bb2f44d79a170e7", "sha256": "fd4129b3dae115f1edadf61b2d7e1a633d85ee34faff0015558093face14cab7" }, "downloads": -1, "filename": "ssmpy-0.2.0-py3.7.egg", "has_sig": false, "md5_digest": "49359d12654b55833bb2f44d79a170e7", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 17790, "upload_time": "2019-10-02T10:24:48", "url": "https://files.pythonhosted.org/packages/8c/a8/e9c8420e1bad43d232a7204b47a73b44c02ac0fc52d8da519f77f7cba158/ssmpy-0.2.0-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "1fbd3138ce38e3fb0206a80599e5888c", "sha256": "903aa032c332c61a8c469674a56be44bed72d98a48f445635e39dbeb8bef6985" }, "downloads": -1, "filename": "ssmpy-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1fbd3138ce38e3fb0206a80599e5888c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17396, "upload_time": "2019-10-02T10:24:46", "url": "https://files.pythonhosted.org/packages/f1/eb/a98705e7e33d97b70666690f3cf299e65537d2676bfd95c69dad76f28b4e/ssmpy-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "473ef53dab2e1b67fe1ece24b95cc7b7", "sha256": "9b8f5d1d57a6e8fa502766cb20fe139f7fad239dbf323a8cf6d8920cf486cbf0" }, "downloads": -1, "filename": "ssmpy-0.2.0.tar.gz", "has_sig": false, "md5_digest": "473ef53dab2e1b67fe1ece24b95cc7b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11234, "upload_time": "2019-10-02T10:24:50", "url": "https://files.pythonhosted.org/packages/11/d7/d641214ad51fc4f8673ca7f42eba192239f80443d91081eef389e8d1a80d/ssmpy-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "484970a06e748d971f3de00935ccf4f7", "sha256": "ac1dc2fe2d16aa01b8de04994ff0b05230dbb9e86a35960aa8865f9b90462f4c" }, "downloads": -1, "filename": "ssmpy-0.2.1-py3.7.egg", "has_sig": false, "md5_digest": "484970a06e748d971f3de00935ccf4f7", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 17812, "upload_time": "2019-10-07T12:38:58", "url": "https://files.pythonhosted.org/packages/be/d1/a9af6ed1ddb1fafbb56da5141e0bcd841ad0fab9c34bbb5af5261ce7716a/ssmpy-0.2.1-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "70ecb3215c6b7a0c3a62d1187644dc49", "sha256": "26f8bf3d89ebb37928325134b4b1dcd9fc42dce6de73108ef0ff9533954a7e21" }, "downloads": -1, "filename": "ssmpy-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "70ecb3215c6b7a0c3a62d1187644dc49", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17403, "upload_time": "2019-10-07T12:45:18", "url": "https://files.pythonhosted.org/packages/64/4b/4f7b43d80b3536001fc394f74ab5b4dd59c4f8cc8af1fb54bd0b645fdf46/ssmpy-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "de99cc596af0e9c6cff4d3a1a89a7804", "sha256": "beac06d2f4d644ce79dc94d9b73ec860ba96bb460e911a53981ee9e2cdff59a3" }, "downloads": -1, "filename": "ssmpy-0.2.1.tar.gz", "has_sig": false, "md5_digest": "de99cc596af0e9c6cff4d3a1a89a7804", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11250, "upload_time": "2019-10-07T12:45:21", "url": "https://files.pythonhosted.org/packages/d6/e0/ffdd1d14c83c7c027901d6bcb95fd1701ffe47f23d42138214a017d7a29d/ssmpy-0.2.1.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "9223fef56df8e6d7279b084b1eabef01", "sha256": "54af5c7eff238c90ae88c433d66812483fb3d13a921790590eb526cff7abbe7e" }, "downloads": -1, "filename": "ssmpy-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "9223fef56df8e6d7279b084b1eabef01", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19881, "upload_time": "2019-10-16T13:51:43", "url": "https://files.pythonhosted.org/packages/fc/9d/ff7976f3cced169b4e996c79a28accd6b2167ae01ae4d9ea1624d385d172/ssmpy-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f5dae20ac0f1d34eb0defa8c2b6c34a6", "sha256": "4af5b426fad8a74a4769ad62fc3b93c33ffdad7a7816d4c37fa48cad45bff705" }, "downloads": -1, "filename": "ssmpy-0.2.3.tar.gz", "has_sig": false, "md5_digest": "f5dae20ac0f1d34eb0defa8c2b6c34a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13453, "upload_time": "2019-10-16T13:51:56", "url": "https://files.pythonhosted.org/packages/6e/1d/042e0005213c227b38a998574ba2a14a39a6cfe07f8e05e337d8380a5a0b/ssmpy-0.2.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9223fef56df8e6d7279b084b1eabef01", "sha256": "54af5c7eff238c90ae88c433d66812483fb3d13a921790590eb526cff7abbe7e" }, "downloads": -1, "filename": "ssmpy-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "9223fef56df8e6d7279b084b1eabef01", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19881, "upload_time": "2019-10-16T13:51:43", "url": "https://files.pythonhosted.org/packages/fc/9d/ff7976f3cced169b4e996c79a28accd6b2167ae01ae4d9ea1624d385d172/ssmpy-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f5dae20ac0f1d34eb0defa8c2b6c34a6", "sha256": "4af5b426fad8a74a4769ad62fc3b93c33ffdad7a7816d4c37fa48cad45bff705" }, "downloads": -1, "filename": "ssmpy-0.2.3.tar.gz", "has_sig": false, "md5_digest": "f5dae20ac0f1d34eb0defa8c2b6c34a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13453, "upload_time": "2019-10-16T13:51:56", "url": "https://files.pythonhosted.org/packages/6e/1d/042e0005213c227b38a998574ba2a14a39a6cfe07f8e05e337d8380a5a0b/ssmpy-0.2.3.tar.gz" } ] }