Bug 2094005

Summary: python-arrow: FTBFS in Fedora Rawhide
Product: [Fedora] Fedora Reporter: Tomáš Hrnčiar <thrnciar>
Component: python-arrowAssignee: Fedora Infrastructure SIG <infra-sig>
Status: CLOSED WORKSFORME QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: infra-sig, mhroncok, pingou, rbean
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://koschei.fedoraproject.org/package/python-arrow
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-06-20 22:55:06 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2080221    
Bug Blocks: 2016048, 2045102, 2045109, 2047340    

Description Tomáš Hrnčiar 2022-06-06 14:25:21 UTC
Description of problem:
Package python-arrow fails to build from source in Fedora Rawhide.

Version-Release number of selected component (if applicable):
1.2.1-2.fc36

Steps to Reproduce:
koji build --scratch f37 python-arrow-1.2.1-2.fc36.src.rpm

Additional info:
This package is tracked by Koschei. See:
https://koschei.fedoraproject.org/package/python-arrow

Comment 1 Miro Hrončok 2022-06-20 10:16:53 UTC
*** Bug 2098820 has been marked as a duplicate of this bug. ***

Comment 2 Miro Hrončok 2022-06-20 21:57:40 UTC
___________________ TestGet.test_one_arg_dateparser_datetime ___________________
self = <tests.test_factory.TestGet object at 0x3ff87e06ad0>
    def test_one_arg_dateparser_datetime(self):
        dateparser = pytest.importorskip("dateparser")
        expected = datetime(1990, 1, 1).replace(tzinfo=tz.tzutc())
        # dateparser outputs: datetime.datetime(1990, 1, 1, 0, 0, tzinfo=<StaticTzInfo 'UTC\+00:00'>)
>       parsed_date = dateparser.parse("1990-01-01T00:00:00+00:00")
tests/test_factory.py:130: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.11/site-packages/dateparser/conf.py:85: in wrapper
    return f(*args, **kwargs)
/usr/lib/python3.11/site-packages/dateparser/__init__.py:53: in parse
    data = parser.get_date_data(date_string, date_formats)
/usr/lib/python3.11/site-packages/dateparser/date.py:417: in get_date_data
    parsed_date = _DateLocaleParser.parse(
/usr/lib/python3.11/site-packages/dateparser/date.py:194: in parse
    return instance._parse()
/usr/lib/python3.11/site-packages/dateparser/date.py:198: in _parse
    date_obj = self._parsers[parser_name]()
/usr/lib/python3.11/site-packages/dateparser/date.py:212: in _try_freshness_parser
    return freshness_date_parser.get_date_data(self._get_translated_date(), self._settings)
/usr/lib/python3.11/site-packages/dateparser/date.py:261: in _get_translated_date
    self._translated_date = self.locale.translate(
/usr/lib/python3.11/site-packages/dateparser/languages/locale.py:135: in translate
    relative_translations = self._get_relative_translations(settings=settings)
/usr/lib/python3.11/site-packages/dateparser/languages/locale.py:164: in _get_relative_translations
    self._generate_relative_translations(normalize=True))
/usr/lib/python3.11/site-packages/dateparser/languages/locale.py:178: in _generate_relative_translations
    pattern = DIGIT_GROUP_PATTERN.sub(r'?P<n>\d+', pattern)
/usr/lib64/python3.11/site-packages/regex/regex.py:702: in _compile_replacement_helper
    is_group, items = _compile_replacement(source, pattern, is_unicode)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
source = <regex._regex_core.Source object at 0x3ff859ecc10>
pattern = regex.Regex('\\\\d\\+', flags=regex.V0), is_unicode = True
    def _compile_replacement(source, pattern, is_unicode):
        "Compiles a replacement template escape sequence."
        ch = source.get()
        if ch in ALPHA:
            # An alphabetic escape sequence.
            value = CHARACTER_ESCAPES.get(ch)
            if value:
                return False, [ord(value)]
    
            if ch in HEX_ESCAPES and (ch == "x" or is_unicode):
                # A hexadecimal escape sequence.
                return False, [parse_repl_hex_escape(source, HEX_ESCAPES[ch], ch)]
    
            if ch == "g":
                # A group preference.
                return True, [compile_repl_group(source, pattern)]
    
            if ch == "N" and is_unicode:
                # A named character.
                value = parse_repl_named_char(source)
                if value is not None:
                    return False, [value]
    
>           raise error("bad escape \\%s" % ch, source.string, source.pos)
E           regex._regex_core.error: bad escape \d at position 7
/usr/lib64/python3.11/site-packages/regex/_regex_core.py:1737: error


The interwebs say this is caused by updated regex package. There is a pending update (bz2047340) but that seems to suffer from the same problem.

Comment 3 Miro Hrončok 2022-06-20 22:05:05 UTC
Most likely boils down to https://github.com/scrapinghub/dateparser/issues/1052

Comment 4 Miro Hrončok 2022-06-20 22:55:06 UTC
Hello,

Please note that this comment was generated automatically. If you feel that this output has mistakes, please contact me via email (mhroncok).

All subpackages of a package against which this bug was filled are now installable or removed from Fedora 37.

Thanks for taking care of it!