similarity index 86%
rename from meta-python/recipes-devtools/python/python3-dateparser_1.4.3.bb
rename to meta-python/recipes-devtools/python/python3-dateparser_1.5.0.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "https://github.com/scrapinghub/dateparser"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3d3ed25571191e7aa3f55d0a6efe0051"
-SRC_URI[sha256sum] = "bab8c43a746266e68142f4926e69438ce551441aa88e54e78bb6410bf3ee7000"
+SRC_URI[sha256sum] = "08d62f2c00d3a1e806fc59d40c79e7554e31d84d3b8c6145820af051c92e7292"
inherit pypi python_setuptools_build_meta
Upgrade to release 1.5.0: Breaking changes: - DateData.period can take the new values "quarter" and "part_of_day", and with RETURN_TIME_AS_PERIOD enabled a relative date with hours, minutes or seconds, such as "2 hours ago", now has the "time" period instead of "day" (#1417, #1437, #1473) - Stop caching and sharing Settings instances: creating one with the same settings twice now gives two different objects, and the Settings.registry_key attribute no longer exists - Remove the leftovers of fastText support from dateparser_cli: the fasttext_manager and exceptions modules and utils.create_data_model_home(); utils.dateparser_model_home and utils.DEFAULT_WINDOWS_CACHE_DIR are now pathlib.Path objects - Remove Locale.to_parserinfo() and HijriDate.weekday(), which always raised an exception (#1406, #1457) Deprecations: - Deprecate dateparser.timezone_parser.convert_to_local_tz() and dateparser.timezone_parser.build_tz_offsets() - Emit a FutureWarning naming the TZ value from parse(), DateDataParser and search_dates() when the local timezone cannot be determined; a future version will raise RuntimeError instead of failing to parse the date (#1403, #1556) - Deprecate dateparser.utils.registry() and Settings.get_key(), which now emit a FutureWarning (#1442, #1556) - Deprecate get_week_start() and get_week_end() in dateparser.utils.time_spans, and calling generate_time_span() without base_date or settings; all of them now emit a FutureWarning (#1393, #1556) - Deprecate dateparser.date.RE_TRIM_COLONS (GHSA-fmxc-97cw-ph6p <https://github.com/scrapinghub/dateparser/security/advisories/GHSA-fmxc-97cw-ph6p>_) Security fixes: - Make sentence splitting in search_dates() linear on long punctuation runs, to prevent quadratic backtracking (ReDoS) for Arabic, Bengali, Cantonese, Chinese, Hindi, Japanese and Persian (GHSA-rx9v-94ff-9cc2 <https://github.com/scrapinghub/dateparser/security/advisories/GHSA-rx9v-94ff-9cc2>_) - Prevent quadratic regex matching (ReDoS) on long digit runs in Cantonese, Chinese and Japanese, and a ValueError on runs of more than 4,300 digits on Python 3.10.7 and later (GHSA-g8fh-jxm9-6qfx <https://github.com/scrapinghub/dateparser/security/advisories/GHSA-g8fh-jxm9-6qfx>_) - Bound the lookahead of the Chinese month simplification, to prevent quadratic parsing time on long runs of numbers followed by 月 (GHSA-q7fp-xwcm-6x9f <https://github.com/scrapinghub/dateparser/security/advisories/GHSA-q7fp-xwcm-6x9f>_) - Prevent quadratic regex matching (ReDoS) on long runs of digits or whitespace (GHSA-gqj4-wf6c-wmcg <https://github.com/scrapinghub/dateparser/security/advisories/GHSA-gqj4-wf6c-wmcg>_) - Strip trailing colons in linear time, to prevent quadratic backtracking (ReDoS) on long colon runs (GHSA-fmxc-97cw-ph6p <https://github.com/scrapinghub/dateparser/security/advisories/GHSA-fmxc-97cw-ph6p>_) - Split strings into known words in linear time, to prevent quadratic parsing time on long runs of words like month names (GHSA-jxmm-w6rw-32ch <https://github.com/scrapinghub/dateparser/security/advisories/GHSA-jxmm-w6rw-32ch>_) New features: - Add a STRICT_DATE_ORDER setting that turns an explicit DATE_ORDER from a preference into a requirement: "year" reads a two-digit year only from the position DATE_ORDER gives it, and "all" also keeps the day and month where the order puts them - Add a TIMEZONE_ABBREVIATIONS setting to override the offset of timezone abbreviations, e.g. to read IST as India Standard Time instead of Israel Standard Time - Parse parts of the day, such as "tomorrow morning", "this evening" or "8 in the evening", at the times set by the new PARTS_OF_DAY setting; the new DateData.part_of_day attribute tells which one was found - Add DateData.parts, which lists the date parts (day, month, year, time…) read from the input rather than filled in from defaults - Add an add_period argument to search_dates() to also return the period of each date - Add a date_formats argument to search_dates(), to find dates written in the given formats; it requires strategy="ngram" and raises ValueError with the default "split" strategy - Add the French Republican calendar and the Minguo (Taiwanese) calendar (#1483, #1489) - Parse calendar quarters, such as "2025Q1", "2025-Q3" or "Q4 2025", as a month of that quarter picked by PREFER_MONTH_OF_YEAR (by default, the month as far into the quarter as the current month is into its own) - Parse "last", "this" and "next" before a weekday in English, e.g. "next Friday", as the closest occurrence of that weekday before, on or after, and after the current date, whatever PREFER_DATES_FROM is, except for the abbreviations "wed", "sat" and "sun"; search_dates() now includes the word in its matches - Parse "the Nth of last/this/next month" as a day of that month - Parse Roman numeral years written in capitals, e.g. "5 March MDCCLXXVI"; a short one such as "MMX" is read as a year only next to a month name, e.g. "April MMX" - Parse dates with a bare UTC offset, such as "+03" - Parse AM/PM written before the time, e.g. "PM 2:26" or "下午 02:26:26" - Parse ISO 8601 fractional seconds written with a decimal comma, e.g. "12:30:45,123" - Parse English number words from thirteen to ninety-nine, e.g. "forty-five seconds ago" - Parse "fortnight" and "century" in English relative dates, and read "a decade from now" as the future instead of the past - Match month and weekday names in date_formats in the given languages, so formats with literal text work, e.g. "el %d de %B de %Y" for "el 15 de junio de 2020" with languages=["es"] - When a date does not parse, try the other meanings of ambiguous words, such as Spanish "mar" (martes or marzo), and read a token that is both a weekday and a month abbreviation as the weekday when that is what fits - In search_dates(), find dates written: - right after a label and a colon in Chinese or Japanese, e.g. "日期:2020年12月28日" - next to a relative date without a comma - joined by words that search skips, like "and" - inside parentheses, square brackets or straight quotes, e.g. 'He said "May 5, 2020"' or "(Friday)" Fixes: - Take the current date, used to fill in the missing parts of a date such as "12:30" or "Nov" and to apply PREFER_DATES_FROM, from the TIMEZONE setting (the local time zone by default) instead of UTC - Keep the %z offset when parsing with date_formats, and return a timezone-aware date for it unless RETURN_AS_TIMEZONE_AWARE is False - Read year-first dates, such as "2021-01-13", as YMD unless DATE_ORDER starts with the year - Swap the day and the month when they do not fit an explicit DATE_ORDER, whatever its value, e.g. "01/13/2021" with DMY - Read a lone number next to a four-digit year as the month under any DATE_ORDER - Apply PREFER_DAY_OF_MONTH before PREFER_DATES_FROM picks the year , and apply PREFER_DAY_OF_MONTH and PREFER_MONTH_OF_YEAR to relative dates such as "last year" - Apply an explicit DATE_ORDER to every date that search_dates() finds, not only to the first one - Stop dropping extra numbers when parsing dates: a string with more numbers than a date has, such as "5 10 Jan 2020" or "03/04/2021 5", now returns None instead of a date built from some of them - Stop reading two adjacent numbers of a Russian numeric date as one compound ordinal, so parse("20 03 2021", languages=["ru"]) returns 20 March 2021 instead of the 23rd of the current month - Return None for strings with only skipped words, such as "year" or "hour minute", instead of today, which also stops search_dates() from returning them (#1440, #1564) - Stop ignoring numbers without a unit in relative dates, so "03/06/2020 hour", "03/06/2020 day" or "01.02.2011 godz. 08:39" no longer parse as a number of hours or days ago - Stop reading "Nth day" as a number of days, e.g. "the 1st day of March 2015" - Parse "at 22h" and "à 22h" as a time of day, not as hours ago; a bare "à 22h" is still read as English hours ago unless languages=["fr"] is given or the text has other French words, such as "demain à 22h" - Keep the future direction of a relative expression that search_dates() finds next to punctuation, e.g. "in 2 hours, thanks" - Stop French "sept" being read as 7 when it means September, e.g. "1 sept 2024" with languages=["fr"] and "le 3 sept à 10h" with or without languages; "sept" now means 7 only before a duration unit or a clock time ("sept jours", "sept heures", "sept:30"), so a day written as a word, as in "sept mai 2020", no longer parses, and a bare "sept" is read as September - Parse dates with a numeric offset followed by a redundant timezone abbreviation, e.g. "-0500 (CDT)", or with an abbreviation glued to the time, e.g. "2019-09-28WIB19:17:34" - Recognize UTC offsets written with Unicode dash-like characters, such as "−05:00" - Keep complete week dates (year, week number and weekday) when parsing with date_formats, including %G ISO week years - Fix negative timestamps with subseconds - Keep AM when searching for dates after a time - Keep full stops between digits in search_dates() sentences - Fix search_dates() dropping text next to a standalone accent mark - Fix search_dates() raising IndexError for the zh-Hans, zh-Hant and yue locales, including when it detects one of them in the text, e.g. "聽日" - In search_dates(), include the closing bracket in the matched text, e.g. "8 May 2020 (16:05)", and stop including separators such as "/" or "|" - Split a relative date from a numeric date that follows it in search_dates(), e.g. "3 days later on 2010-05-10" - Stop growing internal caches with every distinct RELATIVE_BASE value - Fix parse() and DateDataParser returning None when region does not match the language of the text, e.g. parse("12 mars 2020", languages=["fr"], region="MX") or parse("5 de marzo de 2020", region="US") - Fix dateparser.utils.get_logger() raising AttributeError when logging.config had not been imported Improvements: - Speed up parse() by about 35%, skip locales that cannot change the outcome of a failed parse, and speed up import by compiling the timezone regexes lazily - Arabic: parse relative dates that use قبل for "ago", Egyptian and informal ة→ه spellings, numbered Levantine month names such as "كانون 2" in the ar-SY, ar-JO, ar-LB, ar-PS and ar-IQ locales only, e.g. locales=["ar-SY"] or region="SY" , Arabic dates typed with Persian yeh and kaf and Persian dates typed with Arabic ones, and Arabic month names and Arabic-Indic digits in Hijri dates - Chinese: add the supplementary data of zh to zh-Hans and zh-Hant , and parse 后天, 大后天 and 大前天 as relative days - Chinese and Japanese: parse dates with spaces around 年, 月 and 日 - French: parse "midi" as noon, e.g. "demain à midi" ("après-midi" and "avant midi" are still not read as noon); this also applies when no languages are given, so search_dates() can return "MIDI" in an English text as 12:00 - Indonesian: add old-style month abbreviations, such as "Djan" or "Peb" - Korean: parse absolute dates written with 년, 월, 일, 시 and 분 - Slovak: parse "pozajtra" - Swedish: parse ordinal day suffixes like "24:e" and "1:a" - Thai: parse relative dates with spaced ago/in words - Vietnamese: parse dates with zero-padded months - Add type hints - Document search_dates() in the API reference, add a performance section, explain how DEFAULT_LANGUAGES relates to the languages argument and how date_formats falls back to the other parsers - Show the whole README on PyPI Signed-off-by: Leon Anavi <leon.anavi@konsulko.com> --- ...{python3-dateparser_1.4.3.bb => python3-dateparser_1.5.0.bb} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename meta-python/recipes-devtools/python/{python3-dateparser_1.4.3.bb => python3-dateparser_1.5.0.bb} (86%)