Sophie

Sophie

distrib > Mageia > 7 > armv7hl > media > core-release > by-pkgid > 40e2f31081093569df699eb11a858fc8 > files > 148

python-copr-doc-1.94-1.mga7.noarch.rpm



<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  
  <title>Pagination &mdash; python-copr 1.63 documentation</title>
  

  
  
  
  

  
  <script type="text/javascript" src="../_static/js/modernizr.min.js"></script>
  
    
      <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></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>
        <script type="text/javascript" src="../_static/language_data.js"></script>
    
    <script type="text/javascript" src="../_static/js/theme.js"></script>

    

  
  <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
  <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="Working with proxies directly" href="working_with_proxies_directly.html" />
    <link rel="prev" title="Error handling" href="error_handling.html" /> 
</head>

<body class="wy-body-for-nav">

   
  <div class="wy-grid-for-nav">
    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search" >
          

          
            <a href="../index.html" class="icon icon-home"> python-copr
          

          
          </a>

          
            
            
              <div class="version">
                1.63
              </div>
            
          

          
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

          
        </div>

        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
          
            
            
              
            
            
              <ul>
<li class="toctree-l1"><a class="reference internal" href="../installation.html">Installation</a></li>
</ul>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../ClientV1.html">Legacy client</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ClientV2.html">Client version 2</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../ClientV3.html">Client version 3</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../ClientV3.html#example-usage">Example usage</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="../ClientV3.html#quick-overview">Quick overview</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="client_initialization.html">Client initialization</a></li>
<li class="toctree-l3"><a class="reference internal" href="data_structures.html">Data structures</a></li>
<li class="toctree-l3"><a class="reference internal" href="error_handling.html">Error handling</a></li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">Pagination</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#pagination-parameters">Pagination parameters</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="working_with_proxies_directly.html">Working with proxies directly</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../ClientV3.html#resources-info">Resources info</a></li>
<li class="toctree-l2"><a class="reference internal" href="../ClientV3.html#parameters">Parameters</a></li>
</ul>
</li>
</ul>

            
          
        </div>
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" aria-label="top navigation">
        
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="../index.html">python-copr</a>
        
      </nav>


      <div class="wy-nav-content">
        
        <div class="rst-content">
        
          















<div role="navigation" aria-label="breadcrumbs navigation">

  <ul class="wy-breadcrumbs">
    
      <li><a href="../index.html">Docs</a> &raquo;</li>
        
          <li><a href="../ClientV3.html">Client version 3</a> &raquo;</li>
        
      <li>Pagination</li>
    
    
      <li class="wy-breadcrumbs-aside">
        
            
            <a href="../_sources/client_v3/pagination.rst.txt" rel="nofollow"> View page source</a>
          
        
      </li>
    
  </ul>

  
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
            
  <div class="section" id="pagination">
<span id="id1"></span><h1>Pagination<a class="headerlink" href="#pagination" title="Permalink to this headline">¶</a></h1>
<p>Pagination is not enforced, so users don’t need to care about it if they don’t want to. In this code sample,
all packages from given project are returned, regardless their number.</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">copr.v3</span> <span class="kn">import</span> <span class="n">Client</span>
<span class="n">client</span> <span class="o">=</span> <span class="n">Client</span><span class="p">(</span><span class="n">config</span><span class="p">)</span>

