Skip to content

Dataclass error while importing Fairseq in Python 3.11 #5012

@usaraj

Description

@usaraj

🐛 Bug

FaValueError: mutable default <class 'fairseq.dataclass.configs.CommonConfig'> for field common is not allowed: use default_factory

To Reproduce

Steps to reproduce the behavior (always include the command you ran):
1, pip install fairseq==0.12.2
2. from fairseq import *

Trace:

Traceback (most recent call last):
File "", line 1, in
File "/home/a1bharat/fairseq/fairseq/init.py", line 20, in
from fairseq.distributed import utils as distributed_utils
File "/home/a1bharat/fairseq/fairseq/distributed/init.py", line 7, in
from .legacy_distributed_data_parallel import LegacyDistributedDataParallel
File "/home/a1bharat/fairseq/fairseq/distributed/legacy_distributed_data_parallel.py", line 23, in
from fairseq.distributed import utils
File "/home/a1bharat/fairseq/fairseq/distributed/utils.py", line 22, in
from fairseq.dataclass.configs import DistributedTrainingConfig, FairseqConfig
File "/home/a1bharat/fairseq/fairseq/dataclass/init.py", line 6, in
from .configs import FairseqDataclass
File "/home/a1bharat/fairseq/fairseq/dataclass/configs.py", line 906, in
@DataClass
^^^^^^^^^
File "/usr/lib/python3.11/dataclasses.py", line 1220, in dataclass
return wrap(cls)
^^^^^^^^^
File "/usr/lib/python3.11/dataclasses.py", line 1210, in wrap
return _process_class(cls, init, repr, eq, order, unsafe_hash,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/dataclasses.py", line 958, in _process_class
cls_fields.append(_get_field(cls, name, type, kw_only))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/dataclasses.py", line 815, in _get_field
raise ValueError(f'mutable default {type(f.default)} for field '
ValueError: mutable default <class 'fairseq.dataclass.configs.CommonConfig'> for field common is not allowed: use default_factory

Code sample

Environment

  • fairseq Version ( main):
  • PyTorch Version (e.g., 1.0): 1.13.1
  • OS (e.g., Linux): Ubuntu
  • How you installed fairseq (pip, source): pip install successful
  • Build command you used (if compiling from source): git clone followed by pip install ./
  • Python version: 3.11
  • CUDA/cuDNN version: 11.6
  • GPU models and configuration: NVIDIA
  • Any other relevant information:

Additional context

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions