Merge lp:~ipython-dev/ipython/module-reorg into lp:ipython/0.11

Proposed by Brian Granger
Status: Merged
Merged at revision: not available
Proposed branch: lp:~ipython-dev/ipython/module-reorg
Merge into: lp:ipython/0.11
Diff against target: None lines
To merge this branch: bzr merge lp:~ipython-dev/ipython/module-reorg
Reviewer Review Type Date Requested Status
Brian Granger Approve
Fernando Perez Approve
Review via email: mp+5184@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Brian Granger (ellisonbg) wrote :

This branch has a IPEP (IPython Enhancement Proposal) that describes how the top-level modules in IPython will be reorganized into logical sub-packages. The actually changes have not been made, but we need to discuss these changes before work begins.

Revision history for this message
Jörgen Stenarson (jorgen-stenarson) wrote :

Looks good overall but I have the following comments

line 5 in reorg.txt is over 80 characters long.

I feel that the color handling modules are not really part of the core functionality they are nice but not essential so perhaps ColorANSI.py, PyColorize.py, excolors.py would be better placed in lib. I do not have strong feelings on this.

shadowns.py looks like a misspelling of shadows perhaps shadow_ns would be better.

The functions in platutils_win32.py and winconsole.py have a similar scope and could be put together.

/Jörgen

Revision history for this message
Brian Granger (ellisonbg) wrote :

Thanks for looking this over.

> line 5 in reorg.txt is over 80 characters long.

Good catch.

> I feel that the color handling modules are not really part of the core functionality they are nice but not essential so perhaps ColorANSI.py, PyColorize.py, excolors.py would be better placed in lib. I do not have strong feelings on this.

Yes, these could probably go both ways, or even in IPython.python/tools/utils.

> shadowns.py looks like a misspelling of shadows perhaps shadow_ns would be better.

Yes, but I really want to get away from the module names with
underscores if we can.

> The functions in platutils_win32.py and winconsole.py have a similar scope and could be put together.

Yes, except the idea with the platutils_*.py files is that you can
just import platutils and there should be a version for all platforms
that gets picked up from the appropriate underlying platutils_*.py
module. I don't think there is a linux/mac version of winconsole.py,
so I don't think this makes sense. But, I will definitely look at
this.

Brian

> /Jörgen
>
> --
> https://code.launchpad.net/~ellisonbg/ipython/module-reorg/+merge/5184
> You are subscribed to branch lp:ipython.
>

--
Brian E. Granger, Ph.D.
Assistant Professor of Physics
Cal Poly State University, San Luis Obispo
<email address hidden>
<email address hidden>

Revision history for this message
Brian Granger (ellisonbg) wrote :

> line 5 in reorg.txt is over 80 characters long.

Fixed now.

> I feel that the color handling modules are not really part of the core
> functionality they are nice but not essential so perhaps ColorANSI.py,
> PyColorize.py, excolors.py would be better placed in lib. I do not have strong
> feelings on this.

I added notes to indicate we should look at these carefully when the reorg happens to see where
they best fit.

> shadowns.py looks like a misspelling of shadows perhaps shadow_ns would be
> better.

Leaving as shadowns.py for pep 8's sake.

> The functions in platutils_win32.py and winconsole.py have a similar scope and
> could be put together.

Leaving for now.

> /Jörgen

Revision history for this message
Fernando Perez (fdo.perez) wrote :

> > line 5 in reorg.txt is over 80 characters long.
>
> Fixed now.

BTW, I've noticed this happens some times in your reST edits. It may be an issue with your editor config for text files. I have my editor line wrap at 79 for all files to remain consistent, because these extra-long lines cause all kinds of problems when diffing (since diff is line-oriented, it sees gigantic diffs for small changes inside the paragraphs).

I'm sorry that I haven't commented yet. I will, but likely not in another couple of days.

The reference counting and Twisted bugs turned out to be total nightmares and I've spent almost the last two days entirely on them. Considering that I have 3 grant deadlines coming up at work, it's getting a bit painful...

