Metadata-Version: 1.1
Name: dateparser
Version: 0.5.1
Summary: Date parsing library designed to parse dates from HTML pages
Home-page: https://github.com/scrapinghub/dateparser
Author: Scrapinghub
Author-email: info@scrapinghub.com
License: BSD
Description: ====================================================
        dateparser -- python parser for human readable dates
        ====================================================
        
        .. image:: https://img.shields.io/travis/scrapinghub/dateparser/master.svg?style=flat-square
            :target: https://travis-ci.org/scrapinghub/dateparser
            :alt: travis build status
        
        .. image:: https://img.shields.io/pypi/v/dateparser.svg?style=flat-square
            :target: https://pypi.python.org/pypi/dateparser
            :alt: pypi version
        
        .. image:: https://readthedocs.org/projects/dateparser/badge/?version=latest
            :target: http://dateparser.readthedocs.org/en/latest/?badge=latest
            :alt: Documentation Status
        
        .. image:: https://codecov.io/gh/scrapinghub/dateparser/branch/master/graph/badge.svg
           :target: https://codecov.io/gh/scrapinghub/dateparser
           :alt: Code Coverage
        
        .. image:: https://badges.gitter.im/scrapinghub/dateparser.svg
           :alt: Join the chat at https://gitter.im/scrapinghub/dateparser
           :target: https://gitter.im/scrapinghub/dateparser?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
        
        
        `dateparser` provides modules to easily parse localized dates in almost
        any string formats commonly found on web pages.
        
        
        Documentation
        =============
        
        Documentation is built automatically and can be found on
        `Read the Docs <https://dateparser.readthedocs.org/en/latest/>`_.
        
        
        Features
        ========
        
        * Generic parsing of dates in English, Spanish, Dutch, Russian and over 20 other languages plus numerous formats in a language agnostic fashion.
        * Generic parsing of relative dates like: ``'1 min ago'``, ``'2 weeks ago'``, ``'3 months, 1 week and 1 day ago'``, ``'in 2 days'``, ``'tomorrow'``.
        * Generic parsing of dates with time zones abbreviations or UTC offsets like: ``'August 14, 2015 EST'``, ``'July 4, 2013 PST'``, ``'21 July 2013 10:15 pm +0500'``.
        * Support for non-Gregorian calendar systems. See `Supported Calendars`_.
        * Extensive test coverage.
        
        
        Usage
        =====
        
        The most straightforward way is to use the `dateparser.parse <#dateparser.parse>`_ function,
        that wraps around most of the functionality in the module.
        
        
           
        
        
        Popular Formats
        ---------------
        
            >>> import dateparser
            >>> dateparser.parse('12/12/12')
            datetime.datetime(2012, 12, 12, 0, 0)
            >>> dateparser.parse(u'Fri, 12 Dec 2014 10:55:50')
            datetime.datetime(2014, 12, 12, 10, 55, 50)
            >>> dateparser.parse(u'Martes 21 de Octubre de 2014')  # Spanish (Tuesday 21 October 2014)
            datetime.datetime(2014, 10, 21, 0, 0)
            >>> dateparser.parse(u'Le 11 Décembre 2014 à 09:00')  # French (11 December 2014 at 09:00)
            datetime.datetime(2014, 12, 11, 9, 0)
            >>> dateparser.parse(u'13 января 2015 г. в 13:34')  # Russian (13 January 2015 at 13:34)
            datetime.datetime(2015, 1, 13, 13, 34)
            >>> dateparser.parse(u'1 เดือนตุลาคม 2005, 1:00 AM')  # Thai (1 October 2005, 1:00 AM)
            datetime.datetime(2005, 10, 1, 1, 0)
        
        This will try to parse a date from the given string, attempting to
        detect the language each time.
        
        You can specify the language(s), if known, using ``languages`` argument. In this case, given languages are used and language detection is skipped:
        
            >>> dateparser.parse('2015, Ago 15, 1:08 pm', languages=['pt', 'es'])
            datetime.datetime(2015, 8, 15, 13, 8)
        
        If you know the possible formats of the dates, you can
        use the ``date_formats`` argument:
        
            >>> dateparser.parse(u'22 Décembre 2010', date_formats=['%d %B %Y'])
            datetime.datetime(2010, 12, 22, 0, 0)
        
        
        Relative Dates
        --------------
        
            >>> parse('1 hour ago')
            datetime.datetime(2015, 5, 31, 23, 0)
            >>> parse(u'Il ya 2 heures')  # French (2 hours ago)
            datetime.datetime(2015, 5, 31, 22, 0)
            >>> parse(u'1 anno 2 mesi')  # Italian (1 year 2 months)
            datetime.datetime(2014, 4, 1, 0, 0)
            >>> parse(u'yaklaşık 23 saat önce')  # Turkish (23 hours ago)
            datetime.datetime(2015, 5, 31, 1, 0)
            >>> parse(u'Hace una semana')  # Spanish (a week ago)
            datetime.datetime(2015, 5, 25, 0, 0)
            >>> parse(u'2小时前')  # Chinese (2 hours ago)
            datetime.datetime(2015, 5, 31, 22, 0)
        
        .. note:: Testing above code might return different values for you depending on your environment's current date and time.
        
        .. note:: Support for relative dates in future needs a lot of improvement, we look forward to community's contribution to get better on that part. See `Contributing`.
        
        
        OOTB Language Based Date Order Preference
        -----------------------------------------
        
           >>> # parsing ambiguous date
           >>> parse('02-03-2016')  # assumes english language, uses MDY date order 
           datetime.datetime(2016, 3, 2, 0, 0)
           >>> parse('le 02-03-2016')  # detects french, uses DMY date order
           datetime.datetime(2016, 3, 2, 0, 0)
        
        .. note:: Ordering is not locale based, that's why do not expect `DMY` order for UK/Australia English. You can specify date order in that case as follows usings `Settings`:
        
            >>> parse('18-12-15 06:00', settings={'DATE_ORDER': 'DMY'})
            datetime.datetime(2015, 12, 18, 6, 0)
        
        For more on date order, please look at `Settings`.
        
        
        Timezone and UTC Offset 
        -----------------------
        
        `dateparser` automatically detects the timezone if given in the date string. If date has no timezone name/abbreviation or offset, you can still specify it using `TIMEZONE` setting.
        
            >>> parse('January 12, 2012 10:00 PM', settings={'TIMEZONE': 'US/Eastern'})
            datetime.datetime(2012, 1, 12, 22, 0)
        
        You can also convert from one time zone to another using `TO_TIMEZONE` setting.
        
            >>> parse('10:00 am', settings={'TO_TIMEZONE': 'EDT', 'TIMEZONE': 'EST'})
            datetime.datetime(2016, 9, 25, 11, 0)
        
            >>> parse('10:00 am EST', settings={'TO_TIMEZONE': 'EDT'})
            datetime.datetime(2016, 9, 25, 11, 0)
        
        Support for tzaware objects:
        
            >>> parse('12 Feb 2015 10:56 PM EST', settings={'RETURN_AS_TIMEZONE_AWARE': True}) 
            datetime.datetime(2015, 2, 12, 22, 56, tzinfo=<StaticTzInfo 'EST'>)
        
        For more on timezones, please look at `Settings`.
        
        
        Incomplete Dates
        ----------------
        
            >>> from dateparser import parse
            >>> parse(u'December 2015')  # default behavior
            datetime.datetime(2015, 12, 16, 0, 0)
            >>> parse(u'December 2015', settings={'PREFER_DAY_OF_MONTH': 'last'})
            datetime.datetime(2015, 12, 31, 0, 0)
            >>> parse(u'December 2015', settings={'PREFER_DAY_OF_MONTH': 'first'})
            datetime.datetime(2015, 12, 1, 0, 0)
        
            >>> parse(u'March')
            datetime.datetime(2015, 3, 16, 0, 0)
            >>> parse(u'March', settings={'PREFER_DATES_FROM': 'future'})
            datetime.datetime(2016, 3, 16, 0, 0)
            >>> # parsing with preference set for 'past'
            >>> parse('August', settings={'PREFER_DATES_FROM': 'past'})
            datetime.datetime(2015, 8, 15, 0, 0)
        
        You can also ignore parsing incomplete dates altogether by setting `STRICT_PARSING` flag as follows:
        
            >>> parse(u'December 2015', settings={'STRICT_PARSING': True})
            None
        
        For more on handling incomplete dates, please look at `Settings`.
        
        
        Dependencies
        ============
        
        `dateparser` relies on following libraries in some ways:
        
          * dateutil_'s module ``relativedelta`` for its freshness parser.
          * ruamel.yaml_ for reading language and configuration files.
          * jdatetime_ to convert *Jalali* dates to *Gregorian*.
          * umalqurra_ to convert *Hijri* dates to *Gregorian*.
          * tzlocal_ to reliably get local timezone.
        
        .. _dateutil: https://pypi.python.org/pypi/python-dateutil
        .. _ruamel.yaml: https://pypi.python.org/pypi/ruamel.yaml
        .. _jdatetime: https://pypi.python.org/pypi/jdatetime
        .. _umalqurra: https://pypi.python.org/pypi/umalqurra/
        .. _tzlocal: https://pypi.python.org/pypi/tzlocal
        
        
        Supported languages
        ===================
        
        * Arabic
        * Belarusian
        * Chinese
        * Czech
        * Danish
        * Dutch
        * English
        * Filipino/Tagalog
        * Finnish
        * French
        * Hebrew
        * Hungarian
        * German
        * Indonesian
        * Italian
        * Japanese
        * Persian
        * Polish
        * Portuguese
        * Romanian
        * Russian
        * Spanish
        * Thai
        * Turkish
        * Ukrainian
        * Vietnamese
        
        
        Supported Calendars
        ===================
        * Gregorian calendar.
        
        * Persian Jalali calendar. For more information, refer to `Persian Jalali Calendar <https://en.wikipedia.org/wiki/Iranian_calendars#Zoroastrian_calendar>`_.
        
        * Hijri/Islamic Calendar. For more information, refer to `Hijri Calendar <https://en.wikipedia.org/wiki/Islamic_calendar>`_.
        
        	>>> from dateparser.calendars.jalali import JalaliCalendar
        	>>> JalaliCalendar(u'جمعه سی ام اسفند ۱۳۸۷').get_date()
        	{'date_obj': datetime.datetime(2009, 3, 20, 0, 0), 'period': 'day'}
        
                >>> from dateparser.calendars.hijri import HijriCalendar
                >>> HijriCalendar(u'17-01-1437 هـ 08:30 مساءً').get_date()
                {'date_obj': datetime.datetime(2015, 10, 30, 20, 30), 'period': 'day'}
        
        .. note:: `HijriCalendar` has some limitations with Python 3.
        .. note:: For `Finnish` language, please specify `settings={'SKIP_TOKENS': []}` to correctly parse freshness dates.
        
        
        
        .. :changelog:
        
        History
        =======
        
        0.5.1 (2016-12-18)
        ------------------
        
        New features:
        
        * Added support for Hebrew
        
        Improvements:
        
        * Safer loading of YAML. See #251
        * Better timezone parsing for freshness dates. See #256
        * Pinned dependencies' versions in requirements. See #265
        * Improved support for zh, fi languages. See #249, #250, #248, #244
        
        
        0.5.0 (2016-09-26)
        ------------------
        New features:
        
        * `DateDataParser` now also returns detected language in the result dictionary.
        * Explicit and lucid timezone conversion for a given datestring using `TIMEZONE`, `TO_TIMEZONE` settings.
        * Added Hungarian langauge.
        * Added setting, `STRICT_PARSING` to ignore imcomplete dates.
        
        Improvements:
        
        * Fixed quite a few parser bugs reported in issues #219, #222, #207, #224.
        * Improved support for chinese language.
        * Consistent interface for both Jalali and Hijri parsers.
        
        
        0.4.0 (2016-06-17)
        ------------------
        New features:
        
        * Support for Language based date order preference while parsing ambiguous dates.
        * Support for parsing dates with no spaces in between components.
        * Support for custom date order preference using `settings`.
        * Support for parsing generic relative dates in future.e.g. `tomorrow`, `in two weeks`, etc.
        * Added `RELATIVE_BASE` settings to set date context to any datetime in past or future.
        * Replaced dateutil.parser.parse with dateparser's own parser.
        
        Improvements:
        
        * Added simplifications for `12 noon` and `12 midnight`.
        * Fixed several bugs
        * Replaced PyYAML library by its active fork `ruamel.yaml` which also fixed the issues with installation on windows using python35.
        * More predictable `date_formats` handling.
        
        
        0.3.5 (2016-04-27)
        ------------------
        New features:
        
        * Danish language support.
        * Japanese language support.
        * Support for parsing date strings with accents.
        
        Improvements:
        
        * Transformed languages.yaml into base file and separate files for each language.
        * Fixed vietnamese language simplifications.
        * No more version restrictions for python-dateutil.
        * Timezone parsing improvements.
        * Fixed test environments.
        * Cleaned language codes. Now we strictly follow codes as in ISO 639-1.
        * Improved chinese dates parsing.
        
        
        0.3.4 (2016-03-03)
        ------------------
        Improvements:
        
        * Fixed broken version 0.3.3 by excluding latest python-dateutil version.
        
        0.3.3 (2016-02-29)
        ------------------
        New features:
        
        * Finnish language support.
        
        Improvements:
        
        * Faster parsing with switching to regex module.
        * `RETURN_AS_TIMEZONE_AWARE` setting to return tz aware date object.
        * Fixed conflicts with month/weekday names similarity across languages.
        
        0.3.2 (2016-01-25)
        ------------------
        New features:
        
        * Added Hijri Calendar support.
        * Added settings for better control over parsing dates.
        * Support to convert parsed time to the given timezone for both complete and relative dates.
        
        Improvements:
        
        * Fixed problem with caching `datetime.now` in `FreshnessDateDataParser`.
        * Added month names and week day names abbreviations to several languages.
        * More simplifications for Russian and Ukranian languages.
        * Fixed problem with parsing time component of date strings with several kinds of apostrophes.
        
        
        0.3.1 (2015-10-28)
        ------------------
        New features:
        
        * Support for Jalali Calendar.
        * Belarusian language support.
        * Indonesian language support.
        
        
        Improvements:
        
        * Extended support for Russian and Polish.
        * Fixed bug with time zone recognition.
        * Fixed bug with incorrect translation of "second" for Portuguese.
        
        
        0.3.0 (2015-07-29)
        ------------------
        New features:
        
        * Compatibility with Python 3 and PyPy.
        
        Improvements:
        
        * `languages.yaml` data cleaned up to make it human-readable.
        * Improved Spanish date parsing.
        
        
        0.2.1 (2015-07-13)
        ------------------
        * Support for generic parsing of dates with UTC offset.
        * Support for Tagalog/Filipino dates.
        * Improved support for French and Spanish dates.
        
        
        0.2.0 (2015-06-17)
        ------------------
        * Easy to use `parse` function
        * Languages definitions using YAML.
        * Using translation based approach for parsing non-english languages. Previously, `dateutil.parserinfo` was used for language definitions.
        * Better period extraction.
        * Improved tests.
        * Added a number of new simplifications for more comprehensive generic parsing.
        * Improved validation for dates.
        * Support for Polish, Thai and Arabic dates.
        * Support for `pytz` timezones.
        * Fixed building and packaging issues.
        
        
        0.1.0 (2014-11-24)
        ------------------
        
        * First release on PyPI.
        
Keywords: dateparser
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: Implementation :: PyPy
