<commit_before><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns:tal="http://xml.zope.org/namespaces/tal"
      xmlns:metal="http://xml.zope.org/namespaces/metal"
      metal:use-macro="standard_template/macros/page">

<metal:fill fill-slot="head">
 <meta tal:condition="data/release/keywords | nothing"
       name="keywords"
       tal:attributes="content data/release/keywords" />
 <meta tal:condition="data/release/summary | nothing"
       name="description"
       tal:attributes="content data/release/summary" />
 <link rel="meta" title="DOAP" type="application/rdf+xml"
       tal:attributes="href string:${app/url_path}?:action=doap&amp;name=${data/name}&amp;version=${data/version}" />
 <style type="text/css">
  table.form th {white-space: pre;}
 </style>
</metal:fill>

<metal:fill fill-slot="body">

<p style="font-style: italic" tal:content="data/release/summary | nothing" />

<p tal:condition="not:data/usinglatest">
<strong>Latest Version: </strong><a tal:attributes="href data/latestversionurl" title="Latest Version URL">
<span tal:content="data/latestversion" />
</a>
</p>


<p tal:replace="structure app/release_nav" />

<tal:element replace="structure data/release/description_html" />

<table tal:define="files python:app.store.list_files(data['name'], data['version'])"
       tal:condition="files" class="list" style="margin-bottom: 10px;">
<tr>
  <th>File</th>
  <th>Type</th>
  <th>Py Version</th>
  <th>Uploaded on</th>
  <th style="text-align: right;">Size</th>
  <th style="text-align: right;"># downloads</th>
</tr>

<tr tal:repeat="file python:app.store.list_files(data['name'], data['version'])"
    tal:attributes="class repeat/file/parity">
<tal:block tal:define="
      name       file/filename;
      url        python:app.store.gen_file_url(file['python_version'], data['name'], file['filename']);
      comments   file/comment_text;
      pkg_type   python:app.dist_file_types_d[file['packagetype']];
      py_version file/python_version;
      uploaded   file/upload_time;
      size       python:app.pretty_size(file['size']);
      downloads  file/downloads;
      md5_url    string:${app/url_path}?:action=show_md5&amp;digest=${file/md5_digest};
      pgp_url    python:file['has_sig'] and app.store.gen_file_url(
                   file['python_version'], data['name'], file['filename'])+'.asc';
      ">
    <td>
    <span style="white-space: nowrap;">
      <a tal:attributes="href string:$url#md5=${file/md5_digest}"
         tal:content="name" />
      (<a tal:attributes="href md5_url" title="MD5 Digest">md5</a><tal:block tal:condition="pgp_url">,
       <a tal:attributes="href pgp_url" title="PGP Signature">pgp</a></tal:block>)
    </span>
    <tal:block tal:condition="comments">
      <br />
      <span tal:replace="comments" />
    </tal:block>
        </td>
  <td style="white-space: nowrap;">
    <span tal:replace="pkg_type" />
  </td>
  <td>
    <span tal:replace="py_version" tal:condition="python:py_version != 'source'" />
  </td>
  <td tal:content="uploaded" />
  <td tal:content="size" style="text-align: right;" />
  <td tal:content="downloads" style="text-align: right;" />
</tal:block>
</tr>

<tr><td id="last" colspan="5"></td></tr>
  </table>

<ul class="nodot">
 <li tal:condition="data/release/author | nothing">
  <strong>Author:</strong>
  <span tal:content="data/release/author" />
 </li>

 <li tal:condition="data/release/maintainer | nothing">
  <strong>Maintainer:</strong>
  <span tal:content="data/release/maintainer" />
 </li>

