Advertisement
raba93

Untitled

Jan 13th, 2017
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 213.77 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.   <meta http-equiv="content-type" content="text/html; charset=utf-8">
  5.   <meta name="robots" content="NONE,NOARCHIVE">
  6.   <title>IntegrityError at /api/repo/antonio/dyad/mark/ddddddd.recipe</title>
  7.   <style type="text/css">
  8.     html * { padding:0; margin:0; }
  9.     body * { padding:10px 20px; }
  10.     body * * { padding:0; }
  11.     body { font:small sans-serif; }
  12.     body>div { border-bottom:1px solid #ddd; }
  13.     h1 { font-weight:normal; }
  14.     h2 { margin-bottom:.8em; }
  15.     h2 span { font-size:80%; color:#666; font-weight:normal; }
  16.     h3 { margin:1em 0 .5em 0; }
  17.     h4 { margin:0 0 .5em 0; font-weight: normal; }
  18.     code, pre { font-size: 100%; white-space: pre-wrap; }
  19.     table { border:1px solid #ccc; border-collapse: collapse; width:100%; background:white; }
  20.     tbody td, tbody th { vertical-align:top; padding:2px 3px; }
  21.     thead th {
  22.       padding:1px 6px 1px 3px; background:#fefefe; text-align:left;
  23.       font-weight:normal; font-size:11px; border:1px solid #ddd;
  24.     }
  25.     tbody th { width:12em; text-align:right; color:#666; padding-right:.5em; }
  26.     table.vars { margin:5px 0 2px 40px; }
  27.     table.vars td, table.req td { font-family:monospace; }
  28.     table td.code { width:100%; }
  29.     table td.code pre { overflow:hidden; }
  30.     table.source th { color:#666; }
  31.     table.source td { font-family:monospace; white-space:pre; border-bottom:1px solid #eee; }
  32.     ul.traceback { list-style-type:none; color: #222; }
  33.     ul.traceback li.frame { padding-bottom:1em; color:#666; }
  34.     ul.traceback li.user { background-color:#e0e0e0; color:#000 }
  35.     div.context { padding:10px 0; overflow:hidden; }
  36.     div.context ol { padding-left:30px; margin:0 10px; list-style-position: inside; }
  37.     div.context ol li { font-family:monospace; white-space:pre; color:#777; cursor:pointer; padding-left: 2px; }
  38.     div.context ol li pre { display:inline; }
  39.     div.context ol.context-line li { color:#505050; background-color:#dfdfdf; padding: 3px 2px; }
  40.     div.context ol.context-line li span { position:absolute; right:32px; }
  41.     .user div.context ol.context-line li { background-color:#bbb; color:#000; }
  42.     .user div.context ol li { color:#666; }
  43.     div.commands { margin-left: 40px; }
  44.     div.commands a { color:#555; text-decoration:none; }
  45.     .user div.commands a { color: black; }
  46.     #summary { background: #ffc; }
  47.     #summary h2 { font-weight: normal; color: #666; }
  48.     #explanation { background:#eee; }
  49.     #template, #template-not-exist { background:#f6f6f6; }
  50.     #template-not-exist ul { margin: 0 0 10px 20px; }
  51.     #template-not-exist .postmortem-section { margin-bottom: 3px; }
  52.     #unicode-hint { background:#eee; }
  53.     #traceback { background:#eee; }
  54.     #requestinfo { background:#f6f6f6; padding-left:120px; }
  55.     #summary table { border:none; background:transparent; }
  56.     #requestinfo h2, #requestinfo h3 { position:relative; margin-left:-100px; }
  57.     #requestinfo h3 { margin-bottom:-1em; }
  58.     .error { background: #ffc; }
  59.     .specific { color:#cc3300; font-weight:bold; }
  60.     h2 span.commands { font-size:.7em;}
  61.     span.commands a:link {color:#5E5694;}
  62.     pre.exception_value { font-family: sans-serif; color: #666; font-size: 1.5em; margin: 10px 0 10px 0; }
  63.     .append-bottom { margin-bottom: 10px; }
  64.   </style>
  65.  
  66.   <script type="text/javascript">
  67.   //<!--
  68.    function getElementsByClassName(oElm, strTagName, strClassName){
  69.        // Written by Jonathan Snook, http://www.snook.ca/jon; Add-ons by Robert Nyman, http://www.robertnyman.com
  70.        var arrElements = (strTagName == "*" && document.all)? document.all :
  71.        oElm.getElementsByTagName(strTagName);
  72.        var arrReturnElements = new Array();
  73.        strClassName = strClassName.replace(/\-/g, "\-");
  74.        var oRegExp = new RegExp("(^|\s)" + strClassName + "(\s|$)");
  75.        var oElement;
  76.        for(var i=0; i<arrElements.length; i++){
  77.            oElement = arrElements[i];
  78.            if(oRegExp.test(oElement.className)){
  79.                arrReturnElements.push(oElement);
  80.            }
  81.        }
  82.        return (arrReturnElements)
  83.    }
  84.    function hideAll(elems) {
  85.      for (var e = 0; e < elems.length; e++) {
  86.        elems[e].style.display = 'none';
  87.      }
  88.    }
  89.    window.onload = function() {
  90.      hideAll(getElementsByClassName(document, 'table', 'vars'));
  91.      hideAll(getElementsByClassName(document, 'ol', 'pre-context'));
  92.      hideAll(getElementsByClassName(document, 'ol', 'post-context'));
  93.      hideAll(getElementsByClassName(document, 'div', 'pastebin'));
  94.    }
  95.    function toggle() {
  96.      for (var i = 0; i < arguments.length; i++) {
  97.        var e = document.getElementById(arguments[i]);
  98.        if (e) {
  99.          e.style.display = e.style.display == 'none' ? 'block': 'none';
  100.        }
  101.      }
  102.      return false;
  103.    }
  104.    function varToggle(link, id) {
  105.      toggle('v' + id);
  106.      var s = link.getElementsByTagName('span')[0];
  107.      var uarr = String.fromCharCode(0x25b6);
  108.      var darr = String.fromCharCode(0x25bc);
  109.      s.textContent = s.textContent == uarr ? darr : uarr;
  110.      return false;
  111.    }
  112.    function switchPastebinFriendly(link) {
  113.      s1 = "Switch to copy-and-paste view";
  114.      s2 = "Switch back to interactive view";
  115.      link.textContent = link.textContent.trim() == s1 ? s2: s1;
  116.      toggle('browserTraceback', 'pastebinTraceback');
  117.      return false;
  118.    }
  119.    //-->
  120.   </script>
  121.  
  122. </head>
  123. <body>
  124. <div id="summary">
  125.   <h1>IntegrityError at /api/repo/antonio/dyad/mark/ddddddd.recipe</h1>
  126.   <pre class="exception_value">duplicate key value violates unique constraint &quot;community_mark_entity_ct_id_4145a28e_uniq&quot;
  127. DETAIL:  Key (entity_ct_id, entity_id, name, creator_id)=(18, b3c0ecec-ccde-5bda-9a0d-f0e745b02199, testMark2, 324e6020-e253-5b8e-8871-883ec17d0d45) already exists.
  128. </pre>
  129.   <table class="meta">
  130.  
  131.     <tr>
  132.       <th>Request Method:</th>
  133.       <td>PUT</td>
  134.     </tr>
  135.     <tr>
  136.       <th>Request URL:</th>
  137.       <td>https://dev.datagator.org/api/repo/antonio/dyad/mark/ddddddd.recipe</td>
  138.     </tr>
  139.  
  140.     <tr>
  141.       <th>Django Version:</th>
  142.       <td>1.10.4</td>
  143.     </tr>
  144.  
  145.     <tr>
  146.       <th>Exception Type:</th>
  147.       <td>IntegrityError</td>
  148.     </tr>
  149.  
  150.  
  151.     <tr>
  152.       <th>Exception Value:</th>
  153.       <td><pre>duplicate key value violates unique constraint &quot;community_mark_entity_ct_id_4145a28e_uniq&quot;
  154. DETAIL:  Key (entity_ct_id, entity_id, name, creator_id)=(18, b3c0ecec-ccde-5bda-9a0d-f0e745b02199, testMark2, 324e6020-e253-5b8e-8871-883ec17d0d45) already exists.
  155. </pre></td>
  156.     </tr>
  157.  
  158.  
  159.     <tr>
  160.       <th>Exception Location:</th>
  161.       <td>/opt/datagator/lib/python3.4/site-packages/django/db/backends/utils.py in execute, line 64</td>
  162.     </tr>
  163.  
  164.     <tr>
  165.       <th>Python Executable:</th>
  166.       <td>/usr/sbin/uwsgi</td>
  167.     </tr>
  168.     <tr>
  169.       <th>Python Version:</th>
  170.       <td>3.4.5</td>
  171.     </tr>
  172.     <tr>
  173.       <th>Python Path:</th>
  174.       <td><pre>[&#39;.&#39;,
  175.  &#39;&#39;,
  176.  &#39;/opt/datagator/lib64/python34.zip&#39;,
  177.  &#39;/opt/datagator/lib64/python3.4&#39;,
  178.  &#39;/opt/datagator/lib64/python3.4/plat-linux&#39;,
  179.  &#39;/opt/datagator/lib64/python3.4/lib-dynload&#39;,
  180.  &#39;/usr/lib64/python3.4&#39;,
  181.  &#39;/usr/lib/python3.4&#39;,
  182.  &#39;/opt/datagator/lib/python3.4/site-packages&#39;]</pre></td>
  183.     </tr>
  184.     <tr>
  185.       <th>Server time:</th>
  186.       <td>Fri, 13 Jan 2017 06:41:26 -0700</td>
  187.     </tr>
  188.   </table>
  189. </div>
  190.  
  191.  
  192.  
  193.  
  194. <div id="traceback">
  195.   <h2>Traceback <span class="commands"><a href="#" onclick="return switchPastebinFriendly(this);">
  196.     Switch to copy-and-paste view</a></span>
  197.   </h2>
  198.  
  199.   <div id="browserTraceback">
  200.     <ul class="traceback">
  201.      
  202.        
  203.         <li class="frame django">
  204.           <code>/opt/datagator/lib/python3.4/site-packages/django/db/backends/utils.py</code> in <code>execute</code>
  205.  
  206.          
  207.             <div class="context" id="c140168017543944">
  208.              
  209.                 <ol start="57" class="pre-context" id="pre140168017543944">
  210.                
  211.                   <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre></pre></li>
  212.                
  213.                   <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre>    def execute(self, sql, params=None):</pre></li>
  214.                
  215.                   <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre>        self.db.validate_no_broken_transaction()</pre></li>
  216.                
  217.                   <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre>        with self.db.wrap_database_errors:</pre></li>
  218.                
  219.                   <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre>            if params is None:</pre></li>
  220.                
  221.                   <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre>                return self.cursor.execute(sql)</pre></li>
  222.                
  223.                   <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre>            else:</pre></li>
  224.                
  225.                 </ol>
  226.              
  227.               <ol start="64" class="context-line">
  228.                 <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre>
  229.                 return self.cursor.execute(sql, params)</pre> <span>...</span></li></ol>
  230.              
  231.                 <ol start='65' class="post-context" id="post140168017543944">
  232.                  
  233.                   <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre></pre></li>
  234.                  
  235.                   <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre>    def executemany(self, sql, param_list):</pre></li>
  236.                  
  237.                   <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre>        self.db.validate_no_broken_transaction()</pre></li>
  238.                  
  239.                   <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre>        with self.db.wrap_database_errors:</pre></li>
  240.                  
  241.                   <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre>            return self.cursor.executemany(sql, param_list)</pre></li>
  242.                  
  243.                   <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre></pre></li>
  244.                  
  245.               </ol>
  246.              
  247.             </div>
  248.          
  249.  
  250.          
  251.             <div class="commands">
  252.                
  253.                     <a href="#" onclick="return varToggle(this, '140168017543944')"><span>&#x25b6;</span> Local vars</a>
  254.                
  255.             </div>
  256.             <table class="vars" id="v140168017543944">
  257.               <thead>
  258.                 <tr>
  259.                   <th>Variable</th>
  260.                   <th>Value</th>
  261.                 </tr>
  262.               </thead>
  263.               <tbody>
  264.                
  265.                   <tr>
  266.                     <td>params</td>
  267.                     <td class="code"><pre>(datetime.datetime(2017, 1, 13, 13, 41, 26, 185576, tzinfo=&lt;UTC&gt;),
  268.  UUID(&#39;324e6020-e253-5b8e-8871-883ec17d0d45&#39;),
  269.  18,
  270.  UUID(&#39;b3c0ecec-ccde-5bda-9a0d-f0e745b02199&#39;),
  271.  UUID(&#39;cade4338-d5a2-583e-a386-2571bf537a65&#39;),
  272.  &#39;testMark2&#39;,
  273.  &lt;psycopg2._json.Json object at 0x7f7b6995f470&gt;)</pre></td>
  274.                   </tr>
  275.                
  276.                   <tr>
  277.                     <td>self</td>
  278.                     <td class="code"><pre>&lt;django.db.backends.utils.CursorDebugWrapper object at 0x7f7b69a0c128&gt;</pre></td>
  279.                   </tr>
  280.                
  281.                   <tr>
  282.                     <td>sql</td>
  283.                     <td class="code"><pre>(&#39;INSERT INTO &quot;community_mark&quot; (&quot;created&quot;, &quot;creator_id&quot;, &quot;entity_ct_id&quot;, &#39;
  284.  &#39;&quot;entity_id&quot;, &quot;id&quot;, &quot;name&quot;, &quot;data&quot;) VALUES (%s, %s, %s, %s, %s, %s, %s)&#39;)</pre></td>
  285.                   </tr>
  286.                
  287.               </tbody>
  288.             </table>
  289.          
  290.         </li>
  291.      
  292.        
  293.           <li><h3>
  294.          
  295.             The above exception (duplicate key value violates unique constraint "community_mark_entity_ct_id_4145a28e_uniq"
  296. DETAIL:  Key (entity_ct_id, entity_id, name, creator_id)=(18, b3c0ecec-ccde-5bda-9a0d-f0e745b02199, testMark2, 324e6020-e253-5b8e-8871-883ec17d0d45) already exists.
  297. ) was the direct cause of the following exception:
  298.          
  299.         </h3></li>
  300.        
  301.         <li class="frame django">
  302.           <code>/opt/datagator/lib/python3.4/site-packages/django/core/handlers/exception.py</code> in <code>inner</code>
  303.  
  304.          
  305.             <div class="context" id="c140168028190216">
  306.              
  307.                 <ol start="32" class="pre-context" id="pre140168028190216">
  308.                
  309.                   <li onclick="toggle('pre140168028190216', 'post140168028190216')"><pre>    This decorator is automatically applied to all middleware to ensure that</pre></li>
  310.                
  311.                   <li onclick="toggle('pre140168028190216', 'post140168028190216')"><pre>    no middleware leaks an exception and that the next middleware in the stack</pre></li>
  312.                
  313.                   <li onclick="toggle('pre140168028190216', 'post140168028190216')"><pre>    can rely on getting a response instead of an exception.</pre></li>
  314.                
  315.                   <li onclick="toggle('pre140168028190216', 'post140168028190216')"><pre>    &quot;&quot;&quot;</pre></li>
  316.                
  317.                   <li onclick="toggle('pre140168028190216', 'post140168028190216')"><pre>    @wraps(get_response, assigned=available_attrs(get_response))</pre></li>
  318.                
  319.                   <li onclick="toggle('pre140168028190216', 'post140168028190216')"><pre>    def inner(request):</pre></li>
  320.                
  321.                   <li onclick="toggle('pre140168028190216', 'post140168028190216')"><pre>        try:</pre></li>
  322.                
  323.                 </ol>
  324.              
  325.               <ol start="39" class="context-line">
  326.                 <li onclick="toggle('pre140168028190216', 'post140168028190216')"><pre>
  327.             response = get_response(request)</pre> <span>...</span></li></ol>
  328.              
  329.                 <ol start='40' class="post-context" id="post140168028190216">
  330.                  
  331.                   <li onclick="toggle('pre140168028190216', 'post140168028190216')"><pre>        except Exception as exc:</pre></li>
  332.                  
  333.                   <li onclick="toggle('pre140168028190216', 'post140168028190216')"><pre>            response = response_for_exception(request, exc)</pre></li>
  334.                  
  335.                   <li onclick="toggle('pre140168028190216', 'post140168028190216')"><pre>        return response</pre></li>
  336.                  
  337.                   <li onclick="toggle('pre140168028190216', 'post140168028190216')"><pre>    return inner</pre></li>
  338.                  
  339.                   <li onclick="toggle('pre140168028190216', 'post140168028190216')"><pre></pre></li>
  340.                  
  341.                   <li onclick="toggle('pre140168028190216', 'post140168028190216')"><pre></pre></li>
  342.                  
  343.               </ol>
  344.              
  345.             </div>
  346.          
  347.  
  348.          
  349.             <div class="commands">
  350.                
  351.                     <a href="#" onclick="return varToggle(this, '140168028190216')"><span>&#x25b6;</span> Local vars</a>
  352.                
  353.             </div>
  354.             <table class="vars" id="v140168028190216">
  355.               <thead>
  356.                 <tr>
  357.                   <th>Variable</th>
  358.                   <th>Value</th>
  359.                 </tr>
  360.               </thead>
  361.               <tbody>
  362.                
  363.                   <tr>
  364.                     <td>exc</td>
  365.                     <td class="code"><pre>IntegrityError(&#39;duplicate key value violates unique constraint &quot;community_mark_entity_ct_id_4145a28e_uniq&quot;\nDETAIL:  Key (entity_ct_id, entity_id, name, creator_id)=(18, b3c0ecec-ccde-5bda-9a0d-f0e745b02199, testMark2, 324e6020-e253-5b8e-8871-883ec17d0d45) already exists.\n&#39;,)</pre></td>
  366.                   </tr>
  367.                
  368.                   <tr>
  369.                     <td>get_response</td>
  370.                     <td class="code"><pre>&lt;bound method WSGIHandler._legacy_get_response of &lt;django.core.handlers.wsgi.WSGIHandler object at 0x7f7b7a6230b8&gt;&gt;</pre></td>
  371.                   </tr>
  372.                
  373.                   <tr>
  374.                     <td>request</td>
  375.                     <td class="code"><pre>&lt;WSGIRequest: PUT &#39;/api/repo/antonio/dyad/mark/ddddddd.recipe&#39;&gt;</pre></td>
  376.                   </tr>
  377.                
  378.               </tbody>
  379.             </table>
  380.          
  381.         </li>
  382.      
  383.        
  384.         <li class="frame django">
  385.           <code>/opt/datagator/lib/python3.4/site-packages/django/core/handlers/base.py</code> in <code>_legacy_get_response</code>
  386.  
  387.          
  388.             <div class="context" id="c140168028190728">
  389.              
  390.                 <ol start="242" class="pre-context" id="pre140168028190728">
  391.                
  392.                   <li onclick="toggle('pre140168028190728', 'post140168028190728')"><pre>        # Apply request middleware</pre></li>
  393.                
  394.                   <li onclick="toggle('pre140168028190728', 'post140168028190728')"><pre>        for middleware_method in self._request_middleware:</pre></li>
  395.                
  396.                   <li onclick="toggle('pre140168028190728', 'post140168028190728')"><pre>            response = middleware_method(request)</pre></li>
  397.                
  398.                   <li onclick="toggle('pre140168028190728', 'post140168028190728')"><pre>            if response:</pre></li>
  399.                
  400.                   <li onclick="toggle('pre140168028190728', 'post140168028190728')"><pre>                break</pre></li>
  401.                
  402.                   <li onclick="toggle('pre140168028190728', 'post140168028190728')"><pre></pre></li>
  403.                
  404.                   <li onclick="toggle('pre140168028190728', 'post140168028190728')"><pre>        if response is None:</pre></li>
  405.                
  406.                 </ol>
  407.              
  408.               <ol start="249" class="context-line">
  409.                 <li onclick="toggle('pre140168028190728', 'post140168028190728')"><pre>
  410.             response = self._get_response(request)</pre> <span>...</span></li></ol>
  411.              
  412.                 <ol start='250' class="post-context" id="post140168028190728">
  413.                  
  414.                   <li onclick="toggle('pre140168028190728', 'post140168028190728')"><pre>        return response</pre></li>
  415.                  
  416.               </ol>
  417.              
  418.             </div>
  419.          
  420.  
  421.          
  422.             <div class="commands">
  423.                
  424.                     <a href="#" onclick="return varToggle(this, '140168028190728')"><span>&#x25b6;</span> Local vars</a>
  425.                
  426.             </div>
  427.             <table class="vars" id="v140168028190728">
  428.               <thead>
  429.                 <tr>
  430.                   <th>Variable</th>
  431.                   <th>Value</th>
  432.                 </tr>
  433.               </thead>
  434.               <tbody>
  435.                
  436.                   <tr>
  437.                     <td>middleware_method</td>
  438.                     <td class="code"><pre>&lt;bound method MessageMiddleware.process_request of &lt;django.contrib.messages.middleware.MessageMiddleware object at 0x7f7b79935ba8&gt;&gt;</pre></td>
  439.                   </tr>
  440.                
  441.                   <tr>
  442.                     <td>request</td>
  443.                     <td class="code"><pre>&lt;WSGIRequest: PUT &#39;/api/repo/antonio/dyad/mark/ddddddd.recipe&#39;&gt;</pre></td>
  444.                   </tr>
  445.                
  446.                   <tr>
  447.                     <td>response</td>
  448.                     <td class="code"><pre>None</pre></td>
  449.                   </tr>
  450.                
  451.                   <tr>
  452.                     <td>self</td>
  453.                     <td class="code"><pre>&lt;django.core.handlers.wsgi.WSGIHandler object at 0x7f7b7a6230b8&gt;</pre></td>
  454.                   </tr>
  455.                
  456.               </tbody>
  457.             </table>
  458.          
  459.         </li>
  460.      
  461.        
  462.         <li class="frame django">
  463.           <code>/opt/datagator/lib/python3.4/site-packages/django/core/handlers/base.py</code> in <code>_get_response</code>
  464.  
  465.          
  466.             <div class="context" id="c140168028190792">
  467.              
  468.                 <ol start="180" class="pre-context" id="pre140168028190792">
  469.                
  470.                   <li onclick="toggle('pre140168028190792', 'post140168028190792')"><pre>                break</pre></li>
  471.                
  472.                   <li onclick="toggle('pre140168028190792', 'post140168028190792')"><pre></pre></li>
  473.                
  474.                   <li onclick="toggle('pre140168028190792', 'post140168028190792')"><pre>        if response is None:</pre></li>
  475.                
  476.                   <li onclick="toggle('pre140168028190792', 'post140168028190792')"><pre>            wrapped_callback = self.make_view_atomic(callback)</pre></li>
  477.                
  478.                   <li onclick="toggle('pre140168028190792', 'post140168028190792')"><pre>            try:</pre></li>
  479.                
  480.                   <li onclick="toggle('pre140168028190792', 'post140168028190792')"><pre>                response = wrapped_callback(request, *callback_args, **callback_kwargs)</pre></li>
  481.                
  482.                   <li onclick="toggle('pre140168028190792', 'post140168028190792')"><pre>            except Exception as e:</pre></li>
  483.                
  484.                 </ol>
  485.              
  486.               <ol start="187" class="context-line">
  487.                 <li onclick="toggle('pre140168028190792', 'post140168028190792')"><pre>
  488.                 response = self.process_exception_by_middleware(e, request)</pre> <span>...</span></li></ol>
  489.              
  490.                 <ol start='188' class="post-context" id="post140168028190792">
  491.                  
  492.                   <li onclick="toggle('pre140168028190792', 'post140168028190792')"><pre></pre></li>
  493.                  
  494.                   <li onclick="toggle('pre140168028190792', 'post140168028190792')"><pre>        # Complain if the view returned None (a common error).</pre></li>
  495.                  
  496.                   <li onclick="toggle('pre140168028190792', 'post140168028190792')"><pre>        if response is None:</pre></li>
  497.                  
  498.                   <li onclick="toggle('pre140168028190792', 'post140168028190792')"><pre>            if isinstance(callback, types.FunctionType):    # FBV</pre></li>
  499.                  
  500.                   <li onclick="toggle('pre140168028190792', 'post140168028190792')"><pre>                view_name = callback.__name__</pre></li>
  501.                  
  502.                   <li onclick="toggle('pre140168028190792', 'post140168028190792')"><pre>            else:                                           # CBV</pre></li>
  503.                  
  504.               </ol>
  505.              
  506.             </div>
  507.          
  508.  
  509.          
  510.             <div class="commands">
  511.                
  512.                     <a href="#" onclick="return varToggle(this, '140168028190792')"><span>&#x25b6;</span> Local vars</a>
  513.                
  514.             </div>
  515.             <table class="vars" id="v140168028190792">
  516.               <thead>
  517.                 <tr>
  518.                   <th>Variable</th>
  519.                   <th>Value</th>
  520.                 </tr>
  521.               </thead>
  522.               <tbody>
  523.                
  524.                   <tr>
  525.                     <td>callback</td>
  526.                     <td class="code"><pre>&lt;function DataItemMarkup at 0x7f7b69d841e0&gt;</pre></td>
  527.                   </tr>
  528.                
  529.                   <tr>
  530.                     <td>callback_args</td>
  531.                     <td class="code"><pre>()</pre></td>
  532.                   </tr>
  533.                
  534.                   <tr>
  535.                     <td>callback_kwargs</td>
  536.                     <td class="code"><pre>{&#39;key&#39;: &#39;ddddddd.recipe&#39;, &#39;name&#39;: &#39;dyad&#39;, &#39;repo&#39;: &#39;antonio&#39;}</pre></td>
  537.                   </tr>
  538.                
  539.                   <tr>
  540.                     <td>middleware_method</td>
  541.                     <td class="code"><pre>&lt;bound method CrossOriginMiddleware.process_view of &lt;datagator.wsgi.middleware.CrossOriginMiddleware object at 0x7f7b79935550&gt;&gt;</pre></td>
  542.                   </tr>
  543.                
  544.                   <tr>
  545.                     <td>request</td>
  546.                     <td class="code"><pre>&lt;WSGIRequest: PUT &#39;/api/repo/antonio/dyad/mark/ddddddd.recipe&#39;&gt;</pre></td>
  547.                   </tr>
  548.                
  549.                   <tr>
  550.                     <td>resolver</td>
  551.                     <td class="code"><pre>&lt;RegexURLResolver &#39;datagator.api.portal.urls&#39; (None:None) ^/&gt;</pre></td>
  552.                   </tr>
  553.                
  554.                   <tr>
  555.                     <td>resolver_match</td>
  556.                     <td class="code"><pre>ResolverMatch(func=datagator.api.portal.v2.mark.DataItemMarkup, args=(), kwargs={&#39;key&#39;: &#39;ddddddd.recipe&#39;, &#39;repo&#39;: &#39;antonio&#39;, &#39;name&#39;: &#39;dyad&#39;}, url_name=item_list, app_names=[], namespaces=[&#39;api&#39;, &#39;v2&#39;, &#39;repo&#39;, &#39;dataset&#39;, &#39;mark&#39;])</pre></td>
  557.                   </tr>
  558.                
  559.                   <tr>
  560.                     <td>response</td>
  561.                     <td class="code"><pre>None</pre></td>
  562.                   </tr>
  563.                
  564.                   <tr>
  565.                     <td>self</td>
  566.                     <td class="code"><pre>&lt;django.core.handlers.wsgi.WSGIHandler object at 0x7f7b7a6230b8&gt;</pre></td>
  567.                   </tr>
  568.                
  569.                   <tr>
  570.                     <td>wrapped_callback</td>
  571.                     <td class="code"><pre>&lt;function DataItemMarkup at 0x7f7b69d841e0&gt;</pre></td>
  572.                   </tr>
  573.                
  574.               </tbody>
  575.             </table>
  576.          
  577.         </li>
  578.      
  579.        
  580.         <li class="frame django">
  581.           <code>/opt/datagator/lib/python3.4/site-packages/django/core/handlers/base.py</code> in <code>_get_response</code>
  582.  
  583.          
  584.             <div class="context" id="c140168028190280">
  585.              
  586.                 <ol start="178" class="pre-context" id="pre140168028190280">
  587.                
  588.                   <li onclick="toggle('pre140168028190280', 'post140168028190280')"><pre>            response = middleware_method(request, callback, callback_args, callback_kwargs)</pre></li>
  589.                
  590.                   <li onclick="toggle('pre140168028190280', 'post140168028190280')"><pre>            if response:</pre></li>
  591.                
  592.                   <li onclick="toggle('pre140168028190280', 'post140168028190280')"><pre>                break</pre></li>
  593.                
  594.                   <li onclick="toggle('pre140168028190280', 'post140168028190280')"><pre></pre></li>
  595.                
  596.                   <li onclick="toggle('pre140168028190280', 'post140168028190280')"><pre>        if response is None:</pre></li>
  597.                
  598.                   <li onclick="toggle('pre140168028190280', 'post140168028190280')"><pre>            wrapped_callback = self.make_view_atomic(callback)</pre></li>
  599.                
  600.                   <li onclick="toggle('pre140168028190280', 'post140168028190280')"><pre>            try:</pre></li>
  601.                
  602.                 </ol>
  603.              
  604.               <ol start="185" class="context-line">
  605.                 <li onclick="toggle('pre140168028190280', 'post140168028190280')"><pre>
  606.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)</pre> <span>...</span></li></ol>
  607.              
  608.                 <ol start='186' class="post-context" id="post140168028190280">
  609.                  
  610.                   <li onclick="toggle('pre140168028190280', 'post140168028190280')"><pre>            except Exception as e:</pre></li>
  611.                  
  612.                   <li onclick="toggle('pre140168028190280', 'post140168028190280')"><pre>                response = self.process_exception_by_middleware(e, request)</pre></li>
  613.                  
  614.                   <li onclick="toggle('pre140168028190280', 'post140168028190280')"><pre></pre></li>
  615.                  
  616.                   <li onclick="toggle('pre140168028190280', 'post140168028190280')"><pre>        # Complain if the view returned None (a common error).</pre></li>
  617.                  
  618.                   <li onclick="toggle('pre140168028190280', 'post140168028190280')"><pre>        if response is None:</pre></li>
  619.                  
  620.                   <li onclick="toggle('pre140168028190280', 'post140168028190280')"><pre>            if isinstance(callback, types.FunctionType):    # FBV</pre></li>
  621.                  
  622.               </ol>
  623.              
  624.             </div>
  625.          
  626.  
  627.          
  628.             <div class="commands">
  629.                
  630.                     <a href="#" onclick="return varToggle(this, '140168028190280')"><span>&#x25b6;</span> Local vars</a>
  631.                
  632.             </div>
  633.             <table class="vars" id="v140168028190280">
  634.               <thead>
  635.                 <tr>
  636.                   <th>Variable</th>
  637.                   <th>Value</th>
  638.                 </tr>
  639.               </thead>
  640.               <tbody>
  641.                
  642.                   <tr>
  643.                     <td>callback</td>
  644.                     <td class="code"><pre>&lt;function DataItemMarkup at 0x7f7b69d841e0&gt;</pre></td>
  645.                   </tr>
  646.                
  647.                   <tr>
  648.                     <td>callback_args</td>
  649.                     <td class="code"><pre>()</pre></td>
  650.                   </tr>
  651.                
  652.                   <tr>
  653.                     <td>callback_kwargs</td>
  654.                     <td class="code"><pre>{&#39;key&#39;: &#39;ddddddd.recipe&#39;, &#39;name&#39;: &#39;dyad&#39;, &#39;repo&#39;: &#39;antonio&#39;}</pre></td>
  655.                   </tr>
  656.                
  657.                   <tr>
  658.                     <td>middleware_method</td>
  659.                     <td class="code"><pre>&lt;bound method CrossOriginMiddleware.process_view of &lt;datagator.wsgi.middleware.CrossOriginMiddleware object at 0x7f7b79935550&gt;&gt;</pre></td>
  660.                   </tr>
  661.                
  662.                   <tr>
  663.                     <td>request</td>
  664.                     <td class="code"><pre>&lt;WSGIRequest: PUT &#39;/api/repo/antonio/dyad/mark/ddddddd.recipe&#39;&gt;</pre></td>
  665.                   </tr>
  666.                
  667.                   <tr>
  668.                     <td>resolver</td>
  669.                     <td class="code"><pre>&lt;RegexURLResolver &#39;datagator.api.portal.urls&#39; (None:None) ^/&gt;</pre></td>
  670.                   </tr>
  671.                
  672.                   <tr>
  673.                     <td>resolver_match</td>
  674.                     <td class="code"><pre>ResolverMatch(func=datagator.api.portal.v2.mark.DataItemMarkup, args=(), kwargs={&#39;key&#39;: &#39;ddddddd.recipe&#39;, &#39;repo&#39;: &#39;antonio&#39;, &#39;name&#39;: &#39;dyad&#39;}, url_name=item_list, app_names=[], namespaces=[&#39;api&#39;, &#39;v2&#39;, &#39;repo&#39;, &#39;dataset&#39;, &#39;mark&#39;])</pre></td>
  675.                   </tr>
  676.                
  677.                   <tr>
  678.                     <td>response</td>
  679.                     <td class="code"><pre>None</pre></td>
  680.                   </tr>
  681.                
  682.                   <tr>
  683.                     <td>self</td>
  684.                     <td class="code"><pre>&lt;django.core.handlers.wsgi.WSGIHandler object at 0x7f7b7a6230b8&gt;</pre></td>
  685.                   </tr>
  686.                
  687.                   <tr>
  688.                     <td>wrapped_callback</td>
  689.                     <td class="code"><pre>&lt;function DataItemMarkup at 0x7f7b69d841e0&gt;</pre></td>
  690.                   </tr>
  691.                
  692.               </tbody>
  693.             </table>
  694.          
  695.         </li>
  696.      
  697.        
  698.         <li class="frame django">
  699.           <code>/opt/datagator/lib/python3.4/site-packages/django/views/generic/base.py</code> in <code>view</code>
  700.  
  701.          
  702.             <div class="context" id="c140168028189960">
  703.              
  704.                 <ol start="61" class="pre-context" id="pre140168028189960">
  705.                
  706.                   <li onclick="toggle('pre140168028189960', 'post140168028189960')"><pre>        def view(request, *args, **kwargs):</pre></li>
  707.                
  708.                   <li onclick="toggle('pre140168028189960', 'post140168028189960')"><pre>            self = cls(**initkwargs)</pre></li>
  709.                
  710.                   <li onclick="toggle('pre140168028189960', 'post140168028189960')"><pre>            if hasattr(self, &#39;get&#39;) and not hasattr(self, &#39;head&#39;):</pre></li>
  711.                
  712.                   <li onclick="toggle('pre140168028189960', 'post140168028189960')"><pre>                self.head = self.get</pre></li>
  713.                
  714.                   <li onclick="toggle('pre140168028189960', 'post140168028189960')"><pre>            self.request = request</pre></li>
  715.                
  716.                   <li onclick="toggle('pre140168028189960', 'post140168028189960')"><pre>            self.args = args</pre></li>
  717.                
  718.                   <li onclick="toggle('pre140168028189960', 'post140168028189960')"><pre>            self.kwargs = kwargs</pre></li>
  719.                
  720.                 </ol>
  721.              
  722.               <ol start="68" class="context-line">
  723.                 <li onclick="toggle('pre140168028189960', 'post140168028189960')"><pre>
  724.             return self.dispatch(request, *args, **kwargs)</pre> <span>...</span></li></ol>
  725.              
  726.                 <ol start='69' class="post-context" id="post140168028189960">
  727.                  
  728.                   <li onclick="toggle('pre140168028189960', 'post140168028189960')"><pre>        view.view_class = cls</pre></li>
  729.                  
  730.                   <li onclick="toggle('pre140168028189960', 'post140168028189960')"><pre>        view.view_initkwargs = initkwargs</pre></li>
  731.                  
  732.                   <li onclick="toggle('pre140168028189960', 'post140168028189960')"><pre></pre></li>
  733.                  
  734.                   <li onclick="toggle('pre140168028189960', 'post140168028189960')"><pre>        # take name and docstring from class</pre></li>
  735.                  
  736.                   <li onclick="toggle('pre140168028189960', 'post140168028189960')"><pre>        update_wrapper(view, cls, updated=())</pre></li>
  737.                  
  738.                   <li onclick="toggle('pre140168028189960', 'post140168028189960')"><pre></pre></li>
  739.                  
  740.               </ol>
  741.              
  742.             </div>
  743.          
  744.  
  745.          
  746.             <div class="commands">
  747.                
  748.                     <a href="#" onclick="return varToggle(this, '140168028189960')"><span>&#x25b6;</span> Local vars</a>
  749.                
  750.             </div>
  751.             <table class="vars" id="v140168028189960">
  752.               <thead>
  753.                 <tr>
  754.                   <th>Variable</th>
  755.                   <th>Value</th>
  756.                 </tr>
  757.               </thead>
  758.               <tbody>
  759.                
  760.                   <tr>
  761.                     <td>args</td>
  762.                     <td class="code"><pre>()</pre></td>
  763.                   </tr>
  764.                
  765.                   <tr>
  766.                     <td>cls</td>
  767.                     <td class="code"><pre>&lt;class &#39;datagator.api.portal.v2.mark.DataItemMarkup&#39;&gt;</pre></td>
  768.                   </tr>
  769.                
  770.                   <tr>
  771.                     <td>initkwargs</td>
  772.                     <td class="code"><pre>{}</pre></td>
  773.                   </tr>
  774.                
  775.                   <tr>
  776.                     <td>kwargs</td>
  777.                     <td class="code"><pre>{&#39;key&#39;: &#39;ddddddd.recipe&#39;, &#39;name&#39;: &#39;dyad&#39;, &#39;repo&#39;: &#39;antonio&#39;}</pre></td>
  778.                   </tr>
  779.                
  780.                   <tr>
  781.                     <td>request</td>
  782.                     <td class="code"><pre>&lt;WSGIRequest: PUT &#39;/api/repo/antonio/dyad/mark/ddddddd.recipe&#39;&gt;</pre></td>
  783.                   </tr>
  784.                
  785.                   <tr>
  786.                     <td>self</td>
  787.                     <td class="code"><pre>&lt;datagator.api.portal.v2.mark.DataItemMarkup object at 0x7f7b68f205f8&gt;</pre></td>
  788.                   </tr>
  789.                
  790.               </tbody>
  791.             </table>
  792.          
  793.         </li>
  794.      
  795.        
  796.         <li class="frame user">
  797.           <code>./datagator/wsgi/decorators.py</code> in <code>wrapper</code>
  798.  
  799.          
  800.             <div class="context" id="c140168028191432">
  801.              
  802.                 <ol start="192" class="pre-context" id="pre140168028191432">
  803.                
  804.                   <li onclick="toggle('pre140168028191432', 'post140168028191432')"><pre>                # over-rate has higher precedence than other error responses</pre></li>
  805.                
  806.                   <li onclick="toggle('pre140168028191432', 'post140168028191432')"><pre>                response = MessageResponse(429, _(&quot;API request over-rate.&quot;))</pre></li>
  807.                
  808.                   <li onclick="toggle('pre140168028191432', 'post140168028191432')"><pre>                response[&#39;Retry-After&#39;] = int(timeout)</pre></li>
  809.                
  810.                   <li onclick="toggle('pre140168028191432', 'post140168028191432')"><pre>            elif response is not None:</pre></li>
  811.                
  812.                   <li onclick="toggle('pre140168028191432', 'post140168028191432')"><pre>                # response created for error(s) occurred during rate limiting.</pre></li>
  813.                
  814.                   <li onclick="toggle('pre140168028191432', 'post140168028191432')"><pre>                pass</pre></li>
  815.                
  816.                   <li onclick="toggle('pre140168028191432', 'post140168028191432')"><pre>            else:</pre></li>
  817.                
  818.                 </ol>
  819.              
  820.               <ol start="199" class="context-line">
  821.                 <li onclick="toggle('pre140168028191432', 'post140168028191432')"><pre>
  822.                 response = method(view, request, *args, **kwargs)</pre> <span>...</span></li></ol>
  823.              
  824.                 <ol start='200' class="post-context" id="post140168028191432">
  825.                  
  826.                   <li onclick="toggle('pre140168028191432', 'post140168028191432')"><pre></pre></li>
  827.                  
  828.                   <li onclick="toggle('pre140168028191432', 'post140168028191432')"><pre>            response[&#39;X-RateLimit-Limit&#39;] = total</pre></li>
  829.                  
  830.                   <li onclick="toggle('pre140168028191432', 'post140168028191432')"><pre>            response[&#39;X-RateLimit-Remaining&#39;] = remain if remain &gt; 0 else 0</pre></li>
  831.                  
  832.                   <li onclick="toggle('pre140168028191432', 'post140168028191432')"><pre>            response[&#39;X-RateLimit-Reset&#39;] = int(math.ceil(dt.timestamp(reset)))</pre></li>
  833.                  
  834.                   <li onclick="toggle('pre140168028191432', 'post140168028191432')"><pre></pre></li>
  835.                  
  836.                   <li onclick="toggle('pre140168028191432', 'post140168028191432')"><pre>            return response</pre></li>
  837.                  
  838.               </ol>
  839.              
  840.             </div>
  841.          
  842.  
  843.          
  844.             <div class="commands">
  845.                
  846.                     <a href="#" onclick="return varToggle(this, '140168028191432')"><span>&#x25b6;</span> Local vars</a>
  847.                
  848.             </div>
  849.             <table class="vars" id="v140168028191432">
  850.               <thead>
  851.                 <tr>
  852.                   <th>Variable</th>
  853.                   <th>Value</th>
  854.                 </tr>
  855.               </thead>
  856.               <tbody>
  857.                
  858.                   <tr>
  859.                     <td>args</td>
  860.                     <td class="code"><pre>()</pre></td>
  861.                   </tr>
  862.                
  863.                   <tr>
  864.                     <td>cnt</td>
  865.                     <td class="code"><pre>{&#39;1hr&#39;: 8}</pre></td>
  866.                   </tr>
  867.                
  868.                   <tr>
  869.                     <td>cost</td>
  870.                     <td class="code"><pre>1</pre></td>
  871.                   </tr>
  872.                
  873.                   <tr>
  874.                     <td>key</td>
  875.                     <td class="code"><pre>&#39;1hr&#39;</pre></td>
  876.                   </tr>
  877.                
  878.                   <tr>
  879.                     <td>kwargs</td>
  880.                     <td class="code"><pre>{&#39;key&#39;: &#39;ddddddd.recipe&#39;, &#39;name&#39;: &#39;dyad&#39;, &#39;repo&#39;: &#39;antonio&#39;}</pre></td>
  881.                   </tr>
  882.                
  883.                   <tr>
  884.                     <td>mc_key</td>
  885.                     <td class="code"><pre>&lt;function with_ratelimit.&lt;locals&gt;.decorator.&lt;locals&gt;.wrapper.&lt;locals&gt;.mc_key at 0x7f7b69a618c8&gt;</pre></td>
  886.                   </tr>
  887.                
  888.                   <tr>
  889.                     <td>method</td>
  890.                     <td class="code"><pre>&lt;function Endpoint.dispatch at 0x7f7b6a393158&gt;</pre></td>
  891.                   </tr>
  892.                
  893.                   <tr>
  894.                     <td>nil</td>
  895.                     <td class="code"><pre>2000</pre></td>
  896.                   </tr>
  897.                
  898.                   <tr>
  899.                     <td>options</td>
  900.                     <td class="code"><pre>{}</pre></td>
  901.                   </tr>
  902.                
  903.                   <tr>
  904.                     <td>prefix</td>
  905.                     <td class="code"><pre>&#39;user:712f7bd18f7f3de39f37e22ab5a68395/rate/&#39;</pre></td>
  906.                   </tr>
  907.                
  908.                   <tr>
  909.                     <td>quota</td>
  910.                     <td class="code"><pre>{&#39;1hr&#39;: (2000, 3600)}</pre></td>
  911.                   </tr>
  912.                
  913.                   <tr>
  914.                     <td>remain</td>
  915.                     <td class="code"><pre>1991</pre></td>
  916.                   </tr>
  917.                
  918.                   <tr>
  919.                     <td>request</td>
  920.                     <td class="code"><pre>&lt;WSGIRequest: PUT &#39;/api/repo/antonio/dyad/mark/ddddddd.recipe&#39;&gt;</pre></td>
  921.                   </tr>
  922.                
  923.                   <tr>
  924.                     <td>reset</td>
  925.                     <td class="code"><pre>datetime.datetime(2017, 1, 13, 14, 30, 34, 96098, tzinfo=&lt;isodate.tzinfo.Utc object at 0x7f7b73396cc0&gt;)</pre></td>
  926.                   </tr>
  927.                
  928.                   <tr>
  929.                     <td>response</td>
  930.                     <td class="code"><pre>None</pre></td>
  931.                   </tr>
  932.                
  933.                   <tr>
  934.                     <td>timeout</td>
  935.                     <td class="code"><pre>2948</pre></td>
  936.                   </tr>
  937.                
  938.                   <tr>
  939.                     <td>total</td>
  940.                     <td class="code"><pre>2000</pre></td>
  941.                   </tr>
  942.                
  943.                   <tr>
  944.                     <td>ttl</td>
  945.                     <td class="code"><pre>{&#39;1hr&#39;: 2948}</pre></td>
  946.                   </tr>
  947.                
  948.                   <tr>
  949.                     <td>uid</td>
  950.                     <td class="code"><pre>&#39;antonio&#39;</pre></td>
  951.                   </tr>
  952.                
  953.                   <tr>
  954.                     <td>used</td>
  955.                     <td class="code"><pre>8</pre></td>
  956.                   </tr>
  957.                
  958.                   <tr>
  959.                     <td>view</td>
  960.                     <td class="code"><pre>&lt;datagator.api.portal.v2.mark.DataItemMarkup object at 0x7f7b68f205f8&gt;</pre></td>
  961.                   </tr>
  962.                
  963.               </tbody>
  964.             </table>
  965.          
  966.         </li>
  967.      
  968.        
  969.         <li class="frame user">
  970.           <code>./datagator/wsgi/views.py</code> in <code>dispatch</code>
  971.  
  972.          
  973.             <div class="context" id="c140168015143368">
  974.              
  975.                 <ol start="52" class="pre-context" id="pre140168015143368">
  976.                
  977.                   <li onclick="toggle('pre140168015143368', 'post140168015143368')"><pre>    def __call__(self, request, *args, **kwargs):</pre></li>
  978.                
  979.                   <li onclick="toggle('pre140168015143368', 'post140168015143368')"><pre>        return self.dispatch(request, *args, **kwargs)</pre></li>
  980.                
  981.                   <li onclick="toggle('pre140168015143368', 'post140168015143368')"><pre></pre></li>
  982.                
  983.                   <li onclick="toggle('pre140168015143368', 'post140168015143368')"><pre>    @with_ratelimit</pre></li>
  984.                
  985.                   <li onclick="toggle('pre140168015143368', 'post140168015143368')"><pre>    def dispatch(self, request, *args, **kwargs):</pre></li>
  986.                
  987.                   <li onclick="toggle('pre140168015143368', 'post140168015143368')"><pre>        # dispatch HTTP method</pre></li>
  988.                
  989.                   <li onclick="toggle('pre140168015143368', 'post140168015143368')"><pre>        try:</pre></li>
  990.                
  991.                 </ol>
  992.              
  993.               <ol start="59" class="context-line">
  994.                 <li onclick="toggle('pre140168015143368', 'post140168015143368')"><pre>
  995.             response = super(Endpoint, self).dispatch(request, *args, **kwargs)</pre> <span>...</span></li></ol>
  996.              
  997.                 <ol start='60' class="post-context" id="post140168015143368">
  998.                  
  999.                   <li onclick="toggle('pre140168015143368', 'post140168015143368')"><pre>        except ValidationError as e:</pre></li>
  1000.                  
  1001.                   <li onclick="toggle('pre140168015143368', 'post140168015143368')"><pre>            # ValidationError may contain a list of messages</pre></li>
  1002.                  
  1003.                   <li onclick="toggle('pre140168015143368', 'post140168015143368')"><pre>            return MessageResponse(400, &quot;\n&quot;.join(e))  # Bad Request</pre></li>
  1004.                  
  1005.                   <li onclick="toggle('pre140168015143368', 'post140168015143368')"><pre>        except PermissionDenied as e:</pre></li>
  1006.                  
  1007.                   <li onclick="toggle('pre140168015143368', 'post140168015143368')"><pre>            return MessageResponse(403, str(e))  # Forbidden</pre></li>
  1008.                  
  1009.                   <li onclick="toggle('pre140168015143368', 'post140168015143368')"><pre>        except ObjectDoesNotExist as e:</pre></li>
  1010.                  
  1011.               </ol>
  1012.              
  1013.             </div>
  1014.          
  1015.  
  1016.          
  1017.             <div class="commands">
  1018.                
  1019.                     <a href="#" onclick="return varToggle(this, '140168015143368')"><span>&#x25b6;</span> Local vars</a>
  1020.                
  1021.             </div>
  1022.             <table class="vars" id="v140168015143368">
  1023.               <thead>
  1024.                 <tr>
  1025.                   <th>Variable</th>
  1026.                   <th>Value</th>
  1027.                 </tr>
  1028.               </thead>
  1029.               <tbody>
  1030.                
  1031.                   <tr>
  1032.                     <td>__class__</td>
  1033.                     <td class="code"><pre>&lt;class &#39;datagator.wsgi.views.Endpoint&#39;&gt;</pre></td>
  1034.                   </tr>
  1035.                
  1036.                   <tr>
  1037.                     <td>args</td>
  1038.                     <td class="code"><pre>()</pre></td>
  1039.                   </tr>
  1040.                
  1041.                   <tr>
  1042.                     <td>kwargs</td>
  1043.                     <td class="code"><pre>{&#39;key&#39;: &#39;ddddddd.recipe&#39;, &#39;name&#39;: &#39;dyad&#39;, &#39;repo&#39;: &#39;antonio&#39;}</pre></td>
  1044.                   </tr>
  1045.                
  1046.                   <tr>
  1047.                     <td>request</td>
  1048.                     <td class="code"><pre>&lt;WSGIRequest: PUT &#39;/api/repo/antonio/dyad/mark/ddddddd.recipe&#39;&gt;</pre></td>
  1049.                   </tr>
  1050.                
  1051.                   <tr>
  1052.                     <td>self</td>
  1053.                     <td class="code"><pre>&lt;datagator.api.portal.v2.mark.DataItemMarkup object at 0x7f7b68f205f8&gt;</pre></td>
  1054.                   </tr>
  1055.                
  1056.               </tbody>
  1057.             </table>
  1058.          
  1059.         </li>
  1060.      
  1061.        
  1062.         <li class="frame django">
  1063.           <code>/opt/datagator/lib/python3.4/site-packages/django/views/generic/base.py</code> in <code>dispatch</code>
  1064.  
  1065.          
  1066.             <div class="context" id="c140168015146632">
  1067.              
  1068.                 <ol start="81" class="pre-context" id="pre140168015146632">
  1069.                
  1070.                   <li onclick="toggle('pre140168015146632', 'post140168015146632')"><pre>        # Try to dispatch to the right method; if a method doesn&#39;t exist,</pre></li>
  1071.                
  1072.                   <li onclick="toggle('pre140168015146632', 'post140168015146632')"><pre>        # defer to the error handler. Also defer to the error handler if the</pre></li>
  1073.                
  1074.                   <li onclick="toggle('pre140168015146632', 'post140168015146632')"><pre>        # request method isn&#39;t on the approved list.</pre></li>
  1075.                
  1076.                   <li onclick="toggle('pre140168015146632', 'post140168015146632')"><pre>        if request.method.lower() in self.http_method_names:</pre></li>
  1077.                
  1078.                   <li onclick="toggle('pre140168015146632', 'post140168015146632')"><pre>            handler = getattr(self, request.method.lower(), self.http_method_not_allowed)</pre></li>
  1079.                
  1080.                   <li onclick="toggle('pre140168015146632', 'post140168015146632')"><pre>        else:</pre></li>
  1081.                
  1082.                   <li onclick="toggle('pre140168015146632', 'post140168015146632')"><pre>            handler = self.http_method_not_allowed</pre></li>
  1083.                
  1084.                 </ol>
  1085.              
  1086.               <ol start="88" class="context-line">
  1087.                 <li onclick="toggle('pre140168015146632', 'post140168015146632')"><pre>
  1088.         return handler(request, *args, **kwargs)</pre> <span>...</span></li></ol>
  1089.              
  1090.                 <ol start='89' class="post-context" id="post140168015146632">
  1091.                  
  1092.                   <li onclick="toggle('pre140168015146632', 'post140168015146632')"><pre></pre></li>
  1093.                  
  1094.                   <li onclick="toggle('pre140168015146632', 'post140168015146632')"><pre>    def http_method_not_allowed(self, request, *args, **kwargs):</pre></li>
  1095.                  
  1096.                   <li onclick="toggle('pre140168015146632', 'post140168015146632')"><pre>        logger.warning(</pre></li>
  1097.                  
  1098.                   <li onclick="toggle('pre140168015146632', 'post140168015146632')"><pre>            &#39;Method Not Allowed (%s): %s&#39;, request.method, request.path,</pre></li>
  1099.                  
  1100.                   <li onclick="toggle('pre140168015146632', 'post140168015146632')"><pre>            extra={&#39;status_code&#39;: 405, &#39;request&#39;: request}</pre></li>
  1101.                  
  1102.                   <li onclick="toggle('pre140168015146632', 'post140168015146632')"><pre>        )</pre></li>
  1103.                  
  1104.               </ol>
  1105.              
  1106.             </div>
  1107.          
  1108.  
  1109.          
  1110.             <div class="commands">
  1111.                
  1112.                     <a href="#" onclick="return varToggle(this, '140168015146632')"><span>&#x25b6;</span> Local vars</a>
  1113.                
  1114.             </div>
  1115.             <table class="vars" id="v140168015146632">
  1116.               <thead>
  1117.                 <tr>
  1118.                   <th>Variable</th>
  1119.                   <th>Value</th>
  1120.                 </tr>
  1121.               </thead>
  1122.               <tbody>
  1123.                
  1124.                   <tr>
  1125.                     <td>args</td>
  1126.                     <td class="code"><pre>()</pre></td>
  1127.                   </tr>
  1128.                
  1129.                   <tr>
  1130.                     <td>handler</td>
  1131.                     <td class="code"><pre>&lt;bound method DataItemMarkup.put of &lt;datagator.api.portal.v2.mark.DataItemMarkup object at 0x7f7b68f205f8&gt;&gt;</pre></td>
  1132.                   </tr>
  1133.                
  1134.                   <tr>
  1135.                     <td>kwargs</td>
  1136.                     <td class="code"><pre>{&#39;key&#39;: &#39;ddddddd.recipe&#39;, &#39;name&#39;: &#39;dyad&#39;, &#39;repo&#39;: &#39;antonio&#39;}</pre></td>
  1137.                   </tr>
  1138.                
  1139.                   <tr>
  1140.                     <td>request</td>
  1141.                     <td class="code"><pre>&lt;WSGIRequest: PUT &#39;/api/repo/antonio/dyad/mark/ddddddd.recipe&#39;&gt;</pre></td>
  1142.                   </tr>
  1143.                
  1144.                   <tr>
  1145.                     <td>self</td>
  1146.                     <td class="code"><pre>&lt;datagator.api.portal.v2.mark.DataItemMarkup object at 0x7f7b68f205f8&gt;</pre></td>
  1147.                   </tr>
  1148.                
  1149.               </tbody>
  1150.             </table>
  1151.          
  1152.         </li>
  1153.      
  1154.        
  1155.         <li class="frame user">
  1156.           <code>./datagator/wsgi/decorators.py</code> in <code>wrapper</code>
  1157.  
  1158.          
  1159.             <div class="context" id="c140168015143432">
  1160.              
  1161.                 <ol start="77" class="pre-context" id="pre140168015143432">
  1162.                
  1163.                   <li onclick="toggle('pre140168015143432', 'post140168015143432')"><pre>                return MessageResponse(403, _(&quot;Failed authentication.&quot;))</pre></li>
  1164.                
  1165.                   <li onclick="toggle('pre140168015143432', 'post140168015143432')"><pre></pre></li>
  1166.                
  1167.                   <li onclick="toggle('pre140168015143432', 'post140168015143432')"><pre>            if not allow_unauthorized and not request.user.is_authenticated():</pre></li>
  1168.                
  1169.                   <li onclick="toggle('pre140168015143432', 'post140168015143432')"><pre>                response = MessageResponse(401, _(&quot;Unauthorized access.&quot;))</pre></li>
  1170.                
  1171.                   <li onclick="toggle('pre140168015143432', 'post140168015143432')"><pre>                response[&#39;WWW-Authenticate&#39;] = WWW_AUTH_TEMPLATE.format(realm)</pre></li>
  1172.                
  1173.                   <li onclick="toggle('pre140168015143432', 'post140168015143432')"><pre>                return response</pre></li>
  1174.                
  1175.                   <li onclick="toggle('pre140168015143432', 'post140168015143432')"><pre></pre></li>
  1176.                
  1177.                 </ol>
  1178.              
  1179.               <ol start="84" class="context-line">
  1180.                 <li onclick="toggle('pre140168015143432', 'post140168015143432')"><pre>
  1181.             return method(view, request, *args, **kwargs)</pre> <span>...</span></li></ol>
  1182.              
  1183.                 <ol start='85' class="post-context" id="post140168015143432">
  1184.                  
  1185.                   <li onclick="toggle('pre140168015143432', 'post140168015143432')"><pre></pre></li>
  1186.                  
  1187.                   <li onclick="toggle('pre140168015143432', 'post140168015143432')"><pre>        return wrapper</pre></li>
  1188.                  
  1189.                   <li onclick="toggle('pre140168015143432', 'post140168015143432')"><pre></pre></li>
  1190.                  
  1191.                   <li onclick="toggle('pre140168015143432', 'post140168015143432')"><pre>    return decorator</pre></li>
  1192.                  
  1193.                   <li onclick="toggle('pre140168015143432', 'post140168015143432')"><pre></pre></li>
  1194.                  
  1195.                   <li onclick="toggle('pre140168015143432', 'post140168015143432')"><pre></pre></li>
  1196.                  
  1197.               </ol>
  1198.              
  1199.             </div>
  1200.          
  1201.  
  1202.          
  1203.             <div class="commands">
  1204.                
  1205.                     <a href="#" onclick="return varToggle(this, '140168015143432')"><span>&#x25b6;</span> Local vars</a>
  1206.                
  1207.             </div>
  1208.             <table class="vars" id="v140168015143432">
  1209.               <thead>
  1210.                 <tr>
  1211.                   <th>Variable</th>
  1212.                   <th>Value</th>
  1213.                 </tr>
  1214.               </thead>
  1215.               <tbody>
  1216.                
  1217.                   <tr>
  1218.                     <td>allow_inactive</td>
  1219.                     <td class="code"><pre>False</pre></td>
  1220.                   </tr>
  1221.                
  1222.                   <tr>
  1223.                     <td>allow_unauthorized</td>
  1224.                     <td class="code"><pre>False</pre></td>
  1225.                   </tr>
  1226.                
  1227.                   <tr>
  1228.                     <td>args</td>
  1229.                     <td class="code"><pre>()</pre></td>
  1230.                   </tr>
  1231.                
  1232.                   <tr>
  1233.                     <td>kwargs</td>
  1234.                     <td class="code"><pre>{&#39;key&#39;: &#39;ddddddd.recipe&#39;, &#39;name&#39;: &#39;dyad&#39;, &#39;repo&#39;: &#39;antonio&#39;}</pre></td>
  1235.                   </tr>
  1236.                
  1237.                   <tr>
  1238.                     <td>method</td>
  1239.                     <td class="code"><pre>&lt;function DataItemMarkup.put at 0x7f7b69dbea60&gt;</pre></td>
  1240.                   </tr>
  1241.                
  1242.                   <tr>
  1243.                     <td>options</td>
  1244.                     <td class="code"><pre>{}</pre></td>
  1245.                   </tr>
  1246.                
  1247.                   <tr>
  1248.                     <td>realm</td>
  1249.                     <td class="code"><pre>&#39;DataGator&#39;</pre></td>
  1250.                   </tr>
  1251.                
  1252.                   <tr>
  1253.                     <td>request</td>
  1254.                     <td class="code"><pre>&lt;WSGIRequest: PUT &#39;/api/repo/antonio/dyad/mark/ddddddd.recipe&#39;&gt;</pre></td>
  1255.                   </tr>
  1256.                
  1257.                   <tr>
  1258.                     <td>view</td>
  1259.                     <td class="code"><pre>&lt;datagator.api.portal.v2.mark.DataItemMarkup object at 0x7f7b68f205f8&gt;</pre></td>
  1260.                   </tr>
  1261.                
  1262.               </tbody>
  1263.             </table>
  1264.          
  1265.         </li>
  1266.      
  1267.        
  1268.         <li class="frame user">
  1269.           <code>./datagator/api/portal/v2/mark.py</code> in <code>put</code>
  1270.  
  1271.          
  1272.             <div class="context" id="c140168015145864">
  1273.              
  1274.                 <ol start="310" class="pre-context" id="pre140168015145864">
  1275.                
  1276.                   <li onclick="toggle('pre140168015145864', 'post140168015145864')"><pre>            rev=rev))</pre></li>
  1277.                
  1278.                   <li onclick="toggle('pre140168015145864', 'post140168015145864')"><pre>        append_header(headers, &#39;Link&#39;, content.to_link(base_uri, extra_qs))</pre></li>
  1279.                
  1280.                   <li onclick="toggle('pre140168015145864', 'post140168015145864')"><pre></pre></li>
  1281.                
  1282.                   <li onclick="toggle('pre140168015145864', 'post140168015145864')"><pre>        return self.ok(content, **headers)</pre></li>
  1283.                
  1284.                   <li onclick="toggle('pre140168015145864', 'post140168015145864')"><pre></pre></li>
  1285.                
  1286.                   <li onclick="toggle('pre140168015145864', 'post140168015145864')"><pre>    @with_authentication</pre></li>
  1287.                
  1288.                   <li onclick="toggle('pre140168015145864', 'post140168015145864')"><pre>    def put(self, request, repo, name, key, rev=None):</pre></li>
  1289.                
  1290.                 </ol>
  1291.              
  1292.               <ol start="317" class="context-line">
  1293.                 <li onclick="toggle('pre140168015145864', 'post140168015145864')"><pre>
  1294.         return self.forward_request(request, repo, name, key, rev)</pre> <span>...</span></li></ol>
  1295.              
  1296.                 <ol start='318' class="post-context" id="post140168015145864">
  1297.                  
  1298.                   <li onclick="toggle('pre140168015145864', 'post140168015145864')"><pre></pre></li>
  1299.                  
  1300.                   <li onclick="toggle('pre140168015145864', 'post140168015145864')"><pre>    @with_authentication</pre></li>
  1301.                  
  1302.                   <li onclick="toggle('pre140168015145864', 'post140168015145864')"><pre>    def delete(self, request, repo, name, key, rev=None):</pre></li>
  1303.                  
  1304.                   <li onclick="toggle('pre140168015145864', 'post140168015145864')"><pre>        return self.forward_request(request, repo, name, key, rev)</pre></li>
  1305.                  
  1306.                   <li onclick="toggle('pre140168015145864', 'post140168015145864')"><pre></pre></li>
  1307.                  
  1308.                   <li onclick="toggle('pre140168015145864', 'post140168015145864')"><pre>    @classmethod</pre></li>
  1309.                  
  1310.               </ol>
  1311.              
  1312.             </div>
  1313.          
  1314.  
  1315.          
  1316.             <div class="commands">
  1317.                
  1318.                     <a href="#" onclick="return varToggle(this, '140168015145864')"><span>&#x25b6;</span> Local vars</a>
  1319.                
  1320.             </div>
  1321.             <table class="vars" id="v140168015145864">
  1322.               <thead>
  1323.                 <tr>
  1324.                   <th>Variable</th>
  1325.                   <th>Value</th>
  1326.                 </tr>
  1327.               </thead>
  1328.               <tbody>
  1329.                
  1330.                   <tr>
  1331.                     <td>key</td>
  1332.                     <td class="code"><pre>&#39;ddddddd.recipe&#39;</pre></td>
  1333.                   </tr>
  1334.                
  1335.                   <tr>
  1336.                     <td>name</td>
  1337.                     <td class="code"><pre>&#39;dyad&#39;</pre></td>
  1338.                   </tr>
  1339.                
  1340.                   <tr>
  1341.                     <td>repo</td>
  1342.                     <td class="code"><pre>&#39;antonio&#39;</pre></td>
  1343.                   </tr>
  1344.                
  1345.                   <tr>
  1346.                     <td>request</td>
  1347.                     <td class="code"><pre>&lt;WSGIRequest: PUT &#39;/api/repo/antonio/dyad/mark/ddddddd.recipe&#39;&gt;</pre></td>
  1348.                   </tr>
  1349.                
  1350.                   <tr>
  1351.                     <td>rev</td>
  1352.                     <td class="code"><pre>None</pre></td>
  1353.                   </tr>
  1354.                
  1355.                   <tr>
  1356.                     <td>self</td>
  1357.                     <td class="code"><pre>&lt;datagator.api.portal.v2.mark.DataItemMarkup object at 0x7f7b68f205f8&gt;</pre></td>
  1358.                   </tr>
  1359.                
  1360.               </tbody>
  1361.             </table>
  1362.          
  1363.         </li>
  1364.      
  1365.        
  1366.         <li class="frame user">
  1367.           <code>./datagator/api/portal/v2/mark.py</code> in <code>forward_request</code>
  1368.  
  1369.          
  1370.             <div class="context" id="c140168015144328">
  1371.              
  1372.                 <ol start="330" class="pre-context" id="pre140168015144328">
  1373.                
  1374.                   <li onclick="toggle('pre140168015144328', 'post140168015144328')"><pre>        }</pre></li>
  1375.                
  1376.                   <li onclick="toggle('pre140168015144328', 'post140168015144328')"><pre>        if rev is None:</pre></li>
  1377.                
  1378.                   <li onclick="toggle('pre140168015144328', 'post140168015144328')"><pre>            view = view.format(&quot;dataset&quot;)</pre></li>
  1379.                
  1380.                   <li onclick="toggle('pre140168015144328', 'post140168015144328')"><pre>        else:</pre></li>
  1381.                
  1382.                   <li onclick="toggle('pre140168015144328', 'post140168015144328')"><pre>            view = view.format(&quot;dataset_r&quot;)</pre></li>
  1383.                
  1384.                   <li onclick="toggle('pre140168015144328', 'post140168015144328')"><pre>            kwargs[&#39;rev&#39;] = rev</pre></li>
  1385.                
  1386.                   <li onclick="toggle('pre140168015144328', 'post140168015144328')"><pre>        endpoint = resolve(reverse(view, kwargs=kwargs))</pre></li>
  1387.                
  1388.                 </ol>
  1389.              
  1390.               <ol start="337" class="context-line">
  1391.                 <li onclick="toggle('pre140168015144328', 'post140168015144328')"><pre>
  1392.         return endpoint.func(request, *endpoint.args, **endpoint.kwargs)</pre> <span>...</span></li></ol>
  1393.              
  1394.                 <ol start='338' class="post-context" id="post140168015144328">
  1395.                  
  1396.                   <li onclick="toggle('pre140168015144328', 'post140168015144328')"><pre></pre></li>
  1397.                  
  1398.                   <li onclick="toggle('pre140168015144328', 'post140168015144328')"><pre></pre></li>
  1399.                  
  1400.                   <li onclick="toggle('pre140168015144328', 'post140168015144328')"><pre>class TeamMarkup(Endpoint, RoleMixin, MarkupMixin):</pre></li>
  1401.                  
  1402.                   <li onclick="toggle('pre140168015144328', 'post140168015144328')"><pre>    &quot;&quot;&quot;</pre></li>
  1403.                  
  1404.                   <li onclick="toggle('pre140168015144328', 'post140168015144328')"><pre>    Team Markup Endpoint</pre></li>
  1405.                  
  1406.                   <li onclick="toggle('pre140168015144328', 'post140168015144328')"><pre>    --------------------</pre></li>
  1407.                  
  1408.               </ol>
  1409.              
  1410.             </div>
  1411.          
  1412.  
  1413.          
  1414.             <div class="commands">
  1415.                
  1416.                     <a href="#" onclick="return varToggle(this, '140168015144328')"><span>&#x25b6;</span> Local vars</a>
  1417.                
  1418.             </div>
  1419.             <table class="vars" id="v140168015144328">
  1420.               <thead>
  1421.                 <tr>
  1422.                   <th>Variable</th>
  1423.                   <th>Value</th>
  1424.                 </tr>
  1425.               </thead>
  1426.               <tbody>
  1427.                
  1428.                   <tr>
  1429.                     <td>cls</td>
  1430.                     <td class="code"><pre>&lt;class &#39;datagator.api.portal.v2.mark.DataItemMarkup&#39;&gt;</pre></td>
  1431.                   </tr>
  1432.                
  1433.                   <tr>
  1434.                     <td>endpoint</td>
  1435.                     <td class="code"><pre>ResolverMatch(func=datagator.api.portal.v2.mark.CollectionMarkup, args=(), kwargs={&#39;repo&#39;: &#39;antonio&#39;, &#39;name&#39;: &#39;dyad&#39;}, url_name=list, app_names=[], namespaces=[&#39;api&#39;, &#39;v2&#39;, &#39;repo&#39;, &#39;dataset&#39;, &#39;mark&#39;])</pre></td>
  1436.                   </tr>
  1437.                
  1438.                   <tr>
  1439.                     <td>key</td>
  1440.                     <td class="code"><pre>&#39;ddddddd.recipe&#39;</pre></td>
  1441.                   </tr>
  1442.                
  1443.                   <tr>
  1444.                     <td>kwargs</td>
  1445.                     <td class="code"><pre>{&#39;name&#39;: &#39;dyad&#39;, &#39;repo&#39;: &#39;antonio&#39;}</pre></td>
  1446.                   </tr>
  1447.                
  1448.                   <tr>
  1449.                     <td>name</td>
  1450.                     <td class="code"><pre>&#39;dyad&#39;</pre></td>
  1451.                   </tr>
  1452.                
  1453.                   <tr>
  1454.                     <td>repo</td>
  1455.                     <td class="code"><pre>&#39;antonio&#39;</pre></td>
  1456.                   </tr>
  1457.                
  1458.                   <tr>
  1459.                     <td>request</td>
  1460.                     <td class="code"><pre>&lt;WSGIRequest: PUT &#39;/api/repo/antonio/dyad/mark/ddddddd.recipe&#39;&gt;</pre></td>
  1461.                   </tr>
  1462.                
  1463.                   <tr>
  1464.                     <td>rev</td>
  1465.                     <td class="code"><pre>None</pre></td>
  1466.                   </tr>
  1467.                
  1468.                   <tr>
  1469.                     <td>view</td>
  1470.                     <td class="code"><pre>&#39;api:v2:repo:dataset:mark:list&#39;</pre></td>
  1471.                   </tr>
  1472.                
  1473.               </tbody>
  1474.             </table>
  1475.          
  1476.         </li>
  1477.      
  1478.        
  1479.         <li class="frame django">
  1480.           <code>/opt/datagator/lib/python3.4/site-packages/django/views/generic/base.py</code> in <code>view</code>
  1481.  
  1482.          
  1483.             <div class="context" id="c140168015145032">
  1484.              
  1485.                 <ol start="61" class="pre-context" id="pre140168015145032">
  1486.                
  1487.                   <li onclick="toggle('pre140168015145032', 'post140168015145032')"><pre>        def view(request, *args, **kwargs):</pre></li>
  1488.                
  1489.                   <li onclick="toggle('pre140168015145032', 'post140168015145032')"><pre>            self = cls(**initkwargs)</pre></li>
  1490.                
  1491.                   <li onclick="toggle('pre140168015145032', 'post140168015145032')"><pre>            if hasattr(self, &#39;get&#39;) and not hasattr(self, &#39;head&#39;):</pre></li>
  1492.                
  1493.                   <li onclick="toggle('pre140168015145032', 'post140168015145032')"><pre>                self.head = self.get</pre></li>
  1494.                
  1495.                   <li onclick="toggle('pre140168015145032', 'post140168015145032')"><pre>            self.request = request</pre></li>
  1496.                
  1497.                   <li onclick="toggle('pre140168015145032', 'post140168015145032')"><pre>            self.args = args</pre></li>
  1498.                
  1499.                   <li onclick="toggle('pre140168015145032', 'post140168015145032')"><pre>            self.kwargs = kwargs</pre></li>
  1500.                
  1501.                 </ol>
  1502.              
  1503.               <ol start="68" class="context-line">
  1504.                 <li onclick="toggle('pre140168015145032', 'post140168015145032')"><pre>
  1505.             return self.dispatch(request, *args, **kwargs)</pre> <span>...</span></li></ol>
  1506.              
  1507.                 <ol start='69' class="post-context" id="post140168015145032">
  1508.                  
  1509.                   <li onclick="toggle('pre140168015145032', 'post140168015145032')"><pre>        view.view_class = cls</pre></li>
  1510.                  
  1511.                   <li onclick="toggle('pre140168015145032', 'post140168015145032')"><pre>        view.view_initkwargs = initkwargs</pre></li>
  1512.                  
  1513.                   <li onclick="toggle('pre140168015145032', 'post140168015145032')"><pre></pre></li>
  1514.                  
  1515.                   <li onclick="toggle('pre140168015145032', 'post140168015145032')"><pre>        # take name and docstring from class</pre></li>
  1516.                  
  1517.                   <li onclick="toggle('pre140168015145032', 'post140168015145032')"><pre>        update_wrapper(view, cls, updated=())</pre></li>
  1518.                  
  1519.                   <li onclick="toggle('pre140168015145032', 'post140168015145032')"><pre></pre></li>
  1520.                  
  1521.               </ol>
  1522.              
  1523.             </div>
  1524.          
  1525.  
  1526.          
  1527.             <div class="commands">
  1528.                
  1529.                     <a href="#" onclick="return varToggle(this, '140168015145032')"><span>&#x25b6;</span> Local vars</a>
  1530.                
  1531.             </div>
  1532.             <table class="vars" id="v140168015145032">
  1533.               <thead>
  1534.                 <tr>
  1535.                   <th>Variable</th>
  1536.                   <th>Value</th>
  1537.                 </tr>
  1538.               </thead>
  1539.               <tbody>
  1540.                
  1541.                   <tr>
  1542.                     <td>args</td>
  1543.                     <td class="code"><pre>()</pre></td>
  1544.                   </tr>
  1545.                
  1546.                   <tr>
  1547.                     <td>cls</td>
  1548.                     <td class="code"><pre>&lt;class &#39;datagator.api.portal.v2.mark.CollectionMarkup&#39;&gt;</pre></td>
  1549.                   </tr>
  1550.                
  1551.                   <tr>
  1552.                     <td>initkwargs</td>
  1553.                     <td class="code"><pre>{}</pre></td>
  1554.                   </tr>
  1555.                
  1556.                   <tr>
  1557.                     <td>kwargs</td>
  1558.                     <td class="code"><pre>{&#39;name&#39;: &#39;dyad&#39;, &#39;repo&#39;: &#39;antonio&#39;}</pre></td>
  1559.                   </tr>
  1560.                
  1561.                   <tr>
  1562.                     <td>request</td>
  1563.                     <td class="code"><pre>&lt;WSGIRequest: PUT &#39;/api/repo/antonio/dyad/mark/ddddddd.recipe&#39;&gt;</pre></td>
  1564.                   </tr>
  1565.                
  1566.                   <tr>
  1567.                     <td>self</td>
  1568.                     <td class="code"><pre>&lt;datagator.api.portal.v2.mark.CollectionMarkup object at 0x7f7b69a86438&gt;</pre></td>
  1569.                   </tr>
  1570.                
  1571.               </tbody>
  1572.             </table>
  1573.          
  1574.         </li>
  1575.      
  1576.        
  1577.         <li class="frame user">
  1578.           <code>./datagator/wsgi/decorators.py</code> in <code>wrapper</code>
  1579.  
  1580.          
  1581.             <div class="context" id="c140168015145096">
  1582.              
  1583.                 <ol start="192" class="pre-context" id="pre140168015145096">
  1584.                
  1585.                   <li onclick="toggle('pre140168015145096', 'post140168015145096')"><pre>                # over-rate has higher precedence than other error responses</pre></li>
  1586.                
  1587.                   <li onclick="toggle('pre140168015145096', 'post140168015145096')"><pre>                response = MessageResponse(429, _(&quot;API request over-rate.&quot;))</pre></li>
  1588.                
  1589.                   <li onclick="toggle('pre140168015145096', 'post140168015145096')"><pre>                response[&#39;Retry-After&#39;] = int(timeout)</pre></li>
  1590.                
  1591.                   <li onclick="toggle('pre140168015145096', 'post140168015145096')"><pre>            elif response is not None:</pre></li>
  1592.                
  1593.                   <li onclick="toggle('pre140168015145096', 'post140168015145096')"><pre>                # response created for error(s) occurred during rate limiting.</pre></li>
  1594.                
  1595.                   <li onclick="toggle('pre140168015145096', 'post140168015145096')"><pre>                pass</pre></li>
  1596.                
  1597.                   <li onclick="toggle('pre140168015145096', 'post140168015145096')"><pre>            else:</pre></li>
  1598.                
  1599.                 </ol>
  1600.              
  1601.               <ol start="199" class="context-line">
  1602.                 <li onclick="toggle('pre140168015145096', 'post140168015145096')"><pre>
  1603.                 response = method(view, request, *args, **kwargs)</pre> <span>...</span></li></ol>
  1604.              
  1605.                 <ol start='200' class="post-context" id="post140168015145096">
  1606.                  
  1607.                   <li onclick="toggle('pre140168015145096', 'post140168015145096')"><pre></pre></li>
  1608.                  
  1609.                   <li onclick="toggle('pre140168015145096', 'post140168015145096')"><pre>            response[&#39;X-RateLimit-Limit&#39;] = total</pre></li>
  1610.                  
  1611.                   <li onclick="toggle('pre140168015145096', 'post140168015145096')"><pre>            response[&#39;X-RateLimit-Remaining&#39;] = remain if remain &gt; 0 else 0</pre></li>
  1612.                  
  1613.                   <li onclick="toggle('pre140168015145096', 'post140168015145096')"><pre>            response[&#39;X-RateLimit-Reset&#39;] = int(math.ceil(dt.timestamp(reset)))</pre></li>
  1614.                  
  1615.                   <li onclick="toggle('pre140168015145096', 'post140168015145096')"><pre></pre></li>
  1616.                  
  1617.                   <li onclick="toggle('pre140168015145096', 'post140168015145096')"><pre>            return response</pre></li>
  1618.                  
  1619.               </ol>
  1620.              
  1621.             </div>
  1622.          
  1623.  
  1624.          
  1625.             <div class="commands">
  1626.                
  1627.                     <a href="#" onclick="return varToggle(this, '140168015145096')"><span>&#x25b6;</span> Local vars</a>
  1628.                
  1629.             </div>
  1630.             <table class="vars" id="v140168015145096">
  1631.               <thead>
  1632.                 <tr>
  1633.                   <th>Variable</th>
  1634.                   <th>Value</th>
  1635.                 </tr>
  1636.               </thead>
  1637.               <tbody>
  1638.                
  1639.                   <tr>
  1640.                     <td>args</td>
  1641.                     <td class="code"><pre>()</pre></td>
  1642.                   </tr>
  1643.                
  1644.                   <tr>
  1645.                     <td>cnt</td>
  1646.                     <td class="code"><pre>{&#39;1hr&#39;: 9}</pre></td>
  1647.                   </tr>
  1648.                
  1649.                   <tr>
  1650.                     <td>cost</td>
  1651.                     <td class="code"><pre>1</pre></td>
  1652.                   </tr>
  1653.                
  1654.                   <tr>
  1655.                     <td>key</td>
  1656.                     <td class="code"><pre>&#39;1hr&#39;</pre></td>
  1657.                   </tr>
  1658.                
  1659.                   <tr>
  1660.                     <td>kwargs</td>
  1661.                     <td class="code"><pre>{&#39;name&#39;: &#39;dyad&#39;, &#39;repo&#39;: &#39;antonio&#39;}</pre></td>
  1662.                   </tr>
  1663.                
  1664.                   <tr>
  1665.                     <td>mc_key</td>
  1666.                     <td class="code"><pre>&lt;function with_ratelimit.&lt;locals&gt;.decorator.&lt;locals&gt;.wrapper.&lt;locals&gt;.mc_key at 0x7f7b69a6c620&gt;</pre></td>
  1667.                   </tr>
  1668.                
  1669.                   <tr>
  1670.                     <td>method</td>
  1671.                     <td class="code"><pre>&lt;function Endpoint.dispatch at 0x7f7b6a393158&gt;</pre></td>
  1672.                   </tr>
  1673.                
  1674.                   <tr>
  1675.                     <td>nil</td>
  1676.                     <td class="code"><pre>2000</pre></td>
  1677.                   </tr>
  1678.                
  1679.                   <tr>
  1680.                     <td>options</td>
  1681.                     <td class="code"><pre>{}</pre></td>
  1682.                   </tr>
  1683.                
  1684.                   <tr>
  1685.                     <td>prefix</td>
  1686.                     <td class="code"><pre>&#39;user:712f7bd18f7f3de39f37e22ab5a68395/rate/&#39;</pre></td>
  1687.                   </tr>
  1688.                
  1689.                   <tr>
  1690.                     <td>quota</td>
  1691.                     <td class="code"><pre>{&#39;1hr&#39;: (2000, 3600)}</pre></td>
  1692.                   </tr>
  1693.                
  1694.                   <tr>
  1695.                     <td>remain</td>
  1696.                     <td class="code"><pre>1990</pre></td>
  1697.                   </tr>
  1698.                
  1699.                   <tr>
  1700.                     <td>request</td>
  1701.                     <td class="code"><pre>&lt;WSGIRequest: PUT &#39;/api/repo/antonio/dyad/mark/ddddddd.recipe&#39;&gt;</pre></td>
  1702.                   </tr>
  1703.                
  1704.                   <tr>
  1705.                     <td>reset</td>
  1706.                     <td class="code"><pre>datetime.datetime(2017, 1, 13, 14, 30, 34, 98304, tzinfo=&lt;isodate.tzinfo.Utc object at 0x7f7b73396cc0&gt;)</pre></td>
  1707.                   </tr>
  1708.                
  1709.                   <tr>
  1710.                     <td>response</td>
  1711.                     <td class="code"><pre>None</pre></td>
  1712.                   </tr>
  1713.                
  1714.                   <tr>
  1715.                     <td>timeout</td>
  1716.                     <td class="code"><pre>2948</pre></td>
  1717.                   </tr>
  1718.                
  1719.                   <tr>
  1720.                     <td>total</td>
  1721.                     <td class="code"><pre>2000</pre></td>
  1722.                   </tr>
  1723.                
  1724.                   <tr>
  1725.                     <td>ttl</td>
  1726.                     <td class="code"><pre>{&#39;1hr&#39;: 2948}</pre></td>
  1727.                   </tr>
  1728.                
  1729.                   <tr>
  1730.                     <td>uid</td>
  1731.                     <td class="code"><pre>&#39;antonio&#39;</pre></td>
  1732.                   </tr>
  1733.                
  1734.                   <tr>
  1735.                     <td>used</td>
  1736.                     <td class="code"><pre>9</pre></td>
  1737.                   </tr>
  1738.                
  1739.                   <tr>
  1740.                     <td>view</td>
  1741.                     <td class="code"><pre>&lt;datagator.api.portal.v2.mark.CollectionMarkup object at 0x7f7b69a86438&gt;</pre></td>
  1742.                   </tr>
  1743.                
  1744.               </tbody>
  1745.             </table>
  1746.          
  1747.         </li>
  1748.      
  1749.        
  1750.         <li class="frame user">
  1751.           <code>./datagator/wsgi/views.py</code> in <code>dispatch</code>
  1752.  
  1753.          
  1754.             <div class="context" id="c140168015143240">
  1755.              
  1756.                 <ol start="52" class="pre-context" id="pre140168015143240">
  1757.                
  1758.                   <li onclick="toggle('pre140168015143240', 'post140168015143240')"><pre>    def __call__(self, request, *args, **kwargs):</pre></li>
  1759.                
  1760.                   <li onclick="toggle('pre140168015143240', 'post140168015143240')"><pre>        return self.dispatch(request, *args, **kwargs)</pre></li>
  1761.                
  1762.                   <li onclick="toggle('pre140168015143240', 'post140168015143240')"><pre></pre></li>
  1763.                
  1764.                   <li onclick="toggle('pre140168015143240', 'post140168015143240')"><pre>    @with_ratelimit</pre></li>
  1765.                
  1766.                   <li onclick="toggle('pre140168015143240', 'post140168015143240')"><pre>    def dispatch(self, request, *args, **kwargs):</pre></li>
  1767.                
  1768.                   <li onclick="toggle('pre140168015143240', 'post140168015143240')"><pre>        # dispatch HTTP method</pre></li>
  1769.                
  1770.                   <li onclick="toggle('pre140168015143240', 'post140168015143240')"><pre>        try:</pre></li>
  1771.                
  1772.                 </ol>
  1773.              
  1774.               <ol start="59" class="context-line">
  1775.                 <li onclick="toggle('pre140168015143240', 'post140168015143240')"><pre>
  1776.             response = super(Endpoint, self).dispatch(request, *args, **kwargs)</pre> <span>...</span></li></ol>
  1777.              
  1778.                 <ol start='60' class="post-context" id="post140168015143240">
  1779.                  
  1780.                   <li onclick="toggle('pre140168015143240', 'post140168015143240')"><pre>        except ValidationError as e:</pre></li>
  1781.                  
  1782.                   <li onclick="toggle('pre140168015143240', 'post140168015143240')"><pre>            # ValidationError may contain a list of messages</pre></li>
  1783.                  
  1784.                   <li onclick="toggle('pre140168015143240', 'post140168015143240')"><pre>            return MessageResponse(400, &quot;\n&quot;.join(e))  # Bad Request</pre></li>
  1785.                  
  1786.                   <li onclick="toggle('pre140168015143240', 'post140168015143240')"><pre>        except PermissionDenied as e:</pre></li>
  1787.                  
  1788.                   <li onclick="toggle('pre140168015143240', 'post140168015143240')"><pre>            return MessageResponse(403, str(e))  # Forbidden</pre></li>
  1789.                  
  1790.                   <li onclick="toggle('pre140168015143240', 'post140168015143240')"><pre>        except ObjectDoesNotExist as e:</pre></li>
  1791.                  
  1792.               </ol>
  1793.              
  1794.             </div>
  1795.          
  1796.  
  1797.          
  1798.             <div class="commands">
  1799.                
  1800.                     <a href="#" onclick="return varToggle(this, '140168015143240')"><span>&#x25b6;</span> Local vars</a>
  1801.                
  1802.             </div>
  1803.             <table class="vars" id="v140168015143240">
  1804.               <thead>
  1805.                 <tr>
  1806.                   <th>Variable</th>
  1807.                   <th>Value</th>
  1808.                 </tr>
  1809.               </thead>
  1810.               <tbody>
  1811.                
  1812.                   <tr>
  1813.                     <td>__class__</td>
  1814.                     <td class="code"><pre>&lt;class &#39;datagator.wsgi.views.Endpoint&#39;&gt;</pre></td>
  1815.                   </tr>
  1816.                
  1817.                   <tr>
  1818.                     <td>args</td>
  1819.                     <td class="code"><pre>()</pre></td>
  1820.                   </tr>
  1821.                
  1822.                   <tr>
  1823.                     <td>kwargs</td>
  1824.                     <td class="code"><pre>{&#39;name&#39;: &#39;dyad&#39;, &#39;repo&#39;: &#39;antonio&#39;}</pre></td>
  1825.                   </tr>
  1826.                
  1827.                   <tr>
  1828.                     <td>request</td>
  1829.                     <td class="code"><pre>&lt;WSGIRequest: PUT &#39;/api/repo/antonio/dyad/mark/ddddddd.recipe&#39;&gt;</pre></td>
  1830.                   </tr>
  1831.                
  1832.                   <tr>
  1833.                     <td>self</td>
  1834.                     <td class="code"><pre>&lt;datagator.api.portal.v2.mark.CollectionMarkup object at 0x7f7b69a86438&gt;</pre></td>
  1835.                   </tr>
  1836.                
  1837.               </tbody>
  1838.             </table>
  1839.          
  1840.         </li>
  1841.      
  1842.        
  1843.         <li class="frame django">
  1844.           <code>/opt/datagator/lib/python3.4/site-packages/django/views/generic/base.py</code> in <code>dispatch</code>
  1845.  
  1846.          
  1847.             <div class="context" id="c140168015145480">
  1848.              
  1849.                 <ol start="81" class="pre-context" id="pre140168015145480">
  1850.                
  1851.                   <li onclick="toggle('pre140168015145480', 'post140168015145480')"><pre>        # Try to dispatch to the right method; if a method doesn&#39;t exist,</pre></li>
  1852.                
  1853.                   <li onclick="toggle('pre140168015145480', 'post140168015145480')"><pre>        # defer to the error handler. Also defer to the error handler if the</pre></li>
  1854.                
  1855.                   <li onclick="toggle('pre140168015145480', 'post140168015145480')"><pre>        # request method isn&#39;t on the approved list.</pre></li>
  1856.                
  1857.                   <li onclick="toggle('pre140168015145480', 'post140168015145480')"><pre>        if request.method.lower() in self.http_method_names:</pre></li>
  1858.                
  1859.                   <li onclick="toggle('pre140168015145480', 'post140168015145480')"><pre>            handler = getattr(self, request.method.lower(), self.http_method_not_allowed)</pre></li>
  1860.                
  1861.                   <li onclick="toggle('pre140168015145480', 'post140168015145480')"><pre>        else:</pre></li>
  1862.                
  1863.                   <li onclick="toggle('pre140168015145480', 'post140168015145480')"><pre>            handler = self.http_method_not_allowed</pre></li>
  1864.                
  1865.                 </ol>
  1866.              
  1867.               <ol start="88" class="context-line">
  1868.                 <li onclick="toggle('pre140168015145480', 'post140168015145480')"><pre>
  1869.         return handler(request, *args, **kwargs)</pre> <span>...</span></li></ol>
  1870.              
  1871.                 <ol start='89' class="post-context" id="post140168015145480">
  1872.                  
  1873.                   <li onclick="toggle('pre140168015145480', 'post140168015145480')"><pre></pre></li>
  1874.                  
  1875.                   <li onclick="toggle('pre140168015145480', 'post140168015145480')"><pre>    def http_method_not_allowed(self, request, *args, **kwargs):</pre></li>
  1876.                  
  1877.                   <li onclick="toggle('pre140168015145480', 'post140168015145480')"><pre>        logger.warning(</pre></li>
  1878.                  
  1879.                   <li onclick="toggle('pre140168015145480', 'post140168015145480')"><pre>            &#39;Method Not Allowed (%s): %s&#39;, request.method, request.path,</pre></li>
  1880.                  
  1881.                   <li onclick="toggle('pre140168015145480', 'post140168015145480')"><pre>            extra={&#39;status_code&#39;: 405, &#39;request&#39;: request}</pre></li>
  1882.                  
  1883.                   <li onclick="toggle('pre140168015145480', 'post140168015145480')"><pre>        )</pre></li>
  1884.                  
  1885.               </ol>
  1886.              
  1887.             </div>
  1888.          
  1889.  
  1890.          
  1891.             <div class="commands">
  1892.                
  1893.                     <a href="#" onclick="return varToggle(this, '140168015145480')"><span>&#x25b6;</span> Local vars</a>
  1894.                
  1895.             </div>
  1896.             <table class="vars" id="v140168015145480">
  1897.               <thead>
  1898.                 <tr>
  1899.                   <th>Variable</th>
  1900.                   <th>Value</th>
  1901.                 </tr>
  1902.               </thead>
  1903.               <tbody>
  1904.                
  1905.                   <tr>
  1906.                     <td>args</td>
  1907.                     <td class="code"><pre>()</pre></td>
  1908.                   </tr>
  1909.                
  1910.                   <tr>
  1911.                     <td>handler</td>
  1912.                     <td class="code"><pre>&lt;bound method CollectionMarkup.put of &lt;datagator.api.portal.v2.mark.CollectionMarkup object at 0x7f7b69a86438&gt;&gt;</pre></td>
  1913.                   </tr>
  1914.                
  1915.                   <tr>
  1916.                     <td>kwargs</td>
  1917.                     <td class="code"><pre>{&#39;name&#39;: &#39;dyad&#39;, &#39;repo&#39;: &#39;antonio&#39;}</pre></td>
  1918.                   </tr>
  1919.                
  1920.                   <tr>
  1921.                     <td>request</td>
  1922.                     <td class="code"><pre>&lt;WSGIRequest: PUT &#39;/api/repo/antonio/dyad/mark/ddddddd.recipe&#39;&gt;</pre></td>
  1923.                   </tr>
  1924.                
  1925.                   <tr>
  1926.                     <td>self</td>
  1927.                     <td class="code"><pre>&lt;datagator.api.portal.v2.mark.CollectionMarkup object at 0x7f7b69a86438&gt;</pre></td>
  1928.                   </tr>
  1929.                
  1930.               </tbody>
  1931.             </table>
  1932.          
  1933.         </li>
  1934.      
  1935.        
  1936.         <li class="frame user">
  1937.           <code>./datagator/wsgi/decorators.py</code> in <code>wrapper</code>
  1938.  
  1939.          
  1940.             <div class="context" id="c140168015146504">
  1941.              
  1942.                 <ol start="77" class="pre-context" id="pre140168015146504">
  1943.                
  1944.                   <li onclick="toggle('pre140168015146504', 'post140168015146504')"><pre>                return MessageResponse(403, _(&quot;Failed authentication.&quot;))</pre></li>
  1945.                
  1946.                   <li onclick="toggle('pre140168015146504', 'post140168015146504')"><pre></pre></li>
  1947.                
  1948.                   <li onclick="toggle('pre140168015146504', 'post140168015146504')"><pre>            if not allow_unauthorized and not request.user.is_authenticated():</pre></li>
  1949.                
  1950.                   <li onclick="toggle('pre140168015146504', 'post140168015146504')"><pre>                response = MessageResponse(401, _(&quot;Unauthorized access.&quot;))</pre></li>
  1951.                
  1952.                   <li onclick="toggle('pre140168015146504', 'post140168015146504')"><pre>                response[&#39;WWW-Authenticate&#39;] = WWW_AUTH_TEMPLATE.format(realm)</pre></li>
  1953.                
  1954.                   <li onclick="toggle('pre140168015146504', 'post140168015146504')"><pre>                return response</pre></li>
  1955.                
  1956.                   <li onclick="toggle('pre140168015146504', 'post140168015146504')"><pre></pre></li>
  1957.                
  1958.                 </ol>
  1959.              
  1960.               <ol start="84" class="context-line">
  1961.                 <li onclick="toggle('pre140168015146504', 'post140168015146504')"><pre>
  1962.             return method(view, request, *args, **kwargs)</pre> <span>...</span></li></ol>
  1963.              
  1964.                 <ol start='85' class="post-context" id="post140168015146504">
  1965.                  
  1966.                   <li onclick="toggle('pre140168015146504', 'post140168015146504')"><pre></pre></li>
  1967.                  
  1968.                   <li onclick="toggle('pre140168015146504', 'post140168015146504')"><pre>        return wrapper</pre></li>
  1969.                  
  1970.                   <li onclick="toggle('pre140168015146504', 'post140168015146504')"><pre></pre></li>
  1971.                  
  1972.                   <li onclick="toggle('pre140168015146504', 'post140168015146504')"><pre>    return decorator</pre></li>
  1973.                  
  1974.                   <li onclick="toggle('pre140168015146504', 'post140168015146504')"><pre></pre></li>
  1975.                  
  1976.                   <li onclick="toggle('pre140168015146504', 'post140168015146504')"><pre></pre></li>
  1977.                  
  1978.               </ol>
  1979.              
  1980.             </div>
  1981.          
  1982.  
  1983.          
  1984.             <div class="commands">
  1985.                
  1986.                     <a href="#" onclick="return varToggle(this, '140168015146504')"><span>&#x25b6;</span> Local vars</a>
  1987.                
  1988.             </div>
  1989.             <table class="vars" id="v140168015146504">
  1990.               <thead>
  1991.                 <tr>
  1992.                   <th>Variable</th>
  1993.                   <th>Value</th>
  1994.                 </tr>
  1995.               </thead>
  1996.               <tbody>
  1997.                
  1998.                   <tr>
  1999.                     <td>allow_inactive</td>
  2000.                     <td class="code"><pre>False</pre></td>
  2001.                   </tr>
  2002.                
  2003.                   <tr>
  2004.                     <td>allow_unauthorized</td>
  2005.                     <td class="code"><pre>False</pre></td>
  2006.                   </tr>
  2007.                
  2008.                   <tr>
  2009.                     <td>args</td>
  2010.                     <td class="code"><pre>()</pre></td>
  2011.                   </tr>
  2012.                
  2013.                   <tr>
  2014.                     <td>kwargs</td>
  2015.                     <td class="code"><pre>{&#39;name&#39;: &#39;dyad&#39;, &#39;repo&#39;: &#39;antonio&#39;}</pre></td>
  2016.                   </tr>
  2017.                
  2018.                   <tr>
  2019.                     <td>method</td>
  2020.                     <td class="code"><pre>&lt;function CollectionMarkup.put at 0x7f7b69dbe840&gt;</pre></td>
  2021.                   </tr>
  2022.                
  2023.                   <tr>
  2024.                     <td>options</td>
  2025.                     <td class="code"><pre>{}</pre></td>
  2026.                   </tr>
  2027.                
  2028.                   <tr>
  2029.                     <td>realm</td>
  2030.                     <td class="code"><pre>&#39;DataGator&#39;</pre></td>
  2031.                   </tr>
  2032.                
  2033.                   <tr>
  2034.                     <td>request</td>
  2035.                     <td class="code"><pre>&lt;WSGIRequest: PUT &#39;/api/repo/antonio/dyad/mark/ddddddd.recipe&#39;&gt;</pre></td>
  2036.                   </tr>
  2037.                
  2038.                   <tr>
  2039.                     <td>view</td>
  2040.                     <td class="code"><pre>&lt;datagator.api.portal.v2.mark.CollectionMarkup object at 0x7f7b69a86438&gt;</pre></td>
  2041.                   </tr>
  2042.                
  2043.               </tbody>
  2044.             </table>
  2045.          
  2046.         </li>
  2047.      
  2048.        
  2049.         <li class="frame user">
  2050.           <code>/usr/lib64/python3.4/contextlib.py</code> in <code>inner</code>
  2051.  
  2052.          
  2053.             <div class="context" id="c140168015146184">
  2054.              
  2055.                 <ol start="23" class="pre-context" id="pre140168015146184">
  2056.                
  2057.                   <li onclick="toggle('pre140168015146184', 'post140168015146184')"><pre>        &quot;&quot;&quot;</pre></li>
  2058.                
  2059.                   <li onclick="toggle('pre140168015146184', 'post140168015146184')"><pre>        return self</pre></li>
  2060.                
  2061.                   <li onclick="toggle('pre140168015146184', 'post140168015146184')"><pre></pre></li>
  2062.                
  2063.                   <li onclick="toggle('pre140168015146184', 'post140168015146184')"><pre>    def __call__(self, func):</pre></li>
  2064.                
  2065.                   <li onclick="toggle('pre140168015146184', 'post140168015146184')"><pre>        @wraps(func)</pre></li>
  2066.                
  2067.                   <li onclick="toggle('pre140168015146184', 'post140168015146184')"><pre>        def inner(*args, **kwds):</pre></li>
  2068.                
  2069.                   <li onclick="toggle('pre140168015146184', 'post140168015146184')"><pre>            with self._recreate_cm():</pre></li>
  2070.                
  2071.                 </ol>
  2072.              
  2073.               <ol start="30" class="context-line">
  2074.                 <li onclick="toggle('pre140168015146184', 'post140168015146184')"><pre>
  2075.                 return func(*args, **kwds)</pre> <span>...</span></li></ol>
  2076.              
  2077.                 <ol start='31' class="post-context" id="post140168015146184">
  2078.                  
  2079.                   <li onclick="toggle('pre140168015146184', 'post140168015146184')"><pre>        return inner</pre></li>
  2080.                  
  2081.                   <li onclick="toggle('pre140168015146184', 'post140168015146184')"><pre></pre></li>
  2082.                  
  2083.                   <li onclick="toggle('pre140168015146184', 'post140168015146184')"><pre></pre></li>
  2084.                  
  2085.                   <li onclick="toggle('pre140168015146184', 'post140168015146184')"><pre>class _GeneratorContextManager(ContextDecorator):</pre></li>
  2086.                  
  2087.                   <li onclick="toggle('pre140168015146184', 'post140168015146184')"><pre>    &quot;&quot;&quot;Helper for @contextmanager decorator.&quot;&quot;&quot;</pre></li>
  2088.                  
  2089.                   <li onclick="toggle('pre140168015146184', 'post140168015146184')"><pre></pre></li>
  2090.                  
  2091.               </ol>
  2092.              
  2093.             </div>
  2094.          
  2095.  
  2096.          
  2097.             <div class="commands">
  2098.                
  2099.                     <a href="#" onclick="return varToggle(this, '140168015146184')"><span>&#x25b6;</span> Local vars</a>
  2100.                
  2101.             </div>
  2102.             <table class="vars" id="v140168015146184">
  2103.               <thead>
  2104.                 <tr>
  2105.                   <th>Variable</th>
  2106.                   <th>Value</th>
  2107.                 </tr>
  2108.               </thead>
  2109.               <tbody>
  2110.                
  2111.                   <tr>
  2112.                     <td>args</td>
  2113.                     <td class="code"><pre>(&lt;datagator.api.portal.v2.mark.CollectionMarkup object at 0x7f7b69a86438&gt;,
  2114.  &lt;WSGIRequest: PUT &#39;/api/repo/antonio/dyad/mark/ddddddd.recipe&#39;&gt;)</pre></td>
  2115.                   </tr>
  2116.                
  2117.                   <tr>
  2118.                     <td>func</td>
  2119.                     <td class="code"><pre>&lt;function CollectionMarkup.put at 0x7f7b69dbe620&gt;</pre></td>
  2120.                   </tr>
  2121.                
  2122.                   <tr>
  2123.                     <td>kwds</td>
  2124.                     <td class="code"><pre>{&#39;name&#39;: &#39;dyad&#39;, &#39;repo&#39;: &#39;antonio&#39;}</pre></td>
  2125.                   </tr>
  2126.                
  2127.                   <tr>
  2128.                     <td>self</td>
  2129.                     <td class="code"><pre>&lt;django.db.transaction.Atomic object at 0x7f7b69e33da0&gt;</pre></td>
  2130.                   </tr>
  2131.                
  2132.               </tbody>
  2133.             </table>
  2134.          
  2135.         </li>
  2136.      
  2137.        
  2138.         <li class="frame user">
  2139.           <code>./datagator/api/portal/v2/mark.py</code> in <code>put</code>
  2140.  
  2141.          
  2142.             <div class="context" id="c140168015145736">
  2143.              
  2144.                 <ol start="166" class="pre-context" id="pre140168015145736">
  2145.                
  2146.                   <li onclick="toggle('pre140168015145736', 'post140168015145736')"><pre>                raise PermissionDenied(_(&quot;Permission mismatch.&quot;))</pre></li>
  2147.                
  2148.                   <li onclick="toggle('pre140168015145736', 'post140168015145736')"><pre>            # update `created` timestamp only if marking the HEAD revision</pre></li>
  2149.                
  2150.                   <li onclick="toggle('pre140168015145736', 'post140168015145736')"><pre>            if entity_rev == dataset.head:</pre></li>
  2151.                
  2152.                   <li onclick="toggle('pre140168015145736', 'post140168015145736')"><pre>                mark.created = dt.datetime.now(tz=dt.UTC)</pre></li>
  2153.                
  2154.                   <li onclick="toggle('pre140168015145736', 'post140168015145736')"><pre>            created = False</pre></li>
  2155.                
  2156.                   <li onclick="toggle('pre140168015145736', 'post140168015145736')"><pre></pre></li>
  2157.                
  2158.                   <li onclick="toggle('pre140168015145736', 'post140168015145736')"><pre>        mark.data = mark_data</pre></li>
  2159.                
  2160.                 </ol>
  2161.              
  2162.               <ol start="173" class="context-line">
  2163.                 <li onclick="toggle('pre140168015145736', 'post140168015145736')"><pre>
  2164.         mark.save()</pre> <span>...</span></li></ol>
  2165.              
  2166.                 <ol start='174' class="post-context" id="post140168015145736">
  2167.                  
  2168.                   <li onclick="toggle('pre140168015145736', 'post140168015145736')"><pre></pre></li>
  2169.                  
  2170.                   <li onclick="toggle('pre140168015145736', 'post140168015145736')"><pre>        # ship out response</pre></li>
  2171.                  
  2172.                   <li onclick="toggle('pre140168015145736', 'post140168015145736')"><pre>        response = None</pre></li>
  2173.                  
  2174.                   <li onclick="toggle('pre140168015145736', 'post140168015145736')"><pre>        if created:</pre></li>
  2175.                  
  2176.                   <li onclick="toggle('pre140168015145736', 'post140168015145736')"><pre>            response = EntityResponse(201, mark)</pre></li>
  2177.                  
  2178.                   <li onclick="toggle('pre140168015145736', 'post140168015145736')"><pre>        else:</pre></li>
  2179.                  
  2180.               </ol>
  2181.              
  2182.             </div>
  2183.          
  2184.  
  2185.          
  2186.             <div class="commands">
  2187.                
  2188.                     <a href="#" onclick="return varToggle(this, '140168015145736')"><span>&#x25b6;</span> Local vars</a>
  2189.                
  2190.             </div>
  2191.             <table class="vars" id="v140168015145736">
  2192.               <thead>
  2193.                 <tr>
  2194.                   <th>Variable</th>
  2195.                   <th>Value</th>
  2196.                 </tr>
  2197.               </thead>
  2198.               <tbody>
  2199.                
  2200.                   <tr>
  2201.                     <td>actor</td>
  2202.                     <td class="code"><pre>&lt;User: antonio&gt;</pre></td>
  2203.                   </tr>
  2204.                
  2205.                   <tr>
  2206.                     <td>created</td>
  2207.                     <td class="code"><pre>True</pre></td>
  2208.                   </tr>
  2209.                
  2210.                   <tr>
  2211.                     <td>dataset</td>
  2212.                     <td class="code"><pre>&lt;DataSet: antonio/dyad&gt;</pre></td>
  2213.                   </tr>
  2214.                
  2215.                   <tr>
  2216.                     <td>entity</td>
  2217.                     <td class="code"><pre>&lt;DataItem: antonio/dyad.48[&quot;ddddddd.recipe&quot;]&gt;</pre></td>
  2218.                   </tr>
  2219.                
  2220.                   <tr>
  2221.                     <td>entity_rev</td>
  2222.                     <td class="code"><pre>48</pre></td>
  2223.                   </tr>
  2224.                
  2225.                   <tr>
  2226.                     <td>mark</td>
  2227.                     <td class="code"><pre>&lt;Mark: antonio/dyad.48[&quot;ddddddd.recipe&quot;]/testMark2&gt;</pre></td>
  2228.                   </tr>
  2229.                
  2230.                   <tr>
  2231.                     <td>mark_comp_key</td>
  2232.                     <td class="code"><pre>(&#39;testMark2&#39;, None)</pre></td>
  2233.                   </tr>
  2234.                
  2235.                   <tr>
  2236.                     <td>mark_data</td>
  2237.                     <td class="code"><pre>&#39;www.test123.com&#39;</pre></td>
  2238.                   </tr>
  2239.                
  2240.                   <tr>
  2241.                     <td>name</td>
  2242.                     <td class="code"><pre>&#39;dyad&#39;</pre></td>
  2243.                   </tr>
  2244.                
  2245.                   <tr>
  2246.                     <td>predicates</td>
  2247.                     <td class="code"><pre>{&#39;creator_id&#39;: UUID(&#39;324e6020-e253-5b8e-8871-883ec17d0d45&#39;),
  2248.  &#39;entity_ct&#39;: &lt;ContentType: dataitem&gt;,
  2249.  &#39;entity_id&#39;: UUID(&#39;b3c0ecec-ccde-5bda-9a0d-f0e745b02199&#39;),
  2250.  &#39;name&#39;: &#39;testMark2&#39;}</pre></td>
  2251.                   </tr>
  2252.                
  2253.                   <tr>
  2254.                     <td>repo</td>
  2255.                     <td class="code"><pre>&#39;antonio&#39;</pre></td>
  2256.                   </tr>
  2257.                
  2258.                   <tr>
  2259.                     <td>request</td>
  2260.                     <td class="code"><pre>&lt;WSGIRequest: PUT &#39;/api/repo/antonio/dyad/mark/ddddddd.recipe&#39;&gt;</pre></td>
  2261.                   </tr>
  2262.                
  2263.                   <tr>
  2264.                     <td>rev</td>
  2265.                     <td class="code"><pre>48</pre></td>
  2266.                   </tr>
  2267.                
  2268.                   <tr>
  2269.                     <td>self</td>
  2270.                     <td class="code"><pre>&lt;datagator.api.portal.v2.mark.CollectionMarkup object at 0x7f7b69a86438&gt;</pre></td>
  2271.                   </tr>
  2272.                
  2273.               </tbody>
  2274.             </table>
  2275.          
  2276.         </li>
  2277.      
  2278.        
  2279.         <li class="frame user">
  2280.           <code>./datagator/ext/repodata/models/mark.py</code> in <code>save</code>
  2281.  
  2282.          
  2283.             <div class="context" id="c140168015146568">
  2284.              
  2285.                 <ol start="119" class="pre-context" id="pre140168015146568">
  2286.                
  2287.                   <li onclick="toggle('pre140168015146568', 'post140168015146568')"><pre>    def kind():</pre></li>
  2288.                
  2289.                   <li onclick="toggle('pre140168015146568', 'post140168015146568')"><pre>        return &quot;Mark&quot;</pre></li>
  2290.                
  2291.                   <li onclick="toggle('pre140168015146568', 'post140168015146568')"><pre></pre></li>
  2292.                
  2293.                   <li onclick="toggle('pre140168015146568', 'post140168015146568')"><pre>    # instance methods</pre></li>
  2294.                
  2295.                   <li onclick="toggle('pre140168015146568', 'post140168015146568')"><pre></pre></li>
  2296.                
  2297.                   <li onclick="toggle('pre140168015146568', 'post140168015146568')"><pre>    def save(self, *args, **kwargs):</pre></li>
  2298.                
  2299.                   <li onclick="toggle('pre140168015146568', 'post140168015146568')"><pre>        self.clean_fields()</pre></li>
  2300.                
  2301.                 </ol>
  2302.              
  2303.               <ol start="126" class="context-line">
  2304.                 <li onclick="toggle('pre140168015146568', 'post140168015146568')"><pre>
  2305.         return super(Mark, self).save(*args, **kwargs)</pre> <span>...</span></li></ol>
  2306.              
  2307.                 <ol start='127' class="post-context" id="post140168015146568">
  2308.                  
  2309.                   <li onclick="toggle('pre140168015146568', 'post140168015146568')"><pre></pre></li>
  2310.                  
  2311.                   <li onclick="toggle('pre140168015146568', 'post140168015146568')"><pre>    def to_dict(self):</pre></li>
  2312.                  
  2313.                   <li onclick="toggle('pre140168015146568', 'post140168015146568')"><pre>        serializable = OrderedDict([</pre></li>
  2314.                  
  2315.                   <li onclick="toggle('pre140168015146568', 'post140168015146568')"><pre>            (&#39;kind&#39;, &quot;datagator#{0}&quot;.format(self.kind())),</pre></li>
  2316.                  
  2317.                   <li onclick="toggle('pre140168015146568', 'post140168015146568')"><pre>            (&#39;entity&#39;, self.entity.ref),</pre></li>
  2318.                  
  2319.                   <li onclick="toggle('pre140168015146568', 'post140168015146568')"><pre>            (&#39;name&#39;, self.name),</pre></li>
  2320.                  
  2321.               </ol>
  2322.              
  2323.             </div>
  2324.          
  2325.  
  2326.          
  2327.             <div class="commands">
  2328.                
  2329.                     <a href="#" onclick="return varToggle(this, '140168015146568')"><span>&#x25b6;</span> Local vars</a>
  2330.                
  2331.             </div>
  2332.             <table class="vars" id="v140168015146568">
  2333.               <thead>
  2334.                 <tr>
  2335.                   <th>Variable</th>
  2336.                   <th>Value</th>
  2337.                 </tr>
  2338.               </thead>
  2339.               <tbody>
  2340.                
  2341.                   <tr>
  2342.                     <td>__class__</td>
  2343.                     <td class="code"><pre>&lt;class &#39;datagator.ext.repodata.models.mark.Mark&#39;&gt;</pre></td>
  2344.                   </tr>
  2345.                
  2346.                   <tr>
  2347.                     <td>args</td>
  2348.                     <td class="code"><pre>()</pre></td>
  2349.                   </tr>
  2350.                
  2351.                   <tr>
  2352.                     <td>kwargs</td>
  2353.                     <td class="code"><pre>{}</pre></td>
  2354.                   </tr>
  2355.                
  2356.                   <tr>
  2357.                     <td>self</td>
  2358.                     <td class="code"><pre>&lt;Mark: antonio/dyad.48[&quot;ddddddd.recipe&quot;]/testMark2&gt;</pre></td>
  2359.                   </tr>
  2360.                
  2361.               </tbody>
  2362.             </table>
  2363.          
  2364.         </li>
  2365.      
  2366.        
  2367.         <li class="frame django">
  2368.           <code>/opt/datagator/lib/python3.4/site-packages/django/db/models/base.py</code> in <code>save</code>
  2369.  
  2370.          
  2371.             <div class="context" id="c140168015144904">
  2372.              
  2373.                 <ol start="789" class="pre-context" id="pre140168015144904">
  2374.                
  2375.                   <li onclick="toggle('pre140168015144904', 'post140168015144904')"><pre>                if not field.primary_key and not hasattr(field, &#39;through&#39;):</pre></li>
  2376.                
  2377.                   <li onclick="toggle('pre140168015144904', 'post140168015144904')"><pre>                    field_names.add(field.attname)</pre></li>
  2378.                
  2379.                   <li onclick="toggle('pre140168015144904', 'post140168015144904')"><pre>            loaded_fields = field_names.difference(deferred_fields)</pre></li>
  2380.                
  2381.                   <li onclick="toggle('pre140168015144904', 'post140168015144904')"><pre>            if loaded_fields:</pre></li>
  2382.                
  2383.                   <li onclick="toggle('pre140168015144904', 'post140168015144904')"><pre>                update_fields = frozenset(loaded_fields)</pre></li>
  2384.                
  2385.                   <li onclick="toggle('pre140168015144904', 'post140168015144904')"><pre></pre></li>
  2386.                
  2387.                   <li onclick="toggle('pre140168015144904', 'post140168015144904')"><pre>        self.save_base(using=using, force_insert=force_insert,</pre></li>
  2388.                
  2389.                 </ol>
  2390.              
  2391.               <ol start="796" class="context-line">
  2392.                 <li onclick="toggle('pre140168015144904', 'post140168015144904')"><pre>
  2393.                        force_update=force_update, update_fields=update_fields)</pre> <span>...</span></li></ol>
  2394.              
  2395.                 <ol start='797' class="post-context" id="post140168015144904">
  2396.                  
  2397.                   <li onclick="toggle('pre140168015144904', 'post140168015144904')"><pre>    save.alters_data = True</pre></li>
  2398.                  
  2399.                   <li onclick="toggle('pre140168015144904', 'post140168015144904')"><pre></pre></li>
  2400.                  
  2401.                   <li onclick="toggle('pre140168015144904', 'post140168015144904')"><pre>    def save_base(self, raw=False, force_insert=False,</pre></li>
  2402.                  
  2403.                   <li onclick="toggle('pre140168015144904', 'post140168015144904')"><pre>                  force_update=False, using=None, update_fields=None):</pre></li>
  2404.                  
  2405.                   <li onclick="toggle('pre140168015144904', 'post140168015144904')"><pre>        &quot;&quot;&quot;</pre></li>
  2406.                  
  2407.                   <li onclick="toggle('pre140168015144904', 'post140168015144904')"><pre>        Handles the parts of saving which should be done only once per save,</pre></li>
  2408.                  
  2409.               </ol>
  2410.              
  2411.             </div>
  2412.          
  2413.  
  2414.          
  2415.             <div class="commands">
  2416.                
  2417.                     <a href="#" onclick="return varToggle(this, '140168015144904')"><span>&#x25b6;</span> Local vars</a>
  2418.                
  2419.             </div>
  2420.             <table class="vars" id="v140168015144904">
  2421.               <thead>
  2422.                 <tr>
  2423.                   <th>Variable</th>
  2424.                   <th>Value</th>
  2425.                 </tr>
  2426.               </thead>
  2427.               <tbody>
  2428.                
  2429.                   <tr>
  2430.                     <td>deferred_fields</td>
  2431.                     <td class="code"><pre>set()</pre></td>
  2432.                   </tr>
  2433.                
  2434.                   <tr>
  2435.                     <td>field</td>
  2436.                     <td class="code"><pre>&lt;django.contrib.postgres.fields.jsonb.JSONField: data&gt;</pre></td>
  2437.                   </tr>
  2438.                
  2439.                   <tr>
  2440.                     <td>force_insert</td>
  2441.                     <td class="code"><pre>False</pre></td>
  2442.                   </tr>
  2443.                
  2444.                   <tr>
  2445.                     <td>force_update</td>
  2446.                     <td class="code"><pre>False</pre></td>
  2447.                   </tr>
  2448.                
  2449.                   <tr>
  2450.                     <td>obj</td>
  2451.                     <td class="code"><pre>&lt;ContentType: dataitem&gt;</pre></td>
  2452.                   </tr>
  2453.                
  2454.                   <tr>
  2455.                     <td>self</td>
  2456.                     <td class="code"><pre>&lt;Mark: antonio/dyad.48[&quot;ddddddd.recipe&quot;]/testMark2&gt;</pre></td>
  2457.                   </tr>
  2458.                
  2459.                   <tr>
  2460.                     <td>update_fields</td>
  2461.                     <td class="code"><pre>None</pre></td>
  2462.                   </tr>
  2463.                
  2464.                   <tr>
  2465.                     <td>using</td>
  2466.                     <td class="code"><pre>&#39;default&#39;</pre></td>
  2467.                   </tr>
  2468.                
  2469.               </tbody>
  2470.             </table>
  2471.          
  2472.         </li>
  2473.      
  2474.        
  2475.         <li class="frame django">
  2476.           <code>/opt/datagator/lib/python3.4/site-packages/django/db/models/base.py</code> in <code>save_base</code>
  2477.  
  2478.          
  2479.             <div class="context" id="c140168027901640">
  2480.              
  2481.                 <ol start="817" class="pre-context" id="pre140168027901640">
  2482.                
  2483.                   <li onclick="toggle('pre140168027901640', 'post140168027901640')"><pre>        meta = cls._meta</pre></li>
  2484.                
  2485.                   <li onclick="toggle('pre140168027901640', 'post140168027901640')"><pre>        if not meta.auto_created:</pre></li>
  2486.                
  2487.                   <li onclick="toggle('pre140168027901640', 'post140168027901640')"><pre>            signals.pre_save.send(sender=origin, instance=self, raw=raw, using=using,</pre></li>
  2488.                
  2489.                   <li onclick="toggle('pre140168027901640', 'post140168027901640')"><pre>                                  update_fields=update_fields)</pre></li>
  2490.                
  2491.                   <li onclick="toggle('pre140168027901640', 'post140168027901640')"><pre>        with transaction.atomic(using=using, savepoint=False):</pre></li>
  2492.                
  2493.                   <li onclick="toggle('pre140168027901640', 'post140168027901640')"><pre>            if not raw:</pre></li>
  2494.                
  2495.                   <li onclick="toggle('pre140168027901640', 'post140168027901640')"><pre>                self._save_parents(cls, using, update_fields)</pre></li>
  2496.                
  2497.                 </ol>
  2498.              
  2499.               <ol start="824" class="context-line">
  2500.                 <li onclick="toggle('pre140168027901640', 'post140168027901640')"><pre>
  2501.             updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)</pre> <span>...</span></li></ol>
  2502.              
  2503.                 <ol start='825' class="post-context" id="post140168027901640">
  2504.                  
  2505.                   <li onclick="toggle('pre140168027901640', 'post140168027901640')"><pre>        # Store the database on which the object was saved</pre></li>
  2506.                  
  2507.                   <li onclick="toggle('pre140168027901640', 'post140168027901640')"><pre>        self._state.db = using</pre></li>
  2508.                  
  2509.                   <li onclick="toggle('pre140168027901640', 'post140168027901640')"><pre>        # Once saved, this is no longer a to-be-added instance.</pre></li>
  2510.                  
  2511.                   <li onclick="toggle('pre140168027901640', 'post140168027901640')"><pre>        self._state.adding = False</pre></li>
  2512.                  
  2513.                   <li onclick="toggle('pre140168027901640', 'post140168027901640')"><pre></pre></li>
  2514.                  
  2515.                   <li onclick="toggle('pre140168027901640', 'post140168027901640')"><pre>        # Signal that the save is complete</pre></li>
  2516.                  
  2517.               </ol>
  2518.              
  2519.             </div>
  2520.          
  2521.  
  2522.          
  2523.             <div class="commands">
  2524.                
  2525.                     <a href="#" onclick="return varToggle(this, '140168027901640')"><span>&#x25b6;</span> Local vars</a>
  2526.                
  2527.             </div>
  2528.             <table class="vars" id="v140168027901640">
  2529.               <thead>
  2530.                 <tr>
  2531.                   <th>Variable</th>
  2532.                   <th>Value</th>
  2533.                 </tr>
  2534.               </thead>
  2535.               <tbody>
  2536.                
  2537.                   <tr>
  2538.                     <td>cls</td>
  2539.                     <td class="code"><pre>&lt;class &#39;datagator.ext.repodata.models.mark.Mark&#39;&gt;</pre></td>
  2540.                   </tr>
  2541.                
  2542.                   <tr>
  2543.                     <td>force_insert</td>
  2544.                     <td class="code"><pre>False</pre></td>
  2545.                   </tr>
  2546.                
  2547.                   <tr>
  2548.                     <td>force_update</td>
  2549.                     <td class="code"><pre>False</pre></td>
  2550.                   </tr>
  2551.                
  2552.                   <tr>
  2553.                     <td>meta</td>
  2554.                     <td class="code"><pre>&lt;Options for Mark&gt;</pre></td>
  2555.                   </tr>
  2556.                
  2557.                   <tr>
  2558.                     <td>origin</td>
  2559.                     <td class="code"><pre>&lt;class &#39;datagator.ext.repodata.models.mark.Mark&#39;&gt;</pre></td>
  2560.                   </tr>
  2561.                
  2562.                   <tr>
  2563.                     <td>raw</td>
  2564.                     <td class="code"><pre>False</pre></td>
  2565.                   </tr>
  2566.                
  2567.                   <tr>
  2568.                     <td>self</td>
  2569.                     <td class="code"><pre>&lt;Mark: antonio/dyad.48[&quot;ddddddd.recipe&quot;]/testMark2&gt;</pre></td>
  2570.                   </tr>
  2571.                
  2572.                   <tr>
  2573.                     <td>update_fields</td>
  2574.                     <td class="code"><pre>None</pre></td>
  2575.                   </tr>
  2576.                
  2577.                   <tr>
  2578.                     <td>using</td>
  2579.                     <td class="code"><pre>&#39;default&#39;</pre></td>
  2580.                   </tr>
  2581.                
  2582.               </tbody>
  2583.             </table>
  2584.          
  2585.         </li>
  2586.      
  2587.        
  2588.         <li class="frame django">
  2589.           <code>/opt/datagator/lib/python3.4/site-packages/django/db/models/base.py</code> in <code>_save_table</code>
  2590.  
  2591.          
  2592.             <div class="context" id="c140168027900488">
  2593.              
  2594.                 <ol start="901" class="pre-context" id="pre140168027900488">
  2595.                
  2596.                   <li onclick="toggle('pre140168027900488', 'post140168027900488')"><pre>                self._order = order_value</pre></li>
  2597.                
  2598.                   <li onclick="toggle('pre140168027900488', 'post140168027900488')"><pre></pre></li>
  2599.                
  2600.                   <li onclick="toggle('pre140168027900488', 'post140168027900488')"><pre>            fields = meta.local_concrete_fields</pre></li>
  2601.                
  2602.                   <li onclick="toggle('pre140168027900488', 'post140168027900488')"><pre>            if not pk_set:</pre></li>
  2603.                
  2604.                   <li onclick="toggle('pre140168027900488', 'post140168027900488')"><pre>                fields = [f for f in fields if not isinstance(f, AutoField)]</pre></li>
  2605.                
  2606.                   <li onclick="toggle('pre140168027900488', 'post140168027900488')"><pre></pre></li>
  2607.                
  2608.                   <li onclick="toggle('pre140168027900488', 'post140168027900488')"><pre>            update_pk = bool(meta.has_auto_field and not pk_set)</pre></li>
  2609.                
  2610.                 </ol>
  2611.              
  2612.               <ol start="908" class="context-line">
  2613.                 <li onclick="toggle('pre140168027900488', 'post140168027900488')"><pre>
  2614.             result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)</pre> <span>...</span></li></ol>
  2615.              
  2616.                 <ol start='909' class="post-context" id="post140168027900488">
  2617.                  
  2618.                   <li onclick="toggle('pre140168027900488', 'post140168027900488')"><pre>            if update_pk:</pre></li>
  2619.                  
  2620.                   <li onclick="toggle('pre140168027900488', 'post140168027900488')"><pre>                setattr(self, meta.pk.attname, result)</pre></li>
  2621.                  
  2622.                   <li onclick="toggle('pre140168027900488', 'post140168027900488')"><pre>        return updated</pre></li>
  2623.                  
  2624.                   <li onclick="toggle('pre140168027900488', 'post140168027900488')"><pre></pre></li>
  2625.                  
  2626.                   <li onclick="toggle('pre140168027900488', 'post140168027900488')"><pre>    def _do_update(self, base_qs, using, pk_val, values, update_fields, forced_update):</pre></li>
  2627.                  
  2628.                   <li onclick="toggle('pre140168027900488', 'post140168027900488')"><pre>        &quot;&quot;&quot;</pre></li>
  2629.                  
  2630.               </ol>
  2631.              
  2632.             </div>
  2633.          
  2634.  
  2635.          
  2636.             <div class="commands">
  2637.                
  2638.                     <a href="#" onclick="return varToggle(this, '140168027900488')"><span>&#x25b6;</span> Local vars</a>
  2639.                
  2640.             </div>
  2641.             <table class="vars" id="v140168027900488">
  2642.               <thead>
  2643.                 <tr>
  2644.                   <th>Variable</th>
  2645.                   <th>Value</th>
  2646.                 </tr>
  2647.               </thead>
  2648.               <tbody>
  2649.                
  2650.                   <tr>
  2651.                     <td>cls</td>
  2652.                     <td class="code"><pre>&lt;class &#39;datagator.ext.repodata.models.mark.Mark&#39;&gt;</pre></td>
  2653.                   </tr>
  2654.                
  2655.                   <tr>
  2656.                     <td>fields</td>
  2657.                     <td class="code"><pre>[&lt;django.db.models.fields.DateTimeField: created&gt;,
  2658.  &lt;django.db.models.fields.related.ForeignKey: creator&gt;,
  2659.  &lt;django.db.models.fields.related.ForeignKey: entity_ct&gt;,
  2660.  &lt;datagator.wsgi.fields.UUIDField: entity_id&gt;,
  2661.  &lt;datagator.wsgi.fields.UUIDField: id&gt;,
  2662.  &lt;django.db.models.fields.CharField: name&gt;,
  2663.  &lt;django.contrib.postgres.fields.jsonb.JSONField: data&gt;]</pre></td>
  2664.                   </tr>
  2665.                
  2666.                   <tr>
  2667.                     <td>force_insert</td>
  2668.                     <td class="code"><pre>False</pre></td>
  2669.                   </tr>
  2670.                
  2671.                   <tr>
  2672.                     <td>force_update</td>
  2673.                     <td class="code"><pre>False</pre></td>
  2674.                   </tr>
  2675.                
  2676.                   <tr>
  2677.                     <td>meta</td>
  2678.                     <td class="code"><pre>&lt;Options for Mark&gt;</pre></td>
  2679.                   </tr>
  2680.                
  2681.                   <tr>
  2682.                     <td>non_pks</td>
  2683.                     <td class="code"><pre>[&lt;django.db.models.fields.DateTimeField: created&gt;,
  2684.  &lt;django.db.models.fields.related.ForeignKey: creator&gt;,
  2685.  &lt;django.db.models.fields.related.ForeignKey: entity_ct&gt;,
  2686.  &lt;datagator.wsgi.fields.UUIDField: entity_id&gt;,
  2687.  &lt;django.db.models.fields.CharField: name&gt;,
  2688.  &lt;django.contrib.postgres.fields.jsonb.JSONField: data&gt;]</pre></td>
  2689.                   </tr>
  2690.                
  2691.                   <tr>
  2692.                     <td>pk_set</td>
  2693.                     <td class="code"><pre>False</pre></td>
  2694.                   </tr>
  2695.                
  2696.                   <tr>
  2697.                     <td>pk_val</td>
  2698.                     <td class="code"><pre>None</pre></td>
  2699.                   </tr>
  2700.                
  2701.                   <tr>
  2702.                     <td>raw</td>
  2703.                     <td class="code"><pre>False</pre></td>
  2704.                   </tr>
  2705.                
  2706.                   <tr>
  2707.                     <td>self</td>
  2708.                     <td class="code"><pre>&lt;Mark: antonio/dyad.48[&quot;ddddddd.recipe&quot;]/testMark2&gt;</pre></td>
  2709.                   </tr>
  2710.                
  2711.                   <tr>
  2712.                     <td>update_fields</td>
  2713.                     <td class="code"><pre>None</pre></td>
  2714.                   </tr>
  2715.                
  2716.                   <tr>
  2717.                     <td>update_pk</td>
  2718.                     <td class="code"><pre>False</pre></td>
  2719.                   </tr>
  2720.                
  2721.                   <tr>
  2722.                     <td>updated</td>
  2723.                     <td class="code"><pre>False</pre></td>
  2724.                   </tr>
  2725.                
  2726.                   <tr>
  2727.                     <td>using</td>
  2728.                     <td class="code"><pre>&#39;default&#39;</pre></td>
  2729.                   </tr>
  2730.                
  2731.               </tbody>
  2732.             </table>
  2733.          
  2734.         </li>
  2735.      
  2736.        
  2737.         <li class="frame django">
  2738.           <code>/opt/datagator/lib/python3.4/site-packages/django/db/models/base.py</code> in <code>_do_insert</code>
  2739.  
  2740.          
  2741.             <div class="context" id="c140168027899080">
  2742.              
  2743.                 <ol start="940" class="pre-context" id="pre140168027899080">
  2744.                
  2745.                   <li onclick="toggle('pre140168027899080', 'post140168027899080')"><pre></pre></li>
  2746.                
  2747.                   <li onclick="toggle('pre140168027899080', 'post140168027899080')"><pre>    def _do_insert(self, manager, using, fields, update_pk, raw):</pre></li>
  2748.                
  2749.                   <li onclick="toggle('pre140168027899080', 'post140168027899080')"><pre>        &quot;&quot;&quot;</pre></li>
  2750.                
  2751.                   <li onclick="toggle('pre140168027899080', 'post140168027899080')"><pre>        Do an INSERT. If update_pk is defined then this method should return</pre></li>
  2752.                
  2753.                   <li onclick="toggle('pre140168027899080', 'post140168027899080')"><pre>        the new pk for the model.</pre></li>
  2754.                
  2755.                   <li onclick="toggle('pre140168027899080', 'post140168027899080')"><pre>        &quot;&quot;&quot;</pre></li>
  2756.                
  2757.                   <li onclick="toggle('pre140168027899080', 'post140168027899080')"><pre>        return manager._insert([self], fields=fields, return_id=update_pk,</pre></li>
  2758.                
  2759.                 </ol>
  2760.              
  2761.               <ol start="947" class="context-line">
  2762.                 <li onclick="toggle('pre140168027899080', 'post140168027899080')"><pre>
  2763.                                using=using, raw=raw)</pre> <span>...</span></li></ol>
  2764.              
  2765.                 <ol start='948' class="post-context" id="post140168027899080">
  2766.                  
  2767.                   <li onclick="toggle('pre140168027899080', 'post140168027899080')"><pre></pre></li>
  2768.                  
  2769.                   <li onclick="toggle('pre140168027899080', 'post140168027899080')"><pre>    def delete(self, using=None, keep_parents=False):</pre></li>
  2770.                  
  2771.                   <li onclick="toggle('pre140168027899080', 'post140168027899080')"><pre>        using = using or router.db_for_write(self.__class__, instance=self)</pre></li>
  2772.                  
  2773.                   <li onclick="toggle('pre140168027899080', 'post140168027899080')"><pre>        assert self._get_pk_val() is not None, (</pre></li>
  2774.                  
  2775.                   <li onclick="toggle('pre140168027899080', 'post140168027899080')"><pre>            &quot;%s object can&#39;t be deleted because its %s attribute is set to None.&quot; %</pre></li>
  2776.                  
  2777.                   <li onclick="toggle('pre140168027899080', 'post140168027899080')"><pre>            (self._meta.object_name, self._meta.pk.attname)</pre></li>
  2778.                  
  2779.               </ol>
  2780.              
  2781.             </div>
  2782.          
  2783.  
  2784.          
  2785.             <div class="commands">
  2786.                
  2787.                     <a href="#" onclick="return varToggle(this, '140168027899080')"><span>&#x25b6;</span> Local vars</a>
  2788.                
  2789.             </div>
  2790.             <table class="vars" id="v140168027899080">
  2791.               <thead>
  2792.                 <tr>
  2793.                   <th>Variable</th>
  2794.                   <th>Value</th>
  2795.                 </tr>
  2796.               </thead>
  2797.               <tbody>
  2798.                
  2799.                   <tr>
  2800.                     <td>fields</td>
  2801.                     <td class="code"><pre>[&lt;django.db.models.fields.DateTimeField: created&gt;,
  2802.  &lt;django.db.models.fields.related.ForeignKey: creator&gt;,
  2803.  &lt;django.db.models.fields.related.ForeignKey: entity_ct&gt;,
  2804.  &lt;datagator.wsgi.fields.UUIDField: entity_id&gt;,
  2805.  &lt;datagator.wsgi.fields.UUIDField: id&gt;,
  2806.  &lt;django.db.models.fields.CharField: name&gt;,
  2807.  &lt;django.contrib.postgres.fields.jsonb.JSONField: data&gt;]</pre></td>
  2808.                   </tr>
  2809.                
  2810.                   <tr>
  2811.                     <td>manager</td>
  2812.                     <td class="code"><pre>&lt;django.db.models.manager.Manager object at 0x7f7b697960f0&gt;</pre></td>
  2813.                   </tr>
  2814.                
  2815.                   <tr>
  2816.                     <td>raw</td>
  2817.                     <td class="code"><pre>False</pre></td>
  2818.                   </tr>
  2819.                
  2820.                   <tr>
  2821.                     <td>self</td>
  2822.                     <td class="code"><pre>&lt;Mark: antonio/dyad.48[&quot;ddddddd.recipe&quot;]/testMark2&gt;</pre></td>
  2823.                   </tr>
  2824.                
  2825.                   <tr>
  2826.                     <td>update_pk</td>
  2827.                     <td class="code"><pre>False</pre></td>
  2828.                   </tr>
  2829.                
  2830.                   <tr>
  2831.                     <td>using</td>
  2832.                     <td class="code"><pre>&#39;default&#39;</pre></td>
  2833.                   </tr>
  2834.                
  2835.               </tbody>
  2836.             </table>
  2837.          
  2838.         </li>
  2839.      
  2840.        
  2841.         <li class="frame django">
  2842.           <code>/opt/datagator/lib/python3.4/site-packages/django/db/models/manager.py</code> in <code>manager_method</code>
  2843.  
  2844.          
  2845.             <div class="context" id="c140168027897992">
  2846.              
  2847.                 <ol start="78" class="pre-context" id="pre140168027897992">
  2848.                
  2849.                   <li onclick="toggle('pre140168027897992', 'post140168027897992')"><pre>    def check(self, **kwargs):</pre></li>
  2850.                
  2851.                   <li onclick="toggle('pre140168027897992', 'post140168027897992')"><pre>        return []</pre></li>
  2852.                
  2853.                   <li onclick="toggle('pre140168027897992', 'post140168027897992')"><pre></pre></li>
  2854.                
  2855.                   <li onclick="toggle('pre140168027897992', 'post140168027897992')"><pre>    @classmethod</pre></li>
  2856.                
  2857.                   <li onclick="toggle('pre140168027897992', 'post140168027897992')"><pre>    def _get_queryset_methods(cls, queryset_class):</pre></li>
  2858.                
  2859.                   <li onclick="toggle('pre140168027897992', 'post140168027897992')"><pre>        def create_method(name, method):</pre></li>
  2860.                
  2861.                   <li onclick="toggle('pre140168027897992', 'post140168027897992')"><pre>            def manager_method(self, *args, **kwargs):</pre></li>
  2862.                
  2863.                 </ol>
  2864.              
  2865.               <ol start="85" class="context-line">
  2866.                 <li onclick="toggle('pre140168027897992', 'post140168027897992')"><pre>
  2867.                 return getattr(self.get_queryset(), name)(*args, **kwargs)</pre> <span>...</span></li></ol>
  2868.              
  2869.                 <ol start='86' class="post-context" id="post140168027897992">
  2870.                  
  2871.                   <li onclick="toggle('pre140168027897992', 'post140168027897992')"><pre>            manager_method.__name__ = method.__name__</pre></li>
  2872.                  
  2873.                   <li onclick="toggle('pre140168027897992', 'post140168027897992')"><pre>            manager_method.__doc__ = method.__doc__</pre></li>
  2874.                  
  2875.                   <li onclick="toggle('pre140168027897992', 'post140168027897992')"><pre>            return manager_method</pre></li>
  2876.                  
  2877.                   <li onclick="toggle('pre140168027897992', 'post140168027897992')"><pre></pre></li>
  2878.                  
  2879.                   <li onclick="toggle('pre140168027897992', 'post140168027897992')"><pre>        new_methods = {}</pre></li>
  2880.                  
  2881.                   <li onclick="toggle('pre140168027897992', 'post140168027897992')"><pre>        # Refs http://bugs.python.org/issue1785.</pre></li>
  2882.                  
  2883.               </ol>
  2884.              
  2885.             </div>
  2886.          
  2887.  
  2888.          
  2889.             <div class="commands">
  2890.                
  2891.                     <a href="#" onclick="return varToggle(this, '140168027897992')"><span>&#x25b6;</span> Local vars</a>
  2892.                
  2893.             </div>
  2894.             <table class="vars" id="v140168027897992">
  2895.               <thead>
  2896.                 <tr>
  2897.                   <th>Variable</th>
  2898.                   <th>Value</th>
  2899.                 </tr>
  2900.               </thead>
  2901.               <tbody>
  2902.                
  2903.                   <tr>
  2904.                     <td>args</td>
  2905.                     <td class="code"><pre>([&lt;Mark: antonio/dyad.48[&quot;ddddddd.recipe&quot;]/testMark2&gt;],)</pre></td>
  2906.                   </tr>
  2907.                
  2908.                   <tr>
  2909.                     <td>kwargs</td>
  2910.                     <td class="code"><pre>{&#39;fields&#39;: [&lt;django.db.models.fields.DateTimeField: created&gt;,
  2911.             &lt;django.db.models.fields.related.ForeignKey: creator&gt;,
  2912.             &lt;django.db.models.fields.related.ForeignKey: entity_ct&gt;,
  2913.             &lt;datagator.wsgi.fields.UUIDField: entity_id&gt;,
  2914.             &lt;datagator.wsgi.fields.UUIDField: id&gt;,
  2915.             &lt;django.db.models.fields.CharField: name&gt;,
  2916.             &lt;django.contrib.postgres.fields.jsonb.JSONField: data&gt;],
  2917.  &#39;raw&#39;: False,
  2918.  &#39;return_id&#39;: False,
  2919.  &#39;using&#39;: &#39;default&#39;}</pre></td>
  2920.                   </tr>
  2921.                
  2922.                   <tr>
  2923.                     <td>name</td>
  2924.                     <td class="code"><pre>&#39;_insert&#39;</pre></td>
  2925.                   </tr>
  2926.                
  2927.                   <tr>
  2928.                     <td>self</td>
  2929.                     <td class="code"><pre>&lt;django.db.models.manager.Manager object at 0x7f7b697960f0&gt;</pre></td>
  2930.                   </tr>
  2931.                
  2932.               </tbody>
  2933.             </table>
  2934.          
  2935.         </li>
  2936.      
  2937.        
  2938.         <li class="frame django">
  2939.           <code>/opt/datagator/lib/python3.4/site-packages/django/db/models/query.py</code> in <code>_insert</code>
  2940.  
  2941.          
  2942.             <div class="context" id="c140168029461832">
  2943.              
  2944.                 <ol start="1038" class="pre-context" id="pre140168029461832">
  2945.                
  2946.                   <li onclick="toggle('pre140168029461832', 'post140168029461832')"><pre>        the InsertQuery class and is how Model.save() is implemented.</pre></li>
  2947.                
  2948.                   <li onclick="toggle('pre140168029461832', 'post140168029461832')"><pre>        &quot;&quot;&quot;</pre></li>
  2949.                
  2950.                   <li onclick="toggle('pre140168029461832', 'post140168029461832')"><pre>        self._for_write = True</pre></li>
  2951.                
  2952.                   <li onclick="toggle('pre140168029461832', 'post140168029461832')"><pre>        if using is None:</pre></li>
  2953.                
  2954.                   <li onclick="toggle('pre140168029461832', 'post140168029461832')"><pre>            using = self.db</pre></li>
  2955.                
  2956.                   <li onclick="toggle('pre140168029461832', 'post140168029461832')"><pre>        query = sql.InsertQuery(self.model)</pre></li>
  2957.                
  2958.                   <li onclick="toggle('pre140168029461832', 'post140168029461832')"><pre>        query.insert_values(fields, objs, raw=raw)</pre></li>
  2959.                
  2960.                 </ol>
  2961.              
  2962.               <ol start="1045" class="context-line">
  2963.                 <li onclick="toggle('pre140168029461832', 'post140168029461832')"><pre>
  2964.         return query.get_compiler(using=using).execute_sql(return_id)</pre> <span>...</span></li></ol>
  2965.              
  2966.                 <ol start='1046' class="post-context" id="post140168029461832">
  2967.                  
  2968.                   <li onclick="toggle('pre140168029461832', 'post140168029461832')"><pre>    _insert.alters_data = True</pre></li>
  2969.                  
  2970.                   <li onclick="toggle('pre140168029461832', 'post140168029461832')"><pre>    _insert.queryset_only = False</pre></li>
  2971.                  
  2972.                   <li onclick="toggle('pre140168029461832', 'post140168029461832')"><pre></pre></li>
  2973.                  
  2974.                   <li onclick="toggle('pre140168029461832', 'post140168029461832')"><pre>    def _batched_insert(self, objs, fields, batch_size):</pre></li>
  2975.                  
  2976.                   <li onclick="toggle('pre140168029461832', 'post140168029461832')"><pre>        &quot;&quot;&quot;</pre></li>
  2977.                  
  2978.                   <li onclick="toggle('pre140168029461832', 'post140168029461832')"><pre>        A little helper method for bulk_insert to insert the bulk one batch</pre></li>
  2979.                  
  2980.               </ol>
  2981.              
  2982.             </div>
  2983.          
  2984.  
  2985.          
  2986.             <div class="commands">
  2987.                
  2988.                     <a href="#" onclick="return varToggle(this, '140168029461832')"><span>&#x25b6;</span> Local vars</a>
  2989.                
  2990.             </div>
  2991.             <table class="vars" id="v140168029461832">
  2992.               <thead>
  2993.                 <tr>
  2994.                   <th>Variable</th>
  2995.                   <th>Value</th>
  2996.                 </tr>
  2997.               </thead>
  2998.               <tbody>
  2999.                
  3000.                   <tr>
  3001.                     <td>fields</td>
  3002.                     <td class="code"><pre>[&lt;django.db.models.fields.DateTimeField: created&gt;,
  3003.  &lt;django.db.models.fields.related.ForeignKey: creator&gt;,
  3004.  &lt;django.db.models.fields.related.ForeignKey: entity_ct&gt;,
  3005.  &lt;datagator.wsgi.fields.UUIDField: entity_id&gt;,
  3006.  &lt;datagator.wsgi.fields.UUIDField: id&gt;,
  3007.  &lt;django.db.models.fields.CharField: name&gt;,
  3008.  &lt;django.contrib.postgres.fields.jsonb.JSONField: data&gt;]</pre></td>
  3009.                   </tr>
  3010.                
  3011.                   <tr>
  3012.                     <td>objs</td>
  3013.                     <td class="code"><pre>[&lt;Mark: antonio/dyad.48[&quot;ddddddd.recipe&quot;]/testMark2&gt;]</pre></td>
  3014.                   </tr>
  3015.                
  3016.                   <tr>
  3017.                     <td>query</td>
  3018.                     <td class="code"><pre>&lt;django.db.models.sql.subqueries.InsertQuery object at 0x7f7b69ab08d0&gt;</pre></td>
  3019.                   </tr>
  3020.                
  3021.                   <tr>
  3022.                     <td>raw</td>
  3023.                     <td class="code"><pre>False</pre></td>
  3024.                   </tr>
  3025.                
  3026.                   <tr>
  3027.                     <td>return_id</td>
  3028.                     <td class="code"><pre>False</pre></td>
  3029.                   </tr>
  3030.                
  3031.                   <tr>
  3032.                     <td>self</td>
  3033.                     <td class="code"><pre>&lt;QuerySet [&lt;Mark: Senko/lll.1/date&gt;, &lt;Mark: Senko/lll.1/citations&gt;, &lt;Mark: Senko/lll.1/acknowledgment&gt;, &lt;Mark: Senko/lll.1/metaLinks&gt;, &lt;Mark: Senko/lll.1/description&gt;, &lt;Mark: Senko/lll.1/notes&gt;, &lt;Mark: Senko/lll.1/additionalLinks&gt;, &lt;Mark: Senko/lll.1/sources&gt;, &lt;Mark: Senko/lll.1/units&gt;, &lt;Mark: Senko/lll.1/tags&gt;, &lt;Mark: Senko/TestDataset.2/time&gt;, &lt;Mark: Senko/TestDataset.2/additionalLinks&gt;, &lt;Mark: Senko/TestDataset.2/authors&gt;, &lt;Mark: Senko/TestDataset.2/citations&gt;, &lt;Mark: Senko/TestDataset.2/authors2&gt;, &lt;Mark: Senko/TestDataset.2/description&gt;, &lt;Mark: Senko/TestDataset.2/date&gt;, &lt;Mark: Senko/TestDataset.2/links&gt;, &lt;Mark: Senko/TestDataset.2/metaLinks&gt;, &lt;Mark: Senko/TestDataset.2/sources&gt;, &#39;...(remaining elements truncated)...&#39;]&gt;</pre></td>
  3034.                   </tr>
  3035.                
  3036.                   <tr>
  3037.                     <td>using</td>
  3038.                     <td class="code"><pre>&#39;default&#39;</pre></td>
  3039.                   </tr>
  3040.                
  3041.               </tbody>
  3042.             </table>
  3043.          
  3044.         </li>
  3045.      
  3046.        
  3047.         <li class="frame django">
  3048.           <code>/opt/datagator/lib/python3.4/site-packages/django/db/models/sql/compiler.py</code> in <code>execute_sql</code>
  3049.  
  3050.          
  3051.             <div class="context" id="c140168028256904">
  3052.              
  3053.                 <ol start="1047" class="pre-context" id="pre140168028256904">
  3054.                
  3055.                   <li onclick="toggle('pre140168028256904', 'post140168028256904')"><pre>        assert not (</pre></li>
  3056.                
  3057.                   <li onclick="toggle('pre140168028256904', 'post140168028256904')"><pre>            return_id and len(self.query.objs) != 1 and</pre></li>
  3058.                
  3059.                   <li onclick="toggle('pre140168028256904', 'post140168028256904')"><pre>            not self.connection.features.can_return_ids_from_bulk_insert</pre></li>
  3060.                
  3061.                   <li onclick="toggle('pre140168028256904', 'post140168028256904')"><pre>        )</pre></li>
  3062.                
  3063.                   <li onclick="toggle('pre140168028256904', 'post140168028256904')"><pre>        self.return_id = return_id</pre></li>
  3064.                
  3065.                   <li onclick="toggle('pre140168028256904', 'post140168028256904')"><pre>        with self.connection.cursor() as cursor:</pre></li>
  3066.                
  3067.                   <li onclick="toggle('pre140168028256904', 'post140168028256904')"><pre>            for sql, params in self.as_sql():</pre></li>
  3068.                
  3069.                 </ol>
  3070.              
  3071.               <ol start="1054" class="context-line">
  3072.                 <li onclick="toggle('pre140168028256904', 'post140168028256904')"><pre>
  3073.                 cursor.execute(sql, params)</pre> <span>...</span></li></ol>
  3074.              
  3075.                 <ol start='1055' class="post-context" id="post140168028256904">
  3076.                  
  3077.                   <li onclick="toggle('pre140168028256904', 'post140168028256904')"><pre>            if not (return_id and cursor):</pre></li>
  3078.                  
  3079.                   <li onclick="toggle('pre140168028256904', 'post140168028256904')"><pre>                return</pre></li>
  3080.                  
  3081.                   <li onclick="toggle('pre140168028256904', 'post140168028256904')"><pre>            if self.connection.features.can_return_ids_from_bulk_insert and len(self.query.objs) &gt; 1:</pre></li>
  3082.                  
  3083.                   <li onclick="toggle('pre140168028256904', 'post140168028256904')"><pre>                return self.connection.ops.fetch_returned_insert_ids(cursor)</pre></li>
  3084.                  
  3085.                   <li onclick="toggle('pre140168028256904', 'post140168028256904')"><pre>            if self.connection.features.can_return_id_from_insert:</pre></li>
  3086.                  
  3087.                   <li onclick="toggle('pre140168028256904', 'post140168028256904')"><pre>                assert len(self.query.objs) == 1</pre></li>
  3088.                  
  3089.               </ol>
  3090.              
  3091.             </div>
  3092.          
  3093.  
  3094.          
  3095.             <div class="commands">
  3096.                
  3097.                     <a href="#" onclick="return varToggle(this, '140168028256904')"><span>&#x25b6;</span> Local vars</a>
  3098.                
  3099.             </div>
  3100.             <table class="vars" id="v140168028256904">
  3101.               <thead>
  3102.                 <tr>
  3103.                   <th>Variable</th>
  3104.                   <th>Value</th>
  3105.                 </tr>
  3106.               </thead>
  3107.               <tbody>
  3108.                
  3109.                   <tr>
  3110.                     <td>cursor</td>
  3111.                     <td class="code"><pre>&lt;django.db.backends.utils.CursorDebugWrapper object at 0x7f7b69a0c128&gt;</pre></td>
  3112.                   </tr>
  3113.                
  3114.                   <tr>
  3115.                     <td>params</td>
  3116.                     <td class="code"><pre>(datetime.datetime(2017, 1, 13, 13, 41, 26, 185576, tzinfo=&lt;UTC&gt;),
  3117.  UUID(&#39;324e6020-e253-5b8e-8871-883ec17d0d45&#39;),
  3118.  18,
  3119.  UUID(&#39;b3c0ecec-ccde-5bda-9a0d-f0e745b02199&#39;),
  3120.  UUID(&#39;cade4338-d5a2-583e-a386-2571bf537a65&#39;),
  3121.  &#39;testMark2&#39;,
  3122.  &lt;psycopg2._json.Json object at 0x7f7b6995f470&gt;)</pre></td>
  3123.                   </tr>
  3124.                
  3125.                   <tr>
  3126.                     <td>return_id</td>
  3127.                     <td class="code"><pre>False</pre></td>
  3128.                   </tr>
  3129.                
  3130.                   <tr>
  3131.                     <td>self</td>
  3132.                     <td class="code"><pre>&lt;django.db.models.sql.compiler.SQLInsertCompiler object at 0x7f7b69a0c940&gt;</pre></td>
  3133.                   </tr>
  3134.                
  3135.                   <tr>
  3136.                     <td>sql</td>
  3137.                     <td class="code"><pre>(&#39;INSERT INTO &quot;community_mark&quot; (&quot;created&quot;, &quot;creator_id&quot;, &quot;entity_ct_id&quot;, &#39;
  3138.  &#39;&quot;entity_id&quot;, &quot;id&quot;, &quot;name&quot;, &quot;data&quot;) VALUES (%s, %s, %s, %s, %s, %s, %s)&#39;)</pre></td>
  3139.                   </tr>
  3140.                
  3141.               </tbody>
  3142.             </table>
  3143.          
  3144.         </li>
  3145.      
  3146.        
  3147.         <li class="frame django">
  3148.           <code>/opt/datagator/lib/python3.4/site-packages/django/db/backends/utils.py</code> in <code>execute</code>
  3149.  
  3150.          
  3151.             <div class="context" id="c140168014676872">
  3152.              
  3153.                 <ol start="72" class="pre-context" id="pre140168014676872">
  3154.                
  3155.                   <li onclick="toggle('pre140168014676872', 'post140168014676872')"><pre>class CursorDebugWrapper(CursorWrapper):</pre></li>
  3156.                
  3157.                   <li onclick="toggle('pre140168014676872', 'post140168014676872')"><pre></pre></li>
  3158.                
  3159.                   <li onclick="toggle('pre140168014676872', 'post140168014676872')"><pre>    # XXX callproc isn&#39;t instrumented at this time.</pre></li>
  3160.                
  3161.                   <li onclick="toggle('pre140168014676872', 'post140168014676872')"><pre></pre></li>
  3162.                
  3163.                   <li onclick="toggle('pre140168014676872', 'post140168014676872')"><pre>    def execute(self, sql, params=None):</pre></li>
  3164.                
  3165.                   <li onclick="toggle('pre140168014676872', 'post140168014676872')"><pre>        start = time()</pre></li>
  3166.                
  3167.                   <li onclick="toggle('pre140168014676872', 'post140168014676872')"><pre>        try:</pre></li>
  3168.                
  3169.                 </ol>
  3170.              
  3171.               <ol start="79" class="context-line">
  3172.                 <li onclick="toggle('pre140168014676872', 'post140168014676872')"><pre>
  3173.             return super(CursorDebugWrapper, self).execute(sql, params)</pre> <span>...</span></li></ol>
  3174.              
  3175.                 <ol start='80' class="post-context" id="post140168014676872">
  3176.                  
  3177.                   <li onclick="toggle('pre140168014676872', 'post140168014676872')"><pre>        finally:</pre></li>
  3178.                  
  3179.                   <li onclick="toggle('pre140168014676872', 'post140168014676872')"><pre>            stop = time()</pre></li>
  3180.                  
  3181.                   <li onclick="toggle('pre140168014676872', 'post140168014676872')"><pre>            duration = stop - start</pre></li>
  3182.                  
  3183.                   <li onclick="toggle('pre140168014676872', 'post140168014676872')"><pre>            sql = self.db.ops.last_executed_query(self.cursor, sql, params)</pre></li>
  3184.                  
  3185.                   <li onclick="toggle('pre140168014676872', 'post140168014676872')"><pre>            self.db.queries_log.append({</pre></li>
  3186.                  
  3187.                   <li onclick="toggle('pre140168014676872', 'post140168014676872')"><pre>                &#39;sql&#39;: sql,</pre></li>
  3188.                  
  3189.               </ol>
  3190.              
  3191.             </div>
  3192.          
  3193.  
  3194.          
  3195.             <div class="commands">
  3196.                
  3197.                     <a href="#" onclick="return varToggle(this, '140168014676872')"><span>&#x25b6;</span> Local vars</a>
  3198.                
  3199.             </div>
  3200.             <table class="vars" id="v140168014676872">
  3201.               <thead>
  3202.                 <tr>
  3203.                   <th>Variable</th>
  3204.                   <th>Value</th>
  3205.                 </tr>
  3206.               </thead>
  3207.               <tbody>
  3208.                
  3209.                   <tr>
  3210.                     <td>__class__</td>
  3211.                     <td class="code"><pre>&lt;class &#39;django.db.backends.utils.CursorDebugWrapper&#39;&gt;</pre></td>
  3212.                   </tr>
  3213.                
  3214.                   <tr>
  3215.                     <td>duration</td>
  3216.                     <td class="code"><pre>0.001117706298828125</pre></td>
  3217.                   </tr>
  3218.                
  3219.                   <tr>
  3220.                     <td>params</td>
  3221.                     <td class="code"><pre>(datetime.datetime(2017, 1, 13, 13, 41, 26, 185576, tzinfo=&lt;UTC&gt;),
  3222.  UUID(&#39;324e6020-e253-5b8e-8871-883ec17d0d45&#39;),
  3223.  18,
  3224.  UUID(&#39;b3c0ecec-ccde-5bda-9a0d-f0e745b02199&#39;),
  3225.  UUID(&#39;cade4338-d5a2-583e-a386-2571bf537a65&#39;),
  3226.  &#39;testMark2&#39;,
  3227.  &lt;psycopg2._json.Json object at 0x7f7b6995f470&gt;)</pre></td>
  3228.                   </tr>
  3229.                
  3230.                   <tr>
  3231.                     <td>self</td>
  3232.                     <td class="code"><pre>&lt;django.db.backends.utils.CursorDebugWrapper object at 0x7f7b69a0c128&gt;</pre></td>
  3233.                   </tr>
  3234.                
  3235.                   <tr>
  3236.                     <td>sql</td>
  3237.                     <td class="code"><pre>(&#39;INSERT INTO &quot;community_mark&quot; (&quot;created&quot;, &quot;creator_id&quot;, &quot;entity_ct_id&quot;, &#39;
  3238.  &#39;&quot;entity_id&quot;, &quot;id&quot;, &quot;name&quot;, &quot;data&quot;) VALUES &#39;
  3239.  &quot;(&#39;2017-01-13T13:41:26.185576+00:00&#39;::timestamptz, &quot;
  3240.  &quot;&#39;324e6020-e253-5b8e-8871-883ec17d0d45&#39;::uuid, 18, &quot;
  3241.  &quot;&#39;b3c0ecec-ccde-5bda-9a0d-f0e745b02199&#39;::uuid, &quot;
  3242.  &quot;&#39;cade4338-d5a2-583e-a386-2571bf537a65&#39;::uuid, &#39;testMark2&#39;, &quot;
  3243.  &#39;\&#39;&quot;www.test123.com&quot;\&#39;)&#39;)</pre></td>
  3244.                   </tr>
  3245.                
  3246.                   <tr>
  3247.                     <td>start</td>
  3248.                     <td class="code"><pre>1484314886.1886258</pre></td>
  3249.                   </tr>
  3250.                
  3251.                   <tr>
  3252.                     <td>stop</td>
  3253.                     <td class="code"><pre>1484314886.1897435</pre></td>
  3254.                   </tr>
  3255.                
  3256.               </tbody>
  3257.             </table>
  3258.          
  3259.         </li>
  3260.      
  3261.        
  3262.         <li class="frame django">
  3263.           <code>/opt/datagator/lib/python3.4/site-packages/django/db/backends/utils.py</code> in <code>execute</code>
  3264.  
  3265.          
  3266.             <div class="context" id="c140168015412040">
  3267.              
  3268.                 <ol start="57" class="pre-context" id="pre140168015412040">
  3269.                
  3270.                   <li onclick="toggle('pre140168015412040', 'post140168015412040')"><pre></pre></li>
  3271.                
  3272.                   <li onclick="toggle('pre140168015412040', 'post140168015412040')"><pre>    def execute(self, sql, params=None):</pre></li>
  3273.                
  3274.                   <li onclick="toggle('pre140168015412040', 'post140168015412040')"><pre>        self.db.validate_no_broken_transaction()</pre></li>
  3275.                
  3276.                   <li onclick="toggle('pre140168015412040', 'post140168015412040')"><pre>        with self.db.wrap_database_errors:</pre></li>
  3277.                
  3278.                   <li onclick="toggle('pre140168015412040', 'post140168015412040')"><pre>            if params is None:</pre></li>
  3279.                
  3280.                   <li onclick="toggle('pre140168015412040', 'post140168015412040')"><pre>                return self.cursor.execute(sql)</pre></li>
  3281.                
  3282.                   <li onclick="toggle('pre140168015412040', 'post140168015412040')"><pre>            else:</pre></li>
  3283.                
  3284.                 </ol>
  3285.              
  3286.               <ol start="64" class="context-line">
  3287.                 <li onclick="toggle('pre140168015412040', 'post140168015412040')"><pre>
  3288.                 return self.cursor.execute(sql, params)</pre> <span>...</span></li></ol>
  3289.              
  3290.                 <ol start='65' class="post-context" id="post140168015412040">
  3291.                  
  3292.                   <li onclick="toggle('pre140168015412040', 'post140168015412040')"><pre></pre></li>
  3293.                  
  3294.                   <li onclick="toggle('pre140168015412040', 'post140168015412040')"><pre>    def executemany(self, sql, param_list):</pre></li>
  3295.                  
  3296.                   <li onclick="toggle('pre140168015412040', 'post140168015412040')"><pre>        self.db.validate_no_broken_transaction()</pre></li>
  3297.                  
  3298.                   <li onclick="toggle('pre140168015412040', 'post140168015412040')"><pre>        with self.db.wrap_database_errors:</pre></li>
  3299.                  
  3300.                   <li onclick="toggle('pre140168015412040', 'post140168015412040')"><pre>            return self.cursor.executemany(sql, param_list)</pre></li>
  3301.                  
  3302.                   <li onclick="toggle('pre140168015412040', 'post140168015412040')"><pre></pre></li>
  3303.                  
  3304.               </ol>
  3305.              
  3306.             </div>
  3307.          
  3308.  
  3309.          
  3310.             <div class="commands">
  3311.                
  3312.                     <a href="#" onclick="return varToggle(this, '140168015412040')"><span>&#x25b6;</span> Local vars</a>
  3313.                
  3314.             </div>
  3315.             <table class="vars" id="v140168015412040">
  3316.               <thead>
  3317.                 <tr>
  3318.                   <th>Variable</th>
  3319.                   <th>Value</th>
  3320.                 </tr>
  3321.               </thead>
  3322.               <tbody>
  3323.                
  3324.                   <tr>
  3325.                     <td>params</td>
  3326.                     <td class="code"><pre>(datetime.datetime(2017, 1, 13, 13, 41, 26, 185576, tzinfo=&lt;UTC&gt;),
  3327.  UUID(&#39;324e6020-e253-5b8e-8871-883ec17d0d45&#39;),
  3328.  18,
  3329.  UUID(&#39;b3c0ecec-ccde-5bda-9a0d-f0e745b02199&#39;),
  3330.  UUID(&#39;cade4338-d5a2-583e-a386-2571bf537a65&#39;),
  3331.  &#39;testMark2&#39;,
  3332.  &lt;psycopg2._json.Json object at 0x7f7b6995f470&gt;)</pre></td>
  3333.                   </tr>
  3334.                
  3335.                   <tr>
  3336.                     <td>self</td>
  3337.                     <td class="code"><pre>&lt;django.db.backends.utils.CursorDebugWrapper object at 0x7f7b69a0c128&gt;</pre></td>
  3338.                   </tr>
  3339.                
  3340.                   <tr>
  3341.                     <td>sql</td>
  3342.                     <td class="code"><pre>(&#39;INSERT INTO &quot;community_mark&quot; (&quot;created&quot;, &quot;creator_id&quot;, &quot;entity_ct_id&quot;, &#39;
  3343.  &#39;&quot;entity_id&quot;, &quot;id&quot;, &quot;name&quot;, &quot;data&quot;) VALUES (%s, %s, %s, %s, %s, %s, %s)&#39;)</pre></td>
  3344.                   </tr>
  3345.                
  3346.               </tbody>
  3347.             </table>
  3348.          
  3349.         </li>
  3350.      
  3351.        
  3352.         <li class="frame django">
  3353.           <code>/opt/datagator/lib/python3.4/site-packages/django/db/utils.py</code> in <code>__exit__</code>
  3354.  
  3355.          
  3356.             <div class="context" id="c140168028685192">
  3357.              
  3358.                 <ol start="87" class="pre-context" id="pre140168028685192">
  3359.                
  3360.                   <li onclick="toggle('pre140168028685192', 'post140168028685192')"><pre>                dj_exc_value.__cause__ = exc_value</pre></li>
  3361.                
  3362.                   <li onclick="toggle('pre140168028685192', 'post140168028685192')"><pre>                if not hasattr(exc_value, &#39;__traceback__&#39;):</pre></li>
  3363.                
  3364.                   <li onclick="toggle('pre140168028685192', 'post140168028685192')"><pre>                    exc_value.__traceback__ = traceback</pre></li>
  3365.                
  3366.                   <li onclick="toggle('pre140168028685192', 'post140168028685192')"><pre>                # Only set the &#39;errors_occurred&#39; flag for errors that may make</pre></li>
  3367.                
  3368.                   <li onclick="toggle('pre140168028685192', 'post140168028685192')"><pre>                # the connection unusable.</pre></li>
  3369.                
  3370.                   <li onclick="toggle('pre140168028685192', 'post140168028685192')"><pre>                if dj_exc_type not in (DataError, IntegrityError):</pre></li>
  3371.                
  3372.                   <li onclick="toggle('pre140168028685192', 'post140168028685192')"><pre>                    self.wrapper.errors_occurred = True</pre></li>
  3373.                
  3374.                 </ol>
  3375.              
  3376.               <ol start="94" class="context-line">
  3377.                 <li onclick="toggle('pre140168028685192', 'post140168028685192')"><pre>
  3378.                 six.reraise(dj_exc_type, dj_exc_value, traceback)</pre> <span>...</span></li></ol>
  3379.              
  3380.                 <ol start='95' class="post-context" id="post140168028685192">
  3381.                  
  3382.                   <li onclick="toggle('pre140168028685192', 'post140168028685192')"><pre></pre></li>
  3383.                  
  3384.                   <li onclick="toggle('pre140168028685192', 'post140168028685192')"><pre>    def __call__(self, func):</pre></li>
  3385.                  
  3386.                   <li onclick="toggle('pre140168028685192', 'post140168028685192')"><pre>        # Note that we are intentionally not using @wraps here for performance</pre></li>
  3387.                  
  3388.                   <li onclick="toggle('pre140168028685192', 'post140168028685192')"><pre>        # reasons. Refs #21109.</pre></li>
  3389.                  
  3390.                   <li onclick="toggle('pre140168028685192', 'post140168028685192')"><pre>        def inner(*args, **kwargs):</pre></li>
  3391.                  
  3392.                   <li onclick="toggle('pre140168028685192', 'post140168028685192')"><pre>            with self:</pre></li>
  3393.                  
  3394.               </ol>
  3395.              
  3396.             </div>
  3397.          
  3398.  
  3399.          
  3400.             <div class="commands">
  3401.                
  3402.                     <a href="#" onclick="return varToggle(this, '140168028685192')"><span>&#x25b6;</span> Local vars</a>
  3403.                
  3404.             </div>
  3405.             <table class="vars" id="v140168028685192">
  3406.               <thead>
  3407.                 <tr>
  3408.                   <th>Variable</th>
  3409.                   <th>Value</th>
  3410.                 </tr>
  3411.               </thead>
  3412.               <tbody>
  3413.                
  3414.                   <tr>
  3415.                     <td>db_exc_type</td>
  3416.                     <td class="code"><pre>&lt;class &#39;psycopg2.IntegrityError&#39;&gt;</pre></td>
  3417.                   </tr>
  3418.                
  3419.                   <tr>
  3420.                     <td>dj_exc_type</td>
  3421.                     <td class="code"><pre>&lt;class &#39;django.db.utils.IntegrityError&#39;&gt;</pre></td>
  3422.                   </tr>
  3423.                
  3424.                   <tr>
  3425.                     <td>dj_exc_value</td>
  3426.                     <td class="code"><pre>IntegrityError(&#39;duplicate key value violates unique constraint &quot;community_mark_entity_ct_id_4145a28e_uniq&quot;\nDETAIL:  Key (entity_ct_id, entity_id, name, creator_id)=(18, b3c0ecec-ccde-5bda-9a0d-f0e745b02199, testMark2, 324e6020-e253-5b8e-8871-883ec17d0d45) already exists.\n&#39;,)</pre></td>
  3427.                   </tr>
  3428.                
  3429.                   <tr>
  3430.                     <td>exc_type</td>
  3431.                     <td class="code"><pre>&lt;class &#39;psycopg2.IntegrityError&#39;&gt;</pre></td>
  3432.                   </tr>
  3433.                
  3434.                   <tr>
  3435.                     <td>exc_value</td>
  3436.                     <td class="code"><pre>IntegrityError(&#39;duplicate key value violates unique constraint &quot;community_mark_entity_ct_id_4145a28e_uniq&quot;\nDETAIL:  Key (entity_ct_id, entity_id, name, creator_id)=(18, b3c0ecec-ccde-5bda-9a0d-f0e745b02199, testMark2, 324e6020-e253-5b8e-8871-883ec17d0d45) already exists.\n&#39;,)</pre></td>
  3437.                   </tr>
  3438.                
  3439.                   <tr>
  3440.                     <td>self</td>
  3441.                     <td class="code"><pre>&lt;django.db.utils.DatabaseErrorWrapper object at 0x7f7b6992f278&gt;</pre></td>
  3442.                   </tr>
  3443.                
  3444.                   <tr>
  3445.                     <td>traceback</td>
  3446.                     <td class="code"><pre>&lt;traceback object at 0x7f7b68e50308&gt;</pre></td>
  3447.                   </tr>
  3448.                
  3449.               </tbody>
  3450.             </table>
  3451.          
  3452.         </li>
  3453.      
  3454.        
  3455.         <li class="frame django">
  3456.           <code>/opt/datagator/lib/python3.4/site-packages/django/utils/six.py</code> in <code>reraise</code>
  3457.  
  3458.          
  3459.             <div class="context" id="c140168016565960">
  3460.              
  3461.                 <ol start="678" class="pre-context" id="pre140168016565960">
  3462.                
  3463.                   <li onclick="toggle('pre140168016565960', 'post140168016565960')"><pre>if PY3:</pre></li>
  3464.                
  3465.                   <li onclick="toggle('pre140168016565960', 'post140168016565960')"><pre>    exec_ = getattr(moves.builtins, &quot;exec&quot;)</pre></li>
  3466.                
  3467.                   <li onclick="toggle('pre140168016565960', 'post140168016565960')"><pre></pre></li>
  3468.                
  3469.                   <li onclick="toggle('pre140168016565960', 'post140168016565960')"><pre>    def reraise(tp, value, tb=None):</pre></li>
  3470.                
  3471.                   <li onclick="toggle('pre140168016565960', 'post140168016565960')"><pre>        if value is None:</pre></li>
  3472.                
  3473.                   <li onclick="toggle('pre140168016565960', 'post140168016565960')"><pre>            value = tp()</pre></li>
  3474.                
  3475.                   <li onclick="toggle('pre140168016565960', 'post140168016565960')"><pre>        if value.__traceback__ is not tb:</pre></li>
  3476.                
  3477.                 </ol>
  3478.              
  3479.               <ol start="685" class="context-line">
  3480.                 <li onclick="toggle('pre140168016565960', 'post140168016565960')"><pre>
  3481.             raise value.with_traceback(tb)</pre> <span>...</span></li></ol>
  3482.              
  3483.                 <ol start='686' class="post-context" id="post140168016565960">
  3484.                  
  3485.                   <li onclick="toggle('pre140168016565960', 'post140168016565960')"><pre>        raise value</pre></li>
  3486.                  
  3487.                   <li onclick="toggle('pre140168016565960', 'post140168016565960')"><pre></pre></li>
  3488.                  
  3489.                   <li onclick="toggle('pre140168016565960', 'post140168016565960')"><pre>else:</pre></li>
  3490.                  
  3491.                   <li onclick="toggle('pre140168016565960', 'post140168016565960')"><pre>    def exec_(_code_, _globs_=None, _locs_=None):</pre></li>
  3492.                  
  3493.                   <li onclick="toggle('pre140168016565960', 'post140168016565960')"><pre>        &quot;&quot;&quot;Execute code in a namespace.&quot;&quot;&quot;</pre></li>
  3494.                  
  3495.                   <li onclick="toggle('pre140168016565960', 'post140168016565960')"><pre>        if _globs_ is None:</pre></li>
  3496.                  
  3497.               </ol>
  3498.              
  3499.             </div>
  3500.          
  3501.  
  3502.          
  3503.             <div class="commands">
  3504.                
  3505.                     <a href="#" onclick="return varToggle(this, '140168016565960')"><span>&#x25b6;</span> Local vars</a>
  3506.                
  3507.             </div>
  3508.             <table class="vars" id="v140168016565960">
  3509.               <thead>
  3510.                 <tr>
  3511.                   <th>Variable</th>
  3512.                   <th>Value</th>
  3513.                 </tr>
  3514.               </thead>
  3515.               <tbody>
  3516.                
  3517.                   <tr>
  3518.                     <td>tb</td>
  3519.                     <td class="code"><pre>&lt;traceback object at 0x7f7b68e50308&gt;</pre></td>
  3520.                   </tr>
  3521.                
  3522.                   <tr>
  3523.                     <td>tp</td>
  3524.                     <td class="code"><pre>&lt;class &#39;django.db.utils.IntegrityError&#39;&gt;</pre></td>
  3525.                   </tr>
  3526.                
  3527.                   <tr>
  3528.                     <td>value</td>
  3529.                     <td class="code"><pre>IntegrityError(&#39;duplicate key value violates unique constraint &quot;community_mark_entity_ct_id_4145a28e_uniq&quot;\nDETAIL:  Key (entity_ct_id, entity_id, name, creator_id)=(18, b3c0ecec-ccde-5bda-9a0d-f0e745b02199, testMark2, 324e6020-e253-5b8e-8871-883ec17d0d45) already exists.\n&#39;,)</pre></td>
  3530.                   </tr>
  3531.                
  3532.               </tbody>
  3533.             </table>
  3534.          
  3535.         </li>
  3536.      
  3537.        
  3538.         <li class="frame django">
  3539.           <code>/opt/datagator/lib/python3.4/site-packages/django/db/backends/utils.py</code> in <code>execute</code>
  3540.  
  3541.          
  3542.             <div class="context" id="c140168017543944">
  3543.              
  3544.                 <ol start="57" class="pre-context" id="pre140168017543944">
  3545.                
  3546.                   <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre></pre></li>
  3547.                
  3548.                   <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre>    def execute(self, sql, params=None):</pre></li>
  3549.                
  3550.                   <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre>        self.db.validate_no_broken_transaction()</pre></li>
  3551.                
  3552.                   <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre>        with self.db.wrap_database_errors:</pre></li>
  3553.                
  3554.                   <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre>            if params is None:</pre></li>
  3555.                
  3556.                   <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre>                return self.cursor.execute(sql)</pre></li>
  3557.                
  3558.                   <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre>            else:</pre></li>
  3559.                
  3560.                 </ol>
  3561.              
  3562.               <ol start="64" class="context-line">
  3563.                 <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre>
  3564.                 return self.cursor.execute(sql, params)</pre> <span>...</span></li></ol>
  3565.              
  3566.                 <ol start='65' class="post-context" id="post140168017543944">
  3567.                  
  3568.                   <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre></pre></li>
  3569.                  
  3570.                   <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre>    def executemany(self, sql, param_list):</pre></li>
  3571.                  
  3572.                   <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre>        self.db.validate_no_broken_transaction()</pre></li>
  3573.                  
  3574.                   <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre>        with self.db.wrap_database_errors:</pre></li>
  3575.                  
  3576.                   <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre>            return self.cursor.executemany(sql, param_list)</pre></li>
  3577.                  
  3578.                   <li onclick="toggle('pre140168017543944', 'post140168017543944')"><pre></pre></li>
  3579.                  
  3580.               </ol>
  3581.              
  3582.             </div>
  3583.          
  3584.  
  3585.          
  3586.             <div class="commands">
  3587.                
  3588.                     <a href="#" onclick="return varToggle(this, '140168017543944')"><span>&#x25b6;</span> Local vars</a>
  3589.                
  3590.             </div>
  3591.             <table class="vars" id="v140168017543944">
  3592.               <thead>
  3593.                 <tr>
  3594.                   <th>Variable</th>
  3595.                   <th>Value</th>
  3596.                 </tr>
  3597.               </thead>
  3598.               <tbody>
  3599.                
  3600.                   <tr>
  3601.                     <td>params</td>
  3602.                     <td class="code"><pre>(datetime.datetime(2017, 1, 13, 13, 41, 26, 185576, tzinfo=&lt;UTC&gt;),
  3603.  UUID(&#39;324e6020-e253-5b8e-8871-883ec17d0d45&#39;),
  3604.  18,
  3605.  UUID(&#39;b3c0ecec-ccde-5bda-9a0d-f0e745b02199&#39;),
  3606.  UUID(&#39;cade4338-d5a2-583e-a386-2571bf537a65&#39;),
  3607.  &#39;testMark2&#39;,
  3608.  &lt;psycopg2._json.Json object at 0x7f7b6995f470&gt;)</pre></td>
  3609.                   </tr>
  3610.                
  3611.                   <tr>
  3612.                     <td>self</td>
  3613.                     <td class="code"><pre>&lt;django.db.backends.utils.CursorDebugWrapper object at 0x7f7b69a0c128&gt;</pre></td>
  3614.                   </tr>
  3615.                
  3616.                   <tr>
  3617.                     <td>sql</td>
  3618.                     <td class="code"><pre>(&#39;INSERT INTO &quot;community_mark&quot; (&quot;created&quot;, &quot;creator_id&quot;, &quot;entity_ct_id&quot;, &#39;
  3619.  &#39;&quot;entity_id&quot;, &quot;id&quot;, &quot;name&quot;, &quot;data&quot;) VALUES (%s, %s, %s, %s, %s, %s, %s)&#39;)</pre></td>
  3620.                   </tr>
  3621.                
  3622.               </tbody>
  3623.             </table>
  3624.          
  3625.         </li>
  3626.      
  3627.     </ul>
  3628.   </div>
  3629.  
  3630.   <form action="http://dpaste.com/" name="pasteform" id="pasteform" method="post">
  3631.  
  3632.   <div id="pastebinTraceback" class="pastebin">
  3633.     <input type="hidden" name="language" value="PythonConsole">
  3634.     <input type="hidden" name="title"
  3635.      value="IntegrityError at /api/repo/antonio/dyad/mark/ddddddd.recipe">
  3636.     <input type="hidden" name="source" value="Django Dpaste Agent">
  3637.     <input type="hidden" name="poster" value="Django">
  3638.     <textarea name="content" id="traceback_area" cols="140" rows="25">
  3639. Environment:
  3640.  
  3641.  
  3642. Request Method: PUT
  3643. Request URL: https://dev.datagator.org/api/repo/antonio/dyad/mark/ddddddd.recipe
  3644.  
  3645. Django Version: 1.10.4
  3646. Python Version: 3.4.5
  3647. Installed Applications:
  3648. (&#39;django.contrib.auth&#39;,
  3649.  &#39;django.contrib.contenttypes&#39;,
  3650.  &#39;django.contrib.sessions&#39;,
  3651.  &#39;django.contrib.messages&#39;,
  3652.  &#39;django.contrib.staticfiles&#39;,
  3653.  &#39;django_redis&#39;,
  3654.  &#39;corsheaders&#39;,
  3655.  &#39;datagator.ext.repodata&#39;,
  3656.  &#39;datagator.ext.docindex&#39;,
  3657.  &#39;datagator.ext.docstore&#39;,
  3658.  &#39;datagator.ext.safezone&#39;,
  3659.  &#39;datagator.ext.taskqueue&#39;,
  3660.  &#39;datagator.api.portal&#39;)
  3661. Installed Middleware:
  3662. (&#39;datagator.wsgi.middleware.CrossOriginMiddleware&#39;,
  3663.  &#39;datagator.wsgi.middleware.ConditionalGetMiddleware&#39;,
  3664.  &#39;datagator.wsgi.middleware.SessionMiddleware&#39;,
  3665.  &#39;django.middleware.common.CommonMiddleware&#39;,
  3666.  &#39;django.contrib.auth.middleware.AuthenticationMiddleware&#39;,
  3667.  &#39;django.contrib.messages.middleware.MessageMiddleware&#39;)
  3668.  
  3669.  
  3670.  
  3671. Traceback:
  3672.  
  3673. File "/opt/datagator/lib/python3.4/site-packages/django/db/backends/utils.py" in execute
  3674.   64.                 return self.cursor.execute(sql, params)
  3675.  
  3676. The above exception (duplicate key value violates unique constraint &quot;community_mark_entity_ct_id_4145a28e_uniq&quot;
  3677. DETAIL:  Key (entity_ct_id, entity_id, name, creator_id)=(18, b3c0ecec-ccde-5bda-9a0d-f0e745b02199, testMark2, 324e6020-e253-5b8e-8871-883ec17d0d45) already exists.
  3678. ) was the direct cause of the following exception:
  3679.  
  3680. File "/opt/datagator/lib/python3.4/site-packages/django/core/handlers/exception.py" in inner
  3681.   39.             response = get_response(request)
  3682.  
  3683. File "/opt/datagator/lib/python3.4/site-packages/django/core/handlers/base.py" in _legacy_get_response
  3684.   249.             response = self._get_response(request)
  3685.  
  3686. File "/opt/datagator/lib/python3.4/site-packages/django/core/handlers/base.py" in _get_response
  3687.   187.                 response = self.process_exception_by_middleware(e, request)
  3688.  
  3689. File "/opt/datagator/lib/python3.4/site-packages/django/core/handlers/base.py" in _get_response
  3690.   185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)
  3691.  
  3692. File "/opt/datagator/lib/python3.4/site-packages/django/views/generic/base.py" in view
  3693.   68.             return self.dispatch(request, *args, **kwargs)
  3694.  
  3695. File "./datagator/wsgi/decorators.py" in wrapper
  3696.   199.                 response = method(view, request, *args, **kwargs)
  3697.  
  3698. File "./datagator/wsgi/views.py" in dispatch
  3699.   59.             response = super(Endpoint, self).dispatch(request, *args, **kwargs)
  3700.  
  3701. File "/opt/datagator/lib/python3.4/site-packages/django/views/generic/base.py" in dispatch
  3702.   88.         return handler(request, *args, **kwargs)
  3703.  
  3704. File "./datagator/wsgi/decorators.py" in wrapper
  3705.   84.             return method(view, request, *args, **kwargs)
  3706.  
  3707. File "./datagator/api/portal/v2/mark.py" in put
  3708.   317.         return self.forward_request(request, repo, name, key, rev)
  3709.  
  3710. File "./datagator/api/portal/v2/mark.py" in forward_request
  3711.   337.         return endpoint.func(request, *endpoint.args, **endpoint.kwargs)
  3712.  
  3713. File "/opt/datagator/lib/python3.4/site-packages/django/views/generic/base.py" in view
  3714.   68.             return self.dispatch(request, *args, **kwargs)
  3715.  
  3716. File "./datagator/wsgi/decorators.py" in wrapper
  3717.   199.                 response = method(view, request, *args, **kwargs)
  3718.  
  3719. File "./datagator/wsgi/views.py" in dispatch
  3720.   59.             response = super(Endpoint, self).dispatch(request, *args, **kwargs)
  3721.  
  3722. File "/opt/datagator/lib/python3.4/site-packages/django/views/generic/base.py" in dispatch
  3723.   88.         return handler(request, *args, **kwargs)
  3724.  
  3725. File "./datagator/wsgi/decorators.py" in wrapper
  3726.   84.             return method(view, request, *args, **kwargs)
  3727.  
  3728. File "/usr/lib64/python3.4/contextlib.py" in inner
  3729.   30.                 return func(*args, **kwds)
  3730.  
  3731. File "./datagator/api/portal/v2/mark.py" in put
  3732.   173.         mark.save()
  3733.  
  3734. File "./datagator/ext/repodata/models/mark.py" in save
  3735.   126.         return super(Mark, self).save(*args, **kwargs)
  3736.  
  3737. File "/opt/datagator/lib/python3.4/site-packages/django/db/models/base.py" in save
  3738.   796.                        force_update=force_update, update_fields=update_fields)
  3739.  
  3740. File "/opt/datagator/lib/python3.4/site-packages/django/db/models/base.py" in save_base
  3741.   824.             updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
  3742.  
  3743. File "/opt/datagator/lib/python3.4/site-packages/django/db/models/base.py" in _save_table
  3744.   908.             result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
  3745.  
  3746. File "/opt/datagator/lib/python3.4/site-packages/django/db/models/base.py" in _do_insert
  3747.   947.                                using=using, raw=raw)
  3748.  
  3749. File "/opt/datagator/lib/python3.4/site-packages/django/db/models/manager.py" in manager_method
  3750.   85.                 return getattr(self.get_queryset(), name)(*args, **kwargs)
  3751.  
  3752. File "/opt/datagator/lib/python3.4/site-packages/django/db/models/query.py" in _insert
  3753.   1045.         return query.get_compiler(using=using).execute_sql(return_id)
  3754.  
  3755. File "/opt/datagator/lib/python3.4/site-packages/django/db/models/sql/compiler.py" in execute_sql
  3756.   1054.                 cursor.execute(sql, params)
  3757.  
  3758. File "/opt/datagator/lib/python3.4/site-packages/django/db/backends/utils.py" in execute
  3759.   79.             return super(CursorDebugWrapper, self).execute(sql, params)
  3760.  
  3761. File "/opt/datagator/lib/python3.4/site-packages/django/db/backends/utils.py" in execute
  3762.   64.                 return self.cursor.execute(sql, params)
  3763.  
  3764. File "/opt/datagator/lib/python3.4/site-packages/django/db/utils.py" in __exit__
  3765.   94.                 six.reraise(dj_exc_type, dj_exc_value, traceback)
  3766.  
  3767. File "/opt/datagator/lib/python3.4/site-packages/django/utils/six.py" in reraise
  3768.   685.             raise value.with_traceback(tb)
  3769.  
  3770. File "/opt/datagator/lib/python3.4/site-packages/django/db/backends/utils.py" in execute
  3771.   64.                 return self.cursor.execute(sql, params)
  3772.  
  3773. Exception Type: IntegrityError at /api/repo/antonio/dyad/mark/ddddddd.recipe
  3774. Exception Value: duplicate key value violates unique constraint &quot;community_mark_entity_ct_id_4145a28e_uniq&quot;
  3775. DETAIL:  Key (entity_ct_id, entity_id, name, creator_id)=(18, b3c0ecec-ccde-5bda-9a0d-f0e745b02199, testMark2, 324e6020-e253-5b8e-8871-883ec17d0d45) already exists.
  3776.  
  3777. </textarea>
  3778.   <br><br>
  3779.   <input type="submit" value="Share this traceback on a public website">
  3780.   </div>
  3781. </form>
  3782. </div>
  3783.  
  3784.  
  3785.  
  3786. <div id="requestinfo">
  3787.   <h2>Request information</h2>
  3788.  
  3789.  
  3790.  
  3791.     <h3 id="user-info">USER</h3>
  3792.     <p>antonio</p>
  3793.  
  3794.  
  3795.   <h3 id="get-info">GET</h3>
  3796.  
  3797.     <p>No GET data</p>
  3798.  
  3799.  
  3800.   <h3 id="post-info">POST</h3>
  3801.  
  3802.     <p>No POST data</p>
  3803.  
  3804.   <h3 id="files-info">FILES</h3>
  3805.  
  3806.     <p>No FILES data</p>
  3807.  
  3808.  
  3809.  
  3810.   <h3 id="cookie-info">COOKIES</h3>
  3811.  
  3812.     <p>No cookie data</p>
  3813.  
  3814.  
  3815.   <h3 id="meta-info">META</h3>
  3816.   <table class="req">
  3817.     <thead>
  3818.       <tr>
  3819.         <th>Variable</th>
  3820.         <th>Value</th>
  3821.       </tr>
  3822.     </thead>
  3823.     <tbody>
  3824.      
  3825.         <tr>
  3826.           <td>CONTENT_LENGTH</td>
  3827.           <td class="code"><pre>&#39;436&#39;</pre></td>
  3828.         </tr>
  3829.      
  3830.         <tr>
  3831.           <td>CONTENT_TYPE</td>
  3832.           <td class="code"><pre>&#39;application/json&#39;</pre></td>
  3833.         </tr>
  3834.      
  3835.         <tr>
  3836.           <td>DOCUMENT_ROOT</td>
  3837.           <td class="code"><pre>&#39;/usr/share/nginx/html&#39;</pre></td>
  3838.         </tr>
  3839.      
  3840.         <tr>
  3841.           <td>HTTPS</td>
  3842.           <td class="code"><pre>&#39;on&#39;</pre></td>
  3843.         </tr>
  3844.      
  3845.         <tr>
  3846.           <td>HTTP_ACCEPT</td>
  3847.           <td class="code"><pre>&#39;*/*&#39;</pre></td>
  3848.         </tr>
  3849.      
  3850.         <tr>
  3851.           <td>HTTP_AUTHORIZATION</td>
  3852.           <td class="code"><pre>&#39;Token BO3Voq6dq4IXbAVZyBSOT27oss6b0JsK&#39;</pre></td>
  3853.         </tr>
  3854.      
  3855.         <tr>
  3856.           <td>HTTP_CONTENT_LENGTH</td>
  3857.           <td class="code"><pre>&#39;436&#39;</pre></td>
  3858.         </tr>
  3859.      
  3860.         <tr>
  3861.           <td>HTTP_CONTENT_TYPE</td>
  3862.           <td class="code"><pre>&#39;application/json&#39;</pre></td>
  3863.         </tr>
  3864.      
  3865.         <tr>
  3866.           <td>HTTP_HOST</td>
  3867.           <td class="code"><pre>&#39;dev.datagator.org&#39;</pre></td>
  3868.         </tr>
  3869.      
  3870.         <tr>
  3871.           <td>HTTP_USER_AGENT</td>
  3872.           <td class="code"><pre>&#39;curl/7.47.0&#39;</pre></td>
  3873.         </tr>
  3874.      
  3875.         <tr>
  3876.           <td>PATH_INFO</td>
  3877.           <td class="code"><pre>&#39;/api/repo/antonio/dyad/mark/ddddddd.recipe&#39;</pre></td>
  3878.         </tr>
  3879.      
  3880.         <tr>
  3881.           <td>QUERY_STRING</td>
  3882.           <td class="code"><pre>&#39;&#39;</pre></td>
  3883.         </tr>
  3884.      
  3885.         <tr>
  3886.           <td>REMOTE_ADDR</td>
  3887.           <td class="code"><pre>&#39;94.250.163.153&#39;</pre></td>
  3888.         </tr>
  3889.      
  3890.         <tr>
  3891.           <td>REMOTE_PORT</td>
  3892.           <td class="code"><pre>&#39;53265&#39;</pre></td>
  3893.         </tr>
  3894.      
  3895.         <tr>
  3896.           <td>REQUEST_METHOD</td>
  3897.           <td class="code"><pre>&#39;PUT&#39;</pre></td>
  3898.         </tr>
  3899.      
  3900.         <tr>
  3901.           <td>REQUEST_SCHEME</td>
  3902.           <td class="code"><pre>&#39;https&#39;</pre></td>
  3903.         </tr>
  3904.      
  3905.         <tr>
  3906.           <td>REQUEST_URI</td>
  3907.           <td class="code"><pre>&#39;/api/repo/antonio/dyad/mark/ddddddd.recipe&#39;</pre></td>
  3908.         </tr>
  3909.      
  3910.         <tr>
  3911.           <td>SCRIPT_NAME</td>
  3912.           <td class="code"><pre>&#39;&#39;</pre></td>
  3913.         </tr>
  3914.      
  3915.         <tr>
  3916.           <td>SERVER_NAME</td>
  3917.           <td class="code"><pre>&#39;dev.datagator.org&#39;</pre></td>
  3918.         </tr>
  3919.      
  3920.         <tr>
  3921.           <td>SERVER_PORT</td>
  3922.           <td class="code"><pre>&#39;443&#39;</pre></td>
  3923.         </tr>
  3924.      
  3925.         <tr>
  3926.           <td>SERVER_PROTOCOL</td>
  3927.           <td class="code"><pre>&#39;HTTP/1.1&#39;</pre></td>
  3928.         </tr>
  3929.      
  3930.         <tr>
  3931.           <td>UWSGI_APPID</td>
  3932.           <td class="code"><pre>&#39;dev.datagator.org|&#39;</pre></td>
  3933.         </tr>
  3934.      
  3935.         <tr>
  3936.           <td>uwsgi.core</td>
  3937.           <td class="code"><pre>15</pre></td>
  3938.         </tr>
  3939.      
  3940.         <tr>
  3941.           <td>uwsgi.node</td>
  3942.           <td class="code"><pre>b&#39;dev.localdomain&#39;</pre></td>
  3943.         </tr>
  3944.      
  3945.         <tr>
  3946.           <td>uwsgi.version</td>
  3947.           <td class="code"><pre>b&#39;2.0.14&#39;</pre></td>
  3948.         </tr>
  3949.      
  3950.         <tr>
  3951.           <td>wsgi.errors</td>
  3952.           <td class="code"><pre>&lt;_io.TextIOWrapper name=2 mode=&#39;w&#39; encoding=&#39;UTF-8&#39;&gt;</pre></td>
  3953.         </tr>
  3954.      
  3955.         <tr>
  3956.           <td>wsgi.file_wrapper</td>
  3957.           <td class="code"><pre>&#39;&#39;</pre></td>
  3958.         </tr>
  3959.      
  3960.         <tr>
  3961.           <td>wsgi.input</td>
  3962.           <td class="code"><pre>&lt;uwsgi._Input object at 0x7f7b6b2f8e88&gt;</pre></td>
  3963.         </tr>
  3964.      
  3965.         <tr>
  3966.           <td>wsgi.multiprocess</td>
  3967.           <td class="code"><pre>True</pre></td>
  3968.         </tr>
  3969.      
  3970.         <tr>
  3971.           <td>wsgi.multithread</td>
  3972.           <td class="code"><pre>True</pre></td>
  3973.         </tr>
  3974.      
  3975.         <tr>
  3976.           <td>wsgi.run_once</td>
  3977.           <td class="code"><pre>False</pre></td>
  3978.         </tr>
  3979.      
  3980.         <tr>
  3981.           <td>wsgi.url_scheme</td>
  3982.           <td class="code"><pre>&#39;https&#39;</pre></td>
  3983.         </tr>
  3984.      
  3985.         <tr>
  3986.           <td>wsgi.version</td>
  3987.           <td class="code"><pre>(1, 0)</pre></td>
  3988.         </tr>
  3989.      
  3990.     </tbody>
  3991.   </table>
  3992.  
  3993.  
  3994.   <h3 id="settings-info">Settings</h3>
  3995.   <h4>Using settings module <code>wsgi.settings.api.dev</code></h4>
  3996.   <table class="req">
  3997.     <thead>
  3998.       <tr>
  3999.         <th>Setting</th>
  4000.         <th>Value</th>
  4001.       </tr>
  4002.     </thead>
  4003.     <tbody>
  4004.      
  4005.         <tr>
  4006.           <td>ABSOLUTE_URL_OVERRIDES</td>
  4007.           <td class="code"><pre>{}</pre></td>
  4008.         </tr>
  4009.      
  4010.         <tr>
  4011.           <td>ADMINS</td>
  4012.           <td class="code"><pre>((&#39;liuyu&#39;, &#39;liuyu@opencps.net&#39;),)</pre></td>
  4013.         </tr>
  4014.      
  4015.         <tr>
  4016.           <td>ALLOWED_HOSTS</td>
  4017.           <td class="code"><pre>[&#39;.datagator.org&#39;,
  4018.  &#39;datagator-1766875405.us-west-2.elb.amazonaws.com&#39;,
  4019.  &#39;dev.datagator.org&#39;]</pre></td>
  4020.         </tr>
  4021.      
  4022.         <tr>
  4023.           <td>APPEND_SLASH</td>
  4024.           <td class="code"><pre>False</pre></td>
  4025.         </tr>
  4026.      
  4027.         <tr>
  4028.           <td>AUTHENTICATION_BACKENDS</td>
  4029.           <td class="code"><pre>(&#39;datagator.ext.safezone.backends.EntityPermBackend&#39;,
  4030.  &#39;datagator.ext.safezone.backends.TokenAuthBackend&#39;,
  4031.  &#39;datagator.ext.safezone.backends.BasicAuthBackend&#39;)</pre></td>
  4032.         </tr>
  4033.      
  4034.         <tr>
  4035.           <td>AUTH_PASSWORD_VALIDATORS</td>
  4036.           <td class="code"><pre>&#39;********************&#39;</pre></td>
  4037.         </tr>
  4038.      
  4039.         <tr>
  4040.           <td>AUTH_USER_MODEL</td>
  4041.           <td class="code"><pre>&#39;auth.User&#39;</pre></td>
  4042.         </tr>
  4043.      
  4044.         <tr>
  4045.           <td>AWS_PROFILE</td>
  4046.           <td class="code"><pre>{&#39;default&#39;: {&#39;ACCESS_KEY_ID&#39;: &#39;********************&#39;,
  4047.              &#39;DEFAULT_REGION&#39;: &#39;us-west-2&#39;,
  4048.              &#39;SECRET_ACCESS_KEY&#39;: &#39;********************&#39;},
  4049.  &#39;webface&#39;: {&#39;ACCESS_KEY_ID&#39;: &#39;********************&#39;,
  4050.              &#39;DEFAULT_REGION&#39;: &#39;us-west-2&#39;,
  4051.              &#39;SECRET_ACCESS_KEY&#39;: &#39;********************&#39;}}</pre></td>
  4052.         </tr>
  4053.      
  4054.         <tr>
  4055.           <td>BASE_DIR</td>
  4056.           <td class="code"><pre>&#39;/opt/datagator&#39;</pre></td>
  4057.         </tr>
  4058.      
  4059.         <tr>
  4060.           <td>CACHES</td>
  4061.           <td class="code"><pre>{&#39;default&#39;: {&#39;BACKEND&#39;: &#39;django_redis.cache.RedisCache&#39;,
  4062.              &#39;LOCATION&#39;: &#39;redis://datagator-cache.0hzqk8.ng.0001.usw2.cache.amazonaws.com:6379/3&#39;,
  4063.              &#39;OPTIONS&#39;: {&#39;CLIENT_CLASS&#39;: &#39;django_redis.client.DefaultClient&#39;,
  4064.                          &#39;IGNORE_EXCEPTIONS&#39;: True}}}</pre></td>
  4065.         </tr>
  4066.      
  4067.         <tr>
  4068.           <td>CACHE_MIDDLEWARE_ALIAS</td>
  4069.           <td class="code"><pre>&#39;default&#39;</pre></td>
  4070.         </tr>
  4071.      
  4072.         <tr>
  4073.           <td>CACHE_MIDDLEWARE_KEY_PREFIX</td>
  4074.           <td class="code"><pre>&#39;********************&#39;</pre></td>
  4075.         </tr>
  4076.      
  4077.         <tr>
  4078.           <td>CACHE_MIDDLEWARE_SECONDS</td>
  4079.           <td class="code"><pre>600</pre></td>
  4080.         </tr>
  4081.      
  4082.         <tr>
  4083.           <td>CORS_ALLOW_CREDENTIALS</td>
  4084.           <td class="code"><pre>True</pre></td>
  4085.         </tr>
  4086.      
  4087.         <tr>
  4088.           <td>CORS_ALLOW_HEADERS</td>
  4089.           <td class="code"><pre>(&#39;Authorization&#39;,
  4090.  &#39;Content-Type&#39;,
  4091.  &#39;If-Match&#39;,
  4092.  &#39;If-Modified-Since&#39;,
  4093.  &#39;If-None-Match&#39;,
  4094.  &#39;If-Unmodified-Since&#39;,
  4095.  &#39;Origin&#39;)</pre></td>
  4096.         </tr>
  4097.      
  4098.         <tr>
  4099.           <td>CORS_ALLOW_METHODS</td>
  4100.           <td class="code"><pre>(&#39;GET&#39;, &#39;HEAD&#39;, &#39;POST&#39;, &#39;PUT&#39;, &#39;PATCH&#39;, &#39;DELETE&#39;, &#39;OPTIONS&#39;)</pre></td>
  4101.         </tr>
  4102.      
  4103.         <tr>
  4104.           <td>CORS_EXPOSE_HEADERS</td>
  4105.           <td class="code"><pre>(&#39;ETag&#39;,
  4106.  &#39;Link&#39;,
  4107.  &#39;Location&#39;,
  4108.  &#39;X-RateLimit-Limit&#39;,
  4109.  &#39;X-RateLimit-Remaining&#39;,
  4110.  &#39;X-RateLimit-Reset&#39;,
  4111.  &#39;X-DataGator-Entity&#39;)</pre></td>
  4112.         </tr>
  4113.      
  4114.         <tr>
  4115.           <td>CORS_ORIGIN_ALLOW_ALL</td>
  4116.           <td class="code"><pre>True</pre></td>
  4117.         </tr>
  4118.      
  4119.         <tr>
  4120.           <td>CSRF_COOKIE_AGE</td>
  4121.           <td class="code"><pre>31449600</pre></td>
  4122.         </tr>
  4123.      
  4124.         <tr>
  4125.           <td>CSRF_COOKIE_DOMAIN</td>
  4126.           <td class="code"><pre>None</pre></td>
  4127.         </tr>
  4128.      
  4129.         <tr>
  4130.           <td>CSRF_COOKIE_HTTPONLY</td>
  4131.           <td class="code"><pre>False</pre></td>
  4132.         </tr>
  4133.      
  4134.         <tr>
  4135.           <td>CSRF_COOKIE_NAME</td>
  4136.           <td class="code"><pre>&#39;csrftoken&#39;</pre></td>
  4137.         </tr>
  4138.      
  4139.         <tr>
  4140.           <td>CSRF_COOKIE_PATH</td>
  4141.           <td class="code"><pre>&#39;/&#39;</pre></td>
  4142.         </tr>
  4143.      
  4144.         <tr>
  4145.           <td>CSRF_COOKIE_SECURE</td>
  4146.           <td class="code"><pre>False</pre></td>
  4147.         </tr>
  4148.      
  4149.         <tr>
  4150.           <td>CSRF_FAILURE_VIEW</td>
  4151.           <td class="code"><pre>&#39;django.views.csrf.csrf_failure&#39;</pre></td>
  4152.         </tr>
  4153.      
  4154.         <tr>
  4155.           <td>CSRF_HEADER_NAME</td>
  4156.           <td class="code"><pre>&#39;HTTP_X_CSRFTOKEN&#39;</pre></td>
  4157.         </tr>
  4158.      
  4159.         <tr>
  4160.           <td>CSRF_TRUSTED_ORIGINS</td>
  4161.           <td class="code"><pre>[]</pre></td>
  4162.         </tr>
  4163.      
  4164.         <tr>
  4165.           <td>DATABASES</td>
  4166.           <td class="code"><pre>{&#39;default&#39;: {&#39;ATOMIC_REQUESTS&#39;: False,
  4167.              &#39;AUTOCOMMIT&#39;: True,
  4168.              &#39;CONN_MAX_AGE&#39;: 0,
  4169.              &#39;ENGINE&#39;: &#39;django.db.backends.postgresql&#39;,
  4170.              &#39;HOST&#39;: &#39;datagator-rds.ctxyh8ivptji.us-west-2.rds.amazonaws.com&#39;,
  4171.              &#39;NAME&#39;: &#39;datagator_dev&#39;,
  4172.              &#39;OPTIONS&#39;: {},
  4173.              &#39;PASSWORD&#39;: &#39;********************&#39;,
  4174.              &#39;PORT&#39;: &#39;5432&#39;,
  4175.              &#39;TEST&#39;: {&#39;CHARSET&#39;: None,
  4176.                       &#39;COLLATION&#39;: None,
  4177.                       &#39;MIRROR&#39;: None,
  4178.                       &#39;NAME&#39;: None},
  4179.              &#39;TIME_ZONE&#39;: None,
  4180.              &#39;USER&#39;: &#39;datagator&#39;}}</pre></td>
  4181.         </tr>
  4182.      
  4183.         <tr>
  4184.           <td>DATABASE_ROUTERS</td>
  4185.           <td class="code"><pre>[]</pre></td>
  4186.         </tr>
  4187.      
  4188.         <tr>
  4189.           <td>DATAGATOR_SETTINGS</td>
  4190.           <td class="code"><pre>&#39;DEV&#39;</pre></td>
  4191.         </tr>
  4192.      
  4193.         <tr>
  4194.           <td>DATA_UPLOAD_MAX_MEMORY_SIZE</td>
  4195.           <td class="code"><pre>2621440</pre></td>
  4196.         </tr>
  4197.      
  4198.         <tr>
  4199.           <td>DATA_UPLOAD_MAX_NUMBER_FIELDS</td>
  4200.           <td class="code"><pre>1000</pre></td>
  4201.         </tr>
  4202.      
  4203.         <tr>
  4204.           <td>DATETIME_FORMAT</td>
  4205.           <td class="code"><pre>&#39;N j, Y, P&#39;</pre></td>
  4206.         </tr>
  4207.      
  4208.         <tr>
  4209.           <td>DATETIME_INPUT_FORMATS</td>
  4210.           <td class="code"><pre>[&#39;%Y-%m-%d %H:%M:%S&#39;,
  4211.  &#39;%Y-%m-%d %H:%M:%S.%f&#39;,
  4212.  &#39;%Y-%m-%d %H:%M&#39;,
  4213.  &#39;%Y-%m-%d&#39;,
  4214.  &#39;%m/%d/%Y %H:%M:%S&#39;,
  4215.  &#39;%m/%d/%Y %H:%M:%S.%f&#39;,
  4216.  &#39;%m/%d/%Y %H:%M&#39;,
  4217.  &#39;%m/%d/%Y&#39;,
  4218.  &#39;%m/%d/%y %H:%M:%S&#39;,
  4219.  &#39;%m/%d/%y %H:%M:%S.%f&#39;,
  4220.  &#39;%m/%d/%y %H:%M&#39;,
  4221.  &#39;%m/%d/%y&#39;]</pre></td>
  4222.         </tr>
  4223.      
  4224.         <tr>
  4225.           <td>DATE_FORMAT</td>
  4226.           <td class="code"><pre>&#39;N j, Y&#39;</pre></td>
  4227.         </tr>
  4228.      
  4229.         <tr>
  4230.           <td>DATE_INPUT_FORMATS</td>
  4231.           <td class="code"><pre>[&#39;%Y-%m-%d&#39;,
  4232.  &#39;%m/%d/%Y&#39;,
  4233.  &#39;%m/%d/%y&#39;,
  4234.  &#39;%b %d %Y&#39;,
  4235.  &#39;%b %d, %Y&#39;,
  4236.  &#39;%d %b %Y&#39;,
  4237.  &#39;%d %b, %Y&#39;,
  4238.  &#39;%B %d %Y&#39;,
  4239.  &#39;%B %d, %Y&#39;,
  4240.  &#39;%d %B %Y&#39;,
  4241.  &#39;%d %B, %Y&#39;]</pre></td>
  4242.         </tr>
  4243.      
  4244.         <tr>
  4245.           <td>DEBUG</td>
  4246.           <td class="code"><pre>True</pre></td>
  4247.         </tr>
  4248.      
  4249.         <tr>
  4250.           <td>DEBUG_PROPAGATE_EXCEPTIONS</td>
  4251.           <td class="code"><pre>False</pre></td>
  4252.         </tr>
  4253.      
  4254.         <tr>
  4255.           <td>DECIMAL_SEPARATOR</td>
  4256.           <td class="code"><pre>&#39;.&#39;</pre></td>
  4257.         </tr>
  4258.      
  4259.         <tr>
  4260.           <td>DEFAULT_CHARSET</td>
  4261.           <td class="code"><pre>&#39;utf-8&#39;</pre></td>
  4262.         </tr>
  4263.      
  4264.         <tr>
  4265.           <td>DEFAULT_CONTENT_TYPE</td>
  4266.           <td class="code"><pre>&#39;application/json&#39;</pre></td>
  4267.         </tr>
  4268.      
  4269.         <tr>
  4270.           <td>DEFAULT_EXCEPTION_REPORTER_FILTER</td>
  4271.           <td class="code"><pre>&#39;django.views.debug.SafeExceptionReporterFilter&#39;</pre></td>
  4272.         </tr>
  4273.      
  4274.         <tr>
  4275.           <td>DEFAULT_FILE_STORAGE</td>
  4276.           <td class="code"><pre>&#39;datagator.ext.docstore.DocStore&#39;</pre></td>
  4277.         </tr>
  4278.      
  4279.         <tr>
  4280.           <td>DEFAULT_FROM_EMAIL</td>
  4281.           <td class="code"><pre>&#39;webmaster@localhost&#39;</pre></td>
  4282.         </tr>
  4283.      
  4284.         <tr>
  4285.           <td>DEFAULT_INDEX_TABLESPACE</td>
  4286.           <td class="code"><pre>&#39;&#39;</pre></td>
  4287.         </tr>
  4288.      
  4289.         <tr>
  4290.           <td>DEFAULT_TABLESPACE</td>
  4291.           <td class="code"><pre>&#39;&#39;</pre></td>
  4292.         </tr>
  4293.      
  4294.         <tr>
  4295.           <td>DISALLOWED_USER_AGENTS</td>
  4296.           <td class="code"><pre>[]</pre></td>
  4297.         </tr>
  4298.      
  4299.         <tr>
  4300.           <td>DOCINDEX</td>
  4301.           <td class="code"><pre>{&#39;default&#39;: {&#39;HOST&#39;: &#39;search-datagator-ila7plcq3brgzdf72c5f2oznve.us-west-2.es.amazonaws.com&#39;,
  4302.              &#39;PORT&#39;: 443}}</pre></td>
  4303.         </tr>
  4304.      
  4305.         <tr>
  4306.           <td>DOCSTORE</td>
  4307.           <td class="code"><pre>{&#39;default&#39;: {&#39;BACKEND&#39;: &#39;datagator.ext.docstore.backends.s3.S3BucketStorage&#39;,
  4308.              &#39;NAME&#39;: &#39;store.dev.datagator.org&#39;},
  4309.  &#39;download&#39;: {&#39;BACKEND&#39;: &#39;datagator.ext.docstore.backends.s3.S3BucketStorage&#39;,
  4310.               &#39;NAME&#39;: &#39;download.dev.datagator.org&#39;},
  4311.  &#39;upload&#39;: {&#39;BACKEND&#39;: &#39;datagator.ext.docstore.backends.s3.S3BucketStorage&#39;,
  4312.             &#39;NAME&#39;: &#39;upload.dev.datagator.org&#39;}}</pre></td>
  4313.         </tr>
  4314.      
  4315.         <tr>
  4316.           <td>EMAIL_BACKEND</td>
  4317.           <td class="code"><pre>&#39;django.core.mail.backends.smtp.EmailBackend&#39;</pre></td>
  4318.         </tr>
  4319.      
  4320.         <tr>
  4321.           <td>EMAIL_HOST</td>
  4322.           <td class="code"><pre>&#39;localhost&#39;</pre></td>
  4323.         </tr>
  4324.      
  4325.         <tr>
  4326.           <td>EMAIL_HOST_PASSWORD</td>
  4327.           <td class="code"><pre>&#39;********************&#39;</pre></td>
  4328.         </tr>
  4329.      
  4330.         <tr>
  4331.           <td>EMAIL_HOST_USER</td>
  4332.           <td class="code"><pre>&#39;&#39;</pre></td>
  4333.         </tr>
  4334.      
  4335.         <tr>
  4336.           <td>EMAIL_PORT</td>
  4337.           <td class="code"><pre>25</pre></td>
  4338.         </tr>
  4339.      
  4340.         <tr>
  4341.           <td>EMAIL_SSL_CERTFILE</td>
  4342.           <td class="code"><pre>None</pre></td>
  4343.         </tr>
  4344.      
  4345.         <tr>
  4346.           <td>EMAIL_SSL_KEYFILE</td>
  4347.           <td class="code"><pre>&#39;********************&#39;</pre></td>
  4348.         </tr>
  4349.      
  4350.         <tr>
  4351.           <td>EMAIL_SUBJECT_PREFIX</td>
  4352.           <td class="code"><pre>&#39;[Django] &#39;</pre></td>
  4353.         </tr>
  4354.      
  4355.         <tr>
  4356.           <td>EMAIL_TIMEOUT</td>
  4357.           <td class="code"><pre>None</pre></td>
  4358.         </tr>
  4359.      
  4360.         <tr>
  4361.           <td>EMAIL_USE_SSL</td>
  4362.           <td class="code"><pre>False</pre></td>
  4363.         </tr>
  4364.      
  4365.         <tr>
  4366.           <td>EMAIL_USE_TLS</td>
  4367.           <td class="code"><pre>False</pre></td>
  4368.         </tr>
  4369.      
  4370.         <tr>
  4371.           <td>FILE_CHARSET</td>
  4372.           <td class="code"><pre>&#39;utf-8&#39;</pre></td>
  4373.         </tr>
  4374.      
  4375.         <tr>
  4376.           <td>FILE_UPLOAD_DIRECTORY_PERMISSIONS</td>
  4377.           <td class="code"><pre>None</pre></td>
  4378.         </tr>
  4379.      
  4380.         <tr>
  4381.           <td>FILE_UPLOAD_HANDLERS</td>
  4382.           <td class="code"><pre>(&#39;datagator.ext.docstore.DocUploadHandler&#39;,)</pre></td>
  4383.         </tr>
  4384.      
  4385.         <tr>
  4386.           <td>FILE_UPLOAD_MAX_MEMORY_SIZE</td>
  4387.           <td class="code"><pre>2621440</pre></td>
  4388.         </tr>
  4389.      
  4390.         <tr>
  4391.           <td>FILE_UPLOAD_PERMISSIONS</td>
  4392.           <td class="code"><pre>None</pre></td>
  4393.         </tr>
  4394.      
  4395.         <tr>
  4396.           <td>FILE_UPLOAD_TEMP_DIR</td>
  4397.           <td class="code"><pre>None</pre></td>
  4398.         </tr>
  4399.      
  4400.         <tr>
  4401.           <td>FIRST_DAY_OF_WEEK</td>
  4402.           <td class="code"><pre>0</pre></td>
  4403.         </tr>
  4404.      
  4405.         <tr>
  4406.           <td>FIXTURE_DIRS</td>
  4407.           <td class="code"><pre>[]</pre></td>
  4408.         </tr>
  4409.      
  4410.         <tr>
  4411.           <td>FORCE_SCRIPT_NAME</td>
  4412.           <td class="code"><pre>None</pre></td>
  4413.         </tr>
  4414.      
  4415.         <tr>
  4416.           <td>FORMAT_MODULE_PATH</td>
  4417.           <td class="code"><pre>None</pre></td>
  4418.         </tr>
  4419.      
  4420.         <tr>
  4421.           <td>IGNORABLE_404_URLS</td>
  4422.           <td class="code"><pre>[]</pre></td>
  4423.         </tr>
  4424.      
  4425.         <tr>
  4426.           <td>INSTALLED_APPS</td>
  4427.           <td class="code"><pre>(&#39;django.contrib.auth&#39;,
  4428.  &#39;django.contrib.contenttypes&#39;,
  4429.  &#39;django.contrib.sessions&#39;,
  4430.  &#39;django.contrib.messages&#39;,
  4431.  &#39;django.contrib.staticfiles&#39;,
  4432.  &#39;django_redis&#39;,
  4433.  &#39;corsheaders&#39;,
  4434.  &#39;datagator.ext.repodata&#39;,
  4435.  &#39;datagator.ext.docindex&#39;,
  4436.  &#39;datagator.ext.docstore&#39;,
  4437.  &#39;datagator.ext.safezone&#39;,
  4438.  &#39;datagator.ext.taskqueue&#39;,
  4439.  &#39;datagator.api.portal&#39;)</pre></td>
  4440.         </tr>
  4441.      
  4442.         <tr>
  4443.           <td>INTERNAL_IPS</td>
  4444.           <td class="code"><pre>[]</pre></td>
  4445.         </tr>
  4446.      
  4447.         <tr>
  4448.           <td>ITEMS_PER_PAGE</td>
  4449.           <td class="code"><pre>10</pre></td>
  4450.         </tr>
  4451.      
  4452.         <tr>
  4453.           <td>LANGUAGES</td>
  4454.           <td class="code"><pre>[(&#39;af&#39;, &#39;Afrikaans&#39;),
  4455.  (&#39;ar&#39;, &#39;Arabic&#39;),
  4456.  (&#39;ast&#39;, &#39;Asturian&#39;),
  4457.  (&#39;az&#39;, &#39;Azerbaijani&#39;),
  4458.  (&#39;bg&#39;, &#39;Bulgarian&#39;),
  4459.  (&#39;be&#39;, &#39;Belarusian&#39;),
  4460.  (&#39;bn&#39;, &#39;Bengali&#39;),
  4461.  (&#39;br&#39;, &#39;Breton&#39;),
  4462.  (&#39;bs&#39;, &#39;Bosnian&#39;),
  4463.  (&#39;ca&#39;, &#39;Catalan&#39;),
  4464.  (&#39;cs&#39;, &#39;Czech&#39;),
  4465.  (&#39;cy&#39;, &#39;Welsh&#39;),
  4466.  (&#39;da&#39;, &#39;Danish&#39;),
  4467.  (&#39;de&#39;, &#39;German&#39;),
  4468.  (&#39;dsb&#39;, &#39;Lower Sorbian&#39;),
  4469.  (&#39;el&#39;, &#39;Greek&#39;),
  4470.  (&#39;en&#39;, &#39;English&#39;),
  4471.  (&#39;en-au&#39;, &#39;Australian English&#39;),
  4472.  (&#39;en-gb&#39;, &#39;British English&#39;),
  4473.  (&#39;eo&#39;, &#39;Esperanto&#39;),
  4474.  (&#39;es&#39;, &#39;Spanish&#39;),
  4475.  (&#39;es-ar&#39;, &#39;Argentinian Spanish&#39;),
  4476.  (&#39;es-co&#39;, &#39;Colombian Spanish&#39;),
  4477.  (&#39;es-mx&#39;, &#39;Mexican Spanish&#39;),
  4478.  (&#39;es-ni&#39;, &#39;Nicaraguan Spanish&#39;),
  4479.  (&#39;es-ve&#39;, &#39;Venezuelan Spanish&#39;),
  4480.  (&#39;et&#39;, &#39;Estonian&#39;),
  4481.  (&#39;eu&#39;, &#39;Basque&#39;),
  4482.  (&#39;fa&#39;, &#39;Persian&#39;),
  4483.  (&#39;fi&#39;, &#39;Finnish&#39;),
  4484.  (&#39;fr&#39;, &#39;French&#39;),
  4485.  (&#39;fy&#39;, &#39;Frisian&#39;),
  4486.  (&#39;ga&#39;, &#39;Irish&#39;),
  4487.  (&#39;gd&#39;, &#39;Scottish Gaelic&#39;),
  4488.  (&#39;gl&#39;, &#39;Galician&#39;),
  4489.  (&#39;he&#39;, &#39;Hebrew&#39;),
  4490.  (&#39;hi&#39;, &#39;Hindi&#39;),
  4491.  (&#39;hr&#39;, &#39;Croatian&#39;),
  4492.  (&#39;hsb&#39;, &#39;Upper Sorbian&#39;),
  4493.  (&#39;hu&#39;, &#39;Hungarian&#39;),
  4494.  (&#39;ia&#39;, &#39;Interlingua&#39;),
  4495.  (&#39;id&#39;, &#39;Indonesian&#39;),
  4496.  (&#39;io&#39;, &#39;Ido&#39;),
  4497.  (&#39;is&#39;, &#39;Icelandic&#39;),
  4498.  (&#39;it&#39;, &#39;Italian&#39;),
  4499.  (&#39;ja&#39;, &#39;Japanese&#39;),
  4500.  (&#39;ka&#39;, &#39;Georgian&#39;),
  4501.  (&#39;kk&#39;, &#39;Kazakh&#39;),
  4502.  (&#39;km&#39;, &#39;Khmer&#39;),
  4503.  (&#39;kn&#39;, &#39;Kannada&#39;),
  4504.  (&#39;ko&#39;, &#39;Korean&#39;),
  4505.  (&#39;lb&#39;, &#39;Luxembourgish&#39;),
  4506.  (&#39;lt&#39;, &#39;Lithuanian&#39;),
  4507.  (&#39;lv&#39;, &#39;Latvian&#39;),
  4508.  (&#39;mk&#39;, &#39;Macedonian&#39;),
  4509.  (&#39;ml&#39;, &#39;Malayalam&#39;),
  4510.  (&#39;mn&#39;, &#39;Mongolian&#39;),
  4511.  (&#39;mr&#39;, &#39;Marathi&#39;),
  4512.  (&#39;my&#39;, &#39;Burmese&#39;),
  4513.  (&#39;nb&#39;, &#39;Norwegian BokmΓ₯l&#39;),
  4514.  (&#39;ne&#39;, &#39;Nepali&#39;),
  4515.  (&#39;nl&#39;, &#39;Dutch&#39;),
  4516.  (&#39;nn&#39;, &#39;Norwegian Nynorsk&#39;),
  4517.  (&#39;os&#39;, &#39;Ossetic&#39;),
  4518.  (&#39;pa&#39;, &#39;Punjabi&#39;),
  4519.  (&#39;pl&#39;, &#39;Polish&#39;),
  4520.  (&#39;pt&#39;, &#39;Portuguese&#39;),
  4521.  (&#39;pt-br&#39;, &#39;Brazilian Portuguese&#39;),
  4522.  (&#39;ro&#39;, &#39;Romanian&#39;),
  4523.  (&#39;ru&#39;, &#39;Russian&#39;),
  4524.  (&#39;sk&#39;, &#39;Slovak&#39;),
  4525.  (&#39;sl&#39;, &#39;Slovenian&#39;),
  4526.  (&#39;sq&#39;, &#39;Albanian&#39;),
  4527.  (&#39;sr&#39;, &#39;Serbian&#39;),
  4528.  (&#39;sr-latn&#39;, &#39;Serbian Latin&#39;),
  4529.  (&#39;sv&#39;, &#39;Swedish&#39;),
  4530.  (&#39;sw&#39;, &#39;Swahili&#39;),
  4531.  (&#39;ta&#39;, &#39;Tamil&#39;),
  4532.  (&#39;te&#39;, &#39;Telugu&#39;),
  4533.  (&#39;th&#39;, &#39;Thai&#39;),
  4534.  (&#39;tr&#39;, &#39;Turkish&#39;),
  4535.  (&#39;tt&#39;, &#39;Tatar&#39;),
  4536.  (&#39;udm&#39;, &#39;Udmurt&#39;),
  4537.  (&#39;uk&#39;, &#39;Ukrainian&#39;),
  4538.  (&#39;ur&#39;, &#39;Urdu&#39;),
  4539.  (&#39;vi&#39;, &#39;Vietnamese&#39;),
  4540.  (&#39;zh-hans&#39;, &#39;Simplified Chinese&#39;),
  4541.  (&#39;zh-hant&#39;, &#39;Traditional Chinese&#39;)]</pre></td>
  4542.         </tr>
  4543.      
  4544.         <tr>
  4545.           <td>LANGUAGES_BIDI</td>
  4546.           <td class="code"><pre>[&#39;he&#39;, &#39;ar&#39;, &#39;fa&#39;, &#39;ur&#39;]</pre></td>
  4547.         </tr>
  4548.      
  4549.         <tr>
  4550.           <td>LANGUAGE_CODE</td>
  4551.           <td class="code"><pre>&#39;en-us&#39;</pre></td>
  4552.         </tr>
  4553.      
  4554.         <tr>
  4555.           <td>LANGUAGE_COOKIE_AGE</td>
  4556.           <td class="code"><pre>None</pre></td>
  4557.         </tr>
  4558.      
  4559.         <tr>
  4560.           <td>LANGUAGE_COOKIE_DOMAIN</td>
  4561.           <td class="code"><pre>None</pre></td>
  4562.         </tr>
  4563.      
  4564.         <tr>
  4565.           <td>LANGUAGE_COOKIE_NAME</td>
  4566.           <td class="code"><pre>&#39;django_language&#39;</pre></td>
  4567.         </tr>
  4568.      
  4569.         <tr>
  4570.           <td>LANGUAGE_COOKIE_PATH</td>
  4571.           <td class="code"><pre>&#39;/&#39;</pre></td>
  4572.         </tr>
  4573.      
  4574.         <tr>
  4575.           <td>LOCALE_PATHS</td>
  4576.           <td class="code"><pre>[]</pre></td>
  4577.         </tr>
  4578.      
  4579.         <tr>
  4580.           <td>LOGGING</td>
  4581.           <td class="code"><pre>{&#39;disable_existing_loggers&#39;: False,
  4582.  &#39;filters&#39;: {&#39;require_debug_false&#39;: {&#39;()&#39;: &#39;django.utils.log.RequireDebugFalse&#39;}},
  4583.  &#39;formatters&#39;: {&#39;default&#39;: {&#39;format&#39;: &#39;%(asctime)s - %(levelname)s - &#39;
  4584.                                       &#39;%(name)s - %(message)s&#39;}},
  4585.  &#39;handlers&#39;: {&#39;console&#39;: {&#39;class&#39;: &#39;logging.StreamHandler&#39;,
  4586.                           &#39;formatter&#39;: &#39;default&#39;,
  4587.                           &#39;level&#39;: &#39;DEBUG&#39;},
  4588.               &#39;datagator.log&#39;: {&#39;class&#39;: &#39;logging.FileHandler&#39;,
  4589.                                 &#39;filename&#39;: &#39;/opt/datagator/log/datagator.log&#39;,
  4590.                                 &#39;formatter&#39;: &#39;default&#39;,
  4591.                                 &#39;level&#39;: &#39;DEBUG&#39;},
  4592.               &#39;django.log&#39;: {&#39;class&#39;: &#39;logging.FileHandler&#39;,
  4593.                              &#39;filename&#39;: &#39;/opt/datagator/log/django.log&#39;,
  4594.                              &#39;formatter&#39;: &#39;default&#39;,
  4595.                              &#39;level&#39;: &#39;DEBUG&#39;},
  4596.               &#39;mail_admins&#39;: {&#39;class&#39;: &#39;django.utils.log.AdminEmailHandler&#39;,
  4597.                               &#39;filters&#39;: [&#39;require_debug_false&#39;],
  4598.                               &#39;level&#39;: &#39;ERROR&#39;},
  4599.               &#39;test.log&#39;: {&#39;class&#39;: &#39;logging.FileHandler&#39;,
  4600.                            &#39;filename&#39;: &#39;/opt/datagator/log/test.log&#39;,
  4601.                            &#39;formatter&#39;: &#39;default&#39;,
  4602.                            &#39;level&#39;: &#39;DEBUG&#39;}},
  4603.  &#39;loggers&#39;: {&#39;datagator&#39;: {&#39;handlers&#39;: [&#39;datagator.log&#39;],
  4604.                            &#39;level&#39;: &#39;DEBUG&#39;,
  4605.                            &#39;propagate&#39;: False},
  4606.              &#39;django&#39;: {&#39;handlers&#39;: [&#39;django.log&#39;],
  4607.                         &#39;level&#39;: &#39;INFO&#39;,
  4608.                         &#39;propagate&#39;: False},
  4609.              &#39;test&#39;: {&#39;handlers&#39;: [&#39;test.log&#39;],
  4610.                       &#39;level&#39;: &#39;DEBUG&#39;,
  4611.                       &#39;propagate&#39;: False}},
  4612.  &#39;version&#39;: 1}</pre></td>
  4613.         </tr>
  4614.      
  4615.         <tr>
  4616.           <td>LOGGING_CONFIG</td>
  4617.           <td class="code"><pre>&#39;logging.config.dictConfig&#39;</pre></td>
  4618.         </tr>
  4619.      
  4620.         <tr>
  4621.           <td>LOGIN_REDIRECT_URL</td>
  4622.           <td class="code"><pre>&#39;/accounts/profile/&#39;</pre></td>
  4623.         </tr>
  4624.      
  4625.         <tr>
  4626.           <td>LOGIN_URL</td>
  4627.           <td class="code"><pre>&#39;/login&#39;</pre></td>
  4628.         </tr>
  4629.      
  4630.         <tr>
  4631.           <td>LOGOUT_REDIRECT_URL</td>
  4632.           <td class="code"><pre>None</pre></td>
  4633.         </tr>
  4634.      
  4635.         <tr>
  4636.           <td>MANAGERS</td>
  4637.           <td class="code"><pre>((&#39;liuyu&#39;, &#39;liuyu@opencps.net&#39;),)</pre></td>
  4638.         </tr>
  4639.      
  4640.         <tr>
  4641.           <td>MEDIA_ROOT</td>
  4642.           <td class="code"><pre>&#39;/&#39;</pre></td>
  4643.         </tr>
  4644.      
  4645.         <tr>
  4646.           <td>MEDIA_URL</td>
  4647.           <td class="code"><pre>&#39;&#39;</pre></td>
  4648.         </tr>
  4649.      
  4650.         <tr>
  4651.           <td>MESSAGE_STORAGE</td>
  4652.           <td class="code"><pre>&#39;django.contrib.messages.storage.fallback.FallbackStorage&#39;</pre></td>
  4653.         </tr>
  4654.      
  4655.         <tr>
  4656.           <td>MIDDLEWARE</td>
  4657.           <td class="code"><pre>None</pre></td>
  4658.         </tr>
  4659.      
  4660.         <tr>
  4661.           <td>MIDDLEWARE_CLASSES</td>
  4662.           <td class="code"><pre>(&#39;datagator.wsgi.middleware.CrossOriginMiddleware&#39;,
  4663.  &#39;datagator.wsgi.middleware.ConditionalGetMiddleware&#39;,
  4664.  &#39;datagator.wsgi.middleware.SessionMiddleware&#39;,
  4665.  &#39;django.middleware.common.CommonMiddleware&#39;,
  4666.  &#39;django.contrib.auth.middleware.AuthenticationMiddleware&#39;,
  4667.  &#39;django.contrib.messages.middleware.MessageMiddleware&#39;)</pre></td>
  4668.         </tr>
  4669.      
  4670.         <tr>
  4671.           <td>MIGRATION_MODULES</td>
  4672.           <td class="code"><pre>{}</pre></td>
  4673.         </tr>
  4674.      
  4675.         <tr>
  4676.           <td>MONTH_DAY_FORMAT</td>
  4677.           <td class="code"><pre>&#39;F j&#39;</pre></td>
  4678.         </tr>
  4679.      
  4680.         <tr>
  4681.           <td>NUMBER_GROUPING</td>
  4682.           <td class="code"><pre>0</pre></td>
  4683.         </tr>
  4684.      
  4685.         <tr>
  4686.           <td>PASSWORD_HASHERS</td>
  4687.           <td class="code"><pre>&#39;********************&#39;</pre></td>
  4688.         </tr>
  4689.      
  4690.         <tr>
  4691.           <td>PASSWORD_RESET_TIMEOUT_DAYS</td>
  4692.           <td class="code"><pre>&#39;********************&#39;</pre></td>
  4693.         </tr>
  4694.      
  4695.         <tr>
  4696.           <td>PREPEND_WWW</td>
  4697.           <td class="code"><pre>False</pre></td>
  4698.         </tr>
  4699.      
  4700.         <tr>
  4701.           <td>RATELIMIT</td>
  4702.           <td class="code"><pre>{&#39;guest&#39;: {&#39;1hr&#39;: (200, 3600)}, &#39;user&#39;: {&#39;1hr&#39;: (2000, 3600)}}</pre></td>
  4703.         </tr>
  4704.      
  4705.         <tr>
  4706.           <td>ROOT_URLCONF</td>
  4707.           <td class="code"><pre>&#39;datagator.api.portal.urls&#39;</pre></td>
  4708.         </tr>
  4709.      
  4710.         <tr>
  4711.           <td>SECRET_KEY</td>
  4712.           <td class="code"><pre>&#39;********************&#39;</pre></td>
  4713.         </tr>
  4714.      
  4715.         <tr>
  4716.           <td>SECURE_BROWSER_XSS_FILTER</td>
  4717.           <td class="code"><pre>False</pre></td>
  4718.         </tr>
  4719.      
  4720.         <tr>
  4721.           <td>SECURE_CONTENT_TYPE_NOSNIFF</td>
  4722.           <td class="code"><pre>False</pre></td>
  4723.         </tr>
  4724.      
  4725.         <tr>
  4726.           <td>SECURE_HSTS_INCLUDE_SUBDOMAINS</td>
  4727.           <td class="code"><pre>False</pre></td>
  4728.         </tr>
  4729.      
  4730.         <tr>
  4731.           <td>SECURE_HSTS_SECONDS</td>
  4732.           <td class="code"><pre>0</pre></td>
  4733.         </tr>
  4734.      
  4735.         <tr>
  4736.           <td>SECURE_PROXY_SSL_HEADER</td>
  4737.           <td class="code"><pre>None</pre></td>
  4738.         </tr>
  4739.      
  4740.         <tr>
  4741.           <td>SECURE_REDIRECT_EXEMPT</td>
  4742.           <td class="code"><pre>[]</pre></td>
  4743.         </tr>
  4744.      
  4745.         <tr>
  4746.           <td>SECURE_SSL_HOST</td>
  4747.           <td class="code"><pre>None</pre></td>
  4748.         </tr>
  4749.      
  4750.         <tr>
  4751.           <td>SECURE_SSL_REDIRECT</td>
  4752.           <td class="code"><pre>False</pre></td>
  4753.         </tr>
  4754.      
  4755.         <tr>
  4756.           <td>SERVER_EMAIL</td>
  4757.           <td class="code"><pre>&#39;root@localhost&#39;</pre></td>
  4758.         </tr>
  4759.      
  4760.         <tr>
  4761.           <td>SESSION_CACHE_ALIAS</td>
  4762.           <td class="code"><pre>&#39;default&#39;</pre></td>
  4763.         </tr>
  4764.      
  4765.         <tr>
  4766.           <td>SESSION_COOKIE_AGE</td>
  4767.           <td class="code"><pre>1209600</pre></td>
  4768.         </tr>
  4769.      
  4770.         <tr>
  4771.           <td>SESSION_COOKIE_DOMAIN</td>
  4772.           <td class="code"><pre>None</pre></td>
  4773.         </tr>
  4774.      
  4775.         <tr>
  4776.           <td>SESSION_COOKIE_HTTPONLY</td>
  4777.           <td class="code"><pre>True</pre></td>
  4778.         </tr>
  4779.      
  4780.         <tr>
  4781.           <td>SESSION_COOKIE_NAME</td>
  4782.           <td class="code"><pre>&#39;sessionid&#39;</pre></td>
  4783.         </tr>
  4784.      
  4785.         <tr>
  4786.           <td>SESSION_COOKIE_PATH</td>
  4787.           <td class="code"><pre>&#39;/&#39;</pre></td>
  4788.         </tr>
  4789.      
  4790.         <tr>
  4791.           <td>SESSION_COOKIE_SECURE</td>
  4792.           <td class="code"><pre>False</pre></td>
  4793.         </tr>
  4794.      
  4795.         <tr>
  4796.           <td>SESSION_ENGINE</td>
  4797.           <td class="code"><pre>&#39;django.contrib.sessions.backends.cache&#39;</pre></td>
  4798.         </tr>
  4799.      
  4800.         <tr>
  4801.           <td>SESSION_EXPIRE_AT_BROWSER_CLOSE</td>
  4802.           <td class="code"><pre>False</pre></td>
  4803.         </tr>
  4804.      
  4805.         <tr>
  4806.           <td>SESSION_FILE_PATH</td>
  4807.           <td class="code"><pre>None</pre></td>
  4808.         </tr>
  4809.      
  4810.         <tr>
  4811.           <td>SESSION_SAVE_EVERY_REQUEST</td>
  4812.           <td class="code"><pre>False</pre></td>
  4813.         </tr>
  4814.      
  4815.         <tr>
  4816.           <td>SESSION_SERIALIZER</td>
  4817.           <td class="code"><pre>&#39;django.contrib.sessions.serializers.JSONSerializer&#39;</pre></td>
  4818.         </tr>
  4819.      
  4820.         <tr>
  4821.           <td>SETTINGS_MODULE</td>
  4822.           <td class="code"><pre>&#39;wsgi.settings.api.dev&#39;</pre></td>
  4823.         </tr>
  4824.      
  4825.         <tr>
  4826.           <td>SHORT_DATETIME_FORMAT</td>
  4827.           <td class="code"><pre>&#39;m/d/Y P&#39;</pre></td>
  4828.         </tr>
  4829.      
  4830.         <tr>
  4831.           <td>SHORT_DATE_FORMAT</td>
  4832.           <td class="code"><pre>&#39;m/d/Y&#39;</pre></td>
  4833.         </tr>
  4834.      
  4835.         <tr>
  4836.           <td>SIGNING_BACKEND</td>
  4837.           <td class="code"><pre>&#39;django.core.signing.TimestampSigner&#39;</pre></td>
  4838.         </tr>
  4839.      
  4840.         <tr>
  4841.           <td>SILENCED_SYSTEM_CHECKS</td>
  4842.           <td class="code"><pre>[]</pre></td>
  4843.         </tr>
  4844.      
  4845.         <tr>
  4846.           <td>SITE_ID</td>
  4847.           <td class="code"><pre>1</pre></td>
  4848.         </tr>
  4849.      
  4850.         <tr>
  4851.           <td>STATICFILES_DIRS</td>
  4852.           <td class="code"><pre>()</pre></td>
  4853.         </tr>
  4854.      
  4855.         <tr>
  4856.           <td>STATICFILES_FINDERS</td>
  4857.           <td class="code"><pre>(&#39;django.contrib.staticfiles.finders.FileSystemFinder&#39;,
  4858.  &#39;django.contrib.staticfiles.finders.AppDirectoriesFinder&#39;)</pre></td>
  4859.         </tr>
  4860.      
  4861.         <tr>
  4862.           <td>STATICFILES_STORAGE</td>
  4863.           <td class="code"><pre>&#39;django.contrib.staticfiles.storage.StaticFilesStorage&#39;</pre></td>
  4864.         </tr>
  4865.      
  4866.         <tr>
  4867.           <td>STATIC_ROOT</td>
  4868.           <td class="code"><pre>None</pre></td>
  4869.         </tr>
  4870.      
  4871.         <tr>
  4872.           <td>STATIC_URL</td>
  4873.           <td class="code"><pre>&#39;/static/&#39;</pre></td>
  4874.         </tr>
  4875.      
  4876.         <tr>
  4877.           <td>TASKQUEUE</td>
  4878.           <td class="code"><pre>{&#39;default&#39;: {&#39;BACKEND&#39;: &#39;datagator.ext.taskqueue.backends.zmq.ZMQManager&#39;,
  4879.              &#39;DEFAULT_QUEUE&#39;: &#39;datagator-async-tasks&#39;,
  4880.              &#39;LOCATION&#39;: &#39;https://sqs.us-west-2.amazonaws.com/166606634217/{queue}&#39;,
  4881.              &#39;pull&#39;: {&#39;HOST&#39;: &#39;0.0.0.0&#39;, &#39;PORT&#39;: 5555},
  4882.              &#39;push&#39;: {&#39;HOST&#39;: &#39;127.0.0.1&#39;, &#39;PORT&#39;: 5555}}}</pre></td>
  4883.         </tr>
  4884.      
  4885.         <tr>
  4886.           <td>TEMPLATES</td>
  4887.           <td class="code"><pre>[{&#39;APP_DIRS&#39;: True,
  4888.   &#39;BACKEND&#39;: &#39;django.template.backends.django.DjangoTemplates&#39;,
  4889.   &#39;DIRS&#39;: [],
  4890.   &#39;OPTIONS&#39;: {&#39;context_processors&#39;: [&#39;django.template.context_processors.debug&#39;,
  4891.                                      &#39;django.template.context_processors.request&#39;,
  4892.                                      &#39;django.contrib.auth.context_processors.auth&#39;,
  4893.                                      &#39;django.contrib.messages.context_processors.messages&#39;]}}]</pre></td>
  4894.         </tr>
  4895.      
  4896.         <tr>
  4897.           <td>TEST_NON_SERIALIZED_APPS</td>
  4898.           <td class="code"><pre>[]</pre></td>
  4899.         </tr>
  4900.      
  4901.         <tr>
  4902.           <td>TEST_RUNNER</td>
  4903.           <td class="code"><pre>&#39;django.test.runner.DiscoverRunner&#39;</pre></td>
  4904.         </tr>
  4905.      
  4906.         <tr>
  4907.           <td>THOUSAND_SEPARATOR</td>
  4908.           <td class="code"><pre>&#39;,&#39;</pre></td>
  4909.         </tr>
  4910.      
  4911.         <tr>
  4912.           <td>TIME_FORMAT</td>
  4913.           <td class="code"><pre>&#39;P&#39;</pre></td>
  4914.         </tr>
  4915.      
  4916.         <tr>
  4917.           <td>TIME_INPUT_FORMATS</td>
  4918.           <td class="code"><pre>[&#39;%H:%M:%S&#39;, &#39;%H:%M:%S.%f&#39;, &#39;%H:%M&#39;]</pre></td>
  4919.         </tr>
  4920.      
  4921.         <tr>
  4922.           <td>TIME_ZONE</td>
  4923.           <td class="code"><pre>&#39;America/Denver&#39;</pre></td>
  4924.         </tr>
  4925.      
  4926.         <tr>
  4927.           <td>USERNAME</td>
  4928.           <td class="code"><pre>{&#39;MAX_LENGTH&#39;: 30,
  4929.  &#39;MIN_LENGTH&#39;: 5,
  4930.  &#39;RESERVED&#39;: (&#39;admin&#39;,
  4931.               &#39;administrator&#39;,
  4932.               &#39;client&#39;,
  4933.               &#39;clients&#39;,
  4934.               &#39;collection&#39;,
  4935.               &#39;contact&#39;,
  4936.               &#39;contacts&#39;,
  4937.               &#39;component&#39;,
  4938.               &#39;components&#39;,
  4939.               &#39;comment&#39;,
  4940.               &#39;comments&#39;,
  4941.               &#39;credit&#39;,
  4942.               &#39;credits&#39;,
  4943.               &#39;donate&#39;,
  4944.               &#39;donation&#39;,
  4945.               &#39;download&#39;,
  4946.               &#39;downloads&#39;,
  4947.               &#39;extra&#39;,
  4948.               &#39;friend&#39;,
  4949.               &#39;friends&#39;,
  4950.               &#39;follow&#39;,
  4951.               &#39;follower&#39;,
  4952.               &#39;followers&#39;,
  4953.               &#39;index&#39;,
  4954.               &#39;kernel&#39;,
  4955.               &#39;manual&#39;,
  4956.               &#39;matrix&#39;,
  4957.               &#39;notes&#39;,
  4958.               &#39;opaque&#39;,
  4959.               &#39;operator&#39;,
  4960.               &#39;object&#39;,
  4961.               &#39;objects&#39;,
  4962.               &#39;payment&#39;,
  4963.               &#39;phone&#39;,
  4964.               &#39;profile&#39;,
  4965.               &#39;profiles&#39;,
  4966.               &#39;publication&#39;,
  4967.               &#39;publications&#39;,
  4968.               &#39;python&#39;,
  4969.               &#39;queue&#39;,
  4970.               &#39;recipe&#39;,
  4971.               &#39;sandbox&#39;,
  4972.               &#39;safezone&#39;,
  4973.               &#39;sites&#39;,
  4974.               &#39;stars&#39;,
  4975.               &#39;start&#39;,
  4976.               &#39;supervisor&#39;,
  4977.               &#39;supervisors&#39;,
  4978.               &#39;system&#39;,
  4979.               &#39;table&#39;,
  4980.               &#39;tables&#39;,
  4981.               &#39;tasks&#39;,
  4982.               &#39;tools&#39;,
  4983.               &#39;users&#39;,
  4984.               &#39;version&#39;,
  4985.               &#39;workflow&#39;,
  4986.               &#39;world&#39;,
  4987.               &#39;wizard&#39;)}</pre></td>
  4988.         </tr>
  4989.      
  4990.         <tr>
  4991.           <td>USE_ETAGS</td>
  4992.           <td class="code"><pre>False</pre></td>
  4993.         </tr>
  4994.      
  4995.         <tr>
  4996.           <td>USE_I18N</td>
  4997.           <td class="code"><pre>False</pre></td>
  4998.         </tr>
  4999.      
  5000.         <tr>
  5001.           <td>USE_L10N</td>
  5002.           <td class="code"><pre>False</pre></td>
  5003.         </tr>
  5004.      
  5005.         <tr>
  5006.           <td>USE_THOUSAND_SEPARATOR</td>
  5007.           <td class="code"><pre>False</pre></td>
  5008.         </tr>
  5009.      
  5010.         <tr>
  5011.           <td>USE_TZ</td>
  5012.           <td class="code"><pre>True</pre></td>
  5013.         </tr>
  5014.      
  5015.         <tr>
  5016.           <td>USE_X_FORWARDED_HOST</td>
  5017.           <td class="code"><pre>False</pre></td>
  5018.         </tr>
  5019.      
  5020.         <tr>
  5021.           <td>USE_X_FORWARDED_PORT</td>
  5022.           <td class="code"><pre>False</pre></td>
  5023.         </tr>
  5024.      
  5025.         <tr>
  5026.           <td>WSGI_APPLICATION</td>
  5027.           <td class="code"><pre>&#39;wsgi.wsgi.application&#39;</pre></td>
  5028.         </tr>
  5029.      
  5030.         <tr>
  5031.           <td>X_FRAME_OPTIONS</td>
  5032.           <td class="code"><pre>&#39;SAMEORIGIN&#39;</pre></td>
  5033.         </tr>
  5034.      
  5035.         <tr>
  5036.           <td>YEAR_MONTH_FORMAT</td>
  5037.           <td class="code"><pre>&#39;F Y&#39;</pre></td>
  5038.         </tr>
  5039.      
  5040.     </tbody>
  5041.   </table>
  5042.  
  5043. </div>
  5044.  
  5045.   <div id="explanation">
  5046.     <p>
  5047.       You're seeing this error because you have <code>DEBUG = True</code> in your
  5048.       Django settings file. Change that to <code>False</code>, and Django will
  5049.       display a standard page generated by the handler for this status code.
  5050.     </p>
  5051.   </div>
  5052.  
  5053. </body>
  5054. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement