Added timestamp to export_data in exportdb, #697
This commit is contained in:
parent
4e40d4b74e
commit
64002044d2
@ -1943,7 +1943,7 @@ cog.out(get_template_field_table())
|
|||||||
|{lf}|A line feed: '\n', alias for {newline}|
|
|{lf}|A line feed: '\n', alias for {newline}|
|
||||||
|{cr}|A carriage return: '\r'|
|
|{cr}|A carriage return: '\r'|
|
||||||
|{crlf}|a carriage return + line feed: '\r\n'|
|
|{crlf}|a carriage return + line feed: '\r\n'|
|
||||||
|{osxphotos_version}|The osxphotos version, e.g. '0.49.3'|
|
|{osxphotos_version}|The osxphotos version, e.g. '0.49.4'|
|
||||||
|{osxphotos_cmd_line}|The full command line used to run osxphotos|
|
|{osxphotos_cmd_line}|The full command line used to run osxphotos|
|
||||||
|{album}|Album(s) photo is contained in|
|
|{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|
|
|{folder_album}|Folder path + album photo is contained in. e.g. 'Folder/Subfolder/Album' or just 'Album' if no enclosing folder|
|
||||||
|
|||||||
@ -1849,7 +1849,7 @@ Substitution Description
|
|||||||
{lf} A line feed: '\n', alias for {newline}
|
{lf} A line feed: '\n', alias for {newline}
|
||||||
{cr} A carriage return: '\r'
|
{cr} A carriage return: '\r'
|
||||||
{crlf} a carriage return + line feed: '\r\n'
|
{crlf} a carriage return + line feed: '\r\n'
|
||||||
{osxphotos_version} The osxphotos version, e.g. '0.49.3'
|
{osxphotos_version} The osxphotos version, e.g. '0.49.4'
|
||||||
{osxphotos_cmd_line} The full command line used to run osxphotos
|
{osxphotos_cmd_line} The full command line used to run osxphotos
|
||||||
|
|
||||||
The following substitutions may result in multiple values. Thus if specified
|
The following substitutions may result in multiple values. Thus if specified
|
||||||
@ -4025,7 +4025,7 @@ The following template field substitutions are availabe for use the templating s
|
|||||||
|{lf}|A line feed: '\n', alias for {newline}|
|
|{lf}|A line feed: '\n', alias for {newline}|
|
||||||
|{cr}|A carriage return: '\r'|
|
|{cr}|A carriage return: '\r'|
|
||||||
|{crlf}|a carriage return + line feed: '\r\n'|
|
|{crlf}|a carriage return + line feed: '\r\n'|
|
||||||
|{osxphotos_version}|The osxphotos version, e.g. '0.49.3'|
|
|{osxphotos_version}|The osxphotos version, e.g. '0.49.4'|
|
||||||
|{osxphotos_cmd_line}|The full command line used to run osxphotos|
|
|{osxphotos_cmd_line}|The full command line used to run osxphotos|
|
||||||
|{album}|Album(s) photo is contained in|
|
|{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|
|
|{folder_album}|Folder path + album photo is contained in. e.g. 'Folder/Subfolder/Album' or just 'Album' if no enclosing folder|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
# Sphinx build info version 1
|
# 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.
|
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
|
||||||
config: c75833b1d95a335d2161bc31370bc337
|
config: d990e756f2c6caf28c55139682754d14
|
||||||
tags: 645f666f9bcd5a90fca523b33c5a78b7
|
tags: 645f666f9bcd5a90fca523b33c5a78b7
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" />
|
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" />
|
||||||
|
|
||||||
<meta name="generator" content="sphinx-4.4.0, furo 2022.04.07"/>
|
<meta name="generator" content="sphinx-4.4.0, furo 2022.04.07"/>
|
||||||
<title>Overview: module code - osxphotos 0.49.3 documentation</title>
|
<title>Overview: module code - osxphotos 0.49.4 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
|
<link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
|
||||||
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css" />
|
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css" />
|
||||||
@ -123,7 +123,7 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="../index.html"><div class="brand">osxphotos 0.49.3 documentation</div></a>
|
<a href="../index.html"><div class="brand">osxphotos 0.49.4 documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
@ -146,7 +146,7 @@
|
|||||||
<div class="sidebar-sticky"><a class="sidebar-brand" href="../index.html">
|
<div class="sidebar-sticky"><a class="sidebar-brand" href="../index.html">
|
||||||
|
|
||||||
|
|
||||||
<span class="sidebar-brand-text">osxphotos 0.49.3 documentation</span>
|
<span class="sidebar-brand-text">osxphotos 0.49.4 documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="../../genindex.html" /><link rel="search" title="Search" href="../../search.html" />
|
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="../../genindex.html" /><link rel="search" title="Search" href="../../search.html" />
|
||||||
|
|
||||||
<meta name="generator" content="sphinx-4.4.0, furo 2022.04.07"/>
|
<meta name="generator" content="sphinx-4.4.0, furo 2022.04.07"/>
|
||||||
<title>osxphotos.export_db - osxphotos 0.49.3 documentation</title>
|
<title>osxphotos.export_db - osxphotos 0.49.4 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="../../_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
|
<link rel="stylesheet" type="text/css" href="../../_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
|
||||||
<link rel="stylesheet" type="text/css" href="../../_static/copybutton.css" />
|
<link rel="stylesheet" type="text/css" href="../../_static/copybutton.css" />
|
||||||
@ -123,7 +123,7 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="../../index.html"><div class="brand">osxphotos 0.49.3 documentation</div></a>
|
<a href="../../index.html"><div class="brand">osxphotos 0.49.4 documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
@ -146,7 +146,7 @@
|
|||||||
<div class="sidebar-sticky"><a class="sidebar-brand" href="../../index.html">
|
<div class="sidebar-sticky"><a class="sidebar-brand" href="../../index.html">
|
||||||
|
|
||||||
|
|
||||||
<span class="sidebar-brand-text">osxphotos 0.49.3 documentation</span>
|
<span class="sidebar-brand-text">osxphotos 0.49.4 documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="../../search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="../../search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
|
||||||
@ -226,7 +226,7 @@
|
|||||||
<span class="s2">"ExportDBTemp"</span><span class="p">,</span>
|
<span class="s2">"ExportDBTemp"</span><span class="p">,</span>
|
||||||
<span class="p">]</span>
|
<span class="p">]</span>
|
||||||
|
|
||||||
<span class="n">OSXPHOTOS_EXPORTDB_VERSION</span> <span class="o">=</span> <span class="s2">"7.0"</span>
|
<span class="n">OSXPHOTOS_EXPORTDB_VERSION</span> <span class="o">=</span> <span class="s2">"7.1"</span>
|
||||||
<span class="n">OSXPHOTOS_ABOUT_STRING</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"Created by osxphotos version </span><span class="si">{</span><span class="n">__version__</span><span class="si">}</span><span class="s2"> (https://github.com/RhetTbull/osxphotos) on </span><span class="si">{</span><span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">()</span><span class="si">}</span><span class="s2">"</span>
|
<span class="n">OSXPHOTOS_ABOUT_STRING</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"Created by osxphotos version </span><span class="si">{</span><span class="n">__version__</span><span class="si">}</span><span class="s2"> (https://github.com/RhetTbull/osxphotos) on </span><span class="si">{</span><span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">()</span><span class="si">}</span><span class="s2">"</span>
|
||||||
|
|
||||||
<span class="c1"># max retry attempts for methods which use tenacity.retry</span>
|
<span class="c1"># max retry attempts for methods which use tenacity.retry</span>
|
||||||
@ -677,6 +677,10 @@
|
|||||||
<span class="c1"># create report_data table</span>
|
<span class="c1"># create report_data table</span>
|
||||||
<span class="bp">self</span><span class="o">.</span><span class="n">_migrate_6_0_to_7_0</span><span class="p">(</span><span class="n">conn</span><span class="p">)</span>
|
<span class="bp">self</span><span class="o">.</span><span class="n">_migrate_6_0_to_7_0</span><span class="p">(</span><span class="n">conn</span><span class="p">)</span>
|
||||||
|
|
||||||
|
<span class="k">if</span> <span class="n">version</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o"><</span> <span class="s2">"7.1"</span><span class="p">:</span>
|
||||||
|
<span class="c1"># add timestamp to export_data</span>
|
||||||
|
<span class="bp">self</span><span class="o">.</span><span class="n">_migrate_7_0_to_7_1</span><span class="p">(</span><span class="n">conn</span><span class="p">)</span>
|
||||||
|
|
||||||
<span class="n">conn</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="s2">"VACUUM;"</span><span class="p">)</span>
|
<span class="n">conn</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="s2">"VACUUM;"</span><span class="p">)</span>
|
||||||
<span class="n">conn</span><span class="o">.</span><span class="n">commit</span><span class="p">()</span>
|
<span class="n">conn</span><span class="o">.</span><span class="n">commit</span><span class="p">()</span>
|
||||||
|
|
||||||
@ -894,6 +898,32 @@
|
|||||||
<span class="k">except</span> <span class="n">Error</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
<span class="k">except</span> <span class="n">Error</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
||||||
<span class="n">logging</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">e</span><span class="p">)</span>
|
<span class="n">logging</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">e</span><span class="p">)</span>
|
||||||
|
|
||||||
|
<span class="k">def</span> <span class="nf">_migrate_7_0_to_7_1</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">conn</span><span class="p">):</span>
|
||||||
|
<span class="k">try</span><span class="p">:</span>
|
||||||
|
<span class="n">c</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="n">cursor</span><span class="p">()</span>
|
||||||
|
<span class="n">c</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="s2">"""ALTER TABLE export_data ADD COLUMN timestamp DATETIME;"""</span><span class="p">)</span>
|
||||||
|
<span class="n">c</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span>
|
||||||
|
<span class="sd">"""</span>
|
||||||
|
<span class="sd"> CREATE TRIGGER insert_timestamp_trigger</span>
|
||||||
|
<span class="sd"> AFTER INSERT ON export_data</span>
|
||||||
|
<span class="sd"> BEGIN</span>
|
||||||
|
<span class="sd"> UPDATE export_data SET timestamp = STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW') WHERE id = NEW.id;</span>
|
||||||
|
<span class="sd"> END;</span>
|
||||||
|
<span class="sd"> """</span>
|
||||||
|
<span class="p">)</span>
|
||||||
|
<span class="n">c</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span>
|
||||||
|
<span class="sd">"""</span>
|
||||||
|
<span class="sd"> CREATE TRIGGER update_timestamp_trigger</span>
|
||||||
|
<span class="sd"> AFTER UPDATE On export_data</span>
|
||||||
|
<span class="sd"> BEGIN</span>
|
||||||
|
<span class="sd"> UPDATE export_data SET timestamp = STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW') WHERE id = NEW.id;</span>
|
||||||
|
<span class="sd"> END;</span>
|
||||||
|
<span class="sd"> """</span>
|
||||||
|
<span class="p">)</span>
|
||||||
|
<span class="n">conn</span><span class="o">.</span><span class="n">commit</span><span class="p">()</span>
|
||||||
|
<span class="k">except</span> <span class="n">Error</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
||||||
|
<span class="n">logging</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">e</span><span class="p">)</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">_perform_db_maintenace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">conn</span><span class="p">):</span>
|
<span class="k">def</span> <span class="nf">_perform_db_maintenace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">conn</span><span class="p">):</span>
|
||||||
<span class="sd">"""Perform database maintenance"""</span>
|
<span class="sd">"""Perform database maintenance"""</span>
|
||||||
<span class="k">try</span><span class="p">:</span>
|
<span class="k">try</span><span class="p">:</span>
|
||||||
@ -1255,6 +1285,21 @@
|
|||||||
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_context_manager</span><span class="p">:</span>
|
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_context_manager</span><span class="p">:</span>
|
||||||
<span class="n">conn</span><span class="o">.</span><span class="n">commit</span><span class="p">()</span>
|
<span class="n">conn</span><span class="o">.</span><span class="n">commit</span><span class="p">()</span>
|
||||||
|
|
||||||
|
<span class="nd">@property</span>
|
||||||
|
<span class="k">def</span> <span class="nf">timestamp</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
|
<span class="sd">"""returns the timestamp value"""</span>
|
||||||
|
<span class="n">conn</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_conn</span>
|
||||||
|
<span class="n">c</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="n">cursor</span><span class="p">()</span>
|
||||||
|
<span class="k">if</span> <span class="n">row</span> <span class="o">:=</span> <span class="n">c</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span>
|
||||||
|
<span class="s2">"SELECT timestamp FROM export_data WHERE filepath_normalized = ?;"</span><span class="p">,</span>
|
||||||
|
<span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_filepath_normalized</span><span class="p">,),</span>
|
||||||
|
<span class="p">)</span><span class="o">.</span><span class="n">fetchone</span><span class="p">():</span>
|
||||||
|
<span class="k">return</span> <span class="n">row</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
||||||
|
|
||||||
|
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
|
||||||
|
<span class="sa">f</span><span class="s2">"No timestamp found in database for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_filepath_normalized</span><span class="si">}</span><span class="s2">"</span>
|
||||||
|
<span class="p">)</span>
|
||||||
|
|
||||||
<span class="k">def</span> <span class="nf">asdict</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
<span class="k">def</span> <span class="nf">asdict</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||||
<span class="sd">"""Return dict of self"""</span>
|
<span class="sd">"""Return dict of self"""</span>
|
||||||
<span class="n">exifdata</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">exifdata</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">exifdata</span> <span class="k">else</span> <span class="kc">None</span>
|
<span class="n">exifdata</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">exifdata</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">exifdata</span> <span class="k">else</span> <span class="kc">None</span>
|
||||||
@ -1263,6 +1308,7 @@
|
|||||||
<span class="s2">"filepath"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">filepath</span><span class="p">,</span>
|
<span class="s2">"filepath"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">filepath</span><span class="p">,</span>
|
||||||
<span class="s2">"filepath_normalized"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">filepath_normalized</span><span class="p">,</span>
|
<span class="s2">"filepath_normalized"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">filepath_normalized</span><span class="p">,</span>
|
||||||
<span class="s2">"uuid"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">uuid</span><span class="p">,</span>
|
<span class="s2">"uuid"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">uuid</span><span class="p">,</span>
|
||||||
|
<span class="s2">"timestamp"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">timestamp</span><span class="p">,</span>
|
||||||
<span class="s2">"digest"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">digest</span><span class="p">,</span>
|
<span class="s2">"digest"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">digest</span><span class="p">,</span>
|
||||||
<span class="s2">"src_sig"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">src_sig</span><span class="p">,</span>
|
<span class="s2">"src_sig"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">src_sig</span><span class="p">,</span>
|
||||||
<span class="s2">"dest_sig"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">dest_sig</span><span class="p">,</span>
|
<span class="s2">"dest_sig"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">dest_sig</span><span class="p">,</span>
|
||||||
|
|||||||
@ -320,7 +320,7 @@ Template Substitutions
|
|||||||
* - {crlf}
|
* - {crlf}
|
||||||
- a carriage return + line feed: '\r\n'
|
- a carriage return + line feed: '\r\n'
|
||||||
* - {osxphotos_version}
|
* - {osxphotos_version}
|
||||||
- The osxphotos version, e.g. '0.49.3'
|
- The osxphotos version, e.g. '0.49.4'
|
||||||
* - {osxphotos_cmd_line}
|
* - {osxphotos_cmd_line}
|
||||||
- The full command line used to run osxphotos
|
- The full command line used to run osxphotos
|
||||||
* - {album}
|
* - {album}
|
||||||
|
|||||||
2
docs/_static/documentation_options.js
vendored
2
docs/_static/documentation_options.js
vendored
@ -1,6 +1,6 @@
|
|||||||
var DOCUMENTATION_OPTIONS = {
|
var DOCUMENTATION_OPTIONS = {
|
||||||
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
|
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
|
||||||
VERSION: '0.49.3',
|
VERSION: '0.49.4',
|
||||||
LANGUAGE: 'None',
|
LANGUAGE: 'None',
|
||||||
COLLAPSE_INDEX: false,
|
COLLAPSE_INDEX: false,
|
||||||
BUILDER: 'html',
|
BUILDER: 'html',
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="OSXPhotos Template System" href="template_help.html" /><link rel="prev" title="OSXPhotos Tutorial" href="tutorial.html" />
|
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="OSXPhotos Template System" href="template_help.html" /><link rel="prev" title="OSXPhotos Tutorial" href="tutorial.html" />
|
||||||
|
|
||||||
<meta name="generator" content="sphinx-4.4.0, furo 2022.04.07"/>
|
<meta name="generator" content="sphinx-4.4.0, furo 2022.04.07"/>
|
||||||
<title>OSXPhotos Command Line Interface (CLI) - osxphotos 0.49.3 documentation</title>
|
<title>OSXPhotos Command Line Interface (CLI) - osxphotos 0.49.4 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
||||||
@ -124,7 +124,7 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">osxphotos 0.49.3 documentation</div></a>
|
<a href="index.html"><div class="brand">osxphotos 0.49.4 documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
@ -147,7 +147,7 @@
|
|||||||
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
|
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
|
||||||
|
|
||||||
|
|
||||||
<span class="sidebar-brand-text">osxphotos 0.49.3 documentation</span>
|
<span class="sidebar-brand-text">osxphotos 0.49.4 documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
<meta name="viewport" content="width=device-width,initial-scale=1"/>
|
<meta name="viewport" content="width=device-width,initial-scale=1"/>
|
||||||
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="#" /><link rel="search" title="Search" href="search.html" />
|
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="#" /><link rel="search" title="Search" href="search.html" />
|
||||||
|
|
||||||
<meta name="generator" content="sphinx-4.4.0, furo 2022.04.07"/><title>Index - osxphotos 0.49.3 documentation</title>
|
<meta name="generator" content="sphinx-4.4.0, furo 2022.04.07"/><title>Index - osxphotos 0.49.4 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
||||||
@ -122,7 +122,7 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">osxphotos 0.49.3 documentation</div></a>
|
<a href="index.html"><div class="brand">osxphotos 0.49.4 documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
@ -145,7 +145,7 @@
|
|||||||
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
|
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
|
||||||
|
|
||||||
|
|
||||||
<span class="sidebar-brand-text">osxphotos 0.49.3 documentation</span>
|
<span class="sidebar-brand-text">osxphotos 0.49.4 documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="OSXPhotos" href="overview.html" />
|
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="OSXPhotos" href="overview.html" />
|
||||||
|
|
||||||
<meta name="generator" content="sphinx-4.4.0, furo 2022.04.07"/>
|
<meta name="generator" content="sphinx-4.4.0, furo 2022.04.07"/>
|
||||||
<title>osxphotos 0.49.3 documentation</title>
|
<title>osxphotos 0.49.4 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
||||||
@ -124,7 +124,7 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="#"><div class="brand">osxphotos 0.49.3 documentation</div></a>
|
<a href="#"><div class="brand">osxphotos 0.49.4 documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
@ -147,7 +147,7 @@
|
|||||||
<div class="sidebar-sticky"><a class="sidebar-brand" href="#">
|
<div class="sidebar-sticky"><a class="sidebar-brand" href="#">
|
||||||
|
|
||||||
|
|
||||||
<span class="sidebar-brand-text">osxphotos 0.49.3 documentation</span>
|
<span class="sidebar-brand-text">osxphotos 0.49.4 documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="OSXPhotos Tutorial" href="tutorial.html" /><link rel="prev" title="Welcome to OSXPhotos’s documentation!" href="index.html" />
|
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="OSXPhotos Tutorial" href="tutorial.html" /><link rel="prev" title="Welcome to OSXPhotos’s documentation!" href="index.html" />
|
||||||
|
|
||||||
<meta name="generator" content="sphinx-4.4.0, furo 2022.04.07"/>
|
<meta name="generator" content="sphinx-4.4.0, furo 2022.04.07"/>
|
||||||
<title>OSXPhotos - osxphotos 0.49.3 documentation</title>
|
<title>OSXPhotos - osxphotos 0.49.4 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
||||||
@ -124,7 +124,7 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">osxphotos 0.49.3 documentation</div></a>
|
<a href="index.html"><div class="brand">osxphotos 0.49.4 documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
@ -147,7 +147,7 @@
|
|||||||
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
|
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
|
||||||
|
|
||||||
|
|
||||||
<span class="sidebar-brand-text">osxphotos 0.49.3 documentation</span>
|
<span class="sidebar-brand-text">osxphotos 0.49.4 documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="OSXPhotos python API" href="reference.html" /><link rel="prev" title="OSXPhotos Template System" href="template_help.html" />
|
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="OSXPhotos python API" href="reference.html" /><link rel="prev" title="OSXPhotos Template System" href="template_help.html" />
|
||||||
|
|
||||||
<meta name="generator" content="sphinx-4.4.0, furo 2022.04.07"/>
|
<meta name="generator" content="sphinx-4.4.0, furo 2022.04.07"/>
|
||||||
<title>OSXPhotos Python Package Overview - osxphotos 0.49.3 documentation</title>
|
<title>OSXPhotos Python Package Overview - osxphotos 0.49.4 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
||||||
@ -124,7 +124,7 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">osxphotos 0.49.3 documentation</div></a>
|
<a href="index.html"><div class="brand">osxphotos 0.49.4 documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
@ -147,7 +147,7 @@
|
|||||||
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
|
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
|
||||||
|
|
||||||
|
|
||||||
<span class="sidebar-brand-text">osxphotos 0.49.3 documentation</span>
|
<span class="sidebar-brand-text">osxphotos 0.49.4 documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
<meta name="viewport" content="width=device-width,initial-scale=1"/>
|
<meta name="viewport" content="width=device-width,initial-scale=1"/>
|
||||||
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" />
|
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" />
|
||||||
|
|
||||||
<meta name="generator" content="sphinx-4.4.0, furo 2022.04.07"/><title>Python Module Index - osxphotos 0.49.3 documentation</title>
|
<meta name="generator" content="sphinx-4.4.0, furo 2022.04.07"/><title>Python Module Index - osxphotos 0.49.4 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
||||||
@ -122,7 +122,7 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">osxphotos 0.49.3 documentation</div></a>
|
<a href="index.html"><div class="brand">osxphotos 0.49.4 documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
@ -145,7 +145,7 @@
|
|||||||
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
|
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
|
||||||
|
|
||||||
|
|
||||||
<span class="sidebar-brand-text">osxphotos 0.49.3 documentation</span>
|
<span class="sidebar-brand-text">osxphotos 0.49.4 documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="prev" title="OSXPhotos Python Package Overview" href="package_overview.html" />
|
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="prev" title="OSXPhotos Python Package Overview" href="package_overview.html" />
|
||||||
|
|
||||||
<meta name="generator" content="sphinx-4.4.0, furo 2022.04.07"/>
|
<meta name="generator" content="sphinx-4.4.0, furo 2022.04.07"/>
|
||||||
<title>OSXPhotos python API - osxphotos 0.49.3 documentation</title>
|
<title>OSXPhotos python API - osxphotos 0.49.4 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
||||||
@ -124,7 +124,7 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">osxphotos 0.49.3 documentation</div></a>
|
<a href="index.html"><div class="brand">osxphotos 0.49.4 documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
@ -147,7 +147,7 @@
|
|||||||
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
|
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
|
||||||
|
|
||||||
|
|
||||||
<span class="sidebar-brand-text">osxphotos 0.49.3 documentation</span>
|
<span class="sidebar-brand-text">osxphotos 0.49.4 documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
<meta name="viewport" content="width=device-width,initial-scale=1"/>
|
<meta name="viewport" content="width=device-width,initial-scale=1"/>
|
||||||
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="#" />
|
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="#" />
|
||||||
|
|
||||||
<meta name="generator" content="sphinx-4.4.0, furo 2022.04.07"/><title>Search - osxphotos 0.49.3 documentation</title><link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<meta name="generator" content="sphinx-4.4.0, furo 2022.04.07"/><title>Search - osxphotos 0.49.4 documentation</title><link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" />
|
||||||
@ -121,7 +121,7 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">osxphotos 0.49.3 documentation</div></a>
|
<a href="index.html"><div class="brand">osxphotos 0.49.4 documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
@ -144,7 +144,7 @@
|
|||||||
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
|
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
|
||||||
|
|
||||||
|
|
||||||
<span class="sidebar-brand-text">osxphotos 0.49.3 documentation</span>
|
<span class="sidebar-brand-text">osxphotos 0.49.4 documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="#" role="search">
|
</a><form class="sidebar-search-container" method="get" action="#" role="search">
|
||||||
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="OSXPhotos Python Package Overview" href="package_overview.html" /><link rel="prev" title="OSXPhotos Command Line Interface (CLI)" href="cli.html" />
|
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="OSXPhotos Python Package Overview" href="package_overview.html" /><link rel="prev" title="OSXPhotos Command Line Interface (CLI)" href="cli.html" />
|
||||||
|
|
||||||
<meta name="generator" content="sphinx-4.4.0, furo 2022.04.07"/>
|
<meta name="generator" content="sphinx-4.4.0, furo 2022.04.07"/>
|
||||||
<title>OSXPhotos Template System - osxphotos 0.49.3 documentation</title>
|
<title>OSXPhotos Template System - osxphotos 0.49.4 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
||||||
@ -124,7 +124,7 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">osxphotos 0.49.3 documentation</div></a>
|
<a href="index.html"><div class="brand">osxphotos 0.49.4 documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
@ -147,7 +147,7 @@
|
|||||||
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
|
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
|
||||||
|
|
||||||
|
|
||||||
<span class="sidebar-brand-text">osxphotos 0.49.3 documentation</span>
|
<span class="sidebar-brand-text">osxphotos 0.49.4 documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
|
||||||
@ -567,7 +567,7 @@
|
|||||||
<td><p>a carriage return + line feed: ‘rn’</p></td>
|
<td><p>a carriage return + line feed: ‘rn’</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="row-odd"><td><p>{osxphotos_version}</p></td>
|
<tr class="row-odd"><td><p>{osxphotos_version}</p></td>
|
||||||
<td><p>The osxphotos version, e.g. ‘0.49.3’</p></td>
|
<td><p>The osxphotos version, e.g. ‘0.49.4’</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="row-even"><td><p>{osxphotos_cmd_line}</p></td>
|
<tr class="row-even"><td><p>{osxphotos_cmd_line}</p></td>
|
||||||
<td><p>The full command line used to run osxphotos</p></td>
|
<td><p>The full command line used to run osxphotos</p></td>
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="OSXPhotos Command Line Interface (CLI)" href="cli.html" /><link rel="prev" title="OSXPhotos" href="overview.html" />
|
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="OSXPhotos Command Line Interface (CLI)" href="cli.html" /><link rel="prev" title="OSXPhotos" href="overview.html" />
|
||||||
|
|
||||||
<meta name="generator" content="sphinx-4.4.0, furo 2022.04.07"/>
|
<meta name="generator" content="sphinx-4.4.0, furo 2022.04.07"/>
|
||||||
<title>OSXPhotos Tutorial - osxphotos 0.49.3 documentation</title>
|
<title>OSXPhotos Tutorial - osxphotos 0.49.4 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
|
||||||
@ -124,7 +124,7 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">osxphotos 0.49.3 documentation</div></a>
|
<a href="index.html"><div class="brand">osxphotos 0.49.4 documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
@ -147,7 +147,7 @@
|
|||||||
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
|
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
|
||||||
|
|
||||||
|
|
||||||
<span class="sidebar-brand-text">osxphotos 0.49.3 documentation</span>
|
<span class="sidebar-brand-text">osxphotos 0.49.4 documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
|
||||||
|
|||||||
@ -320,7 +320,7 @@ Template Substitutions
|
|||||||
* - {crlf}
|
* - {crlf}
|
||||||
- a carriage return + line feed: '\r\n'
|
- a carriage return + line feed: '\r\n'
|
||||||
* - {osxphotos_version}
|
* - {osxphotos_version}
|
||||||
- The osxphotos version, e.g. '0.49.3'
|
- The osxphotos version, e.g. '0.49.4'
|
||||||
* - {osxphotos_cmd_line}
|
* - {osxphotos_cmd_line}
|
||||||
- The full command line used to run osxphotos
|
- The full command line used to run osxphotos
|
||||||
* - {album}
|
* - {album}
|
||||||
|
|||||||
@ -1,3 +1,3 @@
|
|||||||
""" version info """
|
""" version info """
|
||||||
|
|
||||||
__version__ = "0.49.3"
|
__version__ = "0.49.4"
|
||||||
|
|||||||
Binary file not shown.
@ -30,7 +30,7 @@ __all__ = [
|
|||||||
"ExportDBTemp",
|
"ExportDBTemp",
|
||||||
]
|
]
|
||||||
|
|
||||||
OSXPHOTOS_EXPORTDB_VERSION = "7.0"
|
OSXPHOTOS_EXPORTDB_VERSION = "7.1"
|
||||||
OSXPHOTOS_ABOUT_STRING = f"Created by osxphotos version {__version__} (https://github.com/RhetTbull/osxphotos) on {datetime.datetime.now()}"
|
OSXPHOTOS_ABOUT_STRING = f"Created by osxphotos version {__version__} (https://github.com/RhetTbull/osxphotos) on {datetime.datetime.now()}"
|
||||||
|
|
||||||
# max retry attempts for methods which use tenacity.retry
|
# max retry attempts for methods which use tenacity.retry
|
||||||
@ -481,6 +481,10 @@ class ExportDB:
|
|||||||
# create report_data table
|
# create report_data table
|
||||||
self._migrate_6_0_to_7_0(conn)
|
self._migrate_6_0_to_7_0(conn)
|
||||||
|
|
||||||
|
if version[1] < "7.1":
|
||||||
|
# add timestamp to export_data
|
||||||
|
self._migrate_7_0_to_7_1(conn)
|
||||||
|
|
||||||
conn.execute("VACUUM;")
|
conn.execute("VACUUM;")
|
||||||
conn.commit()
|
conn.commit()
|
||||||
|
|
||||||
@ -698,6 +702,32 @@ class ExportDB:
|
|||||||
except Error as e:
|
except Error as e:
|
||||||
logging.warning(e)
|
logging.warning(e)
|
||||||
|
|
||||||
|
def _migrate_7_0_to_7_1(self, conn):
|
||||||
|
try:
|
||||||
|
c = conn.cursor()
|
||||||
|
c.execute("""ALTER TABLE export_data ADD COLUMN timestamp DATETIME;""")
|
||||||
|
c.execute(
|
||||||
|
"""
|
||||||
|
CREATE TRIGGER insert_timestamp_trigger
|
||||||
|
AFTER INSERT ON export_data
|
||||||
|
BEGIN
|
||||||
|
UPDATE export_data SET timestamp = STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW') WHERE id = NEW.id;
|
||||||
|
END;
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
c.execute(
|
||||||
|
"""
|
||||||
|
CREATE TRIGGER update_timestamp_trigger
|
||||||
|
AFTER UPDATE On export_data
|
||||||
|
BEGIN
|
||||||
|
UPDATE export_data SET timestamp = STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW') WHERE id = NEW.id;
|
||||||
|
END;
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
conn.commit()
|
||||||
|
except Error as e:
|
||||||
|
logging.warning(e)
|
||||||
|
|
||||||
def _perform_db_maintenace(self, conn):
|
def _perform_db_maintenace(self, conn):
|
||||||
"""Perform database maintenance"""
|
"""Perform database maintenance"""
|
||||||
try:
|
try:
|
||||||
@ -1059,6 +1089,21 @@ class ExportRecord:
|
|||||||
if not self._context_manager:
|
if not self._context_manager:
|
||||||
conn.commit()
|
conn.commit()
|
||||||
|
|
||||||
|
@property
|
||||||
|
def timestamp(self):
|
||||||
|
"""returns the timestamp value"""
|
||||||
|
conn = self._conn
|
||||||
|
c = conn.cursor()
|
||||||
|
if row := c.execute(
|
||||||
|
"SELECT timestamp FROM export_data WHERE filepath_normalized = ?;",
|
||||||
|
(self._filepath_normalized,),
|
||||||
|
).fetchone():
|
||||||
|
return row[0]
|
||||||
|
|
||||||
|
raise ValueError(
|
||||||
|
f"No timestamp found in database for {self._filepath_normalized}"
|
||||||
|
)
|
||||||
|
|
||||||
def asdict(self):
|
def asdict(self):
|
||||||
"""Return dict of self"""
|
"""Return dict of self"""
|
||||||
exifdata = json.loads(self.exifdata) if self.exifdata else None
|
exifdata = json.loads(self.exifdata) if self.exifdata else None
|
||||||
@ -1067,6 +1112,7 @@ class ExportRecord:
|
|||||||
"filepath": self.filepath,
|
"filepath": self.filepath,
|
||||||
"filepath_normalized": self.filepath_normalized,
|
"filepath_normalized": self.filepath_normalized,
|
||||||
"uuid": self.uuid,
|
"uuid": self.uuid,
|
||||||
|
"timestamp": self.timestamp,
|
||||||
"digest": self.digest,
|
"digest": self.digest,
|
||||||
"src_sig": self.src_sig,
|
"src_sig": self.src_sig,
|
||||||
"dest_sig": self.dest_sig,
|
"dest_sig": self.dest_sig,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user