But thanks a lot for starting this discussion. I do have some ideas, and as soon as I can reach some solution on the other things I'll pitch back in.

Revision history for this message
Brian Granger (ellisonbg) wrote :

> The reference counting and Twisted bugs turned out to be total nightmares and I've spent almost the last two days entirely on them.  Considering that I have 3 grant deadlines coming up at work, it's getting a bit painful..

Wow, thanks for working on that. Do you want to talk about anything
related to the Twisted bug? I can imagine it could be very nasty.

> But thanks a lot for starting this discussion.  I do have some ideas, and as soon as I can reach some solution on the other things I'll pitch back in.

No problem, I have lots of other things to work on for now. Also, if
you don't get to it, it is not a big deal - we can handle the rest of
the feedback in code review :-)

Brian

> --
> https://code.launchpad.net/~ellisonbg/ipython/module-reorg/+merge/5184
> You are subscribed to branch lp:ipython.
>

--
Brian E. Granger, Ph.D.
Assistant Professor of Physics
Cal Poly State University, San Luis Obispo
<email address hidden>
<email address hidden>

Revision history for this message
Fernando Perez (fdo.perez) wrote :

Since we're having this discussion (for now) mostly on-list, perhaps we should just withdraw this one from 'merge request'. That way the active reviews page will show us the status of what's really on the table for 0.10.

Cheers,

f

Revision history for this message
Fernando Perez (fdo.perez) wrote :

Resubmit after 0.10, discussion is now on-list to get input from non-launchpad committers.

review: Needs Resubmitting
Revision history for this message
Brian Granger (ellisonbg) wrote :

I don't have a problem with that, but I have a question. On various
places on launchpad, I see references to "releases" and "series" and
"milestones." But I can't find anyway of manipulating these things to
create (for example) tickets/branches related to a particular
"release/series/milestone." Am I just missing something? Do I not
have enough LP privs? What do you think?

It would be nice to target tickets/branches for upcoming releases.

Cheers,

Brian

On Tue, Apr 14, 2009 at 5:53 PM, Fernando Perez <email address hidden> wrote:
> Since we're having this discussion (for now) mostly on-list, perhaps we should just withdraw this one from 'merge request'.  That way the active reviews page will show us the status of what's really on the table for 0.10.
>
> Cheers,
>
> f
> --
> https://code.launchpad.net/~ellisonbg/ipython/module-reorg/+merge/5184
> You are subscribed to branch lp:ipython.
>

--
Brian E. Granger, Ph.D.
Assistant Professor of Physics
Cal Poly State University, San Luis Obispo
<email address hidden>
<email address hidden>

Revision history for this message
Fernando Perez (fdo.perez) wrote :

On Tue, Apr 14, 2009 at 5:57 PM, Brian Granger <email address hidden> wrote:
> I don't have a problem with that, but I have a question.  On various
> places on launchpad, I see references to "releases" and "series" and
> "milestones."  But I can't find anyway of manipulating these things to
> create (for example) tickets/branches related to a particular
> "release/series/milestone."  Am I just missing something?  Do I not
> have enough LP privs?  What do you think?
>
> It would be nice to target tickets/branches for upcoming releases.

I've wondered exactly the same thing. It's one of the things I miss
from trac. It may be possible to do it in LP, I don't quite know
yet...

I doubt it's a matter of privs, you have the same I do (admin)...

We're having a nipy sprint, so my presence is kind of spotty... But
ping me if anything comes up, I'm trying to keep an eye on things.

f

Revision history for this message
Brian Granger (ellisonbg) wrote :

Here is the page describing releases and milestones and they sound great:

https://help.launchpad.net/Projects/SeriesMilestonesReleases

But I don't see anything on our pages that have these things. Are you
*sure* that I have the same privs. Could you look to see if the links
referred to in this doc are there for you. I know I am listed as an
Admin, just like you are, but this is really driving me crazy that I
can't find this.

Cheers,

Brian

