wd60622 / latent-calendar

Analyze and model weekly calendar distributions using latent components
https://wd60622.github.io/latent-calendar/
BSD 3-Clause "New" or "Revised" License
4 stars 1 forks source link

Support for python 3.11 via dataclasses #16

Closed wd60622 closed 10 months ago

wd60622 commented 11 months ago

Error when using with python 3.11

Potential fix:

>>> import latent_calendar
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.11/site-packages/latent_calendar/__init__.py", line 1, in <module>
    import latent_calendar.extensions
  File "/usr/local/lib/python3.11/site-packages/latent_calendar/extensions.py", line 85, in <module>
    from latent_calendar.plot.core import (
  File "/usr/local/lib/python3.11/site-packages/latent_calendar/plot/__init__.py", line 14, in <module>
    from latent_calendar.plot.core import (
  File "/usr/local/lib/python3.11/site-packages/latent_calendar/plot/core/__init__.py", line 1, in <module>
    from latent_calendar.plot.core.calendar import (
  File "/usr/local/lib/python3.11/site-packages/latent_calendar/plot/core/calendar.py", line 14, in <module>
    from latent_calendar.plot.elements import (
  File "/usr/local/lib/python3.11/site-packages/latent_calendar/plot/elements.py", line 31, in <module>
    @dataclass
     ^^^^^^^^^
  File "/usr/local/lib/python3.11/dataclasses.py", line 1230, in dataclass
    return wrap(cls)
           ^^^^^^^^^
  File "/usr/local/lib/python3.11/dataclasses.py", line 1220, in wrap
    return _process_class(cls, init, repr, eq, order, unsafe_hash,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dataclasses.py", line 958, in _process_class
    cls_fields.append(_get_field(cls, name, type, kw_only))
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dataclasses.py", line 815, in _get_field
    raise ValueError(f'mutable default {type(f.default)} for field '
ValueError: mutable default <class 'latent_calendar.vocab.HourFormatter'> for field hour_formatter is not allowed: use default_factory