Bug 2483717 - snakemake fails to build with Python 3.15: AttributeError: module 'dataclasses' has no attribute '_MISSING_TYPE'
Summary: snakemake fails to build with Python 3.15: AttributeError: module 'dataclasse...
Keywords:
Status: CLOSED DUPLICATE of bug 2483710
Alias: None
Product: Fedora
Classification: Fedora
Component: snakemake
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Ben Beasley
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks: PYTHON3.15
TreeView+ depends on / blocked
 
Reported: 2026-06-01 10:38 UTC by Miro Hrončok
Modified: 2026-06-01 11:17 UTC (History)
3 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2026-06-01 11:17:18 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Miro Hrončok 2026-06-01 10:38:40 UTC
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).

Comment 1 Ben Beasley 2026-06-01 11:17:18 UTC

*** This bug has been marked as a duplicate of bug 2483710 ***


Note You need to log in before you can comment on or make changes to this bug.