On Tue, Apr 14, 2009 at 6:06 PM, Fernando Perez <email address hidden> wrote:
> On Tue, Apr 14, 2009 at 5:57 PM, Brian Granger <email address hidden> wrote:
>> I don't have a problem with that, but I have a question.  On various
>> places on launchpad, I see references to "releases" and "series" and
>> "milestones."  But I can't find anyway of manipulating these things to
>> create (for example) tickets/branches related to a particular
>> "release/series/milestone."  Am I just missing something?  Do I not
>> have enough LP privs?  What do you think?
>>
>> It would be nice to target tickets/branches for upcoming releases.
>
> I've wondered exactly the same thing.  It's one of the things I miss
> from trac.  It may be possible to do it in LP, I don't quite know
> yet...
>
> I doubt it's a matter of privs, you have the same I do (admin)...
>
> We're having a nipy sprint, so my presence is kind of spotty... But
> ping me if anything comes up, I'm trying to keep an eye on things.
>
> f
> --
> https://code.launchpad.net/~ellisonbg/ipython/module-reorg/+merge/5184
> You are subscribed to branch lp:ipython.
>

--
Brian E. Granger, Ph.D.
Assistant Professor of Physics
Cal Poly State University, San Luis Obispo
<email address hidden>
<email address hidden>

Revision history for this message
Brian Granger (ellisonbg) wrote :

I am chatting with the lp devs on freenode and it looks like only you
(as "owner") can create series. This seems stupid, but you should see
a link on the main page that says "Register series" Can you check?

Brian

On Tue, Apr 14, 2009 at 6:06 PM, Fernando Perez <email address hidden> wrote:
> On Tue, Apr 14, 2009 at 5:57 PM, Brian Granger <email address hidden> wrote:
>> I don't have a problem with that, but I have a question.  On various
>> places on launchpad, I see references to "releases" and "series" and
>> "milestones."  But I can't find anyway of manipulating these things to
>> create (for example) tickets/branches related to a particular
>> "release/series/milestone."  Am I just missing something?  Do I not
>> have enough LP privs?  What do you think?
>>
>> It would be nice to target tickets/branches for upcoming releases.
>
> I've wondered exactly the same thing.  It's one of the things I miss
> from trac.  It may be possible to do it in LP, I don't quite know
> yet...
>
> I doubt it's a matter of privs, you have the same I do (admin)...
>
> We're having a nipy sprint, so my presence is kind of spotty... But
> ping me if anything comes up, I'm trying to keep an eye on things.
>
> f
> --
> https://code.launchpad.net/~ellisonbg/ipython/module-reorg/+merge/5184
> You are subscribed to branch lp:ipython.
>

--
Brian E. Granger, Ph.D.
Assistant Professor of Physics
Cal Poly State University, San Luis Obispo
<email address hidden>
<email address hidden>

Revision history for this message
Fernando Perez (fdo.perez) wrote :

Hey,

On Tue, Apr 14, 2009 at 9:09 PM, Brian Granger <email address hidden> wrote:
> Here is the page describing releases and milestones and they sound great:
>
> https://help.launchpad.net/Projects/SeriesMilestonesReleases
>
> But I don't see anything on our pages that have these things.  Are you
> *sure* that I have the same privs.  Could you look to see if the links
> referred to in this doc are there for you.  I know I am listed as an
> Admin, just like you are, but this is really driving me crazy that I
> can't find this.

I do see a 'register series' button below the list of series, I just
made these two:

https://launchpad.net/ipython/0.9
https://launchpad.net/ipython/0.10

Once we actually branch 0.10 we can link a branch to it, but for now
it has no branch associated with it. I guess we should make the tag
and branch pretty soon. I'll send an email on-list and can take care
of it tomorrow...

Cheers,

f

Revision history for this message
Fernando Perez (fdo.perez) wrote :

On Tue, Apr 14, 2009 at 9:30 PM, Brian Granger <email address hidden> wrote:
> I am chatting with the lp devs on freenode and it looks like only you
> (as "owner") can create series.  This seems stupid, but you should see
> a link on the main page that says "Register series"  Can you check?

Ah, I did the work before seeing this email...

