{ "info": { "author": "Chris Gregory", "author_email": "christopher.b.gregory@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: MacOS :: MacOS X", "Programming Language :: Python", "Programming Language :: Python :: 3.7", "Topic :: Software Development" ], "description": "# SemiGenre\n\nThe SemiGenre library provides a Python interface for tagging and comparing music in a personal audio library. The purpose of SemiGenre is primarily to discover structure in musical preferences through [semi-supervised](https://en.wikipedia.org/wiki/Semi-supervised_learning) machine learning. Genres are not always the best way to talk about musical taste and SemiGenre aims to personalize the process of music recommendation by digging into the details of the music you care about most.\n\n[![CircleCI](https://circleci.com/gh/gregorybchris/semigenre/tree/master.svg?style=svg)](https://circleci.com/gh/gregorybchris/semigenre/tree/master)\n\n## Installation\n\nInstall the current PyPI release:\n\n```python\npip install semigenre\n```\n\nOr install from source:\n\n```python\npip install git+https://github.com/gregorybchris/semigenre\n```\n\n\n## Dependencies\n\nTo enable full use of the `semigenre.audio` module, install [VLC Media Player](https://download.cnet.com/VLC-Media-Player/3000-13632_4-10210434.html). The rest of the SemiGenre package will still work if you do not intend to listen to music through the SemiGenre media player.\n\n## Usage\n\nIn order to seed the SemiGenre package with personalized information, run the rating CLI and follow the prompts.\n\n```python\nfrom semigenre.audio.library import Library\nfrom semigenre.rating.cli import RatingCLI\n\nlibrary = Library('path/to/library.xml')\nRatingCLI(library).run()\n```\n\nThis package is currently in beta and interfaces are subject to change.\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/gregorybchris/semigenre", "keywords": "music,song,genre,recommend,sound,tune", "license": "Apache Software License", "maintainer": "", "maintainer_email": "", "name": "semigenre", "package_url": "https://pypi.org/project/semigenre/", "platform": "", "project_url": "https://pypi.org/project/semigenre/", "project_urls": { "Homepage": "https://github.com/gregorybchris/semigenre" }, "release_url": "https://pypi.org/project/semigenre/0.1.4/", "requires_dist": [ "python-vlc (==3.0.6109)", "pandas (==0.24.2)", "pymongo (==3.8.0)", "sentry-sdk (==0.10.2)", "pytest (>=5.0.1) ; extra == 'testing'" ], "requires_python": "", "summary": "Music recommendation with genre discovery", "version": "0.1.4" }, "last_serial": 5570483, "releases": { "0.0.2": [ { "comment_text": "", "digests": { "md5": "0dc399f8dc625a93d5a3c1ddeda71fd9", "sha256": "608d3b1e4de25ea2c82714df7fe4d10b573fa2d027c4d353d0ad2e5d2857ed84" }, "downloads": -1, "filename": "semigenre-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "0dc399f8dc625a93d5a3c1ddeda71fd9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9157, "upload_time": "2019-07-08T06:36:11", "url": "https://files.pythonhosted.org/packages/d0/17/ec9350148934b4c7f1c7c3fe5dd7d71b7979c37f2bb21b65a871ab611c83/semigenre-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4722788212aa660433db38932851e6c6", "sha256": "b21e7545526e29bac07edda14e86ba151e90f8289c344b3d0e10b1db13121b87" }, "downloads": -1, "filename": "semigenre-0.0.2.tar.gz", "has_sig": false, "md5_digest": "4722788212aa660433db38932851e6c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4272, "upload_time": "2019-07-08T06:36:13", "url": "https://files.pythonhosted.org/packages/4e/d3/f50be17a299e637a613741cf95866a8b685a201db0574e4f8a50d860720c/semigenre-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "20541b0b649b36ceabeedeee0609d3e6", "sha256": "d8e1fc71552822809097ed3212e35725bac53bb0c32ce1a5650e3fc0560c1124" }, "downloads": -1, "filename": "semigenre-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "20541b0b649b36ceabeedeee0609d3e6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9534, "upload_time": "2019-07-08T08:09:04", "url": "https://files.pythonhosted.org/packages/6b/29/c5125c5369f7e92ffbd5a06d84b4c9d96c18d5e5f3ab380a53e0793b56fa/semigenre-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "05d2cfe9bbc6e7bedc8248a8ae235123", "sha256": "e5394b6ec81ea77e9b5a341a7df84503250e432c72fff92e937af6bbe32ce539" }, "downloads": -1, "filename": "semigenre-0.0.3.tar.gz", "has_sig": false, "md5_digest": "05d2cfe9bbc6e7bedc8248a8ae235123", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4741, "upload_time": "2019-07-08T08:09:06", "url": "https://files.pythonhosted.org/packages/37/34/a644f02254254bb5940a0ed5b2b8e36d1e8fc68dad73f12867c0c433f3e4/semigenre-0.0.3.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "5f33448f1b866b45fae3e5215c33e4db", "sha256": "ea55a2c6a878c90e803e85d3da2ded131f1661bdf6abd25e0983a53b5f87b9a0" }, "downloads": -1, "filename": "semigenre-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5f33448f1b866b45fae3e5215c33e4db", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5247, "upload_time": "2019-07-14T09:09:52", "url": "https://files.pythonhosted.org/packages/5e/46/2d1ff8ef999e8565876f55a7db630ae208666a8dd56a83a6628236c3b67e/semigenre-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "463d5b402acc1c2ee7d36475e3fa3bbd", "sha256": "45eadd93ff606d481da2356e8f706fc09366920f38d7c51178643edd125e3866" }, "downloads": -1, "filename": "semigenre-0.1.0.tar.gz", "has_sig": false, "md5_digest": "463d5b402acc1c2ee7d36475e3fa3bbd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2301, "upload_time": "2019-07-14T09:09:54", "url": "https://files.pythonhosted.org/packages/af/a3/a0532aa34f43fe3363d50c26d463312940bf08a3c0f095e8293ba683b421/semigenre-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "6b5725982ea7fe29e79cf2974969731b", "sha256": "54e1146092e04b5de404329af5fc7eec58a391e13bac9c7db95095733fd35a66" }, "downloads": -1, "filename": "semigenre-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6b5725982ea7fe29e79cf2974969731b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5403, "upload_time": "2019-07-14T09:26:30", "url": "https://files.pythonhosted.org/packages/23/98/6a31e72c5a72b236f3ca9e6ec66918267ad51c6d97cf836be32520e69d31/semigenre-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "77e310987fd6bb89167f3c3d9ae60e6a", "sha256": "7b69cf858adad36d28925acc45b0f4498c3fcf0b6b4e7bc85d0b64d361f9eb25" }, "downloads": -1, "filename": "semigenre-0.1.1.tar.gz", "has_sig": false, "md5_digest": "77e310987fd6bb89167f3c3d9ae60e6a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2485, "upload_time": "2019-07-14T09:26:31", "url": "https://files.pythonhosted.org/packages/7c/32/bacdeab4ab854dab637ff89822e1c636fc5a6eadab3289b4454bed3f923f/semigenre-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "15404ff274c6f0afdabac1cb799a1400", "sha256": "f91d1104d76888c3093a9fdaa74b569994f386a38f96fb39f49eaeab7a819dbe" }, "downloads": -1, "filename": "semigenre-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "15404ff274c6f0afdabac1cb799a1400", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5488, "upload_time": "2019-07-22T04:34:48", "url": "https://files.pythonhosted.org/packages/14/e1/a1a65d683db416d0067e415d4e368b691bd305afa00d9d9af9d7e01bd589/semigenre-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f2adfa6de3752f606e7a4998e0a28d22", "sha256": "e735947c7e3c84b9897a3bbd16806cffa670eec35d7bd69e5642c5abf1202a9b" }, "downloads": -1, "filename": "semigenre-0.1.2.tar.gz", "has_sig": false, "md5_digest": "f2adfa6de3752f606e7a4998e0a28d22", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2571, "upload_time": "2019-07-22T04:34:50", "url": "https://files.pythonhosted.org/packages/a2/7a/3763e36ef45721ec99f42112ac241faab19bcf22785c424c16523cc65670/semigenre-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "54c43cb0dab454cd5cbe9344532a5441", "sha256": "caa9677cf4ce0dd7d3b289c078e89f39f235f53733ab97f8c6dd3e1193ed2995" }, "downloads": -1, "filename": "semigenre-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "54c43cb0dab454cd5cbe9344532a5441", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5501, "upload_time": "2019-07-22T16:03:47", "url": "https://files.pythonhosted.org/packages/11/e0/7462bdd79f26f2e03c58b7bc7ca484358cb786331d46ba768959e606a4ca/semigenre-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aa2a35c61a5d52231671607651213007", "sha256": "e4374bc47a0035c55c963024458d1227c79e8d855108824771329bde0b7cf2fa" }, "downloads": -1, "filename": "semigenre-0.1.3.tar.gz", "has_sig": false, "md5_digest": "aa2a35c61a5d52231671607651213007", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2591, "upload_time": "2019-07-22T16:03:48", "url": "https://files.pythonhosted.org/packages/73/2c/61cac2f410b2309475005e4fadfc327c8a9ffd96a1346a0773dc45687abc/semigenre-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "2434a4f6978023b6a15d80e9cccc49bc", "sha256": "862b87a681face86c4bab680ba22bbbfc3db49780eac5c65b04ef04c315354ad" }, "downloads": -1, "filename": "semigenre-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "2434a4f6978023b6a15d80e9cccc49bc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20309, "upload_time": "2019-07-23T04:52:34", "url": "https://files.pythonhosted.org/packages/e7/47/2a9d51156217b975a4d9ad7fc58e34001d11be6b9f46e982c9520516ed49/semigenre-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7cfdf4a3c78762af56b832b905dca826", "sha256": "91e7d922eba55c6b46fcc1787849a19a7b928b9a33cfd0f5109a4160d107f965" }, "downloads": -1, "filename": "semigenre-0.1.4.tar.gz", "has_sig": false, "md5_digest": "7cfdf4a3c78762af56b832b905dca826", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10898, "upload_time": "2019-07-23T04:52:36", "url": "https://files.pythonhosted.org/packages/2b/6e/9be14b7bc036fde54997dbd8062d6d53a93e3c4949e922ff8610b554fa1e/semigenre-0.1.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2434a4f6978023b6a15d80e9cccc49bc", "sha256": "862b87a681face86c4bab680ba22bbbfc3db49780eac5c65b04ef04c315354ad" }, "downloads": -1, "filename": "semigenre-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "2434a4f6978023b6a15d80e9cccc49bc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20309, "upload_time": "2019-07-23T04:52:34", "url": "https://files.pythonhosted.org/packages/e7/47/2a9d51156217b975a4d9ad7fc58e34001d11be6b9f46e982c9520516ed49/semigenre-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7cfdf4a3c78762af56b832b905dca826", "sha256": "91e7d922eba55c6b46fcc1787849a19a7b928b9a33cfd0f5109a4160d107f965" }, "downloads": -1, "filename": "semigenre-0.1.4.tar.gz", "has_sig": false, "md5_digest": "7cfdf4a3c78762af56b832b905dca826", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10898, "upload_time": "2019-07-23T04:52:36", "url": "https://files.pythonhosted.org/packages/2b/6e/9be14b7bc036fde54997dbd8062d6d53a93e3c4949e922ff8610b554fa1e/semigenre-0.1.4.tar.gz" } ] }