On Mon, Feb 15, 2010 at 8:25 PM, Robert Bradshaw
<rober...@math.washington.edu> wrote:
> On Feb 15, 2010, at 7:52 PM, Dima Pasechnik wrote:
>
>> How  does one deal with name clashes?
>> E.g. a package (say, cvxopt) has its own "matrix" type,
>> so importing all of it into Sage without appropriate name substitution
>> makes a mess.
>>
>> Are there any guidelines one should follow?

I like the one at the bottom here:
------------------
sage: import this
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
...
Namespaces are one honking great idea -- let's do more of those!
------------------

Because of namespaces:

sage: import cvxopt
sage: cvxopt.matrix

cvxopt.matrix can happily coexist with sage matrices, numpy matrices,
maxima matrices, etc.

William

>
> The global namespace is already huge, and once something goes in it's hugely
> backwards incompatible to take it out. Typically we wouldn't import any of
> cvxopt directly into the global namespace, let alone all of it. The user can
> do "import cvxopt" themselves, as well as any functionality that uses/wraps
> it.
>
> As well as naming conflicts, another consideration is the widely different
> conventions and styles other packages use, while we try to provide a
> consistent interface.
>
> - Robert
>
> --
> To post to this group, send an email to sage-devel@googlegroups.com
> To unsubscribe from this group, send an email to
> sage-devel+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/sage-devel
> URL: http://www.sagemath.org
>



-- 
William Stein
Associate Professor of Mathematics
University of Washington
http://wstein.org

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to