{
"info": {
"author": "Adrien Barbaresi",
"author_email": "barbaresi@bbaw.de",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"Intended Audience :: Information Technology",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Topic :: Scientific/Engineering",
"Topic :: Scientific/Engineering :: Information Analysis",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Text Processing :: Linguistic",
"Topic :: Text Processing :: Markup :: HTML"
],
"description": "htmldate: find the publication date of web pages\n================================================\n\n.. image:: https://img.shields.io/pypi/v/htmldate.svg\n :target: https://pypi.python.org/pypi/htmldate\n :alt: Python package\n\n.. image:: https://img.shields.io/pypi/l/htmldate.svg\n :target: https://pypi.python.org/pypi/htmldate\n :alt: License\n\n.. image:: https://img.shields.io/pypi/pyversions/htmldate.svg\n :target: https://pypi.python.org/pypi/htmldate\n :alt: Python versions\n\n.. image:: https://readthedocs.org/projects/htmldate/badge/?version=latest\n :target: http://htmldate.readthedocs.org/en/latest/?badge=latest\n :alt: Documentation Status\n\n.. image:: https://img.shields.io/travis/adbar/htmldate.svg\n :target: https://travis-ci.org/adbar/htmldate\n :alt: Travis build status\n\n.. image:: https://img.shields.io/appveyor/ci/adbar/htmldate\n :target: https://ci.appveyor.com/project/adbar/htmldate\n :alt: Appveyor/Windows build status\n\n.. image:: https://img.shields.io/codecov/c/github/adbar/htmldate.svg\n :target: https://codecov.io/gh/adbar/htmldate\n :alt: Code Coverage\n\n\n:Code: https://github.com/adbar/htmldate\n:Documentation: https://htmldate.readthedocs.io\n:Issue tracker: https://github.com/adbar/htmldate/issues\n\n\nIn a nutshell, with Python:\n\n.. code-block:: python\n\n >>> from htmldate import find_date\n >>> find_date('http://blog.python.org/2016/12/python-360-is-now-available.html')\n '2016-12-23'\n >>> find_date('https://netzpolitik.org/2016/die-cider-connection-abmahnungen-gegen-nutzer-von-creative-commons-bildern/', original_date=True)\n '2016-06-23'\n\nOn the command-line:\n\n.. code-block:: bash\n\n $ htmldate -u http://blog.python.org/2016/12/python-360-is-now-available.html\n '2016-12-23'\n\n\n.. contents:: **Contents**\n :backlinks: none\n\n\nFeatures\n--------\n\n*htmldate* finds original and updated publication dates of web pages using a combination of tree traversal, common structural patterns, text-based heuristics and robust date extraction. All the steps needed from web page download to HTML parsing, including scraping and textual analysis are handled. URLs, HTML files or HTML trees are given as input, the library outputs a date string in the desired format.\n\n*htmldate* provides following ways to date a HTML document:\n\n1. **Markup in header**: common patterns are used to identify relevant elements (e.g. ``link`` and ``meta`` elements) including `Open Graph protocol `_ attributes and a large number of CMS idiosyncracies\n2. **HTML code**: The whole document is then searched for structural markers: ``abbr``/``time`` elements and a series of attributes (e.g. ``postmetadata``)\n3. **Bare HTML content**: A series of heuristics is run on text and markup:\n\n 1. in ``fast`` mode the HTML page is cleaned and precise patterns are targeted\n 2. in ``extensive`` mode date expressions are collected and the best one is chosen based on a disambiguation algorithm\n\nThe module then returns a date if a valid cue could be found in the document, per default the updated date w.r.t. the original publishing statement. The output string defaults to `ISO 8601 YMD format `_.\n\n- Should be compatible with all common versions of Python 3 (see tests and coverage)\n- Safety belt included, the output is thouroughly verified with respect to its plausibility and adequateness\n- Designed to be computationally efficient and used in production on millions of documents\n- Handles batch processing of a list of URLs\n- Switch between original and updated date\n\nThe library currently focuses on texts written in English or German.\n\n\nInstallation\n------------\n\nThe package is tested on Linux, macOS and Windows systems, it is compatible with Python 3.5 upwards.\n\nInstall from package repository: ``pip install htmldate``\n\nFor the latest version (check build status above): ``pip install git+https://github.com/adbar/htmldate.git``\n\nFor faster processing of downloads you might consider installing the ``cchardet`` package as well (currently not working on some macOS versions).\n\n\nWith Python\n-----------\n\n.. code-block:: python\n\n >>> from htmldate import find_date\n >>> find_date('http://blog.python.org/2016/12/python-360-is-now-available.html')\n '2016-12-23'\n\nThe module can resort to a guess based on a complete screning of the document (``extensive_search`` parameter) which can be deactivated:\n\n.. code-block:: python\n\n >>> find_date('https://creativecommons.org/about/')\n '2017-08-11' # has been updated since\n >>> find_date('https://creativecommons.org/about/', extensive_search=False)\n >>>\n\n\nInput format\n~~~~~~~~~~~~\n\nThe module expects strings as shown above, it is also possible to use already parsed HTML (i.e. a LXML tree object):\n\n.. code-block:: python\n\n # simple HTML document as string\n >>> htmldoc = 'July 12th, 2016'\n >>> find_date(mytree)\n '2016-07-12'\n # parsed LXML tree\n >>> from lxml import html\n >>> mytree = html.fromstring('July 12th, 2016')\n >>> find_date(mytree)\n '2016-07-12'\n\n\nDate format\n~~~~~~~~~~~\n\nThe output format of the dates found can be set in a format known to Python's ``datetime`` module, the default being ``%Y-%m-%d``:\n\n.. code-block:: python\n\n >>> find_date('https://www.gnu.org/licenses/gpl-3.0.en.html', outputformat='%d %B %Y')\n '18 November 2016' # may have changed since\n\n\nOriginal date\n~~~~~~~~~~~~~\n\nAlthough the time delta between the original publication and the *last modified* statement is usually a matter of hours or days at most, it can be useful in some contexts to prioritize the original publication date during extraction:\n\n.. code-block:: python\n\n >>> find_date('https://netzpolitik.org/2016/die-cider-connection-abmahnungen-gegen-nutzer-von-creative-commons-bildern/') # default setting\n '2019-06-24'\n >>> find_date('https://netzpolitik.org/2016/die-cider-connection-abmahnungen-gegen-nutzer-von-creative-commons-bildern/', original_date=True) # modified behavior\n '2016-06-23'\n\n\nOn the command-line\n-------------------\n\nA basic command-line interface is included:\n\n.. code-block:: bash\n\n $ htmldate -u http://blog.python.org/2016/12/python-360-is-now-available.html\n '2016-12-23'\n\nFor usage instructions see ``htmldate -h``:\n\n.. code-block:: bash\n\n $ htmldate --help\n htmldate [-h] [-v] [-f] [--original] [-m MAXDATE] [-i INPUTFILE] [-u URL]\n\noptional arguments:\n -h, --help show this help message and exit\n -v, --verbose increase output verbosity\n -f, --fast fast mode: disable extensive search\n --original original date prioritized\n -m MAXDATE, --maxdate MAXDATE\n latest acceptable date (YYYY-MM-DD)\n -i INPUTFILE, --inputfile INPUTFILE\n name of input file for batch processing (similar to wget -i)\n -u URL, --URL URL custom URL download\n\nThe batch mode ``-i`` takes one URL per line as input and returns one result per line in tab-separated format:\n\n.. code-block:: bash\n\n $ htmldate -i list-of-urls.txt\n\n\nAdditional information\n----------------------\n\nGoing further\n~~~~~~~~~~~~~\n\nFor more details check the online documentation: `htmldate.readthedocs.io `_\n\nIf the date is nowhere to be found, it might be worth considering `carbon dating `_ the web page, however this is computationally expensive. In addition, `datefinder `_ features pattern-based date extraction for texts written in English.\n\n`Pull requests `_ are welcome.\n\nContext\n~~~~~~~\n\nThis module is part of methods to derive metadata from web documents in order to build text corpora for computational linguistic and NLP analysis, the original problem being that there are web pages for which neither the URL nor the server response provide a reliable way to date the document, i.e. find when it was first published and/or last modified. For more information:\n\n- Barbaresi, Adrien. \"`The Vast and the Focused: On the need for domain-focused web corpora `_\", Proceedings of the `7th Workshop on Challenges in the Management of Large Corpora (CMLC-7) `_, 2019.\n- Barbaresi, Adrien. \"`Efficient construction of metadata-enhanced web corpora `_\", Proceedings of the `10th Web as Corpus Workshop (WAC-X) `_, 2016.\n\nKudos to...\n~~~~~~~~~~~\n\n- `cchardet `_, `ciso8601 `_, `lxml `_, `dateparser `_ (although it is a bit slow)\n- A few patterns are derived from `python-goose `_, `metascraper `_, `newspaper `_ and `articleDateExtractor `_. This module extends their coverage and robustness significantly.\n\nContact\n~~~~~~~\n\nSee my `contact page `_ for details.\n\n\n",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://github.com/adbar/htmldate",
"keywords": "datetime,date-parser,entity-extraction,html-extraction,html-parsing,metadata-extraction,webarchives,web-scraping",
"license": "GPLv3+",
"maintainer": "",
"maintainer_email": "",
"name": "htmldate",
"package_url": "https://pypi.org/project/htmldate/",
"platform": "",
"project_url": "https://pypi.org/project/htmldate/",
"project_urls": {
"Homepage": "http://github.com/adbar/htmldate"
},
"release_url": "https://pypi.org/project/htmldate/0.5.6/",
"requires_dist": [
"ciso8601 (==2.1.1)",
"dateparser (==0.7.2)",
"lxml (==4.4.1)",
"regex (==2019.08.19)",
"requests (==2.22.0)"
],
"requires_python": "",
"summary": "Find the creation date of web pages using a combination of tree traversal, common structural patterns, text-based heuristics and robust date extraction.",
"version": "0.5.6"
},
"last_serial": 5880272,
"releases": {
"0.1.0": [
{
"comment_text": "",
"digests": {
"md5": "4a61b28310a0f6bac7d77f3e468e9a19",
"sha256": "b7ae285a23aa703fd4326b9273e6a54fea28d1bfbdaf822c5c5193d5e344e34d"
},
"downloads": -1,
"filename": "htmldate-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4a61b28310a0f6bac7d77f3e468e9a19",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 8984,
"upload_time": "2017-08-25T12:59:57",
"url": "https://files.pythonhosted.org/packages/9c/57/73e8be488083af205feab54dbbdb572f85a5e4685f2f58f2185fb87e2cca/htmldate-0.1.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "f5d8329e904d10dfccd7c51c8e9be7ba",
"sha256": "00ae35d30ceff11b9bee00d69162eb1d978ec5caf6f5a99bea2a9dc777828d3c"
},
"downloads": -1,
"filename": "htmldate-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "f5d8329e904d10dfccd7c51c8e9be7ba",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 20053,
"upload_time": "2017-08-25T12:59:59",
"url": "https://files.pythonhosted.org/packages/52/f2/4022e5dd3b99d5d865dae3e41bb2fb2f4a3da1c6f1234264c4398b02d9cf/htmldate-0.1.0.tar.gz"
}
],
"0.1.1": [
{
"comment_text": "",
"digests": {
"md5": "368d2964f44060aa1305cb40de3032a9",
"sha256": "a1297880f9c6425a71aad85aea70be20d7e71c94171c0b34fde7c3dcf3930449"
},
"downloads": -1,
"filename": "htmldate-0.1.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "368d2964f44060aa1305cb40de3032a9",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 9592,
"upload_time": "2017-09-01T14:43:42",
"url": "https://files.pythonhosted.org/packages/19/c9/7ca7f644f799d8565fb64f85f0a5004c41ec314e84e99627a742f2bbc9a3/htmldate-0.1.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "492a396cea54eab73be451f66461f675",
"sha256": "7e20ea193941e703c1f264ce682d3d3b14ec367b4f26e619ad36684dd0d0e70a"
},
"downloads": -1,
"filename": "htmldate-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "492a396cea54eab73be451f66461f675",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 84043,
"upload_time": "2017-09-01T14:43:44",
"url": "https://files.pythonhosted.org/packages/66/4d/f353c72bcb208769140a484fbccd595e7018806ae950bfb16e531d0de4d4/htmldate-0.1.1.tar.gz"
}
],
"0.1.2": [
{
"comment_text": "",
"digests": {
"md5": "dfc5c760e5490de2df4d913fc265ce4e",
"sha256": "7c21523e60b27295c4ecfb91faa8b239fcd77ef5950287e70d1ec2093a8e5b84"
},
"downloads": -1,
"filename": "htmldate-0.1.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "dfc5c760e5490de2df4d913fc265ce4e",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 10369,
"upload_time": "2017-09-04T08:37:37",
"url": "https://files.pythonhosted.org/packages/40/96/44751b7039b9c31b66601f5bb674d04e467aff1c7de23de6cd8264e689e8/htmldate-0.1.2-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "f2859f6401da3acba32d81b6cd7f75a0",
"sha256": "15abfadaab8f0f8725c3a5ed717cb58e1c3b92fa7a779de7bad948056d2145c6"
},
"downloads": -1,
"filename": "htmldate-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "f2859f6401da3acba32d81b6cd7f75a0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 85066,
"upload_time": "2017-09-04T08:37:39",
"url": "https://files.pythonhosted.org/packages/f4/e2/7725eb04eda4da17f4d1b1b0b3b28331308e6d22126677498ded60ae197c/htmldate-0.1.2.tar.gz"
}
],
"0.2.0": [
{
"comment_text": "",
"digests": {
"md5": "95424738ad53cf1c3d6e510009dbc5e6",
"sha256": "6bdc1838da282e0c4a4e59464050a50705094ce39cd125a06ed554f4d6654f01"
},
"downloads": -1,
"filename": "htmldate-0.2.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "95424738ad53cf1c3d6e510009dbc5e6",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 11289,
"upload_time": "2017-09-07T17:22:52",
"url": "https://files.pythonhosted.org/packages/be/85/3bb02200f4b19ef14b96c689b7498bf26537fb6db17e2d2680873c65e847/htmldate-0.2.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "28205267de94d4e70bd2a15009cb82f6",
"sha256": "b78dc598e6e71a27f70f0026a478c6f6d699c1e0faa88a77b5f7eff876f24729"
},
"downloads": -1,
"filename": "htmldate-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "28205267de94d4e70bd2a15009cb82f6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 169680,
"upload_time": "2017-09-07T17:22:53",
"url": "https://files.pythonhosted.org/packages/ff/e8/9de92878b6e932593a1d036678a072fa91e715d222f47a96e98f82147796/htmldate-0.2.0.tar.gz"
}
],
"0.2.1": [
{
"comment_text": "",
"digests": {
"md5": "0b488a4b51dd64c7e625fcc29182c6fc",
"sha256": "e6dd9581061ee86c1588eb07340c7caf2f3e70ee37bf5e9c7f4d1fcd9f3a3868"
},
"downloads": -1,
"filename": "htmldate-0.2.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "0b488a4b51dd64c7e625fcc29182c6fc",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 12413,
"upload_time": "2017-09-11T16:58:20",
"url": "https://files.pythonhosted.org/packages/83/b9/d29f2083ff5e500839d26fac5a0ad80f31e17daa9c1f8c98d6def7f82a65/htmldate-0.2.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "e7d9ef1d3474d740d55176e253b01246",
"sha256": "0e6a3a5b32ba47e5e522e294ebe8cb5fa0d9b60adcf696ddddc89ef4dc8f292b"
},
"downloads": -1,
"filename": "htmldate-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "e7d9ef1d3474d740d55176e253b01246",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 353254,
"upload_time": "2017-09-11T16:58:22",
"url": "https://files.pythonhosted.org/packages/df/73/b408905e65c2bad63734764aee069e22cb6539a5f6dff00b857a9b06ff7c/htmldate-0.2.1.tar.gz"
}
],
"0.2.2": [
{
"comment_text": "",
"digests": {
"md5": "8767768d95c71215370fd5569545a38a",
"sha256": "a94b77b65b3f24034a860d3848cfb1b8368faff0db59fa3ebd226f74ce65d707"
},
"downloads": -1,
"filename": "htmldate-0.2.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "8767768d95c71215370fd5569545a38a",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 14031,
"upload_time": "2017-10-09T17:24:27",
"url": "https://files.pythonhosted.org/packages/4d/fa/17f023bee70e65f0f47224eef3682498f975f12f5545966cac0730c2e38a/htmldate-0.2.2-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "14b0a8b763d072ccf7197ace302729e3",
"sha256": "2ddf1518e33a924d0c240fe496deb180b8b3f6b6a6eafe3b6c1d58db8a260efd"
},
"downloads": -1,
"filename": "htmldate-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "14b0a8b763d072ccf7197ace302729e3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 678266,
"upload_time": "2017-10-09T17:24:31",
"url": "https://files.pythonhosted.org/packages/d7/d5/fa4c18abcefc8b5b96fdde8ac3be23ddd5dc359c2254e38a13e93fa49d06/htmldate-0.2.2.tar.gz"
}
],
"0.3.0": [
{
"comment_text": "",
"digests": {
"md5": "c45c33198a30c4badbd57f06f7ea3cf1",
"sha256": "06dbf1ed98ab9efb62b0d5e60066fab78c96452907158e6f586a51122bc3350e"
},
"downloads": -1,
"filename": "htmldate-0.3.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "c45c33198a30c4badbd57f06f7ea3cf1",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 17937,
"upload_time": "2017-11-06T16:03:18",
"url": "https://files.pythonhosted.org/packages/3c/4e/7bfbdf39283f60ce40bcc80a25906662d4d17e1766d37c3328b29c922d92/htmldate-0.3.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "30e5172463235dd2ad2e679857c33772",
"sha256": "0b9ff0aad4a001191c5b7cb0be360969f86e49397b353eb86f781fafe7e64a99"
},
"downloads": -1,
"filename": "htmldate-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "30e5172463235dd2ad2e679857c33772",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 735542,
"upload_time": "2017-11-06T16:03:20",
"url": "https://files.pythonhosted.org/packages/f1/6e/f3cdd3dc19bec47cc62084b1ade6455a6c5202017ab785b348661eb7bcbf/htmldate-0.3.0.tar.gz"
}
],
"0.3.1": [
{
"comment_text": "",
"digests": {
"md5": "1f29e2167ecbd9ad454fd83c311c57ce",
"sha256": "1965c73b9c7f1c3d24a2f286ede5e6e2595a7561e2a8de010c5fbd64a62ad3ea"
},
"downloads": -1,
"filename": "htmldate-0.3.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "1f29e2167ecbd9ad454fd83c311c57ce",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 17962,
"upload_time": "2017-12-13T16:32:54",
"url": "https://files.pythonhosted.org/packages/77/f9/594304a92f09a6bbde58387a7bc8bf260f004e8863ad3ddda6bbccc2ffa4/htmldate-0.3.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "ad3070af51e12eab4f53ffd5ebbd3460",
"sha256": "9363525c1eeced5131c9d0677d928b43afcf742bf9823a34b1bb3b1850269990"
},
"downloads": -1,
"filename": "htmldate-0.3.1.tar.gz",
"has_sig": false,
"md5_digest": "ad3070af51e12eab4f53ffd5ebbd3460",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 735667,
"upload_time": "2017-12-13T16:32:56",
"url": "https://files.pythonhosted.org/packages/02/0b/f5a1dc58e79b0ae43f3820d36e35ec873a1e1899922d2979d53bbc05c110/htmldate-0.3.1.tar.gz"
}
],
"0.3.2": [
{
"comment_text": "",
"digests": {
"md5": "4879ec14aa8ee3d07b0c29f83067e641",
"sha256": "67f315b642d4c9f21a6a23e63f0f42a414d1583a79bd269fbedbae0a43354b30"
},
"downloads": -1,
"filename": "htmldate-0.3.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "4879ec14aa8ee3d07b0c29f83067e641",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 19370,
"upload_time": "2018-06-22T13:33:38",
"url": "https://files.pythonhosted.org/packages/a9/bb/3f95948e6100640ff2ca9e68250095bb28d252b6e8f79a490de62fb00797/htmldate-0.3.2-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "a149707e6cbf9450255e91937c198b52",
"sha256": "ab4c77f07820d201d8007a533c4062171f31fded6333f79f0fcbbb69a25b53bb"
},
"downloads": -1,
"filename": "htmldate-0.3.2.tar.gz",
"has_sig": false,
"md5_digest": "a149707e6cbf9450255e91937c198b52",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 747654,
"upload_time": "2018-06-22T13:33:40",
"url": "https://files.pythonhosted.org/packages/f1/94/9df2d5aa0ddd3adf73edb0ad7d58f128385cd376932c9130571e7aa3e0b4/htmldate-0.3.2.tar.gz"
}
],
"0.3.3": [
{
"comment_text": "",
"digests": {
"md5": "55f1f8f585fbef34b75743073be641e4",
"sha256": "f6f35338e59fdbf05541ab97212a755cd3f6e845c4f2a0bce1772dd3bc0cb2bf"
},
"downloads": -1,
"filename": "htmldate-0.3.3-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "55f1f8f585fbef34b75743073be641e4",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 19456,
"upload_time": "2018-06-26T15:59:50",
"url": "https://files.pythonhosted.org/packages/cf/34/5959dcda75d079a7996983c70767a050431f6a58b6a47c3ec920471d2f84/htmldate-0.3.3-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "2d91a995a735df5c5a2248dc656acfa1",
"sha256": "c8d30e8143806e7e7199ce49fce8dcb842574335135e45accaba7475d14b67e6"
},
"downloads": -1,
"filename": "htmldate-0.3.3.tar.gz",
"has_sig": false,
"md5_digest": "2d91a995a735df5c5a2248dc656acfa1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 756293,
"upload_time": "2018-06-26T15:59:52",
"url": "https://files.pythonhosted.org/packages/3d/71/25a48b3e1ba7ad9ed1e64d9d1e8f4cfd1ca65a5105cf16eabf732e9ec49b/htmldate-0.3.3.tar.gz"
}
],
"0.3.4": [
{
"comment_text": "",
"digests": {
"md5": "132b7e1829394b82e511e752c96a6780",
"sha256": "0d6deb429a6ebc3fecdb2ee4873d231292d3a00b77eccf297b1de7c625f0e7a5"
},
"downloads": -1,
"filename": "htmldate-0.3.4-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "132b7e1829394b82e511e752c96a6780",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 19713,
"upload_time": "2019-02-04T12:50:53",
"url": "https://files.pythonhosted.org/packages/e9/1a/c0fdb5b6955b097bc1fe9f97556749b31b491509540132c677916a844bea/htmldate-0.3.4-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "c6779a4a2f449a2a44261f268fd9a01b",
"sha256": "c0bf75ad3e824145e297a7ccecf4a47f85527b572f1e5b8ce47ee4e69f21b3b3"
},
"downloads": -1,
"filename": "htmldate-0.3.4.tar.gz",
"has_sig": false,
"md5_digest": "c6779a4a2f449a2a44261f268fd9a01b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 838497,
"upload_time": "2019-02-04T12:50:56",
"url": "https://files.pythonhosted.org/packages/f5/97/7501caed635987d5c52b0549c53b391ba47997a31eaf8ab8a6881e83ad8a/htmldate-0.3.4.tar.gz"
}
],
"0.4.0": [
{
"comment_text": "",
"digests": {
"md5": "99856b66590e458cbc550dc6640582d4",
"sha256": "a96dc39bf669376c9e15ade14de125f5150b35680d4deb14111d9157e444b645"
},
"downloads": -1,
"filename": "htmldate-0.4.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "99856b66590e458cbc550dc6640582d4",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 19833,
"upload_time": "2019-02-12T10:10:17",
"url": "https://files.pythonhosted.org/packages/cb/2a/d31f647e096d851bcd2ae6ef97d09098774eed1690058dc400c1a66b3a91/htmldate-0.4.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "29b31ada6f77e63e25bead063737b1ad",
"sha256": "22c94401694468087eca0f33691a6ce6606757577253d1dd3cafd54ac9c13ce9"
},
"downloads": -1,
"filename": "htmldate-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "29b31ada6f77e63e25bead063737b1ad",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 855907,
"upload_time": "2019-02-12T10:10:20",
"url": "https://files.pythonhosted.org/packages/8e/e7/a578ed5399c0cbf34c4ddb71e072e62b41414fac03e4e0df5a7bbe31f96d/htmldate-0.4.0.tar.gz"
}
],
"0.4.1": [
{
"comment_text": "",
"digests": {
"md5": "74a5c04bb3d3a1d39cf8b60a96032e20",
"sha256": "2ad14cdde09cd099c335c3fdf30b0adb70ab3c2b7c89823a6b00df7ed3f69085"
},
"downloads": -1,
"filename": "htmldate-0.4.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "74a5c04bb3d3a1d39cf8b60a96032e20",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 19916,
"upload_time": "2019-02-15T15:53:40",
"url": "https://files.pythonhosted.org/packages/5d/be/305531ef1ba3b4be27b1b4adbb6073870df6bedc1b4ed2c4bbe9b388bc5e/htmldate-0.4.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "e7245251ac8bb2997152f828cd6a6d09",
"sha256": "ccd462628b339f7c8c2c1531de36a24d995046f7daf1bd0e866878a1dd419c16"
},
"downloads": -1,
"filename": "htmldate-0.4.1.tar.gz",
"has_sig": false,
"md5_digest": "e7245251ac8bb2997152f828cd6a6d09",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 856036,
"upload_time": "2019-02-15T15:53:42",
"url": "https://files.pythonhosted.org/packages/88/cb/ca6fcdc1719bfb0300225232f0584bb7d37927f6c85ac56a652ab41ad742/htmldate-0.4.1.tar.gz"
}
],
"0.5.0": [
{
"comment_text": "",
"digests": {
"md5": "32a5b0e8604409ae526929f440075aba",
"sha256": "f4fed493df74a7baa6a07ef5204c3b30199b9f689f078d62bb3d02605d9ab089"
},
"downloads": -1,
"filename": "htmldate-0.5.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "32a5b0e8604409ae526929f440075aba",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 21481,
"upload_time": "2019-05-06T10:48:57",
"url": "https://files.pythonhosted.org/packages/8e/cf/1bf6dd458e7746a52ef9310b9cc82cf077069245a5867e411706962dbb33/htmldate-0.5.0-py2.py3-none-any.whl"
}
],
"0.5.1": [
{
"comment_text": "",
"digests": {
"md5": "79b7a8f256bd088c866f7973d3c03830",
"sha256": "544663a25e70734b4613f6a9800a3d8670adcd0b126779071c6b3f4fa4d88ca9"
},
"downloads": -1,
"filename": "htmldate-0.5.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "79b7a8f256bd088c866f7973d3c03830",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 21967,
"upload_time": "2019-06-05T08:09:16",
"url": "https://files.pythonhosted.org/packages/88/1e/b5795c368dc661d7d81d8eca9ba7f360e540859a15a96c9b6e559a26f241/htmldate-0.5.1-py2.py3-none-any.whl"
}
],
"0.5.2": [
{
"comment_text": "",
"digests": {
"md5": "709371f7a934c0d11aae8fc5d6a95b7d",
"sha256": "177671676105716213a3d1680569cbff6066382a940c06f92fc53957f1660a3f"
},
"downloads": -1,
"filename": "htmldate-0.5.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "709371f7a934c0d11aae8fc5d6a95b7d",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 24993,
"upload_time": "2019-07-17T10:17:36",
"url": "https://files.pythonhosted.org/packages/0d/7d/7ffde9bace160d40e7b6d1aaaac00a285a32d876d87a50b969a26ead4c95/htmldate-0.5.2-py2.py3-none-any.whl"
}
],
"0.5.3": [
{
"comment_text": "",
"digests": {
"md5": "0e84664e08055930b87d28eaf3baad89",
"sha256": "c2b64a281845f6d28550ff9759a81c5cef38bc39e2e41df3c6ae0f94c4c5d950"
},
"downloads": -1,
"filename": "htmldate-0.5.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0e84664e08055930b87d28eaf3baad89",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 25280,
"upload_time": "2019-08-09T10:55:54",
"url": "https://files.pythonhosted.org/packages/1f/0c/753439a7a51347cf2b4e0d89210dac3d8b251905553b9f77e05bb5df3002/htmldate-0.5.3-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "8844e7a8fca880f07aeab0e1f16d2ba6",
"sha256": "75313b778a66fdd1ddc4efe2d4c49396b9e2e3fc255a977be36e4d2ddc620b8a"
},
"downloads": -1,
"filename": "htmldate-0.5.3.tar.gz",
"has_sig": false,
"md5_digest": "8844e7a8fca880f07aeab0e1f16d2ba6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1053866,
"upload_time": "2019-08-09T10:55:56",
"url": "https://files.pythonhosted.org/packages/34/7b/a4cba437d7b4f36644dda858659cb661549900efbb20da8a3fb909ae94f2/htmldate-0.5.3.tar.gz"
}
],
"0.5.5": [
{
"comment_text": "",
"digests": {
"md5": "827fc4f772cc59e2cd481647757dee6c",
"sha256": "02c03a6264482b3e50bce052b51f72d578115bb08b13ab47090a204f29b64d86"
},
"downloads": -1,
"filename": "htmldate-0.5.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "827fc4f772cc59e2cd481647757dee6c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 25764,
"upload_time": "2019-09-16T16:48:01",
"url": "https://files.pythonhosted.org/packages/58/25/1b9a2db607dbb3c7075c4c837b7ea82ea270040d21bc693a9165e8223c9e/htmldate-0.5.5-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "5a3f55ab92dad08fd62d0479686afaf3",
"sha256": "d1c0e972bc7cbce3a1979a7f3851729d931e42d9241534e466f9bd601c69b54d"
},
"downloads": -1,
"filename": "htmldate-0.5.5.tar.gz",
"has_sig": false,
"md5_digest": "5a3f55ab92dad08fd62d0479686afaf3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1054386,
"upload_time": "2019-09-16T16:48:05",
"url": "https://files.pythonhosted.org/packages/a6/db/df87593ea21b7e193b82659b6f00c306bf01fc4e7a9cecff8479b1a6b98c/htmldate-0.5.5.tar.gz"
}
],
"0.5.6": [
{
"comment_text": "",
"digests": {
"md5": "bd8b14207e347128d1475319a859c996",
"sha256": "0f3558fa42762aa1c775529a87b1205a9ec3e17d9aaab871c94b940ade7a9484"
},
"downloads": -1,
"filename": "htmldate-0.5.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "bd8b14207e347128d1475319a859c996",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 26764,
"upload_time": "2019-09-24T14:46:20",
"url": "https://files.pythonhosted.org/packages/fe/27/ffc60b2365dc1692ce761c969c6fec5733f82e1abb4574b55556a8a92fc6/htmldate-0.5.6-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "0cad8109b92105784d7c9f586496bf1e",
"sha256": "92fa67b049bc78fcf370507b1fd0772f09fd036e3fd2cef95ae192abded9d365"
},
"downloads": -1,
"filename": "htmldate-0.5.6.tar.gz",
"has_sig": false,
"md5_digest": "0cad8109b92105784d7c9f586496bf1e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1117157,
"upload_time": "2019-09-24T14:46:23",
"url": "https://files.pythonhosted.org/packages/81/6b/ac24c707b16e82ab060fbd00696cb5126109e9d9737a50be83deb8713597/htmldate-0.5.6.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "bd8b14207e347128d1475319a859c996",
"sha256": "0f3558fa42762aa1c775529a87b1205a9ec3e17d9aaab871c94b940ade7a9484"
},
"downloads": -1,
"filename": "htmldate-0.5.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "bd8b14207e347128d1475319a859c996",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 26764,
"upload_time": "2019-09-24T14:46:20",
"url": "https://files.pythonhosted.org/packages/fe/27/ffc60b2365dc1692ce761c969c6fec5733f82e1abb4574b55556a8a92fc6/htmldate-0.5.6-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "0cad8109b92105784d7c9f586496bf1e",
"sha256": "92fa67b049bc78fcf370507b1fd0772f09fd036e3fd2cef95ae192abded9d365"
},
"downloads": -1,
"filename": "htmldate-0.5.6.tar.gz",
"has_sig": false,
"md5_digest": "0cad8109b92105784d7c9f586496bf1e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1117157,
"upload_time": "2019-09-24T14:46:23",
"url": "https://files.pythonhosted.org/packages/81/6b/ac24c707b16e82ab060fbd00696cb5126109e9d9737a50be83deb8713597/htmldate-0.5.6.tar.gz"
}
]
}