Yes, I just did the series creation, so we're good to go. Silly, but
making series should be a once in a while thing, so it's no big deal.
As long as you can then manage it normally (add milestones, edit
details, etc), I think we're good.

Cheers,

f

Revision history for this message
Brian Granger (ellisonbg) wrote :

This branch has a complete re-organization of all IPython's modules and
packages. It needs extensive review (people need to install it and run the
test suite and play around with it) and needs to be merged ASAP. Once this
is merged, other branches targeted to trunk will have to be re-done.

Cheers,

Brian

On Mon, Jul 27, 2009 at 3:56 PM, Brian Granger <email address hidden> wrote:

> The proposal to merge lp:~ipython-dev/ipython/module-reorg into lp:ipython
> has been updated.
>
> Status: Work in progress => Needs review
> --
> https://code.launchpad.net/~ipython-dev/ipython/module-reorg/+merge/5184<https://code.launchpad.net/%7Eipython-dev/ipython/module-reorg/+merge/5184>
> You proposed lp:~ipython-dev/ipython/module-reorg for merging.
>

--
Brian E. Granger, Ph.D.
Assistant Professor of Physics
Cal Poly State University, San Luis Obispo
<email address hidden>
<email address hidden>

Revision history for this message
Vishal Vatsa (vvatsa) wrote :

Looks good, I have had a quick poke around, ran some of my own code
ran the tests.

-vishal

2009/7/28 Brian Granger <email address hidden>:
> This branch has a complete re-organization of all IPython's modules and
> packages.  It needs extensive review (people need to install it and run the
> test suite and play around with it) and needs to be merged ASAP.  Once this
> is merged, other branches targeted to trunk will have to be re-done.
>
> Cheers,
>
> Brian
>
> On Mon, Jul 27, 2009 at 3:56 PM, Brian Granger <email address hidden> wrote:
>
>> The proposal to merge lp:~ipython-dev/ipython/module-reorg into lp:ipython
>> has been updated.
>>
>>    Status: Work in progress => Needs review
>> --
>> https://code.launchpad.net/~ipython-dev/ipython/module-reorg/+merge/5184<https://code.launchpad.net/%7Eipython-dev/ipython/module-reorg/+merge/5184>
>> You proposed lp:~ipython-dev/ipython/module-reorg for merging.
>>
>
>
>
> --
> Brian E. Granger, Ph.D.
> Assistant Professor of Physics
> Cal Poly State University, San Luis Obispo
> <email address hidden>
> <email address hidden>
>
> https://code.launchpad.net/~ipython-dev/ipython/module-reorg/+merge/5184
> You are subscribed to branch lp:ipython.
>

Revision history for this message
Brian Granger (ellisonbg) wrote :

Thanks!

On Tue, Jul 28, 2009 at 3:48 AM, Vishal Vatsa <email address hidden>wrote:

> Looks good, I have had a quick poke around, ran some of my own code
> ran the tests.
>
> -vishal
>
> 2009/7/28 Brian Granger <email address hidden>:
> > This branch has a complete re-organization of all IPython's modules and
> > packages. It needs extensive review (people need to install it and run
> the
> > test suite and play around with it) and needs to be merged ASAP. Once
> this
> > is merged, other branches targeted to trunk will have to be re-done.
> >
> > Cheers,
> >
> > Brian
> >
> > On Mon, Jul 27, 2009 at 3:56 PM, Brian Granger <email address hidden>
> wrote:
> >
> >> The proposal to merge lp:~ipython-dev/ipython/module-reorg into
> lp:ipython
> >> has been updated.
> >>
> >> Status: Work in progress => Needs review
> >> --
> >>
> https://code.launchpad.net/~ipython-dev/ipython/module-reorg/+merge/5184<https://code.launchpad.net/%7Eipython-dev/ipython/module-reorg/+merge/5184>
> <
> https://code.launchpad.net/%7Eipython-dev/ipython/module-reorg/+merge/5184
> >
> >> You proposed lp:~ipython-dev/ipython/module-reorg for merging.
> >>
> >
> >
> >
> > --
> > Brian E. Granger, Ph.D.
> > Assistant Professor of Physics
> > Cal Poly State University, San Luis Obispo
> > <email address hidden>
> > <email address hidden>
> >
> > https://code.launchpad.net/~ipython-dev/ipython/module-reorg/+merge/5184<https://code.launchpad.net/%7Eipython-dev/ipython/module-reorg/+merge/5184>
> > You are subscribed to branch lp:ipython.
> >
> --
> https://code.launchpad.net/~ipython-dev/ipython/module-reorg/+merge/5184<https://code.launchpad.net/%7Eipython-dev/ipython/module-reorg/+merge/5184>
> You proposed lp:~ipython-dev/ipython/module-reorg for merging.
>