<!-- The <th> elements below are a terrible terrible hack for setuptools -->
 <li tal:condition="data/release/home_page | nothing">
  <strong>Home Page:</strong>
  <!-- <th>Home Page -->
  <a tal:attributes="href data/release/home_page"
         tal:content="data/release/home_page" />
 </li>

 <li tal:condition="data/release/download_url | nothing">
  <strong>Download URL:</strong>
  <!-- <th>Download URL -->
  <a tal:attributes="href data/release/download_url"
         tal:content="data/release/download_url" />
 </li>


 <li tal:condition="data/release/keywords | nothing">
  <strong>Keywords:</strong>
  <span tal:content="data/release/keywords" />
 </li>

 <li tal:condition="data/release/license | nothing">
  <strong>License:</strong>
  <tal:block define="hasnl python:'\n' in data['release']['license']">
  <pre tal:condition="hasnl" tal:content="structure data/release/license" />
  <span tal:condition="not:hasnl" tal:content="data/release/license" />
  </tal:block>
 </li>

 <li tal:condition="data/release/platform | nothing">
  <strong>Platform:</strong>
  <span tal:content="structure
  python:data['release']['platform'].replace('\n', ', ')" />
 </li>

<!-- TODO: add link to products in follow dependencies... -->
 <li tal:condition="data/requires | nothing">
  <strong>Requires</strong>
  <tal:element replace="structure python:', '.join(data['requires'])" />
 </li>
 <li tal:condition="data/provides | nothing">
  <strong>Provides</strong>
  <tal:element replace="structure python:', '.join(data['provides'])" />
 </li>
 <li tal:condition="data/obsoletes | nothing">
  <strong>Obsoletes</strong>
  <tal:element replace="structure python:', '.join(data['obsoletes'])" />
 </li>

 <li tal:condition="data/categories | nothing">
  <strong>Categories</strong>
  <ul class="nodot">
   <li tal:repeat="category data/categories">
    <a tal:attributes="href category/url"
       tal:content="structure category/pathstr"/>
   </li>
  </ul>
 </li>

 <li tal:condition="data/roles/Owner | nothing">
  <strong>Package Index Owner:</strong>
  <span tal:content="python:', '.join(data['roles']['Owner'])" />
 </li>

 <li tal:condition="data/roles/Maintainer | nothing">
  <strong>Package Index Maintainer:</strong>
  <span tal:content="python:', '.join(data['roles']['Maintainer'])" />
 </li>

 <li>
  <strong><a href="http://usefulinc.com/doap">DOAP</a> record:</strong>
  <a tal:content="string:${data/name}-${data/version}.xml"
  tal:attributes="href string:${app/url_path}?:action=doap&amp;name=${data/name}&amp;version=${data/version}" />
 </li>

</ul>


<div tal:define="has_cheesecake data/release/cheesecake_installability | nothing"
     tal:condition="python:has_cheesecake and (app.store.has_role('Admin') or app.store.has_role('Maintainer') or app.store.has_role('Owner'))">
  <strong>Cheesecake score</strong>
  <ul class="nodot">
    <li>
      <span style="text-decoration: underline;" tal:content="string:Installability: ${data/release/cheesecake_installability/absolute} (${data/release/cheesecake_installability/relative}%)" />
      <table style="margin-left: 2em;">
	<tr tal:repeat="score data/release/cheesecake_installability/subindices">
	  <td style="padding: 3px;" tal:content="score/name" />
	  <td style="padding: 3px;" tal:content="score/value" />
	  <td style="padding: 3px;"><em tal:content="score/details" /></td>
	</tr>
      </table>
    </li>

    <li>
      <span style="text-decoration: underline;" tal:content="string:Documentation: ${data/release/cheesecake_documentation/absolute} (${data/release/cheesecake_documentation/relative}%)" />
      <table style="margin-left: 2em;">
	<tr tal:repeat="score data/release/cheesecake_documentation/subindices">
	  <td style="padding: 3px;" tal:content="score/name" />
	  <td style="padding: 3px;" tal:content="score/value" />
	  <td style="padding: 3px;"><em tal:content="score/details" /></td>
	</tr>
      </table>
    </li>

    <li>
      <span style="text-decoration: underline;" tal:content="string:Code kwalitee: ${data/release/cheesecake_code_kwalitee/absolute} (${data/release/cheesecake_code_kwalitee/relative}%)" />
      <table style="margin-left: 2em;">
	<tr tal:repeat="score data/release/cheesecake_code_kwalitee/subindices">
	  <td style="padding: 3px;" tal:content="score/name" />
	  <td style="padding: 3px;" tal:content="score/value" />
	  <td style="padding: 3px;"><em tal:content="score/details" /></td>
	</tr>
      </table>
    </li>
  </ul>
</div>

