Updates to make the build environment check more reasonable:
Mercurial v1.3 permitted
The Java compiler is not a showstopping issue
7-zip can be installed in any location
Update to Helium 5
Helium can be installed in PDT 1.*, not necessarily 1.0
Raptor installation path not significant
Update to Raptor 2.9.*
The Raptor patch to update the bundled version of python is no longer relevant
BRAG calculations updated to ignore items not being in the system path, as this just doesn't matter.
Overall effect is that the build environment check should pass on a machine that is able to do a build!
<?xml version="1.0" encoding="ascii"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>archive.selectors</title>
<link rel="stylesheet" href="epydoc.css" type="text/css" />
<script type="text/javascript" src="epydoc.js"></script>
</head>
<body bgcolor="white" text="black" link="blue" vlink="#204080"
alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
bgcolor="#a0c0ff" cellspacing="0">
<tr valign="middle">
<!-- Tree link -->
<th> <a
href="module-tree.html">Trees</a> </th>
<!-- Index link -->
<th> <a
href="identifier-index.html">Indices</a> </th>
<!-- Help link -->
<th> <a
href="help.html">Help</a> </th>
<th class="navbar" width="100%"></th>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
<tr valign="top">
<td width="100%">
<span class="breadcrumbs">
<a href="archive-module.html">Package archive</a> ::
Module selectors
</span>
</td>
<td>
<table cellpadding="0" cellspacing="0">
<!-- hide/show private -->
<tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
onclick="toggle_private();">hide private</a>]</span></td></tr>
<tr><td align="right"><span class="options"
>[<a href="frames.html" target="_top">frames</a
>] | <a href="archive.selectors-pysrc.html"
target="_top">no frames</a>]</span></td></tr>
</table>
</td>
</tr>
</table>
<h1 class="epydoc">Source Code for <a href="archive.selectors-module.html">Module archive.selectors</a></h1>
<pre class="py-src">
<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment">#============================================================================ </tt> </tt>
<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#Name : selectors.py </tt> </tt>
<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#Part of : Helium </tt> </tt>
<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-comment">#Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).</tt> </tt>
<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#All rights reserved.</tt> </tt>
<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#This component and the accompanying materials are made available</tt> </tt>
<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#under the terms of the License "Eclipse Public License v1.0"</tt> </tt>
<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#which accompanies this distribution, and is available</tt> </tt>
<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#at the URL "http://www.eclipse.org/legal/epl-v10.html".</tt> </tt>
<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#Initial Contributors:</tt> </tt>
<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#Nokia Corporation - initial contribution.</tt> </tt>
<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#Contributors:</tt> </tt>
<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#</tt> </tt>
<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#Description:</tt> </tt>
<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-comment"></tt><tt class="py-comment">#===============================================================================</tt> </tt>
<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-comment"></tt> </tt>
<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">re</tt> </tt>
<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
<a name="L22"></a><tt class="py-lineno"> 22</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">sys</tt> </tt>
<a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">logging</tt> </tt>
<a name="L24"></a><tt class="py-lineno"> 24</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-0" class="py-name" targets="Module fileutils=fileutils-module.html"><a title="fileutils" class="py-name" href="#" onclick="return doclink('link-0', 'fileutils', 'link-0');">fileutils</a></tt> </tt>
<a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-1" class="py-name" targets="Package archive=archive-module.html"><a title="archive" class="py-name" href="#" onclick="return doclink('link-1', 'archive', 'link-1');">archive</a></tt> </tt>
<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"> </tt>
<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"><tt class="py-comment"># Getting logger for the module</tt> </tt>
<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"><tt class="py-comment"></tt><tt id="link-2" class="py-name" targets="Variable archive.scanners.logger=archive.scanners-module.html#logger,Variable archive.selectors.logger=archive.selectors-module.html#logger,Variable buildmanagement.logger=buildmanagement-module.html#logger,Variable flash_config.logger=flash_config-module.html#logger,Module helium.logger=helium.logger-module.html,Variable imaker.iqrf.logger=imaker.iqrf-module.html#logger,Variable integration.templatebuilder.logger=integration.templatebuilder-module.html#logger,Variable rom.logger=rom-module.html#logger"><a title="archive.scanners.logger
archive.selectors.logger
buildmanagement.logger
flash_config.logger
helium.logger
imaker.iqrf.logger
integration.templatebuilder.logger
rom.logger" class="py-name" href="#" onclick="return doclink('link-2', 'logger', 'link-2');">logger</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt class="py-name">getLogger</tt><tt class="py-op">(</tt><tt class="py-string">"archive.selectors"</tt><tt class="py-op">)</tt> </tt>
<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"> </tt>
<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"> </tt>
<a name="DistributionPolicySelector"></a><div id="DistributionPolicySelector-def"><a name="L31"></a><tt class="py-lineno"> 31</tt> <a class="py-toggle" href="#" id="DistributionPolicySelector-toggle" onclick="return toggle('DistributionPolicySelector');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="archive.selectors.DistributionPolicySelector-class.html">DistributionPolicySelector</a><tt class="py-op">:</tt> </tt>
</div><div id="DistributionPolicySelector-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="DistributionPolicySelector-expanded"><a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"> <tt class="py-docstring">""" A selector that selects files based on other criteria.</tt> </tt>
<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-docstring"> It is similar to the Ant file selector objects in design. This one selects files</tt> </tt>
<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-docstring"> based on whether the root-most Distribution.Policy.S60 file matches the given value.</tt> </tt>
<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"> </tt>
<a name="DistributionPolicySelector.__init__"></a><div id="DistributionPolicySelector.__init__-def"><a name="L38"></a><tt class="py-lineno"> 38</tt> <a class="py-toggle" href="#" id="DistributionPolicySelector.__init__-toggle" onclick="return toggle('DistributionPolicySelector.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="archive.selectors.DistributionPolicySelector-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">policy_files</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">,</tt> <tt class="py-param">ignoremissingpolicyfiles</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="DistributionPolicySelector.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="DistributionPolicySelector.__init__-expanded"><a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"> <tt class="py-docstring">""" Initialization. """</tt> </tt>
<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_negate</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">values</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">v</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">v</tt> <tt class="py-keyword">in</tt> <tt class="py-name">value</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">if</tt> <tt class="py-name">v</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">!=</tt><tt class="py-string">""</tt><tt class="py-op">]</tt> </tt>
<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_policy_files</tt> <tt class="py-op">=</tt> <tt class="py-name">policy_files</tt> </tt>
<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_ignoremissingpolicyfiles</tt> <tt class="py-op">=</tt> <tt class="py-name">ignoremissingpolicyfiles</tt> </tt>
</div><a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> </tt>
<a name="DistributionPolicySelector.get_value_and_negate"></a><div id="DistributionPolicySelector.get_value_and_negate-def"><a name="L45"></a><tt class="py-lineno"> 45</tt> <a class="py-toggle" href="#" id="DistributionPolicySelector.get_value_and_negate-toggle" onclick="return toggle('DistributionPolicySelector.get_value_and_negate');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="archive.selectors.DistributionPolicySelector-class.html#get_value_and_negate">get_value_and_negate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="DistributionPolicySelector.get_value_and_negate-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="DistributionPolicySelector.get_value_and_negate-expanded"><a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">value</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'!'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
</div><a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"> </tt>
<a name="DistributionPolicySelector.is_selected"></a><div id="DistributionPolicySelector.is_selected-def"><a name="L50"></a><tt class="py-lineno"> 50</tt> <a class="py-toggle" href="#" id="DistributionPolicySelector.is_selected-toggle" onclick="return toggle('DistributionPolicySelector.is_selected');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="archive.selectors.DistributionPolicySelector-class.html#is_selected">is_selected</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="DistributionPolicySelector.is_selected-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="DistributionPolicySelector.is_selected-expanded"><a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> <tt class="py-docstring">""" Determines if the path is selected by this selector. """</tt> </tt>
<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> <tt class="py-name">current_dir</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Method buildtools.Command.path()=buildtools.Command-class.html#path,Method sysdef.api.SpecialInstruction.path()=sysdef.api.SpecialInstruction-class.html#path,Method sysdef.api.Unit.path()=sysdef.api.Unit-class.html#path"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-3', 'path', 'link-3');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">abspath</tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-4" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-4', 'path', 'link-3');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">dirname</tt><tt class="py-op">(</tt><tt id="link-5" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-5', 'path', 'link-3');">path</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt id="link-6" class="py-name"><a title="archive.scanners.logger
archive.selectors.logger
buildmanagement.logger
flash_config.logger
helium.logger
imaker.iqrf.logger
integration.templatebuilder.logger
rom.logger" class="py-name" href="#" onclick="return doclink('link-6', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'is_selected: current dir = '</tt> <tt class="py-op">+</tt> <tt class="py-name">current_dir</tt> <tt class="py-op">+</tt> <tt class="py-string">' '</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-7', 'path', 'link-3');">path</a></tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Method ccm.CCMObject.exists()=ccm.CCMObject-class.html#exists"><a title="ccm.CCMObject.exists" class="py-name" href="#" onclick="return doclink('link-8', 'exists', 'link-8');">exists</a></tt><tt class="py-op">(</tt><tt class="py-name">current_dir</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> <tt class="py-name">policy_file</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-comment"># finding the distribution policy from the filelist.</tt> </tt>
<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">for</tt> <tt id="link-9" class="py-name" targets="Variable symrec.ReleaseMetadata.filename=symrec.ReleaseMetadata-class.html#filename"><a title="symrec.ReleaseMetadata.filename" class="py-name" href="#" onclick="return doclink('link-9', 'filename', 'link-9');">filename</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_policy_files</tt><tt class="py-op">:</tt> </tt>
<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt class="py-comment">#slow method on case sensitive system</tt> </tt>
<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">platform</tt> <tt class="py-op">!=</tt> <tt class="py-string">'win32'</tt><tt class="py-op">:</tt> </tt>
<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">f</tt> <tt class="py-keyword">in</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">listdir</tt><tt class="py-op">(</tt><tt class="py-name">current_dir</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-10" class="py-name"><a title="symrec.ReleaseMetadata.filename" class="py-name" href="#" onclick="return doclink('link-10', 'filename', 'link-9');">filename</a></tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-name">policy_file</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-11', 'path', 'link-3');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">current_dir</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-12', 'path', 'link-3');">path</a></tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="ccm.CCMObject.exists" class="py-name" href="#" onclick="return doclink('link-13', 'exists', 'link-8');">exists</a></tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-14', 'path', 'link-3');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">current_dir</tt><tt class="py-op">,</tt> <tt id="link-15" class="py-name"><a title="symrec.ReleaseMetadata.filename" class="py-name" href="#" onclick="return doclink('link-15', 'filename', 'link-9');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt class="py-name">policy_file</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-16', 'path', 'link-3');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">current_dir</tt><tt class="py-op">,</tt> <tt id="link-17" class="py-name"><a title="symrec.ReleaseMetadata.filename" class="py-name" href="#" onclick="return doclink('link-17', 'filename', 'link-9');">filename</a></tt><tt class="py-op">)</tt> </tt>
<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt id="link-18" class="py-name"><a title="archive.scanners.logger
archive.selectors.logger
buildmanagement.logger
flash_config.logger
helium.logger
imaker.iqrf.logger
integration.templatebuilder.logger
rom.logger" class="py-name" href="#" onclick="return doclink('link-18', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'Using Policy file: '</tt> <tt class="py-op">+</tt> <tt class="py-name">policy_file</tt><tt class="py-op">)</tt> </tt>
<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> </tt>
<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-name">policy_value</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">policy_file</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_ignoremissingpolicyfiles</tt><tt class="py-op">:</tt> </tt>
<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt id="link-19" class="py-name"><a title="archive.scanners.logger
archive.selectors.logger
buildmanagement.logger
flash_config.logger
helium.logger
imaker.iqrf.logger
integration.templatebuilder.logger
rom.logger" class="py-name" href="#" onclick="return doclink('link-19', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"POLICY_ERROR: Policy file not found under '%s' using names [%s]"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">current_dir</tt><tt class="py-op">,</tt> <tt class="py-string">", "</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_policy_files</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-name">policy_value</tt> <tt class="py-op">=</tt> <tt id="link-20" class="py-name"><a title="archive" class="py-name" href="#" onclick="return doclink('link-20', 'archive', 'link-1');">archive</a></tt><tt class="py-op">.</tt><tt id="link-21" class="py-name" targets="Module archive.mappers=archive.mappers-module.html"><a title="archive.mappers" class="py-name" href="#" onclick="return doclink('link-21', 'mappers', 'link-21');">mappers</a></tt><tt class="py-op">.</tt><tt id="link-22" class="py-name" targets="Variable archive.mappers.MISSING_POLICY=archive.mappers-module.html#MISSING_POLICY"><a title="archive.mappers.MISSING_POLICY" class="py-name" href="#" onclick="return doclink('link-22', 'MISSING_POLICY', 'link-22');">MISSING_POLICY</a></tt> </tt>
<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-name">policy_value</tt> <tt class="py-op">=</tt> <tt id="link-23" class="py-name"><a title="fileutils" class="py-name" href="#" onclick="return doclink('link-23', 'fileutils', 'link-0');">fileutils</a></tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Function fileutils.read_policy_content()=fileutils-module.html#read_policy_content"><a title="fileutils.read_policy_content" class="py-name" href="#" onclick="return doclink('link-24', 'read_policy_content', 'link-24');">read_policy_content</a></tt><tt class="py-op">(</tt><tt class="py-name">policy_file</tt><tt class="py-op">)</tt> </tt>
<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">:</tt> </tt>
<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> <tt id="link-25" class="py-name"><a title="archive.scanners.logger
archive.selectors.logger
buildmanagement.logger
flash_config.logger
helium.logger
imaker.iqrf.logger
integration.templatebuilder.logger
rom.logger" class="py-name" href="#" onclick="return doclink('link-25', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">'POLICY_ERROR: Exception thrown parsing policy file: '</tt> <tt class="py-op">+</tt> <tt class="py-name">policy_file</tt><tt class="py-op">)</tt> </tt>
<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> <tt class="py-name">policy_value</tt> <tt class="py-op">=</tt> <tt id="link-26" class="py-name"><a title="archive" class="py-name" href="#" onclick="return doclink('link-26', 'archive', 'link-1');">archive</a></tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="archive.mappers" class="py-name" href="#" onclick="return doclink('link-27', 'mappers', 'link-21');">mappers</a></tt><tt class="py-op">.</tt><tt id="link-28" class="py-name"><a title="archive.mappers.MISSING_POLICY" class="py-name" href="#" onclick="return doclink('link-28', 'MISSING_POLICY', 'link-22');">MISSING_POLICY</a></tt> </tt>
<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-comment"># loop through the possible values</tt> </tt>
<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">for</tt> <tt class="py-name">value</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">values</tt><tt class="py-op">:</tt> </tt>
<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">negate</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Method archive.selectors.DistributionPolicySelector.get_value_and_negate()=archive.selectors.DistributionPolicySelector-class.html#get_value_and_negate,Method archive.selectors.SymbianPolicySelector.get_value_and_negate()=archive.selectors.SymbianPolicySelector-class.html#get_value_and_negate"><a title="archive.selectors.DistributionPolicySelector.get_value_and_negate
archive.selectors.SymbianPolicySelector.get_value_and_negate" class="py-name" href="#" onclick="return doclink('link-29', 'get_value_and_negate', 'link-29');">get_value_and_negate</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt id="link-30" class="py-name"><a title="archive.scanners.logger
archive.selectors.logger
buildmanagement.logger
flash_config.logger
helium.logger
imaker.iqrf.logger
integration.templatebuilder.logger
rom.logger" class="py-name" href="#" onclick="return doclink('link-30', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'Policy value: '</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">policy_value</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">' '</tt> <tt class="py-op">+</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt class="py-name">negate</tt> <tt class="py-keyword">and</tt> <tt class="py-name">policy_value</tt> <tt class="py-op">==</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">negate</tt> <tt class="py-keyword">and</tt> <tt class="py-name">policy_value</tt> <tt class="py-op">!=</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
</div></div><a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> </tt>
<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> </tt>
<a name="SymbianPolicySelector"></a><div id="SymbianPolicySelector-def"><a name="L89"></a><tt class="py-lineno"> 89</tt> <a class="py-toggle" href="#" id="SymbianPolicySelector-toggle" onclick="return toggle('SymbianPolicySelector');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="archive.selectors.SymbianPolicySelector-class.html">SymbianPolicySelector</a><tt class="py-op">:</tt> </tt>
</div><div id="SymbianPolicySelector-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="SymbianPolicySelector-expanded"><a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-docstring">""" A selector that selects files based on other criteria.</tt> </tt>
<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"><tt class="py-docstring"> It is similar to the Ant file selector objects in design. This one selects files</tt> </tt>
<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"><tt class="py-docstring"> based on whether the root-most distribution.policy file matches the given value.</tt> </tt>
<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> </tt>
<a name="SymbianPolicySelector.__init__"></a><div id="SymbianPolicySelector.__init__-def"><a name="L96"></a><tt class="py-lineno"> 96</tt> <a class="py-toggle" href="#" id="SymbianPolicySelector.__init__-toggle" onclick="return toggle('SymbianPolicySelector.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="archive.selectors.SymbianPolicySelector-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">policy_files</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="SymbianPolicySelector.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SymbianPolicySelector.__init__-expanded"><a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-docstring">""" Initialization. """</tt> </tt>
<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_negate</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">values</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">v</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">v</tt> <tt class="py-keyword">in</tt> <tt class="py-name">value</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">if</tt> <tt class="py-name">v</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">!=</tt><tt class="py-string">""</tt><tt class="py-op">]</tt> </tt>
<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_policy_files</tt> <tt class="py-op">=</tt> <tt class="py-name">policy_files</tt> </tt>
</div><a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> </tt>
<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> </tt>
<a name="SymbianPolicySelector.get_value_and_negate"></a><div id="SymbianPolicySelector.get_value_and_negate-def"><a name="L103"></a><tt class="py-lineno">103</tt> <a class="py-toggle" href="#" id="SymbianPolicySelector.get_value_and_negate-toggle" onclick="return toggle('SymbianPolicySelector.get_value_and_negate');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="archive.selectors.SymbianPolicySelector-class.html#get_value_and_negate">get_value_and_negate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="SymbianPolicySelector.get_value_and_negate-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SymbianPolicySelector.get_value_and_negate-expanded"><a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">value</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'!'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
</div><a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> </tt>
<a name="SymbianPolicySelector.is_selected"></a><div id="SymbianPolicySelector.is_selected-def"><a name="L108"></a><tt class="py-lineno">108</tt> <a class="py-toggle" href="#" id="SymbianPolicySelector.is_selected-toggle" onclick="return toggle('SymbianPolicySelector.is_selected');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="archive.selectors.SymbianPolicySelector-class.html#is_selected">is_selected</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="SymbianPolicySelector.is_selected-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SymbianPolicySelector.is_selected-expanded"><a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-docstring">""" Determines if the path is selected by this selector. """</tt> </tt>
<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-name">current_dir</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-31', 'path', 'link-3');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">abspath</tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-32', 'path', 'link-3');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">dirname</tt><tt class="py-op">(</tt><tt id="link-33" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-33', 'path', 'link-3');">path</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> <tt id="link-34" class="py-name"><a title="archive.scanners.logger
archive.selectors.logger
buildmanagement.logger
flash_config.logger
helium.logger
imaker.iqrf.logger
integration.templatebuilder.logger
rom.logger" class="py-name" href="#" onclick="return doclink('link-34', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'is_selected: current dir = '</tt> <tt class="py-op">+</tt> <tt class="py-name">current_dir</tt> <tt class="py-op">+</tt> <tt class="py-string">' '</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-35', 'path', 'link-3');">path</a></tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="ccm.CCMObject.exists" class="py-name" href="#" onclick="return doclink('link-36', 'exists', 'link-8');">exists</a></tt><tt class="py-op">(</tt><tt class="py-name">current_dir</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-name">policy_file</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-comment"># finding the distribution policy from the filelist.</tt> </tt>
<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">for</tt> <tt id="link-37" class="py-name"><a title="symrec.ReleaseMetadata.filename" class="py-name" href="#" onclick="return doclink('link-37', 'filename', 'link-9');">filename</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_policy_files</tt><tt class="py-op">:</tt> </tt>
<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">platform</tt> <tt class="py-op">!=</tt> <tt class="py-string">'win32'</tt><tt class="py-op">:</tt> </tt>
<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">f</tt> <tt class="py-keyword">in</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">listdir</tt><tt class="py-op">(</tt><tt class="py-name">current_dir</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-38" class="py-name"><a title="symrec.ReleaseMetadata.filename" class="py-name" href="#" onclick="return doclink('link-38', 'filename', 'link-9');">filename</a></tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-name">policy_file</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-39', 'path', 'link-3');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">current_dir</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt id="link-40" class="py-name"><a title="archive.scanners.logger
archive.selectors.logger
buildmanagement.logger
flash_config.logger
helium.logger
imaker.iqrf.logger
integration.templatebuilder.logger
rom.logger" class="py-name" href="#" onclick="return doclink('link-40', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'Using Policy file: '</tt> <tt class="py-op">+</tt> <tt class="py-name">policy_file</tt><tt class="py-op">)</tt> </tt>
<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-41', 'path', 'link-3');">path</a></tt><tt class="py-op">.</tt><tt id="link-42" class="py-name"><a title="ccm.CCMObject.exists" class="py-name" href="#" onclick="return doclink('link-42', 'exists', 'link-8');">exists</a></tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-43', 'path', 'link-3');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">current_dir</tt><tt class="py-op">,</tt> <tt id="link-44" class="py-name"><a title="symrec.ReleaseMetadata.filename" class="py-name" href="#" onclick="return doclink('link-44', 'filename', 'link-9');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-name">policy_file</tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="buildtools.Command.path
sysdef.api.SpecialInstruction.path
sysdef.api.Unit.path" class="py-name" href="#" onclick="return doclink('link-45', 'path', 'link-3');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">current_dir</tt><tt class="py-op">,</tt> <tt id="link-46" class="py-name"><a title="symrec.ReleaseMetadata.filename" class="py-name" href="#" onclick="return doclink('link-46', 'filename', 'link-9');">filename</a></tt><tt class="py-op">)</tt> </tt>
<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt id="link-47" class="py-name"><a title="archive.scanners.logger
archive.selectors.logger
buildmanagement.logger
flash_config.logger
helium.logger
imaker.iqrf.logger
integration.templatebuilder.logger
rom.logger" class="py-name" href="#" onclick="return doclink('link-47', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'Using Policy file: '</tt> <tt class="py-op">+</tt> <tt class="py-name">policy_file</tt><tt class="py-op">)</tt> </tt>
<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> </tt>
<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> <tt class="py-name">policy_value</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">policy_file</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt id="link-48" class="py-name"><a title="archive.scanners.logger
archive.selectors.logger
buildmanagement.logger
flash_config.logger
helium.logger
imaker.iqrf.logger
integration.templatebuilder.logger
rom.logger" class="py-name" href="#" onclick="return doclink('link-48', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt><tt class="py-string">"POLICY_ERROR: Policy file not found under '%s' using names [%s]"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">current_dir</tt><tt class="py-op">,</tt> <tt class="py-string">", "</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_policy_files</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-name">policy_value</tt> <tt class="py-op">=</tt> <tt id="link-49" class="py-name"><a title="archive" class="py-name" href="#" onclick="return doclink('link-49', 'archive', 'link-1');">archive</a></tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="archive.mappers" class="py-name" href="#" onclick="return doclink('link-50', 'mappers', 'link-21');">mappers</a></tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="archive.mappers.MISSING_POLICY" class="py-name" href="#" onclick="return doclink('link-51', 'MISSING_POLICY', 'link-22');">MISSING_POLICY</a></tt> </tt>
<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt class="py-name">policy_value</tt> <tt class="py-op">=</tt> <tt id="link-52" class="py-name"><a title="fileutils" class="py-name" href="#" onclick="return doclink('link-52', 'fileutils', 'link-0');">fileutils</a></tt><tt class="py-op">.</tt><tt id="link-53" class="py-name" targets="Function fileutils.read_symbian_policy_content()=fileutils-module.html#read_symbian_policy_content"><a title="fileutils.read_symbian_policy_content" class="py-name" href="#" onclick="return doclink('link-53', 'read_symbian_policy_content', 'link-53');">read_symbian_policy_content</a></tt><tt class="py-op">(</tt><tt class="py-name">policy_file</tt><tt class="py-op">)</tt> </tt>
<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">:</tt> </tt>
<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt id="link-54" class="py-name"><a title="archive.scanners.logger
archive.selectors.logger
buildmanagement.logger
flash_config.logger
helium.logger
imaker.iqrf.logger
integration.templatebuilder.logger
rom.logger" class="py-name" href="#" onclick="return doclink('link-54', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">warning</tt><tt class="py-op">(</tt><tt class="py-string">'POLICY_ERROR: Exception thrown parsing policy file: '</tt> <tt class="py-op">+</tt> <tt class="py-name">policy_file</tt><tt class="py-op">)</tt> </tt>
<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-name">policy_value</tt> <tt class="py-op">=</tt> <tt id="link-55" class="py-name"><a title="archive" class="py-name" href="#" onclick="return doclink('link-55', 'archive', 'link-1');">archive</a></tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="archive.mappers" class="py-name" href="#" onclick="return doclink('link-56', 'mappers', 'link-21');">mappers</a></tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="archive.mappers.MISSING_POLICY" class="py-name" href="#" onclick="return doclink('link-57', 'MISSING_POLICY', 'link-22');">MISSING_POLICY</a></tt> </tt>
<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> <tt class="py-comment"># loop through the possible values</tt> </tt>
<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"><tt class="py-comment"></tt> <tt class="py-keyword">for</tt> <tt class="py-name">value</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">values</tt><tt class="py-op">:</tt> </tt>
<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">,</tt> <tt class="py-name">negate</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="archive.selectors.DistributionPolicySelector.get_value_and_negate
archive.selectors.SymbianPolicySelector.get_value_and_negate" class="py-name" href="#" onclick="return doclink('link-58', 'get_value_and_negate', 'link-29');">get_value_and_negate</a></tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> <tt id="link-59" class="py-name"><a title="archive.scanners.logger
archive.selectors.logger
buildmanagement.logger
flash_config.logger
helium.logger
imaker.iqrf.logger
integration.templatebuilder.logger
rom.logger" class="py-name" href="#" onclick="return doclink('link-59', 'logger', 'link-2');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-string">'Policy value: '</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">policy_value</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">' '</tt> <tt class="py-op">+</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> </tt>
<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt class="py-name">negate</tt> <tt class="py-keyword">and</tt> <tt class="py-name">policy_value</tt> <tt class="py-op">==</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">negate</tt> <tt class="py-keyword">and</tt> <tt class="py-name">policy_value</tt> <tt class="py-op">!=</tt> <tt class="py-name">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
</div></div><a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"> </tt>
<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"><tt id="link-60" class="py-name" targets="Variable archive.selectors.SELECTORS=archive.selectors-module.html#SELECTORS"><a title="archive.selectors.SELECTORS" class="py-name" href="#" onclick="return doclink('link-60', 'SELECTORS', 'link-60');">SELECTORS</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'policy'</tt><tt class="py-op">:</tt> <tt class="py-keyword">lambda</tt> <tt class="py-name">config</tt><tt class="py-op">:</tt> <tt id="link-61" class="py-name" targets="Class archive.selectors.DistributionPolicySelector=archive.selectors.DistributionPolicySelector-class.html"><a title="archive.selectors.DistributionPolicySelector" class="py-name" href="#" onclick="return doclink('link-61', 'DistributionPolicySelector', 'link-61');">DistributionPolicySelector</a></tt><tt class="py-op">(</tt><tt class="py-name">config</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name" targets="Method configuration.Configuration.get_list()=configuration.Configuration-class.html#get_list"><a title="configuration.Configuration.get_list" class="py-name" href="#" onclick="return doclink('link-62', 'get_list', 'link-62');">get_list</a></tt><tt class="py-op">(</tt><tt class="py-string">'policy.filenames'</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'Distribution.Policy.S60'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'policy.value'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> <tt class="py-string">'symbian.policy'</tt><tt class="py-op">:</tt> <tt class="py-keyword">lambda</tt> <tt class="py-name">config</tt><tt class="py-op">:</tt> <tt id="link-63" class="py-name" targets="Class archive.selectors.SymbianPolicySelector=archive.selectors.SymbianPolicySelector-class.html"><a title="archive.selectors.SymbianPolicySelector" class="py-name" href="#" onclick="return doclink('link-63', 'SymbianPolicySelector', 'link-63');">SymbianPolicySelector</a></tt><tt class="py-op">(</tt><tt class="py-name">config</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name"><a title="configuration.Configuration.get_list" class="py-name" href="#" onclick="return doclink('link-64', 'get_list', 'link-62');">get_list</a></tt><tt class="py-op">(</tt><tt class="py-string">'policy.filenames'</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'distribution.policy'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'policy.value'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> <tt class="py-string">'distribution.policy.s60'</tt><tt class="py-op">:</tt> <tt class="py-keyword">lambda</tt> <tt class="py-name">config</tt><tt class="py-op">:</tt> <tt id="link-65" class="py-name"><a title="archive.selectors.DistributionPolicySelector" class="py-name" href="#" onclick="return doclink('link-65', 'DistributionPolicySelector', 'link-61');">DistributionPolicySelector</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'Distribution.Policy.S60'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'distribution.policy.s60'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'ignore.missing.policyfiles'</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'true'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"> </tt>
<a name="get_selector"></a><div id="get_selector-def"><a name="L150"></a><tt class="py-lineno">150</tt> <a class="py-toggle" href="#" id="get_selector-toggle" onclick="return toggle('get_selector');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="archive.selectors-module.html#get_selector">get_selector</a><tt class="py-op">(</tt><tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">config</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
</div><div id="get_selector-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="get_selector-expanded"><a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-string">'ignore.missing.policyfiles'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">config</tt><tt class="py-op">:</tt> </tt>
<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"> <tt class="py-name">config</tt><tt class="py-op">[</tt><tt class="py-string">'ignore.missing.policyfiles'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'false'</tt> </tt>
<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-66" class="py-name"><a title="archive.selectors.SELECTORS" class="py-name" href="#" onclick="return doclink('link-66', 'SELECTORS', 'link-60');">SELECTORS</a></tt><tt class="py-op">[</tt><tt id="link-67" class="py-name" targets="Method buildtools.Command.name()=buildtools.Command-class.html#name,Method ccm.FourPartName.name()=ccm.FourPartName-class.html#name,Method symrec.ServicePack.name()=symrec.ServicePack-class.html#name,Method sysdef.api.Configuration.name()=sysdef.api.Configuration-class.html#name,Method sysdef.api.Option.name()=sysdef.api.Option-class.html#name,Method sysdef.api.SpecialInstruction.name()=sysdef.api.SpecialInstruction-class.html#name,Method sysdef.api.Target.name()=sysdef.api.Target-class.html#name,Method sysdef.api.TargetList.name()=sysdef.api.TargetList-class.html#name,Method sysdef.api.Unit.name()=sysdef.api.Unit-class.html#name,Method sysdef.api._UnitGroup.name()=sysdef.api._UnitGroup-class.html#name"><a title="buildtools.Command.name
ccm.FourPartName.name
symrec.ServicePack.name
sysdef.api.Configuration.name
sysdef.api.Option.name
sysdef.api.SpecialInstruction.name
sysdef.api.Target.name
sysdef.api.TargetList.name
sysdef.api.Unit.name
sysdef.api._UnitGroup.name" class="py-name" href="#" onclick="return doclink('link-67', 'name', 'link-67');">name</a></tt><tt class="py-op">]</tt><tt class="py-op">(</tt><tt class="py-name">config</tt><tt class="py-op">)</tt> </tt>
</div><a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"> </tt><script type="text/javascript">
<!--
expandto(location.href);
// -->
</script>
</pre>
<br />
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
bgcolor="#a0c0ff" cellspacing="0">
<tr valign="middle">
<!-- Tree link -->
<th> <a
href="module-tree.html">Trees</a> </th>
<!-- Index link -->
<th> <a
href="identifier-index.html">Indices</a> </th>
<!-- Help link -->
<th> <a
href="help.html">Help</a> </th>
<th class="navbar" width="100%"></th>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
<td align="left" class="footer">
Generated by Epydoc 3.0beta1 on Wed Sep 09 13:44:22 2009
</td>
<td align="right" class="footer">
<a href="http://epydoc.sourceforge.net">http://epydoc.sourceforge.net</a>
</td>
</tr>
</table>
<script type="text/javascript">
<!--
// Private objects are initially displayed (because if
// javascript is turned off then we want them to be
// visible); but by default, we want to hide them. So hide
// them unless we have a cookie that says to show them.
checkCookie()
// -->
</script>
</body>
</html>