Bug 2483717
| Summary: | snakemake fails to build with Python 3.15: AttributeError: module 'dataclasses' has no attribute '_MISSING_TYPE' | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Miro Hrončok <mhroncok> |
| Component: | snakemake | Assignee: | Ben Beasley <code> |
| Status: | CLOSED DUPLICATE | QA Contact: | |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | rawhide | CC: | code, ksurma, neuro-sig |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | --- | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2026-06-01 11:17:18 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: | |||
| Bug Blocks: | 2412434 | ||
*** This bug has been marked as a duplicate of bug 2483710 *** |
Building snakemake --with bootstrap, with Python 3.15, with the following modification: +PATH="${PATH-}:%{buildroot}%{_bindir}" \ + PYTHONPATH='%{buildroot}%{python3_sitelib}' \ + snakemake --help PATH="${PATH-}:%{buildroot}%{_bindir}" \ PYTHONPATH='%{buildroot}%{python3_sitelib}' \ help2man --no-info --name='%{summary}' snakemake \ Fails with: File "/usr/lib64/python3.15/argparse.py", line 2880, in print_help help_text = self.format_help(formatter=formatter) TypeError: ArgumentParser.format_help() got an unexpected keyword argument 'formatter' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/builddir/build/BUILD/snakemake-9.21.0-build/BUILDROOT/usr/lib/python3.15/site-packages/snakemake/cli.py", line 2391, in main parser, args = parse_args(argv) ~~~~~~~~~~^^^^^^ File "/builddir/build/BUILD/snakemake-9.21.0-build/BUILDROOT/usr/lib/python3.15/site-packages/snakemake/cli.py", line 1904, in parse_args args = parser.parse_args(argv) File "/usr/lib/python3.15/site-packages/configargparse.py", line 1048, in parse_args args, argv = self.parse_known_args( ~~~~~~~~~~~~~~~~~~~~~^ args=args, ^^^^^^^^^^ ...<3 lines>... ignore_help_args=False, ^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "/usr/lib/python3.15/site-packages/configargparse.py", line 1266, in parse_known_args namespace, unknown_args = argparse.ArgumentParser.parse_known_args( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ self, args=args, namespace=namespace ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "/usr/lib64/python3.15/argparse.py", line 2128, in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib64/python3.15/argparse.py", line 2157, in _parse_known_args2 namespace, args = self._parse_known_args(args, namespace, intermixed) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib64/python3.15/argparse.py", line 2408, in _parse_known_args start_index = consume_optional(start_index) File "/usr/lib64/python3.15/argparse.py", line 2332, in consume_optional take_action(action, args, option_string) ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib64/python3.15/argparse.py", line 2233, in take_action action(self, namespace, argument_values, option_string) ~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib64/python3.15/argparse.py", line 1281, in __call__ parser.print_help() ~~~~~~~~~~~~~~~~~^^ File "/usr/lib64/python3.15/argparse.py", line 2884, in print_help help_text = self.format_help() File "/usr/lib/python3.15/site-packages/configargparse.py", line 1696, in format_help return argparse.ArgumentParser.format_help(self) + ( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^ File "/usr/lib64/python3.15/argparse.py", line 2841, in format_help return formatter.format_help() ~~~~~~~~~~~~~~~~~~~~~^^ File "/usr/lib64/python3.15/argparse.py", line 340, in format_help help = self._root_section.format_help() File "/usr/lib64/python3.15/argparse.py", line 265, in format_help item_help = join([func(*args) for func, args in self.items]) ~~~~^^^^^^^ File "/usr/lib64/python3.15/argparse.py", line 265, in format_help item_help = join([func(*args) for func, args in self.items]) ~~~~^^^^^^^ File "/usr/lib64/python3.15/argparse.py", line 614, in _format_action help_text = self._expand_help(action) File "/usr/lib64/python3.15/argparse.py", line 714, in _expand_help help_string = self._get_help_string(action) File "/builddir/build/BUILD/snakemake-9.21.0-build/BUILDROOT/usr/lib/python3.15/site-packages/snakemake/common/argparse.py", line 76, in _get_help_string and not isinstance(action.default, dataclasses._MISSING_TYPE) ^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: module 'dataclasses' has no attribute '_MISSING_TYPE' I am now also attempting to build it this way in https://copr.fedorainfracloud.org/coprs/g/python/python3.15/package/snakemake/ and https://copr.fedorainfracloud.org/coprs/g/python/python3.15-b1/package/snakemake/ Note that without the modification, the failure is cryptic: + help2man --no-info '--name=Metapackage for snakemake: reports extras' snakemake help2man: can't get `--help' info from snakemake Try `--no-discard-stderr' if option outputs to stderr Also note that the log is full of: Error in import line from /usr/lib/python3.15/site-packages/google_cloud_core-2.3.3-py3.15-nspkg.pth: import sys, types, os;p = os.path.join(sys._getframe(1).f_locals['sitedir'], *('google',));importlib = __import__('importlib.util');__import__('importlib.machinery');m = sys.modules.setdefault('google', importlib.util.module_from_spec(importlib.machinery.PathFinder.find_spec('google', [os.path.dirname(p)])));m = m or sys.modules.setdefault('google', types.ModuleType('google'));mp = (m or []) and m.__dict__.setdefault('__path__',[]);(p not in mp) and mp.append(p) Traceback (most recent call last): File "<frozen site>", line 319, in _exec_imports File "<string>", line 1, in <module> KeyError: "local variable ''sitedir'' is not defined" This is not relevant to this failure, and such errors are safe to ignore (for now).