New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Namespaces #1939
Namespaces #1939
Conversation
@@ -3,7 +3,7 @@ | |||
__docformat__ = "restructuredtext en" | |||
|
|||
#------------------------------------------------------------------------------- | |||
# Copyright (C) 2008-2011 The IPython Development Team | |||
# Copyright (C) 2012 The IPython Development Team |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
2012 -> 2008 ? If I remember correctly we said original year no ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes, of course. Sorry I got it backwards. Thanks!
Glad to see a start on this. My vote would be to keep this for 0.14, as even though our api right now has precisely the problems you point out here, I think we can live with the awkwardness for a bit longer so we really nail this. In my mind, 0.14 will be the rampup to 1.0 status, and the perfect time to plan this. I'd like to ask @rkern for his thoughts on how this has worked out for Enthought. I know you guys have spent a fair bit of time on this question, and gone back and forth a bit. Thoughts? |
BTW, from the user's perspective, I think I'd favor just some top-level packages, like |
Pretty much exactly my thoughts so far. |
OK, targeted for 0.14 for now, while we give others a chance to pitch in with ideas. This one will take some calm thought... |
We never bothered much with categorized APIs, as we were mostly just trying to migrate away from having everything exposed in the I think the categorized API modules directly under Oh, and IPython developers should make a rule in their head to never use those API modules inside the IPython codebase. |
I am +1 on all of @rkern suggestions, especially his last comment about IPython devs not ever using the API modules inside the IPython codebase. |
Although upon thinking more, I think our subpackages do provide a nice place for public API level things. In fact we are already using
Why not:
If we start to put top-level API modules in place, what do we do about subpackages that already have that name and are functioning in that role? |
|
Yes, in some ways |
I agree, most of these are easily resolved by working with the There are two issues I think we have to resolve which require a little bit more thought:
|
On Sat, Jun 16, 2012 at 5:02 PM, Min RK
Good point. So maybe in this situation we do want an
Would
Brian E. Granger |
continuing conversation from #1537 here. It seems like we want this in 0.13, so if there's anything more that we definitely want to do right now before merging, or anything here that should be removed, etc. |
I've also drifted to +1 for this going in, just to record things here. It may be partial, but esp. the fixes to the display public names I think are very important, as that's something very widely used by the public. |
I'm tentatively moving it to 0.13 so the filtered issues list shows us a complete picture of 0.13. |
If nobody pipes in with negative feedback, let's merge this then. Will give it the rest of the day. I'm thinking on trying to cut the release before the weekend. |
It looks OK to me. The main thing I'd check with this kind of restructuring is that we're not forcing the import of modules that we wouldn't normally load, which could slow down startup. It doesn't look like the changes here do that. |
Indeed, that's a good thing to keep in mind, @takluyver. Thanks for the review, merging then. |
Start cleaning up our namespaces to expose a more user-friendly layout of our class hierarchy. This includes now a top-level `IPython.display` module with all display classes and functions, as well as easier-to-find objects in `IPython.config`.
Start cleaning up our namespaces to expose a more user-friendly layout of our class hierarchy. This includes now a top-level `IPython.display` module with all display classes and functions, as well as easier-to-find objects in `IPython.config`.
This is the first step towards #1537
Further (more important) things I haven't worked out yet:
Possible options:
Any suggestions? This seems a pretty general issue we have, where we haven't really thought about public APIs at all, aside from magics and methods on the InteractiveShell object. Users need to be much too familiar with our code layout to use it.