<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Thanks Pierre, works like a charm. One question though, how is defining
a class attribute in __new__ any more thread-safe?<br>
<br>
Bryce<br>
<br>
Pierre GM wrote:
<blockquote cite="mid200703272024.15720.pgmdevlist@gmail.com"
 type="cite">
  <pre wrap="">On Tuesday 27 March 2007 20:08:04 Bryce Hendrix wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap="">We have a class which is a subclass of ndarray which defines
__array_finalize__ to add an attribute. The class looks something like
this:
    </pre>
  </blockquote>
  <pre wrap=""><!---->
Ahah, we ran into this problem a few months ago:
You should not initialize your "units" attribute in the __new__ method, as 
it's not thread-safe first, but more important as you will lose it if you try 
to get a view of your new object (because in that case, __new__ is not 
called).
Instead, try something like that:

def __array_finalize__(self, obj):
        self.units = getattr(obj, 'units', yourdefaultunit)

where your defaultunit is the value you would use in __new__. True, 
yourdefaultunit may change, and even be lost if there's a break between 
__new__ and __array_finalize__, but that should work. Lemme know.

Note that things are always tricky w/ concatenate: when you concatenate your 
UnitArray, you should have a UnitArray, OK. But if you mix UnitArray and 
ndarray ? What should take precedence ?
_______________________________________________
Numpy-discussion mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Numpy-discussion@scipy.org">Numpy-discussion@scipy.org</a>
<a class="moz-txt-link-freetext" href="http://projects.scipy.org/mailman/listinfo/numpy-discussion">http://projects.scipy.org/mailman/listinfo/numpy-discussion</a>

  </pre>
</blockquote>
<br>
</body>
</html>