This file is indexed.

/usr/share/doc/python-apt/html/whatsnew/0.7.100.html is in python-apt-doc 0.8.3ubuntu7.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>What’s New In python-apt 0.7.100 &mdash; python-apt 0.8.3ubuntu7 documentation</title>
    
    <link rel="stylesheet" href="../_static/default.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '../',
        VERSION:     '0.8.3ubuntu7',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="../_static/jquery.js"></script>
    <script type="text/javascript" src="../_static/underscore.js"></script>
    <script type="text/javascript" src="../_static/doctools.js"></script>
    <link rel="top" title="python-apt 0.8.3ubuntu7 documentation" href="../index.html" />
    <link rel="up" title="What’s new in python-apt" href="index.html" />
    <link rel="next" title="What’s New In python-apt 0.8" href="0.8.0.html" />
    <link rel="prev" title="What’s new in python-apt" href="index.html" />
    <link rel="shortcut icon" type="image/png" href="../_static/py.png" />
 

  </head>
  <body>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="../py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="0.8.0.html" title="What’s New In python-apt 0.8"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="index.html" title="What’s new in python-apt"
             accesskey="P">previous</a> |</li>
        <li><img src="../_static/py.png" alt=""
                 style="vertical-align: middle; margin-top: -1px"/></li>
        <li><a href="../index.html">python-apt 0.8.3ubuntu7 documentation</a> &raquo;</li>

          <li><a href="index.html" accesskey="U">What&#8217;s new in python-apt</a> &raquo;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <div class="section" id="what-s-new-in-python-apt-0-7-100">
