Compare commits

...

3 Commits

Author SHA1 Message Date
jan 24c77fd3c3 remove custom __copy__
no longer necessary now that we're not locking anything
6 months ago
jan 33529f5ed3 pattern shouldn't have an offset 6 months ago
jan 2516f06e40 add missing returns 6 months ago

@ -192,22 +192,27 @@ class Builder(PortList):
@wraps(Pattern.label)
def label(self, *args, **kwargs) -> Self:
self.pattern.label(*args, **kwargs)
return self
@wraps(Pattern.ref)
def ref(self, *args, **kwargs) -> Self:
self.pattern.ref(*args, **kwargs)
return self
@wraps(Pattern.polygon)
def polygon(self, *args, **kwargs) -> Self:
self.pattern.polygon(*args, **kwargs)
return self
@wraps(Pattern.rect)
def rect(self, *args, **kwargs) -> Self:
self.pattern.rect(*args, **kwargs)
return self
@wraps(Pattern.path)
def path(self, *args, **kwargs) -> Self:
self.pattern.path(*args, **kwargs)
return self
def plug(
self,

@ -87,7 +87,7 @@ class Pattern(PortList, AnnotatableImpl, Mirrorable):
__slots__ = (
'shapes', 'labels', 'refs', '_ports',
# inherited
'_offset', '_annotations',
'_annotations',
)
shapes: defaultdict[layer_t, list[Shape]]

@ -1,4 +1,4 @@
from typing import Callable, Self, TYPE_CHECKING
from typing import Callable, TYPE_CHECKING, Any
from abc import ABCMeta, abstractmethod
import numpy
@ -32,12 +32,12 @@ class Shape(PositionableImpl, Rotatable, Mirrorable, Copyable, Scalable,
"""
__slots__ = () # Children should use AutoSlots or set slots themselves
def __copy__(self) -> Self:
cls = self.__class__
new = cls.__new__(cls)
for name in self.__slots__: # type: str
object.__setattr__(new, name, getattr(self, name))
return new
#def __copy__(self) -> Self:
# cls = self.__class__
# new = cls.__new__(cls)
# for name in self.__slots__: # type: str
# object.__setattr__(new, name, getattr(self, name))
# return new
#
# Methods (abstract)

Loading…
Cancel
Save