<table tal:condition="python:app.loggedin and (app.store.has_role('Admin') or
  app.store.has_role('Maintainer', data['name']) or app.store.has_role('Owner', data['name']))" class="history">
 <tr><th colspan="4" class="header">Journal</th></tr>
 <tr><th>Action</th><th>Date</th><th>User</th><th>Address</th></tr>
 <tr tal:repeat="
         entry python:app.store.get_journal(data['name'], data['version'])"
     tal:attributes="class repeat/entry/parity">
  <td nowrap="" tal:content="entry/action" />
  <td nowrap="" tal:content="python:str(entry['submitted_date'])[:-3]" />
  <td nowrap="" tal:content="entry/submitted_by" />
  <td nowrap="" tal:content="entry/submitted_from" />
 </tr>
</table>

</metal:fill>
</html><commit_msg>Remove cheesecake rendering.<commit_after><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns:tal="http://xml.zope.org/namespaces/tal"
      xmlns:metal="http://xml.zope.org/namespaces/metal"
      metal:use-macro="standard_template/macros/page">

<metal:fill fill-slot="head">
 <meta tal:condition="data/release/keywords | nothing"
       name="keywords"
       tal:attributes="content data/release/keywords" />
 <meta tal:condition="data/release/summary | nothing"
       name="description"
       tal:attributes="content data/release/summary" />
 <link rel="meta" title="DOAP" type="application/rdf+xml"
       tal:attributes="href string:${app/url_path}?:action=doap&amp;name=${data/name}&amp;version=${data/version}" />
 <style type="text/css">
  table.form th {white-space: pre;}
 </style>
</metal:fill>

<metal:fill fill-slot="body">

<p style="font-style: italic" tal:content="data/release/summary | nothing" />

<p tal:condition="not:data/usinglatest">
<strong>Latest Version: </strong><a tal:attributes="href data/latestversionurl" title="Latest Version URL">
<span tal:content="data/latestversion" />
</a>
</p>


<p tal:replace="structure app/release_nav" />

<tal:element replace="structure data/release/description_html" />

<table tal:define="files python:app.store.list_files(data['name'], data['version'])"
       tal:condition="files" class="list" style="margin-bottom: 10px;">
<tr>
  <th>File</th>
  <th>Type</th>
  <th>Py Version</th>
  <th>Uploaded on</th>
  <th style="text-align: right;">Size</th>
  <th style="text-align: right;"># downloads</th>
</tr>

<tr tal:repeat="file python:app.store.list_files(data['name'], data['version'])"
    tal:attributes="class repeat/file/parity">
<tal:block tal:define="
      name       file/filename;
      url        python:app.store.gen_file_url(file['python_version'], data['name'], file['filename']);
      comments   file/comment_text;
      pkg_type   python:app.dist_file_types_d[file['packagetype']];
      py_version file/python_version;
      uploaded   file/upload_time;
      size       python:app.pretty_size(file['size']);
      downloads  file/downloads;
      md5_url    string:${app/url_path}?:action=show_md5&amp;digest=${file/md5_digest};
      pgp_url    python:file['has_sig'] and app.store.gen_file_url(
                   file['python_version'], data['name'], file['filename'])+'.asc';
      ">
    <td>
    <span style="white-space: nowrap;">
      <a tal:attributes="href string:$url#md5=${file/md5_digest}"
         tal:content="name" />
      (<a tal:attributes="href md5_url" title="MD5 Digest">md5</a><tal:block tal:condition="pgp_url">,
       <a tal:attributes="href pgp_url" title="PGP Signature">pgp</a></tal:block>)
    </span>
    <tal:block tal:condition="comments">
      <br />
      <span tal:replace="comments" />
    </tal:block>
        </td>
  <td style="white-space: nowrap;">
    <span tal:replace="pkg_type" />
  </td>
  <td>
    <span tal:replace="py_version" tal:condition="python:py_version != 'source'" />
  </td>
  <td tal:content="uploaded" />
  <td tal:content="size" style="text-align: right;" />
  <td tal:content="downloads" style="text-align: right;" />
</tal:block>
</tr>

<tr><td id="last" colspan="5"></td></tr>
  </table>

