v0.2.0
·
74 commits
to master
since this release
Immutable
release. Only release title and notes can be modified.
Added
pair_redtiger_dashcam_files()andgroup_pairs()public utility functions for timestamp-proximity pairing of front/rear dashcam files.max_offsetparameter onmedia.archive_dashcam_footage(default 1 second) for controlling front/rear file pairing tolerance.--max-offsetCLI option onencode-dashcam.parse_timestamp()public utility function.- Chapter markers in
encode-dashcamoutput; each clip pair becomes a chapter named after the front file stem. Disable with--no-chapters. durationfield toFormatDictandStreamsDicttyped dictionaries.anyio,async-lru, andpytest-asynciodependencies.merge-dependabot-prsCLI options:--concurrency(defaultos.cpu_count() or 1) to cap repositories processed in parallel.-M/--max-concurrent-http-requests(default3) to cap simultaneous in-flight HTTP requests.-r/--repo(repeatable) to limit processing to specific repositories. Each value may be a bareNAME(resolved against the authenticated user) or a fully qualifiedOWNER/NAME.
reposparameter onmerge_dependabot_pull_requestsmirroring the--repoCLI option.DependabotMergeErrorraised bymerge_dependabot_pull_requestswhen any pull request fails to merge. Carries aremainingmapping of repository full name to the count of unmerged pull requests.merge-dependabot-prsnow prints the repositories with unmerged Dependabot pull requests, and the count of pull requests for each, before sleeping between retry attempts.- New
remove-trailing-commasCLI command that walks files or directories and removes non-required trailing commas from Python source. Options:--no-formatto skip runningyarn formatandyarn ruff:fixafter editing.--no-gitignoreto disable.gitignorefiltering when walking directories.--no-dotto skip files and directories starting with..
- New
deltona.refactorlibrary module with public functionsfind_removable_trailing_commasandremove_trailing_commas. - New public async function
refactor.remove_trailing_commas_in_pathsthat 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-offand# rtc-onin-source directives to skip a block of code from comma removal.pathspecbase dependency for.gitignorematching.tomlkitbase dependency for readingpyproject.tomland Ruff configuration files.
Changed
- Replaced
requestsdependency withniquests, a drop-in replacement with HTTP/2, HTTP/3, and built-in type annotations. CD_FRAMESconstant moved fromdeltona.mediatodeltona.utilsto decouple CDDA utilities from media disc-ID internals.media.archive_dashcam_footagenow 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-dashcamnow match intended NVENC usage:hevc_nvencencoder,p7preset,20Mmax bitrate. - Renamed
pair_dashcam_filestopair_redtiger_dashcam_filesto clarify Red Tiger specificity. media.archive_dashcam_footagenow acceptspair_fnandgroup_fnparameters for custom pairing and grouping logic.media.archive_dashcam_footagerear_dirparameter is now optional (Nonefor single-camera mode). Whenrear_dirisNoneorpair_fnisNone, front files are encoded without overlay.group_pairsnow acceptsSequenceinstead oflistfor thepairsparameter.encode-dashcamCLI:rear_dirargument 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_urlsnow checks URLs concurrently using anyio task groups.@cacheon async functions replaced with@alru_cachefrom async-lru.- File I/O in async functions uses anyio for non-blocking access.
merge_dependabot_pull_requestsnow lists repositories withget_repos(sort='full_name')instead of filtering byaffiliation='owner'.merge_dependabot_pull_requestsis now async and processes repositories concurrently with bounded HTTP and task concurrency.merge_dependabot_pull_requestsnow lists repositories withvisibility='all', ensuring private repositories are included.
Removed
get_cd_disc_id()and all CD-ROM ioctl/ctypes support code fromdeltona.media.-a/--affiliationoption frommerge-dependabot-prsand theaffiliationargument frommerge_dependabot_pull_requests.requestsandtypes-requestsdependencies in favour ofniquests(fully typed).requests-mocktest dependency; tests now use standardmocker.patch.allow_group_discrepancy_resolutionparameter frommedia.archive_dashcam_footage.--no-fix-groupsCLI option fromencode-dashcam.
Fixed
- Click option default mismatches in
encode_dashcam_mainforpreset,video_encoder, andvideo_max_bitrate. encode-dashcamclick.Pathconstraints now correctly usefile_okay=Falsefor directory arguments.encode-dashcam--temp-diroption now usesclick.Pathtype.
Full Changelog: v0.1.4...v0.2.0