From b92a6817958e36a0f3f0e3cf7bd69b0be176adfc Mon Sep 17 00:00:00 2001 From: Rhet Turnbull Date: Mon, 21 Feb 2022 12:20:02 -0700 Subject: [PATCH] Added --ramdb option (#639) --- README.md | 9 ++- docs/.buildinfo | 2 +- docs/_modules/index.html | 2 +- docs/_modules/osxphotos/photoinfo.html | 3 +- docs/_static/documentation_options.js | 2 +- docs/cli.html | 8 ++- docs/genindex.html | 11 +++- docs/index.html | 2 +- docs/modules.html | 2 +- docs/objects.inv | Bin 3937 -> 3945 bytes docs/reference.html | 7 +- docs/search.html | 2 +- docs/searchindex.js | 2 +- osxphotos/_version.py | 2 +- osxphotos/cli.py | 28 ++++++-- osxphotos/export_db.py | 83 +++++++++++++++++++---- tests/test_cli.py | 87 +++++++++++++++++++++++++ tests/test_export_db.py | 63 ++++++++++++++++++ 18 files changed, 280 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index f6559065..facf49ae 100644 --- a/README.md +++ b/README.md @@ -1173,6 +1173,11 @@ Options: '.osxphotos_export.db' in the export directory. If --exportdb is specified, it will be saved to the specified file. + --ramdb Copy export database to memory during export; + may improve performance when exporting over a + network or slow disk but could result in + losing update state information if the program + is interrupted or crashes. --load-config Load options from file as written with --save- config. This allows you to save a complex @@ -1736,7 +1741,7 @@ Substitution Description {lf} A line feed: '\n', alias for {newline} {cr} A carriage return: '\r' {crlf} a carriage return + line feed: '\r\n' -{osxphotos_version} The osxphotos version, e.g. '0.46.0' +{osxphotos_version} The osxphotos version, e.g. '0.46.1' {osxphotos_cmd_line} The full command line used to run osxphotos The following substitutions may result in multiple values. Thus if specified for @@ -3640,7 +3645,7 @@ The following template field substitutions are availabe for use the templating s |{lf}|A line feed: '\n', alias for {newline}| |{cr}|A carriage return: '\r'| |{crlf}|a carriage return + line feed: '\r\n'| -|{osxphotos_version}|The osxphotos version, e.g. '0.46.0'| +|{osxphotos_version}|The osxphotos version, e.g. '0.46.1'| |{osxphotos_cmd_line}|The full command line used to run osxphotos| |{album}|Album(s) photo is contained in| |{folder_album}|Folder path + album photo is contained in. e.g. 'Folder/Subfolder/Album' or just 'Album' if no enclosing folder| diff --git a/docs/.buildinfo b/docs/.buildinfo index 2ceb67e7..18882184 100644 --- a/docs/.buildinfo +++ b/docs/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 5b6236594d7900f08d9a1afda487bf3c +config: d6da9902a4771e5081ae73c361960af8 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/_modules/index.html b/docs/_modules/index.html index 9f398d36..9d8e91a1 100644 --- a/docs/_modules/index.html +++ b/docs/_modules/index.html @@ -5,7 +5,7 @@ - Overview: module code — osxphotos 0.46.0 documentation + Overview: module code — osxphotos 0.46.1 documentation diff --git a/docs/_modules/osxphotos/photoinfo.html b/docs/_modules/osxphotos/photoinfo.html index 4ba49971..51de1421 100644 --- a/docs/_modules/osxphotos/photoinfo.html +++ b/docs/_modules/osxphotos/photoinfo.html @@ -5,7 +5,7 @@ - osxphotos.photoinfo — osxphotos 0.46.0 documentation + osxphotos.photoinfo — osxphotos 0.46.1 documentation @@ -1818,7 +1818,6 @@

Navigation

diff --git a/docs/_static/documentation_options.js b/docs/_static/documentation_options.js index 5eee5cef..3f840ca4 100644 --- a/docs/_static/documentation_options.js +++ b/docs/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '0.46.0', + VERSION: '0.46.1', LANGUAGE: 'None', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/cli.html b/docs/cli.html index 6cdb57dc..6679d4a5 100644 --- a/docs/cli.html +++ b/docs/cli.html @@ -6,7 +6,7 @@ - osxphotos command line interface (CLI) — osxphotos 0.46.0 documentation + osxphotos command line interface (CLI) — osxphotos 0.46.1 documentation @@ -986,6 +986,12 @@ to modify this behavior.

Specify alternate path for database file which stores state information for export and –update. If –exportdb is not specified, export database will be saved to ‘.osxphotos_export.db’ in the export directory. If –exportdb is specified, it will be saved to the specified file.

+
+
+--ramdb
+

Copy export database to memory during export; may improve performance when exporting over a network or slow disk but could result in losing update state information if the program is interrupted or crashes.

+
+
--load-config <config file path>
diff --git a/docs/genindex.html b/docs/genindex.html index 9bd12878..ffe2a1aa 100644 --- a/docs/genindex.html +++ b/docs/genindex.html @@ -5,7 +5,7 @@ - Index — osxphotos 0.46.0 documentation + Index — osxphotos 0.46.1 documentation @@ -1084,6 +1084,13 @@
  • osxphotos-query command line option
  • osxphotos-repl command line option +
  • + +
  • + --ramdb + +
  • @@ -2012,6 +2019,8 @@
  • --query-eval <CRITERIA>
  • --query-function <filename.py::function> +
  • +
  • --ramdb
  • --regex <REGEX TEMPLATE>
  • diff --git a/docs/index.html b/docs/index.html index 6d20798a..c35a8ef8 100644 --- a/docs/index.html +++ b/docs/index.html @@ -6,7 +6,7 @@ - Welcome to osxphotos’s documentation! — osxphotos 0.46.0 documentation + Welcome to osxphotos’s documentation! — osxphotos 0.46.1 documentation diff --git a/docs/modules.html b/docs/modules.html index 1a7ed36a..7150b67e 100644 --- a/docs/modules.html +++ b/docs/modules.html @@ -6,7 +6,7 @@ - osxphotos — osxphotos 0.46.0 documentation + osxphotos — osxphotos 0.46.1 documentation diff --git a/docs/objects.inv b/docs/objects.inv index 0b05adf360569b05b4f1292e233a6ce94d8bcb12..d7a11cf6b5acd3870ad7c98c56f2f8cd8a0b9f05 100644 GIT binary patch delta 1909 zcmV-*2a5RN9_b#i3J8BHh=9cutE8b~FR+2P$^_Kh-n;_D43e_af5!tf(9#691A7Ln zl7zPTS#T09v7R>ItvRo)H^X21f#6=8LZi#rr6nw5`MR`pZDk?0Ikq?S+9hySH1!Ei z-p(Mj)w4X=EjD(0#`?4YqXQ(?rw!nJ=%7x+!^%_5W88N_u+o3VXt64Y(`a+L1ZErc zGTfFDb&;B96LDxm#@=yp-`IAI#M&~gl7uohqSrQ|`uA;@A5SpdsuOTDMYxb3>}tFc z?zJf}Tm|>q1i0TG@C!SVlXynw!BWpb-wL}!e+G9{BfzqSe~jl7D70B8F?^ROV#5J3 z9Sd&|2EQf(LdSo49RD+oe9gPA;T1jWA3lDl z{KDClgD6k;pFTW3e7}yab%t%VG146CT;Ck8Wz*JphgyFc$iQZ&f$V`(#+VxHl@XPd znhnd+1m%5`7hz+bsA>|uFeP^@q|BmuX6Kpb#391h7D42Qlp6teBGSFVKf*X_E!fuVKE z>DUgy^)JyQldqC9ydHjKd``3x_x*I9ru`^c=P9C}PXe3MJ${X{XRDiBN3gwW~lTZT?KEC0}snZ+Y0_zTPWf-b4 zD1d>}2M#+wd=Q}6!2ri4&jpOo>k}dodX^FKX!w6nfQ6^d1jKltX>WkfoAzS#>Ky9; zo@Q7Bwty~-X{%Vk0bOE_IByX1Q1~c-B}*Dw;d3Y1Yc_!G-#&-9R!U;w{(HwxwcmS# z^{Xrko-MLG5bETxOsa#!V}TxZ3!S&92juFCj3Z8KF#!m5*E%TGS?j@A^SA|*z2gB4 zwT^!~Fx5FefPtP2&z<*ScKwIb-k4)gXhwK-R!Hf$! z)h!<3fu^j$p0{O1V4w~Z!1GGb0PgTz65S^rqj|ff2_a>|S#2g;(PIN}WkEHfkFf9x zBhiK)!#RtBWE1+>0A3u#@)RDO$jA=&7|ef&;;}r1$GTMqKH0E3GJqO1BLk{OGd4i` zm<2kq2;;n_Wf;;TI6FflC#Xx!`z`6YwZ+)~)*Xj~ox??!jq#GNMJ-UD1 z1n8!<)Oj4Zj;JOf4@u0d8P#M8=DUkAl=#>BpFT~TUaHt*2 zLF;t(5o*Q?*ktB$brX<9PJ4g?ZgmTg<4rq&Vj$W8G@ujxKh8wnDt*T(;JNbGa{W$s z@?+ICtt2)94hZZT4RF3;bU<{kXsCaQZK6Z3t*aU2q^#yqNL9`9h@#pU3e?nM^1P%L z@LHC#EQ!YgWjPC-SLHksE6Q0aS(A&w>!-y5JewCC7%s>ebgCW~!GV-$K+k_uq7is? zF)m=IwKxwgkc(lOEAucQO=fxX44Fg1WjMo?B(j31STfZXut1j0QRfLZ4}}YGmYk}; zIXqM?Gi0h*=Ab~W%pm8bG7nsxV6?nxZqehQvVuiYB?X7Ys$>RB7Rfvos*zbNRU!*m zAh+tM^R%jiuCI?7;;cO8aW#Ja|H{$`@!FwCJAQpjHdz^)GSY*Li;w6h=5gwb`sZv-BMW^^gAuK{O=H+A= zY=lSW=Ts3af`d~OSpti&c$7{Rz#=%7pbvC1M<3&%^!I?LGT;#&&G&x>gG95z$s%Y{(M3X{tr5?x3qSJ6;K%OdM!>JF-Bd1xwax4N2T zfYV}@hpnzt$D3hAEWzfIJ10NyU1+_;_Q-wUT#gq&Mgnz zwsve>9?9y*N0JA?Nk#=nIXneADscr8_9* v=nId>xnlQ~$K$Vpj=tUbly9H&y?E1#yxAVccJ?u=_-KFssGs|P>e^mJ6d9^oFa3J8CV*b8iotTF*LcOtJ=FoUG5^q<@S4YV|Y?ZEQBRg%y)KMPJy zB-YagyyfAwrD6EPJP_QAQ)qO>xwP73tTdNanXN3uHpjMcUb_U&il#ondDa<(wtAK) zyBo%C&sd)}U^HvQ`m_POWgOILcvvK=DTn(`2v*t{tt$m_8f||Lg1~H}UWVJMpROnK zY$6VA$k^sBZt>c#kyr<%RgzHVp7Gj#QUAW}^5Y4nTXh1CX7d(Od0mYct-Uq{h6~nS zn*jIQ1AbvgauUyI5?E>v=v!eo)6d}MX9QTb@Q?9)0);l~B!=%2^=3FAreom^!r<3L zK>%If(Lf z|LMcy!}sgxT4&f+8zapL%=LZjS~l%scc}FTcMNQHaL1kvWsIr8UKvqYsoAhBO;Fx9 zc_G$X7c|A=h6F0Xn-N0+w@8 z1pJi?!=7sg2E_`eLlSW72gCtq!{Lye!EoqnLm}G^d*wlb1 zGWjYw!|UN!#@8gjpz$!m*>HFqFd7y(9}J6RjfF*D848ofbjJ&^V}&*oI?|H{Fgb|? zx)m&P-l%`zkWEOc_Q1sHO0%@K)nYZEMRY;DAzpIRFXz~&*(ryGX? z9y=c8;NX1_3%3`*}^|UuTO|X=vhX@qv8I23s1H0$9R9Bzixof`|D!#>Ky9;o@Q7Bwty~- zX;)Xk0S#S_IPc~1P`GQ~k|hnT@VS$03md@p&y+)4D`=u|PYyh0eRl19Ejm#u2Brm;i(tVI7oeg7sjm&)b5@Htzt2y1X5jYVsby zK>L4$=gwOuJa&DDw`I;6yaTZ2Obm(k?g-9Ype;0aM<(#xL$-FuV8#WVYV3~iK>t)= z&pW6hFi-~y;CUrz0C)Hj#M_71;k?0tY;haT5 zvR`~`051+=c?yqCWMngX3}!^}Sf0XTjirABpX@Ci89=?1kpb0C85^K|OoK(Dm1$%G zv>ZhS^RA;29B4d>;Pc+25gh4!i0DM~LySjT6$Xbyw}Ll;o7=5Js<(ZFNBYkrJkfsc z@toUh@zz4RwjFlfv>l-6Vj#T|;N1R;w?5iYYjuf++A$pKr;QEBc3N)&bkkbuyqSO2 zBYCm#N*u&GIvtv7=#0Q%a9s$jcu-vksElB`6i9hN^hyAQ7vkwvIMj~ipmjR?2sL8` zY%=q>x(Uc4r#(Ocx4H$$@unR>F%WG48qkUUA7>(OmA>N?@Lc(8xqhcR`LXJnRuY>4 z2LyJF1~}g^Iv~1NG}Od4(V^GY)eL`fQdaXQq^f3lL{V)F1!`(Bd0tWrcran(=ybBi z!?AjrMU&+;2S%!ChDsFEJo1=tTZCwI6mWHM&hn#;%sB%rRbtp=mc(O$ zvYds^t8yNR73D0ItjWdT_0!@2p3RF63>V}KI#rL0;6O?=pyw&k2)w!&7qEZRTAYU# z$i*;Fk0R;x9D+DS-~Qyl7hoxRWgGmi)0=P)yOQCDv<>&kXv=sd0N#$ z*Vo4kaaJDlxSA2A6UDIs&0BwJEtJLv3v?PF3u6%$zkpL^u>lSw!aRAN3LCJ%R@`If zoAH3{;Jpo95R1U9JJW8huU=bWk&<8r1qmS`W`g_1r8Sn^?=6i!dBIO%f0Lg#Z0YA^r#%Lf# zJD}%T+8B)_Y6muvtBv4jx;F3=8Cz!oSG){ARq%@8NWE)-6Xh-kXWUFnHxg3ove0>{ z%Ok-FJ~_KHZuF&_9IbL0aH7aHLSr?q2v3%{oCQ$fGUR!I%K=&OZaLOr)h!FAidzE~ z3!mxG35U&e$i&0tLa2Xag~{a*i7up*t7xdAWs!9B3@AJ_4`*1T4$kI{WKoLRoCU1S7tc1b}mwO3a{! diff --git a/docs/reference.html b/docs/reference.html index e4836bbc..179d3e76 100644 --- a/docs/reference.html +++ b/docs/reference.html @@ -6,7 +6,7 @@ - osxphotos package — osxphotos 0.46.0 documentation + osxphotos package — osxphotos 0.46.1 documentation @@ -15,7 +15,7 @@ - + @@ -935,7 +935,6 @@ Returns None if no associated RAW image

    Navigation

    • osxphotos command line interface (CLI)
    • -
    • osxphotos
    • osxphotos package @@ -946,7 +945,7 @@ Returns None if no associated RAW image

      Related Topics

      diff --git a/docs/search.html b/docs/search.html index 509c15c4..6e9a0dea 100644 --- a/docs/search.html +++ b/docs/search.html @@ -5,7 +5,7 @@ - Search — osxphotos 0.46.0 documentation + Search — osxphotos 0.46.1 documentation diff --git a/docs/searchindex.js b/docs/searchindex.js index 775d8cdc..c60d2ef8 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["cli","index","modules","reference"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["cli.rst","index.rst","modules.rst","reference.rst"],objects:{"osxphotos-albums":[[0,3,1,"cmdoption-osxphotos-albums-db","--db"],[0,3,1,"cmdoption-osxphotos-albums-json","--json"],[0,3,1,"cmdoption-osxphotos-albums-arg-PHOTOS_LIBRARY","PHOTOS_LIBRARY"]],"osxphotos-diff":[[0,3,1,"cmdoption-osxphotos-diff-db","--db"],[0,3,1,"cmdoption-osxphotos-diff-r","--raw-output"],[0,3,1,"cmdoption-osxphotos-diff-s","--style"],[0,3,1,"cmdoption-osxphotos-diff-V","--verbose"],[0,3,1,"cmdoption-osxphotos-diff-V","-V"],[0,3,1,"cmdoption-osxphotos-diff-r","-r"],[0,3,1,"cmdoption-osxphotos-diff-s","-s"],[0,3,1,"cmdoption-osxphotos-diff-arg-DB2","DB2"]],"osxphotos-dump":[[0,3,1,"cmdoption-osxphotos-dump-db","--db"],[0,3,1,"cmdoption-osxphotos-dump-deleted","--deleted"],[0,3,1,"cmdoption-osxphotos-dump-deleted-only","--deleted-only"],[0,3,1,"cmdoption-osxphotos-dump-json","--json"],[0,3,1,"cmdoption-osxphotos-dump-arg-PHOTOS_LIBRARY","PHOTOS_LIBRARY"]],"osxphotos-export":[[0,3,1,"cmdoption-osxphotos-export-add-exported-to-album","--add-exported-to-album"],[0,3,1,"cmdoption-osxphotos-export-add-missing-to-album","--add-missing-to-album"],[0,3,1,"cmdoption-osxphotos-export-add-skipped-to-album","--add-skipped-to-album"],[0,3,1,"cmdoption-osxphotos-export-album","--album"],[0,3,1,"cmdoption-osxphotos-export-album-keyword","--album-keyword"],[0,3,1,"cmdoption-osxphotos-export-burst","--burst"],[0,3,1,"cmdoption-osxphotos-export-cleanup","--cleanup"],[0,3,1,"cmdoption-osxphotos-export-config-only","--config-only"],[0,3,1,"cmdoption-osxphotos-export-convert-to-jpeg","--convert-to-jpeg"],[0,3,1,"cmdoption-osxphotos-export-current-name","--current-name"],[0,3,1,"cmdoption-osxphotos-export-db","--db"],[0,3,1,"cmdoption-osxphotos-export-deleted","--deleted"],[0,3,1,"cmdoption-osxphotos-export-deleted-only","--deleted-only"],[0,3,1,"cmdoption-osxphotos-export-description","--description"],[0,3,1,"cmdoption-osxphotos-export-description-template","--description-template"],[0,3,1,"cmdoption-osxphotos-export-directory","--directory"],[0,3,1,"cmdoption-osxphotos-export-download-missing","--download-missing"],[0,3,1,"cmdoption-osxphotos-export-dry-run","--dry-run"],[0,3,1,"cmdoption-osxphotos-export-duplicate","--duplicate"],[0,3,1,"cmdoption-osxphotos-export-edited","--edited"],[0,3,1,"cmdoption-osxphotos-export-edited-suffix","--edited-suffix"],[0,3,1,"cmdoption-osxphotos-export-exif","--exif"],[0,3,1,"cmdoption-osxphotos-export-exiftool","--exiftool"],[0,3,1,"cmdoption-osxphotos-export-exiftool-merge-keywords","--exiftool-merge-keywords"],[0,3,1,"cmdoption-osxphotos-export-exiftool-merge-persons","--exiftool-merge-persons"],[0,3,1,"cmdoption-osxphotos-export-exiftool-option","--exiftool-option"],[0,3,1,"cmdoption-osxphotos-export-exiftool-path","--exiftool-path"],[0,3,1,"cmdoption-osxphotos-export-export-as-hardlink","--export-as-hardlink"],[0,3,1,"cmdoption-osxphotos-export-export-by-date","--export-by-date"],[0,3,1,"cmdoption-osxphotos-export-exportdb","--exportdb"],[0,3,1,"cmdoption-osxphotos-export-external-edit","--external-edit"],[0,3,1,"cmdoption-osxphotos-export-favorite","--favorite"],[0,3,1,"cmdoption-osxphotos-export-filename","--filename"],[0,3,1,"cmdoption-osxphotos-export-finder-tag-keywords","--finder-tag-keywords"],[0,3,1,"cmdoption-osxphotos-export-finder-tag-template","--finder-tag-template"],[0,3,1,"cmdoption-osxphotos-export-folder","--folder"],[0,3,1,"cmdoption-osxphotos-export-force-update","--force-update"],[0,3,1,"cmdoption-osxphotos-export-from-date","--from-date"],[0,3,1,"cmdoption-osxphotos-export-from-time","--from-time"],[0,3,1,"cmdoption-osxphotos-export-has-comment","--has-comment"],[0,3,1,"cmdoption-osxphotos-export-has-likes","--has-likes"],[0,3,1,"cmdoption-osxphotos-export-has-raw","--has-raw"],[0,3,1,"cmdoption-osxphotos-export-hdr","--hdr"],[0,3,1,"cmdoption-osxphotos-export-hidden","--hidden"],[0,3,1,"cmdoption-osxphotos-export-i","--ignore-case"],[0,3,1,"cmdoption-osxphotos-export-ignore-date-modified","--ignore-date-modified"],[0,3,1,"cmdoption-osxphotos-export-ignore-signature","--ignore-signature"],[0,3,1,"cmdoption-osxphotos-export-in-album","--in-album"],[0,3,1,"cmdoption-osxphotos-export-is-reference","--is-reference"],[0,3,1,"cmdoption-osxphotos-export-jpeg-ext","--jpeg-ext"],[0,3,1,"cmdoption-osxphotos-export-jpeg-quality","--jpeg-quality"],[0,3,1,"cmdoption-osxphotos-export-keyword","--keyword"],[0,3,1,"cmdoption-osxphotos-export-keyword-template","--keyword-template"],[0,3,1,"cmdoption-osxphotos-export-label","--label"],[0,3,1,"cmdoption-osxphotos-export-live","--live"],[0,3,1,"cmdoption-osxphotos-export-load-config","--load-config"],[0,3,1,"cmdoption-osxphotos-export-location","--location"],[0,3,1,"cmdoption-osxphotos-export-max-size","--max-size"],[0,3,1,"cmdoption-osxphotos-export-min-size","--min-size"],[0,3,1,"cmdoption-osxphotos-export-missing","--missing"],[0,3,1,"cmdoption-osxphotos-export-name","--name"],[0,3,1,"cmdoption-osxphotos-export-no-comment","--no-comment"],[0,3,1,"cmdoption-osxphotos-export-no-description","--no-description"],[0,3,1,"cmdoption-osxphotos-export-no-likes","--no-likes"],[0,3,1,"cmdoption-osxphotos-export-no-location","--no-location"],[0,3,1,"cmdoption-osxphotos-export-no-place","--no-place"],[0,3,1,"cmdoption-osxphotos-export-no-title","--no-title"],[0,3,1,"cmdoption-osxphotos-export-not-burst","--not-burst"],[0,3,1,"cmdoption-osxphotos-export-not-favorite","--not-favorite"],[0,3,1,"cmdoption-osxphotos-export-not-hdr","--not-hdr"],[0,3,1,"cmdoption-osxphotos-export-not-hidden","--not-hidden"],[0,3,1,"cmdoption-osxphotos-export-not-in-album","--not-in-album"],[0,3,1,"cmdoption-osxphotos-export-not-live","--not-live"],[0,3,1,"cmdoption-osxphotos-export-not-panorama","--not-panorama"],[0,3,1,"cmdoption-osxphotos-export-not-portrait","--not-portrait"],[0,3,1,"cmdoption-osxphotos-export-not-screenshot","--not-screenshot"],[0,3,1,"cmdoption-osxphotos-export-not-selfie","--not-selfie"],[0,3,1,"cmdoption-osxphotos-export-not-shared","--not-shared"],[0,3,1,"cmdoption-osxphotos-export-not-slow-mo","--not-slow-mo"],[0,3,1,"cmdoption-osxphotos-export-not-time-lapse","--not-time-lapse"],[0,3,1,"cmdoption-osxphotos-export-only-movies","--only-movies"],[0,3,1,"cmdoption-osxphotos-export-only-new","--only-new"],[0,3,1,"cmdoption-osxphotos-export-only-photos","--only-photos"],[0,3,1,"cmdoption-osxphotos-export-original-suffix","--original-suffix"],[0,3,1,"cmdoption-osxphotos-export-overwrite","--overwrite"],[0,3,1,"cmdoption-osxphotos-export-panorama","--panorama"],[0,3,1,"cmdoption-osxphotos-export-person","--person"],[0,3,1,"cmdoption-osxphotos-export-person-keyword","--person-keyword"],[0,3,1,"cmdoption-osxphotos-export-place","--place"],[0,3,1,"cmdoption-osxphotos-export-portrait","--portrait"],[0,3,1,"cmdoption-osxphotos-export-post-command","--post-command"],[0,3,1,"cmdoption-osxphotos-export-post-function","--post-function"],[0,3,1,"cmdoption-osxphotos-export-preview","--preview"],[0,3,1,"cmdoption-osxphotos-export-preview-if-missing","--preview-if-missing"],[0,3,1,"cmdoption-osxphotos-export-preview-suffix","--preview-suffix"],[0,3,1,"cmdoption-osxphotos-export-query-eval","--query-eval"],[0,3,1,"cmdoption-osxphotos-export-query-function","--query-function"],[0,3,1,"cmdoption-osxphotos-export-regex","--regex"],[0,3,1,"cmdoption-osxphotos-export-replace-keywords","--replace-keywords"],[0,3,1,"cmdoption-osxphotos-export-report","--report"],[0,3,1,"cmdoption-osxphotos-export-retry","--retry"],[0,3,1,"cmdoption-osxphotos-export-save-config","--save-config"],[0,3,1,"cmdoption-osxphotos-export-screenshot","--screenshot"],[0,3,1,"cmdoption-osxphotos-export-selected","--selected"],[0,3,1,"cmdoption-osxphotos-export-selfie","--selfie"],[0,3,1,"cmdoption-osxphotos-export-shared","--shared"],[0,3,1,"cmdoption-osxphotos-export-sidecar","--sidecar"],[0,3,1,"cmdoption-osxphotos-export-sidecar-drop-ext","--sidecar-drop-ext"],[0,3,1,"cmdoption-osxphotos-export-skip-bursts","--skip-bursts"],[0,3,1,"cmdoption-osxphotos-export-skip-edited","--skip-edited"],[0,3,1,"cmdoption-osxphotos-export-skip-live","--skip-live"],[0,3,1,"cmdoption-osxphotos-export-skip-original-if-edited","--skip-original-if-edited"],[0,3,1,"cmdoption-osxphotos-export-skip-raw","--skip-raw"],[0,3,1,"cmdoption-osxphotos-export-skip-uuid","--skip-uuid"],[0,3,1,"cmdoption-osxphotos-export-skip-uuid-from-file","--skip-uuid-from-file"],[0,3,1,"cmdoption-osxphotos-export-slow-mo","--slow-mo"],[0,3,1,"cmdoption-osxphotos-export-strip","--strip"],[0,3,1,"cmdoption-osxphotos-export-time-lapse","--time-lapse"],[0,3,1,"cmdoption-osxphotos-export-timestamp","--timestamp"],[0,3,1,"cmdoption-osxphotos-export-title","--title"],[0,3,1,"cmdoption-osxphotos-export-to-date","--to-date"],[0,3,1,"cmdoption-osxphotos-export-to-time","--to-time"],[0,3,1,"cmdoption-osxphotos-export-touch-file","--touch-file"],[0,3,1,"cmdoption-osxphotos-export-update","--update"],[0,3,1,"cmdoption-osxphotos-export-use-photokit","--use-photokit"],[0,3,1,"cmdoption-osxphotos-export-use-photos-export","--use-photos-export"],[0,3,1,"cmdoption-osxphotos-export-uti","--uti"],[0,3,1,"cmdoption-osxphotos-export-uuid","--uuid"],[0,3,1,"cmdoption-osxphotos-export-uuid-from-file","--uuid-from-file"],[0,3,1,"cmdoption-osxphotos-export-V","--verbose"],[0,3,1,"cmdoption-osxphotos-export-xattr-template","--xattr-template"],[0,3,1,"cmdoption-osxphotos-export-V","-V"],[0,3,1,"cmdoption-osxphotos-export-i","-i"],[0,3,1,"cmdoption-osxphotos-export-arg-DEST","DEST"],[0,3,1,"cmdoption-osxphotos-export-arg-PHOTOS_LIBRARY","PHOTOS_LIBRARY"]],"osxphotos-help":[[0,3,1,"cmdoption-osxphotos-help-arg-TOPIC","TOPIC"]],"osxphotos-info":[[0,3,1,"cmdoption-osxphotos-info-db","--db"],[0,3,1,"cmdoption-osxphotos-info-json","--json"],[0,3,1,"cmdoption-osxphotos-info-arg-PHOTOS_LIBRARY","PHOTOS_LIBRARY"]],"osxphotos-install":[[0,3,1,"cmdoption-osxphotos-install-U","--upgrade"],[0,3,1,"cmdoption-osxphotos-install-U","-U"],[0,3,1,"cmdoption-osxphotos-install-arg-PACKAGES","PACKAGES"]],"osxphotos-keywords":[[0,3,1,"cmdoption-osxphotos-keywords-db","--db"],[0,3,1,"cmdoption-osxphotos-keywords-json","--json"],[0,3,1,"cmdoption-osxphotos-keywords-arg-PHOTOS_LIBRARY","PHOTOS_LIBRARY"]],"osxphotos-labels":[[0,3,1,"cmdoption-osxphotos-labels-db","--db"],[0,3,1,"cmdoption-osxphotos-labels-json","--json"],[0,3,1,"cmdoption-osxphotos-labels-arg-PHOTOS_LIBRARY","PHOTOS_LIBRARY"]],"osxphotos-list":[[0,3,1,"cmdoption-osxphotos-list-json","--json"]],"osxphotos-persons":[[0,3,1,"cmdoption-osxphotos-persons-db","--db"],[0,3,1,"cmdoption-osxphotos-persons-json","--json"],[0,3,1,"cmdoption-osxphotos-persons-arg-PHOTOS_LIBRARY","PHOTOS_LIBRARY"]],"osxphotos-places":[[0,3,1,"cmdoption-osxphotos-places-db","--db"],[0,3,1,"cmdoption-osxphotos-places-json","--json"],[0,3,1,"cmdoption-osxphotos-places-arg-PHOTOS_LIBRARY","PHOTOS_LIBRARY"]],"osxphotos-query":[[0,3,1,"cmdoption-osxphotos-query-add-to-album","--add-to-album"],[0,3,1,"cmdoption-osxphotos-query-album","--album"],[0,3,1,"cmdoption-osxphotos-query-burst","--burst"],[0,3,1,"cmdoption-osxphotos-query-cloudasset","--cloudasset"],[0,3,1,"cmdoption-osxphotos-query-db","--db"],[0,3,1,"cmdoption-osxphotos-query-deleted","--deleted"],[0,3,1,"cmdoption-osxphotos-query-deleted-only","--deleted-only"],[0,3,1,"cmdoption-osxphotos-query-description","--description"],[0,3,1,"cmdoption-osxphotos-query-duplicate","--duplicate"],[0,3,1,"cmdoption-osxphotos-query-edited","--edited"],[0,3,1,"cmdoption-osxphotos-query-exif","--exif"],[0,3,1,"cmdoption-osxphotos-query-external-edit","--external-edit"],[0,3,1,"cmdoption-osxphotos-query-favorite","--favorite"],[0,3,1,"cmdoption-osxphotos-query-folder","--folder"],[0,3,1,"cmdoption-osxphotos-query-from-date","--from-date"],[0,3,1,"cmdoption-osxphotos-query-from-time","--from-time"],[0,3,1,"cmdoption-osxphotos-query-has-comment","--has-comment"],[0,3,1,"cmdoption-osxphotos-query-has-likes","--has-likes"],[0,3,1,"cmdoption-osxphotos-query-has-raw","--has-raw"],[0,3,1,"cmdoption-osxphotos-query-hdr","--hdr"],[0,3,1,"cmdoption-osxphotos-query-hidden","--hidden"],[0,3,1,"cmdoption-osxphotos-query-i","--ignore-case"],[0,3,1,"cmdoption-osxphotos-query-in-album","--in-album"],[0,3,1,"cmdoption-osxphotos-query-incloud","--incloud"],[0,3,1,"cmdoption-osxphotos-query-is-reference","--is-reference"],[0,3,1,"cmdoption-osxphotos-query-json","--json"],[0,3,1,"cmdoption-osxphotos-query-keyword","--keyword"],[0,3,1,"cmdoption-osxphotos-query-label","--label"],[0,3,1,"cmdoption-osxphotos-query-live","--live"],[0,3,1,"cmdoption-osxphotos-query-location","--location"],[0,3,1,"cmdoption-osxphotos-query-max-size","--max-size"],[0,3,1,"cmdoption-osxphotos-query-min-size","--min-size"],[0,3,1,"cmdoption-osxphotos-query-missing","--missing"],[0,3,1,"cmdoption-osxphotos-query-name","--name"],[0,3,1,"cmdoption-osxphotos-query-no-comment","--no-comment"],[0,3,1,"cmdoption-osxphotos-query-no-description","--no-description"],[0,3,1,"cmdoption-osxphotos-query-no-likes","--no-likes"],[0,3,1,"cmdoption-osxphotos-query-no-location","--no-location"],[0,3,1,"cmdoption-osxphotos-query-no-place","--no-place"],[0,3,1,"cmdoption-osxphotos-query-no-title","--no-title"],[0,3,1,"cmdoption-osxphotos-query-not-burst","--not-burst"],[0,3,1,"cmdoption-osxphotos-query-not-cloudasset","--not-cloudasset"],[0,3,1,"cmdoption-osxphotos-query-not-favorite","--not-favorite"],[0,3,1,"cmdoption-osxphotos-query-not-hdr","--not-hdr"],[0,3,1,"cmdoption-osxphotos-query-not-hidden","--not-hidden"],[0,3,1,"cmdoption-osxphotos-query-not-in-album","--not-in-album"],[0,3,1,"cmdoption-osxphotos-query-not-incloud","--not-incloud"],[0,3,1,"cmdoption-osxphotos-query-not-live","--not-live"],[0,3,1,"cmdoption-osxphotos-query-not-missing","--not-missing"],[0,3,1,"cmdoption-osxphotos-query-not-panorama","--not-panorama"],[0,3,1,"cmdoption-osxphotos-query-not-portrait","--not-portrait"],[0,3,1,"cmdoption-osxphotos-query-not-screenshot","--not-screenshot"],[0,3,1,"cmdoption-osxphotos-query-not-selfie","--not-selfie"],[0,3,1,"cmdoption-osxphotos-query-not-shared","--not-shared"],[0,3,1,"cmdoption-osxphotos-query-not-slow-mo","--not-slow-mo"],[0,3,1,"cmdoption-osxphotos-query-not-time-lapse","--not-time-lapse"],[0,3,1,"cmdoption-osxphotos-query-only-movies","--only-movies"],[0,3,1,"cmdoption-osxphotos-query-only-photos","--only-photos"],[0,3,1,"cmdoption-osxphotos-query-panorama","--panorama"],[0,3,1,"cmdoption-osxphotos-query-person","--person"],[0,3,1,"cmdoption-osxphotos-query-place","--place"],[0,3,1,"cmdoption-osxphotos-query-portrait","--portrait"],[0,3,1,"cmdoption-osxphotos-query-query-eval","--query-eval"],[0,3,1,"cmdoption-osxphotos-query-query-function","--query-function"],[0,3,1,"cmdoption-osxphotos-query-regex","--regex"],[0,3,1,"cmdoption-osxphotos-query-screenshot","--screenshot"],[0,3,1,"cmdoption-osxphotos-query-selected","--selected"],[0,3,1,"cmdoption-osxphotos-query-selfie","--selfie"],[0,3,1,"cmdoption-osxphotos-query-shared","--shared"],[0,3,1,"cmdoption-osxphotos-query-slow-mo","--slow-mo"],[0,3,1,"cmdoption-osxphotos-query-time-lapse","--time-lapse"],[0,3,1,"cmdoption-osxphotos-query-title","--title"],[0,3,1,"cmdoption-osxphotos-query-to-date","--to-date"],[0,3,1,"cmdoption-osxphotos-query-to-time","--to-time"],[0,3,1,"cmdoption-osxphotos-query-uti","--uti"],[0,3,1,"cmdoption-osxphotos-query-uuid","--uuid"],[0,3,1,"cmdoption-osxphotos-query-uuid-from-file","--uuid-from-file"],[0,3,1,"cmdoption-osxphotos-query-i","-i"],[0,3,1,"cmdoption-osxphotos-query-arg-PHOTOS_LIBRARY","PHOTOS_LIBRARY"]],"osxphotos-repl":[[0,3,1,"cmdoption-osxphotos-repl-album","--album"],[0,3,1,"cmdoption-osxphotos-repl-burst","--burst"],[0,3,1,"cmdoption-osxphotos-repl-cloudasset","--cloudasset"],[0,3,1,"cmdoption-osxphotos-repl-db","--db"],[0,3,1,"cmdoption-osxphotos-repl-deleted","--deleted"],[0,3,1,"cmdoption-osxphotos-repl-deleted-only","--deleted-only"],[0,3,1,"cmdoption-osxphotos-repl-description","--description"],[0,3,1,"cmdoption-osxphotos-repl-duplicate","--duplicate"],[0,3,1,"cmdoption-osxphotos-repl-edited","--edited"],[0,3,1,"cmdoption-osxphotos-repl-emacs","--emacs"],[0,3,1,"cmdoption-osxphotos-repl-exif","--exif"],[0,3,1,"cmdoption-osxphotos-repl-external-edit","--external-edit"],[0,3,1,"cmdoption-osxphotos-repl-favorite","--favorite"],[0,3,1,"cmdoption-osxphotos-repl-folder","--folder"],[0,3,1,"cmdoption-osxphotos-repl-from-date","--from-date"],[0,3,1,"cmdoption-osxphotos-repl-from-time","--from-time"],[0,3,1,"cmdoption-osxphotos-repl-has-comment","--has-comment"],[0,3,1,"cmdoption-osxphotos-repl-has-likes","--has-likes"],[0,3,1,"cmdoption-osxphotos-repl-has-raw","--has-raw"],[0,3,1,"cmdoption-osxphotos-repl-hdr","--hdr"],[0,3,1,"cmdoption-osxphotos-repl-hidden","--hidden"],[0,3,1,"cmdoption-osxphotos-repl-i","--ignore-case"],[0,3,1,"cmdoption-osxphotos-repl-in-album","--in-album"],[0,3,1,"cmdoption-osxphotos-repl-incloud","--incloud"],[0,3,1,"cmdoption-osxphotos-repl-is-reference","--is-reference"],[0,3,1,"cmdoption-osxphotos-repl-keyword","--keyword"],[0,3,1,"cmdoption-osxphotos-repl-label","--label"],[0,3,1,"cmdoption-osxphotos-repl-live","--live"],[0,3,1,"cmdoption-osxphotos-repl-location","--location"],[0,3,1,"cmdoption-osxphotos-repl-max-size","--max-size"],[0,3,1,"cmdoption-osxphotos-repl-min-size","--min-size"],[0,3,1,"cmdoption-osxphotos-repl-missing","--missing"],[0,3,1,"cmdoption-osxphotos-repl-name","--name"],[0,3,1,"cmdoption-osxphotos-repl-no-comment","--no-comment"],[0,3,1,"cmdoption-osxphotos-repl-no-description","--no-description"],[0,3,1,"cmdoption-osxphotos-repl-no-likes","--no-likes"],[0,3,1,"cmdoption-osxphotos-repl-no-location","--no-location"],[0,3,1,"cmdoption-osxphotos-repl-no-place","--no-place"],[0,3,1,"cmdoption-osxphotos-repl-no-title","--no-title"],[0,3,1,"cmdoption-osxphotos-repl-not-burst","--not-burst"],[0,3,1,"cmdoption-osxphotos-repl-not-cloudasset","--not-cloudasset"],[0,3,1,"cmdoption-osxphotos-repl-not-favorite","--not-favorite"],[0,3,1,"cmdoption-osxphotos-repl-not-hdr","--not-hdr"],[0,3,1,"cmdoption-osxphotos-repl-not-hidden","--not-hidden"],[0,3,1,"cmdoption-osxphotos-repl-not-in-album","--not-in-album"],[0,3,1,"cmdoption-osxphotos-repl-not-incloud","--not-incloud"],[0,3,1,"cmdoption-osxphotos-repl-not-live","--not-live"],[0,3,1,"cmdoption-osxphotos-repl-not-missing","--not-missing"],[0,3,1,"cmdoption-osxphotos-repl-not-panorama","--not-panorama"],[0,3,1,"cmdoption-osxphotos-repl-not-portrait","--not-portrait"],[0,3,1,"cmdoption-osxphotos-repl-not-screenshot","--not-screenshot"],[0,3,1,"cmdoption-osxphotos-repl-not-selfie","--not-selfie"],[0,3,1,"cmdoption-osxphotos-repl-not-shared","--not-shared"],[0,3,1,"cmdoption-osxphotos-repl-not-slow-mo","--not-slow-mo"],[0,3,1,"cmdoption-osxphotos-repl-not-time-lapse","--not-time-lapse"],[0,3,1,"cmdoption-osxphotos-repl-only-movies","--only-movies"],[0,3,1,"cmdoption-osxphotos-repl-only-photos","--only-photos"],[0,3,1,"cmdoption-osxphotos-repl-panorama","--panorama"],[0,3,1,"cmdoption-osxphotos-repl-person","--person"],[0,3,1,"cmdoption-osxphotos-repl-place","--place"],[0,3,1,"cmdoption-osxphotos-repl-portrait","--portrait"],[0,3,1,"cmdoption-osxphotos-repl-query-eval","--query-eval"],[0,3,1,"cmdoption-osxphotos-repl-query-function","--query-function"],[0,3,1,"cmdoption-osxphotos-repl-regex","--regex"],[0,3,1,"cmdoption-osxphotos-repl-screenshot","--screenshot"],[0,3,1,"cmdoption-osxphotos-repl-selected","--selected"],[0,3,1,"cmdoption-osxphotos-repl-selfie","--selfie"],[0,3,1,"cmdoption-osxphotos-repl-shared","--shared"],[0,3,1,"cmdoption-osxphotos-repl-slow-mo","--slow-mo"],[0,3,1,"cmdoption-osxphotos-repl-time-lapse","--time-lapse"],[0,3,1,"cmdoption-osxphotos-repl-title","--title"],[0,3,1,"cmdoption-osxphotos-repl-to-date","--to-date"],[0,3,1,"cmdoption-osxphotos-repl-to-time","--to-time"],[0,3,1,"cmdoption-osxphotos-repl-uti","--uti"],[0,3,1,"cmdoption-osxphotos-repl-uuid","--uuid"],[0,3,1,"cmdoption-osxphotos-repl-uuid-from-file","--uuid-from-file"],[0,3,1,"cmdoption-osxphotos-repl-i","-i"]],"osxphotos-run":[[0,3,1,"cmdoption-osxphotos-run-arg-PYTHON_FILE","PYTHON_FILE"]],"osxphotos-snap":[[0,3,1,"cmdoption-osxphotos-snap-db","--db"]],"osxphotos-tutorial":[[0,3,1,"cmdoption-osxphotos-tutorial-arg-WIDTH","WIDTH"]],"osxphotos-uninstall":[[0,3,1,"cmdoption-osxphotos-uninstall-y","--yes"],[0,3,1,"cmdoption-osxphotos-uninstall-y","-y"],[0,3,1,"cmdoption-osxphotos-uninstall-arg-PACKAGES","PACKAGES"]],"osxphotos-uuid":[[0,3,1,"cmdoption-osxphotos-uuid-f","--filename"],[0,3,1,"cmdoption-osxphotos-uuid-f","-f"]],"osxphotos.PhotoInfo":[[3,1,1,"","adjustments"],[3,1,1,"","album_info"],[3,1,1,"","albums"],[3,2,1,"","asdict"],[3,1,1,"","burst"],[3,1,1,"","burst_album_info"],[3,1,1,"","burst_albums"],[3,1,1,"","burst_default_pick"],[3,1,1,"","burst_key"],[3,1,1,"","burst_photos"],[3,1,1,"","burst_selected"],[3,1,1,"","comments"],[3,1,1,"","date"],[3,1,1,"","date_added"],[3,1,1,"","date_modified"],[3,1,1,"","date_trashed"],[3,1,1,"","description"],[3,2,1,"","detected_text"],[3,1,1,"","duplicates"],[3,1,1,"","exif_info"],[3,1,1,"","exiftool"],[3,2,1,"","export"],[3,1,1,"","external_edit"],[3,1,1,"","face_info"],[3,1,1,"","favorite"],[3,1,1,"","filename"],[3,1,1,"","has_raw"],[3,1,1,"","hasadjustments"],[3,1,1,"","hdr"],[3,1,1,"","height"],[3,1,1,"","hidden"],[3,1,1,"","import_info"],[3,1,1,"","incloud"],[3,1,1,"","intrash"],[3,1,1,"","iscloudasset"],[3,1,1,"","ismissing"],[3,1,1,"","ismovie"],[3,1,1,"","isphoto"],[3,1,1,"","israw"],[3,1,1,"","isreference"],[3,2,1,"","json"],[3,1,1,"","keywords"],[3,1,1,"","labels"],[3,1,1,"","labels_normalized"],[3,1,1,"","likes"],[3,1,1,"","live_photo"],[3,1,1,"","location"],[3,1,1,"","moment"],[3,1,1,"","orientation"],[3,1,1,"","original_filename"],[3,1,1,"","original_filesize"],[3,1,1,"","original_height"],[3,1,1,"","original_orientation"],[3,1,1,"","original_width"],[3,1,1,"","owner"],[3,1,1,"","panorama"],[3,1,1,"","path"],[3,1,1,"","path_derivatives"],[3,1,1,"","path_edited"],[3,1,1,"","path_edited_live_photo"],[3,1,1,"","path_live_photo"],[3,1,1,"","path_raw"],[3,1,1,"","person_info"],[3,1,1,"","persons"],[3,1,1,"","place"],[3,1,1,"","portrait"],[3,1,1,"","project_info"],[3,1,1,"","raw_original"],[3,2,1,"","render_template"],[3,1,1,"","score"],[3,1,1,"","screenshot"],[3,1,1,"","search_info"],[3,1,1,"","search_info_normalized"],[3,1,1,"","selfie"],[3,1,1,"","shared"],[3,1,1,"","slow_mo"],[3,1,1,"","time_lapse"],[3,1,1,"","title"],[3,1,1,"","tzoffset"],[3,1,1,"","uti"],[3,1,1,"","uti_edited"],[3,1,1,"","uti_original"],[3,1,1,"","uti_raw"],[3,1,1,"","uuid"],[3,1,1,"","visible"],[3,1,1,"","width"]],"osxphotos.PhotosDB":[[3,1,1,"","album_info"],[3,1,1,"","album_info_shared"],[3,1,1,"","albums"],[3,1,1,"","albums_as_dict"],[3,1,1,"","albums_shared"],[3,1,1,"","albums_shared_as_dict"],[3,1,1,"","db_path"],[3,1,1,"","db_version"],[3,2,1,"","execute"],[3,1,1,"","folder_info"],[3,1,1,"","folders"],[3,2,1,"","get_db_connection"],[3,2,1,"","get_photo"],[3,1,1,"","import_info"],[3,1,1,"","keywords"],[3,1,1,"","keywords_as_dict"],[3,1,1,"","labels"],[3,1,1,"","labels_as_dict"],[3,1,1,"","labels_normalized"],[3,1,1,"","labels_normalized_as_dict"],[3,1,1,"","library_path"],[3,1,1,"","person_info"],[3,1,1,"","persons"],[3,1,1,"","persons_as_dict"],[3,2,1,"","photos"],[3,2,1,"","photos_by_uuid"],[3,1,1,"","project_info"],[3,2,1,"","query"]],osxphotos:[[3,0,1,"","PhotoInfo"],[3,0,1,"","PhotosDB"],[0,3,1,"cmdoption-osxphotos-db","--db"],[0,3,1,"cmdoption-osxphotos-json","--json"],[0,3,1,"cmdoption-osxphotos-v","--version"],[0,3,1,"cmdoption-osxphotos-v","-v"]]},objnames:{"0":["py","class","Python class"],"1":["py","property","Python property"],"2":["py","method","Python method"],"3":["std","cmdoption","program option"]},objtypes:{"0":"py:class","1":"py:property","2":"py:method","3":"std:cmdoption"},terms:{"0":[0,1,3],"00":0,"01":0,"048576mb":0,"07":0,"1":[0,1,3],"10":[0,1],"1048576":0,"11":1,"12":[0,1],"120":3,"12t12":0,"15":[0,1],"1gb":1,"2":[0,1],"20":0,"2000":0,"2001":0,"2019":0,"3":[0,1],"31":0,"4":3,"5":[0,3],"6":1,"7":1,"75":3,"8601":0,"boolean":3,"byte":[0,3],"case":[0,3],"class":[0,3],"default":[0,3],"do":[0,1,3],"export":3,"float":3,"function":0,"import":[0,1,3],"int":3,"long":3,"new":[0,1],"public":3,"return":[0,3],"true":[1,3],A:0,AND:[0,3],Be:0,By:0,For:[0,3],If:[0,1,3],In:[0,3],OR:[0,3],The:[0,1,3],Then:1,These:0,To:[0,1],__main__:1,__name__:1,_bearbeiten:0,_edit:0,_low_r:0,_origin:0,_preview:0,abbrevi:[],abil:1,abl:1,about:[1,3],abov:1,absolut:3,access:[1,3],accord:1,activ:[],actual:[0,3],ad:[0,3],add:0,addit:0,adjust:3,adjustmentsinfo:3,adob:0,advanc:1,advantag:0,after:0,against:3,ahead:3,aka:1,album:3,album_info:3,album_info_shar:3,album_nam:1,albuminfo:3,albums_as_dict:[1,3],albums_shar:3,albums_shared_as_dict:3,alic:1,all:[0,3],all_fil:[],allow:[0,1],alpha:0,alreadi:[0,3],also:[0,1,3],altern:[0,1],an:[0,3],ani:[0,1,3],apertur:[],apf:0,app:[0,1,3],append:0,appl:[0,1,3],applescript:[0,3],appli:[0,3],applic:1,ar:[0,3],aren:[1,3],arg:[0,1,3],argument:[0,1],asdict:3,ask:0,asset:3,associ:[0,1,3],assum:3,asynchroun:3,attempt:[0,1,3],attribut:0,author:0,auto:1,automat:0,avail:3,awar:3,back:3,bar:1,base:3,beach:0,becaus:1,been:[0,1,3],befor:[0,1],begin:0,behavior:0,being:0,belong:3,below:[0,1,3],best:0,beta:1,between:3,bind:0,bit:[],bit_rat:[],blob:0,bodi:[],bodies_of_wat:[],bool:[],both:[0,1],brew:[0,1],built:1,burst:[0,3],burst_album:3,burst_album_info:3,burst_default_pick:3,burst_kei:3,burst_photo:3,burst_select:3,call:[0,1,3],callabl:[],camera:[0,3],camera_mak:[],camera_model:[],can:[0,1],cannot:[0,3],canon:[0,3],care:1,catalina:0,categor:3,categori:0,caution:0,cd:1,certain:0,chang:[0,3],charact:1,citi:[],classif:[0,1],cleanup:0,cli:1,click:1,clone:[0,1],cloud:3,cloudasset:0,code:1,codec:[],collis:0,com:[0,1,3],comfort:1,command_nam:1,comment:[0,3],compar:0,compat:[0,1],complex:0,compon:0,comprehens:0,compress:0,comput:3,confid:3,confidence_threshold:3,config:0,confirm:0,conform:[],conjunct:0,connect:[0,3],consist:0,contact:1,contain:[0,1,3],context:0,convert:0,convert_to_jpeg:[],converted_to_jpeg:0,coordin:0,copi:[0,3],copyright:0,correct:3,correspond:0,could:[0,1],count:3,countri:[],cr2:3,creat:0,created:0,creation:3,creationd:0,creator:0,criteria:[0,3],csv:0,curat:[],current:[0,3],cursor:3,dai:0,data:[0,3],databas:[0,1,3],date:[0,3],date_ad:3,date_modifi:3,date_trash:3,datecr:0,datetim:3,datetimeorigin:0,db2:0,db:[0,1,3],db_path:3,db_version:3,dbfile:3,debug:0,def:1,default_album:1,defin:0,degre:3,delet:[0,3],deleted_directori:[],deleted_fil:[],deriv:3,desc:0,descend:3,descr:0,describ:1,descript:[0,1,3],description_templ:3,dest:[0,3],dest_dir:1,destin:[1,3],detail:[0,3],detect:3,detected_text:3,determin:3,dict:3,did:0,diff:1,differ:[0,1,3],digikam:0,dir:1,direct:0,directli:[0,1],directori:0,disabl:1,disk:[0,3],displai:[0,1],doc:0,document:0,doe:[0,1,3],doesn:0,don:0,download:[0,1,3],drive:0,drop:0,dry:0,dry_run:[],dump:1,duplic:[0,1,3],durat:[],dure:0,dynam:0,e:[0,1,3],each:[0,3],earlier:3,easiest:1,easili:1,echo:[0,1],edit:[0,1,3],edited_filenam:[],edited_nam:1,editor:[0,3],either:[0,1,3],els:[1,3],emac:0,embed:0,empti:3,end:0,ensur:[1,3],entir:[0,3],environ:[0,1],equival:0,error:[0,3],error_str:[],etc:[0,1,3],eval:0,evalu:0,even:0,exact:3,exampl:[0,3],except:3,execut:[1,3],exif:[0,3],exif_info:3,exif_tag:0,exif_upd:0,exifinfo:3,exiftool:[0,1,3],exiftool_error:[],exiftool_flag:[],exiftool_path:0,exiftool_pod:0,exiftool_warn:[],exiftoolcach:3,exist:[0,1,3],exit:[0,1],expandus:1,expect:0,experi:0,experiment:0,export2:[],export_as_hardlink:3,export_db:[],export_dir:0,export_path:1,exportdb:0,exportdb_abc:[],exportdb_fil:0,exportdbinmemori:[],exported_album:[],exportresult:[],exposure_bia:[],express:0,ext:0,extend:[0,3],extens:[0,3],extern:[0,3],external_edit:3,extract:3,f:[0,1],face:[0,1,3],face_info:3,faceinfo:3,fail:3,failur:[],fall:3,fals:3,familiar:1,faster:[0,3],favorit:[0,3],featur:0,field:3,file:[0,3],filenam:[0,1,3],filename_origin:0,filepath:[0,1],files:3,fileutil:[],fileutilabc:[],fileutilnoop:[],filter:0,find:0,finder:0,findercom:0,first:[0,3],flag:0,flash_fir:[],flexibl:1,focal_length:[],folder:[0,3],folder_album:0,folder_info:3,folderinfo:3,follow:[0,1],foo:1,forc:[0,3],form:0,format:[0,1,3],found:[0,1,3],fp:[],from:[0,3],from_dat:[0,3],from_tim:0,front:[0,3],full:[0,3],g:[0,1,3],gener:[0,3],geoloc:[0,3],get:[1,3],get_db_connect:3,get_photo:3,github:[0,1],give:0,gp:0,gpscoordin:0,gpslatitud:0,gpslatituderef:0,gpslongitud:0,gpslongituderef:0,gpsposit:0,gpu:0,group:[0,3],h:1,ha:[0,1,3],had:0,handl:0,happen:0,hardlink:[0,3],harmonious_color:[],has_raw:3,hasadjust:[1,3],hash:0,have:[0,1,3],haven:0,hdr:[0,3],headlin:0,heic:0,height:[0,3],help:1,here:0,hidden:[0,3],high:0,highli:0,highlight:0,highlight_vis:[],hold:[],holidai:[],homebrew:[0,1],how:0,html:0,http:[0,1,3],i:[0,1,3],icloud:[0,3],id:0,identifi:[0,3],ignor:[0,3],ignore_date_modifi:[],ignore_signatur:[],imag:[0,1,3],imagedescript:0,img_1234:0,immedi:3,immers:[],implement:0,import_info:3,importinfo:3,incloud:[0,3],includ:[0,1,3],incorrect:3,increment:3,index:1,info:[1,3],inform:[0,1,3],initi:3,insensit:0,inspect:0,instal:3,instanc:3,instead:[0,3],instruct:1,integ:0,intend:0,interact:[0,1,3],interesting_subject:[],intermitt:0,internet:0,intrash:3,intrusive_object_pres:[],invalid:[1,3],io:0,iptc:[0,3],is_valid_filepath:1,iscloudasset:3,isdir:1,ismiss:[1,3],ismovi:3,iso:0,isphoto:3,israw:3,isrefer:3,item:[0,3],iterm2:0,j:[0,3],john:1,join:1,jpeg:[0,3],jpeg_ext:[],jpeg_qual:0,jpg:0,json:[0,3],just:[0,1],kei:3,keybind:0,keyword:3,keyword_templ:3,keywords_as_dict:[1,3],know:0,label:3,labels_as_dict:3,labels_norm:3,labels_normalized_as_dict:3,laps:[0,3],larg:[0,1],largest:3,last:[0,1],later:0,latest:[0,1],latitud:3,launch:0,lead:0,learn:[],lens_model:[],level:[0,3],librari:[0,3],library_path:[1,3],licens:[0,1],lightroom:0,liglob:3,like:[0,1,3],list:[1,3],live:[0,3],live_photo:3,lively_color:[],ll:0,load:0,local:3,locality_nam:[],locat:[0,3],log:3,longitud:3,look:[0,1],lot:0,low_light:[],lower:0,m:[0,1],mac:[0,1],machin:[0,1],maco:[0,1],mai:[0,3],main:1,make:[0,1],makedir:1,mangl:3,mani:0,mark:[0,3],master:0,match:[0,3],max:0,maximum:0,me:1,mean:3,media:[],media_typ:1,memori:[],merg:0,merge_exif_keyword:[],merge_exif_person:[],messag:1,metadata:[0,3],metering_mod:[],method:[],mib:0,microsoft:0,might:3,min:[0,1],minor:0,miss:[0,1,3],missing_album:[],mo:0,mode:0,modif:[0,3],modifi:0,modifyd:0,modul:1,moment:3,monokai:0,monterei:1,month:[],more:[0,1,3],most:0,motion:[0,3],mov:[0,3],movi:[0,1,3],multi:0,multipl:[0,1],must:[0,3],mysteri:3,naiv:3,name:[0,3],need:[0,1],neighborhood:[],neither:[0,1,3],network:0,newer:0,nist:0,nois:[],non:[0,3],none:[1,3],nor:0,normal:[0,3],note:[0,1,3],notic:3,now:1,object:[0,3],obvious:0,occur:[0,3],offset:3,offsettimeorigin:0,older:3,one:[0,3],onli:[0,3],op:[],open:[0,1],option:[0,1,3],order:[0,1,3],org:[0,3],organ:0,orient:3,origin:[0,1,3],original_filenam:[1,3],original_files:3,original_height:3,original_nam:0,original_orient:3,original_width:3,os:1,osxphotos_export:0,osxphotos_snapshot:0,other:[0,1],otherwis:[0,1,3],out:[0,1],output:0,outsid:3,overal:[],overrid:0,overwrit:[0,3],own:[0,1],owner:3,p:1,packag:0,page:1,pair:[0,3],panorama:[0,3],paramet:[1,3],part:[0,3],particip:0,particular:3,pass:[0,3],path:[0,1,3],path_deriv:3,path_edit:[1,3],path_edited_live_photo:3,path_live_photo:3,path_raw:3,pathlib:1,pathvalid:1,per:0,permit:0,person:3,person_info:3,personinfo:3,personinimag:0,persons_as_dict:[1,3],photo:[0,3],photo_ext:0,photo_filenam:0,photoinfo:[0,3],photokit:0,photonam:0,photoname_bearbeiten:0,photoname_edit:0,photoname_low_r:0,photoname_preview:0,photos_by_uuid:3,photos_librari:[0,1],photosdb:[1,3],photoshop:0,photoslibrari:[0,1],phototempl:3,pictur:[0,1,3],pixel:3,place:[1,3],place_nam:[],placeinfo:3,platform:1,pleas:1,pleasant_camera_tilt:[],pleasant_composit:[],pleasant_light:[],pleasant_pattern:[],pleasant_perspect:[],pleasant_post_process:[],pleasant_reflect:[],pleasant_symmetri:[],png:0,portrait:[0,3],posit:[0,1],possibl:[0,3],post:0,pre:1,preced:0,present:0,preview:[0,3],preview_suffix:[],previous:0,primari:0,print:[0,3],privat:0,process:[0,3],produc:3,project:[0,1,3],project_info:3,promot:[],properti:3,prototyp:0,provid:[0,1,3],py:[0,1],pygment:0,pylint:1,pypi:1,python3:1,python:[0,1],python_fil:0,qualiti:0,queri:[1,3],query_funct:0,queryopt:3,quickli:0,quicktim:[0,3],r:0,rais:3,rang:0,rate:0,raw:[0,3],raw_origin:3,raw_photo:3,re:0,read:[1,3],readabl:3,recent:[0,3],recommend:1,refer:[0,1,3],referenc:0,regardless:3,regex:0,region:0,regular:0,relat:[],releas:1,reliabl:0,remov:0,renam:0,render:[0,3],render_opt:3,render_templ:3,rendered_str:3,renderopt:3,repeat:0,repl:1,replac:0,replace_keyword:[],repo:1,report:0,repres:[0,3],represent:3,requir:[0,1,3],resolut:0,result:[0,3],retri:0,reus:0,revers:[0,3],rhettbul:[0,1],run:[1,3],s:[0,3],same:[0,3],sample_r:[],sanitize_filepath:1,save:0,score:3,scoreinfo:3,screenshot:[0,3],script:0,search:[0,1,3],search_info:3,search_info_norm:3,searchinfo:3,season:[],second:3,see:[0,1,3],select:[0,3],self:3,selfi:[0,3],session:3,set:[0,3],setup:1,setuptool:1,sh:[0,1],share:[0,3],sharply_focused_subject:[],shell:[0,1],shell_quot:0,shot:0,should:[0,1],show:[0,1,3],shutter_spe:[],si:0,sidecar:[0,3],sidecar_drop_ext:[],sidecar_exiftool:3,sidecar_exiftool_skip:0,sidecar_exiftool_written:0,sidecar_ext:0,sidecar_json:3,sidecar_json_skip:0,sidecar_json_written:0,sidecar_xmp:3,sidecar_xmp_skip:0,sidecar_xmp_written:0,sierra:1,signatur:[0,3],silent:3,simpl:1,simpli:1,sinc:0,singl:[0,3],size:[0,1,3],skip:[0,1],skipped_album:[],slow:[0,3],slow_mo:3,smith:1,snap:1,snapshot:0,so:3,softwar:0,some:3,someth:3,sort:3,sourc:3,space:0,specif:[1,3],specifi:0,spotlight:[0,1],sql:3,sqldiff:0,sqlite3:3,stack:3,stamp:0,start:[0,1],state:[0,3],state_abbrevi:[],statement:3,statu:[0,3],still:3,storat:3,store:[0,3],str:3,street:[],string:[0,3],strip:0,style:0,subfold:0,subject:0,subsequ:0,suffix:[0,3],suitabl:0,suppli:3,sur:1,sure:[0,1],sy:1,synch:[0,3],syntax:0,system:0,t:[0,1,3],tabl:3,tag:[0,1,3],tagnam:0,tagslist:0,take:1,taken:0,tastefully_blur:[],templat:[0,1,3],template_str:3,term:[],termin:[0,1],test:[0,1],text:3,text_detection_confidence_threshold:3,than:[0,3],thei:[0,3],them:[0,3],theme:0,thi:[0,1,3],threshold:3,through:1,thu:[0,1],time:[0,3],time_laps:3,timecr:0,timeout:3,timestamp:0,timezon:[0,3],titl:[0,1,3],tmp:0,to_dat:[0,3],to_tim:0,todai:0,toml:0,top:[0,3],topic:0,touch:0,touch_fil:[],town:[],track_format:[],trail:0,trash:3,treat:[0,3],trigger:0,tupl:3,tutori:1,two:0,txt:0,type:[0,3],tzoffset:3,u:0,unedit:1,unfil:1,uniform:[0,3],uninstal:1,uniqu:0,unit:0,unless:3,unlik:0,unmatch:3,until:3,up:0,updat:[0,3],upgrad:0,upon:[0,3],us:[0,3],use_albums_as_keyword:3,use_persons_as_keyword:3,use_photokit:[],use_photos_export:3,useabl:0,user:3,userdata:0,utc:3,uti:[0,3],uti_edit:3,uti_origin:3,uti_raw:3,util:1,uuid:[1,3],v:[0,1],vacat:3,valid:[0,1,3],valu:[0,1,3],variabl:0,variou:[],ve:[0,3],venu:[],venue_typ:[],verbos:[0,3],veri:1,verifi:1,versa:1,version:[0,1,3],vi:0,via:[0,1,3],vice:1,video:[0,3],virtual:[0,1],visbl:3,visibl:3,volum:0,wa:[0,3],wai:1,want:[0,1],warn:[0,1,3],water:[],wed:3,well:[0,1,3],well_chosen_subject:[],well_framed_subject:[],well_timed_shot:[],went:0,were:[0,3],what:[0,3],when:[0,3],where:0,whether:0,which:[0,1,3],white_bal:[],whitespac:0,whose:0,width:[0,3],within:0,without:0,work:[0,1,3],would:[0,1],write:[0,3],written:[0,3],x:1,xattr:0,xattr_skip:[],xattr_written:[],xmp:[0,3],y:0,ye:0,year:0,yet:3,you:[0,1,3],your:[0,1]},titles:["osxphotos command line interface (CLI)","Welcome to osxphotos\u2019s documentation!","osxphotos","osxphotos package"],titleterms:{"200mb":1,"4":1,"5":1,"default":1,"export":[0,1],about:0,add:1,album:[0,1],all:1,ar:1,awail:1,base:1,big:1,chang:1,cli:0,command:[0,1],countri:1,creat:1,creation:1,date:1,desktop:1,diff:0,digit:1,directori:1,document:1,dump:0,exampl:1,exif:1,file:1,find:1,folder:1,from:1,full:1,git:1,group:1,help:0,higher:1,indic:1,info:0,instal:[0,1],interfac:[0,1],json:1,keyword:[0,1],kid:1,label:[0,1],larger:1,librari:1,line:[0,1],list:0,media:1,metadata:1,modul:3,month:1,name:1,necessari:1,nocountri:1,onli:1,oper:1,osxphoto:[0,1,2,3],ouput:1,output:1,packag:[1,3],person:[0,1],photo:1,pip:1,pipx:1,place:0,print:1,queri:0,repl:0,repositori:1,result:1,run:0,s:1,snap:0,specifi:1,structur:1,support:1,system:1,tabl:1,than:1,them:1,tutori:0,type:1,uninstal:0,updat:1,us:1,usag:1,uuid:0,verbos:1,video:1,welcom:1,what:1,when:1,write:1,year:1}}) \ No newline at end of file +Search.setIndex({docnames:["cli","index","modules","reference"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["cli.rst","index.rst","modules.rst","reference.rst"],objects:{"osxphotos-albums":[[0,3,1,"cmdoption-osxphotos-albums-db","--db"],[0,3,1,"cmdoption-osxphotos-albums-json","--json"],[0,3,1,"cmdoption-osxphotos-albums-arg-PHOTOS_LIBRARY","PHOTOS_LIBRARY"]],"osxphotos-diff":[[0,3,1,"cmdoption-osxphotos-diff-db","--db"],[0,3,1,"cmdoption-osxphotos-diff-r","--raw-output"],[0,3,1,"cmdoption-osxphotos-diff-s","--style"],[0,3,1,"cmdoption-osxphotos-diff-V","--verbose"],[0,3,1,"cmdoption-osxphotos-diff-V","-V"],[0,3,1,"cmdoption-osxphotos-diff-r","-r"],[0,3,1,"cmdoption-osxphotos-diff-s","-s"],[0,3,1,"cmdoption-osxphotos-diff-arg-DB2","DB2"]],"osxphotos-dump":[[0,3,1,"cmdoption-osxphotos-dump-db","--db"],[0,3,1,"cmdoption-osxphotos-dump-deleted","--deleted"],[0,3,1,"cmdoption-osxphotos-dump-deleted-only","--deleted-only"],[0,3,1,"cmdoption-osxphotos-dump-json","--json"],[0,3,1,"cmdoption-osxphotos-dump-arg-PHOTOS_LIBRARY","PHOTOS_LIBRARY"]],"osxphotos-export":[[0,3,1,"cmdoption-osxphotos-export-add-exported-to-album","--add-exported-to-album"],[0,3,1,"cmdoption-osxphotos-export-add-missing-to-album","--add-missing-to-album"],[0,3,1,"cmdoption-osxphotos-export-add-skipped-to-album","--add-skipped-to-album"],[0,3,1,"cmdoption-osxphotos-export-album","--album"],[0,3,1,"cmdoption-osxphotos-export-album-keyword","--album-keyword"],[0,3,1,"cmdoption-osxphotos-export-burst","--burst"],[0,3,1,"cmdoption-osxphotos-export-cleanup","--cleanup"],[0,3,1,"cmdoption-osxphotos-export-config-only","--config-only"],[0,3,1,"cmdoption-osxphotos-export-convert-to-jpeg","--convert-to-jpeg"],[0,3,1,"cmdoption-osxphotos-export-current-name","--current-name"],[0,3,1,"cmdoption-osxphotos-export-db","--db"],[0,3,1,"cmdoption-osxphotos-export-deleted","--deleted"],[0,3,1,"cmdoption-osxphotos-export-deleted-only","--deleted-only"],[0,3,1,"cmdoption-osxphotos-export-description","--description"],[0,3,1,"cmdoption-osxphotos-export-description-template","--description-template"],[0,3,1,"cmdoption-osxphotos-export-directory","--directory"],[0,3,1,"cmdoption-osxphotos-export-download-missing","--download-missing"],[0,3,1,"cmdoption-osxphotos-export-dry-run","--dry-run"],[0,3,1,"cmdoption-osxphotos-export-duplicate","--duplicate"],[0,3,1,"cmdoption-osxphotos-export-edited","--edited"],[0,3,1,"cmdoption-osxphotos-export-edited-suffix","--edited-suffix"],[0,3,1,"cmdoption-osxphotos-export-exif","--exif"],[0,3,1,"cmdoption-osxphotos-export-exiftool","--exiftool"],[0,3,1,"cmdoption-osxphotos-export-exiftool-merge-keywords","--exiftool-merge-keywords"],[0,3,1,"cmdoption-osxphotos-export-exiftool-merge-persons","--exiftool-merge-persons"],[0,3,1,"cmdoption-osxphotos-export-exiftool-option","--exiftool-option"],[0,3,1,"cmdoption-osxphotos-export-exiftool-path","--exiftool-path"],[0,3,1,"cmdoption-osxphotos-export-export-as-hardlink","--export-as-hardlink"],[0,3,1,"cmdoption-osxphotos-export-export-by-date","--export-by-date"],[0,3,1,"cmdoption-osxphotos-export-exportdb","--exportdb"],[0,3,1,"cmdoption-osxphotos-export-external-edit","--external-edit"],[0,3,1,"cmdoption-osxphotos-export-favorite","--favorite"],[0,3,1,"cmdoption-osxphotos-export-filename","--filename"],[0,3,1,"cmdoption-osxphotos-export-finder-tag-keywords","--finder-tag-keywords"],[0,3,1,"cmdoption-osxphotos-export-finder-tag-template","--finder-tag-template"],[0,3,1,"cmdoption-osxphotos-export-folder","--folder"],[0,3,1,"cmdoption-osxphotos-export-force-update","--force-update"],[0,3,1,"cmdoption-osxphotos-export-from-date","--from-date"],[0,3,1,"cmdoption-osxphotos-export-from-time","--from-time"],[0,3,1,"cmdoption-osxphotos-export-has-comment","--has-comment"],[0,3,1,"cmdoption-osxphotos-export-has-likes","--has-likes"],[0,3,1,"cmdoption-osxphotos-export-has-raw","--has-raw"],[0,3,1,"cmdoption-osxphotos-export-hdr","--hdr"],[0,3,1,"cmdoption-osxphotos-export-hidden","--hidden"],[0,3,1,"cmdoption-osxphotos-export-i","--ignore-case"],[0,3,1,"cmdoption-osxphotos-export-ignore-date-modified","--ignore-date-modified"],[0,3,1,"cmdoption-osxphotos-export-ignore-signature","--ignore-signature"],[0,3,1,"cmdoption-osxphotos-export-in-album","--in-album"],[0,3,1,"cmdoption-osxphotos-export-is-reference","--is-reference"],[0,3,1,"cmdoption-osxphotos-export-jpeg-ext","--jpeg-ext"],[0,3,1,"cmdoption-osxphotos-export-jpeg-quality","--jpeg-quality"],[0,3,1,"cmdoption-osxphotos-export-keyword","--keyword"],[0,3,1,"cmdoption-osxphotos-export-keyword-template","--keyword-template"],[0,3,1,"cmdoption-osxphotos-export-label","--label"],[0,3,1,"cmdoption-osxphotos-export-live","--live"],[0,3,1,"cmdoption-osxphotos-export-load-config","--load-config"],[0,3,1,"cmdoption-osxphotos-export-location","--location"],[0,3,1,"cmdoption-osxphotos-export-max-size","--max-size"],[0,3,1,"cmdoption-osxphotos-export-min-size","--min-size"],[0,3,1,"cmdoption-osxphotos-export-missing","--missing"],[0,3,1,"cmdoption-osxphotos-export-name","--name"],[0,3,1,"cmdoption-osxphotos-export-no-comment","--no-comment"],[0,3,1,"cmdoption-osxphotos-export-no-description","--no-description"],[0,3,1,"cmdoption-osxphotos-export-no-likes","--no-likes"],[0,3,1,"cmdoption-osxphotos-export-no-location","--no-location"],[0,3,1,"cmdoption-osxphotos-export-no-place","--no-place"],[0,3,1,"cmdoption-osxphotos-export-no-title","--no-title"],[0,3,1,"cmdoption-osxphotos-export-not-burst","--not-burst"],[0,3,1,"cmdoption-osxphotos-export-not-favorite","--not-favorite"],[0,3,1,"cmdoption-osxphotos-export-not-hdr","--not-hdr"],[0,3,1,"cmdoption-osxphotos-export-not-hidden","--not-hidden"],[0,3,1,"cmdoption-osxphotos-export-not-in-album","--not-in-album"],[0,3,1,"cmdoption-osxphotos-export-not-live","--not-live"],[0,3,1,"cmdoption-osxphotos-export-not-panorama","--not-panorama"],[0,3,1,"cmdoption-osxphotos-export-not-portrait","--not-portrait"],[0,3,1,"cmdoption-osxphotos-export-not-screenshot","--not-screenshot"],[0,3,1,"cmdoption-osxphotos-export-not-selfie","--not-selfie"],[0,3,1,"cmdoption-osxphotos-export-not-shared","--not-shared"],[0,3,1,"cmdoption-osxphotos-export-not-slow-mo","--not-slow-mo"],[0,3,1,"cmdoption-osxphotos-export-not-time-lapse","--not-time-lapse"],[0,3,1,"cmdoption-osxphotos-export-only-movies","--only-movies"],[0,3,1,"cmdoption-osxphotos-export-only-new","--only-new"],[0,3,1,"cmdoption-osxphotos-export-only-photos","--only-photos"],[0,3,1,"cmdoption-osxphotos-export-original-suffix","--original-suffix"],[0,3,1,"cmdoption-osxphotos-export-overwrite","--overwrite"],[0,3,1,"cmdoption-osxphotos-export-panorama","--panorama"],[0,3,1,"cmdoption-osxphotos-export-person","--person"],[0,3,1,"cmdoption-osxphotos-export-person-keyword","--person-keyword"],[0,3,1,"cmdoption-osxphotos-export-place","--place"],[0,3,1,"cmdoption-osxphotos-export-portrait","--portrait"],[0,3,1,"cmdoption-osxphotos-export-post-command","--post-command"],[0,3,1,"cmdoption-osxphotos-export-post-function","--post-function"],[0,3,1,"cmdoption-osxphotos-export-preview","--preview"],[0,3,1,"cmdoption-osxphotos-export-preview-if-missing","--preview-if-missing"],[0,3,1,"cmdoption-osxphotos-export-preview-suffix","--preview-suffix"],[0,3,1,"cmdoption-osxphotos-export-query-eval","--query-eval"],[0,3,1,"cmdoption-osxphotos-export-query-function","--query-function"],[0,3,1,"cmdoption-osxphotos-export-ramdb","--ramdb"],[0,3,1,"cmdoption-osxphotos-export-regex","--regex"],[0,3,1,"cmdoption-osxphotos-export-replace-keywords","--replace-keywords"],[0,3,1,"cmdoption-osxphotos-export-report","--report"],[0,3,1,"cmdoption-osxphotos-export-retry","--retry"],[0,3,1,"cmdoption-osxphotos-export-save-config","--save-config"],[0,3,1,"cmdoption-osxphotos-export-screenshot","--screenshot"],[0,3,1,"cmdoption-osxphotos-export-selected","--selected"],[0,3,1,"cmdoption-osxphotos-export-selfie","--selfie"],[0,3,1,"cmdoption-osxphotos-export-shared","--shared"],[0,3,1,"cmdoption-osxphotos-export-sidecar","--sidecar"],[0,3,1,"cmdoption-osxphotos-export-sidecar-drop-ext","--sidecar-drop-ext"],[0,3,1,"cmdoption-osxphotos-export-skip-bursts","--skip-bursts"],[0,3,1,"cmdoption-osxphotos-export-skip-edited","--skip-edited"],[0,3,1,"cmdoption-osxphotos-export-skip-live","--skip-live"],[0,3,1,"cmdoption-osxphotos-export-skip-original-if-edited","--skip-original-if-edited"],[0,3,1,"cmdoption-osxphotos-export-skip-raw","--skip-raw"],[0,3,1,"cmdoption-osxphotos-export-skip-uuid","--skip-uuid"],[0,3,1,"cmdoption-osxphotos-export-skip-uuid-from-file","--skip-uuid-from-file"],[0,3,1,"cmdoption-osxphotos-export-slow-mo","--slow-mo"],[0,3,1,"cmdoption-osxphotos-export-strip","--strip"],[0,3,1,"cmdoption-osxphotos-export-time-lapse","--time-lapse"],[0,3,1,"cmdoption-osxphotos-export-timestamp","--timestamp"],[0,3,1,"cmdoption-osxphotos-export-title","--title"],[0,3,1,"cmdoption-osxphotos-export-to-date","--to-date"],[0,3,1,"cmdoption-osxphotos-export-to-time","--to-time"],[0,3,1,"cmdoption-osxphotos-export-touch-file","--touch-file"],[0,3,1,"cmdoption-osxphotos-export-update","--update"],[0,3,1,"cmdoption-osxphotos-export-use-photokit","--use-photokit"],[0,3,1,"cmdoption-osxphotos-export-use-photos-export","--use-photos-export"],[0,3,1,"cmdoption-osxphotos-export-uti","--uti"],[0,3,1,"cmdoption-osxphotos-export-uuid","--uuid"],[0,3,1,"cmdoption-osxphotos-export-uuid-from-file","--uuid-from-file"],[0,3,1,"cmdoption-osxphotos-export-V","--verbose"],[0,3,1,"cmdoption-osxphotos-export-xattr-template","--xattr-template"],[0,3,1,"cmdoption-osxphotos-export-V","-V"],[0,3,1,"cmdoption-osxphotos-export-i","-i"],[0,3,1,"cmdoption-osxphotos-export-arg-DEST","DEST"],[0,3,1,"cmdoption-osxphotos-export-arg-PHOTOS_LIBRARY","PHOTOS_LIBRARY"]],"osxphotos-help":[[0,3,1,"cmdoption-osxphotos-help-arg-TOPIC","TOPIC"]],"osxphotos-info":[[0,3,1,"cmdoption-osxphotos-info-db","--db"],[0,3,1,"cmdoption-osxphotos-info-json","--json"],[0,3,1,"cmdoption-osxphotos-info-arg-PHOTOS_LIBRARY","PHOTOS_LIBRARY"]],"osxphotos-install":[[0,3,1,"cmdoption-osxphotos-install-U","--upgrade"],[0,3,1,"cmdoption-osxphotos-install-U","-U"],[0,3,1,"cmdoption-osxphotos-install-arg-PACKAGES","PACKAGES"]],"osxphotos-keywords":[[0,3,1,"cmdoption-osxphotos-keywords-db","--db"],[0,3,1,"cmdoption-osxphotos-keywords-json","--json"],[0,3,1,"cmdoption-osxphotos-keywords-arg-PHOTOS_LIBRARY","PHOTOS_LIBRARY"]],"osxphotos-labels":[[0,3,1,"cmdoption-osxphotos-labels-db","--db"],[0,3,1,"cmdoption-osxphotos-labels-json","--json"],[0,3,1,"cmdoption-osxphotos-labels-arg-PHOTOS_LIBRARY","PHOTOS_LIBRARY"]],"osxphotos-list":[[0,3,1,"cmdoption-osxphotos-list-json","--json"]],"osxphotos-persons":[[0,3,1,"cmdoption-osxphotos-persons-db","--db"],[0,3,1,"cmdoption-osxphotos-persons-json","--json"],[0,3,1,"cmdoption-osxphotos-persons-arg-PHOTOS_LIBRARY","PHOTOS_LIBRARY"]],"osxphotos-places":[[0,3,1,"cmdoption-osxphotos-places-db","--db"],[0,3,1,"cmdoption-osxphotos-places-json","--json"],[0,3,1,"cmdoption-osxphotos-places-arg-PHOTOS_LIBRARY","PHOTOS_LIBRARY"]],"osxphotos-query":[[0,3,1,"cmdoption-osxphotos-query-add-to-album","--add-to-album"],[0,3,1,"cmdoption-osxphotos-query-album","--album"],[0,3,1,"cmdoption-osxphotos-query-burst","--burst"],[0,3,1,"cmdoption-osxphotos-query-cloudasset","--cloudasset"],[0,3,1,"cmdoption-osxphotos-query-db","--db"],[0,3,1,"cmdoption-osxphotos-query-deleted","--deleted"],[0,3,1,"cmdoption-osxphotos-query-deleted-only","--deleted-only"],[0,3,1,"cmdoption-osxphotos-query-description","--description"],[0,3,1,"cmdoption-osxphotos-query-duplicate","--duplicate"],[0,3,1,"cmdoption-osxphotos-query-edited","--edited"],[0,3,1,"cmdoption-osxphotos-query-exif","--exif"],[0,3,1,"cmdoption-osxphotos-query-external-edit","--external-edit"],[0,3,1,"cmdoption-osxphotos-query-favorite","--favorite"],[0,3,1,"cmdoption-osxphotos-query-folder","--folder"],[0,3,1,"cmdoption-osxphotos-query-from-date","--from-date"],[0,3,1,"cmdoption-osxphotos-query-from-time","--from-time"],[0,3,1,"cmdoption-osxphotos-query-has-comment","--has-comment"],[0,3,1,"cmdoption-osxphotos-query-has-likes","--has-likes"],[0,3,1,"cmdoption-osxphotos-query-has-raw","--has-raw"],[0,3,1,"cmdoption-osxphotos-query-hdr","--hdr"],[0,3,1,"cmdoption-osxphotos-query-hidden","--hidden"],[0,3,1,"cmdoption-osxphotos-query-i","--ignore-case"],[0,3,1,"cmdoption-osxphotos-query-in-album","--in-album"],[0,3,1,"cmdoption-osxphotos-query-incloud","--incloud"],[0,3,1,"cmdoption-osxphotos-query-is-reference","--is-reference"],[0,3,1,"cmdoption-osxphotos-query-json","--json"],[0,3,1,"cmdoption-osxphotos-query-keyword","--keyword"],[0,3,1,"cmdoption-osxphotos-query-label","--label"],[0,3,1,"cmdoption-osxphotos-query-live","--live"],[0,3,1,"cmdoption-osxphotos-query-location","--location"],[0,3,1,"cmdoption-osxphotos-query-max-size","--max-size"],[0,3,1,"cmdoption-osxphotos-query-min-size","--min-size"],[0,3,1,"cmdoption-osxphotos-query-missing","--missing"],[0,3,1,"cmdoption-osxphotos-query-name","--name"],[0,3,1,"cmdoption-osxphotos-query-no-comment","--no-comment"],[0,3,1,"cmdoption-osxphotos-query-no-description","--no-description"],[0,3,1,"cmdoption-osxphotos-query-no-likes","--no-likes"],[0,3,1,"cmdoption-osxphotos-query-no-location","--no-location"],[0,3,1,"cmdoption-osxphotos-query-no-place","--no-place"],[0,3,1,"cmdoption-osxphotos-query-no-title","--no-title"],[0,3,1,"cmdoption-osxphotos-query-not-burst","--not-burst"],[0,3,1,"cmdoption-osxphotos-query-not-cloudasset","--not-cloudasset"],[0,3,1,"cmdoption-osxphotos-query-not-favorite","--not-favorite"],[0,3,1,"cmdoption-osxphotos-query-not-hdr","--not-hdr"],[0,3,1,"cmdoption-osxphotos-query-not-hidden","--not-hidden"],[0,3,1,"cmdoption-osxphotos-query-not-in-album","--not-in-album"],[0,3,1,"cmdoption-osxphotos-query-not-incloud","--not-incloud"],[0,3,1,"cmdoption-osxphotos-query-not-live","--not-live"],[0,3,1,"cmdoption-osxphotos-query-not-missing","--not-missing"],[0,3,1,"cmdoption-osxphotos-query-not-panorama","--not-panorama"],[0,3,1,"cmdoption-osxphotos-query-not-portrait","--not-portrait"],[0,3,1,"cmdoption-osxphotos-query-not-screenshot","--not-screenshot"],[0,3,1,"cmdoption-osxphotos-query-not-selfie","--not-selfie"],[0,3,1,"cmdoption-osxphotos-query-not-shared","--not-shared"],[0,3,1,"cmdoption-osxphotos-query-not-slow-mo","--not-slow-mo"],[0,3,1,"cmdoption-osxphotos-query-not-time-lapse","--not-time-lapse"],[0,3,1,"cmdoption-osxphotos-query-only-movies","--only-movies"],[0,3,1,"cmdoption-osxphotos-query-only-photos","--only-photos"],[0,3,1,"cmdoption-osxphotos-query-panorama","--panorama"],[0,3,1,"cmdoption-osxphotos-query-person","--person"],[0,3,1,"cmdoption-osxphotos-query-place","--place"],[0,3,1,"cmdoption-osxphotos-query-portrait","--portrait"],[0,3,1,"cmdoption-osxphotos-query-query-eval","--query-eval"],[0,3,1,"cmdoption-osxphotos-query-query-function","--query-function"],[0,3,1,"cmdoption-osxphotos-query-regex","--regex"],[0,3,1,"cmdoption-osxphotos-query-screenshot","--screenshot"],[0,3,1,"cmdoption-osxphotos-query-selected","--selected"],[0,3,1,"cmdoption-osxphotos-query-selfie","--selfie"],[0,3,1,"cmdoption-osxphotos-query-shared","--shared"],[0,3,1,"cmdoption-osxphotos-query-slow-mo","--slow-mo"],[0,3,1,"cmdoption-osxphotos-query-time-lapse","--time-lapse"],[0,3,1,"cmdoption-osxphotos-query-title","--title"],[0,3,1,"cmdoption-osxphotos-query-to-date","--to-date"],[0,3,1,"cmdoption-osxphotos-query-to-time","--to-time"],[0,3,1,"cmdoption-osxphotos-query-uti","--uti"],[0,3,1,"cmdoption-osxphotos-query-uuid","--uuid"],[0,3,1,"cmdoption-osxphotos-query-uuid-from-file","--uuid-from-file"],[0,3,1,"cmdoption-osxphotos-query-i","-i"],[0,3,1,"cmdoption-osxphotos-query-arg-PHOTOS_LIBRARY","PHOTOS_LIBRARY"]],"osxphotos-repl":[[0,3,1,"cmdoption-osxphotos-repl-album","--album"],[0,3,1,"cmdoption-osxphotos-repl-burst","--burst"],[0,3,1,"cmdoption-osxphotos-repl-cloudasset","--cloudasset"],[0,3,1,"cmdoption-osxphotos-repl-db","--db"],[0,3,1,"cmdoption-osxphotos-repl-deleted","--deleted"],[0,3,1,"cmdoption-osxphotos-repl-deleted-only","--deleted-only"],[0,3,1,"cmdoption-osxphotos-repl-description","--description"],[0,3,1,"cmdoption-osxphotos-repl-duplicate","--duplicate"],[0,3,1,"cmdoption-osxphotos-repl-edited","--edited"],[0,3,1,"cmdoption-osxphotos-repl-emacs","--emacs"],[0,3,1,"cmdoption-osxphotos-repl-exif","--exif"],[0,3,1,"cmdoption-osxphotos-repl-external-edit","--external-edit"],[0,3,1,"cmdoption-osxphotos-repl-favorite","--favorite"],[0,3,1,"cmdoption-osxphotos-repl-folder","--folder"],[0,3,1,"cmdoption-osxphotos-repl-from-date","--from-date"],[0,3,1,"cmdoption-osxphotos-repl-from-time","--from-time"],[0,3,1,"cmdoption-osxphotos-repl-has-comment","--has-comment"],[0,3,1,"cmdoption-osxphotos-repl-has-likes","--has-likes"],[0,3,1,"cmdoption-osxphotos-repl-has-raw","--has-raw"],[0,3,1,"cmdoption-osxphotos-repl-hdr","--hdr"],[0,3,1,"cmdoption-osxphotos-repl-hidden","--hidden"],[0,3,1,"cmdoption-osxphotos-repl-i","--ignore-case"],[0,3,1,"cmdoption-osxphotos-repl-in-album","--in-album"],[0,3,1,"cmdoption-osxphotos-repl-incloud","--incloud"],[0,3,1,"cmdoption-osxphotos-repl-is-reference","--is-reference"],[0,3,1,"cmdoption-osxphotos-repl-keyword","--keyword"],[0,3,1,"cmdoption-osxphotos-repl-label","--label"],[0,3,1,"cmdoption-osxphotos-repl-live","--live"],[0,3,1,"cmdoption-osxphotos-repl-location","--location"],[0,3,1,"cmdoption-osxphotos-repl-max-size","--max-size"],[0,3,1,"cmdoption-osxphotos-repl-min-size","--min-size"],[0,3,1,"cmdoption-osxphotos-repl-missing","--missing"],[0,3,1,"cmdoption-osxphotos-repl-name","--name"],[0,3,1,"cmdoption-osxphotos-repl-no-comment","--no-comment"],[0,3,1,"cmdoption-osxphotos-repl-no-description","--no-description"],[0,3,1,"cmdoption-osxphotos-repl-no-likes","--no-likes"],[0,3,1,"cmdoption-osxphotos-repl-no-location","--no-location"],[0,3,1,"cmdoption-osxphotos-repl-no-place","--no-place"],[0,3,1,"cmdoption-osxphotos-repl-no-title","--no-title"],[0,3,1,"cmdoption-osxphotos-repl-not-burst","--not-burst"],[0,3,1,"cmdoption-osxphotos-repl-not-cloudasset","--not-cloudasset"],[0,3,1,"cmdoption-osxphotos-repl-not-favorite","--not-favorite"],[0,3,1,"cmdoption-osxphotos-repl-not-hdr","--not-hdr"],[0,3,1,"cmdoption-osxphotos-repl-not-hidden","--not-hidden"],[0,3,1,"cmdoption-osxphotos-repl-not-in-album","--not-in-album"],[0,3,1,"cmdoption-osxphotos-repl-not-incloud","--not-incloud"],[0,3,1,"cmdoption-osxphotos-repl-not-live","--not-live"],[0,3,1,"cmdoption-osxphotos-repl-not-missing","--not-missing"],[0,3,1,"cmdoption-osxphotos-repl-not-panorama","--not-panorama"],[0,3,1,"cmdoption-osxphotos-repl-not-portrait","--not-portrait"],[0,3,1,"cmdoption-osxphotos-repl-not-screenshot","--not-screenshot"],[0,3,1,"cmdoption-osxphotos-repl-not-selfie","--not-selfie"],[0,3,1,"cmdoption-osxphotos-repl-not-shared","--not-shared"],[0,3,1,"cmdoption-osxphotos-repl-not-slow-mo","--not-slow-mo"],[0,3,1,"cmdoption-osxphotos-repl-not-time-lapse","--not-time-lapse"],[0,3,1,"cmdoption-osxphotos-repl-only-movies","--only-movies"],[0,3,1,"cmdoption-osxphotos-repl-only-photos","--only-photos"],[0,3,1,"cmdoption-osxphotos-repl-panorama","--panorama"],[0,3,1,"cmdoption-osxphotos-repl-person","--person"],[0,3,1,"cmdoption-osxphotos-repl-place","--place"],[0,3,1,"cmdoption-osxphotos-repl-portrait","--portrait"],[0,3,1,"cmdoption-osxphotos-repl-query-eval","--query-eval"],[0,3,1,"cmdoption-osxphotos-repl-query-function","--query-function"],[0,3,1,"cmdoption-osxphotos-repl-regex","--regex"],[0,3,1,"cmdoption-osxphotos-repl-screenshot","--screenshot"],[0,3,1,"cmdoption-osxphotos-repl-selected","--selected"],[0,3,1,"cmdoption-osxphotos-repl-selfie","--selfie"],[0,3,1,"cmdoption-osxphotos-repl-shared","--shared"],[0,3,1,"cmdoption-osxphotos-repl-slow-mo","--slow-mo"],[0,3,1,"cmdoption-osxphotos-repl-time-lapse","--time-lapse"],[0,3,1,"cmdoption-osxphotos-repl-title","--title"],[0,3,1,"cmdoption-osxphotos-repl-to-date","--to-date"],[0,3,1,"cmdoption-osxphotos-repl-to-time","--to-time"],[0,3,1,"cmdoption-osxphotos-repl-uti","--uti"],[0,3,1,"cmdoption-osxphotos-repl-uuid","--uuid"],[0,3,1,"cmdoption-osxphotos-repl-uuid-from-file","--uuid-from-file"],[0,3,1,"cmdoption-osxphotos-repl-i","-i"]],"osxphotos-run":[[0,3,1,"cmdoption-osxphotos-run-arg-PYTHON_FILE","PYTHON_FILE"]],"osxphotos-snap":[[0,3,1,"cmdoption-osxphotos-snap-db","--db"]],"osxphotos-tutorial":[[0,3,1,"cmdoption-osxphotos-tutorial-arg-WIDTH","WIDTH"]],"osxphotos-uninstall":[[0,3,1,"cmdoption-osxphotos-uninstall-y","--yes"],[0,3,1,"cmdoption-osxphotos-uninstall-y","-y"],[0,3,1,"cmdoption-osxphotos-uninstall-arg-PACKAGES","PACKAGES"]],"osxphotos-uuid":[[0,3,1,"cmdoption-osxphotos-uuid-f","--filename"],[0,3,1,"cmdoption-osxphotos-uuid-f","-f"]],"osxphotos.PhotoInfo":[[3,1,1,"","adjustments"],[3,1,1,"","album_info"],[3,1,1,"","albums"],[3,2,1,"","asdict"],[3,1,1,"","burst"],[3,1,1,"","burst_album_info"],[3,1,1,"","burst_albums"],[3,1,1,"","burst_default_pick"],[3,1,1,"","burst_key"],[3,1,1,"","burst_photos"],[3,1,1,"","burst_selected"],[3,1,1,"","comments"],[3,1,1,"","date"],[3,1,1,"","date_added"],[3,1,1,"","date_modified"],[3,1,1,"","date_trashed"],[3,1,1,"","description"],[3,2,1,"","detected_text"],[3,1,1,"","duplicates"],[3,1,1,"","exif_info"],[3,1,1,"","exiftool"],[3,2,1,"","export"],[3,1,1,"","external_edit"],[3,1,1,"","face_info"],[3,1,1,"","favorite"],[3,1,1,"","filename"],[3,1,1,"","has_raw"],[3,1,1,"","hasadjustments"],[3,1,1,"","hdr"],[3,1,1,"","height"],[3,1,1,"","hidden"],[3,1,1,"","import_info"],[3,1,1,"","incloud"],[3,1,1,"","intrash"],[3,1,1,"","iscloudasset"],[3,1,1,"","ismissing"],[3,1,1,"","ismovie"],[3,1,1,"","isphoto"],[3,1,1,"","israw"],[3,1,1,"","isreference"],[3,2,1,"","json"],[3,1,1,"","keywords"],[3,1,1,"","labels"],[3,1,1,"","labels_normalized"],[3,1,1,"","likes"],[3,1,1,"","live_photo"],[3,1,1,"","location"],[3,1,1,"","moment"],[3,1,1,"","orientation"],[3,1,1,"","original_filename"],[3,1,1,"","original_filesize"],[3,1,1,"","original_height"],[3,1,1,"","original_orientation"],[3,1,1,"","original_width"],[3,1,1,"","owner"],[3,1,1,"","panorama"],[3,1,1,"","path"],[3,1,1,"","path_derivatives"],[3,1,1,"","path_edited"],[3,1,1,"","path_edited_live_photo"],[3,1,1,"","path_live_photo"],[3,1,1,"","path_raw"],[3,1,1,"","person_info"],[3,1,1,"","persons"],[3,1,1,"","place"],[3,1,1,"","portrait"],[3,1,1,"","project_info"],[3,1,1,"","raw_original"],[3,2,1,"","render_template"],[3,1,1,"","score"],[3,1,1,"","screenshot"],[3,1,1,"","search_info"],[3,1,1,"","search_info_normalized"],[3,1,1,"","selfie"],[3,1,1,"","shared"],[3,1,1,"","slow_mo"],[3,1,1,"","time_lapse"],[3,1,1,"","title"],[3,1,1,"","tzoffset"],[3,1,1,"","uti"],[3,1,1,"","uti_edited"],[3,1,1,"","uti_original"],[3,1,1,"","uti_raw"],[3,1,1,"","uuid"],[3,1,1,"","visible"],[3,1,1,"","width"]],"osxphotos.PhotosDB":[[3,1,1,"","album_info"],[3,1,1,"","album_info_shared"],[3,1,1,"","albums"],[3,1,1,"","albums_as_dict"],[3,1,1,"","albums_shared"],[3,1,1,"","albums_shared_as_dict"],[3,1,1,"","db_path"],[3,1,1,"","db_version"],[3,2,1,"","execute"],[3,1,1,"","folder_info"],[3,1,1,"","folders"],[3,2,1,"","get_db_connection"],[3,2,1,"","get_photo"],[3,1,1,"","import_info"],[3,1,1,"","keywords"],[3,1,1,"","keywords_as_dict"],[3,1,1,"","labels"],[3,1,1,"","labels_as_dict"],[3,1,1,"","labels_normalized"],[3,1,1,"","labels_normalized_as_dict"],[3,1,1,"","library_path"],[3,1,1,"","person_info"],[3,1,1,"","persons"],[3,1,1,"","persons_as_dict"],[3,2,1,"","photos"],[3,2,1,"","photos_by_uuid"],[3,1,1,"","project_info"],[3,2,1,"","query"]],osxphotos:[[3,0,1,"","PhotoInfo"],[3,0,1,"","PhotosDB"],[0,3,1,"cmdoption-osxphotos-db","--db"],[0,3,1,"cmdoption-osxphotos-json","--json"],[0,3,1,"cmdoption-osxphotos-v","--version"],[0,3,1,"cmdoption-osxphotos-v","-v"]]},objnames:{"0":["py","class","Python class"],"1":["py","property","Python property"],"2":["py","method","Python method"],"3":["std","cmdoption","program option"]},objtypes:{"0":"py:class","1":"py:property","2":"py:method","3":"std:cmdoption"},terms:{"0":[0,1,3],"00":0,"01":0,"048576mb":0,"07":0,"1":[0,1,3],"10":[0,1],"1048576":0,"11":1,"12":[0,1],"120":3,"12t12":0,"15":[0,1],"1gb":1,"2":[0,1],"20":0,"2000":0,"2001":0,"2019":0,"3":[0,1],"31":0,"4":3,"5":[0,3],"6":1,"7":1,"75":3,"8601":0,"boolean":3,"byte":[0,3],"case":[0,3],"class":[0,3],"default":[0,3],"do":[0,1,3],"export":3,"float":3,"function":0,"import":[0,1,3],"int":3,"long":3,"new":[0,1],"public":3,"return":[0,3],"true":[1,3],A:0,AND:[0,3],Be:0,By:0,For:[0,3],If:[0,1,3],In:[0,3],OR:[0,3],The:[0,1,3],Then:1,These:0,To:[0,1],__main__:1,__name__:1,_bearbeiten:0,_edit:0,_low_r:0,_origin:0,_preview:0,abbrevi:[],abil:1,abl:1,about:[1,3],abov:1,absolut:3,access:[1,3],accord:1,activ:[],actual:[0,3],ad:[0,3],add:0,addit:0,adjust:3,adjustmentsinfo:3,adob:0,advanc:1,advantag:0,after:0,against:3,ahead:3,aka:1,album:3,album_info:3,album_info_shar:3,album_nam:1,albuminfo:3,albums_as_dict:[1,3],albums_shar:3,albums_shared_as_dict:3,alic:1,all:[0,3],all_fil:[],allow:[0,1],alpha:0,alreadi:[0,3],also:[0,1,3],altern:[0,1],an:[0,3],ani:[0,1,3],apertur:[],apf:0,app:[0,1,3],append:0,appl:[0,1,3],applescript:[0,3],appli:[0,3],applic:1,ar:[0,3],aren:[1,3],arg:[0,1,3],argument:[0,1],asdict:3,ask:0,asset:3,associ:[0,1,3],assum:3,asynchroun:3,attempt:[0,1,3],attribut:0,author:0,auto:1,automat:0,avail:3,awar:3,back:3,bar:1,base:3,beach:0,becaus:1,been:[0,1,3],befor:[0,1],begin:0,behavior:0,being:0,belong:3,below:[0,1,3],best:0,beta:1,between:3,bind:0,bit:[],bit_rat:[],blob:0,bodi:[],bodies_of_wat:[],bool:[],both:[0,1],brew:[0,1],built:1,burst:[0,3],burst_album:3,burst_album_info:3,burst_default_pick:3,burst_kei:3,burst_photo:3,burst_select:3,call:[0,1,3],callabl:[],camera:[0,3],camera_mak:[],camera_model:[],can:[0,1],cannot:[0,3],canon:[0,3],care:1,catalina:0,categor:3,categori:0,caution:0,cd:1,certain:0,chang:[0,3],charact:1,citi:[],classif:[0,1],cleanup:0,cli:1,click:1,clone:[0,1],cloud:3,cloudasset:0,code:1,codec:[],collis:0,com:[0,1,3],comfort:1,command_nam:1,comment:[0,3],compar:0,compat:[0,1],complex:0,compon:0,comprehens:0,compress:0,comput:3,confid:3,confidence_threshold:3,config:0,confirm:0,conform:[],conjunct:0,connect:[0,3],consist:0,contact:1,contain:[0,1,3],context:0,convert:0,convert_to_jpeg:[],converted_to_jpeg:0,coordin:0,copi:[0,3],copyright:0,correct:3,correspond:0,could:[0,1],count:3,countri:[],cr2:3,crash:0,creat:0,created:0,creation:3,creationd:0,creator:0,criteria:[0,3],csv:0,curat:[],current:[0,3],cursor:3,dai:0,data:[0,3],databas:[0,1,3],date:[0,3],date_ad:3,date_modifi:3,date_trash:3,datecr:0,datetim:3,datetimeorigin:0,db2:0,db:[0,1,3],db_path:3,db_version:3,dbfile:3,debug:0,def:1,default_album:1,defin:0,degre:3,delet:[0,3],deleted_directori:[],deleted_fil:[],deriv:3,desc:0,descend:3,descr:0,describ:1,descript:[0,1,3],description_templ:3,dest:[0,3],dest_dir:1,destin:[1,3],detail:[0,3],detect:3,detected_text:3,determin:3,dict:3,did:0,diff:1,differ:[0,1,3],digikam:0,dir:1,direct:0,directli:[0,1],directori:0,disabl:1,disk:[0,3],displai:[0,1],doc:0,document:0,doe:[0,1,3],doesn:0,don:0,download:[0,1,3],drive:0,drop:0,dry:0,dry_run:[],dump:1,duplic:[0,1,3],durat:[],dure:0,dynam:0,e:[0,1,3],each:[0,3],earlier:3,easiest:1,easili:1,echo:[0,1],edit:[0,1,3],edited_filenam:[],edited_nam:1,editor:[0,3],either:[0,1,3],els:[1,3],emac:0,embed:0,empti:3,end:0,ensur:[1,3],entir:[0,3],environ:[0,1],equival:0,error:[0,3],error_str:[],etc:[0,1,3],eval:0,evalu:0,even:0,exact:3,exampl:[0,3],except:3,execut:[1,3],exif:[0,3],exif_info:3,exif_tag:0,exif_upd:0,exifinfo:3,exiftool:[0,1,3],exiftool_error:[],exiftool_flag:[],exiftool_path:0,exiftool_pod:0,exiftool_warn:[],exiftoolcach:3,exist:[0,1,3],exit:[0,1],expandus:1,expect:0,experi:0,experiment:0,export2:[],export_as_hardlink:3,export_db:[],export_dir:0,export_path:1,exportdb:0,exportdb_abc:[],exportdb_fil:0,exportdbinmemori:[],exported_album:[],exportresult:[],exposure_bia:[],express:0,ext:0,extend:[0,3],extens:[0,3],extern:[0,3],external_edit:3,extract:3,f:[0,1],face:[0,1,3],face_info:3,faceinfo:3,fail:3,failur:[],fall:3,fals:3,familiar:1,faster:[0,3],favorit:[0,3],featur:0,field:3,file:[0,3],filenam:[0,1,3],filename_origin:0,filepath:[0,1],files:3,fileutil:[],fileutilabc:[],fileutilnoop:[],filter:0,find:0,finder:0,findercom:0,first:[0,3],flag:0,flash_fir:[],flexibl:1,focal_length:[],folder:[0,3],folder_album:0,folder_info:3,folderinfo:3,follow:[0,1],foo:1,forc:[0,3],form:0,format:[0,1,3],found:[0,1,3],fp:[],from:[0,3],from_dat:[0,3],from_tim:0,front:[0,3],full:[0,3],g:[0,1,3],gener:[0,3],geoloc:[0,3],get:[1,3],get_db_connect:3,get_photo:3,github:[0,1],give:0,gp:0,gpscoordin:0,gpslatitud:0,gpslatituderef:0,gpslongitud:0,gpslongituderef:0,gpsposit:0,gpu:0,group:[0,3],h:1,ha:[0,1,3],had:0,handl:0,happen:0,hardlink:[0,3],harmonious_color:[],has_raw:3,hasadjust:[1,3],hash:0,have:[0,1,3],haven:0,hdr:[0,3],headlin:0,heic:0,height:[0,3],help:1,here:0,hidden:[0,3],high:0,highli:0,highlight:0,highlight_vis:[],hold:[],holidai:[],homebrew:[0,1],how:0,html:0,http:[0,1,3],i:[0,1,3],icloud:[0,3],id:0,identifi:[0,3],ignor:[0,3],ignore_date_modifi:[],ignore_signatur:[],imag:[0,1,3],imagedescript:0,img_1234:0,immedi:3,immers:[],implement:0,import_info:3,importinfo:3,improv:0,incloud:[0,3],includ:[0,1,3],incorrect:3,increment:3,index:1,info:[1,3],inform:[0,1,3],initi:3,insensit:0,inspect:0,instal:3,instanc:3,instead:[0,3],instruct:1,integ:0,intend:0,interact:[0,1,3],interesting_subject:[],intermitt:0,internet:0,interrupt:0,intrash:3,intrusive_object_pres:[],invalid:[1,3],io:0,iptc:[0,3],is_valid_filepath:1,iscloudasset:3,isdir:1,ismiss:[1,3],ismovi:3,iso:0,isphoto:3,israw:3,isrefer:3,item:[0,3],iterm2:0,j:[0,3],john:1,join:1,jpeg:[0,3],jpeg_ext:[],jpeg_qual:0,jpg:0,json:[0,3],just:[0,1],kei:3,keybind:0,keyword:3,keyword_templ:3,keywords_as_dict:[1,3],know:0,label:3,labels_as_dict:3,labels_norm:3,labels_normalized_as_dict:3,laps:[0,3],larg:[0,1],largest:3,last:[0,1],later:0,latest:[0,1],latitud:3,launch:0,lead:0,learn:[],lens_model:[],level:[0,3],librari:[0,3],library_path:[1,3],licens:[0,1],lightroom:0,liglob:3,like:[0,1,3],list:[1,3],live:[0,3],live_photo:3,lively_color:[],ll:0,load:0,local:3,locality_nam:[],locat:[0,3],log:3,longitud:3,look:[0,1],lose:0,lot:0,low_light:[],lower:0,m:[0,1],mac:[0,1],machin:[0,1],maco:[0,1],mai:[0,3],main:1,make:[0,1],makedir:1,mangl:3,mani:0,mark:[0,3],master:0,match:[0,3],max:0,maximum:0,me:1,mean:3,media:[],media_typ:1,memori:0,merg:0,merge_exif_keyword:[],merge_exif_person:[],messag:1,metadata:[0,3],metering_mod:[],method:[],mib:0,microsoft:0,might:3,min:[0,1],minor:0,miss:[0,1,3],missing_album:[],mo:0,mode:0,modif:[0,3],modifi:0,modifyd:0,modul:1,moment:3,monokai:0,monterei:1,month:[],more:[0,1,3],most:0,motion:[0,3],mov:[0,3],movi:[0,1,3],multi:0,multipl:[0,1],must:[0,3],mysteri:3,naiv:3,name:[0,3],need:[0,1],neighborhood:[],neither:[0,1,3],network:0,newer:0,nist:0,nois:[],non:[0,3],none:[1,3],nor:0,normal:[0,3],note:[0,1,3],notic:3,now:1,object:[0,3],obvious:0,occur:[0,3],offset:3,offsettimeorigin:0,older:3,one:[0,3],onli:[0,3],op:[],open:[0,1],option:[0,1,3],order:[0,1,3],org:[0,3],organ:0,orient:3,origin:[0,1,3],original_filenam:[1,3],original_files:3,original_height:3,original_nam:0,original_orient:3,original_width:3,os:1,osxphotos_export:0,osxphotos_snapshot:0,other:[0,1],otherwis:[0,1,3],out:[0,1],output:0,outsid:3,over:0,overal:[],overrid:0,overwrit:[0,3],own:[0,1],owner:3,p:1,packag:0,page:1,pair:[0,3],panorama:[0,3],paramet:[1,3],part:[0,3],particip:0,particular:3,pass:[0,3],path:[0,1,3],path_deriv:3,path_edit:[1,3],path_edited_live_photo:3,path_live_photo:3,path_raw:3,pathlib:1,pathvalid:1,per:0,perform:0,permit:0,person:3,person_info:3,personinfo:3,personinimag:0,persons_as_dict:[1,3],photo:[0,3],photo_ext:0,photo_filenam:0,photoinfo:[0,3],photokit:0,photonam:0,photoname_bearbeiten:0,photoname_edit:0,photoname_low_r:0,photoname_preview:0,photos_by_uuid:3,photos_librari:[0,1],photosdb:[1,3],photoshop:0,photoslibrari:[0,1],phototempl:3,pictur:[0,1,3],pixel:3,place:[1,3],place_nam:[],placeinfo:3,platform:1,pleas:1,pleasant_camera_tilt:[],pleasant_composit:[],pleasant_light:[],pleasant_pattern:[],pleasant_perspect:[],pleasant_post_process:[],pleasant_reflect:[],pleasant_symmetri:[],png:0,portrait:[0,3],posit:[0,1],possibl:[0,3],post:0,pre:1,preced:0,present:0,preview:[0,3],preview_suffix:[],previous:0,primari:0,print:[0,3],privat:0,process:[0,3],produc:3,program:0,project:[0,1,3],project_info:3,promot:[],properti:3,prototyp:0,provid:[0,1,3],py:[0,1],pygment:0,pylint:1,pypi:1,python3:1,python:[0,1],python_fil:0,qualiti:0,queri:[1,3],query_funct:0,queryopt:3,quickli:0,quicktim:[0,3],r:0,rais:3,ramdb:0,rang:0,rate:0,raw:[0,3],raw_origin:3,raw_photo:3,re:0,read:[1,3],readabl:3,recent:[0,3],recommend:1,refer:[0,1,3],referenc:0,regardless:3,regex:0,region:0,regular:0,relat:[],releas:1,reliabl:0,remov:0,renam:0,render:[0,3],render_opt:3,render_templ:3,rendered_str:3,renderopt:3,repeat:0,repl:1,replac:0,replace_keyword:[],repo:1,report:0,repres:[0,3],represent:3,requir:[0,1,3],resolut:0,result:[0,3],retri:0,reus:0,revers:[0,3],rhettbul:[0,1],run:[1,3],s:[0,3],same:[0,3],sample_r:[],sanitize_filepath:1,save:0,score:3,scoreinfo:3,screenshot:[0,3],script:0,search:[0,1,3],search_info:3,search_info_norm:3,searchinfo:3,season:[],second:3,see:[0,1,3],select:[0,3],self:3,selfi:[0,3],session:3,set:[0,3],setup:1,setuptool:1,sh:[0,1],share:[0,3],sharply_focused_subject:[],shell:[0,1],shell_quot:0,shot:0,should:[0,1],show:[0,1,3],shutter_spe:[],si:0,sidecar:[0,3],sidecar_drop_ext:[],sidecar_exiftool:3,sidecar_exiftool_skip:0,sidecar_exiftool_written:0,sidecar_ext:0,sidecar_json:3,sidecar_json_skip:0,sidecar_json_written:0,sidecar_xmp:3,sidecar_xmp_skip:0,sidecar_xmp_written:0,sierra:1,signatur:[0,3],silent:3,simpl:1,simpli:1,sinc:0,singl:[0,3],size:[0,1,3],skip:[0,1],skipped_album:[],slow:[0,3],slow_mo:3,smith:1,snap:1,snapshot:0,so:3,softwar:0,some:3,someth:3,sort:3,sourc:3,space:0,specif:[1,3],specifi:0,spotlight:[0,1],sql:3,sqldiff:0,sqlite3:3,stack:3,stamp:0,start:[0,1],state:[0,3],state_abbrevi:[],statement:3,statu:[0,3],still:3,storat:3,store:[0,3],str:3,street:[],string:[0,3],strip:0,style:0,subfold:0,subject:0,subsequ:0,suffix:[0,3],suitabl:0,suppli:3,sur:1,sure:[0,1],sy:1,synch:[0,3],syntax:0,system:0,t:[0,1,3],tabl:3,tag:[0,1,3],tagnam:0,tagslist:0,take:1,taken:0,tastefully_blur:[],templat:[0,1,3],template_str:3,term:[],termin:[0,1],test:[0,1],text:3,text_detection_confidence_threshold:3,than:[0,3],thei:[0,3],them:[0,3],theme:0,thi:[0,1,3],threshold:3,through:1,thu:[0,1],time:[0,3],time_laps:3,timecr:0,timeout:3,timestamp:0,timezon:[0,3],titl:[0,1,3],tmp:0,to_dat:[0,3],to_tim:0,todai:0,toml:0,top:[0,3],topic:0,touch:0,touch_fil:[],town:[],track_format:[],trail:0,trash:3,treat:[0,3],trigger:0,tupl:3,tutori:1,two:0,txt:0,type:[0,3],tzoffset:3,u:0,unedit:1,unfil:1,uniform:[0,3],uninstal:1,uniqu:0,unit:0,unless:3,unlik:0,unmatch:3,until:3,up:0,updat:[0,3],upgrad:0,upon:[0,3],us:[0,3],use_albums_as_keyword:3,use_persons_as_keyword:3,use_photokit:[],use_photos_export:3,useabl:0,user:3,userdata:0,utc:3,uti:[0,3],uti_edit:3,uti_origin:3,uti_raw:3,util:1,uuid:[1,3],v:[0,1],vacat:3,valid:[0,1,3],valu:[0,1,3],variabl:0,variou:[],ve:[0,3],venu:[],venue_typ:[],verbos:[0,3],veri:1,verifi:1,versa:1,version:[0,1,3],vi:0,via:[0,1,3],vice:1,video:[0,3],virtual:[0,1],visbl:3,visibl:3,volum:0,wa:[0,3],wai:1,want:[0,1],warn:[0,1,3],water:[],wed:3,well:[0,1,3],well_chosen_subject:[],well_framed_subject:[],well_timed_shot:[],went:0,were:[0,3],what:[0,3],when:[0,3],where:0,whether:0,which:[0,1,3],white_bal:[],whitespac:0,whose:0,width:[0,3],within:0,without:0,work:[0,1,3],would:[0,1],write:[0,3],written:[0,3],x:1,xattr:0,xattr_skip:[],xattr_written:[],xmp:[0,3],y:0,ye:0,year:0,yet:3,you:[0,1,3],your:[0,1]},titles:["osxphotos command line interface (CLI)","Welcome to osxphotos\u2019s documentation!","osxphotos","osxphotos package"],titleterms:{"200mb":1,"4":1,"5":1,"default":1,"export":[0,1],about:0,add:1,album:[0,1],all:1,ar:1,awail:1,base:1,big:1,chang:1,cli:0,command:[0,1],countri:1,creat:1,creation:1,date:1,desktop:1,diff:0,digit:1,directori:1,document:1,dump:0,exampl:1,exif:1,file:1,find:1,folder:1,from:1,full:1,git:1,group:1,help:0,higher:1,indic:1,info:0,instal:[0,1],interfac:[0,1],json:1,keyword:[0,1],kid:1,label:[0,1],larger:1,librari:1,line:[0,1],list:0,media:1,metadata:1,modul:3,month:1,name:1,necessari:1,nocountri:1,onli:1,oper:1,osxphoto:[0,1,2,3],ouput:1,output:1,packag:[1,3],person:[0,1],photo:1,pip:1,pipx:1,place:0,print:1,queri:0,repl:0,repositori:1,result:1,run:0,s:1,snap:0,specifi:1,structur:1,support:1,system:1,tabl:1,than:1,them:1,tutori:0,type:1,uninstal:0,updat:1,us:1,usag:1,uuid:0,verbos:1,video:1,welcom:1,what:1,when:1,write:1,year:1}}) \ No newline at end of file diff --git a/osxphotos/_version.py b/osxphotos/_version.py index 8d0b24ed..4ad4aaf6 100644 --- a/osxphotos/_version.py +++ b/osxphotos/_version.py @@ -1,3 +1,3 @@ """ version info """ -__version__ = "0.46.0" +__version__ = "0.46.1" diff --git a/osxphotos/cli.py b/osxphotos/cli.py index 67a971a4..7d4103f1 100644 --- a/osxphotos/cli.py +++ b/osxphotos/cli.py @@ -1190,6 +1190,13 @@ def cli(ctx, db, json_, debug): ), type=ExportDBType(), ) +@click.option( + "--ramdb", + is_flag=True, + help="Copy export database to memory during export; " + "may improve performance when exporting over a network or slow disk but could result in " + "losing update state information if the program is interrupted or crashes.", +) @click.option( "--load-config", required=False, @@ -1383,6 +1390,7 @@ def export( add_skipped_to_album, add_missing_to_album, exportdb, + ramdb, load_config, save_config, config_only, @@ -1501,6 +1509,7 @@ def export( export_as_hardlink = cfg.export_as_hardlink export_by_date = cfg.export_by_date exportdb = cfg.exportdb + ramdb = cfg.ramdb external_edit = cfg.external_edit favorite = cfg.favorite filename_template = cfg.filename_template @@ -1802,7 +1811,7 @@ def export( ) ) - # open export database and assign copy/link/unlink functions + # open export database export_db_path = exportdb or os.path.join(dest, OSXPHOTOS_EXPORT_DB) # check that export isn't in the parent or child of a previously exported library @@ -1829,7 +1838,11 @@ def export( export_db = ExportDBInMemory(dbfile=export_db_path, export_dir=dest) fileutil = FileUtilNoOp else: - export_db = ExportDB(dbfile=export_db_path, export_dir=dest) + export_db = ( + ExportDBInMemory(dbfile=export_db_path, export_dir=dest) + if ramdb + else ExportDB(dbfile=export_db_path, export_dir=dest) + ) fileutil = FileUtil if verbose_: @@ -2212,6 +2225,10 @@ def export( verbose_(f"Writing export report to {report}") write_export_report(report, results) + # close export_db and write changes if needed + if ramdb and not dry_run: + verbose_(f"Writing export database changes back to {export_db.path}") + export_db.write_to_disk() export_db.close() @@ -4789,7 +4806,7 @@ def run(python_file): @click.option( "--migrate", is_flag=True, - help="Migrate (if needed) export database to current version." + help="Migrate (if needed) export database to current version.", ) @click.option( "--export-dir", @@ -4953,9 +4970,12 @@ def exportdb( f"Migrated export database {export_db} from version {upgraded[0]} to {upgraded[1]}" ) else: - print(f"Export database {export_db} is already at latest version {OSXPHOTOS_EXPORTDB_VERSION}") + print( + f"Export database {export_db} is already at latest version {OSXPHOTOS_EXPORTDB_VERSION}" + ) sys.exit(0) + def _query_options_from_kwargs(**kwargs) -> QueryOptions: """Validate query options and create a QueryOptions instance""" # sanity check input args diff --git a/osxphotos/export_db.py b/osxphotos/export_db.py index 092784ab..513b95e4 100644 --- a/osxphotos/export_db.py +++ b/osxphotos/export_db.py @@ -50,6 +50,16 @@ class ExportDB: self._perform_db_maintenace(self._conn) self._insert_run_info() + @property + def path(self): + """returns path to export database""" + return self._dbfile + + @property + def export_dir(self): + """returns path to export directory""" + return self._path + def get_file_record(self, filename: Union[pathlib.Path, str]) -> "ExportRecord": """get info for filename and uuid @@ -566,7 +576,14 @@ class ExportDBInMemory(ExportDB): modifying the on-disk version """ - def __init__(self, dbfile, export_dir): + def __init__(self, dbfile: str, export_dir: str): + """ "Initialize ExportDBInMemory + + Args: + dbfile (str): path to database file + export_dir (str): path to export directory + write_back (bool): whether to write changes back to disk when closing; if False (default), changes are not written to disk + """ self._dbfile = dbfile or f"./{OSXPHOTOS_EXPORT_DB}" # export_dir is required as all files referenced by get_/set_uuid_for_file will be converted to # relative paths to this path @@ -576,6 +593,39 @@ class ExportDBInMemory(ExportDB): self._conn = self._open_export_db(self._dbfile) self._insert_run_info() + def write_to_disk(self): + """Write changes from in-memory database back to disk""" + + # dump the database + conn = self._conn + conn.commit() + dbdump = self._dump_db(conn) + + # cleanup the old on-disk database + # also unlink the wal and shm files if needed + dbfile = pathlib.Path(self._dbfile) + if dbfile.exists(): + dbfile.unlink() + wal = dbfile.with_suffix(".db-wal") + if wal.exists(): + wal.unlink() + shm = dbfile.with_suffix(".db-shm") + if shm.exists(): + shm.unlink() + + conn_on_disk = sqlite3.connect(str(dbfile)) + conn_on_disk.cursor().executescript(dbdump.read()) + conn_on_disk.commit() + conn_on_disk.close() + + def close(self): + """close the database connection""" + try: + if self._conn: + self._conn.close() + except Error as e: + logging.warning(e) + def _open_export_db(self, dbfile): """open export database and return a db connection returns: connection to the database @@ -588,21 +638,13 @@ class ExportDBInMemory(ExportDB): self.was_created = True self.was_upgraded = () else: - try: - conn = sqlite3.connect(dbfile) - except Error as e: - logging.warning(e) - raise e from e - - tempfile = StringIO() - for line in conn.iterdump(): - tempfile.write("%s\n" % line) + conn = sqlite3.connect(dbfile) + dbdump = self._dump_db(conn) conn.close() - tempfile.seek(0) - # Create a database in memory and import from tempfile + # Create a database in memory and import from the dump conn = sqlite3.connect(":memory:") - conn.cursor().executescript(tempfile.read()) + conn.cursor().executescript(dbdump.read()) conn.commit() self.was_created = False version_info = self._get_database_version(conn) @@ -625,6 +667,21 @@ class ExportDBInMemory(ExportDB): return conn + def _dump_db(self, conn: sqlite3.Connection) -> StringIO: + """dump sqlite db to a string buffer""" + dbdump = StringIO() + for line in conn.iterdump(): + dbdump.write("%s\n" % line) + dbdump.seek(0) + return dbdump + + def __del__(self): + """close the database connection""" + try: + self.close() + except Error as e: + pass + class ExportDBTemp(ExportDBInMemory): """Temporary in-memory version of ExportDB""" diff --git a/tests/test_cli.py b/tests/test_cli.py index 6e59fba0..9694f36e 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -6710,6 +6710,93 @@ def test_export_exportdb(): in result.output ) +def test_export_exportdb_ramdb(): + """test --exportdb --ramdb""" + import glob + import os + import os.path + import re + + import osxphotos + from osxphotos.cli import export + + runner = CliRunner() + cwd = os.getcwd() + # pylint: disable=not-context-manager + with runner.isolated_filesystem(): + result = runner.invoke( + export, + [os.path.join(cwd, CLI_PHOTOS_DB), ".", "-V", "--exportdb", "export.db", "--ramdb"], + ) + assert result.exit_code == 0 + assert re.search(r"Created export database.*export\.db", result.output) + files = glob.glob("*") + assert "export.db" in files + + result = runner.invoke( + export, + [ + os.path.join(cwd, CLI_PHOTOS_DB), + ".", + "-V", + "--exportdb", + "export.db", + "--update", + "--ramdb" + ], + ) + assert result.exit_code == 0 + assert re.search(r"Using export database.*export\.db", result.output) + assert "exported: 0" in result.output + + +def test_export_ramdb(): + """test --ramdb""" + import glob + import os + import os.path + import re + + import osxphotos + from osxphotos.cli import export + + runner = CliRunner() + cwd = os.getcwd() + # pylint: disable=not-context-manager + with runner.isolated_filesystem(): + result = runner.invoke( + export, + [os.path.join(cwd, CLI_PHOTOS_DB), ".", "-V", "--ramdb"], + ) + assert result.exit_code == 0 + + # run again, update should update no files if db written back to disk + result = runner.invoke( + export, + [ + os.path.join(cwd, CLI_PHOTOS_DB), + ".", + "-V", + "--update", + "--ramdb" + ], + ) + assert result.exit_code == 0 + assert "exported: 0" in result.output + + # run again without --ramdb, update should update no files if db written back to disk + result = runner.invoke( + export, + [ + os.path.join(cwd, CLI_PHOTOS_DB), + ".", + "-V", + "--update", + ], + ) + assert result.exit_code == 0 + assert "exported: 0" in result.output + def test_export_finder_tag_keywords(): """test --finder-tag-keywords""" diff --git a/tests/test_export_db.py b/tests/test_export_db.py index 43291284..50b0f56b 100644 --- a/tests/test_export_db.py +++ b/tests/test_export_db.py @@ -177,6 +177,69 @@ def test_export_db_in_memory(): assert uuids == [uuid] +def test_export_db_in_memory_write_to_disk(): + """test ExportDBInMemory with write back to disk""" + tempdir = tempfile.TemporaryDirectory(prefix="osxphotos_") + dbname = os.path.join(tempdir.name, ".osxphotos_export.db") + db = ExportDB(dbname, tempdir.name) + assert os.path.isfile(dbname) + + filepath = os.path.join(tempdir.name, "test.JPG") + + uuid = "FOOBAR" + record = db.create_file_record(filepath, uuid) + record.photoinfo = INFO_DATA + record.exifdata = EXIF_DATA + record.digest = DIGEST_DATA + record.src_sig = (7, 8, 9) + record.dest_sig = (10, 11, 12) + db.close() + + # create in memory version + dbram = ExportDBInMemory(dbname, tempdir.name) + record2 = dbram.get_file_record(filepath) + assert record2.uuid == uuid + assert record2.photoinfo == INFO_DATA + assert record2.exifdata == EXIF_DATA + assert record2.digest == DIGEST_DATA + assert record2.src_sig == (7, 8, 9) + assert record2.dest_sig == (10, 11, 12) + + # change some values + record2.photoinfo = INFO_DATA2 + record2.exifdata = EXIF_DATA2 + record2.digest = DIGEST_DATA2 + record2.src_sig = (13, 14, 15) + record2.dest_sig = (16, 17, 18) + + assert record2.photoinfo == INFO_DATA2 + assert record2.exifdata == EXIF_DATA2 + assert record2.digest == DIGEST_DATA2 + assert record2.src_sig == (13, 14, 15) + assert record2.dest_sig == (16, 17, 18) + + # all uuids + uuids = dbram.get_previous_uuids() + assert uuids == [uuid] + + # write to disk + dbram.write_to_disk() + dbram.close() + + # re-open original, assert changes are written back + db = ExportDB(dbname, tempdir.name) + record = db.get_file_record(filepath) + assert record.photoinfo == INFO_DATA2 + assert record.exifdata == EXIF_DATA2 + assert record.digest == DIGEST_DATA2 + assert record.src_sig == (13, 14, 15) + assert record.dest_sig == (16, 17, 18) + + # all uuids + uuids = db.get_previous_uuids() + assert uuids == [uuid] + + def test_export_db_in_memory_nofile(): """test ExportDBInMemory with no dbfile""" tempdir = tempfile.TemporaryDirectory(prefix="osxphotos_")