Skip to content

2.8.1

Choose a tag to compare

@a-rich a-rich released this 01 Dec 03:55
· 3 commits to main since this release

Note: 2.8.0 was skipped as it doesn't really exist; I accidently published 2.8.0 to PyPI a while back when testing out some publishing CI changes.

This is a summary of all changes since the 2.7.0 minor version update, rather than just the changes since 2.7.14.

Features

Enhancements

  • Add filtering and aggregation steps to combiner playlists in addition to tags playlists
  • Rename "Other" playlist / folder to "Unused Tags"
  • Remove pre-existing playlist_builder playlists
  • Parallelize audio export
  • Retain playlist order when exporting audio

Docs

Fixes

  • Failure when updating tags_tracks with playlist.get_tracks() when that playlist is actually a folder
  • Fixes for Python 3.9 - 3.12 and Windows compatibility
  • Only run arg_parse function if executing from CLI or test suite (i.e. scripts shouldn't inadvertently trigger arg_parse when reusing the build_config function)
  • Make ARTIST_FIRST a global config option so it can be set via the CLI for both sync and utils operations
  • When multiple playlists exist with the same name, it was possible for one or more of the playlists to be inadvertently removed from the output collection
  • When ordinary operands and track sets were considered separately, the information about the order in which the different operand types appeared got lost resulting in incorrect evaluation
  • Lower precision date inequalities weren't evaluated properly (e.g. {date:>2022} would match a track added any time after 2022-01-01 because 2022 converted into a datetime object becomes 2022-01-01)
  • Globbing strings with * characters would match substrings as if implicit ^ and $ characters weren't being used -- use match instead of search and add implicit $ character
  • MinimalDeepTechFilter should only be applied to playlists underneath a "Techno" or "House" playlist
  • Upload log logic removing wrong files from the logs directory
  • Handle errors decoding bytes from stdout when syncing (replace bytes that fail decoding with empty strings)

Build / CI

  • Package renamed from dj-beatcloud to djtools
  • Deprecate Python 3.8
  • A whole lot of linting, formatting, testing, and publishing changes

Script