Skip to content

Commit

Permalink
Added default factory to numpy color creation (#106)
Browse files Browse the repository at this point in the history
Hey @quantumjot ,

I was getting this error:

```python3
  File "C:\Users\jordao\Mamba\envs\tracking\Lib\site-packages\napari_arboretum\_hookimpls.py", line 1, in <module>
    from napari_arboretum.plugin import Arboretum
  File "C:\Users\jordao\Mamba\envs\tracking\Lib\site-packages\napari_arboretum\plugin.py", line 10, in <module>
    from napari_arboretum.io.svg import export_svg
  File "C:\Users\jordao\Mamba\envs\tracking\Lib\site-packages\napari_arboretum\io\svg.py", line 5, in <module>
    from napari_arboretum.tree import Annotation, Edge
  File "C:\Users\jordao\Mamba\envs\tracking\Lib\site-packages\napari_arboretum\tree.py", line 27, in <module>
    @DataClass
     ^^^^^^^^^
  File "C:\Users\jordao\Mamba\envs\tracking\Lib\dataclasses.py", line 1230, in dataclass
    return wrap(cls)
           ^^^^^^^^^
  File "C:\Users\jordao\Mamba\envs\tracking\Lib\dataclasses.py", line 1220, in wrap
    return _process_class(cls, init, repr, eq, order, unsafe_hash,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\jordao\Mamba\envs\tracking\Lib\dataclasses.py", line 958, in _process_class
    cls_fields.append(_get_field(cls, name, type, kw_only))
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\jordao\Mamba\envs\tracking\Lib\dataclasses.py", line 815, in _get_field
    raise ValueError(f'mutable default {type(f.default)} for field '
ValueError: mutable default <class 'numpy.ndarray'> for field color is not allowed: use default_factory
```

This PR fixes this issue.

---------

Co-authored-by: Jordao Bragantini <[email protected]>
  • Loading branch information
JoOkuma and Jordao Bragantini committed Sep 24, 2023
1 parent 9b19b26 commit cfacb70
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions src/napari_arboretum/tree.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

import itertools
from collections import Counter
from dataclasses import dataclass
from dataclasses import dataclass, field
from typing import Any

import numpy as np
Expand All @@ -29,14 +29,14 @@ class Annotation:
x: float
y: float
label: str
color: ColorType = WHITE
color: ColorType = field(default_factory=lambda: WHITE)


@dataclass
class Edge:
x: tuple[float, float]
y: tuple[float, float]
color: ColorType = WHITE
color: ColorType = field(default_factory=lambda: WHITE)
track_id: int | None = None
node: TreeNode | None = None

Expand Down

0 comments on commit cfacb70

Please sign in to comment.