<h1>What&#8217;s New In python-apt 0.7.100<a class="headerlink" href="#what-s-new-in-python-apt-0-7-100" title="Permalink to this headline"></a></h1>
<p>Python-apt 0.7.100 is a new major release of the python bindings for the APT
package management libraries. It provides support for Python 3, new language
features and an API conforming to <span class="target" id="index-0"></span><a class="pep reference external" href="http://www.python.org/dev/peps/pep-0008"><strong>PEP 8</strong></a>.</p>
<p>Despite the many changes made in python-apt 0.7.100, the release still provides
backwards compatibility to the 0.7 series. This makes it possible to run your
old applications.</p>
<p>This documents describes the important changes introduced since the release
of python-apt 0.7.10.3, starting with the first development release 0.7.90
from April 2009.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">Applications using the old API should be updated to the new API because
the old ones will be dropped in a future release. To build a python-apt
variant without the deprecated API, build it without the -DCOMPAT_0_7
compiler flag.</p>
</div>
<div class="section" id="support-for-python-3">
<h2>Support for Python 3<a class="headerlink" href="#support-for-python-3" title="Permalink to this headline"></a></h2>
<p>Python-apt is the first Debian package to support the third major release of
Python. The port is straight forward and integrates as nicely in Python 3 as
the Python 2 builds integrate in Python 2.</p>
<p>Please be aware that python-apt builds for Python 3 are built without the
compatibility options enabled for Python 2 builds. They also do not provide
methods like <tt class="xref py py-meth docutils literal"><span class="pre">has_key()</span></tt> on mapping objects, because it has been removed
in Python 3.</p>
<p>Python 3 support may be disabled by distributions.</p>
</div>
<div class="section" id="real-classes-in-apt-pkg">
<h2>Real classes in <a class="reference internal" href="../library/apt_pkg.html#module-apt_pkg" title="apt_pkg"><tt class="xref py py-mod docutils literal"><span class="pre">apt_pkg</span></tt></a><a class="headerlink" href="#real-classes-in-apt-pkg" title="Permalink to this headline"></a></h2>
<p>The 0.7.100 release introduces real classes in the <a class="reference internal" href="../library/apt_pkg.html#module-apt_pkg" title="apt_pkg"><tt class="xref py py-mod docutils literal"><span class="pre">apt_pkg</span></tt></a> extension. This
is an important step forward and makes writing code much easier, because you
can see the classes without having to create an object first. It also makes
it easier to talk about those classes, because they have a real name now.</p>
<p>The 0.7 series shipped many functions for creating new objects, because the
classes were not exported. In 0.7.100, the classes themselves replace those
functions, as you can see in the following table.</p>
<table border="1" class="docutils">
<colgroup>
<col width="53%" />
<col width="47%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Function</th>
<th class="head">Replacing class</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><tt class="xref py py-func docutils literal"><span class="pre">apt_pkg.GetAcquire()</span></tt></td>
<td><a class="reference internal" href="../library/apt_pkg.html#apt_pkg.Acquire" title="apt_pkg.Acquire"><tt class="xref py py-class docutils literal"><span class="pre">apt_pkg.Acquire</span></tt></a></td>
</tr>
<tr class="row-odd"><td><tt class="xref py py-func docutils literal"><span class="pre">apt_pkg.GetCache()</span></tt></td>
<td><a class="reference internal" href="../library/apt_pkg.html#apt_pkg.Cache" title="apt_pkg.Cache"><tt class="xref py py-class docutils literal"><span class="pre">apt_pkg.Cache</span></tt></a></td>
</tr>
<tr class="row-even"><td><tt class="xref py py-func docutils literal"><span class="pre">apt_pkg.GetCdrom()</span></tt></td>
<td><a class="reference internal" href="../library/apt_pkg.html#apt_pkg.Cdrom" title="apt_pkg.Cdrom"><tt class="xref py py-class docutils literal"><span class="pre">apt_pkg.Cdrom</span></tt></a></td>
</tr>
<tr class="row-odd"><td><tt class="xref py py-func docutils literal"><span class="pre">apt_pkg.GetDepCache()</span></tt></td>
<td><a class="reference internal" href="../library/apt_pkg.html#apt_pkg.DepCache" title="apt_pkg.DepCache"><tt class="xref py py-class docutils literal"><span class="pre">apt_pkg.DepCache</span></tt></a></td>
</tr>
<tr class="row-even"><td><tt class="xref py py-func docutils literal"><span class="pre">apt_pkg.GetPackageManager()</span></tt></td>
<td><a class="reference internal" href="../library/apt_pkg.html#apt_pkg.PackageManager" title="apt_pkg.PackageManager"><tt class="xref py py-class docutils literal"><span class="pre">apt_pkg.PackageManager</span></tt></a></td>
</tr>
<tr class="row-odd"><td><tt class="xref py py-func docutils literal"><span class="pre">apt_pkg.GetPkgAcqFile()</span></tt></td>
<td><a class="reference internal" href="../library/apt_pkg.html#apt_pkg.AcquireFile" title="apt_pkg.AcquireFile"><tt class="xref py py-class docutils literal"><span class="pre">apt_pkg.AcquireFile</span></tt></a></td>
</tr>
<tr class="row-even"><td><tt class="xref py py-func docutils literal"><span class="pre">apt_pkg.GetPkgActionGroup()</span></tt></td>
<td><a class="reference internal" href="../library/apt_pkg.html#apt_pkg.ActionGroup" title="apt_pkg.ActionGroup"><tt class="xref py py-class docutils literal"><span class="pre">apt_pkg.ActionGroup</span></tt></a></td>
</tr>
<tr class="row-odd"><td><tt class="xref py py-func docutils literal"><span class="pre">apt_pkg.GetPkgProblemResolver()</span></tt></td>
<td><a class="reference internal" href="../library/apt_pkg.html#apt_pkg.ProblemResolver" title="apt_pkg.ProblemResolver"><tt class="xref py py-class docutils literal"><span class="pre">apt_pkg.ProblemResolver</span></tt></a></td>
</tr>
<tr class="row-even"><td><tt class="xref py py-func docutils literal"><span class="pre">apt_pkg.GetPkgRecords()</span></tt></td>
<td><a class="reference internal" href="../library/apt_pkg.html#apt_pkg.PackageRecords" title="apt_pkg.PackageRecords"><tt class="xref py py-class docutils literal"><span class="pre">apt_pkg.PackageRecords</span></tt></a></td>
</tr>
<tr class="row-odd"><td><tt class="xref py py-func docutils literal"><span class="pre">apt_pkg.GetPkgSourceList()</span></tt></td>
<td><a class="reference internal" href="../library/apt_pkg.html#apt_pkg.SourceList" title="apt_pkg.SourceList"><tt class="xref py py-class docutils literal"><span class="pre">apt_pkg.SourceList</span></tt></a></td>
</tr>
<tr class="row-even"><td><tt class="xref py py-func docutils literal"><span class="pre">apt_pkg.GetPkgSrcRecords()</span></tt></td>
<td><a class="reference internal" href="../library/apt_pkg.html#apt_pkg.SourceRecords" title="apt_pkg.SourceRecords"><tt class="xref py py-class docutils literal"><span class="pre">apt_pkg.SourceRecords</span></tt></a></td>
</tr>
<tr class="row-odd"><td><tt class="xref py py-func docutils literal"><span class="pre">apt_pkg.ParseSection()</span></tt></td>
<td><a class="reference internal" href="../library/apt_pkg.html#apt_pkg.TagSection" title="apt_pkg.TagSection"><tt class="xref py py-class docutils literal"><span class="pre">apt_pkg.TagSection</span></tt></a></td>
</tr>
<tr class="row-even"><td><tt class="xref py py-func docutils literal"><span class="pre">apt_pkg.ParseTagFile()</span></tt></td>
<td><a class="reference internal" href="../library/apt_pkg.html#apt_pkg.TagFile" title="apt_pkg.TagFile"><tt class="xref py py-class docutils literal"><span class="pre">apt_pkg.TagFile</span></tt></a></td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="complete-rename-of-functions-methods-and-attributes">
<h2>Complete rename of functions, methods and attributes<a class="headerlink" href="#complete-rename-of-functions-methods-and-attributes" title="Permalink to this headline"></a></h2>
<p>In May 2008, Ben Finney reported bug 481061 against the python-apt package,
asking for PEP8 conformant names. With the release of python-apt 0.7.100, this
is finally happening.</p>
</div>
<div class="section" id="context-managers-for-the-with-statement">
<h2>Context managers for the <tt class="xref std std-keyword docutils literal"><span class="pre">with</span></tt> statement<a class="headerlink" href="#context-managers-for-the-with-statement" title="Permalink to this headline"></a></h2>
<p>This is not a real big change, but it&#8217;s good to have it:
<a class="reference internal" href="../library/apt_pkg.html#apt_pkg.ActionGroup" title="apt_pkg.ActionGroup"><tt class="xref py py-class docutils literal"><span class="pre">apt_pkg.ActionGroup</span></tt></a> can now be used as a context manager for the
<tt class="xref std std-keyword docutils literal"><span class="pre">with</span></tt> statement. This makes it more obvious that you are using an
action group, and is just cooler:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="k">with</span> <span class="n">apt_pkg</span><span class="o">.</span><span class="n">ActionGroup</span><span class="p">(</span><span class="n">depcache</span><span class="p">):</span>
    <span class="k">for</span> <span class="n">package</span> <span class="ow">in</span> <span class="n">my_selected_packages</span><span class="p">:</span>
        <span class="n">depcache</span><span class="o">.</span><span class="n">mark_install</span><span class="p">(</span><span class="n">package</span><span class="p">)</span>
