{ "info": { "author": "Travis Shirk", "author_email": "travis@pobox.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Natural Language :: English", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "========\nMishMash\n========\n\n|Build Status| |License| |PyPI| |Python versions| |Coverage| |Status|\n\nMusic database and web interface.\n\nFeatures\n--------\n\n* MishMash is a music database using `Python`_ and `SQLAlchemy`_.\n* A command-line tool for building and managing a music database.\n* Web browser interface (using `Pyramid`_) for browsing your music library.\n* Uses `eyeD3`_ for reading MP3s and ID3 metadata.\n* Support and tested with Python 3.6 and Postgresql. SQLite is periodically\n tested with, but future features may not be supported (e.g. full text\n search).\n* Free software: GNU GPL v3.0 license\n\n.. _Python: https://www.python.org/\n.. _SQLAlchemy: http://www.sqlalchemy.org/\n.. _eyeD3: http://eyeD3.nicfit.net/\n.. _Pyramid: https://trypyramid.com/\n\nGetting Started\n----------------\n::\n\n $ mishmash info\n /\\/\\_____ .__ .__ _____ .__ /\\/\\\n \\(\\( \\ |__| _____| |__ / \\ _____ _____| |__\\(\\(\n / \\ / \\| |/ ___/ | \\ / \\ / \\\\__ \\ / ___/ | \\\n / Y \\ |\\___ \\| Y \\/ Y \\/ __ \\_\\___ \\| Y \\\n \\____|__ /__/____ >___| /\\____|__ (____ /____ >___| /\n \\/ \\/ \\/ \\/ \\/ \\/ \\/\n\n Version : 0.3\n Database URL : sqlite:////~/mishmash.db\n Database version : 0.3\n Last sync : Never\n Configuration files : \n\n\n === Music library ===\n 0 music tracks\n 0 music artists\n 0 music albums\n 0 music tags\n\n\nSurprise, you now have an empty sqlite database in the current directory.\nLet's leave it here for now, it can be located elsewhere or use a different\ndatabase using command line arguments and/or environment variables. Pretty\nuseless without any music.::\n\n $ mishmash sync ~/Music/Melvins\n Syncing library 'Music': paths=['~/Music/Melvins/']\n Syncing directory: ~/Music/Melvins/\n Syncing directory: ~/Music/Melvins/1984 - Mangled Demos\n Adding artist: Melvins\n Syncing directory: ~/Music/Melvins/1986 - 10 Songs\n Adding album: 10 Songs\n Adding track: ~/Music/Melvins/1986 - 10 Songs/Melvins - 01 - Easy As It Was.mp3\n Updating album: 10 Songs\n ...\n == Library 'Music' sync'd [ 8.73s time (45.9 files/s) ] ==\n 401 files sync'd\n 401 tracks added\n 0 tracks modified\n 0 orphaned tracks deleted\n 0 orphaned artists deleted\n 0 orphaned albums deleted\n\nUse your database as you wish. Browse it with `mishmash web`, or use one of its\nmanagement commands.\n\nCheck out the `Unsonic`_ project for streaming capabilities.\n\n\n.. _Unsonic: https://github.com/redshodan/unsonic\n\n.. |Build Status| image:: https://travis-ci.org/nicfit/MishMash.svg?branch=master\n :target: https://travis-ci.org/nicfit/MishMash\n :alt: Build Status\n.. |PyPI| image:: https://img.shields.io/pypi/v/MishMash.svg\n :target: https://pypi.python.org/pypi/MishMash/\n :alt: Latest Version\n.. |Python versions| image:: https://img.shields.io/pypi/pyversions/MishMash.svg\n :target: https://pypi.python.org/pypi/MishMash/\n :alt: Supported Python versions\n.. |License| image:: https://img.shields.io/pypi/l/MishMash.svg\n :target: https://pypi.python.org/pypi/MishMash/\n :alt: License\n.. |Status| image:: https://img.shields.io/pypi/status/MishMash.svg\n :target: https://pypi.python.org/pypi/MishMash/\n :alt: Project Status\n.. |Coverage| image:: https://coveralls.io/repos/nicfit/MishMash/badge.svg\n :target: https://coveralls.io/r/nicfit/MishMash\n :alt: Coverage Status\n\n\n\nRelease History\n===============\n\n\n\nv0.3b14 (2019-03-07)\n------------------------\n\nFix\n~~~\n- Compilation handling. fixes #539.\n\n\nv0.3b13 (2019-03-01)\n------------------------\n- Support for duplicate artist names (made unique with origin/location) (#525)\n- Support for duplicate album titles per artist (made unique with dates) (#525)\n- eyeD3 0.9aN required.\n- [docker] install ca-certificates.\n- Removed old Unicode u\"literals\"\n\nv0.3b12 (2019-01-12)\n------------------------\n\nNew\n~~~\n- `mishmash web`: Image HTTP cache headers\n- `mishmash web`: Added --port arg.\n- Added gevent and gunicorn to `web` requirements (and docker image) to allow\n for SSL etc.\n\nChanges\n~~~~~~~\n- Default sqlite database is now $CWD/mishmash.db.\n\nFix\n~~~\n- Pyaml >= 4.2b1 for security alert.\n- Don't override web port from config file.\n\n\nv0.3b11 (2018-12-16)\n------------------------\n- Run unsonic from `mishmash server`\n- Venv-less docker.\n\n\nv0.3b10 (2018-12-15)\n------------------------\n\nNew\n~~~~~\n- `mishmash server`\n- Bootstrap4 update.\n\nFix\n~~~\n- Fix album sorts for missing dates.\n- Various artist support.\n\n\nv0.3b9 (2018-12-15)\n------------------------\n\nFix\n~~~\n- Fix album sorts for missing dates.\n- Various artist support.\n\n\nv0.3b9 (2018-12-02)\n------------------------\n\nNew\n~~~\n- Split-artist docs.\n- `mishmash web` albums view.\n- `mishmash web` artist filters.\n\nFix\n~~~\n- Database URL obfuscation is more reliable.\n\n\nv0.3b8 (2018-11-28)\n------------------------\n\nNew\n~~~\n- Added `MishMash(ConfigClass=clazz)` keyword argument.\n\nv0.3b7 (2018-06-18)\n------------------------\n\nNew\n~~~\n- More multi-lib supoort (merge, split, info)\n\nFix\n~~~\n- Return resolved album when a sync does not occur.\n- Recent inotify uses Unicode natively, remove conversions to bytes.\n- Pick up new image files when rescanning and no audio files changed.\n\nOther\n~~~~~\n- Run make test targets thru tox. Travis-CI will do this in a future\n commit.\n\n\nv0.3b6 (2018-02-18)\n--------------------\n\nNew\n~~~\n- Mishmash info -L/--library and --artists.\n\nChanges\n~~~~~~~\n- Reduced sync stats precision.\n- Nicfit.py 0.8 Command changes.\n\nFix\n~~~\n- Fix container fail to start issue (#242) \n- Added check for osx to avoid monitor mode (#260) \n- Nicfit.py 0.8 config_env_var changes.\n- Removed no-arg (nicfit.py) main test, test is done upstream.\n\n\nv0.3b5 (2017-11-26) : I Need a Miracle\n---------------------------------------\n\nNew\n~~~\n- Mishmash_cmd session-scoped fixture.\n- Library 'excludes' option. Fixes #202.\n- orm length limit constants\n- More ORM limit tests, truncation, validation.\n- Use mishmash.util.safeDbUrl for displayed/logged password obfuscation.\n- Add Track.metadata_format and Track.METADATA_FORMATS.\n\nChanges\n~~~~~~~\n- Moved VARIOUS_TYPE detection info _albumTypeHint.\n less noise about lp->various conversion\n- Close DB connections after commands.\n- Better logging for debugging VARIOUS_TYPE coersion.\n- Moved limit constants to each ORM class.\n- Docker updates.\n\nFix\n~~~\n- PServeCommand requires .ini extension.\n- Show used config files.\n- Some (not all) truncation for colomn limits and \\x00 handling.\n- Make docker-publish.\n- Dup config section error.\n\n\nv0.3b4 (2017-05-14) : Triumph Of Death\n-----------------------------------------\n\nNew\n~~~\n- Init(scope=False), for wrapped SessionMaker with\n sqlalchemy.orm.scoped_session.\n- Mishmash.web is optional, and packaged as extra [web] install.\n- Mishmash.VARIOUS_ARTISTS_NAME == gettext(\"Various Artists\")\n\nChanges\n~~~~~~~\n- Removed various artist config and started gettext.\n\nFix\n~~~\n- Mishmash.web working again.\n\nOther\n~~~~~\n- Update eyed3 from 0.8.0b1 to 0.8 (#108) \n- Pin pyramid to latest version 1.8.3 (#94) \n\n\nv0.3b3 (2017-04-09) : Prayers for Rain\n---------------------------------------\n\nNew\n~~~\n- UTC sync times and per lib last_sync. Fixes #6, #7.\n- Db test fixtures, etc.\n\nChanges\n~~~~~~~\n- mishmash.data.init now returns the 3-tuple (engine, SessionMaker, connection).\n Previously a 2-tuple, sans connection, was returned.\n The new mishmash.database.DatebaseInfo namedtuple is the actual return type,\n if you prefer not to unpack the return value.\n\nv0.3b2 (2017-03-12) : Nine Patriotic Hymns For Children\n-------------------------------------------------------\n\nFix\n~~~\n- Protect against not being the first to call\n multiprocessing.set_start_method.\n\n\nv0.3b1 (2017-03-12) : Nine Patriotic Hymns For Children\n-------------------------------------------------------\n\nNew\n~~~\n- Mismash sync --monitor (using inotify)\n- Test beginnings.\n\nChanges\n~~~~~~~\n- Label_id renamed tag_id. Fixes #65.\n- Mishmash.database.init accepts the DB URL as its first arguments, NO\n LONGER a Config object.\n\nFix\n~~~\n- Postgres service on Travis-CI.\n- Restored gitchangelog fork.\n\n\nv0.3b0 (2017-02-26)\n-------------------------\n\n* Initial release", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/nicfit/mishmash/releases/downloads/v0.3b14/MishMash-0.3b14.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/nicfit/MishMash", "keywords": "music,database", "license": "GNU GPL v3.0", "maintainer": "", "maintainer_email": "", "name": "MishMash", "package_url": "https://pypi.org/project/MishMash/", "platform": "Any", "project_url": "https://pypi.org/project/MishMash/", "project_urls": { "Download": "https://github.com/nicfit/mishmash/releases/downloads/v0.3b14/MishMash-0.3b14.tar.gz", "Homepage": "https://github.com/nicfit/MishMash" }, "release_url": "https://pypi.org/project/MishMash/0.3b14/", "requires_dist": null, "requires_python": "", "summary": "Music database and web interface.", "version": "0.3b14" }, "last_serial": 4914170, "releases": { "0.3b12": [ { "comment_text": "", "digests": { "md5": "01ee1b2281a350799380dd6d5e6b614e", "sha256": "9849ea12ec8903903732ad888cf66b34c8394bf11a770f854f024a00d3969783" }, "downloads": -1, "filename": "MishMash-0.3b12-py3.7.egg", "has_sig": false, "md5_digest": "01ee1b2281a350799380dd6d5e6b614e", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 199235, "upload_time": "2019-01-13T00:56:09", "url": "https://files.pythonhosted.org/packages/d5/f5/96f43d022f650691df1e82d838abfef7d3cd863c164667579af8ce5f0224/MishMash-0.3b12-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "84c1d6ad9d9437cae402e02e90966a27", "sha256": "7650f72105cf5cae8e6503ce910c4d477ccbfe81ce307920d484ee9078a32d46" }, "downloads": -1, "filename": "MishMash-0.3b12-py3-none-any.whl", "has_sig": false, "md5_digest": "84c1d6ad9d9437cae402e02e90966a27", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 158852, "upload_time": "2019-01-13T00:56:13", "url": "https://files.pythonhosted.org/packages/49/32/fdb03527a97919c9ebc68c599c08460b577b3a5860b192feef0848e26c35/MishMash-0.3b12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6e96347795deceb0ae00b6f4e31734cd", "sha256": "0666ae546b1262239934da7e474b82f0debe413c79e2c330db5dd144c1c83655" }, "downloads": -1, "filename": "MishMash-0.3b12.tar.gz", "has_sig": false, "md5_digest": "6e96347795deceb0ae00b6f4e31734cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 177631, "upload_time": "2019-01-13T00:56:04", "url": "https://files.pythonhosted.org/packages/1b/f8/f4d71ff95ff34a6cd18947a418537640004592fd6494ac009ad85a9474fa/MishMash-0.3b12.tar.gz" } ], "0.3b13": [ { "comment_text": "", "digests": { "md5": "eecde9b43a18c2fc187c0e5a45ad2bb4", "sha256": "716cdab247299e4e0882411c18706c1485edb9e5e5c385623223f24c74ca2742" }, "downloads": -1, "filename": "MishMash-0.3b13-py3.7.egg", "has_sig": false, "md5_digest": "eecde9b43a18c2fc187c0e5a45ad2bb4", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 201731, "upload_time": "2019-03-02T03:21:00", "url": "https://files.pythonhosted.org/packages/8c/f8/bce6b404f2595af7c34a829d57a82f8c406e91afef6f74f991fc9c348384/MishMash-0.3b13-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "d41a4fcea3fb1d7d4515b4dbf6cf173f", "sha256": "cdaf42ae71119a5fe221879ef12872b069988c233dddcbab0a3c9408d8ae87d0" }, "downloads": -1, "filename": "MishMash-0.3b13-py3-none-any.whl", "has_sig": false, "md5_digest": "d41a4fcea3fb1d7d4515b4dbf6cf173f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 159995, "upload_time": "2019-03-02T03:20:55", "url": "https://files.pythonhosted.org/packages/15/43/95984bcb925ce0b6e9f5f7c740017e31296f556fa33b7a551836c01827c9/MishMash-0.3b13-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dfdda0b20eee5d256de96916457b98e0", "sha256": "9fcad496d131aeae4d9c5ff24168f47e998dd0e4a4a4e1d20e9d05c4c3215429" }, "downloads": -1, "filename": "MishMash-0.3b13.tar.gz", "has_sig": false, "md5_digest": "dfdda0b20eee5d256de96916457b98e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 178580, "upload_time": "2019-03-02T03:20:51", "url": "https://files.pythonhosted.org/packages/78/e8/190f281f8be226c51a4b8c77ac1d317176b682547f75aeb647ad4924d223/MishMash-0.3b13.tar.gz" } ], "0.3b14": [ { "comment_text": "", "digests": { "md5": "771521217aed5dfbd65831e4334abd21", "sha256": "eb89453476c44405d1320598bd41d963408d0322a4e232a0d0b6b0a9e49d18ab" }, "downloads": -1, "filename": "MishMash-0.3b14-py3.7.egg", "has_sig": false, "md5_digest": "771521217aed5dfbd65831e4334abd21", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 201806, "upload_time": "2019-03-08T06:08:46", "url": "https://files.pythonhosted.org/packages/4c/64/badf1e50fadf83c16d54f11cf11f8e955c46e94d49da875fbb5645fda557/MishMash-0.3b14-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "55264f81e3f091bc72e0b4d1e3174dfe", "sha256": "bb004eca967d263947498460719b7145fc52fb8b9fae091f1fe70e4e9cb4bff8" }, "downloads": -1, "filename": "MishMash-0.3b14-py3-none-any.whl", "has_sig": false, "md5_digest": "55264f81e3f091bc72e0b4d1e3174dfe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 160047, "upload_time": "2019-03-08T06:08:55", "url": "https://files.pythonhosted.org/packages/3e/ff/2bfa6cd6878a9f603a0c294ede5bfb5dcd13e9dc149d4a2ff88b326b646b/MishMash-0.3b14-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "906120743b33065acd3dbd5bf005747b", "sha256": "36ad6ac36f0a1dde945ef8b4d1f7cbeb6bbd8c54f402d34ebc1c7a90ee4cb0d3" }, "downloads": -1, "filename": "MishMash-0.3b14.tar.gz", "has_sig": false, "md5_digest": "906120743b33065acd3dbd5bf005747b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 178741, "upload_time": "2019-03-08T06:08:50", "url": "https://files.pythonhosted.org/packages/fc/c1/8a8747dac88111ec624684c4f496d80bcb8bcb9942609075a315e63dd231/MishMash-0.3b14.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "771521217aed5dfbd65831e4334abd21", "sha256": "eb89453476c44405d1320598bd41d963408d0322a4e232a0d0b6b0a9e49d18ab" }, "downloads": -1, "filename": "MishMash-0.3b14-py3.7.egg", "has_sig": false, "md5_digest": "771521217aed5dfbd65831e4334abd21", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 201806, "upload_time": "2019-03-08T06:08:46", "url": "https://files.pythonhosted.org/packages/4c/64/badf1e50fadf83c16d54f11cf11f8e955c46e94d49da875fbb5645fda557/MishMash-0.3b14-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "55264f81e3f091bc72e0b4d1e3174dfe", "sha256": "bb004eca967d263947498460719b7145fc52fb8b9fae091f1fe70e4e9cb4bff8" }, "downloads": -1, "filename": "MishMash-0.3b14-py3-none-any.whl", "has_sig": false, "md5_digest": "55264f81e3f091bc72e0b4d1e3174dfe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 160047, "upload_time": "2019-03-08T06:08:55", "url": "https://files.pythonhosted.org/packages/3e/ff/2bfa6cd6878a9f603a0c294ede5bfb5dcd13e9dc149d4a2ff88b326b646b/MishMash-0.3b14-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "906120743b33065acd3dbd5bf005747b", "sha256": "36ad6ac36f0a1dde945ef8b4d1f7cbeb6bbd8c54f402d34ebc1c7a90ee4cb0d3" }, "downloads": -1, "filename": "MishMash-0.3b14.tar.gz", "has_sig": false, "md5_digest": "906120743b33065acd3dbd5bf005747b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 178741, "upload_time": "2019-03-08T06:08:50", "url": "https://files.pythonhosted.org/packages/fc/c1/8a8747dac88111ec624684c4f496d80bcb8bcb9942609075a315e63dd231/MishMash-0.3b14.tar.gz" } ] }