<span class="n">packages</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="n">package_proxy</span><span class="o">.</span><span class="n">get_list</span><span class="p">(</span><span class="s2">&quot;@copr&quot;</span><span class="p">,</span> <span class="s2">&quot;copr&quot;</span><span class="p">)</span>
<span class="k">print</span><span class="p">(</span><span class="n">packages</span><span class="p">)</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[</span><span class="n">Munch</span><span class="p">({</span><span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">&#39;ownername&#39;</span><span class="p">:</span> <span class="s1">&#39;@copr&#39;</span><span class="p">,</span> <span class="s1">&#39;projectname&#39;</span><span class="p">:</span> <span class="s1">&#39;copr&#39;</span><span class="p">,</span> <span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="s1">&#39;pending&#39;</span><span class="p">,</span> <span class="o">...</span><span class="p">}),</span>
 <span class="n">Munch</span><span class="p">({</span><span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span> <span class="s1">&#39;ownername&#39;</span><span class="p">:</span> <span class="s1">&#39;@copr&#39;</span><span class="p">,</span> <span class="s1">&#39;projectname&#39;</span><span class="p">:</span> <span class="s1">&#39;copr&#39;</span><span class="p">,</span> <span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="s1">&#39;pending&#39;</span><span class="p">,</span> <span class="o">...</span><span class="p">}),</span>
 <span class="n">Munch</span><span class="p">({</span><span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="s1">&#39;ownername&#39;</span><span class="p">:</span> <span class="s1">&#39;@copr&#39;</span><span class="p">,</span> <span class="s1">&#39;projectname&#39;</span><span class="p">:</span> <span class="s1">&#39;copr&#39;</span><span class="p">,</span> <span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="s1">&#39;importing&#39;</span><span class="p">,</span> <span class="o">...</span><span class="p">}),</span>
 <span class="n">Munch</span><span class="p">({</span><span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="mi">4</span><span class="p">,</span> <span class="s1">&#39;ownername&#39;</span><span class="p">:</span> <span class="s1">&#39;@copr&#39;</span><span class="p">,</span> <span class="s1">&#39;projectname&#39;</span><span class="p">:</span> <span class="s1">&#39;copr&#39;</span><span class="p">,</span> <span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="s1">&#39;importing&#39;</span><span class="p">,</span> <span class="o">...</span><span class="p">}),</span>
 <span class="n">Munch</span><span class="p">({</span><span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="mi">5</span><span class="p">,</span> <span class="s1">&#39;ownername&#39;</span><span class="p">:</span> <span class="s1">&#39;@copr&#39;</span><span class="p">,</span> <span class="s1">&#39;projectname&#39;</span><span class="p">:</span> <span class="s1">&#39;copr&#39;</span><span class="p">,</span> <span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="s1">&#39;canceled&#39;</span><span class="p">,</span> <span class="o">...</span><span class="p">})]</span>
</pre></div>
</div>
<p>However, in some cases, it may be useful to obtain just a limited number of objects. Querying all builds from a project
with hundreds of thousands of them may be painfully slow or even timeout. And if all of them are not even needed, it is
a huge waste of resources. It all depends on the specific use-case. When it is useful, you can query limited
and/or ordered number of objects.</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">pagination</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="s2">&quot;name&quot;</span><span class="p">}</span>
<span class="n">packages</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="n">package_proxy</span><span class="o">.</span><span class="n">get_list</span><span class="p">(</span><span class="s2">&quot;@copr&quot;</span><span class="p">,</span> <span class="s2">&quot;copr&quot;</span><span class="p">,</span> <span class="n">pagination</span><span class="o">=</span><span class="n">pagination</span><span class="p">)</span>
<span class="k">print</span><span class="p">(</span><span class="n">packages</span><span class="p">)</span>
<span class="k">print</span><span class="p">(</span><span class="n">packages</span><span class="o">.</span><span class="n">meta</span><span class="p">)</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[</span><span class="n">Munch</span><span class="p">({</span><span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">&#39;ownername&#39;</span><span class="p">:</span> <span class="s1">&#39;@copr&#39;</span><span class="p">,</span> <span class="s1">&#39;projectname&#39;</span><span class="p">:</span> <span class="s1">&#39;copr&#39;</span><span class="p">,</span> <span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="s1">&#39;pending&#39;</span><span class="p">,</span> <span class="o">...</span><span class="p">}),</span>
 <span class="n">Munch</span><span class="p">({</span><span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span> <span class="s1">&#39;ownername&#39;</span><span class="p">:</span> <span class="s1">&#39;@copr&#39;</span><span class="p">,</span> <span class="s1">&#39;projectname&#39;</span><span class="p">:</span> <span class="s1">&#39;copr&#39;</span><span class="p">,</span> <span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="s1">&#39;pending&#39;</span><span class="p">,</span> <span class="o">...</span><span class="p">}),</span>
 <span class="n">Munch</span><span class="p">({</span><span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="s1">&#39;ownername&#39;</span><span class="p">:</span> <span class="s1">&#39;@copr&#39;</span><span class="p">,</span> <span class="s1">&#39;projectname&#39;</span><span class="p">:</span> <span class="s1">&#39;copr&#39;</span><span class="p">,</span> <span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="s1">&#39;importing&#39;</span><span class="p">,</span> <span class="o">...</span><span class="p">})]</span>
<span class="n">Munch</span><span class="p">({</span><span class="sa">u</span><span class="s1">&#39;offset&#39;</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="sa">u</span><span class="s1">&#39;limit&#39;</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="sa">u</span><span class="s1">&#39;order_type&#39;</span><span class="p">:</span> <span class="sa">u</span><span class="s1">&#39;ASC&#39;</span><span class="p">,</span> <span class="sa">u</span><span class="s1">&#39;order&#39;</span><span class="p">:</span> <span class="sa">u</span><span class="s1">&#39;id&#39;</span><span class="p">})</span>
</pre></div>
</div>
<p>And finally, in some cases, it may be useful to iterate through all objects, but not obtaining them all at once
(e.g. when projects are so large, that requesting everything timeouts).</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">copr.v3</span> <span class="kn">import</span> <span class="n">next_page</span>

<span class="n">package_page</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="n">package_proxy</span><span class="o">.</span><span class="n">get_list</span><span class="p">(</span><span class="s2">&quot;@copr&quot;</span><span class="p">,</span> <span class="s2">&quot;copr&quot;</span><span class="p">,</span> <span class="n">pagination</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="mi">3</span><span class="p">})</span>
<span class="k">while</span> <span class="n">package_page</span><span class="p">:</span>
    <span class="k">for</span> <span class="n">package</span> <span class="ow">in</span> <span class="n">package_page</span><span class="p">:</span>
        <span class="k">print</span><span class="p">(</span><span class="n">package</span><span class="p">)</span>
    <span class="k">print</span><span class="p">(</span><span class="s2">&quot;---&quot;</span><span class="p">)</span>
    <span class="n">package_page</span> <span class="o">=</span> <span class="n">next_page</span><span class="p">(</span><span class="n">package_page</span><span class="p">)</span>
</pre></div>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Munch</span><span class="p">({</span><span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">&#39;ownername&#39;</span><span class="p">:</span> <span class="s1">&#39;@copr&#39;</span><span class="p">,</span> <span class="s1">&#39;projectname&#39;</span><span class="p">:</span> <span class="s1">&#39;copr&#39;</span><span class="p">,</span> <span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="s1">&#39;pending&#39;</span><span class="p">,</span> <span class="o">...</span><span class="p">})</span>
<span class="n">Munch</span><span class="p">({</span><span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span> <span class="s1">&#39;ownername&#39;</span><span class="p">:</span> <span class="s1">&#39;@copr&#39;</span><span class="p">,</span> <span class="s1">&#39;projectname&#39;</span><span class="p">:</span> <span class="s1">&#39;copr&#39;</span><span class="p">,</span> <span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="s1">&#39;pending&#39;</span><span class="p">,</span> <span class="o">...</span><span class="p">})</span>
<span class="n">Munch</span><span class="p">({</span><span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="s1">&#39;ownername&#39;</span><span class="p">:</span> <span class="s1">&#39;@copr&#39;</span><span class="p">,</span> <span class="s1">&#39;projectname&#39;</span><span class="p">:</span> <span class="s1">&#39;copr&#39;</span><span class="p">,</span> <span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="s1">&#39;importing&#39;</span><span class="p">,</span> <span class="o">...</span><span class="p">})</span>
<span class="o">---</span>
<span class="n">Munch</span><span class="p">({</span><span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="mi">4</span><span class="p">,</span> <span class="s1">&#39;ownername&#39;</span><span class="p">:</span> <span class="s1">&#39;@copr&#39;</span><span class="p">,</span> <span class="s1">&#39;projectname&#39;</span><span class="p">:</span> <span class="s1">&#39;copr&#39;</span><span class="p">,</span> <span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="s1">&#39;importing&#39;</span><span class="p">,</span> <span class="o">...</span><span class="p">})</span>
<span class="n">Munch</span><span class="p">({</span><span class="s1">&#39;id&#39;</span><span class="p">:</span> <span class="mi">5</span><span class="p">,</span> <span class="s1">&#39;ownername&#39;</span><span class="p">:</span> <span class="s1">&#39;@copr&#39;</span><span class="p">,</span> <span class="s1">&#39;projectname&#39;</span><span class="p">:</span> <span class="s1">&#39;copr&#39;</span><span class="p">,</span> <span class="s1">&#39;state&#39;</span><span class="p">:</span> <span class="s1">&#39;canceled&#39;</span><span class="p">,</span> <span class="o">...</span><span class="p">})</span>
</pre></div>
</div>
<div class="section" id="pagination-parameters">
<h2>Pagination parameters<a class="headerlink" href="#pagination-parameters" title="Permalink to this headline">¶</a></h2>
<table border="1" class="docutils">
<colgroup>
<col width="23%" />
<col width="26%" />
<col width="51%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Field</th>
<th class="head">Type</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td>limit</td>
<td>int</td>
<td>number of objects to obtain</td>
</tr>
<tr class="row-odd"><td>offset</td>
<td>int</td>
<td>number of objects from beginning to skip</td>
</tr>
<tr class="row-even"><td>order</td>
<td>str</td>
<td>sort objects by this property</td>
</tr>
<tr class="row-odd"><td>order_type</td>
<td>str</td>
<td>“ASC” or “DESC”</td>
</tr>
</tbody>
</table>
</div>
</div>


           </div>
           
          </div>
          <footer>
  
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
      
        <a href="working_with_proxies_directly.html" class="btn btn-neutral float-right" title="Working with proxies directly" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
      
      
        <a href="error_handling.html" class="btn btn-neutral float-left" title="Error handling" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
      
    </div>
  

  <hr/>

  <div role="contentinfo">
    <p>
        &copy; Copyright 2018, Red Hat, Inc.

    </p>
  </div>
  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 

</footer>

        </div>
      </div>

    </section>

  </div>
  


  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script>

  
  
    
   

</body>
</html>