On Tue, Jul 8, 2008 at 6:08 PM, Malcolm Tredinnick
<[EMAIL PROTECTED]> wrote:
>
> On Tue, 2008-07-08 at 09:55 -0500, Tom Tobin wrote:
> [...]
>>  I'm curious as to
>> whether others think we can still manage this cleanly post-1.0.  If we
>> can, great! — I'll just wait until then.  If not, is there any chance
>> we can squeeze this in somewhere?
>
> It depends on what will change. "from django import templates" seems
> like pretty public API. So if your change will mean that any external
> code doing that would have to change it's imports at all (i.e. if things
> that were previously available under the django.templates are no longer
> there), it must be done pre-1.0, otherwise it's not API stable. So work
> that out and then we're in a better position to decide.

I don't want to change the public APIs.  If "from django import
templates" works now, it should work after I'm done.  The chief BICs
would be for importing non-public pieces, and even in those cases I
think a period with a DepreciationWarning might be justified (which,
being non-public pieces, could be post-1.0).

What I'm trying to achieve here isn't so much for the public API  as
it is for private/internal sanity: when someone sits down and
refactors something (the original case being my hacking on
django.templates), they shouldn't be stuck in circular import hell
because the actual code lives in an __init__ module.  By all means, if
a public API is better off having a collapsed namespace inside of the
__init__, I don't want to stop that ("from django.templates.base
import *" inside the __init__ should work).

> It sounds like you *are* talking about a change that is that intrusive,
> so it needs to be done beforehand. Just how bad are the import lists
> going to be? Hopefully you can arrange so it's still basically a
> one-file import: "from django.templates import main_file" or something.
> Except you have to think of a better name.

Maybe I'm making a mountain out of a molehill.  If the public-facing
API is the only thing we're guaranteeing, maybe there's not much of a
problem 1.0-wise: I could still yank everything out into "base"
modules at a later point.  I'm trying to come up with scenarios where
these changes might break someone else's code once made; does anyone
have an example?

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to