Skip to content

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 25 Apr 13:31
· 74 commits to master since this release
Immutable release. Only release title and notes can be modified.
v0.2.0
1ba2fcf

Added

  • pair_redtiger_dashcam_files() and group_pairs() public utility functions for timestamp-proximity pairing of front/rear dashcam files.
  • max_offset parameter on media.archive_dashcam_footage (default 1 second) for controlling front/rear file pairing tolerance.
  • --max-offset CLI option on encode-dashcam.
  • parse_timestamp() public utility function.
  • Chapter markers in encode-dashcam output; each clip pair becomes a chapter named after the front file stem. Disable with --no-chapters.
  • duration field to FormatDict and StreamsDict typed dictionaries.
  • anyio, async-lru, and pytest-asyncio dependencies.
  • merge-dependabot-prs CLI options:
    • --concurrency (default os.cpu_count() or 1) to cap repositories processed in parallel.
    • -M / --max-concurrent-http-requests (default 3) to cap simultaneous in-flight HTTP requests.
    • -r / --repo (repeatable) to limit processing to specific repositories. Each value may be a bare NAME (resolved against the authenticated user) or a fully qualified OWNER/NAME.
  • repos parameter on merge_dependabot_pull_requests mirroring the --repo CLI option.
  • DependabotMergeError raised by merge_dependabot_pull_requests when any pull request fails to merge. Carries a remaining mapping of repository full name to the count of unmerged pull requests.
  • merge-dependabot-prs now prints the repositories with unmerged Dependabot pull requests, and the count of pull requests for each, before sleeping between retry attempts.
  • New remove-trailing-commas CLI command that walks files or directories and removes non-required trailing commas from Python source. Options:
    • --no-format to skip running yarn format and yarn ruff:fix after editing.
    • --no-gitignore to disable .gitignore filtering when walking directories.
    • --no-dot to skip files and directories starting with ..
  • New deltona.refactor library module with public functions find_removable_trailing_commas and remove_trailing_commas.
  • New public async function refactor.remove_trailing_commas_in_paths that walks files and directories, parses each as Python, removes non-required trailing commas using non-blocking I/O, and returns a mapping of modified paths to their original content.
  • # rtc-off and # rtc-on in-source directives to skip a block of code from comma removal.
  • pathspec base dependency for .gitignore matching.
  • tomlkit base dependency for reading pyproject.toml and Ruff configuration files.

Changed

  • Replaced requests dependency with niquests, a drop-in replacement with HTTP/2, HTTP/3, and built-in type annotations.
  • CD_FRAMES constant moved from deltona.media to deltona.utils to decouple CDDA utilities from media disc-ID internals.
  • media.archive_dashcam_footage now uses timestamp-proximity pairing instead of positional file matching.
  • Unmatched dashcam files are now logged and skipped instead of being deleted.
  • Chapter durations are derived from source file duration with the setpts factor applied.
  • Improved NVENC quality defaults: -cq 25 (was 29), added -rc vbr, -temporal_aq 1, -b_ref_mode middle.
  • CLI defaults for encode-dashcam now match intended NVENC usage: hevc_nvenc encoder, p7 preset, 20M max bitrate.
  • Renamed pair_dashcam_files to pair_redtiger_dashcam_files to clarify Red Tiger specificity.
  • media.archive_dashcam_footage now accepts pair_fn and group_fn parameters for custom pairing and grouping logic.
  • media.archive_dashcam_footage rear_dir parameter is now optional (None for single-camera mode). When rear_dir is None or pair_fn is None, front files are encoded without overlay.
  • group_pairs now accepts Sequence instead of list for the pairs parameter.
  • encode-dashcam CLI: rear_dir argument is now optional.
  • All HTTP-calling functions converted from synchronous to async using niquests.AsyncSession. Affected modules: deltona.adp, deltona.chromium, deltona.media, deltona.www.
  • Click commands that make HTTP requests now use asyncio.run() to invoke async implementations.
  • check_bookmarks_html_urls now checks URLs concurrently using anyio task groups.
  • @cache on async functions replaced with @alru_cache from async-lru.
  • File I/O in async functions uses anyio for non-blocking access.
  • merge_dependabot_pull_requests now lists repositories with get_repos(sort='full_name') instead of filtering by affiliation='owner'.
  • merge_dependabot_pull_requests is now async and processes repositories concurrently with bounded HTTP and task concurrency.
  • merge_dependabot_pull_requests now lists repositories with visibility='all', ensuring private repositories are included.

Removed

  • get_cd_disc_id() and all CD-ROM ioctl/ctypes support code from deltona.media.
  • -a/--affiliation option from merge-dependabot-prs and the affiliation argument from merge_dependabot_pull_requests.
  • requests and types-requests dependencies in favour of niquests (fully typed).
  • requests-mock test dependency; tests now use standard mocker.patch.
  • allow_group_discrepancy_resolution parameter from media.archive_dashcam_footage.
  • --no-fix-groups CLI option from encode-dashcam.

Fixed

  • Click option default mismatches in encode_dashcam_main for preset, video_encoder, and video_max_bitrate.
  • encode-dashcam click.Path constraints now correctly use file_okay=False for directory arguments.
  • encode-dashcam --temp-dir option now uses click.Path type.

Full Changelog: v0.1.4...v0.2.0