--
Brian E. Granger, Ph.D.
Assistant Professor of Physics
Cal Poly State University, San Luis Obispo
<email address hidden>
<email address hidden>

lp:~ipython-dev/ipython/module-reorg updated
1223. By Brian Granger

Merging revision 1175 from lp:ipython.

1224. By Brian Granger

Merging revision 1176 from lp:ipython.

1225. By Brian Granger

Merging -r 1177 from lp:ipython with fixes and resolutions.

The main conflicts I had to fix were in ultratb. I have removed
the ultraTB.py in IPython/kernel/core. Now IPython/core/ultratb.py
is being used everywhere. Also I have protected the calls to ipapi.get
to see if None is returned. This happens when trial IPython.kernel
is run.

1226. By Brian Granger

Merging -r 1178 from lp:ipython.

No major conflicts.

1227. By Brian Granger

Merging -r 1179 from lp:ipython.

No conflicts.

1228. By Brian Granger

Merging -r 1180 from lp:ipthon

No conflicts!

1229. By Brian Granger

Merging -r 1181 from lp:ipython.

A few changes were made to resolve conflicts:

* clipboard.py moved to core.
* Imports fixed.

1230. By Brian Granger

Fixing small bug in import statement in clipboard.py.

1231. By Brian Granger

Merging -r 1182 from lp:ipython.

1232. By Brian Granger

Merging -r 1182 from lp:ipython.

Minor conflicts with removal of testing/attic.

1233. By Brian Granger

Merging -r 1184 from lp:ipython.

1234. By Brian Granger

Merging -r 1185 from lp:ipython.

1235. By Brian Granger

Merging -r 1186 from lp:ipython.

1236. By Brian Granger

Merging -r 1187 from lp:ipython.

1237. By Brian Granger

Merging -r 1188 from lp:ipython.

1238. By Brian Granger

Merging -r 1189 from lp:ipython.

1239. By Brian Granger

Merging -r 1190 from lp:ipython.

1240. By Brian Granger

Merging -r 1191 from lp:ipython.

1241. By Brian Granger

Merging -r 1192 from lp:ipython.

1242. By Brian Granger

Merging -r 1193 from lp:ipython.

1243. By Brian Granger

Merging -r 1194 from lp:ipython.

1244. By Brian Granger

Merging -r 1195 from lp:ipython.x

1245. By Brian Granger

Merging -r 1196 from lp:ipython.

A couple of issues came up:

* Some tests in testing and frontend rely on twisted, but are being
  tested with nose. This is bad! We currently have hackish logic in
  iptest to skip these if twisted is not installed, but if it is we
  are testing them with nose!
* Some modules (engineservice, kernel/error, newserialized) have nose
  skip logic even though they should never be tested with nose.
* When trial is run on testStrictDict we get an uncaught error.

testStrictDict ... ERROR: An unexpected error occurred while tokenizing
input The following traceback may be corrupted or invalid
The error message is: ('EOF in multi-line statement', (37, 0))

1246. By Brian Granger

Merging -r 1197 from lp:ipython.

1247. By Brian Granger

Merging -r 1198 from lp:ipython.

1248. By Brian Granger

Merging -r 1199 from lp:ipython.

1249. By Brian Granger

Merging -r 1200 from lp:ipython.

