mirror of
https://github.com/aljazceru/twentyone-world.github.io.git
synced 2025-12-19 09:34:21 +01:00
500 lines
52 KiB
HTML
500 lines
52 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="content-type" content="text/html;charset=utf-8">
|
|
<title>options.py</title>
|
|
<link rel="stylesheet" href="pycco.css">
|
|
</head>
|
|
<body>
|
|
<div id="background"></div>
|
|
<div id='container'>
|
|
<div class='section'>
|
|
<div class='docs'><h1>options.py</h1></div>
|
|
</div>
|
|
<div class='clearall'>
|
|
<div class='section' id='section-0'>
|
|
<div class='docs'>
|
|
<div class='octowrap'>
|
|
<a class='octothorpe' href='#section-0'>#</a>
|
|
</div>
|
|
<p>API 2.0
|
|
helper methods for validating options dictionary</p>
|
|
</div>
|
|
<div class='code'>
|
|
<div class="highlight"><pre></pre></div>
|
|
</div>
|
|
</div>
|
|
<div class='clearall'></div>
|
|
<div class='section' id='section-1'>
|
|
<div class='docs'>
|
|
<div class='octowrap'>
|
|
<a class='octothorpe' href='#section-1'>#</a>
|
|
</div>
|
|
|
|
</div>
|
|
<div class='code'>
|
|
<div class="highlight"><pre><span class="kn">import</span> <span class="nn">os.path</span><span class="o">,</span> <span class="nn">proj</span><span class="o">,</span> <span class="nn">errors</span>
|
|
|
|
|
|
<span class="n">Error</span> <span class="o">=</span> <span class="n">errors</span><span class="o">.</span><span class="n">KartographOptionParseError</span></pre></div>
|
|
</div>
|
|
</div>
|
|
<div class='clearall'></div>
|
|
<div class='section' id='section-2'>
|
|
<div class='docs'>
|
|
<div class='octowrap'>
|
|
<a class='octothorpe' href='#section-2'>#</a>
|
|
</div>
|
|
|
|
</div>
|
|
<div class='code'>
|
|
<div class="highlight"><pre><span class="k">def</span> <span class="nf">is_str</span><span class="p">(</span><span class="n">s</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">s</span><span class="p">,</span> <span class="p">(</span><span class="nb">str</span><span class="p">,</span> <span class="nb">unicode</span><span class="p">))</span></pre></div>
|
|
</div>
|
|
</div>
|
|
<div class='clearall'></div>
|
|
<div class='section' id='section-3'>
|
|
<div class='docs'>
|
|
<div class='octowrap'>
|
|
<a class='octothorpe' href='#section-3'>#</a>
|
|
</div>
|
|
<p>check out that the option dict is filled correctly</p>
|
|
</div>
|
|
<div class='code'>
|
|
<div class="highlight"><pre><span class="k">def</span> <span class="nf">parse_options</span><span class="p">(</span><span class="n">opts</span><span class="p">):</span></pre></div>
|
|
</div>
|
|
</div>
|
|
<div class='clearall'></div>
|
|
<div class='section' id='section-4'>
|
|
<div class='docs'>
|
|
<div class='octowrap'>
|
|
<a class='octothorpe' href='#section-4'>#</a>
|
|
</div>
|
|
<p>projection</p>
|
|
</div>
|
|
<div class='code'>
|
|
<div class="highlight"><pre> <span class="n">parse_proj</span><span class="p">(</span><span class="n">opts</span><span class="p">)</span>
|
|
<span class="n">parse_layers</span><span class="p">(</span><span class="n">opts</span><span class="p">)</span>
|
|
<span class="n">parse_bounds</span><span class="p">(</span><span class="n">opts</span><span class="p">)</span>
|
|
<span class="n">parse_export</span><span class="p">(</span><span class="n">opts</span><span class="p">)</span></pre></div>
|
|
</div>
|
|
</div>
|
|
<div class='clearall'></div>
|
|
<div class='section' id='section-5'>
|
|
<div class='docs'>
|
|
<div class='octowrap'>
|
|
<a class='octothorpe' href='#section-5'>#</a>
|
|
</div>
|
|
<p>checks projections</p>
|
|
</div>
|
|
<div class='code'>
|
|
<div class="highlight"><pre><span class="k">def</span> <span class="nf">parse_proj</span><span class="p">(</span><span class="n">opts</span><span class="p">):</span></pre></div>
|
|
</div>
|
|
</div>
|
|
<div class='clearall'></div>
|
|
<div class='section' id='section-6'>
|
|
<div class='docs'>
|
|
<div class='octowrap'>
|
|
<a class='octothorpe' href='#section-6'>#</a>
|
|
</div>
|
|
|
|
</div>
|
|
<div class='code'>
|
|
<div class="highlight"><pre> <span class="k">if</span> <span class="s">'proj'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">opts</span><span class="p">:</span>
|
|
<span class="n">opts</span><span class="p">[</span><span class="s">'proj'</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
|
|
<span class="n">prj</span> <span class="o">=</span> <span class="n">opts</span><span class="p">[</span><span class="s">'proj'</span><span class="p">]</span>
|
|
<span class="k">if</span> <span class="s">'id'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">prj</span><span class="p">:</span>
|
|
<span class="k">if</span> <span class="s">'bounds'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">opts</span><span class="p">:</span>
|
|
<span class="n">prj</span><span class="p">[</span><span class="s">'id'</span><span class="p">]</span> <span class="o">=</span> <span class="s">'robinson'</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">prj</span><span class="p">[</span><span class="s">'id'</span><span class="p">]</span> <span class="o">=</span> <span class="s">'laea'</span>
|
|
<span class="k">if</span> <span class="n">prj</span><span class="p">[</span><span class="s">'id'</span><span class="p">]</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">proj</span><span class="o">.</span><span class="n">projections</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="n">Error</span><span class="p">(</span><span class="s">'unknown projection'</span><span class="p">)</span>
|
|
<span class="n">prjClass</span> <span class="o">=</span> <span class="n">proj</span><span class="o">.</span><span class="n">projections</span><span class="p">[</span><span class="n">prj</span><span class="p">[</span><span class="s">'id'</span><span class="p">]]</span>
|
|
<span class="k">for</span> <span class="n">attr</span> <span class="ow">in</span> <span class="n">prjClass</span><span class="o">.</span><span class="n">attributes</span><span class="p">():</span>
|
|
<span class="k">if</span> <span class="n">attr</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">prj</span><span class="p">:</span>
|
|
<span class="n">prj</span><span class="p">[</span><span class="n">attr</span><span class="p">]</span> <span class="o">=</span> <span class="s">"auto"</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">if</span> <span class="n">prj</span><span class="p">[</span><span class="n">attr</span><span class="p">]</span> <span class="o">!=</span> <span class="s">"auto"</span><span class="p">:</span>
|
|
<span class="n">prj</span><span class="p">[</span><span class="n">attr</span><span class="p">]</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">prj</span><span class="p">[</span><span class="n">attr</span><span class="p">])</span></pre></div>
|
|
</div>
|
|
</div>
|
|
<div class='clearall'></div>
|
|
<div class='section' id='section-7'>
|
|
<div class='docs'>
|
|
<div class='octowrap'>
|
|
<a class='octothorpe' href='#section-7'>#</a>
|
|
</div>
|
|
|
|
</div>
|
|
<div class='code'>
|
|
<div class="highlight"><pre><span class="k">def</span> <span class="nf">parse_layers</span><span class="p">(</span><span class="n">opts</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="s">'layers'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">opts</span><span class="p">:</span>
|
|
<span class="n">opts</span><span class="p">[</span><span class="s">'layers'</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
|
|
<span class="n">l_id</span> <span class="o">=</span> <span class="mi">0</span>
|
|
<span class="n">g_id</span> <span class="o">=</span> <span class="mi">0</span>
|
|
<span class="n">s_id</span> <span class="o">=</span> <span class="mi">0</span>
|
|
<span class="k">for</span> <span class="n">layer</span> <span class="ow">in</span> <span class="n">opts</span><span class="p">[</span><span class="s">'layers'</span><span class="p">]:</span>
|
|
<span class="k">if</span> <span class="s">'styles'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">layer</span><span class="p">:</span>
|
|
<span class="n">layer</span><span class="p">[</span><span class="s">'styles'</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
|
|
<span class="k">if</span> <span class="s">'src'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">layer</span> <span class="ow">and</span> <span class="s">'special'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">layer</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="n">Error</span><span class="p">(</span><span class="s">'you need to define the source for your layers'</span><span class="p">)</span>
|
|
<span class="k">if</span> <span class="s">'src'</span> <span class="ow">in</span> <span class="n">layer</span><span class="p">:</span>
|
|
<span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">layer</span><span class="p">[</span><span class="s">'src'</span><span class="p">]):</span>
|
|
<span class="k">raise</span> <span class="n">Error</span><span class="p">(</span><span class="s">'layer source not found: '</span> <span class="o">+</span> <span class="n">layer</span><span class="p">[</span><span class="s">'src'</span><span class="p">])</span>
|
|
<span class="k">if</span> <span class="s">'id'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">layer</span><span class="p">:</span>
|
|
<span class="n">layer</span><span class="p">[</span><span class="s">'id'</span><span class="p">]</span> <span class="o">=</span> <span class="s">'layer_'</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">l_id</span><span class="p">)</span>
|
|
<span class="n">l_id</span> <span class="o">+=</span> <span class="mi">1</span>
|
|
<span class="k">if</span> <span class="s">'charset'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">layer</span><span class="p">:</span>
|
|
<span class="n">layer</span><span class="p">[</span><span class="s">'charset'</span><span class="p">]</span> <span class="o">=</span> <span class="s">'utf-8'</span>
|
|
<span class="k">elif</span> <span class="s">'special'</span> <span class="ow">in</span> <span class="n">layer</span><span class="p">:</span>
|
|
<span class="k">if</span> <span class="n">layer</span><span class="p">[</span><span class="s">'special'</span><span class="p">]</span> <span class="o">==</span> <span class="s">'graticule'</span><span class="p">:</span>
|
|
<span class="k">if</span> <span class="s">'id'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">layer</span><span class="p">:</span>
|
|
<span class="n">layer</span><span class="p">[</span><span class="s">'id'</span><span class="p">]</span> <span class="o">=</span> <span class="s">'graticule'</span>
|
|
<span class="k">if</span> <span class="n">g_id</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
|
|
<span class="n">layer</span><span class="p">[</span><span class="s">'id'</span><span class="p">]</span> <span class="o">+=</span> <span class="s">'_'</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">g_id</span><span class="p">)</span>
|
|
<span class="n">g_id</span> <span class="o">+=</span> <span class="mi">1</span>
|
|
<span class="k">if</span> <span class="s">'fill'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">layer</span><span class="p">[</span><span class="s">'styles'</span><span class="p">]:</span>
|
|
<span class="n">layer</span><span class="p">[</span><span class="s">'styles'</span><span class="p">][</span><span class="s">'fill'</span><span class="p">]</span> <span class="o">=</span> <span class="s">'None'</span>
|
|
<span class="n">parse_layer_graticule</span><span class="p">(</span><span class="n">layer</span><span class="p">)</span>
|
|
<span class="k">elif</span> <span class="n">layer</span><span class="p">[</span><span class="s">'special'</span><span class="p">]</span> <span class="o">==</span> <span class="s">'sea'</span><span class="p">:</span>
|
|
<span class="k">if</span> <span class="s">'id'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">layer</span><span class="p">:</span>
|
|
<span class="n">layer</span><span class="p">[</span><span class="s">'id'</span><span class="p">]</span> <span class="o">=</span> <span class="s">'sea'</span>
|
|
<span class="k">if</span> <span class="n">s_id</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
|
|
<span class="n">layer</span><span class="p">[</span><span class="s">'id'</span><span class="p">]</span> <span class="o">+=</span> <span class="s">'_'</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">s_id</span><span class="p">)</span>
|
|
<span class="n">s_id</span> <span class="o">+=</span> <span class="mi">1</span>
|
|
|
|
<span class="n">parse_layer_attributes</span><span class="p">(</span><span class="n">layer</span><span class="p">)</span>
|
|
<span class="n">parse_layer_filter</span><span class="p">(</span><span class="n">layer</span><span class="p">)</span>
|
|
<span class="n">parse_layer_join</span><span class="p">(</span><span class="n">layer</span><span class="p">)</span>
|
|
<span class="n">parse_layer_simplify</span><span class="p">(</span><span class="n">layer</span><span class="p">)</span>
|
|
<span class="n">parse_layer_subtract</span><span class="p">(</span><span class="n">layer</span><span class="p">)</span>
|
|
<span class="n">parse_layer_cropping</span><span class="p">(</span><span class="n">layer</span><span class="p">)</span></pre></div>
|
|
</div>
|
|
</div>
|
|
<div class='clearall'></div>
|
|
<div class='section' id='section-8'>
|
|
<div class='docs'>
|
|
<div class='octowrap'>
|
|
<a class='octothorpe' href='#section-8'>#</a>
|
|
</div>
|
|
|
|
</div>
|
|
<div class='code'>
|
|
<div class="highlight"><pre><span class="k">def</span> <span class="nf">parse_layer_attributes</span><span class="p">(</span><span class="n">layer</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="s">'attributes'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">layer</span><span class="p">:</span>
|
|
<span class="n">layer</span><span class="p">[</span><span class="s">'attributes'</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
|
|
<span class="k">return</span>
|
|
<span class="n">attrs</span> <span class="o">=</span> <span class="p">[]</span>
|
|
<span class="k">for</span> <span class="n">attr</span> <span class="ow">in</span> <span class="n">layer</span><span class="p">[</span><span class="s">'attributes'</span><span class="p">]:</span>
|
|
<span class="k">if</span> <span class="n">is_str</span><span class="p">(</span><span class="n">attr</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">layer</span><span class="p">[</span><span class="s">'attributes'</span><span class="p">],</span> <span class="nb">list</span><span class="p">):</span> <span class="c"># ["ISO_A3", "FIPS"]</span>
|
|
<span class="n">attrs</span><span class="o">.</span><span class="n">append</span><span class="p">({</span><span class="s">'src'</span><span class="p">:</span> <span class="n">attr</span><span class="p">,</span> <span class="s">'tgt'</span><span class="p">:</span> <span class="n">attr</span><span class="p">})</span>
|
|
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">layer</span><span class="p">[</span><span class="s">'attributes'</span><span class="p">],</span> <span class="nb">dict</span><span class="p">):</span> <span class="c"># { "ISO_A3": "iso" }</span>
|
|
<span class="n">attrs</span><span class="o">.</span><span class="n">append</span><span class="p">({</span><span class="s">'src'</span><span class="p">:</span> <span class="n">attr</span><span class="p">,</span> <span class="s">'tgt'</span><span class="p">:</span> <span class="n">layer</span><span class="p">[</span><span class="s">'attributes'</span><span class="p">][</span><span class="n">attr</span><span class="p">]})</span>
|
|
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">attr</span><span class="p">,</span> <span class="nb">dict</span><span class="p">)</span> <span class="ow">and</span> <span class="s">'src'</span> <span class="ow">in</span> <span class="n">attr</span> <span class="ow">and</span> <span class="s">'tgt'</span> <span class="ow">in</span> <span class="n">attr</span><span class="p">:</span>
|
|
<span class="n">attrs</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">attr</span><span class="p">)</span>
|
|
<span class="n">layer</span><span class="p">[</span><span class="s">'attributes'</span><span class="p">]</span> <span class="o">=</span> <span class="n">attrs</span></pre></div>
|
|
</div>
|
|
</div>
|
|
<div class='clearall'></div>
|
|
<div class='section' id='section-9'>
|
|
<div class='docs'>
|
|
<div class='octowrap'>
|
|
<a class='octothorpe' href='#section-9'>#</a>
|
|
</div>
|
|
|
|
</div>
|
|
<div class='code'>
|
|
<div class="highlight"><pre><span class="k">def</span> <span class="nf">parse_layer_filter</span><span class="p">(</span><span class="n">layer</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="s">'filter'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">layer</span><span class="p">:</span>
|
|
<span class="n">layer</span><span class="p">[</span><span class="s">'filter'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">False</span>
|
|
<span class="k">return</span>
|
|
<span class="k">return</span> <span class="c"># todo: check valid filter syntax (recursivly, place code in filter.py)</span>
|
|
<span class="nb">filter</span> <span class="o">=</span> <span class="n">layer</span><span class="p">[</span><span class="s">'filter'</span><span class="p">]</span>
|
|
<span class="k">if</span> <span class="s">'type'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="nb">filter</span><span class="p">:</span>
|
|
<span class="nb">filter</span><span class="p">[</span><span class="s">'type'</span><span class="p">]</span> <span class="o">=</span> <span class="s">'include'</span>
|
|
<span class="k">if</span> <span class="s">'attribute'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="nb">filter</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="n">Error</span><span class="p">(</span><span class="s">'layer filter must define an attribute to filter on'</span><span class="p">)</span>
|
|
<span class="k">if</span> <span class="s">'equals'</span> <span class="ow">in</span> <span class="nb">filter</span><span class="p">:</span>
|
|
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="nb">filter</span><span class="p">[</span><span class="s">'equals'</span><span class="p">],</span> <span class="p">(</span><span class="nb">str</span><span class="p">,</span> <span class="nb">unicode</span><span class="p">,</span> <span class="nb">int</span><span class="p">,</span> <span class="nb">float</span><span class="p">)):</span>
|
|
<span class="nb">filter</span><span class="p">[</span><span class="s">'equals'</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="nb">filter</span><span class="p">[</span><span class="s">'equals'</span><span class="p">]]</span>
|
|
<span class="k">elif</span> <span class="s">'greater-than'</span> <span class="ow">in</span> <span class="nb">filter</span><span class="p">:</span>
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="nb">filter</span><span class="p">[</span><span class="s">'greater-than'</span><span class="p">]</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="nb">filter</span><span class="p">[</span><span class="s">'greater-than'</span><span class="p">])</span>
|
|
<span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="n">Error</span><span class="p">(</span><span class="s">'could not convert filter value "greater-than" to float'</span><span class="p">)</span>
|
|
<span class="k">elif</span> <span class="s">'less-than'</span> <span class="ow">in</span> <span class="nb">filter</span><span class="p">:</span>
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="nb">filter</span><span class="p">[</span><span class="s">'less-than'</span><span class="p">]</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="nb">filter</span><span class="p">[</span><span class="s">'less-than'</span><span class="p">])</span>
|
|
<span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="n">Error</span><span class="p">(</span><span class="s">'could not convert filter value "less-than" to float'</span><span class="p">)</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="n">Error</span><span class="p">(</span><span class="s">'you must define either "equals", "greater-than" or "less-than" in the filter'</span><span class="p">)</span></pre></div>
|
|
</div>
|
|
</div>
|
|
<div class='clearall'></div>
|
|
<div class='section' id='section-10'>
|
|
<div class='docs'>
|
|
<div class='octowrap'>
|
|
<a class='octothorpe' href='#section-10'>#</a>
|
|
</div>
|
|
|
|
</div>
|
|
<div class='code'>
|
|
<div class="highlight"><pre><span class="k">def</span> <span class="nf">parse_layer_join</span><span class="p">(</span><span class="n">layer</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="s">'join'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">layer</span><span class="p">:</span>
|
|
<span class="n">layer</span><span class="p">[</span><span class="s">'join'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">False</span>
|
|
<span class="k">return</span>
|
|
<span class="k">if</span> <span class="n">layer</span><span class="p">[</span><span class="s">'join'</span><span class="p">]</span> <span class="ow">is</span> <span class="bp">False</span><span class="p">:</span>
|
|
<span class="k">return</span>
|
|
|
|
<span class="n">join</span> <span class="o">=</span> <span class="n">layer</span><span class="p">[</span><span class="s">'join'</span><span class="p">]</span>
|
|
<span class="k">if</span> <span class="s">'group-by'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">join</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="n">Error</span><span class="p">(</span><span class="s">'missing attribute "group-by": you need to specify an attribute by which the features should be joined.'</span><span class="p">)</span>
|
|
<span class="k">if</span> <span class="s">'groups'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">join</span><span class="p">:</span>
|
|
<span class="n">join</span><span class="p">[</span><span class="s">'groups'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">None</span>
|
|
<span class="k">if</span> <span class="s">'group-as'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">join</span><span class="p">:</span>
|
|
<span class="n">join</span><span class="p">[</span><span class="s">'group-as'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">False</span></pre></div>
|
|
</div>
|
|
</div>
|
|
<div class='clearall'></div>
|
|
<div class='section' id='section-11'>
|
|
<div class='docs'>
|
|
<div class='octowrap'>
|
|
<a class='octothorpe' href='#section-11'>#</a>
|
|
</div>
|
|
|
|
</div>
|
|
<div class='code'>
|
|
<div class="highlight"><pre><span class="k">def</span> <span class="nf">parse_layer_simplify</span><span class="p">(</span><span class="n">layer</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="s">'unify-precision'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">layer</span><span class="p">:</span>
|
|
<span class="n">layer</span><span class="p">[</span><span class="s">'unify-precision'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">None</span>
|
|
<span class="k">if</span> <span class="s">'simplify'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">layer</span><span class="p">:</span>
|
|
<span class="n">layer</span><span class="p">[</span><span class="s">'simplify'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">False</span>
|
|
<span class="k">return</span>
|
|
<span class="k">if</span> <span class="n">layer</span><span class="p">[</span><span class="s">'simplify'</span><span class="p">]</span> <span class="ow">is</span> <span class="bp">False</span><span class="p">:</span>
|
|
<span class="k">return</span>
|
|
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">layer</span><span class="p">[</span><span class="s">'simplify'</span><span class="p">],</span> <span class="p">(</span><span class="nb">int</span><span class="p">,</span> <span class="nb">float</span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="nb">unicode</span><span class="p">)):</span></pre></div>
|
|
</div>
|
|
</div>
|
|
<div class='clearall'></div>
|
|
<div class='section' id='section-12'>
|
|
<div class='docs'>
|
|
<div class='octowrap'>
|
|
<a class='octothorpe' href='#section-12'>#</a>
|
|
</div>
|
|
<p>default to visvalingam-whyatt</p>
|
|
</div>
|
|
<div class='code'>
|
|
<div class="highlight"><pre> <span class="n">layer</span><span class="p">[</span><span class="s">'simplify'</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s">"method"</span><span class="p">:</span> <span class="s">"visvalingam-whyatt"</span><span class="p">,</span> <span class="s">"tolerance"</span><span class="p">:</span> <span class="nb">float</span><span class="p">(</span><span class="n">layer</span><span class="p">[</span><span class="s">'simplify'</span><span class="p">])}</span>
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="n">layer</span><span class="p">[</span><span class="s">'simplify'</span><span class="p">][</span><span class="s">'tolerance'</span><span class="p">]</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">layer</span><span class="p">[</span><span class="s">'simplify'</span><span class="p">][</span><span class="s">'tolerance'</span><span class="p">])</span>
|
|
<span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="n">Error</span><span class="p">(</span><span class="s">'could not convert simplification amount to float'</span><span class="p">)</span>
|
|
<span class="k">if</span> <span class="s">'filter-islands'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">layer</span><span class="p">:</span>
|
|
<span class="n">layer</span><span class="p">[</span><span class="s">'filter-islands'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">False</span></pre></div>
|
|
</div>
|
|
</div>
|
|
<div class='clearall'></div>
|
|
<div class='section' id='section-13'>
|
|
<div class='docs'>
|
|
<div class='octowrap'>
|
|
<a class='octothorpe' href='#section-13'>#</a>
|
|
</div>
|
|
|
|
</div>
|
|
<div class='code'>
|
|
<div class="highlight"><pre><span class="k">def</span> <span class="nf">parse_layer_subtract</span><span class="p">(</span><span class="n">layer</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="s">'subtract-from'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">layer</span><span class="p">:</span>
|
|
<span class="n">layer</span><span class="p">[</span><span class="s">'subtract-from'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">False</span>
|
|
<span class="k">return</span>
|
|
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">layer</span><span class="p">[</span><span class="s">'subtract-from'</span><span class="p">],</span> <span class="p">(</span><span class="nb">str</span><span class="p">,</span> <span class="nb">unicode</span><span class="p">)):</span>
|
|
<span class="n">layer</span><span class="p">[</span><span class="s">'subtract-from'</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">layer</span><span class="p">[</span><span class="s">'subtract-from'</span><span class="p">]]</span></pre></div>
|
|
</div>
|
|
</div>
|
|
<div class='clearall'></div>
|
|
<div class='section' id='section-14'>
|
|
<div class='docs'>
|
|
<div class='octowrap'>
|
|
<a class='octothorpe' href='#section-14'>#</a>
|
|
</div>
|
|
|
|
</div>
|
|
<div class='code'>
|
|
<div class="highlight"><pre><span class="k">def</span> <span class="nf">parse_layer_cropping</span><span class="p">(</span><span class="n">layer</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="s">'crop-to'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">layer</span><span class="p">:</span>
|
|
<span class="n">layer</span><span class="p">[</span><span class="s">'crop-to'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">False</span>
|
|
<span class="k">return</span></pre></div>
|
|
</div>
|
|
</div>
|
|
<div class='clearall'></div>
|
|
<div class='section' id='section-15'>
|
|
<div class='docs'>
|
|
<div class='octowrap'>
|
|
<a class='octothorpe' href='#section-15'>#</a>
|
|
</div>
|
|
|
|
</div>
|
|
<div class='code'>
|
|
<div class="highlight"><pre><span class="k">def</span> <span class="nf">parse_layer_graticule</span><span class="p">(</span><span class="n">layer</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="s">'latitudes'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">layer</span><span class="p">:</span>
|
|
<span class="n">layer</span><span class="p">[</span><span class="s">'latitudes'</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
|
|
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">layer</span><span class="p">[</span><span class="s">'latitudes'</span><span class="p">],</span> <span class="p">(</span><span class="nb">int</span><span class="p">,</span> <span class="nb">float</span><span class="p">)):</span>
|
|
<span class="n">step</span> <span class="o">=</span> <span class="n">layer</span><span class="p">[</span><span class="s">'latitudes'</span><span class="p">]</span>
|
|
<span class="n">layer</span><span class="p">[</span><span class="s">'latitudes'</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
|
<span class="k">for</span> <span class="n">lat</span> <span class="ow">in</span> <span class="n">_xfrange</span><span class="p">(</span><span class="n">step</span><span class="p">,</span> <span class="mi">90</span><span class="p">,</span> <span class="n">step</span><span class="p">):</span>
|
|
<span class="n">layer</span><span class="p">[</span><span class="s">'latitudes'</span><span class="p">]</span> <span class="o">+=</span> <span class="p">[</span><span class="n">lat</span><span class="p">,</span> <span class="o">-</span><span class="n">lat</span><span class="p">]</span>
|
|
|
|
<span class="k">if</span> <span class="s">'longitudes'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">layer</span><span class="p">:</span>
|
|
<span class="n">layer</span><span class="p">[</span><span class="s">'longitudes'</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
|
|
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">layer</span><span class="p">[</span><span class="s">'longitudes'</span><span class="p">],</span> <span class="p">(</span><span class="nb">int</span><span class="p">,</span> <span class="nb">float</span><span class="p">)):</span>
|
|
<span class="n">step</span> <span class="o">=</span> <span class="n">layer</span><span class="p">[</span><span class="s">'longitudes'</span><span class="p">]</span>
|
|
<span class="n">layer</span><span class="p">[</span><span class="s">'longitudes'</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
|
<span class="k">for</span> <span class="n">lon</span> <span class="ow">in</span> <span class="n">_xfrange</span><span class="p">(</span><span class="n">step</span><span class="p">,</span> <span class="mi">181</span><span class="p">,</span> <span class="n">step</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="n">lon</span> <span class="o">==</span> <span class="mi">180</span><span class="p">:</span>
|
|
<span class="n">p</span> <span class="o">=</span> <span class="p">[</span><span class="n">lon</span><span class="p">]</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">p</span> <span class="o">=</span> <span class="p">[</span><span class="n">lon</span><span class="p">,</span> <span class="o">-</span><span class="n">lon</span><span class="p">]</span>
|
|
<span class="n">layer</span><span class="p">[</span><span class="s">'longitudes'</span><span class="p">]</span> <span class="o">+=</span> <span class="n">p</span></pre></div>
|
|
</div>
|
|
</div>
|
|
<div class='clearall'></div>
|
|
<div class='section' id='section-16'>
|
|
<div class='docs'>
|
|
<div class='octowrap'>
|
|
<a class='octothorpe' href='#section-16'>#</a>
|
|
</div>
|
|
|
|
</div>
|
|
<div class='code'>
|
|
<div class="highlight"><pre><span class="k">def</span> <span class="nf">_xfrange</span><span class="p">(</span><span class="n">start</span><span class="p">,</span> <span class="n">stop</span><span class="p">,</span> <span class="n">step</span><span class="p">):</span>
|
|
<span class="k">while</span> <span class="p">(</span><span class="n">step</span> <span class="o">></span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">start</span> <span class="o"><</span> <span class="n">stop</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">step</span> <span class="o"><</span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">start</span> <span class="o">></span> <span class="n">step</span><span class="p">):</span>
|
|
<span class="k">yield</span> <span class="n">start</span>
|
|
<span class="n">start</span> <span class="o">+=</span> <span class="n">step</span></pre></div>
|
|
</div>
|
|
</div>
|
|
<div class='clearall'></div>
|
|
<div class='section' id='section-17'>
|
|
<div class='docs'>
|
|
<div class='octowrap'>
|
|
<a class='octothorpe' href='#section-17'>#</a>
|
|
</div>
|
|
|
|
</div>
|
|
<div class='code'>
|
|
<div class="highlight"><pre><span class="k">def</span> <span class="nf">parse_bounds</span><span class="p">(</span><span class="n">opts</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="s">'bounds'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">opts</span><span class="p">:</span>
|
|
<span class="n">opts</span><span class="p">[</span><span class="s">'bounds'</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span></pre></div>
|
|
</div>
|
|
</div>
|
|
<div class='clearall'></div>
|
|
<div class='section' id='section-18'>
|
|
<div class='docs'>
|
|
<div class='octowrap'>
|
|
<a class='octothorpe' href='#section-18'>#</a>
|
|
</div>
|
|
<p>return</p>
|
|
</div>
|
|
<div class='code'>
|
|
<div class="highlight"><pre> <span class="n">bounds</span> <span class="o">=</span> <span class="n">opts</span><span class="p">[</span><span class="s">'bounds'</span><span class="p">]</span>
|
|
<span class="k">if</span> <span class="s">'mode'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">bounds</span><span class="p">:</span>
|
|
<span class="n">bounds</span><span class="p">[</span><span class="s">'mode'</span><span class="p">]</span> <span class="o">=</span> <span class="s">'bbox'</span>
|
|
|
|
<span class="k">if</span> <span class="s">'data'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">bounds</span><span class="p">:</span>
|
|
<span class="n">bounds</span><span class="p">[</span><span class="s">'data'</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="o">-</span><span class="mi">180</span><span class="p">,</span> <span class="o">-</span><span class="mi">90</span><span class="p">,</span> <span class="mi">180</span><span class="p">,</span> <span class="mi">90</span><span class="p">]</span>
|
|
<span class="n">bounds</span><span class="p">[</span><span class="s">'mode'</span><span class="p">]</span> <span class="o">=</span> <span class="s">'bbox'</span>
|
|
|
|
<span class="n">mode</span> <span class="o">=</span> <span class="n">bounds</span><span class="p">[</span><span class="s">'mode'</span><span class="p">]</span>
|
|
<span class="n">data</span> <span class="o">=</span> <span class="n">bounds</span><span class="p">[</span><span class="s">'data'</span><span class="p">]</span>
|
|
|
|
<span class="k">if</span> <span class="s">'crop'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">bounds</span><span class="p">:</span>
|
|
<span class="n">bounds</span><span class="p">[</span><span class="s">'crop'</span><span class="p">]</span> <span class="o">=</span> <span class="s">'auto'</span>
|
|
|
|
<span class="k">if</span> <span class="s">"padding"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">bounds</span><span class="p">:</span>
|
|
<span class="n">bounds</span><span class="p">[</span><span class="s">"padding"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span>
|
|
|
|
<span class="k">if</span> <span class="n">mode</span> <span class="o">==</span> <span class="s">"bbox"</span><span class="p">:</span>
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="p">)</span> <span class="o">==</span> <span class="mi">4</span><span class="p">:</span>
|
|
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">4</span><span class="p">):</span>
|
|
<span class="n">data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="n">Error</span><span class="p">(</span><span class="s">'bounds mode bbox requires array with exactly 4 values [lon0,lat0,lon1,lat]'</span><span class="p">)</span>
|
|
<span class="k">except</span> <span class="n">Error</span><span class="p">:</span>
|
|
<span class="k">raise</span>
|
|
<span class="k">except</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="n">Error</span><span class="p">(</span><span class="s">'bounds mode bbox requires array with exactly 4 values [lon0,lat0,lon1,lat]'</span><span class="p">)</span>
|
|
<span class="k">elif</span> <span class="n">mode</span> <span class="o">==</span> <span class="s">"points"</span><span class="p">:</span>
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">data</span><span class="p">)):</span>
|
|
<span class="n">pt</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
|
|
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">pt</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span>
|
|
<span class="n">pt</span> <span class="o">=</span> <span class="nb">map</span><span class="p">(</span><span class="nb">float</span><span class="p">,</span> <span class="n">pt</span><span class="p">)</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="n">Error</span><span class="p">(</span><span class="s">'bounds mode points requires array with (lon,lat) tuples'</span><span class="p">)</span>
|
|
<span class="k">except</span> <span class="n">Error</span><span class="p">:</span>
|
|
<span class="k">raise</span>
|
|
<span class="k">except</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="n">Error</span><span class="p">(</span><span class="s">'bounds mode points requires array with (lon,lat) tuples'</span><span class="p">)</span>
|
|
<span class="k">elif</span> <span class="n">mode</span> <span class="ow">in</span> <span class="p">(</span><span class="s">"polygons"</span><span class="p">,</span> <span class="s">"polygon"</span><span class="p">):</span>
|
|
<span class="n">bounds</span><span class="p">[</span><span class="s">'mode'</span><span class="p">]</span> <span class="o">=</span> <span class="n">mode</span> <span class="o">=</span> <span class="s">"polygons"</span>
|
|
<span class="k">if</span> <span class="s">"layer"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">data</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">is_str</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">"layer"</span><span class="p">]):</span>
|
|
<span class="k">raise</span> <span class="n">Error</span><span class="p">(</span><span class="s">'you must specify a layer for bounds mode '</span> <span class="o">+</span> <span class="n">mode</span><span class="p">)</span>
|
|
<span class="k">if</span> <span class="s">"filter"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span>
|
|
<span class="n">data</span><span class="p">[</span><span class="s">"filter"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">False</span>
|
|
<span class="k">if</span> <span class="s">"attribute"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">data</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">is_str</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">"attribute"</span><span class="p">]):</span>
|
|
<span class="n">data</span><span class="p">[</span><span class="s">"attribute"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">None</span>
|
|
<span class="k">if</span> <span class="s">"values"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span>
|
|
<span class="k">if</span> <span class="n">data</span><span class="p">[</span><span class="s">"attribute"</span><span class="p">]</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
|
|
<span class="n">data</span><span class="p">[</span><span class="s">"values"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="n">Error</span><span class="p">(</span><span class="s">'you must specify a list of values to match in bounds mode '</span> <span class="o">+</span> <span class="n">mode</span><span class="p">)</span>
|
|
<span class="k">if</span> <span class="n">is_str</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">"values"</span><span class="p">]):</span>
|
|
<span class="n">data</span><span class="p">[</span><span class="s">"values"</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">data</span><span class="p">[</span><span class="s">"values"</span><span class="p">]]</span>
|
|
<span class="k">if</span> <span class="s">"min-area"</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span>
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="n">data</span><span class="p">[</span><span class="s">"min-area"</span><span class="p">]</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s">"min-area"</span><span class="p">])</span>
|
|
<span class="k">except</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="n">Error</span><span class="p">(</span><span class="s">'min_area must be an integer or float'</span><span class="p">)</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">data</span><span class="p">[</span><span class="s">'min-area'</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span></pre></div>
|
|
</div>
|
|
</div>
|
|
<div class='clearall'></div>
|
|
<div class='section' id='section-19'>
|
|
<div class='docs'>
|
|
<div class='octowrap'>
|
|
<a class='octothorpe' href='#section-19'>#</a>
|
|
</div>
|
|
|
|
</div>
|
|
<div class='code'>
|
|
<div class="highlight"><pre><span class="k">def</span> <span class="nf">parse_export</span><span class="p">(</span><span class="n">opts</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="s">"export"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">opts</span><span class="p">:</span>
|
|
<span class="n">opts</span><span class="p">[</span><span class="s">"export"</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
|
|
<span class="n">exp</span> <span class="o">=</span> <span class="n">opts</span><span class="p">[</span><span class="s">"export"</span><span class="p">]</span>
|
|
<span class="k">if</span> <span class="s">"width"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">exp</span> <span class="ow">and</span> <span class="s">"height"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">exp</span><span class="p">:</span>
|
|
<span class="n">exp</span><span class="p">[</span><span class="s">"width"</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1000</span>
|
|
<span class="n">exp</span><span class="p">[</span><span class="s">"height"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"auto"</span>
|
|
<span class="k">elif</span> <span class="s">"height"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">exp</span><span class="p">:</span>
|
|
<span class="n">exp</span><span class="p">[</span><span class="s">"height"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"auto"</span>
|
|
<span class="k">elif</span> <span class="s">"width"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">exp</span><span class="p">:</span>
|
|
<span class="n">exp</span><span class="p">[</span><span class="s">"width"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"auto"</span>
|
|
|
|
<span class="k">if</span> <span class="s">"ratio"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">exp</span><span class="p">:</span>
|
|
<span class="n">exp</span><span class="p">[</span><span class="s">"ratio"</span><span class="p">]</span> <span class="o">=</span> <span class="s">"auto"</span>
|
|
<span class="k">if</span> <span class="s">"round"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">exp</span><span class="p">:</span>
|
|
<span class="n">exp</span><span class="p">[</span><span class="s">"round"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">False</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">exp</span><span class="p">[</span><span class="s">"round"</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">exp</span><span class="p">[</span><span class="s">"round"</span><span class="p">])</span>
|
|
<span class="k">if</span> <span class="s">"crop-to-view"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">exp</span><span class="p">:</span>
|
|
<span class="n">exp</span><span class="p">[</span><span class="s">'crop-to-view'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">True</span>
|
|
|
|
</pre></div>
|
|
</div>
|
|
</div>
|
|
<div class='clearall'></div>
|
|
</div>
|
|
</body>
|