Discodos

Latest version: v3.2.0

Safety actively analyzes 722491 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 3

3.2.0

Features and improvements
- New `dsc import folders` command.
- `dsc stats` new sales price statistics (Overall listing price average, Average for listings below 15€)
- `dsc links` and `dsc ls` now better support [standalone keyword search](https://discodos.readthedocs.io/en/latest/MANUAL.html#standalone-keyword-search) - If no `key=` prefix is used, the fields `artist`, `title` (album title) and `cat` (catalog number) are being searched. Any keyword found in any of those fields will match.

Documentation
- Added new chapter on [Standalone Keyword Search](https://discodos.readthedocs.io/en/latest/MANUAL.html#standalone-keyword-search).
- Improved[ Key/Value Search chapter](https://discodos.readthedocs.io/en/latest/MANUAL.html#key-value-search) with missing field names, better wording and notes boxes.
- Improved `import` and `import folders` command help.


**Full Changelog**: https://github.com/JOJ0/discodos/compare/v3.1.0...v3.2.0

3.1.0

Summary

The main improvements in this release are:

- Collection folders handling in `dsc ls` TUI is finished
- Loads of bug fixes
- Another huge documentation overhaul.

New Features and Improvements

- `dsc ls` collection folders are now displayed with names instead of ID's
- `dsc ls` new features with simple key commands
- `r` -> **reimport collection item** (get changes done on Discogs for highlighted collection item)
- `f` -> **edit collection item folder** (updates locally and on Discogs)
- `v` -> fetching videos display improved (notes a possibly "outdated" view)
- `s` -> shortcut for save in all edit views (instead of mouse)
- `dsc ls` now displays a **modification time** (coll_mtime in DB)
- `dsc ls` shorten some headings
- Add mtime fields to sales,coll,folders tables
- Support `--limit` in `dsc ls`, add backend support
- `dsc ls` marketplace stats with `p` key, not `return`
- Add a database trigger that handles when `dsc ls` reimport command should skip importing because nothing changed!
- Finally implement a good `dsc clean` command
- Fix and improve kv-search, when non-kv terms are present
- New stats For Sale and Sold in `dsc stats` command
- Override configured db file with `--db` option

Documentation

- Describe `discogs_sold_folder_id` setting in initial config docs chapter
- Update DiscoDOS website
- Enable myst notes boxes, improve import tracks docs
- Rename "Common Tasks" chapter to FAQ
- Update outdated built-in help of several commands (eg. `import` group)
- Installation docs overhaul
- Further rework MANUAL and QUICKSTART chapters
- Move README gifs to sphinx/source, some linting
- MANUAL chapter "notes boxes", more `dsc ls` TUI key-cmds
- Update welcome logo in ViewCommon
- Rename docs chapter Video to Screenshots

Fixes

- `dsc import release -d` fix multiple collection item delete
- `dsc ls` catch video fetch errors
- `dsc ls` fix UI-log fetch Marketplace stats message
- `dsc ls` fix crash due to exception in collection item fetcher
- `dsc ls` fix crash due to exception in price suggestion fetcher
- `dsc ls` try to improve online awareness
- Fix COALESCE column ID in `dsc ls` TUI
- Fix clean releases missing check for orphaned
- Fix code style in config.py, reword init-instructions
- Fix col caption showing COALESCE in `dsc -x ls` non-TUI
- Fix `dsc ls` sold,timestamp,folder-edit behaviour
- Fix in `import release` where not extracted_id used
- Fix in remove release where not extracted_id used
- Fix issue 27 `import release` docstring
- Fix issue 30 a commenting out leftover
- Fix issue 31 support release URL in `dsc sell` cmd
- Fix mtime column name in ViewCommon definition
- Fix redundant comma in create release table SQL
- Fix saving listing changes in TUI
- Fix syntax in collfolder table setup

Fixes and improvements under the hood

- GitHub Actions workflows for building and deploying to PyPI
- Fix collection tests class
- Fix empty collection table in test fixtures DB
- Upgrade unittest fixture DiscoBASE schema
- Require python3-discogs-client 2.8 in `setup.py`
- Set version in `Config`, add to `.bump2version`
- Slightly reorder newer collection methods

Notes

**Full Changelog**: https://github.com/JOJ0/discodos/compare/v3.0.3...v3.1.0

3.0.3

3.0

Overview
DiscoDOS 3.0 is huge! The plan was to support "selling records" on the Discogs Marketplace. A lot of fixing seemed to be essential to achieve that goal nicely, refactoring madness started, some unplanned features where suddenly more easily possible, the developer couldn't resist and in the end....all went overboard and dozens of features "just happened" along the road.

Some highlights:

- [`dsc ls`](https://discodos.readthedocs.io/en/latest/MANUAL.html#the-ls-tui-command) - a TUI app to manage Discogs Marketplace listings using the beautiful [Textual framework](https://textual.textualize.io).
- A bunch of new `dsc subcommands` and loads of usability improvements and reworks of existing commands.
- Progress bars for longer running process using [Rich Progress](https://rich.readthedocs.io/en/stable/progress.html).
- Generally making more use of the wonderful [Rich library](https://rich.readthedocs.io) which goal is to make CLI applications more coloful, better usable and visually appealing in general.

New Features and improvements
- [Importing is now divided into several subcommands](https://discodos.readthedocs.io/en/latest/MANUAL.html#the-import-command-group) and new things can be imported:
- `dsc import release` for single releases (fixed and performance improved).
- `dsc import basic` for a minimal full-collection import (more data is imported, a new 'collection' table saves each collection item instance, notes, collection folder).
- `dsc import sales` for the Marketplace inventory (new).
- `dsc import listing` for single Marketplace listings (new).
- Cleanup commands group:
- `dsc clean sales`
- `dsc clean collection`
- Incorporated [Rich](https://rich.readthedocs.io) indicators for **each and every** (potentially long running) `import` and `clean` operation
- All `print` statements in DiscoDOS use [Rich print](https://rich.readthedocs.io/en/stable/introduction.html#quick-start) which gives a basic set of colors certain CLI elements (numbers, strings, json) but also "enables" futher use of [Rich console markup](https://rich.readthedocs.io/en/stable/markup.html#console-markup).
- [`dsc sell`](https://discodos.readthedocs.io/en/latest/MANUAL.html#the-sell-command) - a "wizard type" CLI command guiding through the process of listing a record for sale.
- [`dsc stats`](https://discodos.readthedocs.io/en/latest/MANUAL.html#the-stats-command) - More statistics.
- [`dsc links`](https://discodos.readthedocs.io/en/latest/MANUAL.html#the-links-command) - From the ashes of "dsc search all", a [key/value search](https://discodos.readthedocs.io/en/latest/MANUAL.html#key-value-search) based report view - get every hyperlink DiscoDOS can generate in one view.
- [`dsc ls`](https://discodos.readthedocs.io/en/latest/MANUAL.html#the-ls-tui-command) - a _Textual App_ for displaying collection and sales data. Its main purpose is "managing Marketplace listings":
- [Key/value search](https://discodos.readthedocs.io/en/latest/MANUAL.html#key-value-search) for what you want to see/edit, for example: `dsc ls artist=squarepusher status=forsale`
- A table view displaying search results
- A three column subpanel viewing details about: 1. sales listing, 2. Your price and marketplace stats, 3. A list of YouTube videos
- Supersimple "one-key-commands" v - fetch video links, l - fetch sales listing, return - fetch marketplace stats and suggested prices
- A "non-tui" version of `dsc ls` is available too (`-x/--no-tui` or config option - see below).


New config options
- `enable_tui` - toggle **Textual-based UI** for the `dsc ls` command.
- `discogs_sold_folder_id` - collection items in this Discogs collection folder are marked "sold" during `import basic` automatically.


Documentation
- New layout using the PyData Sphinx theme
- A lot of outdated documentation was removed
- New features where of course documented
- Deprecations where noted, eg. [AcousticBrainz is discontinued but still working partly in DiscoDOS](https://discodos.readthedocs.io/en/latestMANUAL.html#acousticbrainz-support-is-deprecated)
- Generally docs are now more polished - less sections - more self-explanatory "where to look for what"

Fixes and improvements under the hood
- Restructured almost everything. Introduced Python subpackages `ctrl`, `model`, `view` and separated a lot of 1000+ lines long files to smaller module files.
- Online operations moved to a separate mix-in class `DiscogsMixin`
- Use `TableDefaults` descriptor class more often - column/field/shortcut/naming-magic
- Almost everything touched, now `black`-formatted.
- _f-strings_ instead of `.format()`
- Wherever possible refactored to "early returns", modularization, pythonic variable/class naming, comprehensions to improve code quality
- Logging now uses _`%s`-formatting_ and loads of INFO level clutter was changed to DEBUG or removed.
- Refactored fundamental database functions, supporting new useful flags like `as_dict`, `join`, `union`
- Streamlined "getters" and Discogs "fetchers" naming
- There is still a lot of room for improvement, but it's definitely a start!

Known issues

- Collection folders not yet displayed with names, just ID's in `dsc ls` TUI.

2.0

New & Breaking Changes

* Introduce CLI frontend rewrite based on Click by JOJ0 in https://github.com/JOJ0/discodos/pull/17
* The new CLI main command is now `dsc`
* `disco` is still existing for reference but is not maintained anymore
* There are 2 reasons for the rewrite
* I prefer to maintain a Click-based CLI rather than an argparser-based one.
* There was a naming conflict with an Ubuntu package. See https://github.com/JOJ0/discodos/issues/15
* Fix docs (CLI rewrite), fix rtd build, state AcousticBrainz shutdown in README by JOJ0 in https://github.com/JOJ0/discodos/pull/20
* Docs have been updated to state the new `dsc` command but might occassionally be still outdated in that matter.
* Since AcousticBrainz was shut down, key and BPM fetching does not work anymore.
* There are still loads of notes about AcousticBrainz in the docs, those are not updated yet. Help wanted!

Notes

- Builds for Windows and macOS are not provided anymore, please install from git: https://discodos.readthedocs.io/en/latest/CONTRIBUTION.html#install-development-version
- **Full Changelog**: https://github.com/JOJ0/discodos/compare/v1.1...v2.0

1.1

New

- *Brainz matching (`-z/-zz` option of `import`, `search` and `mix` subcommands): New options `--skip-unmatched/-s` `--force/-f` giving more customization possibilites for these longrunning processes.
- The `--resume` option of the `import` subcommand is now available as `--offset` as well, which better reflects what it does when used in combo with aforementioned new options.
- New subcommend `disco stats` giving several counts of releases and tracks in the DiscoBASE, *Brainz match results, tracks used in mixes, and so on.
- New `disco mix` option `--format`, providing a way to directly pass to the CLI table rendering module (tabulate) what displaying-style should be used. E.g this way even html output can be rendered: Try `disco mix <mixname> --format html`

- A graphical version of DiscoDOS is available as a preview. Check out the `qtgui` branch if interested. Install requirements via `pip install -r gui_requirements.txt` and launch `gui.py`. Thanks a lot to D8bp8Ags for getting this started, providing a very good basis of a QT based GUI, helping and motivating me to learn a little PyQT programming already and supporting the DiscoDOS project overall. Very much appreciated! Thanks again!
Improved

- Internal overhaul: PEP8 linting as good as possible in many parts of the code.
- Splitting up classes into smaller modules for code readability.
- New class TableDefaults in view_common module, providing a smarter way to handle CLI column headers. This actually was introduced to better handle defaults of TableViews of the QT-GUI in development but then was advanced to support both GUI and CLI things.
- Loads of more improvements related to QT-GUI development that made it into master already.

Fixes

- Fixes and improvements in test suites: test_collection, test_mix, test_config.
- Some fixes in github actions pipelines.
- Fix a bug where content of CLI table cells (like album names, track names, etc.) was not displayed correctly (cut off too early)

Notes

- Installation and upgrade guides: https://discodos.readthedocs.io/en/latest/INSTALLATION.html
- The macOS version was built an macOS 10.5. Catalina and thus requires at least that version. It is tested with `bash` as the default shell. Please report problems encountered with `zsh`.
- The Windows version was not tested but is supposed to run on Windows 10 and higher versions. File a github issue in case of problems. I'm happy to help.
- Any other OS: Install from git directly: https://discodos.readthedocs.io/en/latest/CONTRIBUTION.html#install-development-version

Page 1 of 3

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.