1250. By Brian Granger

Merging -r 1201 from lp:ipython.

This concludes the upstream merge of trunk into the module-reorg branch.

Revision history for this message
Brian Granger (ellisonbg) wrote :

I have merged all the recent activity in trunk into the module-reorg branch. The merge capabilities of bzr are quite impressive!!! Other than a few minor things, module-reorg is thus ready to be merged into trunk. I would like to merge this in the next day or so, so that development can begin again post-0.10. There are *lots* of commits in this branch and many of them are non-trivial. Please have a look if you get a chance.

lp:~ipython-dev/ipython/module-reorg updated
1251. By Brian Granger

Merging upstream changes from final 0.10 release.

Revision history for this message
Fernando Perez (fdo.perez) wrote :

First, some small comments:

- There's still a scripts/ package (empty) being installed. I think the plan
  was to move towards scripts being in the subpackage they belong, which I'm on
  board with. Do we need this 'scripts' package at all?

- .hgignore file can be nuked, since we're just using bzr and will be for a
  while. I don't know what the .checkeol file is; it seems to be a bzr thing
  but I'm not 100% sure.

- Stray quote in the sources/development/reorg.txt file, in the title (third
  line).

- This is a comment probably more for the config branch, but I'll jot it here
  so I don't forget. At some point we'll need to write up a little transition
  guide, and the user config files will be the place where people will get the
  most warnings and weirdness. I just went through cleaning my ~/.ipython
  directory and now it's fine, but users may get a little confused navigating
  that. Not a problem, just a reminder for us to do that once our own
  construction dust settles.

- The version number info should be updated on Release.py so users see it's a
  dev branch (can just pull from trunk that one file and update the bzr rev
  number with update_revno.py in the tools/ directory).

Other than the above minor nits, I'm voting to approve this merge (meaning, my
vote is approve, I trust you can take care of these tiny things in merging).

I think you've done a *stellar* job here, and that holding this merge further
won't help us any. There will be more work to be done, but that will be
easier done in-place, as we work through the consequences of these changes.

So +1 from me, and a huge thank you for doing such a thorough and careful job
with a task that was critically needed for the project, but both tricky due to
little details and simultaneously not very interesting.

Fantastic work!!

review: Approve
lp:~ipython-dev/ipython/module-reorg updated
1252. By Brian Granger

Removing .hgignore.

1253. By Brian Granger

Added to changes.txt.

Revision history for this message
Brian Granger (ellisonbg) wrote :

This one is in!

review: Approve
Revision history for this message
Fernando Perez (fdo.perez) wrote :

On Thu, Aug 13, 2009 at 4:23 PM, Brian Granger<email address hidden> wrote:
> Review: Approve
> This one is in!

