snipt

Ctrl+h for KB shortcuts
Notice: Snipt is moving away from free accounts on May 1st, 2014. Read more about the transition here.
#28967

Python

patched Routes mapper

# -*- coding: utf-8 -*-
import routes

class Mapper(routes.Mapper):
    """ ???????????? Mapper ????????????? '/' ? ????? ????,
        ???? ???????????
    """
    def connect(self, *args, **kargs):
        i = 1 if len(args) > 1 else 0
        if not args[i].endswith('/'):
            args = list(args)
            args[i] += '/'
        super(Mapper, self).connect(*args, **kargs)

    def _match(self, uri, environ):
        if not uri.endswith('/'):
            uri += '/'
        return super(Mapper, self)._match(uri, environ)
https://snipt.net/embed/635ef3373f1299855d20e819470a266e/
https://snipt.net/raw/635ef3373f1299855d20e819470a266e/
635ef3373f1299855d20e819470a266e
python
Python
18
2014-04-25T00:36:48
True
False
/api/public/snipt/28967/
patched-routes-mapper
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><a href="#L-1"> 1</a> <a href="#L-2"> 2</a> <a href="#L-3"> 3</a> <a href="#L-4"> 4</a> <a href="#L-5"> 5</a> <a href="#L-6"> 6</a> <a href="#L-7"> 7</a> <a href="#L-8"> 8</a> <a href="#L-9"> 9</a> <a href="#L-10">10</a> <a href="#L-11">11</a> <a href="#L-12">12</a> <a href="#L-13">13</a> <a href="#L-14">14</a> <a href="#L-15">15</a> <a href="#L-16">16</a> <a href="#L-17">17</a> <a href="#L-18">18</a></pre></div></td><td class="code"><div class="highlight"><pre><span id="L-1"><a name="L-1"></a><span class="c"># -*- coding: utf-8 -*-</span> </span><span id="L-2"><a name="L-2"></a><span class="kn">import</span> <span class="nn">routes</span> </span><span id="L-3"><a name="L-3"></a> </span><span id="L-4"><a name="L-4"></a><span class="k">class</span> <span class="nc">Mapper</span><span class="p">(</span><span class="n">routes</span><span class="o">.</span><span class="n">Mapper</span><span class="p">):</span> </span><span id="L-5"><a name="L-5"></a> <span class="sd">&quot;&quot;&quot; ???????????? Mapper ????????????? &#39;/&#39; ? ????? ????,</span> </span><span id="L-6"><a name="L-6"></a><span class="sd"> ???? ???????????</span> </span><span id="L-7"><a name="L-7"></a><span class="sd"> &quot;&quot;&quot;</span> </span><span id="L-8"><a name="L-8"></a> <span class="k">def</span> <span class="nf">connect</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kargs</span><span class="p">):</span> </span><span id="L-9"><a name="L-9"></a> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span> <span class="k">else</span> <span class="mi">0</span> </span><span id="L-10"><a name="L-10"></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">args</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s">&#39;/&#39;</span><span class="p">):</span> </span><span id="L-11"><a name="L-11"></a> <span class="n">args</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> </span><span id="L-12"><a name="L-12"></a> <span class="n">args</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+=</span> <span class="s">&#39;/&#39;</span> </span><span id="L-13"><a name="L-13"></a> <span class="nb">super</span><span class="p">(</span><span class="n">Mapper</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kargs</span><span class="p">)</span> </span><span id="L-14"><a name="L-14"></a> </span><span id="L-15"><a name="L-15"></a> <span class="k">def</span> <span class="nf">_match</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">uri</span><span class="p">,</span> <span class="n">environ</span><span class="p">):</span> </span><span id="L-16"><a name="L-16"></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">uri</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s">&#39;/&#39;</span><span class="p">):</span> </span><span id="L-17"><a name="L-17"></a> <span class="n">uri</span> <span class="o">+=</span> <span class="s">&#39;/&#39;</span> </span><span id="L-18"><a name="L-18"></a> <span class="k">return</span> <span class="nb">super</span><span class="p">(</span><span class="n">Mapper</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">_match</span><span class="p">(</span><span class="n">uri</span><span class="p">,</span> <span class="n">environ</span><span class="p">)</span> </span></pre></div> </td></tr></table>
patch, python, routes