</pre></div>
</div>
<p>This also works for <tt class="xref py py-class docutils literal"><span class="pre">apt.Cache</span></tt>:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="k">with</span> <span class="n">cache</span><span class="o">.</span><span class="n">actiongroup</span><span class="p">():</span> <span class="c"># cache is an Instance of apt.Cache</span>
    <span class="k">for</span> <span class="n">package</span> <span class="ow">in</span> <span class="n">my_selected_packages</span><span class="p">:</span>
        <span class="n">package</span><span class="o">.</span><span class="n">mark_install</span><span class="p">()</span> <span class="c"># Instance of apt.Package</span>
</pre></div>
</div>
<p>Yet another context manager is available for locking the package system:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="k">with</span> <span class="n">apt_pkg</span><span class="o">.</span><span class="n">SystemLock</span><span class="p">():</span>
    <span class="c"># do your stuff here</span>
    <span class="k">pass</span>
</pre></div>
</div>
<p>There is also one for file based locking:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="k">with</span> <span class="n">apt_pkg</span><span class="o">.</span><span class="n">FileLock</span><span class="p">(</span><span class="n">filename</span><span class="p">):</span>
    <span class="c"># do your stuff here</span>
    <span class="k">pass</span>
</pre></div>
</div>
</div>
<div class="section" id="unification-of-dependency-handling">
<h2>Unification of dependency handling<a class="headerlink" href="#unification-of-dependency-handling" title="Permalink to this headline"></a></h2>
<p>In apt 0.7.XX, there were three different return types of functions parsing
dependencies.</p>
<p>First of all, there were <tt class="xref py py-func docutils literal"><span class="pre">apt_pkg.ParseDepends()</span></tt> and
<tt class="xref py py-func docutils literal"><span class="pre">apt_pkg.ParseSrcDepends()</span></tt> which returned a list of or groups (which
are lists themselves) which contain tuples in the format <tt class="docutils literal"><span class="pre">(package,ver,op)</span></tt>,
whereas op is one of &#8220;&lt;=&#8221;,&#8221;&gt;=&#8221;,&#8221;&lt;&lt;&#8221;,&#8221;&gt;&gt;&#8221;,&#8221;=&#8221;,&#8221;!=&#8221;.</p>
<p>Secondly, there was Package.DependsListStr which returned a dictionary mapping
the type of the dependency (e.g. &#8216;Depends&#8217;, &#8216;Recommends&#8217;) to a list similar to
those of <tt class="xref py py-func docutils literal"><span class="pre">apt_pkg.ParseDepends()</span></tt>. The only difference was that the
values &#8220;&gt;&gt;&#8221;, &#8220;&lt;&lt;&#8221; of op are &#8220;&gt;&#8221;, &#8220;&lt;&#8221; instead.</p>
<p>Thirdly, there was SourceRecords.BuildDepends, which returned a simple list
of tuples in the format <tt class="docutils literal"><span class="pre">(package,</span> <span class="pre">version,</span> <span class="pre">op,</span> <span class="pre">type)</span></tt>, whereas <tt class="docutils literal"><span class="pre">op</span></tt> was
the integer representation of those &#8220;&gt;&gt;&#8221;, &#8220;&lt;&lt;&#8221; actions and <tt class="docutils literal"><span class="pre">type</span></tt> an integer
representing the type of the dependency (e.g. &#8216;Build-Depends&#8217;). The whole
format was almost useless from the Python perspective because the string
representations or constants for checking the values were not exported.</p>
<p>python-apt 0.7.100 puts an end to this confusion and uses one basic format, which
is the format known from Package.DependsListStr. The format change only applies
to the new functions and attributes, i.e. <tt class="xref py py-attr docutils literal"><span class="pre">SourceRecords.build_depends</span></tt>
will now return a dict, whereas <tt class="xref py py-attr docutils literal"><span class="pre">SourceRecords.BuildDepends</span></tt> will still
return the classic format. The functions <a class="reference internal" href="../library/apt_pkg.html#apt_pkg.parse_depends" title="apt_pkg.parse_depends"><tt class="xref py py-func docutils literal"><span class="pre">apt_pkg.parse_depends()</span></tt></a> and
<a class="reference internal" href="../library/apt_pkg.html#apt_pkg.parse_src_depends" title="apt_pkg.parse_src_depends"><tt class="xref py py-func docutils literal"><span class="pre">apt_pkg.parse_src_depends()</span></tt></a> now use the same values for <tt class="docutils literal"><span class="pre">op</span></tt> as
<tt class="xref py py-attr docutils literal"><span class="pre">Package.DependsListStr</span></tt> does.</p>
<p>Example:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">s</span> <span class="o">=</span> <span class="n">apt_pkg</span><span class="o">.</span><span class="n">SourceRecords</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">s</span><span class="o">.</span><span class="n">lookup</span><span class="p">(</span><span class="s">&quot;apt&quot;</span><span class="p">)</span>
<span class="go">1</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">s</span><span class="o">.</span><span class="n">build_depends</span>
<span class="go">{&#39;Build-Depends&#39;: [[(&#39;debhelper&#39;, &#39;5.0&#39;, &#39;&gt;=&#39;)],</span>
<span class="go">                   [(&#39;libdb-dev&#39;, &#39;&#39;, &#39;&#39;)],</span>
<span class="go">                   [(&#39;gettext&#39;, &#39;0.12&#39;, &#39;&gt;=&#39;)],</span>
<span class="go">                   [(&#39;libcurl4-gnutls-dev&#39;, &#39;&#39;, &#39;&#39;),</span>
<span class="go">                    (&#39;libcurl3-gnutls-dev&#39;, &#39;7.15.5&#39;, &#39;&gt;=&#39;)],</span>
<span class="go">                   [(&#39;debiandoc-sgml&#39;, &#39;&#39;, &#39;&#39;)],</span>
<span class="go">                   [(&#39;docbook-utils&#39;, &#39;0.6.12&#39;, &#39;&gt;=&#39;)],</span>
<span class="go">                   [(&#39;xsltproc&#39;, &#39;&#39;, &#39;&#39;)],</span>
<span class="go">                   [(&#39;docbook-xsl&#39;, &#39;&#39;, &#39;&#39;)],</span>
<span class="go">                   [(&#39;xmlto&#39;, &#39;&#39;, &#39;&#39;)]]}</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">s</span><span class="o">.</span><span class="n">BuildDepends</span>
<span class="go">[(&#39;debhelper&#39;, &#39;5.0&#39;, 2, 0),</span>
<span class="go">(&#39;libdb-dev&#39;, &#39;&#39;, 0, 0),</span>
<span class="go">(&#39;gettext&#39;, &#39;0.12&#39;, 2, 0),</span>
<span class="go">(&#39;libcurl4-gnutls-dev&#39;, &#39;&#39;, 16, 0),</span>
<span class="go">(&#39;libcurl3-gnutls-dev&#39;, &#39;7.15.5&#39;, 2, 0),</span>
<span class="go">(&#39;debiandoc-sgml&#39;, &#39;&#39;, 0, 0),</span>
<span class="go">(&#39;docbook-utils&#39;, &#39;0.6.12&#39;, 2, 0),</span>
<span class="go">(&#39;xsltproc&#39;, &#39;&#39;, 0, 0),</span>
<span class="go">(&#39;docbook-xsl&#39;, &#39;&#39;, 0, 0),</span>
<span class="go">(&#39;xmlto&#39;, &#39;&#39;, 0, 0)]</span>
</pre></div>
</div>
</div>
<div class="section" id="c-headers">
<h2>C++ headers<a class="headerlink" href="#c-headers" title="Permalink to this headline"></a></h2>
<p>The 0.7.100 release introduces python-apt-dev which provides headers for
developers to provide Python support in the libapt-pkg-using application.</p>
</div>
<div class="section" id="redesign-of-apt-inst">
<h2>Redesign of <a class="reference internal" href="../library/apt_inst.html#module-apt_inst" title="apt_inst"><tt class="xref py py-mod docutils literal"><span class="pre">apt_inst</span></tt></a><a class="headerlink" href="#redesign-of-apt-inst" title="Permalink to this headline"></a></h2>
<p>The 0.7.100 series redesigns the <a class="reference internal" href="../library/apt_inst.html#module-apt_inst" title="apt_inst"><tt class="xref py py-mod docutils literal"><span class="pre">apt_inst</span></tt></a> module to provide
more flexible classes replacing the older functions. The older functions
are still available in Python 2 builds, but are deprecated and will be
removed in the future.</p>
</div>
<div class="section" id="other-changes">
<h2>Other changes<a class="headerlink" href="#other-changes" title="Permalink to this headline"></a></h2>
<p>This release of python-apt also features several other, smaller changes:</p>
<blockquote>
<div><ul class="simple">
<li>Reduced memory usage by making <tt class="xref py py-class docutils literal"><span class="pre">apt.Cache</span></tt> create
<tt class="xref py py-class docutils literal"><span class="pre">apt.Package()</span></tt> object dynamically, instead of creating all of
them during the cache initialization.</li>
<li>Support to set the candidate version in <a class="reference internal" href="../library/apt.package.html#apt.package.Package" title="apt.package.Package"><tt class="xref py py-class docutils literal"><span class="pre">apt.package.Package</span></tt></a></li>
<li>Support for reading gzip-compressed files in apt_pkg.TagFile.</li>
<li>Various changes to <a class="reference internal" href="../library/apt.debfile.html#module-apt.debfile" title="apt.debfile"><tt class="xref py py-mod docutils literal"><span class="pre">apt.debfile</span></tt></a> have been merged from gdebi.</li>
</ul>
</div></blockquote>
<p>There have been various other changes, see the changelog for a complete list
of changes.</p>
</div>
<div class="section" id="porting-your-applications-to-the-new-python-apt-api">
<h2>Porting your applications to the new python-apt API<a class="headerlink" href="#porting-your-applications-to-the-new-python-apt-api" title="Permalink to this headline"></a></h2>
<p>Porting your application to the new python-apt API may be trivial. You
should download the source tarball of python-apt and run the tool
utils/migrate-0.8 over your code:</p>
<div class="highlight-python"><pre>utils/migrate-0.8.py -c myapp.py mypackage/</pre>
</div>
<p>This will search your code for places where possibly deprecated names are
used. Using the argument <tt class="docutils literal"><span class="pre">-c</span></tt>, you can turn colorized output on.</p>
<p>Now that you know which parts of your code have to be changed, you have to know
how to do this. For classes, please look at the table. For all attributes,
methods, functions, and their parameters the following rules apply:</p>
<blockquote>
<div><ol class="arabic simple">
<li>Replace leading [A-Z] with [a-z] (e.g DescURI =&gt; descURI)</li>
<li>Replace multiple [A-Z] with [A-Z][a-z] (e.g. descURI =&gt; descUri)</li>
<li>Replace every [A-Z] with the corresponding [a-z] (descUri =&gt; desc_uri)</li>
</ol>
</div></blockquote>
<p>As an exception, refixes such as &#8216;de&#8217; (e.g. &#8216;dequote&#8217;) or &#8216;un&#8217; (e.g. &#8216;unlock&#8217;)
are normally not separated by underscores from the next word. There are also
some other exceptions which are listed here, and apply to any name containing
this word: <strong>filename</strong>, <strong>filesize</strong>, <strong>destdir</strong>, <strong>destfile</strong>, <strong>dequote</strong>,
<strong>unlock</strong>, <strong>reinstall</strong>, <strong>pinfile</strong>, <strong>REINSTREQ</strong>, <strong>UNPACKED</strong>,
<strong>parse_commandline</strong>.</p>
</div>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar">
        <div class="sphinxsidebarwrapper">
  <h3><a href="../contents.html">Table Of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">What&#8217;s New In python-apt 0.7.100</a><ul>
<li><a class="reference internal" href="#support-for-python-3">Support for Python 3</a></li>
<li><a class="reference internal" href="#real-classes-in-apt-pkg">Real classes in <tt class="docutils literal"><span class="pre">apt_pkg</span></tt></a></li>
<li><a class="reference internal" href="#complete-rename-of-functions-methods-and-attributes">Complete rename of functions, methods and attributes</a></li>
<li><a class="reference internal" href="#context-managers-for-the-with-statement">Context managers for the <tt class="docutils literal"><span class="pre">with</span></tt> statement</a></li>
<li><a class="reference internal" href="#unification-of-dependency-handling">Unification of dependency handling</a></li>
<li><a class="reference internal" href="#c-headers">C++ headers</a></li>
<li><a class="reference internal" href="#redesign-of-apt-inst">Redesign of <tt class="docutils literal"><span class="pre">apt_inst</span></tt></a></li>
<li><a class="reference internal" href="#other-changes">Other changes</a></li>
<li><a class="reference internal" href="#porting-your-applications-to-the-new-python-apt-api">Porting your applications to the new python-apt API</a></li>
</ul>
</li>
</ul>

  <h4>Previous topic</h4>
  <p class="topless"><a href="index.html"
                        title="previous chapter">What&#8217;s new in python-apt</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="0.8.0.html"
                        title="next chapter">What&#8217;s New In python-apt 0.8</a></p>
  <h3>This Page</h3>
  <ul class="this-page-menu">
    <li><a href="../_sources/whatsnew/0.7.100.txt"
           rel="nofollow">Show Source</a></li>
  </ul>
<div id="searchbox" style="display: none">
  <h3>Quick search</h3>
    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" />
      <input type="submit" value="Go" />
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
    <p class="searchtip" style="font-size: 90%">
    Enter search terms or a module, class or function name.
    </p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="../py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="0.8.0.html" title="What’s New In python-apt 0.8"
             >next</a> |</li>
        <li class="right" >
          <a href="index.html" title="What’s new in python-apt"
             >previous</a> |</li>
        <li><img src="../_static/py.png" alt=""
                 style="vertical-align: middle; margin-top: -1px"/></li>
        <li><a href="../index.html">python-apt 0.8.3ubuntu7 documentation</a> &raquo;</li>

          <li><a href="index.html" >What&#8217;s new in python-apt</a> &raquo;</li> 
      </ul>
    </div>
    <div class="footer">
        &copy; Copyright 2009-2010, Julian Andres Klode &lt;jak@debian.org&gt;.
      Last updated on Apr 18, 2012.
      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
    </div>
  </body>
</html>