Awesome! Great job.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'docs/source/development/index.txt'
2--- docs/source/development/index.txt 2009-03-15 01:38:00 +0000
3+++ docs/source/development/index.txt 2009-03-23 16:04:23 +0000
4@@ -12,3 +12,4 @@
5
6 notification_blueprint.txt
7 config_blueprint.txt
8+ reorg.txt
9
10=== added file 'docs/source/development/reorg.txt'
11--- docs/source/development/reorg.txt 1970-01-01 00:00:00 +0000
12+++ docs/source/development/reorg.txt 2009-04-03 05:21:49 +0000
13@@ -0,0 +1,218 @@
14+=============================
15+IPython module reorganization
16+=============================
17+
18+Currently, IPython has many top-level modules that serve many different purposes. The lack of organization make it very difficult for developers to work on IPython and understand its design. This document contains notes about how we will reorganize the modules into sub-packages.
19+
20+.. warning::
21+
22+ This effort will possibly break third party packages that use IPython as
23+ a library or hack on the IPython internals.
24+
25+.. warning::
26+
27+ This effort will result in the removal from IPython of certain modules
28+ that are not used anymore, don't currently work, are unmaintained, etc.
29+
30+
31+Current subpackges
32+==================
33+
34+IPython currently has the following sub-packages:
35+
36+* :mod:`IPython.config`
37+
38+* :mod:`IPython.Extensions`
39+
40+* :mod:`IPython.external`
41+
42+* :mod:`IPython.frontend`
43+
44+* :mod:`IPython.gui`
45+
46+* :mod:`IPython.kernel`
47+
48+* :mod:`IPython.testing`
49+
50+* :mod:`IPython.tests`
51+
52+* :mod:`IPython.tools`
53+
54+* :mod:`IPython.UserConfig`
55+
56+New Subpackages to be created
57+=============================
58+
59+We propose to create the following new sub-packages:
60+
61+* :mod:`IPython.core`. This sub-package will contain the core of the IPython
62+ interpreter, but none of its extended capabilities.
63+
64+* :mod:`IPython.lib`. IPython has many extended capabilities that are not part
65+ of the IPython core. These things will go here. Any better names than
66+ :mod:`IPython.lib`?
67+
68+* :mod:`IPython.python`. This sub-package will contain anything that might
69+ eventually be found in the Python standard library, like things in
70+ :mod:`genutils`. Each sub-module in this sub-package should contain functions
71+ and classes that serve a single purpose. Similar in purpose to
72+ :mod:`twisted.python`. Could also call this :mod:`IPython.tools`,
73+ :mod:`IPython.utils` or something similar.
74+
75+* :mod:`IPython.sandbox`. This is for code that is untested and/or rotting and
76+ needs to be removed from IPython. Eventually all this code will either i) be
77+ revived with tests and docs and re-included into IPython or 2) be removed from
78+ IPython proper, but put into a separate top-level (not IPython) package that we
79+ keep around.
80+
81+Where things will be moved
82+==========================
83+
84+* :file:`ColorANSI.py`. Move to :file:`IPython/core/coloransi.py`.
85+
86+* :file:`ConfigLoader.py`. Move to :file:`IPython/config/configloader.py`.
87+
88+* :file:`CrashHandler.py`. Move to :file:`IPython/core/crashhandler`.
89+
90+* :file:`DPyGetOpt.py`. Move to :mod:`IPython.sandbox` and replace with newer options parser.
91+
92+* :file:`Debugger.py`. Move to :file:`IPython/core/debugger.py`.
93+
94+* :file:`Extensions`. This needs to be gone through separately. Minimally,
95+ the package should be renamed to :file:`extensions`.
96+
97+* :file:`FakeModule.py`. Move to :file:`IPython/core/fakemodule.py`.
98+
99+* :file:`Gnuplot2.py`. Move to :file:`IPython.sandbox`.
100+
101+* :file:`GnuplotInteractive.py`. Move to :file:`IPython.sandbox`.
102+
103+* :file:`GnuplotRuntime.py`. Move to :file:`IPython.sandbox`.
104+
105+* :file:`Itpl.py`. Remove. Version already in :file:`IPython.external`.
106+
107+* :file:`Logger.py`. Move to :file:`IPython/core/logger.py`.
108+
109+* :file:`Magic.py`. Move to :file:`IPython/core/magic.py`.
110+
111+* :file:`OInspect.py`. Move to :file:`IPython/core/oinspect.py`.
112+
113+* :file:`OutputTrap.py`. Move to :file:`IPython/core/outputtrap.py`.
114+
115+* :file:`Prompts.py`. Move to :file:`IPython/core/prompts.py` or
116+ :file:`IPython/frontend/prompts.py`.
117+
118+* :file:`PyColorize.py`. Replace with pygments? If not, move to :file:`IPython/core/pycolorize.py`.
119+
120+* :file:`Release.py`. Move to ??? or remove?
121+
122+* :file:`Shell.py`. Move to :file:`IPython.core.shell.py` or
123+ :file:`IPython/frontend/shell.py`.
124+
125+* :file:`UserConfig`. Move to a subdirectory of :file:`IPython.config`.
126+
127+* :file:`background_jobs.py`. Move to :file:`IPython/lib/backgroundjobs.py`.
128+
129+* :file:`completer.py`. Move to :file:`IPython/core/completer.py`.
130+
131+* :file:`config`. Good where it is!
132+
133+* :file:`deep_reload.py`. Move to :file:`IPython/lib/deepreload.py`.
134+
135+* :file:`demo.py`. Move to :file:`IPython/lib/demo.py`.
136+
137+* :file:`dtutils.py`. Remove or move to :file:`IPython.testing` or
138+ :file:`IPython.lib`.
139+
140+* :file:`excolors.py`. Move to :file:`IPython.core` or :file:`IPython.config`.
141+
142+* :file:`external`. Good where it is!
143+
144+* :file:`frontend`. Good where it is!
145+
146+* :file:`generics.py`. Move to :file:`IPython.python`.
147+
148+* :file:`genutils.py`. Move to :file:`IPython.python` and break up into different
149+ modules.
150+
151+* :file:`gui`. Eventually this should be moved to a subdir of
152+ :file:`IPython.frontend`.
153+
154+* :file:`history.py`. Move to :file:`IPython.core`.
155+
156+* :file:`hooks.py`. Move to :file:`IPython.core`.
157+
158+* :file:`ipapi.py`. Move to :file:`IPython.core`.
159+
160+* :file:`iplib.py`. Move to :file:`IPython.core`.
161+
162+* :file:`ipmaker.py`: Move to :file:`IPython.core`.
163+
164+* :file:`ipstruct.py`. Move to :file:`IPython.python`.
165+
166+* :file:`irunner.py`. Move to :file:`IPython.scripts`.
167+
168+* :file:`kernel`. Good where it is.
169+
170+* :file:`macro.py`. Move to :file:`IPython.core`.
171+
172+* :file:`numutils.py`. Move to :file:`IPython.sandbox`.
173+
174+* :file:`platutils.py`. Move to :file:`IPython.python`.
175+
176+* :file:`platutils_dummy.py`. Move to :file:`IPython.python`.
177+
178+* :file:`platutils_posix.py`. Move to :file:`IPython.python`.
179+
180+* :file:`platutils_win32.py`. Move to :file:`IPython.python`.
181+
182+* :file:`prefilter.py`: Move to :file:`IPython.core`.
183+
184+* :file:`rlineimpl.py`. Move to :file:`IPython.core`.
185+
186+* :file:`shadowns.py`. Move to :file:`IPython.core`.
187+
188+* :file:`shellglobals.py`. Move to :file:`IPython.core`.
189+
190+* :file:`strdispatch.py`. Move to :file:`IPython.python`.
191+
192+* :file:`testing`. Good where it is.
193+
194+* :file:`tests`. Good where it is.
195+
196+* :file:`tools`. Things in here need to be looked at and moved elsewhere like
197+ :file:`IPython.python`.
198+
199+* :file:`twshell.py`. Move to :file:`IPython.sandbox`.
200+
201+* :file:`ultraTB.py`. Move to :file:`IPython/core/ultratb.py`.
202+
203+* :file:`upgrade_dir.py`. Move to :file:`IPython/python/upgradedir.py`.
204+
205+* :file:`usage.py`. Move to :file:`IPython.core`.
206+
207+* :file:`wildcard.py`. Move to :file:`IPython.python` or :file:`IPython.core`.
208+
209+* :file:`winconsole.py`. Move to :file:`IPython.lib`.
210+
211+Other things
212+============
213+
214+When these files are moved around, a number of other things will happen at the same time:
215+
216+1. Test files will be created for each module in IPython. Minimally, all
217+ modules will be imported as a part of the test. This will serve as a
218+ test of the module reorganization. These tests will be put into new
219+ :file:`tests` subdirectories that each package will have.
220+
221+2. PyFlakes and other code checkers will be run to look for problems.
222+
223+3. Modules will be renamed to comply with PEP 8 naming conventions: all
224+ lowercase and no special characters like ``-`` or ``_``.
225+
226+4. Existing tests will be moved to the appropriate :file:`tests`
227+ subdirectories.
228+
229+
230+
231+

Subscribers

People subscribed via source and target branches