# Not packaged: python-hijri-converter (needed by calendars extra) %bcond_with calendars # Not packaged: python-fasttext (needed by fasttext extra) %bcond_with fasttext # Sphinx-generated HTML documentation is not suitable for packaging; see # https://bugzilla.redhat.com/show_bug.cgi?id=2006555 for discussion. # # We can generate PDF documentation as a substitute. # Skip PDF generation on EL9 due to missing /usr/bin/xindy dependency. %if 0%{?el9} || 0%{?centos} >= 9 %bcond_with doc_pdf %else %bcond_without doc_pdf %endif Name: python-dateparser Version: 1.1.7 Release: 1%{?dist} Summary: Python parser for human readable dates License: BSD-3-Clause URL: https://github.com/scrapinghub/dateparser Source0: %{url}/archive/v%{version}/dateparser-%{version}.tar.gz # Man page hand-written for Fedora in groff_man(7) format based on --help Source1: dateparser-download.1 BuildArch: noarch BuildRequires: python3-devel %global common_description %{expand: Key Features • Support for almost every existing date format: absolute dates, relative dates ("two weeks ago" or "tomorrow"), timestamps, etc. • Support for more than 200 language locales. • Language autodetection • Customizable behavior through settings. • Support for non-Gregorian calendar systems. • Support for dates with timezones abbreviations or UTC offsets ("August 14, 2015 EST", "21 July 2013 10:15 pm +0500"…) • Search dates in longer texts.} %description %{common_description} %package -n python3-dateparser Summary: %{summary} %py_provides python3-dateparser-cli %py_provides python3-dateparser-data %description -n python3-dateparser %{common_description} %pyproject_extras_subpkg -n python3-dateparser %{?with_calendars:calendars} %{?with_fasttext:fasttext} langdetect %package -n python3-dateparser-scripts Summary: %{summary} Requires: python3-dateparser = %{version}-%{release} # From dateparser_scripts/requirements.txt; not included in the # install_requires. It is questionable whether these scripts need to be # installed at all. See: # https://github.com/scrapinghub/dateparser/issues/705#issuecomment-1464503426. Requires: %{py3_dist gitpython} Requires: %{py3_dist parsel} Requires: %{py3_dist requests} Requires: %{py3_dist ruamel.yaml} %description -n python3-dateparser-scripts %{common_description} This package contains scripts used in developing the dateparser package. %package doc Summary: Documentation for %{name} %if %{with doc_pdf} BuildRequires: make BuildRequires: python3dist(sphinx) BuildRequires: python3-sphinx-latex BuildRequires: latexmk BuildRequires: /usr/bin/xindy BuildRequires: tex-xetex-bin # HTML theme is used as an extension even when building PDFs; we could perhaps # patch it out of “extensions” in docs/conf.py, but it hardly seems worth the # effort. BuildRequires: python3dist(sphinx-rtd-theme) %endif %description doc %{summary}. %prep %autosetup -p1 -n dateparser-%{version} %if %{without calendars} sed -r -i 's/(extras = .*)calendars,?/\1/' tox.ini %endif %if %{without fasttext} sed -r -i 's/(extras = .*)fasttext,?/\1/' tox.ini %endif # https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_linters sed -r -i 's/^(flake8|pytest-cov)\b/# &/' tests/requirements.txt sed -r -i 's/--cov[^[:blank:]]+//g' tox.ini cat >> docs/conf.py <<'EOF' # We cannot resolve remote Intersphinx mappings in an offline build. intersphinx_mapping.clear() # Since pdflatex cannot handle Unicode inputs in general: latex_engine = 'xelatex' EOF %generate_buildrequires %if !0%{?fc37} && !0%{?fc36} %global toxenv -e latest %endif %pyproject_buildrequires -t %{?toxenv} %{?with_calendars:-x calendar }%{?with_fasttext:-x fasttext }-x langdetect %build %pyproject_wheel %if %{with doc_pdf} PYTHONPATH="${PWD}" %make_build -C docs latex SPHINXOPTS='%{?_smp_mflags}' %make_build -C docs/_build/latex LATEXMKOPTS='-quiet' %endif %install %pyproject_install %pyproject_save_files dateparser dateparser_cli dateparser_data dateparser_scripts install -t '%{buildroot}%{_mandir}/man1' -D -p -m 0644 '%{SOURCE1}' %check %if %{without calendars} # Uses hijri_convert # --ignore does not seem to prevent doctest collection in tests/ rm -vf tests/test_hijri.py ignore="${ignore-} --ignore=tests/test_hijri.py" ignore="${ignore-} --ignore=dateparser/calendars/hijri.py" ignore="${ignore-} --ignore=dateparser/calendars/hijri_parser.py" # Uses convertdate # --ignore does not seem to prevent doctest collection in tests/ rm -vf tests/test_jalali.py ignore="${ignore-} --ignore=tests/test_jalali.py" ignore="${ignore-} --ignore=dateparser/calendars/jalali.py" ignore="${ignore-} --ignore=dateparser/calendars/jalali_parser.py" %endif %if %{without fasttext} # Uses fasttext # --ignore does not seem to prevent doctest collection in tests/ rm -vf tests/test_language_detect.py ignore="${ignore-} --ignore=dateparser/custom_language_detection/fasttext.py" ignore="${ignore-} --ignore=tests/test_language_detect.py" %endif # From the docstring containing this doctest: # In the example below, since no day information is present, the day is # assumed to be current day ``16`` from *current date* (which is June 16, # 2015, at the moment of writing this). Hence, the level of precision is # ``month``: # Obviously, yet bizarrely, this only works when it is *executed* on the 16th # of some month. k="${k-}${k+ and }not (DateDataParser and get_date_data)" # The doctest parser does not like the line continuation here: # File "", line 1 # search_dates('The first artificial Earth satellite was launched on 4 October 1957.', # ^ # SyntaxError: '(' was never closed k="${k-}${k+ and }not search_dates" # TODO: What is going wrong? # E AssertionError: Lists differ: [('20[28 chars] 3, 11, 0, 0)), # ('October', datetime.datetime([71 chars] 0))] != [('20[28 chars] 3, 10, # 0, 0)), ('October', datetime.datetime([71 chars] 0))] k="${k-}${k+ and }not (TestTranslateSearch and test_relative_base_setting_1_en)" # E AssertionError: Lists differ: [('20[28 chars] 3, 11, 0, 0)), # ('July 13th', datetime.datetim[70 chars] 0))] != [('20[28 chars] 3, 10, # 0, 0)), ('July 13th', datetime.datetim[70 chars] 0))] k="${k-}${k+ and }not (TestTranslateSearch and test_splitting_of_not_parsed_1_en)" # E AssertionError: Lists differ: [('20[28 chars] 3, 11, 0, 0)), # ('July 12th', datetime.datetim[123 chars] 0))] != [('20[28 chars] 3, # 10, 0, 0)), ('July 12th', datetime.datetim[123 chars] 0))] k="${k-}${k+ and }not (TestTranslateSearch and test_splitting_of_not_parsed_5_en)" # E AssertionError: Lists differ: [('19[28 chars] 3, 11, 0, 0)), ('1939', # datetime.datetime(1939, 3, 11, 0, 0))] != [('19[28 chars] 3, 10, 0, # 0)), ('1939', datetime.datetime(1939, 3, 10, 0, 0))] k="${k-}${k+ and }not (TestTranslateSearch and test_splitting_of_not_parsed_6_en)" %tox -- -- ${ignore-} -k "${k-}" -v %files -n python3-dateparser -f %{pyproject_files} %exclude %{python3_sitelib}/dateparser_scripts/ %{_bindir}/dateparser-download %{_mandir}/man1/dateparser-download.1* %files -n python3-dateparser-scripts %{python3_sitelib}/dateparser_scripts/ %files doc %license LICENSE %doc AUTHORS.rst %doc CONTRIBUTING.rst %doc HISTORY.rst %doc README.rst %if %{with doc_pdf} %doc docs/_build/latex/dateparser.pdf %endif %changelog * Fri Mar 10 2023 Benjamin A. Beasley - 1.1.7-1 - Update to 1.1.7 (close RHBZ#2115204) - Port to pyproject-rpm-macros - Add extras metapackages - Build Sphinx documentation as PDF rather than HTML to avoid issues with bundled and precompiled JavaScript etc. - Split out a python3-dateparser-scripts subpackage * Fri Mar 03 2023 Gwyn Ciesla - 0.7.6-10 - migrated to SPDX license * Fri Jan 20 2023 Fedora Release Engineering - 0.7.6-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild * Fri Jul 22 2022 Fedora Release Engineering - 0.7.6-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild * Mon Jun 20 2022 Miro Hrončok - 0.7.6-7 - Run the tests during build - Drop unused requirement of deprecated nose - Fix incompatibility with regex 2022.3.15+ - Fixes: rhbz#2080221 * Mon Jun 13 2022 Python Maint - 0.7.6-6 - Rebuilt for Python 3.11 * Fri Jan 21 2022 Fedora Release Engineering - 0.7.6-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild * Fri Jul 23 2021 Fedora Release Engineering - 0.7.6-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild * Thu Jun 03 2021 Python Maint - 0.7.6-3 - Rebuilt for Python 3.10 * Wed Jan 27 2021 Fedora Release Engineering - 0.7.6-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild * Mon Oct 26 2020 Gwyn Ciesla - 0.7.6-1 - 0.7.6, disabled tests due to missing packages. * Sat Aug 01 2020 Fedora Release Engineering - 0.7.4-5 - Second attempt - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild * Wed Jul 29 2020 Fedora Release Engineering - 0.7.4-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild * Tue Jun 23 2020 Gwyn Ciesla - 0.7.4-3 - BR python3-setuptools * Sat May 23 2020 Miro Hrončok - 0.7.4-2 - Rebuilt for Python 3.9 * Tue Mar 10 2020 Fabian Affolter - 0.7.4-1 - Fix license tag (rhbz#1748956) * Tue Nov 19 2019 Fabian Affolter - 0.7.2-4 - Fix license tag (rhbz#1748956) * Mon Nov 18 2019 Fabian Affolter - 0.7.2-3 - Disable tests * Mon Nov 18 2019 Fabian Affolter - 0.7.2-2 - Fix BRs * Thu Oct 17 2019 Fabian Affolter - 0.7.2-1 - Update to latest upstream release 0.7.2 * Tue Sep 03 2019 Fabian Affolter - 0.7.1-1 - Initial package for Fedora