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