Skip to content

Commit

Permalink
ENH: implement shallow copy for unit object, make copies shallow by d…
Browse files Browse the repository at this point in the history
…efault
  • Loading branch information
neutrinoceros committed Aug 17, 2021
1 parent 3f24634 commit 9818fa1
Showing 1 changed file with 8 additions and 5 deletions.
13 changes: 8 additions & 5 deletions unyt/unit_object.py
Expand Up @@ -508,17 +508,20 @@ def __ne__(self, u):
# fall back to expensive sympy comparison
return self.dimensions != u.dimensions

def copy(self):
return copy.deepcopy(self)

def __deepcopy__(self, memodict=None):
def copy(self, deep=False):
expr = str(self.expr)
base_value = copy.deepcopy(self.base_value)
base_offset = copy.deepcopy(self.base_offset)
dimensions = copy.deepcopy(self.dimensions)
registry = copy.deepcopy(self.registry)
if deep:
registry = copy.deepcopy(self.registry)
else:
registry = copy.copy(self.registry)
return Unit(expr, base_value, base_offset, dimensions, registry)

def __deepcopy__(self, memodict=None):
return self.copy(deep=True)

#
# End unit operations
#
Expand Down

0 comments on commit 9818fa1

Please sign in to comment.