<ul class="nodot">
 <li tal:condition="data/release/author | nothing">
  <strong>Author:</strong>
  <span tal:content="data/release/author" />
 </li>

 <li tal:condition="data/release/maintainer | nothing">
  <strong>Maintainer:</strong>
  <span tal:content="data/release/maintainer" />
 </li>

<!-- The <th> elements below are a terrible terrible hack for setuptools -->
 <li tal:condition="data/release/home_page | nothing">
  <strong>Home Page:</strong>
  <!-- <th>Home Page -->
  <a tal:attributes="href data/release/home_page"
         tal:content="data/release/home_page" />
 </li>

 <li tal:condition="data/release/download_url | nothing">
  <strong>Download URL:</strong>
  <!-- <th>Download URL -->
  <a tal:attributes="href data/release/download_url"
         tal:content="data/release/download_url" />
 </li>


 <li tal:condition="data/release/keywords | nothing">
  <strong>Keywords:</strong>
  <span tal:content="data/release/keywords" />
 </li>

 <li tal:condition="data/release/license | nothing">
  <strong>License:</strong>
  <tal:block define="hasnl python:'\n' in data['release']['license']">
  <pre tal:condition="hasnl" tal:content="structure data/release/license" />
  <span tal:condition="not:hasnl" tal:content="data/release/license" />
  </tal:block>
 </li>

 <li tal:condition="data/release/platform | nothing">
  <strong>Platform:</strong>
  <span tal:content="structure
  python:data['release']['platform'].replace('\n', ', ')" />
 </li>

<!-- TODO: add link to products in follow dependencies... -->
 <li tal:condition="data/requires | nothing">
  <strong>Requires</strong>
  <tal:element replace="structure python:', '.join(data['requires'])" />
 </li>
 <li tal:condition="data/provides | nothing">
  <strong>Provides</strong>
  <tal:element replace="structure python:', '.join(data['provides'])" />
 </li>
 <li tal:condition="data/obsoletes | nothing">
  <strong>Obsoletes</strong>
  <tal:element replace="structure python:', '.join(data['obsoletes'])" />
 </li>

 <li tal:condition="data/categories | nothing">
  <strong>Categories</strong>
  <ul class="nodot">
   <li tal:repeat="category data/categories">
    <a tal:attributes="href category/url"
       tal:content="structure category/pathstr"/>
   </li>
  </ul>
 </li>

 <li tal:condition="data/roles/Owner | nothing">
  <strong>Package Index Owner:</strong>
  <span tal:content="python:', '.join(data['roles']['Owner'])" />
 </li>

 <li tal:condition="data/roles/Maintainer | nothing">
  <strong>Package Index Maintainer:</strong>
  <span tal:content="python:', '.join(data['roles']['Maintainer'])" />
 </li>

 <li>
  <strong><a href="http://usefulinc.com/doap">DOAP</a> record:</strong>
  <a tal:content="string:${data/name}-${data/version}.xml"
  tal:attributes="href string:${app/url_path}?:action=doap&amp;name=${data/name}&amp;version=${data/version}" />
 </li>

</ul>


<table tal:condition="python:app.loggedin and (app.store.has_role('Admin') or
  app.store.has_role('Maintainer', data['name']) or app.store.has_role('Owner', data['name']))" class="history">
 <tr><th colspan="4" class="header">Journal</th></tr>
 <tr><th>Action</th><th>Date</th><th>User</th><th>Address</th></tr>
 <tr tal:repeat="
         entry python:app.store.get_journal(data['name'], data['version'])"
     tal:attributes="class repeat/entry/parity">
  <td nowrap="" tal:content="entry/action" />
  <td nowrap="" tal:content="python:str(entry['submitted_date'])[:-3]" />
  <td nowrap="" tal:content="entry/submitted_by" />
  <td nowrap="" tal:content="entry/submitted_from" />
 </tr>
</table>

</metal:fill>
</html>
{'fraction_non_alphanumeric': 0.2035370182555781, 'fraction_numerical': 0.0035496957403651115, 'mean_word_length': 4.751731680641633, 'pattern_counts': {'":': 0, '<': 407, '<?xml version=': 2, '>': 407, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 14}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 18, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '313008', 'n_tokens_mistral': 5481, 'n_tokens_neox': 5309, 'n_words': 880}