* Added --post-command-break/catch
* Added --post-command-break/catch
* Added --post-command-error and tests
* Fixed help text for --post-command-error
* Added gitignorefile
* Fixed gitignorefile for os.PathLike paths
* --keep now follows .gitignore rules
* Fixed ruff QA error
* Added support for .osxphotos_keep file
* Added reference to .osxphotos_keep
* Added tests for .osxphotos_keep
* Updated help text for --cleanup, --keep
* Working on custom sidecar, #1123
* Working on custom sidecar, #1123
* Added custom sidecar example
* Added WRITE_SKIPPED argument for --sidecar-template
* Updated report writer for user sidecars
* Added noqa to long lines in report writer
* Initial tests for --sidecar-template
* Initial tests for --sidecar-template
* Initial tests for --sidecar-template
* Completed tests for --sidecar-template
* Added json example for --sidecar-template
* Added json example for --sidecar-template
* Began refactoring for improving unicode handling
* Added platform and unicode modules
* Added tests for unicode utilities
* Added tests for unicode utilities
* Added tests for unicode utilities
* Added tests for unicode utilities
* Fixed unicode tests for linux
* Fixed unicode tests for linux
* Fixed duplicate alubm name with --add-to-album
* Fixed test for linux
* Fix for duplicate unicode kewyords, see #907, #1085
* Port to non-MacOS platforms
* Keep NFD normalization on macOS
* Update locale_util.py
Fix lint error from ruff (runs in CI)
* Update query.py
click.Option first arg needs to be a list (different than click.option)
* Dynamically normalize Unicode paths in test
* Fix missing import
---------
Co-authored-by: Rhet Turnbull <rturnbull@gmail.com>
* Working on making export threadsafe, #999
* Working on making export threadsafe, #999
* refactor for concurrent export, #999
* Fixed race condition in ExportRecord context manager
* Began refactoring verbose code for #931
* Fixed tests for timewarp due to verbose refactor
* Updated test data
* More refactoring for #931
* Refactored queryoptions.py
* Refactored queryoptions.py
* Refactored queryoptions.py
* Refactored echo_error
* Refactored debug
* Refactored debug
* Refactored use of verbose in export
* Refactored use of verbose in export
* Refactred --verbose in add-locations and debug-dump
* Refactored --verbose for
* Refactored --verbose for osxphotos exportdb
* Refactored --verbose for osxphotos import
* Refactored --verbose for osxphotos orphans
* Refactored --verbose for osxphotos snap-diff
* Refactored --verbose for osxphotos sync
* Refactored --verbose for osxphotos timewarp
* Added default verbose() function to verbose
* Added --not-edited option to query
Added --not-edited option to query (exclusive with --edited) to search for photos that have not been edited.
Added test scenarios for --edited and -.-not-edited
* Added --not-edited option to query
Added --not-edited option to query (exclusive with --edited) to search for photos that have not been edited.
Added query test scenarios for --edited and --not-edited
Added export test scenarios for --edited and --not-edited
* Added --not-edited option to query
Added --not-edited option to query (exclusive with --edited) to search for photos that have not been edited.
Added query test scenarios for --edited and --not-edited
Added export test scenarios for --edited and --not-edited
* Made edited/non-edited mutually exclusive in query() to match other filters
Co-authored-by: Rhet Turnbull <rturnbull@gmail.com>
* Working on tests for timewarp --parse-date
* Test working for --parse-date
* Refactored date utils out of timewarp.py
* Added timezone to --parse-date, updated tests
* Added cog to README
* Added person favorite for #940
* Added person.feature_less #940 (but not 100% sure it's right yet)
* Added tests for PersonInfo.favorite, PersonInfo.feature_less
* Initial implementation of add-locations command #929
* Updated help for add-locations
* Fixed handling of shared albums in sync
* Added test for add-locations