Merge lp:~ipython-dev/ipython/module-reorg into lp:ipython/0.11
- module-reorg
- Merge into trunk
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 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Brian Granger | Approve | ||
Fernando Perez | Approve | ||
Review via email: mp+5184@code.launchpad.net |
Commit message
Description of the change
Brian Granger (ellisonbg) wrote : | # |
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
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.
> 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:/
> 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>
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
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.
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:/
> 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>
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
Fernando Perez (fdo.perez) wrote : | # |
Resubmit after 0.10, discussion is now on-list to get input from non-launchpad committers.
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/
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:/
> 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>
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/
> 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
Brian Granger (ellisonbg) wrote : | # |
Here is the page describing releases and milestones and they sound great:
https:/
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/
>> 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:/
> 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>
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/
>> 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:/
> 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>
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:/
>
> 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:/
https:/
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
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
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:/
> 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>
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:/
>> 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:/
> You are subscribed to branch lp:ipython.
>
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:/
> <
> https:/
> >
> >> 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:/
> > You are subscribed to branch lp:ipython.
> >
> --
> https:/
> 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>
- 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.
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.
- 1251. By Brian Granger
-
Merging upstream changes from final 0.10 release.
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/
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!!
- 1252. By Brian Granger
-
Removing .hgignore.
- 1253. By Brian Granger
-
Added to changes.txt.
Brian Granger (ellisonbg) wrote : | # |
This one is in!
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
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 | + |
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.