Merge lp:~happyhouse19/ubuntu/oneiric/spyder/fix-for-890243 into lp:ubuntu/oneiric/spyder
- Oneiric (11.10)
- fix-for-890243
- Merge into oneiric
Proposed by
Matthew Goode
Status: | Rejected | ||||
---|---|---|---|---|---|
Rejected by: | Martin Pitt | ||||
Proposed branch: | lp:~happyhouse19/ubuntu/oneiric/spyder/fix-for-890243 | ||||
Merge into: | lp:ubuntu/oneiric/spyder | ||||
Diff against target: |
37516 lines (+18302/-8042) 138 files modified
.pc/0001-fix-documentation-installation.patch/setup.py (+106/-0) .pc/0001-fix-documentation-installation.patch/spyderlib/__init__.py (+48/-0) .pc/0001-fix-documentation-installation.patch/spyderlib/config.py (+0/-506) MANIFEST.in (+2/-2) PKG-INFO (+13/-14) README (+107/-72) app_example/create_exe.py (+31/-0) app_example/run_py2exe.bat (+0/-2) app_example/setup.py (+0/-52) bootstrap.py (+93/-0) debian/changelog (+66/-0) debian/control (+25/-11) debian/copyright (+210/-8) debian/patches/0001-fix-documentation-installation.patch (+33/-17) debian/python-spyderlib.bug-control (+1/-0) debian/python-spyderlib.docs (+1/-0) debian/python-spyderlib.links (+0/-2) debian/python-spyderlib.preinst (+11/-0) debian/rules (+8/-7) debian/spyder.bug-control (+1/-0) debian/spyder.desktop (+0/-9) debian/spyder.install (+1/-1) debian/spyder.links (+1/-1) debian/todo (+9/-0) debian/watch (+2/-2) doc/conf.py (+2/-2) doc/debugging.rst (+31/-31) doc/index.rst (+1/-1) doc/installation.rst (+77/-34) doc/options.rst (+3/-2) doc/overview.rst (+3/-3) scripts/spyder (+3/-0) scripts/spyder.bat (+2/-0) scripts/spyder.desktop (+11/-0) setup.py (+106/-101) spyder (+0/-3) spyder.bat (+0/-2) spyderlib/__init__.py (+20/-4) spyderlib/baseconfig.py (+175/-0) spyderlib/config.py (+133/-126) spyderlib/images/options.svg (+23/-3) spyderlib/images/spyder.svg (+22/-5) spyderlib/images/spyder_light.svg (+18/-3) spyderlib/interpreter.py (+10/-5) spyderlib/locale/fr/LC_MESSAGES/spyderlib.po (+1682/-1169) spyderlib/locale/spyderlib.pot (+3463/-0) spyderlib/mpl_patch.py (+26/-7) spyderlib/otherplugins.py (+59/-0) spyderlib/pil_patch.py (+54/-0) spyderlib/plugins/__init__.py (+27/-16) spyderlib/plugins/configdialog.py (+75/-54) spyderlib/plugins/console.py (+23/-15) spyderlib/plugins/editor.py (+320/-287) spyderlib/plugins/explorer.py (+22/-53) spyderlib/plugins/externalconsole.py (+390/-129) spyderlib/plugins/findinfiles.py (+11/-7) spyderlib/plugins/history.py (+12/-8) spyderlib/plugins/inspector.py (+22/-14) spyderlib/plugins/ipython.py (+65/-0) spyderlib/plugins/onlinehelp.py (+9/-4) spyderlib/plugins/outlineexplorer.py (+109/-0) spyderlib/plugins/projectexplorer.py (+18/-46) spyderlib/plugins/runconfig.py (+66/-23) spyderlib/plugins/shortcuts.py (+54/-35) spyderlib/plugins/variableexplorer.py (+11/-18) spyderlib/plugins/workingdirectory.py (+18/-16) spyderlib/qt/QtCore.py (+7/-8) spyderlib/qt/QtGui.py (+1/-1) spyderlib/qt/QtWebKit.py (+1/-1) spyderlib/qt/__init__.py (+32/-10) spyderlib/qt/compat.py (+198/-0) spyderlib/requirements.py (+8/-9) spyderlib/rope_patch.py (+81/-8) spyderlib/scientific_startup.py (+82/-0) spyderlib/spyder.py (+552/-184) spyderlib/userconfig.py (+21/-17) spyderlib/utils/__init__.py (+1/-174) spyderlib/utils/bsdsocket.py (+101/-0) spyderlib/utils/classparser.py (+5/-0) spyderlib/utils/codeanalysis.py (+136/-0) spyderlib/utils/css/default.css (+1/-1) spyderlib/utils/debug.py (+45/-0) spyderlib/utils/dochelpers.py (+24/-6) spyderlib/utils/environ.py (+2/-2) spyderlib/utils/external/__init__.py (+17/-0) spyderlib/utils/external/path.py (+979/-0) spyderlib/utils/external/pickleshare.py (+357/-0) spyderlib/utils/iofuncs.py (+21/-19) spyderlib/utils/misc.py (+148/-0) spyderlib/utils/module_completion.py (+193/-0) spyderlib/utils/programs.py (+111/-57) spyderlib/utils/qthelpers.py (+53/-28) spyderlib/utils/scm.py (+79/-0) spyderlib/utils/sourcecode.py (+12/-1) spyderlib/utils/sphinxify.py (+33/-43) spyderlib/utils/translations.py (+0/-51) spyderlib/widgets/arrayeditor.py (+103/-64) spyderlib/widgets/browser.py (+3/-5) spyderlib/widgets/colors.py (+7/-7) spyderlib/widgets/comboboxes.py (+15/-10) spyderlib/widgets/dicteditor.py (+186/-275) spyderlib/widgets/dicteditorutils.py (+239/-0) spyderlib/widgets/editor.py (+468/-372) spyderlib/widgets/editortools.py (+10/-57) spyderlib/widgets/explorer.py (+767/-332) spyderlib/widgets/externalshell/baseshell.py (+20/-14) spyderlib/widgets/externalshell/introspection.py (+187/-0) spyderlib/widgets/externalshell/monitor.py (+272/-352) spyderlib/widgets/externalshell/namespacebrowser.py (+138/-110) spyderlib/widgets/externalshell/pythonshell.py (+161/-117) spyderlib/widgets/externalshell/sitecustomize.py (+356/-29) spyderlib/widgets/externalshell/startup.py (+91/-175) spyderlib/widgets/externalshell/systemshell.py (+15/-17) spyderlib/widgets/findinfiles.py (+55/-40) spyderlib/widgets/findreplace.py (+102/-39) spyderlib/widgets/formlayout.py (+553/-553) spyderlib/widgets/importwizard.py (+23/-13) spyderlib/widgets/internalshell.py (+46/-31) spyderlib/widgets/ipython.py (+44/-0) spyderlib/widgets/objecteditor.py (+20/-12) spyderlib/widgets/onecolumntree.py (+4/-1) spyderlib/widgets/outlineexplorer.py (+117/-117) spyderlib/widgets/pathmanager.py (+20/-13) spyderlib/widgets/projectexplorer.py (+858/-1189) spyderlib/widgets/pydocgui.py (+4/-7) spyderlib/widgets/shell.py (+74/-48) spyderlib/widgets/sourcecode/__init__.py (+1/-1) spyderlib/widgets/sourcecode/base.py (+224/-47) spyderlib/widgets/sourcecode/codeeditor.py (+764/-301) spyderlib/widgets/sourcecode/syntaxhighlighters.py (+210/-65) spyderlib/widgets/sourcecode/terminal.py (+8/-0) spyderlib/widgets/tabs.py (+43/-13) spyderlib/widgets/texteditor.py (+20/-5) spyderplugins/io_hdf5.py (+83/-0) spyderplugins/p_profiler.py (+142/-0) spyderplugins/p_pylint.py (+46/-21) spyderplugins/widgets/profilergui.py (+522/-0) spyderplugins/widgets/pylintgui.py (+35/-38) |
||||
To merge this branch: | bzr merge lp:~happyhouse19/ubuntu/oneiric/spyder/fix-for-890243 | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Didier Roche-Tolomelli | Approve | ||
Review via email: mp+99579@code.launchpad.net |
Commit message
Description of the change
Added a line to the spyder.desktop file so that the icon will display in the Unity launcher. This fix was done in Oneiric, but also works in Precise.
To post a comment you must log in.
Revision history for this message
Matthew Goode (happyhouse19) wrote : | # |
Apologies for not quite doing it right. I was trying to follow https:/
Unmerged revisions
- 12. By Matthew Goode
-
Added icon entry to spyder.desktop (LP: #890243)
- 11. By Picca Frederic-Emmanuel
-
* Imported Upstream version 2.1.8
* prepare for backport - 10. By Picca Frederic-Emmanuel
-
Imported Upstream version 2.1.7
- 9. By Matthias Klose
-
Rebuild to drop python2.6 dependencies.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === added file '.pc/0001-fix-documentation-installation.patch/setup.py' |
2 | --- .pc/0001-fix-documentation-installation.patch/setup.py 1970-01-01 00:00:00 +0000 |
3 | +++ .pc/0001-fix-documentation-installation.patch/setup.py 2012-03-27 18:05:23 +0000 |
4 | @@ -0,0 +1,106 @@ |
5 | +# -*- coding: utf-8 -*- |
6 | +# |
7 | +# Copyright © 2009-2010 Pierre Raybaut |
8 | +# Licensed under the terms of the MIT License |
9 | +# (see spyderlib/__init__.py for details) |
10 | + |
11 | +""" |
12 | +Spyder |
13 | +====== |
14 | + |
15 | +The Scientific PYthon Development EnviRonment |
16 | +""" |
17 | + |
18 | +from distutils.core import setup |
19 | +from distutils.command.build import build |
20 | +from sphinx import setup_command |
21 | +import os |
22 | +import os.path as osp |
23 | +import sys |
24 | + |
25 | + |
26 | +def get_package_data(name, extlist): |
27 | + """Return data files for package *name* with extensions in *extlist*""" |
28 | + flist = [] |
29 | + # Workaround to replace os.path.relpath (not available until Python 2.6): |
30 | + offset = len(name)+len(os.pathsep) |
31 | + for dirpath, _dirnames, filenames in os.walk(name): |
32 | + for fname in filenames: |
33 | + if not fname.startswith('.') and osp.splitext(fname)[1] in extlist: |
34 | + flist.append(osp.join(dirpath, fname)[offset:]) |
35 | + return flist |
36 | + |
37 | + |
38 | +def get_subpackages(name): |
39 | + """Return subpackages of package *name*""" |
40 | + splist = [] |
41 | + for dirpath, _dirnames, _filenames in os.walk(name): |
42 | + if osp.isfile(osp.join(dirpath, '__init__.py')): |
43 | + splist.append(".".join(dirpath.split(os.sep))) |
44 | + return splist |
45 | + |
46 | + |
47 | +# Sphinx build (documentation) |
48 | +class MyBuild(build): |
49 | + def has_doc(self): |
50 | + setup_dir = os.path.dirname(os.path.abspath(__file__)) |
51 | + return os.path.isdir(os.path.join(setup_dir, 'doc')) |
52 | + sub_commands = build.sub_commands + [('build_doc', has_doc)] |
53 | + |
54 | + |
55 | +class MyBuildDoc(setup_command.BuildDoc): |
56 | + def run(self): |
57 | + build = self.get_finalized_command('build') |
58 | + sys.path.insert(0, os.path.abspath(build.build_lib)) |
59 | + dirname = self.distribution.get_command_obj('build').build_purelib |
60 | + self.builder_target_dir = osp.join(dirname, 'spyderlib', 'doc') |
61 | + try: |
62 | + setup_command.BuildDoc.run(self) |
63 | + except UnicodeDecodeError: |
64 | + print >>sys.stderr, "ERROR: unable to build documentation because Sphinx do not handle source path with non-ASCII characters. Please try to move the source package to another location (path with *only* ASCII characters)." |
65 | + sys.path.pop(0) |
66 | + |
67 | + |
68 | +cmdclass = {'build': MyBuild, 'build_doc': MyBuildDoc} |
69 | + |
70 | + |
71 | +NAME = 'spyder' |
72 | +LIBNAME = 'spyderlib' |
73 | +from spyderlib import __version__, __project_url__ |
74 | + |
75 | +setup(name=NAME, |
76 | + version=__version__, |
77 | + description='Scientific PYthon Development EnviRonment', |
78 | + long_description="""The spyderlib library provides powerful console and |
79 | +editor related widgets to your Qt application (PyQt4 or PySide). It also |
80 | +includes a Scientific Python development environment named 'Spyder', an |
81 | +alternative to IDLE with powerful interactive features such as variable |
82 | +explorer (with GUI-based editors for dictionaries, lists, NumPy arrays, etc.), |
83 | +object inspector, online help, and a lot more.""", |
84 | + download_url='%s/files/%s-%s.zip' % (__project_url__, NAME, __version__), |
85 | + author="Pierre Raybaut", |
86 | + url=__project_url__, |
87 | + license='MIT', |
88 | + keywords='PyQt4 PySide editor shell console widgets IDE', |
89 | + platforms=['any'], |
90 | + packages=get_subpackages(LIBNAME)+get_subpackages('spyderplugins'), |
91 | + package_data={LIBNAME: |
92 | + get_package_data(LIBNAME, ('.mo', '.svg', '.png', '.css')), |
93 | + 'spyderplugins': |
94 | + get_package_data('spyderplugins', ('.mo', '.svg', '.png'))}, |
95 | + requires=["rope (>=0.9.2)", "sphinx (>=0.6.0)", "PyQt4 (>=4.4)"], |
96 | + scripts=[osp.join('scripts', fname) for fname in |
97 | + (['spyder', 'spyder.bat'] if os.name == 'nt' else ['spyder'])], |
98 | + classifiers=['License :: OSI Approved :: MIT License', |
99 | + 'Operating System :: MacOS', |
100 | + 'Operating System :: Microsoft :: Windows', |
101 | + 'Operating System :: OS Independent', |
102 | + 'Operating System :: POSIX', |
103 | + 'Operating System :: Unix', |
104 | + 'Programming Language :: Python :: 2.5', |
105 | + 'Programming Language :: Python :: 2.6', |
106 | + 'Programming Language :: Python :: 2.7', |
107 | + 'Development Status :: 5 - Production/Stable', |
108 | + 'Topic :: Scientific/Engineering', |
109 | + 'Topic :: Software Development :: Widget Sets'], |
110 | + cmdclass=cmdclass) |
111 | |
112 | === added file '.pc/0001-fix-documentation-installation.patch/spyderlib/__init__.py' |
113 | --- .pc/0001-fix-documentation-installation.patch/spyderlib/__init__.py 1970-01-01 00:00:00 +0000 |
114 | +++ .pc/0001-fix-documentation-installation.patch/spyderlib/__init__.py 2012-03-27 18:05:23 +0000 |
115 | @@ -0,0 +1,48 @@ |
116 | +# -*- coding: utf-8 -*- |
117 | +""" |
118 | +Spyder License Agreement (MIT License) |
119 | +-------------------------------------- |
120 | + |
121 | +Copyright (c) 2009-2011 Pierre Raybaut |
122 | + |
123 | +Permission is hereby granted, free of charge, to any person |
124 | +obtaining a copy of this software and associated documentation |
125 | +files (the "Software"), to deal in the Software without |
126 | +restriction, including without limitation the rights to use, |
127 | +copy, modify, merge, publish, distribute, sublicense, and/or sell |
128 | +copies of the Software, and to permit persons to whom the |
129 | +Software is furnished to do so, subject to the following |
130 | +conditions: |
131 | + |
132 | +The above copyright notice and this permission notice shall be |
133 | +included in all copies or substantial portions of the Software. |
134 | + |
135 | +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
136 | +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
137 | +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
138 | +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
139 | +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
140 | +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
141 | +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
142 | +OTHER DEALINGS IN THE SOFTWARE. |
143 | +""" |
144 | + |
145 | +__version__ = '2.1.8' |
146 | +__license__ = __doc__ |
147 | +__project_url__ = 'http://code.google.com/p/spyderlib' |
148 | +__forum_url__ = 'http://groups.google.com/group/spyderlib' |
149 | + |
150 | +# Dear (Debian, RPM, ...) package makers, please feel free to customize the |
151 | +# following path to module's data (images) and translations: |
152 | +DATAPATH = LOCALEPATH = DOCPATH = '' |
153 | + |
154 | +def add_to_distribution(dist): |
155 | + """Add package to py2exe/cx_Freeze distribution object |
156 | + Extension to guidata.disthelpers""" |
157 | + dist.add_modules('PyQt4') |
158 | + for _modname in ('spyderlib', 'spyderplugins'): |
159 | + dist.add_module_data_files(_modname, ("", ), |
160 | + ('.png', '.svg', '.html', '.png', '.txt', |
161 | + '.js', '.inv', '.ico', '.css', '.doctree', |
162 | + '.qm', '.py',), |
163 | + copy_to_root=False) |
164 | |
165 | === removed file '.pc/0001-fix-documentation-installation.patch/spyderlib/config.py' |
166 | --- .pc/0001-fix-documentation-installation.patch/spyderlib/config.py 2011-04-29 21:19:10 +0000 |
167 | +++ .pc/0001-fix-documentation-installation.patch/spyderlib/config.py 1970-01-01 00:00:00 +0000 |
168 | @@ -1,506 +0,0 @@ |
169 | -# -*- coding: utf-8 -*- |
170 | -# |
171 | -# Copyright © 2009-2010 Pierre Raybaut |
172 | -# Licensed under the terms of the MIT License |
173 | -# (see spyderlib/__init__.py for details) |
174 | - |
175 | -""" |
176 | -Spyder configuration management |
177 | - |
178 | -Important note regarding shortcuts: |
179 | - For compatibility with QWERTZ keyboards, one must avoid using the following |
180 | - shortcuts: |
181 | - Ctrl + Alt + Q, W, F, G, Y, X, C, V, B, N |
182 | -""" |
183 | - |
184 | -import os, sys, os.path as osp |
185 | -from datetime import date |
186 | -from PyQt4.QtGui import QLabel, QIcon, QPixmap, QFont, QFontDatabase |
187 | - |
188 | -# Local import |
189 | -from userconfig import UserConfig, get_home_dir, NoDefault |
190 | - |
191 | -DATA_DEV_PATH = osp.dirname(__file__) |
192 | -if not osp.isdir(DATA_DEV_PATH): |
193 | - # Assuming py2exe distribution |
194 | - DATA_DEV_PATH = osp.join(sys.prefix, "spyderlib") |
195 | -DOC_DEV_PATH = osp.join(DATA_DEV_PATH, 'doc') |
196 | - |
197 | -# The two following lines are patched when making the debian package: |
198 | -DATA_PATH = DATA_DEV_PATH # @@@DATA_PATH@@@ |
199 | -DOC_PATH = DOC_DEV_PATH # @@@DOC_PATH@@@ |
200 | - |
201 | -EDITABLE_TYPES = [int, long, float, list, dict, tuple, str, unicode, date] |
202 | -try: |
203 | - from numpy import ndarray, matrix |
204 | - EDITABLE_TYPES += [ndarray, matrix] |
205 | -except ImportError: |
206 | - pass |
207 | -PICKLABLE_TYPES = EDITABLE_TYPES[:] |
208 | -try: |
209 | - from PIL.Image import Image |
210 | - EDITABLE_TYPES.append(Image) |
211 | -except ImportError: |
212 | - pass |
213 | - |
214 | -# Max number of filter iterations for worskpace display: |
215 | -# (for workspace saving, itermax == -1, see Workspace.save) |
216 | -ITERMAX = -1 #XXX: To be adjusted if it takes too much to compute... 2, 3? |
217 | - |
218 | -EXCLUDED = ['nan', 'inf', 'infty', 'little_endian', 'colorbar_doc', 'typecodes', |
219 | - '__builtins__', '__main__', '__doc__'] |
220 | - |
221 | -def type2str(types): |
222 | - """Convert types to strings""" |
223 | - return [typ.__name__ for typ in types] |
224 | - |
225 | -def str2type(strings): |
226 | - """Convert strings to types""" |
227 | - return tuple( [eval(string) for string in strings] ) |
228 | - |
229 | -SANS_SERIF = ['Sans Serif', 'DejaVu Sans', 'Bitstream Vera Sans', |
230 | - 'Bitstream Charter', 'Lucida Grande', 'Verdana', 'Geneva', |
231 | - 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', 'sans-serif'] |
232 | -SANS_SERIF.insert(0, unicode(QFont().family())) |
233 | - |
234 | -MONOSPACE = ['Monospace', 'DejaVu Sans Mono', 'Consolas', 'Courier New', |
235 | - 'Bitstream Vera Sans Mono', 'Andale Mono', 'Liberation Mono', |
236 | - 'Monaco', 'Courier', 'monospace', 'Fixed', 'Terminal'] |
237 | -MEDIUM = 10 |
238 | -SMALL = 9 |
239 | - |
240 | -DEFAULTS = [ |
241 | - ('main', |
242 | - { |
243 | - 'translation': True, |
244 | - 'vertical_dockwidget_titlebars': False, |
245 | - 'vertical_tabs': False, |
246 | - 'animated_docks': True, |
247 | - 'window/size': (1260, 740), |
248 | - 'window/position': (10, 10), |
249 | - 'window/is_maximized': False, |
250 | - 'window/is_fullscreen': False, |
251 | - 'lightwindow/size': (650, 400), |
252 | - 'lightwindow/position': (30, 30), |
253 | - 'lightwindow/is_maximized': False, |
254 | - 'lightwindow/is_fullscreen': False, |
255 | - }), |
256 | - ('editor_appearance', |
257 | - { |
258 | - 'cursor/width': 2, |
259 | - 'calltips/font/family': MONOSPACE, |
260 | - 'calltips/font/size': SMALL, |
261 | - 'calltips/font/italic': False, |
262 | - 'calltips/font/bold': False, |
263 | - 'calltips/size': 600, |
264 | - 'completion/font/family': MONOSPACE, |
265 | - 'completion/font/size': SMALL, |
266 | - 'completion/font/italic': False, |
267 | - 'completion/font/bold': False, |
268 | - 'completion/size': (300, 180), |
269 | - }), |
270 | - ('shell_appearance', |
271 | - { |
272 | - 'cursor/width': 2, |
273 | - 'calltips/font/family': MONOSPACE, |
274 | - 'calltips/font/size': SMALL, |
275 | - 'calltips/font/italic': False, |
276 | - 'calltips/font/bold': False, |
277 | - 'calltips/size': 600, |
278 | - 'completion/font/family': MONOSPACE, |
279 | - 'completion/font/size': SMALL, |
280 | - 'completion/font/italic': False, |
281 | - 'completion/font/bold': False, |
282 | - 'completion/size': (300, 180), |
283 | - }), |
284 | - ('internal_console', |
285 | - { |
286 | - 'max_line_count': 300, |
287 | - 'working_dir_history': 30, |
288 | - 'working_dir_adjusttocontents': False, |
289 | - 'font/family': MONOSPACE, |
290 | - 'font/size': MEDIUM, |
291 | - 'font/italic': False, |
292 | - 'font/bold': False, |
293 | - 'wrap': True, |
294 | - 'calltips': True, |
295 | - 'codecompletion/auto': False, |
296 | - 'codecompletion/enter_key': True, |
297 | - 'codecompletion/case_sensitive': True, |
298 | - 'codecompletion/show_single': False, |
299 | - 'external_editor/path': 'SciTE', |
300 | - 'external_editor/gotoline': '-goto:', |
301 | - 'light_background': True, |
302 | - }), |
303 | - ('console', |
304 | - { |
305 | - 'shortcut': "Ctrl+Shift+C", |
306 | - 'max_line_count': 10000, |
307 | - 'font/family': MONOSPACE, |
308 | - 'font/size': MEDIUM, |
309 | - 'font/italic': False, |
310 | - 'font/bold': False, |
311 | - 'wrap': True, |
312 | - 'single_tab': True, |
313 | - 'calltips': True, |
314 | - 'object_inspector': True, |
315 | - 'codecompletion/auto': True, |
316 | - 'codecompletion/enter_key': True, |
317 | - 'codecompletion/case_sensitive': True, |
318 | - 'codecompletion/show_single': False, |
319 | - 'show_elapsed_time': True, |
320 | - 'show_icontext': False, |
321 | - 'monitor/enabled': True, |
322 | - 'mpl_patch/enabled': True, |
323 | - 'mpl_patch/backend': 'Qt4Agg', |
324 | - 'umd/enabled': True, |
325 | - 'umd/verbose': True, |
326 | - 'umd/namelist': ['guidata', 'guiqwt'], |
327 | - 'light_background': True, |
328 | - 'ipython_set_color': True, |
329 | - 'remove_pyqt_inputhook': os.name == 'nt', |
330 | - 'ignore_sip_setapi_errors': True, |
331 | - }), |
332 | - ('variable_explorer', |
333 | - { |
334 | - 'shortcut': "Ctrl+Shift+V", |
335 | - 'autorefresh': True, |
336 | - 'autorefresh/timeout': 2000, |
337 | - 'editable_types': type2str(EDITABLE_TYPES), |
338 | - 'picklable_types': type2str(PICKLABLE_TYPES), |
339 | - 'itermax': ITERMAX, |
340 | - 'excluded_names': EXCLUDED, |
341 | - 'exclude_private': True, |
342 | - 'exclude_upper': True, |
343 | - 'exclude_unsupported': True, |
344 | - 'inplace': False, |
345 | - 'truncate': True, |
346 | - 'minmax': False, |
347 | - 'collvalue': False, |
348 | - 'remote_editing': True, |
349 | - }), |
350 | - ('editor', |
351 | - { |
352 | - 'shortcut': "Ctrl+Shift+E", |
353 | - 'printer_header/font/family': SANS_SERIF, |
354 | - 'printer_header/font/size': MEDIUM, |
355 | - 'printer_header/font/italic': False, |
356 | - 'printer_header/font/bold': False, |
357 | - 'font/family': MONOSPACE, |
358 | - 'font/size': MEDIUM, |
359 | - 'font/italic': False, |
360 | - 'font/bold': False, |
361 | - 'wrap': False, |
362 | - 'wrapflag': True, |
363 | - 'code_analysis': True, |
364 | - 'todo_list': True, |
365 | - 'realtime_analysis': True, |
366 | - 'realtime_analysis/timeout': 2500, |
367 | - 'outline_explorer': True, |
368 | - 'line_numbers': True, |
369 | - 'edge_line': True, |
370 | - 'edge_line_column': 80, |
371 | - 'toolbox_panel': True, |
372 | - 'calltips': True, |
373 | - 'go_to_definition': True, |
374 | - 'close_parentheses': True, |
375 | - 'auto_unindent': True, |
376 | - 'object_inspector': True, |
377 | - 'codecompletion/auto': True, |
378 | - 'codecompletion/enter_key': True, |
379 | - 'codecompletion/case_sensitive': True, |
380 | - 'codecompletion/show_single': False, |
381 | - 'check_eol_chars': True, |
382 | - 'tab_always_indent': False, |
383 | - 'intelligent_backspace': True, |
384 | - 'highlight_current_line': True, |
385 | - 'occurence_highlighting': True, |
386 | - 'fullpath_sorting': True, |
387 | - 'show_tab_bar': True, |
388 | - 'max_recent_files': 20, |
389 | - }), |
390 | - ('historylog', |
391 | - { |
392 | - 'shortcut': "Ctrl+Shift+H", |
393 | - 'enable': True, |
394 | - 'max_entries': 100, |
395 | - 'font/family': MONOSPACE, |
396 | - 'font/size': MEDIUM, |
397 | - 'font/italic': False, |
398 | - 'font/bold': False, |
399 | - 'wrap': True, |
400 | - }), |
401 | - ('inspector', |
402 | - { |
403 | - 'shortcut': "Ctrl+Shift+I", |
404 | - 'enable': True, |
405 | - 'max_history_entries': 20, |
406 | - 'font/family': MONOSPACE, |
407 | - 'font/size': SMALL, |
408 | - 'font/italic': False, |
409 | - 'font/bold': False, |
410 | - 'rich_text/font/family': SANS_SERIF, |
411 | - 'rich_text/font/size': 11, |
412 | - 'rich_text/font/italic': False, |
413 | - 'rich_text/font/bold': False, |
414 | - 'wrap': True, |
415 | - 'automatic_import': True, |
416 | - }), |
417 | - ('onlinehelp', |
418 | - { |
419 | - 'shortcut': "Ctrl+Shift+D", |
420 | - 'enable': True, |
421 | - 'zoom_factor': .8, |
422 | - 'max_history_entries': 20, |
423 | - }), |
424 | - ('project_explorer', |
425 | - { |
426 | - 'shortcut': "Ctrl+Shift+P", |
427 | - 'enable': True, |
428 | - }), |
429 | - ('arrayeditor', |
430 | - { |
431 | - 'font/family': MONOSPACE, |
432 | - 'font/size': SMALL, |
433 | - 'font/italic': False, |
434 | - 'font/bold': False, |
435 | - }), |
436 | - ('texteditor', |
437 | - { |
438 | - 'font/family': MONOSPACE, |
439 | - 'font/size': MEDIUM, |
440 | - 'font/italic': False, |
441 | - 'font/bold': False, |
442 | - }), |
443 | - ('dicteditor', |
444 | - { |
445 | - 'font/family': MONOSPACE, |
446 | - 'font/size': SMALL, |
447 | - 'font/italic': False, |
448 | - 'font/bold': False, |
449 | - }), |
450 | - ('explorer', |
451 | - { |
452 | - 'enable': True, |
453 | - 'wrap': True, |
454 | - 'name_filters': ['*.py', '*.pyw', '*.ipy', '*.pth', |
455 | - '*.npy', '*.mat', '*.spydata', |
456 | - '*.txt', '*.csv', '*.dat'], |
457 | - 'valid_filetypes': ['', '.py', '.pyw', '.ipy', '.spydata', '.npy', |
458 | - '.pth', '.txt', '.csv', '.mat', '.h5'], |
459 | - 'show_hidden': True, |
460 | - 'show_all': False, |
461 | - 'show_toolbar': True, |
462 | - 'show_icontext': True, |
463 | - }), |
464 | - ('find_in_files', |
465 | - { |
466 | - 'enable': True, |
467 | - 'supported_encodings': ["utf-8", "iso-8859-1", "cp1252"], |
468 | - 'include': [r'\.pyw?$|\.ipy$|\.txt$|\.c$|\.cpp$|\.h$|\.hpp$|\.f$|\.ini$', '.'], |
469 | - 'include_regexp': True, |
470 | - 'exclude': [r'\.pyc$|\.pyo$|\.orig$|\.hg|\.svn'], |
471 | - 'exclude_regexp': True, |
472 | - 'search_text_regexp': True, |
473 | - 'search_text': [''], |
474 | - 'search_text_samples': [r'# ?TODO|# ?FIXME|# ?XXX|# ?HINT|# ?TIP'], |
475 | - 'in_python_path': False, |
476 | - 'more_options': True, |
477 | - }), |
478 | - ] |
479 | - |
480 | -DEV = not __file__.startswith(sys.prefix) |
481 | -DEV = False |
482 | -from spyderlib import __version__ |
483 | -_subfolder = '.spyder%s' % __version__.split('.')[0] |
484 | -CONF = UserConfig('spyder', defaults=DEFAULTS, load=(not DEV), version='2.0.6', |
485 | - subfolder=_subfolder, backup=True, raw_mode=True) |
486 | -# Removing old .spyder.ini location: |
487 | -old_location = osp.join(get_home_dir(), '.spyder.ini') |
488 | -if osp.isfile(old_location): |
489 | - os.remove(old_location) |
490 | - |
491 | - |
492 | -# Translation support |
493 | -if CONF.get('main', 'translation'): |
494 | - from spyderlib.utils.translations import get_translation |
495 | - _ = get_translation("spyderlib") |
496 | -else: |
497 | - _ = lambda x: x |
498 | - |
499 | - |
500 | -def get_conf_path(filename=None): |
501 | - """Return absolute path for configuration file with specified filename""" |
502 | - conf_dir = osp.join(get_home_dir(), _subfolder) |
503 | - if not osp.isdir(conf_dir): |
504 | - os.mkdir(conf_dir) |
505 | - if filename is None: |
506 | - return conf_dir |
507 | - else: |
508 | - return osp.join(conf_dir, filename) |
509 | - |
510 | -IMG_PATH = [] |
511 | -def add_image_path(path): |
512 | - if not osp.isdir(path): |
513 | - return |
514 | - global IMG_PATH |
515 | - IMG_PATH.append(path) |
516 | - for _root, dirs, _files in os.walk(path): |
517 | - for dir in dirs: |
518 | - IMG_PATH.append(osp.join(path, dir)) |
519 | - |
520 | -add_image_path(osp.join(DATA_PATH, 'images')) |
521 | - |
522 | -def get_image_path( name, default="not_found.png" ): |
523 | - """Return image absolute path""" |
524 | - for img_path in IMG_PATH: |
525 | - full_path = osp.join(img_path, name) |
526 | - if osp.isfile(full_path): |
527 | - return osp.abspath(full_path) |
528 | - if default is not None: |
529 | - return osp.abspath(osp.join(img_path, default)) |
530 | - |
531 | -def get_icon( name, default=None ): |
532 | - """Return image inside a QIcon object""" |
533 | - if default is None: |
534 | - return QIcon(get_image_path(name)) |
535 | - elif isinstance(default, QIcon): |
536 | - icon_path = get_image_path(name, default=None) |
537 | - return default if icon_path is None else QIcon(icon_path) |
538 | - else: |
539 | - return QIcon(get_image_path(name, default)) |
540 | - |
541 | -def get_image_label( name, default="not_found.png" ): |
542 | - """Return image inside a QLabel object""" |
543 | - label = QLabel() |
544 | - label.setPixmap(QPixmap(get_image_path(name, default))) |
545 | - return label |
546 | - |
547 | -def font_is_installed(font): |
548 | - """Check if font is installed""" |
549 | - return [fam for fam in QFontDatabase().families() if unicode(fam)==font] |
550 | - |
551 | -def get_family(families): |
552 | - """Return the first installed font family in family list""" |
553 | - if not isinstance(families, list): |
554 | - families = [ families ] |
555 | - for family in families: |
556 | - if font_is_installed(family): |
557 | - return family |
558 | - else: |
559 | - print "Warning: None of the following fonts is installed: %r" % families |
560 | - return QFont().family() |
561 | - |
562 | -FONT_CACHE = {} |
563 | -def get_font(section, option=None): |
564 | - """Get console font properties depending on OS and user options""" |
565 | - font = FONT_CACHE.get((section, option)) |
566 | - if font is None: |
567 | - if option is None: |
568 | - option = 'font' |
569 | - else: |
570 | - option += '/font' |
571 | - families = CONF.get(section, option+"/family", None) |
572 | - if families is None: |
573 | - return QFont() |
574 | - family = get_family(families) |
575 | - weight = QFont.Normal |
576 | - italic = CONF.get(section, option+'/italic', False) |
577 | - if CONF.get(section, option+'/bold', False): |
578 | - weight = QFont.Bold |
579 | - size = CONF.get(section, option+'/size', 9) |
580 | - font = QFont(family, size, weight) |
581 | - font.setItalic(italic) |
582 | - FONT_CACHE[(section, option)] = font |
583 | - return font |
584 | - |
585 | -def set_font(font, section, option=None): |
586 | - """Set font""" |
587 | - if option is None: |
588 | - option = 'font' |
589 | - else: |
590 | - option += '/font' |
591 | - CONF.set(section, option+'/family', unicode(font.family())) |
592 | - CONF.set(section, option+'/size', float(font.pointSize())) |
593 | - CONF.set(section, option+'/italic', int(font.italic())) |
594 | - CONF.set(section, option+'/bold', int(font.bold())) |
595 | - FONT_CACHE[(section, option)] = font |
596 | - |
597 | - |
598 | -def get_shortcut(context, name, default=NoDefault): |
599 | - """Get keyboard shortcut (key sequence string)""" |
600 | - return CONF.get('shortcuts', '%s/%s' % (context, name), default=default) |
601 | - |
602 | -def set_shortcut(context, name, keystr): |
603 | - """Set keyboard shortcut (key sequence string)""" |
604 | - CONF.set('shortcuts', '%s/%s' % (context, name), keystr) |
605 | - |
606 | -def iter_shortcuts(): |
607 | - """Iterate over keyboard shortcuts""" |
608 | - for option in CONF.options('shortcuts'): |
609 | - context, name = option.split("/", 1) |
610 | - yield context, name, get_shortcut(context, name) |
611 | - |
612 | -def reset_shortcuts(): |
613 | - """Reset keyboard shortcuts to default values""" |
614 | - CONF.remove_section('shortcuts') |
615 | - |
616 | - |
617 | -from spyderlib.widgets.sourcecode.syntaxhighlighters import ( |
618 | - COLOR_SCHEME_KEYS, COLOR_SCHEME_NAMES, COLORS) |
619 | -def get_color_scheme(name): |
620 | - """Get syntax color scheme""" |
621 | - color_scheme = {} |
622 | - for key in COLOR_SCHEME_KEYS: |
623 | - color_scheme[key] = CONF.get("color_schemes", "%s/%s" % (name, key)) |
624 | - return color_scheme |
625 | - |
626 | -def set_color_scheme(name, color_scheme, replace=True): |
627 | - """Set syntax color scheme""" |
628 | - section = "color_schemes" |
629 | - names = CONF.get("color_schemes", "names", []) |
630 | - for key in COLOR_SCHEME_KEYS: |
631 | - option = "%s/%s" % (name, key) |
632 | - value = CONF.get(section, option, default=None) |
633 | - if value is None or replace or name not in names: |
634 | - CONF.set(section, option, color_scheme[key]) |
635 | - names.append(unicode(name)) |
636 | - CONF.set(section, "names", sorted(list(set(names)))) |
637 | - |
638 | -def set_default_color_scheme(name, replace=True): |
639 | - """Reset color scheme to default values""" |
640 | - assert name in COLOR_SCHEME_NAMES |
641 | - set_color_scheme(name, COLORS[name], replace=replace) |
642 | - |
643 | -for _name in COLOR_SCHEME_NAMES: |
644 | - set_default_color_scheme(_name, replace=False) |
645 | -CUSTOM_COLOR_SCHEME_NAME = "Custom" |
646 | -set_color_scheme(CUSTOM_COLOR_SCHEME_NAME, COLORS["Spyder"], replace=False) |
647 | - |
648 | - |
649 | -PLUGIN_PATH = None |
650 | -from spyderlib.utils import programs |
651 | -if programs.is_module_installed("spyderplugins"): |
652 | - import spyderplugins |
653 | - PLUGIN_PATH = osp.abspath(spyderplugins.__path__[0]) |
654 | - add_image_path(osp.join(PLUGIN_PATH, 'images')) |
655 | - |
656 | -def get_spyderplugins(prefix, extension): |
657 | - """Scan spyderplugins module and |
658 | - return the list of module names matching *prefix* and *extension*""" |
659 | - plist = [] |
660 | - if PLUGIN_PATH is not None: |
661 | - for name in os.listdir(PLUGIN_PATH): |
662 | - modname, ext = osp.splitext(name) |
663 | - if prefix is not None and not name.startswith(prefix): |
664 | - continue |
665 | - if extension is not None and ext != extension: |
666 | - continue |
667 | - plist.append(modname) |
668 | - return plist |
669 | - |
670 | -def get_spyderplugins_mods(prefix, extension): |
671 | - """Scan spyderplugins module and |
672 | - return the list of modules matching *prefix* and *extension*""" |
673 | - return [getattr(__import__('spyderplugins.%s' % modname), modname) |
674 | - for modname in get_spyderplugins(prefix, extension)] |
675 | |
676 | === modified file 'MANIFEST.in' |
677 | --- MANIFEST.in 2011-04-29 21:19:10 +0000 |
678 | +++ MANIFEST.in 2012-03-27 18:05:23 +0000 |
679 | @@ -2,7 +2,7 @@ |
680 | recursive-include spyderlibplugins *.pot *.po *.svg *.png |
681 | recursive-include doc *.py *.rst *.png *.ico *. |
682 | recursive-include app_example *.py *.pyw *.bat *.qm *.svg *.png |
683 | -include bin/* |
684 | -include spyder |
685 | +include scripts/* |
686 | include MANIFEST.in |
687 | include README |
688 | +include bootstrap.py |
689 | |
690 | === modified file 'PKG-INFO' |
691 | --- PKG-INFO 2011-06-13 12:17:14 +0000 |
692 | +++ PKG-INFO 2012-03-27 18:05:23 +0000 |
693 | @@ -1,19 +1,19 @@ |
694 | Metadata-Version: 1.1 |
695 | Name: spyder |
696 | -Version: 2.0.12 |
697 | +Version: 2.1.8 |
698 | Summary: Scientific PYthon Development EnviRonment |
699 | -Home-page: http://spyder.googlecode.com |
700 | +Home-page: http://code.google.com/p/spyderlib |
701 | Author: Pierre Raybaut |
702 | Author-email: UNKNOWN |
703 | License: MIT |
704 | -Download-URL: http://spyder.googlecode.com/files/spyder-2.0.12.zip |
705 | -Description: The spyderlib module provides powerful console and |
706 | - editor related widgets to your PyQt4 application. It also includes a |
707 | - Scientific Python development environment named 'Spyder', an alternative to |
708 | - IDLE with powerful interactive features such as variable explorer (with |
709 | - GUI-based editors for dictionaries, lists, NumPy arrays, etc.), object |
710 | - inspector, online help, and a lot more. |
711 | -Keywords: PyQt4 editor shell console widgets IDE |
712 | +Download-URL: http://code.google.com/p/spyderlib/files/spyder-2.1.8.zip |
713 | +Description: The spyderlib library provides powerful console and |
714 | + editor related widgets to your Qt application (PyQt4 or PySide). It also |
715 | + includes a Scientific Python development environment named 'Spyder', an |
716 | + alternative to IDLE with powerful interactive features such as variable |
717 | + explorer (with GUI-based editors for dictionaries, lists, NumPy arrays, etc.), |
718 | + object inspector, online help, and a lot more. |
719 | +Keywords: PyQt4 PySide editor shell console widgets IDE |
720 | Platform: any |
721 | Classifier: License :: OSI Approved :: MIT License |
722 | Classifier: Operating System :: MacOS |
723 | @@ -27,7 +27,6 @@ |
724 | Classifier: Development Status :: 5 - Production/Stable |
725 | Classifier: Topic :: Scientific/Engineering |
726 | Classifier: Topic :: Software Development :: Widget Sets |
727 | -Requires: pyflakes (>0.3.0) |
728 | -Requires: rope (>0.9.0) |
729 | -Requires: sphinx (>0.6.0) |
730 | -Requires: PyQt4 (>4.3) |
731 | +Requires: rope (>=0.9.2) |
732 | +Requires: sphinx (>=0.6.0) |
733 | +Requires: PyQt4 (>=4.4) |
734 | |
735 | === modified file 'README' |
736 | --- README 2011-04-29 21:19:10 +0000 |
737 | +++ README 2012-03-27 18:05:23 +0000 |
738 | @@ -1,72 +1,107 @@ |
739 | -Spyder - Scientific PYthon Development EnviRonment |
740 | -================================================== |
741 | - |
742 | -Copyright © 2009-2010 Pierre Raybaut |
743 | -Licensed under the terms of the MIT License |
744 | -(see spyderlib/__init__.py for details) |
745 | - |
746 | - |
747 | - Overview |
748 | - |
749 | - Spyder is a Python development environment with tons of features: |
750 | - Editor |
751 | - Multi-language editor with function/class browser, code analysis |
752 | - (pyflakes and pylint are currently supported), horizontal/verti- |
753 | - cal splitting, etc. |
754 | - Documentation viewer |
755 | - Automatically show documentation (if available, or source code |
756 | - otherwise) for any class instantiation or function call made |
757 | - in a Python shell (interactive/external console, see below) |
758 | - Interactive console |
759 | - Python shell with workspace support (variable explorer with GUI |
760 | - based editors: dictionary editor, array editor, ...) and |
761 | - matplotlib figures integration |
762 | - External console (separate process) |
763 | - Run Python scripts (interactive, debugging or normal mode) or |
764 | - open a Python interpreter with variable explorer and documenta- |
765 | - tion viewer support (a basic terminal window may also be opened |
766 | - with the external console) |
767 | - File/directories explorer |
768 | - Find in files feature |
769 | - Supporting regular expressions and mercurial repositories |
770 | - History log |
771 | - |
772 | - Spyder may also be used as a PyQt4 extension library (module 'spyderlib'). |
773 | - For example, the Python interactive shell widget used in Spyder may be |
774 | - embedded in your own PyQt4 application. |
775 | - |
776 | - Building dependencies |
777 | - |
778 | - When installing Spyder from the .zip source package (using the |
779 | - command `python setup.py install`), the requirements are: |
780 | - Python 2.x (x>=5) |
781 | - sphinx >= v0.6 (documentation generation) |
782 | - |
783 | - Runtime dependencies |
784 | - |
785 | - Python 2.x (x>=5) |
786 | - PyQt4 4.x (x>=4) |
787 | - |
788 | - Recommended modules |
789 | - pyflakes >v0.3.0 (real-time code analysis) |
790 | - rope >=v0.9.2 (editor code completion, calltips and go-to-definition) |
791 | - sphinx >= v0.6 (object inspector's rich text mode) |
792 | - numpy (N-dimensional arrays) |
793 | - scipy (signal/image processing) |
794 | - matplotlib (2D/3D plotting) |
795 | - IPython (enhanced Python interpreter) |
796 | - |
797 | - Optional modules |
798 | - pylint (powerful code analysis) |
799 | - |
800 | - Installation |
801 | - |
802 | - From the source package (see section 'Building dependencies'): |
803 | - `python setup.py install` |
804 | - |
805 | - More informations |
806 | - |
807 | - Downloads, bug reports and feature requests: |
808 | - http://code.google.com/s/spyder/ |
809 | - Discussions: |
810 | - http://groups.google.com/group/spyder |
811 | \ No newline at end of file |
812 | +Spyder - Scientific PYthon Development EnviRonment |
813 | +================================================== |
814 | + |
815 | +Copyright © 2009-2011 Pierre Raybaut |
816 | +Licensed under the terms of the MIT License |
817 | +(see spyderlib/__init__.py for details) |
818 | + |
819 | + |
820 | + Overview |
821 | + |
822 | + Spyder is a Python development environment with tons of features: |
823 | + Editor |
824 | + Multi-language editor with function/class browser, code analysis |
825 | + (pyflakes and pylint are currently supported), horizontal/verti- |
826 | + cal splitting, etc. |
827 | + Documentation viewer |
828 | + Automatically show documentation (if available, or source code |
829 | + otherwise) for any class instantiation or function call made |
830 | + in a Python shell (interactive/external console, see below) |
831 | + Interactive console |
832 | + Python shell with workspace support (variable explorer with GUI |
833 | + based editors: dictionary editor, array editor, ...) and |
834 | + matplotlib figures integration |
835 | + External console (separate process) |
836 | + Run Python scripts (interactive, debugging or normal mode) or |
837 | + open a Python interpreter with variable explorer and documenta- |
838 | + tion viewer support (a basic terminal window may also be opened |
839 | + with the external console) |
840 | + File/directories explorer |
841 | + Find in files feature |
842 | + Supporting regular expressions and mercurial repositories |
843 | + History log |
844 | + |
845 | + Spyder may also be used as a PyQt4 extension library (module 'spyderlib'). |
846 | + For example, the Python interactive shell widget used in Spyder may be |
847 | + embedded in your own PyQt4 application. |
848 | + |
849 | + Build dependencies |
850 | + |
851 | + When installing Spyder from the .zip source package (using the |
852 | + command `python setup.py install`), the requirements are: |
853 | + Python 2.5+ |
854 | + sphinx 0.6+ (documentation generation) |
855 | + |
856 | + Runtime dependencies |
857 | + |
858 | + Python 2.5+ |
859 | + PyQt4 4.4+ or PySide 1.0.8+ |
860 | + |
861 | + Recommended modules |
862 | + pyflakes v0.5.0+ (real-time code analysis) |
863 | + rope v0.9.2+ (editor code completion, calltips and go-to-definition) |
864 | + sphinx v0.6+ (object inspector's rich text mode) |
865 | + numpy (N-dimensional arrays) |
866 | + scipy (signal/image processing) |
867 | + matplotlib (2D/3D plotting) |
868 | + |
869 | + Optional modules |
870 | + IPython (enhanced Python interpreter) |
871 | + pylint (powerful code analysis) |
872 | + pep8 (style analysis) |
873 | + |
874 | + Running from source |
875 | + |
876 | + It is possible to run Spyder directly from unpacked source folder |
877 | + using Spyder's bootstrap script: |
878 | + `python bootstrap.py` |
879 | + |
880 | + This is especially useful for beta-testing, troubleshooting |
881 | + and development of Spyder itself. |
882 | + |
883 | + Installation |
884 | + |
885 | + This section explains how to install the latest *stable* release of |
886 | + Spyder. If you prefer testing the development version, please use |
887 | + the bootstrap script (see previous section). |
888 | + |
889 | + From the source package (see section 'Building dependencies'), you may |
890 | + install Spyder using the integrated setup.py script based on Python |
891 | + standard library `distutils` with the following command: |
892 | + `python setup.py install` |
893 | + |
894 | + Note that `distutils` does *not* uninstall previous versions of Python |
895 | + packages: it simply copies files on top of an existing installation. |
896 | + When using this command, it is thus highly recommended to uninstall |
897 | + manually any previous version of Spyder by removing the associated |
898 | + directories ('spyderlib' and 'spyderplugins' in your site-packages |
899 | + directory). |
900 | + |
901 | + From the Python package index, you may simply install Spyder *and* |
902 | + upgrade an existing installation using `pip`: |
903 | + http://pypi.python.org/pypi |
904 | + |
905 | + But the easiest way to install the last stable release of Spyder is: |
906 | + * on Windows: |
907 | + * using an executable installer: http://spyderlib.googlecode.com |
908 | + * or through Python(x,y): http://www.pythonxy.com |
909 | + * on Mac OSX, through MacPorts |
910 | + * on GNU/Linux, through your package manager |
911 | + For more details on supported platforms, please go to http://spyderlib.googlecode.com. |
912 | + |
913 | + More informations |
914 | + |
915 | + Downloads, bug reports and feature requests: |
916 | + http://code.google.com/p/spyderlib/ |
917 | + Discussions: |
918 | + http://groups.google.com/group/spyderlib |
919 | \ No newline at end of file |
920 | |
921 | === added file 'app_example/create_exe.py' |
922 | --- app_example/create_exe.py 1970-01-01 00:00:00 +0000 |
923 | +++ app_example/create_exe.py 2012-03-27 18:05:23 +0000 |
924 | @@ -0,0 +1,31 @@ |
925 | +# -*- coding: utf-8 -*- |
926 | +# |
927 | +# Copyright © 2011 Pierre Raybaut |
928 | +# Licensed under the terms of the MIT License |
929 | +# (see spyderlib/__init__.py for details) |
930 | + |
931 | +"""Create a stand-alone executable""" |
932 | + |
933 | +try: |
934 | + from guidata.disthelpers import Distribution |
935 | +except ImportError: |
936 | + raise ImportError, "This script requires guidata 1.4+" |
937 | + |
938 | +import spyderlib |
939 | + |
940 | + |
941 | +def create_executable(): |
942 | + """Build executable using ``guidata.disthelpers``""" |
943 | + dist = Distribution() |
944 | + dist.setup(name="Example", version="1.1", |
945 | + description=u"Embedding Spyder Qt shell", |
946 | + script="example.pyw", target_name="example.exe") |
947 | + spyderlib.add_to_distribution(dist) |
948 | + #dist.add_modules('matplotlib') # Uncomment if you need matplotlib |
949 | + dist.excludes += ['IPython'] |
950 | + # Building executable |
951 | + dist.build('cx_Freeze') |
952 | + |
953 | + |
954 | +if __name__ == '__main__': |
955 | + create_executable() |
956 | |
957 | === removed file 'app_example/run_py2exe.bat' |
958 | --- app_example/run_py2exe.bat 2011-03-05 18:03:43 +0000 |
959 | +++ app_example/run_py2exe.bat 1970-01-01 00:00:00 +0000 |
960 | @@ -1,2 +0,0 @@ |
961 | -python setup.py py2exe |
962 | -pause |
963 | \ No newline at end of file |
964 | |
965 | === removed file 'app_example/setup.py' |
966 | --- app_example/setup.py 2011-04-11 12:46:23 +0000 |
967 | +++ app_example/setup.py 1970-01-01 00:00:00 +0000 |
968 | @@ -1,52 +0,0 @@ |
969 | -#!/usr/bin/env python |
970 | -# -*- coding: utf-8 -*- |
971 | -# |
972 | -# Buiding instructions: |
973 | -# python setup.py py2exe |
974 | - |
975 | -from distutils.core import setup |
976 | -import py2exe # Patching distutils setup |
977 | -from guidata.disthelpers import (remove_build_dist, get_default_excludes, |
978 | - get_default_dll_excludes, create_vs2008_data_files, |
979 | - add_module_data_files, add_modules) |
980 | - |
981 | -# Removing old build/dist folders |
982 | -remove_build_dist() |
983 | - |
984 | -# Including/excluding DLLs and Python modules |
985 | -EXCLUDES = get_default_excludes() |
986 | -INCLUDES = [] |
987 | -DLL_EXCLUDES = get_default_dll_excludes() |
988 | -DATA_FILES = create_vs2008_data_files() |
989 | - |
990 | -# Distributing application-specific data files |
991 | -for _modname in ('spyderlib', 'spyderplugins'): |
992 | - add_module_data_files(_modname, ("", ), |
993 | - ('.mo', '.svg', '.png', '.css', '.py'), |
994 | - DATA_FILES, copy_to_root=False) |
995 | - |
996 | -# Configuring/including Python modules |
997 | -add_modules(('PyQt4', ), # add 'matplotlib' after 'PyQt4' if you need it |
998 | - DATA_FILES, INCLUDES, EXCLUDES) |
999 | - |
1000 | -EXCLUDES += ['IPython'] |
1001 | - |
1002 | -setup( |
1003 | - options={ |
1004 | - "py2exe": {"compressed": 2, "optimize": 2, 'bundle_files': 1, |
1005 | - "includes": INCLUDES, "excludes": EXCLUDES, |
1006 | - "dll_excludes": DLL_EXCLUDES, |
1007 | - "dist_dir": "dist",}, |
1008 | - }, |
1009 | - data_files=DATA_FILES, |
1010 | - windows=[{ |
1011 | - "script": "example.pyw", |
1012 | - "dest_base": "example", |
1013 | - "version": "1.0", |
1014 | - "company_name": "Pierre Raybaut", |
1015 | - "copyright": u"Copyright © 2009-2010 Pierre Raybaut", |
1016 | - "name": u"AppWithSpyder", |
1017 | - "description": u"Application using Spyder console", |
1018 | - },], |
1019 | - zipfile = None, |
1020 | - ) |
1021 | |
1022 | === added file 'bootstrap.py' |
1023 | --- bootstrap.py 1970-01-01 00:00:00 +0000 |
1024 | +++ bootstrap.py 2012-03-27 18:05:23 +0000 |
1025 | @@ -0,0 +1,93 @@ |
1026 | +#!/usr/bin/env python |
1027 | +# -*- coding: utf-8 -*- |
1028 | +# |
1029 | +# Licensed under the terms of the MIT License |
1030 | +# (see spyderlib/__init__.py for details) |
1031 | + |
1032 | +""" |
1033 | +Bootstrapping Spyder |
1034 | +(Executing Spyder from source checkout) |
1035 | + |
1036 | +This script is a contribution from techtonik: |
1037 | +http://code.google.com/p/spyderlib/issues/detail?id=741 |
1038 | +""" |
1039 | + |
1040 | +# pylint: disable=C0103 |
1041 | + |
1042 | +import os |
1043 | +import subprocess |
1044 | +import sys |
1045 | +import optparse |
1046 | + |
1047 | +# Parsing command line options |
1048 | +parser = optparse.OptionParser( |
1049 | + usage="python bootstrap.py [options] [-- spyder_options]", |
1050 | + epilog="Arguments for Spyder's main script are specified after the "\ |
1051 | + "-- symbol\n(example: `python bootstrap.py -- --debug --light`). "\ |
1052 | + "Type `python bootstrap.py -- --help` to read more about Spyder "\ |
1053 | + "options.\n") |
1054 | +parser.add_option('--gui', dest="gui", default=None, |
1055 | + help="GUI toolkit: pyqt (for PyQt4) or pyside (for PySide)") |
1056 | +options, args = parser.parse_args() |
1057 | +assert options.gui in (None, 'pyqt', 'pyside'), \ |
1058 | + "Invalid GUI toolkit option '%s'" % options.gui |
1059 | +# Prepare arguments for Spyder's main script |
1060 | +sys.argv = [sys.argv[0]] + args |
1061 | + |
1062 | + |
1063 | +print("Executing Spyder from source checkout") |
1064 | +DEVPATH = os.path.dirname(os.path.abspath(__file__)) |
1065 | + |
1066 | +# Warn if Spyder is located on non-ASCII path |
1067 | +# http://code.google.com/p/spyderlib/issues/detail?id=812 |
1068 | +try: |
1069 | + os.path.join(DEVPATH, u'test') |
1070 | +except UnicodeDecodeError: |
1071 | + print("STOP: Spyder is located in the path with non-ASCII characters,") |
1072 | + print(" which is known to cause problems (see issue #812).") |
1073 | + raw_input("Press Enter to continue or Ctrl-C to abort...") |
1074 | + |
1075 | +# Retrieving Mercurial revision number |
1076 | +try: |
1077 | + output = subprocess.Popen('hg id -nib "%s"' % DEVPATH, shell=True, |
1078 | + stdout=subprocess.PIPE).communicate() |
1079 | + hgid, hgnum, hgbranch = output[0].strip().split() |
1080 | + print("Revision %s:%s, Branch: %s" % (hgnum, hgid, hgbranch)) |
1081 | +except Exception as exc: |
1082 | + print("Error: Failed to get revision number from Mercurial - %s" % exc) |
1083 | + |
1084 | +sys.path.insert(0, DEVPATH) |
1085 | +print("01. Patched sys.path with %s" % DEVPATH) |
1086 | + |
1087 | +# Selecting the GUI toolkit: PySide if installed, otherwise PyQt4 |
1088 | +# (Note: PyQt4 is still the officially supported GUI toolkit for Spyder) |
1089 | +if options.gui is None: |
1090 | + try: |
1091 | + import PySide |
1092 | + print("02. PySide is detected, selecting (experimental)") |
1093 | + os.environ['QT_API'] = 'pyside' |
1094 | + except: |
1095 | + print("02. No PySide detected, using PyQt4 if available") |
1096 | +else: |
1097 | + print ("02. Skipping GUI toolkit detection") |
1098 | + os.environ["QT_API"] = options.gui |
1099 | + |
1100 | +# Importing Spyder |
1101 | +from spyderlib import spyder |
1102 | +QT_API = spyder.qt._modname |
1103 | +QT_LIB = {'pyqt': 'PyQt4', 'pyside': 'PySide'}[QT_API] |
1104 | +if QT_API == 'pyqt': |
1105 | + import sip |
1106 | + try: |
1107 | + QT_LIB += (" (API v%d)" % sip.getapi('QString')) |
1108 | + except AttributeError: |
1109 | + pass |
1110 | +print("03. Imported Spyder %s (Qt %s via %s %s)" % \ |
1111 | + (spyder.__version__, spyder.qt.QtCore.__version__, |
1112 | + QT_LIB, spyder.qt.__version__)) |
1113 | + |
1114 | +# Executing Spyder |
1115 | +print("0x. Enforcing parent console (Windows only)") |
1116 | +sys.argv.append("--showconsole") # Windows only: show parent console |
1117 | +print("04. Executing spyder.main()") |
1118 | +spyder.main() |
1119 | |
1120 | === modified file 'debian/changelog' |
1121 | --- debian/changelog 2011-06-13 12:17:14 +0000 |
1122 | +++ debian/changelog 2012-03-27 18:05:23 +0000 |
1123 | @@ -1,3 +1,69 @@ |
1124 | +spyder (2.1.8-1ubuntu1) oneiric; urgency=low |
1125 | + |
1126 | + * Added icon entry to spyder.desktop (LP: #890243) |
1127 | + |
1128 | + -- Matthew Goode <a4024921@ce-gl079> Tue, 27 Mar 2012 19:51:02 +0200 |
1129 | + |
1130 | +spyder (2.1.8-1) unstable; urgency=low |
1131 | + |
1132 | + * Imported Upstream version 2.1.8 |
1133 | + * prepare for backport |
1134 | + |
1135 | + -- Picca Frédéric-Emmanuel <picca@debian.org> Mon, 20 Feb 2012 23:02:50 +0100 |
1136 | + |
1137 | +spyder (2.1.7-1) unstable; urgency=low |
1138 | + |
1139 | + * Imported Upstream version 2.1.7 |
1140 | + |
1141 | + -- Picca Frédéric-Emmanuel <picca@debian.org> Mon, 16 Jan 2012 18:03:01 +0100 |
1142 | + |
1143 | +spyder (2.1.6-1) unstable; urgency=low |
1144 | + |
1145 | + * Imported Upstream version 2.1.6 |
1146 | + |
1147 | + -- Picca Frédéric-Emmanuel <picca@debian.org> Sun, 01 Jan 2012 17:53:28 +0100 |
1148 | + |
1149 | +spyder (2.1.4-1) unstable; urgency=low |
1150 | + |
1151 | + * Imported Upstream version 2.1.4 |
1152 | + |
1153 | + -- Picca Frédéric-Emmanuel <picca@debian.org> Wed, 30 Nov 2011 17:59:32 +0100 |
1154 | + |
1155 | +spyder (2.1.3-1) unstable; urgency=low |
1156 | + |
1157 | + * Imported Upstream version 2.1.3 |
1158 | + * update the copyright file with the new upstream policy |
1159 | + |
1160 | + -- Picca Frédéric-Emmanuel <picca@debian.org> Mon, 28 Nov 2011 17:39:39 +0100 |
1161 | + |
1162 | +spyder (2.1.2-1) unstable; urgency=low |
1163 | + |
1164 | + * Import Upstream version 2.1.2 |
1165 | + * debian/spyder.bug-control |
1166 | + - report also python-spyderlib (Closes: #647696) |
1167 | + |
1168 | + -- Picca Frédéric-Emmanuel <picca@debian.org> Thu, 17 Nov 2011 21:11:14 +0100 |
1169 | + |
1170 | +spyder (2.1.1-1) unstable; urgency=low |
1171 | + |
1172 | + * Import Upstream version 2.1.1 (Closes: #636726) |
1173 | + * use the old upstream url http://code.google.com/p/spyder/ |
1174 | + until the transition is done. |
1175 | + * debian/control |
1176 | + - fix Breaks and Replace |
1177 | + - Depends: python-sphinx (>= 1.0.7+dfsg), pyflakes (>= 0.5.0), |
1178 | + pep8, python-rope (>= 0.9.2) |
1179 | + * debian/copyright fixed using config-edit |
1180 | + * debian/rules |
1181 | + - use the new dh_sphinxdoc helper |
1182 | + * debian/patches |
1183 | + - 0001-fix-documentation-installation.patch (updated) |
1184 | + build the sphinx documentation only once. |
1185 | + * debian/spyder.desktop (deleted) |
1186 | + - use the one provided by the upstream |
1187 | + |
1188 | + -- Picca Frédéric-Emmanuel <picca@debian.org> Mon, 31 Oct 2011 12:43:34 +0200 |
1189 | + |
1190 | spyder (2.0.12-1) unstable; urgency=low |
1191 | |
1192 | * Imported Upstream version 2.0.12 |
1193 | |
1194 | === modified file 'debian/control' |
1195 | --- debian/control 2011-06-13 12:17:14 +0000 |
1196 | +++ debian/control 2012-03-27 18:05:23 +0000 |
1197 | @@ -6,13 +6,15 @@ |
1198 | Alexandre Fayolle <afayolle@debian.org>, |
1199 | Picca Frédéric-Emmanuel <picca@debian.org> |
1200 | DM-Upload-Allowed: yes |
1201 | -Build-Depends: debhelper (>= 8.1.1), python-all (>= 2.6.6-3~) |
1202 | -Build-Depends-Indep: python-sphinx, xsltproc |
1203 | +Build-Depends: debhelper (>= 8), |
1204 | + python-all (>= 2.6.6-3~) |
1205 | +Build-Depends-Indep: python-sphinx, |
1206 | + xsltproc |
1207 | Standards-Version: 3.9.2 |
1208 | X-Python-Version: >= 2.6 |
1209 | Vcs-Git: git://anonscm.debian.org/debian-science/packages/spyder.git |
1210 | Vcs-Browser: http://anonscm.debian.org/gitweb/?p=debian-science/packages/spyder.git |
1211 | -Homepage: http://code.google.com/p/spyder/ |
1212 | +Homepage: http://code.google.com/p/spyderlib/ |
1213 | |
1214 | Package: spyder |
1215 | Architecture: all |
1216 | @@ -30,13 +32,25 @@ |
1217 | Section: python |
1218 | Depends: ${misc:Depends}, |
1219 | ${python:Depends}, |
1220 | - python-qt4, |
1221 | - libjs-jquery |
1222 | -Recommends: python-scipy, python-numpy, python-matplotlib, ipython, pyflakes, pylint, python-rope, python-sphinx |
1223 | + ${sphinxdoc:Depends}, |
1224 | + python-qt4 |
1225 | +Recommends: ipython, |
1226 | + pep8, |
1227 | + pyflakes (>= 0.5.0), |
1228 | + pylint, |
1229 | + python-matplotlib, |
1230 | + python-rope (>= 0.9.2), |
1231 | + python-numpy, |
1232 | + python-scipy, |
1233 | + python-sphinx (>= 0.6.0) |
1234 | Provides: ${python:Provides} |
1235 | -Breaks: ${python:Breaks}, spyder (<< 2.0.11-1), |
1236 | -Replaces: spyder (<< 2.0.11-1) |
1237 | +Breaks: ${python:Breaks}, spyder (<< 2.0.12-1), |
1238 | +Replaces: spyder (<< 2.0.12-1) |
1239 | Description: Python IDE for scientists |
1240 | - Spyder (previously known as Pydee) is a free open-source Python |
1241 | - development environment providing MATLAB-like features in a simple |
1242 | - and light-weighted software. |
1243 | + Originally written to design Spyder (the Scientific PYthon |
1244 | + Development EnviRonment), the spyderlib Python library provides |
1245 | + ready-to-use pure-Python widgets: source code editor with syntax |
1246 | + highlighting and code introspection/analysis features, NumPy array |
1247 | + editor, dictionary editor, Python console, etc. It's based on the Qt |
1248 | + Python binding module PyQt4 (and is compatible with PySide since |
1249 | + v2.2). |
1250 | |
1251 | === modified file 'debian/copyright' |
1252 | --- debian/copyright 2011-06-13 12:17:14 +0000 |
1253 | +++ debian/copyright 2012-03-27 18:05:23 +0000 |
1254 | @@ -1,18 +1,207 @@ |
1255 | Format: http://dep.debian.net/deps/dep5 |
1256 | Upstream-Name: Pierre Raybaut <pierre.raybaut@gmail.com> |
1257 | Upstream-Contact: pierre.raybaut@gmail.com |
1258 | -Source: http://code.google.com/p/spyder |
1259 | +Source: http://code.google.com/p/spyderlib |
1260 | |
1261 | Files: debian/* |
1262 | Copyright: © 2009-2010 Ludovic Aubry <laubrycomm@free.fr> |
1263 | - © 2010-2011, Picca Frédéric-Emmanuel <picca@debian.org> |
1264 | -Licence: MIT |
1265 | + © 2010-2011, Picca Frédéric-Emmanuel <picca@debian.org> |
1266 | +License: Expat |
1267 | |
1268 | Files: * |
1269 | Copyright: © 2009-2011 Pierre Raybaut <pierre.raybaut@gmail.com> |
1270 | -Licence: MIT |
1271 | - |
1272 | -Licence: MIT |
1273 | +License: Expat |
1274 | + |
1275 | +Files: spyderlib/utils/external/pickleshare.py |
1276 | +Copyright: © Ville Vainio <vivainio@gmail.com> |
1277 | +License: Expat |
1278 | + |
1279 | +Files: spyderlib/utils/module_completion.py |
1280 | +Copyright: 2005,2008,2009,2010,2011 The IPython Development Team |
1281 | + 2001-2007, Fernando Perez <fperez@colorado.edu> |
1282 | + 2001, Janko Hauser <jhauser@zscout.de> |
1283 | + 2001, Nathaniel Gray <n8gray@caltech.edu> |
1284 | + 2002-2005, Alexander Schmolck |
1285 | + 2004, W.J. van der Laan <gnufnork@hetdigitalegat.nl> |
1286 | + 2001, Python Software Foundation, www.python.org |
1287 | + 2009, Gael Varoquaux (gael.varoquaux@normalesup.org) |
1288 | + 2005, Jörgen Stenarson <jorgen.stenarson@bostream.nu> |
1289 | +License: BSD-3-clause |
1290 | + |
1291 | +Files: spyderlib/utils/sphinxify.py |
1292 | +Copyright: © 2009 Tim Dumol <tim@timdumol.com> |
1293 | + © 2010 Carlos Cordoba <ccordoba12@gmail.com> |
1294 | +License: BSD-3-clause |
1295 | + |
1296 | +Files: spyderplugins/p_profiler.py spyderplugins/widgets/profilergui.py |
1297 | +Copyright: © 2011 Pierre Raybaut <pierre.raybaut@gmail.com> |
1298 | + © 2011 Santiago Jaramillo <jara@cshl.edu> |
1299 | +License: Expat |
1300 | + |
1301 | +Files: spyderlib/images/options.svg spyderlib/images/sift.svg |
1302 | +Copyright: © 2011 Pierre Raybaut <pierre.raybaut@gmail.com> |
1303 | +License: CC-BY-SA |
1304 | + |
1305 | +Files: spyderlib/images/spyder.svg spyderlib/images/spyder_light.svg |
1306 | +Copyright: © 2011 Pierre Raybaut <pierre.raybaut@gmail.com> |
1307 | +License: CC-BY |
1308 | + |
1309 | +Files: spyderlib/utils/external/path.py |
1310 | +Copyright: © 2007 Jason Orendorff <jason.orendorff@gmail.com> |
1311 | +License: public-domain |
1312 | + |
1313 | +License: BSD-3-clause |
1314 | + All rights reserved. |
1315 | + . |
1316 | + Redistribution and use in source and binary forms, with or without |
1317 | + modification, are permitted provided that the following conditions are |
1318 | + met: |
1319 | + . |
1320 | + Redistributions of source code must retain the above copyright notice, |
1321 | + this list of conditions and the following disclaimer. |
1322 | + . |
1323 | + Redistributions in binary form must reproduce the above copyright notice, |
1324 | + this list of conditions and the following disclaimer in the documentation |
1325 | + and/or other materials provided with the distribution. |
1326 | + . |
1327 | + Neither the name of the IPython Development Team nor the names of its |
1328 | + contributors may be used to endorse or promote products derived from this |
1329 | + software without specific prior written permission. |
1330 | + . |
1331 | + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS |
1332 | + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, |
1333 | + THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
1334 | + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR |
1335 | + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
1336 | + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
1337 | + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
1338 | + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
1339 | + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
1340 | + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
1341 | + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
1342 | + |
1343 | +License: CC-BY |
1344 | + THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. |
1345 | + . |
1346 | + BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. |
1347 | + . |
1348 | + 1. Definitions |
1349 | + . |
1350 | + "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. |
1351 | + "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License. |
1352 | + "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership. |
1353 | + "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. |
1354 | + "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. |
1355 | + "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. |
1356 | + "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. |
1357 | + "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. |
1358 | + "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. |
1359 | + . |
1360 | + 2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. |
1361 | + . |
1362 | + 3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: |
1363 | + . |
1364 | + to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; |
1365 | + to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified."; |
1366 | + to Distribute and Publicly Perform the Work including as incorporated in Collections; and, |
1367 | + to Distribute and Publicly Perform Adaptations. |
1368 | + . |
1369 | + For the avoidance of doubt: |
1370 | + Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; |
1371 | + Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and, |
1372 | + Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License. |
1373 | + . |
1374 | + The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved. |
1375 | + . |
1376 | + 4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: |
1377 | + . |
1378 | + You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(b), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(b), as requested. |
1379 | + If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4 (b) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. |
1380 | + Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise. |
1381 | + . |
1382 | + 5. Representations, Warranties and Disclaimer |
1383 | + . |
1384 | + UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. |
1385 | + . |
1386 | + 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. |
1387 | + . |
1388 | + 7. Termination |
1389 | + . |
1390 | + This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. |
1391 | + Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. |
1392 | + . |
1393 | + 8. Miscellaneous |
1394 | + . |
1395 | + Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. |
1396 | + Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. |
1397 | + If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. |
1398 | + No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. |
1399 | + This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. |
1400 | + The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. |
1401 | + |
1402 | +License: CC-BY-SA |
1403 | + THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. |
1404 | + . |
1405 | + BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. |
1406 | + . |
1407 | + 1. Definitions |
1408 | + . |
1409 | + "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. |
1410 | + "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined below) for the purposes of this License. |
1411 | + "Creative Commons Compatible License" means a license that is listed at http://creativecommons.org/compatiblelicenses that has been approved by Creative Commons as being essentially equivalent to this License, including, at a minimum, because that license: (i) contains terms that have the same purpose, meaning and effect as the License Elements of this License; and, (ii) explicitly permits the relicensing of adaptations of works made available under that license under this License or a Creative Commons jurisdiction license with the same License Elements as this License. |
1412 | + "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership. |
1413 | + "License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, ShareAlike. |
1414 | + "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. |
1415 | + "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. |
1416 | + "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. |
1417 | + "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. |
1418 | + "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. |
1419 | + "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. |
1420 | + . |
1421 | + 2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. |
1422 | + . |
1423 | + 3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: |
1424 | + . |
1425 | + to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; |
1426 | + to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified."; |
1427 | + to Distribute and Publicly Perform the Work including as incorporated in Collections; and, |
1428 | + to Distribute and Publicly Perform Adaptations. |
1429 | + . |
1430 | + For the avoidance of doubt: |
1431 | + Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; |
1432 | + Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and, |
1433 | + Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License. |
1434 | + . |
1435 | + The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved. |
1436 | + . |
1437 | + 4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: |
1438 | + . |
1439 | + You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(c), as requested. |
1440 | + You may Distribute or Publicly Perform an Adaptation only under the terms of: (i) this License; (ii) a later version of this License with the same License Elements as this License; (iii) a Creative Commons jurisdiction license (either this or a later license version) that contains the same License Elements as this License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible License. If you license the Adaptation under one of the licenses mentioned in (iv), you must comply with the terms of that license. If you license the Adaptation under the terms of any of the licenses mentioned in (i), (ii) or (iii) (the "Applicable License"), you must comply with the terms of the Applicable License generally and the following provisions: (I) You must include a copy of, or the URI for, the Applicable License with every copy of each Adaptation You Distribute or Publicly Perform; (II) You may not offer or impose any terms on the Adaptation that restrict the terms of the Applicable License or the ability of the recipient of the Adaptation to exercise the rights granted to that recipient under the terms of the Applicable License; (III) You must keep intact all notices that refer to the Applicable License and to the disclaimer of warranties with every copy of the Work as included in the Adaptation You Distribute or Publicly Perform; (IV) when You Distribute or Publicly Perform the Adaptation, You may not impose any effective technological measures on the Adaptation that restrict the ability of a recipient of the Adaptation from You to exercise the rights granted to that recipient under the terms of the Applicable License. This Section 4(b) applies to the Adaptation as incorporated in a Collection, but this does not require the Collection apart from the Adaptation itself to be made subject to the terms of the Applicable License. |
1441 | + If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Ssection 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. |
1442 | + Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise. |
1443 | + . |
1444 | + 5. Representations, Warranties and Disclaimer |
1445 | + . |
1446 | + UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. |
1447 | + . |
1448 | + 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. |
1449 | + . |
1450 | + 7. Termination |
1451 | + . |
1452 | + This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. |
1453 | + Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. |
1454 | + . |
1455 | + 8. Miscellaneous |
1456 | + . |
1457 | + Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. |
1458 | + Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. |
1459 | + If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. |
1460 | + No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. |
1461 | + This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. |
1462 | + The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. |
1463 | + |
1464 | +License: Expat |
1465 | Permission is hereby granted, free of charge, to any person |
1466 | obtaining a copy of this software and associated documentation |
1467 | files (the "Software"), to deal in the Software without |
1468 | @@ -21,10 +210,10 @@ |
1469 | copies of the Software, and to permit persons to whom the |
1470 | Software is furnished to do so, subject to the following |
1471 | conditions: |
1472 | - |
1473 | + . |
1474 | The above copyright notice and this permission notice shall be |
1475 | included in all copies or substantial portions of the Software. |
1476 | - |
1477 | + . |
1478 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
1479 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
1480 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
1481 | @@ -33,3 +222,16 @@ |
1482 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
1483 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
1484 | OTHER DEALINGS IN THE SOFTWARE. |
1485 | + |
1486 | +License: public-domain |
1487 | + This was created by unknown people across unknown aeons, and |
1488 | + changed and updated by lots of more people. It was sung by |
1489 | + medieval bards, and touched by that Shakespeare dude, and |
1490 | + possibly even Mary Queen of Scots. Who knows? Nobody knows, |
1491 | + not even the Shadow knows! There is no evil lurking in the |
1492 | + minds of anyone here. |
1493 | + . |
1494 | + This work is therefore not copyrighted by anyone, and is as |
1495 | + much in the public domain as anything can be. Truly, utterly, |
1496 | + totally. Be happy. |
1497 | + |
1498 | |
1499 | === modified file 'debian/patches/0001-fix-documentation-installation.patch' |
1500 | --- debian/patches/0001-fix-documentation-installation.patch 2011-04-11 12:46:23 +0000 |
1501 | +++ debian/patches/0001-fix-documentation-installation.patch 2012-03-27 18:05:23 +0000 |
1502 | @@ -1,22 +1,38 @@ |
1503 | -From: =?UTF-8?q?Picca=20Fr=C3=A9d=C3=A9ric-Emmanuel?= <picca@synchrotron-soleil.fr> |
1504 | -Date: Thu, 3 Mar 2011 22:39:45 +0100 |
1505 | +From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric-Emmanuel=20PICCA?= |
1506 | + <picca@synchrotron-soleil.fr> |
1507 | +Date: Thu, 3 Nov 2011 15:31:46 +0100 |
1508 | Subject: fix-documentation-installation |
1509 | |
1510 | --- |
1511 | - spyderlib/config.py | 2 +- |
1512 | - 1 files changed, 1 insertions(+), 1 deletions(-) |
1513 | + setup.py | 4 ++-- |
1514 | + spyderlib/__init__.py | 1 + |
1515 | + 2 files changed, 3 insertions(+), 2 deletions(-) |
1516 | |
1517 | -diff --git a/spyderlib/config.py b/spyderlib/config.py |
1518 | -index 3709e3c..8354978 100644 |
1519 | ---- a/spyderlib/config.py |
1520 | -+++ b/spyderlib/config.py |
1521 | -@@ -28,7 +28,7 @@ DOC_DEV_PATH = osp.join(DATA_DEV_PATH, 'doc') |
1522 | - |
1523 | - # The two following lines are patched when making the debian package: |
1524 | - DATA_PATH = DATA_DEV_PATH # @@@DATA_PATH@@@ |
1525 | --DOC_PATH = DOC_DEV_PATH # @@@DOC_PATH@@@ |
1526 | -+DOC_PATH = "/usr/share/doc/spyder/html" # @@@DOC_PATH@@@ |
1527 | - |
1528 | - EDITABLE_TYPES = [int, long, float, list, dict, tuple, str, unicode, date] |
1529 | - try: |
1530 | +diff --git a/setup.py b/setup.py |
1531 | +index a74961f..b9892f6 100644 |
1532 | +--- a/setup.py |
1533 | ++++ b/setup.py |
1534 | +@@ -52,8 +52,8 @@ class MyBuildDoc(setup_command.BuildDoc): |
1535 | + def run(self): |
1536 | + build = self.get_finalized_command('build') |
1537 | + sys.path.insert(0, os.path.abspath(build.build_lib)) |
1538 | +- dirname = self.distribution.get_command_obj('build').build_purelib |
1539 | +- self.builder_target_dir = osp.join(dirname, 'spyderlib', 'doc') |
1540 | ++ #dirname = self.distribution.get_command_obj('build').build_purelib |
1541 | ++ #self.builder_target_dir = osp.join(dirname, 'spyderlib', 'doc') |
1542 | + try: |
1543 | + setup_command.BuildDoc.run(self) |
1544 | + except UnicodeDecodeError: |
1545 | +diff --git a/spyderlib/__init__.py b/spyderlib/__init__.py |
1546 | +index 3e72303..717bf75 100644 |
1547 | +--- a/spyderlib/__init__.py |
1548 | ++++ b/spyderlib/__init__.py |
1549 | +@@ -35,6 +35,7 @@ __forum_url__ = 'http://groups.google.com/group/spyderlib' |
1550 | + # Dear (Debian, RPM, ...) package makers, please feel free to customize the |
1551 | + # following path to module's data (images) and translations: |
1552 | + DATAPATH = LOCALEPATH = DOCPATH = '' |
1553 | ++DOCPATH = '/usr/share/doc/python-spyderlib/html' |
1554 | + |
1555 | + def add_to_distribution(dist): |
1556 | + """Add package to py2exe/cx_Freeze distribution object |
1557 | -- |
1558 | |
1559 | === added file 'debian/python-spyderlib.bug-control' |
1560 | --- debian/python-spyderlib.bug-control 1970-01-01 00:00:00 +0000 |
1561 | +++ debian/python-spyderlib.bug-control 2012-03-27 18:05:23 +0000 |
1562 | @@ -0,0 +1,1 @@ |
1563 | +Report-with: python-qt4 |
1564 | |
1565 | === added file 'debian/python-spyderlib.docs' |
1566 | --- debian/python-spyderlib.docs 1970-01-01 00:00:00 +0000 |
1567 | +++ debian/python-spyderlib.docs 2012-03-27 18:05:23 +0000 |
1568 | @@ -0,0 +1,1 @@ |
1569 | +build/sphinx/html |
1570 | \ No newline at end of file |
1571 | |
1572 | === removed file 'debian/python-spyderlib.links' |
1573 | --- debian/python-spyderlib.links 2011-06-13 12:17:14 +0000 |
1574 | +++ debian/python-spyderlib.links 1970-01-01 00:00:00 +0000 |
1575 | @@ -1,2 +0,0 @@ |
1576 | -/usr/share/javascript/jquery/jquery.js /usr/share/pyshared/spyderlib/doc/_static/jquery.js |
1577 | -/usr/share/pyshared/spyderlib/doc /usr/share/doc/python-spyderlib/html |
1578 | |
1579 | === added file 'debian/python-spyderlib.preinst' |
1580 | --- debian/python-spyderlib.preinst 1970-01-01 00:00:00 +0000 |
1581 | +++ debian/python-spyderlib.preinst 2012-03-27 18:05:23 +0000 |
1582 | @@ -0,0 +1,11 @@ |
1583 | +#!/bin/sh |
1584 | + |
1585 | +set -e |
1586 | + |
1587 | +if [ "$1" = "upgrade" ] && dpkg --compare-versions "$2" lt-nl 2.1.0-1; then |
1588 | + if [ -L /usr/share/doc/python-spyderlib/html ]; then |
1589 | + rm -f /usr/share/doc/python-spyderlib/html |
1590 | + fi |
1591 | +fi |
1592 | + |
1593 | +#DEBHELPER# |
1594 | \ No newline at end of file |
1595 | |
1596 | === modified file 'debian/rules' |
1597 | --- debian/rules 2011-04-29 21:19:10 +0000 |
1598 | +++ debian/rules 2012-03-27 18:05:23 +0000 |
1599 | @@ -1,23 +1,24 @@ |
1600 | #!/usr/bin/make -f |
1601 | # -*- makefile -*- |
1602 | -# Sample debian/rules that uses debhelper. |
1603 | -# This file was originally written by Joey Hess and Craig Small. |
1604 | -# As a special exception, when this file is copied by dh-make into a |
1605 | -# dh-make output file, you may use that output file without restriction. |
1606 | -# This special exception was added by Craig Small in version 0.37 of dh-make. |
1607 | |
1608 | # Uncomment this to turn on verbose mode. |
1609 | #export DH_VERBOSE=1 |
1610 | |
1611 | - |
1612 | DB2MAN = /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/manpages/docbook.xsl |
1613 | XP = xsltproc -''-nonet -''-param man.charmap.use.subset "0" |
1614 | |
1615 | +# for backport on stable without bpo |
1616 | +WITH_SPHINXDOC = $(shell if [ -x /usr/bin/dh_sphinxdoc ]; then echo "--with sphinxdoc"; fi) |
1617 | + |
1618 | debian/spyder.1: debian/manpage.xml |
1619 | $(XP) $(DB2MAN) $< |
1620 | |
1621 | installman: spyder.1 |
1622 | dh installman |
1623 | |
1624 | +override_dh_clean: |
1625 | + rm -rf build/sphinx |
1626 | + dh_clean |
1627 | + |
1628 | %: |
1629 | - dh $@ --with python2 |
1630 | + dh $@ --with python2 $(WITH_SPHINXDOC) |
1631 | |
1632 | === added file 'debian/spyder.bug-control' |
1633 | --- debian/spyder.bug-control 1970-01-01 00:00:00 +0000 |
1634 | +++ debian/spyder.bug-control 2012-03-27 18:05:23 +0000 |
1635 | @@ -0,0 +1,1 @@ |
1636 | +Report-with: python-spyderlib python-qt4 |
1637 | |
1638 | === removed file 'debian/spyder.desktop' |
1639 | --- debian/spyder.desktop 2011-06-13 12:17:14 +0000 |
1640 | +++ debian/spyder.desktop 1970-01-01 00:00:00 +0000 |
1641 | @@ -1,9 +0,0 @@ |
1642 | -[Desktop Entry] |
1643 | -Version=1.0 |
1644 | -Type=Application |
1645 | -Name=spyder |
1646 | -GenericName=spyder |
1647 | -Comment=Python IDE for scientists |
1648 | -TryExec=spyder |
1649 | -Exec=spyder |
1650 | -Categories=Education;Science;Physics; |
1651 | |
1652 | === modified file 'debian/spyder.install' |
1653 | --- debian/spyder.install 2011-06-13 12:17:14 +0000 |
1654 | +++ debian/spyder.install 2012-03-27 18:05:23 +0000 |
1655 | @@ -1,2 +1,2 @@ |
1656 | usr/bin |
1657 | -debian/spyder.desktop /usr/share/applications |
1658 | +scripts/spyder.desktop /usr/share/applications |
1659 | |
1660 | === modified file 'debian/spyder.links' |
1661 | --- debian/spyder.links 2011-06-13 12:17:14 +0000 |
1662 | +++ debian/spyder.links 2012-03-27 18:05:23 +0000 |
1663 | @@ -1,1 +1,1 @@ |
1664 | -/usr/share/pyshared/spyderlib/doc /usr/share/doc/spyder/html |
1665 | +/usr/share/doc/python-spyderlib/html /usr/share/doc/spyder/html |
1666 | |
1667 | === added file 'debian/todo' |
1668 | --- debian/todo 1970-01-01 00:00:00 +0000 |
1669 | +++ debian/todo 2012-03-27 18:05:23 +0000 |
1670 | @@ -0,0 +1,9 @@ |
1671 | +upstream: |
1672 | + - missing license header in |
1673 | + - spyderlib/scientific_startup.py |
1674 | + - spyderlib/utils/external/__init__.py |
1675 | + - spyderlib/widgets/externalshell/introspection.py |
1676 | + - spyderlib/widgets/ipython.py |
1677 | + - spyderplugins/io_hdf5.py |
1678 | + - spyderlib/utils/module_completion.py |
1679 | + modifié donc il manque ton copyright ? |
1680 | \ No newline at end of file |
1681 | |
1682 | === modified file 'debian/watch' |
1683 | --- debian/watch 2011-06-13 12:17:14 +0000 |
1684 | +++ debian/watch 2012-03-27 18:05:23 +0000 |
1685 | @@ -1,6 +1,6 @@ |
1686 | version=3 |
1687 | opts=\ |
1688 | -downloadurlmangle=s|.*[?]name=(.*?)&.*|http://spyder.googlecode.com/files/$1|,\ |
1689 | +downloadurlmangle=s|.*[?]name=(.*?)&.*|http://spyderlib.googlecode.com/files/$1|,\ |
1690 | filenamemangle=s|[^/]+[?]name=(.*?)&.*|$1| \ |
1691 | -http://code.google.com/p/spyder/downloads/detail[?]name=spyder-([0-9.]+).zip&.* |
1692 | +http://code.google.com/p/spyderlib/downloads/detail[?]name=spyder-([\d\.]+(?:rc|beta)*?\d*?).zip&.* |
1693 | |
1694 | |
1695 | === modified file 'doc/conf.py' |
1696 | --- doc/conf.py 2011-04-29 21:19:10 +0000 |
1697 | +++ doc/conf.py 2012-03-27 18:05:23 +0000 |
1698 | @@ -45,9 +45,9 @@ |
1699 | # built documents. |
1700 | # |
1701 | # The short X.Y version. |
1702 | -version = '2.0' |
1703 | +version = '2.1' |
1704 | # The full version, including alpha/beta/rc tags. |
1705 | -release = '2.0' |
1706 | +release = '2.1' |
1707 | |
1708 | # The language for content autogenerated by Sphinx. Refer to documentation |
1709 | # for a list of supported languages. |
1710 | |
1711 | === modified file 'doc/debugging.rst' |
1712 | --- doc/debugging.rst 2011-04-11 12:46:23 +0000 |
1713 | +++ doc/debugging.rst 2012-03-27 18:05:23 +0000 |
1714 | @@ -1,31 +1,31 @@ |
1715 | -Debugging |
1716 | -========= |
1717 | - |
1718 | -Debugging in Spyder is supported thanks to the following Python modules: |
1719 | - |
1720 | - * `pdb`: the Python debugger, which is included in Python standard library |
1721 | - |
1722 | - * `winpdb`: a graphical frontend to `pdb`, which is an external package |
1723 | - (in the :doc:`editor`, press F7 to run `winpdb` on the currently edited |
1724 | - script) |
1725 | - |
1726 | -Debugging with pdb |
1727 | ------------------- |
1728 | - |
1729 | -The Python debugger is partly integrated in Spyder: |
1730 | - |
1731 | - * simple breakpoints and conditonal breakpoints may be defined in the |
1732 | - :doc:`editor` |
1733 | - |
1734 | - * the current frame (debugging step) is highlighted in the :doc:`editor` |
1735 | - |
1736 | - * at each breakpoint, globals may be accessed through |
1737 | - the :doc:`variableexplorer` |
1738 | - |
1739 | -For a simple, yet quite complete introduction to `pdb`, you may read this: |
1740 | -http://pythonconquerstheuniverse.wordpress.com/category/the-python-debugger/ |
1741 | - |
1742 | - |
1743 | -Related plugins: |
1744 | - * :doc:`editor` |
1745 | - * :doc:`console` |
1746 | +Debugging |
1747 | +========= |
1748 | + |
1749 | +Debugging in Spyder is supported thanks to the following Python modules: |
1750 | + |
1751 | + * `pdb`: the Python debugger, which is included in Python standard library |
1752 | + |
1753 | + * `winpdb`: a graphical frontend to `pdb`, which is an external package |
1754 | + (in the :doc:`editor`, press F7 to run `winpdb` on the currently edited |
1755 | + script) |
1756 | + |
1757 | +Debugging with pdb |
1758 | +------------------ |
1759 | + |
1760 | +The Python debugger is partly integrated in Spyder: |
1761 | + |
1762 | + * simple breakpoints and conditonal breakpoints may be defined in the |
1763 | + :doc:`editor` |
1764 | + |
1765 | + * the current frame (debugging step) is highlighted in the :doc:`editor` |
1766 | + |
1767 | + * at each breakpoint, globals may be accessed through |
1768 | + the :doc:`variableexplorer` |
1769 | + |
1770 | +For a simple, yet quite complete introduction to `pdb`, you may read this: |
1771 | +http://pythonconquerstheuniverse.wordpress.com/category/python-debugger/ |
1772 | + |
1773 | + |
1774 | +Related plugins: |
1775 | + * :doc:`editor` |
1776 | + * :doc:`console` |
1777 | |
1778 | === modified file 'doc/index.rst' |
1779 | --- doc/index.rst 2011-06-13 12:17:14 +0000 |
1780 | +++ doc/index.rst 2012-03-27 18:05:23 +0000 |
1781 | @@ -16,7 +16,7 @@ |
1782 | debugging console directly in the layout of your graphical user interface. |
1783 | |
1784 | Spyder websites: |
1785 | - * Downloads, bug reports and feature requests: http://spyder.googlecode.com |
1786 | + * Downloads, bug reports and feature requests: http://spyderlib.googlecode.com |
1787 | * Discussions: http://groups.google.com/group/spyderlib |
1788 | |
1789 | |
1790 | |
1791 | === modified file 'doc/installation.rst' |
1792 | --- doc/installation.rst 2011-06-13 12:17:14 +0000 |
1793 | +++ doc/installation.rst 2012-03-27 18:05:23 +0000 |
1794 | @@ -1,34 +1,77 @@ |
1795 | -Installation |
1796 | -============ |
1797 | - |
1798 | -Dependencies |
1799 | ------------- |
1800 | - |
1801 | -Requirements: |
1802 | - * Python 2.x (x>=5) |
1803 | - * PyQt4 4.x (x>=4) |
1804 | - |
1805 | -Recommended modules: |
1806 | - * pyflakes >v0.3.0 (real-time code analysis) |
1807 | - * rope >=v0.9.2 (editor code completion, calltips and go-to-definition) |
1808 | - * sphinx >=v0.6 (object inspector's rich text mode) |
1809 | - * numpy (N-dimensional arrays) |
1810 | - * scipy (signal/image processing) |
1811 | - * matplotlib (2D/3D plotting) |
1812 | - * IPython (enhanced Python interpreter) |
1813 | - |
1814 | -Optional modules: |
1815 | - * pylint (code analysis) |
1816 | - |
1817 | -Installation |
1818 | ------------- |
1819 | - |
1820 | -From the source package: |
1821 | - `python setup.py install` |
1822 | - |
1823 | -Help and support |
1824 | ----------------- |
1825 | - |
1826 | -Spyder websites: |
1827 | - * Downloads, bug reports and feature requests: http://spyder.googlecode.com |
1828 | - * Discussions: http://groups.google.com/group/spyderlib |
1829 | +Installation |
1830 | +============ |
1831 | + |
1832 | +Dependencies |
1833 | +------------ |
1834 | + |
1835 | +Requirements: |
1836 | + * Python 2.5+ |
1837 | + * PyQt4 4.4+ or PySide 1.0.8+ |
1838 | + |
1839 | +Recommended modules: |
1840 | + * pyflakes v0.5.0+ (real-time code analysis) |
1841 | + * rope 0.9.2+ (editor code completion, calltips and go-to-definition) |
1842 | + * sphinx 0.6+ (object inspector's rich text mode) |
1843 | + * numpy (N-dimensional arrays) |
1844 | + * scipy (signal/image processing) |
1845 | + * matplotlib (2D/3D plotting) |
1846 | + |
1847 | +Optional modules: |
1848 | + * IPython (enhanced Python interpreter) |
1849 | + * pylint (code analysis) |
1850 | + * pep8 (style analysis) |
1851 | + |
1852 | +.. note:: |
1853 | + |
1854 | + Since v2.0, the `QScintilla` library (source code editor widgets for |
1855 | + `PyQt4`) is no longer needed as Spyder is relying on pure Python/Qt |
1856 | + features (provided by `PyQt4` or `PySide`). |
1857 | + |
1858 | + |
1859 | +Running from source |
1860 | +------------------- |
1861 | + |
1862 | +It is possible to run Spyder directly from unpacked source folder |
1863 | +using Spyder's bootstrap script: |
1864 | + `python bootstrap.py` |
1865 | + |
1866 | +This is especially useful for beta-testing, troubleshooting and development |
1867 | +of Spyder itself. |
1868 | + |
1869 | + |
1870 | +Installation |
1871 | +------------ |
1872 | + |
1873 | +This section explains how to install the latest *stable* release of Spyder. |
1874 | +If you prefer testing the development version, please use the bootstrap script |
1875 | +(see previous section). |
1876 | + |
1877 | +From the source package (see section 'Building dependencies'), you may |
1878 | +install Spyder using the integrated setup.py script based on Python |
1879 | +standard library `distutils` with the following command: |
1880 | + `python setup.py install` |
1881 | + |
1882 | +Note that `distutils` does *not* uninstall previous versions of Python |
1883 | +packages: it simply copies files on top of an existing installation. |
1884 | +When using this command, it is thus highly recommended to uninstall |
1885 | +manually any previous version of Spyder by removing the associated |
1886 | +directories ('spyderlib' and 'spyderplugins' in your site-packages |
1887 | +directory). |
1888 | + |
1889 | +From the Python package index, you may simply install Spyder *and* |
1890 | +upgrade an existing installation using `pip`: |
1891 | +http://pypi.python.org/pypi |
1892 | + |
1893 | +But the easiest way to install the last stable release of Spyder is: |
1894 | + * on Windows, using an executable installer (http://spyderlib.googlecode.com) or through Python(x,y) (http://www.pythonxy.com) |
1895 | + * on Mac OSX, through MacPorts |
1896 | + * on GNU/Linux, through your package manager |
1897 | +For more details on supported platforms, please go to http://spyderlib.googlecode.com. |
1898 | + |
1899 | + |
1900 | +Help and support |
1901 | +---------------- |
1902 | + |
1903 | +Spyder websites: |
1904 | + * Downloads, bug reports and feature requests: http://spyderlib.googlecode.com |
1905 | + * Discussions: http://groups.google.com/group/spyderlib |
1906 | |
1907 | === modified file 'doc/options.rst' |
1908 | --- doc/options.rst 2011-04-29 21:19:10 +0000 |
1909 | +++ doc/options.rst 2012-03-27 18:05:23 +0000 |
1910 | @@ -9,7 +9,8 @@ |
1911 | -l, --light Light version (all add-ons are disabled) |
1912 | --session=STARTUP_SESSION |
1913 | Startup session |
1914 | - --reset Reset to default session |
1915 | + --defaults Reset to configuration settings to defaults |
1916 | + --reset Remove all configuration files! |
1917 | --optimize Optimize Spyder bytecode (this may require |
1918 | administrative privileges) |
1919 | -w WORKING_DIRECTORY, --workdir=WORKING_DIRECTORY |
1920 | @@ -18,4 +19,4 @@ |
1921 | --multithread Internal console is executed in another thread |
1922 | (separate from main application thread) |
1923 | --profile Profile mode (internal test, not related with Python |
1924 | - profiling) |
1925 | + profiling) |
1926 | \ No newline at end of file |
1927 | |
1928 | === modified file 'doc/overview.rst' |
1929 | --- doc/overview.rst 2011-04-29 21:19:10 +0000 |
1930 | +++ doc/overview.rst 2012-03-27 18:05:23 +0000 |
1931 | @@ -75,6 +75,6 @@ |
1932 | * :doc:`projectexplorer` (support Pydev project import) |
1933 | |
1934 | |
1935 | -Spyder may also be used as a PyQt4 extension library (module 'spyderlib'). |
1936 | -For example, the Python interactive shell widget used in Spyder may be |
1937 | -embedded in your own PyQt4 application. |
1938 | +Spyder may also be used as a PyQt4 or PySide extension library |
1939 | +(module 'spyderlib'). For example, the Python interactive shell widget |
1940 | +used in Spyder may be embedded in your own PyQt4 or PySide application. |
1941 | |
1942 | === added directory 'scripts' |
1943 | === added file 'scripts/spyder' |
1944 | --- scripts/spyder 1970-01-01 00:00:00 +0000 |
1945 | +++ scripts/spyder 2012-03-27 18:05:23 +0000 |
1946 | @@ -0,0 +1,3 @@ |
1947 | +#!/usr/bin/env python |
1948 | +from spyderlib import spyder |
1949 | +spyder.main() |
1950 | |
1951 | === added file 'scripts/spyder.bat' |
1952 | --- scripts/spyder.bat 1970-01-01 00:00:00 +0000 |
1953 | +++ scripts/spyder.bat 2012-03-27 18:05:23 +0000 |
1954 | @@ -0,0 +1,2 @@ |
1955 | +@echo off |
1956 | +python "%~dpn0" %* |
1957 | \ No newline at end of file |
1958 | |
1959 | === added file 'scripts/spyder.desktop' |
1960 | --- scripts/spyder.desktop 1970-01-01 00:00:00 +0000 |
1961 | +++ scripts/spyder.desktop 2012-03-27 18:05:23 +0000 |
1962 | @@ -0,0 +1,11 @@ |
1963 | +[Desktop Entry] |
1964 | +Version=1.0 |
1965 | +Type=Application |
1966 | +Name=Spyder |
1967 | +GenericName=Spyder |
1968 | +Comment=Scientific PYthon Development EnviRonment |
1969 | +TryExec=spyder |
1970 | +Exec=spyder |
1971 | +MimeType=application/x-foo; |
1972 | +Icon=/usr/share/pyshared/spyderlib/images/spyder.svg |
1973 | +Categories=Development;Science;IDE;Qt; |
1974 | |
1975 | === modified file 'setup.py' |
1976 | --- setup.py 2011-06-13 12:17:14 +0000 |
1977 | +++ setup.py 2012-03-27 18:05:23 +0000 |
1978 | @@ -1,101 +1,106 @@ |
1979 | -# -*- coding: utf-8 -*- |
1980 | -# |
1981 | -# Copyright © 2009-2010 Pierre Raybaut |
1982 | -# Licensed under the terms of the MIT License |
1983 | -# (see spyderlib/__init__.py for details) |
1984 | - |
1985 | -""" |
1986 | -Spyder |
1987 | -====== |
1988 | - |
1989 | -The Scientific PYthon Development EnviRonment |
1990 | -""" |
1991 | - |
1992 | -from distutils.core import setup |
1993 | -from distutils.command.build import build |
1994 | -from sphinx import setup_command |
1995 | -import os, os.path as osp, sys |
1996 | - |
1997 | - |
1998 | -def get_package_data(name, extlist): |
1999 | - """Return data files for package *name* with extensions in *extlist*""" |
2000 | - flist = [] |
2001 | - # Workaround to replace os.path.relpath (not available until Python 2.6): |
2002 | - offset = len(name)+len(os.pathsep) |
2003 | - for dirpath, _dirnames, filenames in os.walk(name): |
2004 | - for fname in filenames: |
2005 | - if not fname.startswith('.') and osp.splitext(fname)[1] in extlist: |
2006 | - flist.append(osp.join(dirpath, fname)[offset:]) |
2007 | - return flist |
2008 | - |
2009 | -def get_subpackages(name): |
2010 | - """Return subpackages of package *name*""" |
2011 | - splist = [] |
2012 | - for dirpath, _dirnames, _filenames in os.walk(name): |
2013 | - if osp.isfile(osp.join(dirpath, '__init__.py')): |
2014 | - splist.append(".".join(dirpath.split(os.sep))) |
2015 | - return splist |
2016 | - |
2017 | -# Sphinx build (documentation) |
2018 | -class MyBuild(build): |
2019 | - def has_doc(self): |
2020 | - setup_dir = os.path.dirname(os.path.abspath(__file__)) |
2021 | - return os.path.isdir(os.path.join(setup_dir, 'doc')) |
2022 | - sub_commands = build.sub_commands + [('build_doc', has_doc)] |
2023 | - |
2024 | -class MyBuildDoc(setup_command.BuildDoc): |
2025 | - def run(self): |
2026 | - build = self.get_finalized_command('build') |
2027 | - sys.path.insert(0, os.path.abspath(build.build_lib)) |
2028 | - dirname = self.distribution.get_command_obj('build').build_purelib |
2029 | - self.builder_target_dir = osp.join(dirname, 'spyderlib', 'doc') |
2030 | - try: |
2031 | - setup_command.BuildDoc.run(self) |
2032 | - except UnicodeDecodeError: |
2033 | - print >>sys.stderr, "ERROR: unable to build documentation because Sphinx do not handle source path with non-ASCII characters. Please try to move the source package to another location (path with *only* ASCII characters)." |
2034 | - sys.path.pop(0) |
2035 | - |
2036 | -cmdclass = {'build': MyBuild, 'build_doc': MyBuildDoc} |
2037 | - |
2038 | - |
2039 | -NAME = 'spyder' |
2040 | -LIBNAME = 'spyderlib' |
2041 | -from spyderlib import __version__ |
2042 | -GOOGLE_URL = 'http://%s.googlecode.com' % NAME |
2043 | - |
2044 | -setup(name=NAME, |
2045 | - version=__version__, |
2046 | - description='Scientific PYthon Development EnviRonment', |
2047 | - long_description="""The spyderlib module provides powerful console and |
2048 | -editor related widgets to your PyQt4 application. It also includes a |
2049 | -Scientific Python development environment named 'Spyder', an alternative to |
2050 | -IDLE with powerful interactive features such as variable explorer (with |
2051 | -GUI-based editors for dictionaries, lists, NumPy arrays, etc.), object |
2052 | -inspector, online help, and a lot more.""", |
2053 | - download_url='%s/files/%s-%s.zip' % (GOOGLE_URL, NAME, __version__), |
2054 | - author="Pierre Raybaut", |
2055 | - url=GOOGLE_URL, |
2056 | - license='MIT', |
2057 | - keywords='PyQt4 editor shell console widgets IDE', |
2058 | - platforms=['any'], |
2059 | - packages=get_subpackages(LIBNAME)+get_subpackages('spyderplugins'), |
2060 | - package_data={LIBNAME: |
2061 | - get_package_data(LIBNAME, ('.mo', '.svg', '.png', '.css')), |
2062 | - 'spyderplugins': |
2063 | - get_package_data('spyderplugins', ('.mo', '.svg', '.png'))}, |
2064 | - requires=["pyflakes (>0.3.0)", "rope (>0.9.0)", "sphinx (>0.6.0)", |
2065 | - "PyQt4 (>4.3)"], |
2066 | - scripts=['spyder', 'spyder.bat'] if os.name == 'nt' else ['spyder'], |
2067 | - classifiers=['License :: OSI Approved :: MIT License', |
2068 | - 'Operating System :: MacOS', |
2069 | - 'Operating System :: Microsoft :: Windows', |
2070 | - 'Operating System :: OS Independent', |
2071 | - 'Operating System :: POSIX', |
2072 | - 'Operating System :: Unix', |
2073 | - 'Programming Language :: Python :: 2.5', |
2074 | - 'Programming Language :: Python :: 2.6', |
2075 | - 'Programming Language :: Python :: 2.7', |
2076 | - 'Development Status :: 5 - Production/Stable', |
2077 | - 'Topic :: Scientific/Engineering', |
2078 | - 'Topic :: Software Development :: Widget Sets'], |
2079 | - cmdclass=cmdclass) |
2080 | +# -*- coding: utf-8 -*- |
2081 | +# |
2082 | +# Copyright © 2009-2010 Pierre Raybaut |
2083 | +# Licensed under the terms of the MIT License |
2084 | +# (see spyderlib/__init__.py for details) |
2085 | + |
2086 | +""" |
2087 | +Spyder |
2088 | +====== |
2089 | + |
2090 | +The Scientific PYthon Development EnviRonment |
2091 | +""" |
2092 | + |
2093 | +from distutils.core import setup |
2094 | +from distutils.command.build import build |
2095 | +from sphinx import setup_command |
2096 | +import os |
2097 | +import os.path as osp |
2098 | +import sys |
2099 | + |
2100 | + |
2101 | +def get_package_data(name, extlist): |
2102 | + """Return data files for package *name* with extensions in *extlist*""" |
2103 | + flist = [] |
2104 | + # Workaround to replace os.path.relpath (not available until Python 2.6): |
2105 | + offset = len(name)+len(os.pathsep) |
2106 | + for dirpath, _dirnames, filenames in os.walk(name): |
2107 | + for fname in filenames: |
2108 | + if not fname.startswith('.') and osp.splitext(fname)[1] in extlist: |
2109 | + flist.append(osp.join(dirpath, fname)[offset:]) |
2110 | + return flist |
2111 | + |
2112 | + |
2113 | +def get_subpackages(name): |
2114 | + """Return subpackages of package *name*""" |
2115 | + splist = [] |
2116 | + for dirpath, _dirnames, _filenames in os.walk(name): |
2117 | + if osp.isfile(osp.join(dirpath, '__init__.py')): |
2118 | + splist.append(".".join(dirpath.split(os.sep))) |
2119 | + return splist |
2120 | + |
2121 | + |
2122 | +# Sphinx build (documentation) |
2123 | +class MyBuild(build): |
2124 | + def has_doc(self): |
2125 | + setup_dir = os.path.dirname(os.path.abspath(__file__)) |
2126 | + return os.path.isdir(os.path.join(setup_dir, 'doc')) |
2127 | + sub_commands = build.sub_commands + [('build_doc', has_doc)] |
2128 | + |
2129 | + |
2130 | +class MyBuildDoc(setup_command.BuildDoc): |
2131 | + def run(self): |
2132 | + build = self.get_finalized_command('build') |
2133 | + sys.path.insert(0, os.path.abspath(build.build_lib)) |
2134 | + #dirname = self.distribution.get_command_obj('build').build_purelib |
2135 | + #self.builder_target_dir = osp.join(dirname, 'spyderlib', 'doc') |
2136 | + try: |
2137 | + setup_command.BuildDoc.run(self) |
2138 | + except UnicodeDecodeError: |
2139 | + print >>sys.stderr, "ERROR: unable to build documentation because Sphinx do not handle source path with non-ASCII characters. Please try to move the source package to another location (path with *only* ASCII characters)." |
2140 | + sys.path.pop(0) |
2141 | + |
2142 | + |
2143 | +cmdclass = {'build': MyBuild, 'build_doc': MyBuildDoc} |
2144 | + |
2145 | + |
2146 | +NAME = 'spyder' |
2147 | +LIBNAME = 'spyderlib' |
2148 | +from spyderlib import __version__, __project_url__ |
2149 | + |
2150 | +setup(name=NAME, |
2151 | + version=__version__, |
2152 | + description='Scientific PYthon Development EnviRonment', |
2153 | + long_description="""The spyderlib library provides powerful console and |
2154 | +editor related widgets to your Qt application (PyQt4 or PySide). It also |
2155 | +includes a Scientific Python development environment named 'Spyder', an |
2156 | +alternative to IDLE with powerful interactive features such as variable |
2157 | +explorer (with GUI-based editors for dictionaries, lists, NumPy arrays, etc.), |
2158 | +object inspector, online help, and a lot more.""", |
2159 | + download_url='%s/files/%s-%s.zip' % (__project_url__, NAME, __version__), |
2160 | + author="Pierre Raybaut", |
2161 | + url=__project_url__, |
2162 | + license='MIT', |
2163 | + keywords='PyQt4 PySide editor shell console widgets IDE', |
2164 | + platforms=['any'], |
2165 | + packages=get_subpackages(LIBNAME)+get_subpackages('spyderplugins'), |
2166 | + package_data={LIBNAME: |
2167 | + get_package_data(LIBNAME, ('.mo', '.svg', '.png', '.css')), |
2168 | + 'spyderplugins': |
2169 | + get_package_data('spyderplugins', ('.mo', '.svg', '.png'))}, |
2170 | + requires=["rope (>=0.9.2)", "sphinx (>=0.6.0)", "PyQt4 (>=4.4)"], |
2171 | + scripts=[osp.join('scripts', fname) for fname in |
2172 | + (['spyder', 'spyder.bat'] if os.name == 'nt' else ['spyder'])], |
2173 | + classifiers=['License :: OSI Approved :: MIT License', |
2174 | + 'Operating System :: MacOS', |
2175 | + 'Operating System :: Microsoft :: Windows', |
2176 | + 'Operating System :: OS Independent', |
2177 | + 'Operating System :: POSIX', |
2178 | + 'Operating System :: Unix', |
2179 | + 'Programming Language :: Python :: 2.5', |
2180 | + 'Programming Language :: Python :: 2.6', |
2181 | + 'Programming Language :: Python :: 2.7', |
2182 | + 'Development Status :: 5 - Production/Stable', |
2183 | + 'Topic :: Scientific/Engineering', |
2184 | + 'Topic :: Software Development :: Widget Sets'], |
2185 | + cmdclass=cmdclass) |
2186 | |
2187 | === removed file 'spyder' |
2188 | --- spyder 2010-03-25 17:30:45 +0000 |
2189 | +++ spyder 1970-01-01 00:00:00 +0000 |
2190 | @@ -1,3 +0,0 @@ |
2191 | -#!/usr/bin/env python |
2192 | -from spyderlib import spyder |
2193 | -spyder.main() |
2194 | |
2195 | === removed file 'spyder.bat' |
2196 | --- spyder.bat 2011-04-29 21:19:10 +0000 |
2197 | +++ spyder.bat 1970-01-01 00:00:00 +0000 |
2198 | @@ -1,2 +0,0 @@ |
2199 | -@echo off |
2200 | -python "%~dpn0" %* |
2201 | \ No newline at end of file |
2202 | |
2203 | === modified file 'spyderlib/__init__.py' |
2204 | --- spyderlib/__init__.py 2011-06-13 12:17:14 +0000 |
2205 | +++ spyderlib/__init__.py 2012-03-27 18:05:23 +0000 |
2206 | @@ -3,7 +3,7 @@ |
2207 | Spyder License Agreement (MIT License) |
2208 | -------------------------------------- |
2209 | |
2210 | -Copyright (c) 2009-2010 Pierre Raybaut |
2211 | +Copyright (c) 2009-2011 Pierre Raybaut |
2212 | |
2213 | Permission is hereby granted, free of charge, to any person |
2214 | obtaining a copy of this software and associated documentation |
2215 | @@ -27,7 +27,23 @@ |
2216 | OTHER DEALINGS IN THE SOFTWARE. |
2217 | """ |
2218 | |
2219 | -__version__ = '2.0.12' |
2220 | +__version__ = '2.1.8' |
2221 | __license__ = __doc__ |
2222 | - |
2223 | -#FIXME: Internal console MT: for i in range(100000): print i -> bug |
2224 | +__project_url__ = 'http://code.google.com/p/spyderlib' |
2225 | +__forum_url__ = 'http://groups.google.com/group/spyderlib' |
2226 | + |
2227 | +# Dear (Debian, RPM, ...) package makers, please feel free to customize the |
2228 | +# following path to module's data (images) and translations: |
2229 | +DATAPATH = LOCALEPATH = DOCPATH = '' |
2230 | +DOCPATH = '/usr/share/doc/python-spyderlib/html' |
2231 | + |
2232 | +def add_to_distribution(dist): |
2233 | + """Add package to py2exe/cx_Freeze distribution object |
2234 | + Extension to guidata.disthelpers""" |
2235 | + dist.add_modules('PyQt4') |
2236 | + for _modname in ('spyderlib', 'spyderplugins'): |
2237 | + dist.add_module_data_files(_modname, ("", ), |
2238 | + ('.png', '.svg', '.html', '.png', '.txt', |
2239 | + '.js', '.inv', '.ico', '.css', '.doctree', |
2240 | + '.qm', '.py',), |
2241 | + copy_to_root=False) |
2242 | |
2243 | === added file 'spyderlib/baseconfig.py' |
2244 | --- spyderlib/baseconfig.py 1970-01-01 00:00:00 +0000 |
2245 | +++ spyderlib/baseconfig.py 2012-03-27 18:05:23 +0000 |
2246 | @@ -0,0 +1,175 @@ |
2247 | +# -*- coding: utf-8 -*- |
2248 | +# |
2249 | +# Copyright © 2011 Pierre Raybaut |
2250 | +# Licensed under the terms of the MIT License |
2251 | +# (see spyderlib/__init__.py for details) |
2252 | + |
2253 | +""" |
2254 | +Spyder base configuration management |
2255 | + |
2256 | +As opposed to spyderlib/config.py, this configuration script deals |
2257 | +exclusively with non-GUI features configuration only |
2258 | +(in other words, we won't import any PyQt object here, avoiding any |
2259 | +sip API incompatibility issue in spyderlib's non-gui modules) |
2260 | +""" |
2261 | + |
2262 | +import os.path as osp |
2263 | +import os |
2264 | +import sys |
2265 | + |
2266 | +# Local imports |
2267 | +from spyderlib import __version__ |
2268 | + |
2269 | + |
2270 | +#============================================================================== |
2271 | +# Debug helpers |
2272 | +#============================================================================== |
2273 | +STDOUT = sys.stdout |
2274 | +STDERR = sys.stderr |
2275 | +DEBUG = bool(os.environ.get('SPYDER_DEBUG', '')) |
2276 | + |
2277 | + |
2278 | +#============================================================================== |
2279 | +# Configuration paths |
2280 | +#============================================================================== |
2281 | +SUBFOLDER = '.spyder%s' % __version__.split('.')[0] |
2282 | + |
2283 | +def get_conf_path(filename=None): |
2284 | + """Return absolute path for configuration file with specified filename""" |
2285 | + from spyderlib import userconfig |
2286 | + conf_dir = osp.join(userconfig.get_home_dir(), SUBFOLDER) |
2287 | + if not osp.isdir(conf_dir): |
2288 | + os.mkdir(conf_dir) |
2289 | + if filename is None: |
2290 | + return conf_dir |
2291 | + else: |
2292 | + return osp.join(conf_dir, filename) |
2293 | + |
2294 | + |
2295 | +def get_module_path(modname): |
2296 | + """Return module *modname* base path""" |
2297 | + return osp.abspath(osp.dirname(sys.modules[modname].__file__)) |
2298 | + |
2299 | + |
2300 | +def get_module_data_path(modname, relpath=None, attr_name='DATAPATH'): |
2301 | + """Return module *modname* data path |
2302 | + Note: relpath is ignored if module has an attribute named *attr_name* |
2303 | + |
2304 | + Handles py2exe/cx_Freeze distributions""" |
2305 | + datapath = getattr(sys.modules[modname], attr_name, '') |
2306 | + if datapath: |
2307 | + return datapath |
2308 | + else: |
2309 | + datapath = get_module_path(modname) |
2310 | + parentdir = osp.join(datapath, osp.pardir) |
2311 | + if osp.isfile(parentdir): |
2312 | + # Parent directory is not a directory but the 'library.zip' file: |
2313 | + # this is either a py2exe or a cx_Freeze distribution |
2314 | + datapath = osp.abspath(osp.join(osp.join(parentdir, osp.pardir), |
2315 | + modname)) |
2316 | + if relpath is not None: |
2317 | + datapath = osp.abspath(osp.join(datapath, relpath)) |
2318 | + return datapath |
2319 | + |
2320 | + |
2321 | +def get_module_source_path(modname, basename=None): |
2322 | + """Return module *modname* source path |
2323 | + If *basename* is specified, return *modname.basename* path where |
2324 | + *modname* is a package containing the module *basename* |
2325 | + |
2326 | + *basename* is a filename (not a module name), so it must include the |
2327 | + file extension: .py or .pyw |
2328 | + |
2329 | + Handles py2exe/cx_Freeze distributions""" |
2330 | + srcpath = get_module_path(modname) |
2331 | + parentdir = osp.join(srcpath, osp.pardir) |
2332 | + if osp.isfile(parentdir): |
2333 | + # Parent directory is not a directory but the 'library.zip' file: |
2334 | + # this is either a py2exe or a cx_Freeze distribution |
2335 | + srcpath = osp.abspath(osp.join(osp.join(parentdir, osp.pardir), |
2336 | + modname)) |
2337 | + if basename is not None: |
2338 | + srcpath = osp.abspath(osp.join(srcpath, basename)) |
2339 | + return srcpath |
2340 | + |
2341 | + |
2342 | +def is_py2exe_or_cx_Freeze(): |
2343 | + """Return True if this is a py2exe/cx_Freeze distribution of Spyder""" |
2344 | + return osp.isfile(osp.join(get_module_path('spyderlib'), osp.pardir)) |
2345 | + |
2346 | + |
2347 | +SCIENTIFIC_STARTUP = get_module_source_path('spyderlib', |
2348 | + 'scientific_startup.py') |
2349 | + |
2350 | + |
2351 | +#============================================================================== |
2352 | +# Translations |
2353 | +#============================================================================== |
2354 | +def get_translation(modname, dirname=None): |
2355 | + """Return translation callback for module *modname*""" |
2356 | + if dirname is None: |
2357 | + dirname = modname |
2358 | + locale_path = get_module_data_path(dirname, relpath="locale", |
2359 | + attr_name='LOCALEPATH') |
2360 | + # fixup environment var LANG in case it's unknown |
2361 | + if "LANG" not in os.environ: |
2362 | + import locale |
2363 | + lang = locale.getdefaultlocale()[0] |
2364 | + if lang is not None: |
2365 | + os.environ["LANG"] = lang |
2366 | + import gettext |
2367 | + try: |
2368 | + _trans = gettext.translation(modname, locale_path, codeset="utf-8") |
2369 | + lgettext = _trans.lgettext |
2370 | + def translate_gettext(x): |
2371 | + if isinstance(x, unicode): |
2372 | + x = x.encode("utf-8") |
2373 | + return unicode(lgettext(x), "utf-8") |
2374 | + return translate_gettext |
2375 | + except IOError, _e: # analysis:ignore |
2376 | + #print "Not using translations (%s)" % _e |
2377 | + def translate_dumb(x): |
2378 | + if not isinstance(x, unicode): |
2379 | + return unicode(x, "utf-8") |
2380 | + return x |
2381 | + return translate_dumb |
2382 | + |
2383 | +# Translation callback |
2384 | +_ = get_translation("spyderlib") |
2385 | + |
2386 | + |
2387 | +#============================================================================== |
2388 | +# Namespace Browser (Variable Explorer) configuration management |
2389 | +#============================================================================== |
2390 | + |
2391 | +def get_supported_types(): |
2392 | + """Return a dictionnary containing types lists supported by the |
2393 | + namespace browser: |
2394 | + dict(picklable=picklable_types, editable=editables_types) |
2395 | + |
2396 | + See: |
2397 | + get_remote_data function in spyderlib/widgets/externalshell/monitor.py |
2398 | + get_internal_shell_filter method in namespacebrowser.py""" |
2399 | + from datetime import date |
2400 | + editable_types = [int, long, float, list, dict, tuple, str, unicode, date] |
2401 | + try: |
2402 | + from numpy import ndarray, matrix |
2403 | + editable_types += [ndarray, matrix] |
2404 | + except ImportError: |
2405 | + pass |
2406 | + picklable_types = editable_types[:] |
2407 | + try: |
2408 | + from spyderlib.pil_patch import Image |
2409 | + editable_types.append(Image.Image) |
2410 | + except ImportError: |
2411 | + pass |
2412 | + return dict(picklable=picklable_types, editable=editable_types) |
2413 | + |
2414 | +# Variable explorer display / check all elements data types for sequences: |
2415 | +# (when saving the variable explorer contents, check_all is True, |
2416 | +# see widgets/externalshell/namespacebrowser.py:NamespaceBrowser.save_data) |
2417 | +CHECK_ALL = False #XXX: If True, this should take too much to compute... |
2418 | + |
2419 | +EXCLUDED_NAMES = ['nan', 'inf', 'infty', 'little_endian', 'colorbar_doc', |
2420 | + 'typecodes', '__builtins__', '__main__', '__doc__', 'NaN', |
2421 | + 'Inf', 'Infinity', 'sctypes'] |
2422 | \ No newline at end of file |
2423 | |
2424 | === modified file 'spyderlib/config.py' |
2425 | --- spyderlib/config.py 2011-04-29 21:19:10 +0000 |
2426 | +++ spyderlib/config.py 2012-03-27 18:05:23 +0000 |
2427 | @@ -1,11 +1,12 @@ |
2428 | # -*- coding: utf-8 -*- |
2429 | # |
2430 | -# Copyright © 2009-2010 Pierre Raybaut |
2431 | +# Copyright © 2009-2011 Pierre Raybaut |
2432 | # Licensed under the terms of the MIT License |
2433 | # (see spyderlib/__init__.py for details) |
2434 | |
2435 | """ |
2436 | -Spyder configuration management |
2437 | +Spyder GUI-related configuration management |
2438 | +(for non-GUI configuration, see spyderlib/baseconfig.py) |
2439 | |
2440 | Important note regarding shortcuts: |
2441 | For compatibility with QWERTZ keyboards, one must avoid using the following |
2442 | @@ -13,66 +14,97 @@ |
2443 | Ctrl + Alt + Q, W, F, G, Y, X, C, V, B, N |
2444 | """ |
2445 | |
2446 | -import os, sys, os.path as osp |
2447 | -from datetime import date |
2448 | -from PyQt4.QtGui import QLabel, QIcon, QPixmap, QFont, QFontDatabase |
2449 | +import os |
2450 | +import sys |
2451 | +import os.path as osp |
2452 | + |
2453 | +from spyderlib.qt.QtGui import QLabel, QIcon, QPixmap, QFont, QFontDatabase |
2454 | |
2455 | # Local import |
2456 | -from userconfig import UserConfig, get_home_dir, NoDefault |
2457 | - |
2458 | -DATA_DEV_PATH = osp.dirname(__file__) |
2459 | -if not osp.isdir(DATA_DEV_PATH): |
2460 | - # Assuming py2exe distribution |
2461 | - DATA_DEV_PATH = osp.join(sys.prefix, "spyderlib") |
2462 | -DOC_DEV_PATH = osp.join(DATA_DEV_PATH, 'doc') |
2463 | - |
2464 | -# The two following lines are patched when making the debian package: |
2465 | -DATA_PATH = DATA_DEV_PATH # @@@DATA_PATH@@@ |
2466 | -DOC_PATH = "/usr/share/doc/spyder/html" # @@@DOC_PATH@@@ |
2467 | - |
2468 | -EDITABLE_TYPES = [int, long, float, list, dict, tuple, str, unicode, date] |
2469 | -try: |
2470 | - from numpy import ndarray, matrix |
2471 | - EDITABLE_TYPES += [ndarray, matrix] |
2472 | -except ImportError: |
2473 | - pass |
2474 | -PICKLABLE_TYPES = EDITABLE_TYPES[:] |
2475 | -try: |
2476 | - from PIL.Image import Image |
2477 | - EDITABLE_TYPES.append(Image) |
2478 | -except ImportError: |
2479 | - pass |
2480 | - |
2481 | -# Max number of filter iterations for worskpace display: |
2482 | -# (for workspace saving, itermax == -1, see Workspace.save) |
2483 | -ITERMAX = -1 #XXX: To be adjusted if it takes too much to compute... 2, 3? |
2484 | - |
2485 | -EXCLUDED = ['nan', 'inf', 'infty', 'little_endian', 'colorbar_doc', 'typecodes', |
2486 | - '__builtins__', '__main__', '__doc__'] |
2487 | - |
2488 | -def type2str(types): |
2489 | - """Convert types to strings""" |
2490 | - return [typ.__name__ for typ in types] |
2491 | - |
2492 | -def str2type(strings): |
2493 | - """Convert strings to types""" |
2494 | - return tuple( [eval(string) for string in strings] ) |
2495 | +from spyderlib.userconfig import UserConfig, get_home_dir, NoDefault |
2496 | +from spyderlib.baseconfig import (SUBFOLDER, CHECK_ALL, EXCLUDED_NAMES, |
2497 | + get_module_data_path, _) |
2498 | +from spyderlib.utils import iofuncs, codeanalysis |
2499 | + |
2500 | |
2501 | SANS_SERIF = ['Sans Serif', 'DejaVu Sans', 'Bitstream Vera Sans', |
2502 | - 'Bitstream Charter', 'Lucida Grande', 'Verdana', 'Geneva', |
2503 | - 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', 'sans-serif'] |
2504 | -SANS_SERIF.insert(0, unicode(QFont().family())) |
2505 | + 'Bitstream Charter', 'Times', 'Lucida Grande', 'Calibri', |
2506 | + 'MS Shell Dlg 2', 'Verdana', 'Geneva', 'Lucid', 'Arial', |
2507 | + 'Helvetica', 'Avant Garde', 'sans-serif'] |
2508 | |
2509 | -MONOSPACE = ['Monospace', 'DejaVu Sans Mono', 'Consolas', 'Courier New', |
2510 | +MONOSPACE = ['Monospace', 'DejaVu Sans Mono', 'Consolas', 'Monaco', |
2511 | 'Bitstream Vera Sans Mono', 'Andale Mono', 'Liberation Mono', |
2512 | - 'Monaco', 'Courier', 'monospace', 'Fixed', 'Terminal'] |
2513 | -MEDIUM = 10 |
2514 | -SMALL = 9 |
2515 | + 'Courier New', 'Courier', 'monospace', 'Fixed', 'Terminal'] |
2516 | + |
2517 | +if sys.platform == 'darwin': |
2518 | + BIG = MEDIUM = SMALL = 12 |
2519 | +elif os.name == 'nt': |
2520 | + BIG = 12 |
2521 | + MEDIUM = 10 |
2522 | + SMALL = 9 |
2523 | +else: |
2524 | + BIG = 12 |
2525 | + MEDIUM = 9 |
2526 | + SMALL = 9 |
2527 | + |
2528 | +# Extensions supported by Spyder's Editor |
2529 | +EDIT_FILETYPES = ( |
2530 | + (_("Python files"), ('.py', '.pyw', '.ipy')), |
2531 | + (_("Cython/Pyrex files"), ('.pyx', '.pxd', '.pxi')), |
2532 | + (_("C files"), ('.c', '.h')), |
2533 | + (_("C++ files"), ('.cc', '.cpp', '.cxx', '.h', '.hh', '.hpp', '.hxx')), |
2534 | + (_("OpenCL files"), ('.cl', )), |
2535 | + (_("Fortran files"), ('.f', '.for', '.f90', '.f95', '.f2k')), |
2536 | + (_("Patch and diff files"), ('.patch', '.diff', '.rej')), |
2537 | + (_("Batch files"), ('.bat', '.cmd')), |
2538 | + (_("Text files"), ('.txt',)), |
2539 | + (_("reStructured Text files"), ('.txt', '.rst')), |
2540 | + (_("gettext files"), ('.po', '.pot')), |
2541 | + (_("Web page files"), ('.css', '.htm', '.html',)), |
2542 | + (_("Configuration files"), ('.properties', '.session', '.ini', '.inf', |
2543 | + '.reg', '.cfg', '.desktop')), |
2544 | + ) |
2545 | + |
2546 | +def _get_filters(filetypes): |
2547 | + filters = [] |
2548 | + for title, ftypes in filetypes: |
2549 | + filters.append("%s (*%s)" % (title, " *".join(ftypes))) |
2550 | + filters.append("%s (*)" % _("All files")) |
2551 | + return "\n".join(filters) |
2552 | + |
2553 | +def _get_extensions(filetypes): |
2554 | + ftype_list = [] |
2555 | + for _title, ftypes in filetypes: |
2556 | + ftype_list += list(ftypes) |
2557 | + return ftype_list |
2558 | + |
2559 | +EDIT_FILTERS = _get_filters(EDIT_FILETYPES) |
2560 | +EDIT_EXT = _get_extensions(EDIT_FILETYPES)+[''] |
2561 | + |
2562 | +# Extensions supported by Spyder's Variable explorer |
2563 | +IMPORT_EXT = iofuncs.iofunctions.load_extensions.values() |
2564 | + |
2565 | +# Extensions that should be visible in Spyder's file/project explorers |
2566 | +SHOW_EXT = ['.png', '.ico', '.svg'] |
2567 | + |
2568 | +# Extensions supported by Spyder (Editor or Variable explorer) |
2569 | +VALID_EXT = EDIT_EXT+IMPORT_EXT |
2570 | + |
2571 | +# Find in files include/exclude patterns |
2572 | +INCLUDE_PATTERNS = [r'|'.join(['\\'+_ext+r'$' for _ext in EDIT_EXT if _ext])+\ |
2573 | + r'|README|INSTALL', |
2574 | + r'\.pyw?$|\.ipy$|\.txt$|\.rst$', |
2575 | + '.'] |
2576 | +EXCLUDE_PATTERNS = [r'\.pyc$|\.pyo$|\.orig$|\.hg|\.svn|build', |
2577 | + r'\.pyc$|\.pyo$|\.orig$|\.hg|\.svn'] |
2578 | + |
2579 | +# Name filters for file/project explorers (excluding files without extension) |
2580 | +NAME_FILTERS = ['*' + _ext for _ext in VALID_EXT + SHOW_EXT if _ext]+\ |
2581 | + ['README', 'INSTALL', 'LICENSE', 'CHANGELOG'] |
2582 | |
2583 | DEFAULTS = [ |
2584 | ('main', |
2585 | { |
2586 | - 'translation': True, |
2587 | 'vertical_dockwidget_titlebars': False, |
2588 | 'vertical_tabs': False, |
2589 | 'animated_docks': True, |
2590 | @@ -85,6 +117,10 @@ |
2591 | 'lightwindow/is_maximized': False, |
2592 | 'lightwindow/is_fullscreen': False, |
2593 | }), |
2594 | + ('quick_layouts', |
2595 | + { |
2596 | + 'place_holder': '', |
2597 | + }), |
2598 | ('editor_appearance', |
2599 | { |
2600 | 'cursor/width': 2, |
2601 | @@ -151,33 +187,38 @@ |
2602 | 'show_elapsed_time': True, |
2603 | 'show_icontext': False, |
2604 | 'monitor/enabled': True, |
2605 | - 'mpl_patch/enabled': True, |
2606 | - 'mpl_patch/backend': 'Qt4Agg', |
2607 | + 'qt/install_inputhook': os.name == 'nt' \ |
2608 | + or os.environ.get('QT_API') == 'pyside', |
2609 | + 'qt/api': 'default', |
2610 | + 'pyqt/api_version': 0, |
2611 | + 'pyqt/ignore_sip_setapi_errors': False, |
2612 | + 'matplotlib/patch': True, |
2613 | + 'matplotlib/backend/enabled': True, |
2614 | + 'matplotlib/backend/value': 'Qt4Agg', |
2615 | 'umd/enabled': True, |
2616 | 'umd/verbose': True, |
2617 | 'umd/namelist': ['guidata', 'guiqwt'], |
2618 | 'light_background': True, |
2619 | 'ipython_set_color': True, |
2620 | - 'remove_pyqt_inputhook': os.name == 'nt', |
2621 | - 'ignore_sip_setapi_errors': True, |
2622 | + 'merge_output_channels': os.name != 'nt', |
2623 | + 'colorize_sys_stderr': os.name != 'nt', |
2624 | }), |
2625 | ('variable_explorer', |
2626 | { |
2627 | 'shortcut': "Ctrl+Shift+V", |
2628 | 'autorefresh': True, |
2629 | 'autorefresh/timeout': 2000, |
2630 | - 'editable_types': type2str(EDITABLE_TYPES), |
2631 | - 'picklable_types': type2str(PICKLABLE_TYPES), |
2632 | - 'itermax': ITERMAX, |
2633 | - 'excluded_names': EXCLUDED, |
2634 | + 'check_all': CHECK_ALL, |
2635 | + 'excluded_names': EXCLUDED_NAMES, |
2636 | 'exclude_private': True, |
2637 | - 'exclude_upper': True, |
2638 | + 'exclude_uppercase': True, |
2639 | + 'exclude_capitalized': False, |
2640 | 'exclude_unsupported': True, |
2641 | 'inplace': False, |
2642 | 'truncate': True, |
2643 | 'minmax': False, |
2644 | 'collvalue': False, |
2645 | - 'remote_editing': True, |
2646 | + 'remote_editing': False, |
2647 | }), |
2648 | ('editor', |
2649 | { |
2650 | @@ -192,19 +233,22 @@ |
2651 | 'font/bold': False, |
2652 | 'wrap': False, |
2653 | 'wrapflag': True, |
2654 | - 'code_analysis': True, |
2655 | + 'code_analysis/pyflakes': True, |
2656 | + 'code_analysis/pep8': False, |
2657 | 'todo_list': True, |
2658 | 'realtime_analysis': True, |
2659 | 'realtime_analysis/timeout': 2500, |
2660 | 'outline_explorer': True, |
2661 | 'line_numbers': True, |
2662 | 'edge_line': True, |
2663 | - 'edge_line_column': 80, |
2664 | + 'edge_line_column': 79, |
2665 | 'toolbox_panel': True, |
2666 | 'calltips': True, |
2667 | 'go_to_definition': True, |
2668 | 'close_parentheses': True, |
2669 | 'auto_unindent': True, |
2670 | + 'indent_chars': '* *', |
2671 | + 'tab_stop_width': 40, |
2672 | 'object_inspector': True, |
2673 | 'codecompletion/auto': True, |
2674 | 'codecompletion/enter_key': True, |
2675 | @@ -215,6 +259,8 @@ |
2676 | 'intelligent_backspace': True, |
2677 | 'highlight_current_line': True, |
2678 | 'occurence_highlighting': True, |
2679 | + 'occurence_highlighting/timeout': 1500, |
2680 | + 'always_remove_trailing_spaces': False, |
2681 | 'fullpath_sorting': True, |
2682 | 'show_tab_bar': True, |
2683 | 'max_recent_files': 20, |
2684 | @@ -229,6 +275,7 @@ |
2685 | 'font/italic': False, |
2686 | 'font/bold': False, |
2687 | 'wrap': True, |
2688 | + 'go_to_eof': True, |
2689 | }), |
2690 | ('inspector', |
2691 | { |
2692 | @@ -240,7 +287,7 @@ |
2693 | 'font/italic': False, |
2694 | 'font/bold': False, |
2695 | 'rich_text/font/family': SANS_SERIF, |
2696 | - 'rich_text/font/size': 11, |
2697 | + 'rich_text/font/size': BIG, |
2698 | 'rich_text/font/italic': False, |
2699 | 'rich_text/font/bold': False, |
2700 | 'wrap': True, |
2701 | @@ -253,10 +300,17 @@ |
2702 | 'zoom_factor': .8, |
2703 | 'max_history_entries': 20, |
2704 | }), |
2705 | + ('outline_explorer', |
2706 | + { |
2707 | + 'shortcut': "Ctrl+Shift+O", |
2708 | + 'enable': True, |
2709 | + }), |
2710 | ('project_explorer', |
2711 | { |
2712 | 'shortcut': "Ctrl+Shift+P", |
2713 | 'enable': True, |
2714 | + 'name_filters': NAME_FILTERS, |
2715 | + 'show_all': False, |
2716 | }), |
2717 | ('arrayeditor', |
2718 | { |
2719 | @@ -283,11 +337,7 @@ |
2720 | { |
2721 | 'enable': True, |
2722 | 'wrap': True, |
2723 | - 'name_filters': ['*.py', '*.pyw', '*.ipy', '*.pth', |
2724 | - '*.npy', '*.mat', '*.spydata', |
2725 | - '*.txt', '*.csv', '*.dat'], |
2726 | - 'valid_filetypes': ['', '.py', '.pyw', '.ipy', '.spydata', '.npy', |
2727 | - '.pth', '.txt', '.csv', '.mat', '.h5'], |
2728 | + 'name_filters': NAME_FILTERS, |
2729 | 'show_hidden': True, |
2730 | 'show_all': False, |
2731 | 'show_toolbar': True, |
2732 | @@ -297,13 +347,13 @@ |
2733 | { |
2734 | 'enable': True, |
2735 | 'supported_encodings': ["utf-8", "iso-8859-1", "cp1252"], |
2736 | - 'include': [r'\.pyw?$|\.ipy$|\.txt$|\.c$|\.cpp$|\.h$|\.hpp$|\.f$|\.ini$', '.'], |
2737 | + 'include': INCLUDE_PATTERNS, |
2738 | 'include_regexp': True, |
2739 | - 'exclude': [r'\.pyc$|\.pyo$|\.orig$|\.hg|\.svn'], |
2740 | + 'exclude': EXCLUDE_PATTERNS, |
2741 | 'exclude_regexp': True, |
2742 | 'search_text_regexp': True, |
2743 | 'search_text': [''], |
2744 | - 'search_text_samples': [r'# ?TODO|# ?FIXME|# ?XXX|# ?HINT|# ?TIP'], |
2745 | + 'search_text_samples': [codeanalysis.TASKS_PATTERN], |
2746 | 'in_python_path': False, |
2747 | 'more_options': True, |
2748 | }), |
2749 | @@ -311,34 +361,14 @@ |
2750 | |
2751 | DEV = not __file__.startswith(sys.prefix) |
2752 | DEV = False |
2753 | -from spyderlib import __version__ |
2754 | -_subfolder = '.spyder%s' % __version__.split('.')[0] |
2755 | -CONF = UserConfig('spyder', defaults=DEFAULTS, load=(not DEV), version='2.0.6', |
2756 | - subfolder=_subfolder, backup=True, raw_mode=True) |
2757 | +CONF = UserConfig('spyder', defaults=DEFAULTS, load=(not DEV), version='2.4.0', |
2758 | + subfolder=SUBFOLDER, backup=True, raw_mode=True) |
2759 | # Removing old .spyder.ini location: |
2760 | old_location = osp.join(get_home_dir(), '.spyder.ini') |
2761 | if osp.isfile(old_location): |
2762 | os.remove(old_location) |
2763 | |
2764 | |
2765 | -# Translation support |
2766 | -if CONF.get('main', 'translation'): |
2767 | - from spyderlib.utils.translations import get_translation |
2768 | - _ = get_translation("spyderlib") |
2769 | -else: |
2770 | - _ = lambda x: x |
2771 | - |
2772 | - |
2773 | -def get_conf_path(filename=None): |
2774 | - """Return absolute path for configuration file with specified filename""" |
2775 | - conf_dir = osp.join(get_home_dir(), _subfolder) |
2776 | - if not osp.isdir(conf_dir): |
2777 | - os.mkdir(conf_dir) |
2778 | - if filename is None: |
2779 | - return conf_dir |
2780 | - else: |
2781 | - return osp.join(conf_dir, filename) |
2782 | - |
2783 | IMG_PATH = [] |
2784 | def add_image_path(path): |
2785 | if not osp.isdir(path): |
2786 | @@ -349,9 +379,14 @@ |
2787 | for dir in dirs: |
2788 | IMG_PATH.append(osp.join(path, dir)) |
2789 | |
2790 | -add_image_path(osp.join(DATA_PATH, 'images')) |
2791 | - |
2792 | -def get_image_path( name, default="not_found.png" ): |
2793 | +add_image_path(get_module_data_path('spyderlib', relpath='images')) |
2794 | + |
2795 | +from spyderlib.otherplugins import PLUGIN_PATH |
2796 | +if PLUGIN_PATH is not None: |
2797 | + add_image_path(osp.join(PLUGIN_PATH, 'images')) |
2798 | + |
2799 | + |
2800 | +def get_image_path(name, default="not_found.png"): |
2801 | """Return image absolute path""" |
2802 | for img_path in IMG_PATH: |
2803 | full_path = osp.join(img_path, name) |
2804 | @@ -476,31 +511,3 @@ |
2805 | set_default_color_scheme(_name, replace=False) |
2806 | CUSTOM_COLOR_SCHEME_NAME = "Custom" |
2807 | set_color_scheme(CUSTOM_COLOR_SCHEME_NAME, COLORS["Spyder"], replace=False) |
2808 | - |
2809 | - |
2810 | -PLUGIN_PATH = None |
2811 | -from spyderlib.utils import programs |
2812 | -if programs.is_module_installed("spyderplugins"): |
2813 | - import spyderplugins |
2814 | - PLUGIN_PATH = osp.abspath(spyderplugins.__path__[0]) |
2815 | - add_image_path(osp.join(PLUGIN_PATH, 'images')) |
2816 | - |
2817 | -def get_spyderplugins(prefix, extension): |
2818 | - """Scan spyderplugins module and |
2819 | - return the list of module names matching *prefix* and *extension*""" |
2820 | - plist = [] |
2821 | - if PLUGIN_PATH is not None: |
2822 | - for name in os.listdir(PLUGIN_PATH): |
2823 | - modname, ext = osp.splitext(name) |
2824 | - if prefix is not None and not name.startswith(prefix): |
2825 | - continue |
2826 | - if extension is not None and ext != extension: |
2827 | - continue |
2828 | - plist.append(modname) |
2829 | - return plist |
2830 | - |
2831 | -def get_spyderplugins_mods(prefix, extension): |
2832 | - """Scan spyderplugins module and |
2833 | - return the list of modules matching *prefix* and *extension*""" |
2834 | - return [getattr(__import__('spyderplugins.%s' % modname), modname) |
2835 | - for modname in get_spyderplugins(prefix, extension)] |
2836 | |
2837 | === added file 'spyderlib/images/actions/hist.png' |
2838 | Binary files spyderlib/images/actions/hist.png 1970-01-01 00:00:00 +0000 and spyderlib/images/actions/hist.png 2012-03-27 18:05:23 +0000 differ |
2839 | === added file 'spyderlib/images/editor/highlight.png' |
2840 | Binary files spyderlib/images/editor/highlight.png 1970-01-01 00:00:00 +0000 and spyderlib/images/editor/highlight.png 2012-03-27 18:05:23 +0000 differ |
2841 | === added file 'spyderlib/images/filetypes/cc.png' |
2842 | Binary files spyderlib/images/filetypes/cc.png 1970-01-01 00:00:00 +0000 and spyderlib/images/filetypes/cc.png 2012-03-27 18:05:23 +0000 differ |
2843 | === added file 'spyderlib/images/filetypes/cl.png' |
2844 | Binary files spyderlib/images/filetypes/cl.png 1970-01-01 00:00:00 +0000 and spyderlib/images/filetypes/cl.png 2012-03-27 18:05:23 +0000 differ |
2845 | === added file 'spyderlib/images/filetypes/css.png' |
2846 | Binary files spyderlib/images/filetypes/css.png 1970-01-01 00:00:00 +0000 and spyderlib/images/filetypes/css.png 2012-03-27 18:05:23 +0000 differ |
2847 | === added file 'spyderlib/images/filetypes/cxx.png' |
2848 | Binary files spyderlib/images/filetypes/cxx.png 1970-01-01 00:00:00 +0000 and spyderlib/images/filetypes/cxx.png 2012-03-27 18:05:23 +0000 differ |
2849 | === added file 'spyderlib/images/filetypes/hh.png' |
2850 | Binary files spyderlib/images/filetypes/hh.png 1970-01-01 00:00:00 +0000 and spyderlib/images/filetypes/hh.png 2012-03-27 18:05:23 +0000 differ |
2851 | === added file 'spyderlib/images/filetypes/hpp.png' |
2852 | Binary files spyderlib/images/filetypes/hpp.png 1970-01-01 00:00:00 +0000 and spyderlib/images/filetypes/hpp.png 2012-03-27 18:05:23 +0000 differ |
2853 | === added file 'spyderlib/images/filetypes/hxx.png' |
2854 | Binary files spyderlib/images/filetypes/hxx.png 1970-01-01 00:00:00 +0000 and spyderlib/images/filetypes/hxx.png 2012-03-27 18:05:23 +0000 differ |
2855 | === modified file 'spyderlib/images/options.svg' |
2856 | --- spyderlib/images/options.svg 2010-03-25 17:30:45 +0000 |
2857 | +++ spyderlib/images/options.svg 2012-03-27 18:05:23 +0000 |
2858 | @@ -1,5 +1,6 @@ |
2859 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
2860 | <!-- Created with Inkscape (http://www.inkscape.org/) --> |
2861 | + |
2862 | <svg |
2863 | xmlns:dc="http://purl.org/dc/elements/1.1/" |
2864 | xmlns:cc="http://creativecommons.org/ns#" |
2865 | @@ -13,7 +14,7 @@ |
2866 | height="120" |
2867 | id="svg3279" |
2868 | sodipodi:version="0.32" |
2869 | - inkscape:version="0.46" |
2870 | + inkscape:version="0.48.2 r9819" |
2871 | version="1.0" |
2872 | inkscape:export-filename="D:\options.png" |
2873 | inkscape:export-xdpi="24" |
2874 | @@ -60,7 +61,7 @@ |
2875 | inkscape:pageopacity="0.0" |
2876 | inkscape:pageshadow="2" |
2877 | inkscape:zoom="2.8" |
2878 | - inkscape:cx="27.69923" |
2879 | + inkscape:cx="-71.05077" |
2880 | inkscape:cy="76.846835" |
2881 | inkscape:document-units="px" |
2882 | inkscape:current-layer="layer1" |
2883 | @@ -68,7 +69,8 @@ |
2884 | inkscape:window-width="1280" |
2885 | inkscape:window-height="744" |
2886 | inkscape:window-x="-4" |
2887 | - inkscape:window-y="-4" /> |
2888 | + inkscape:window-y="-4" |
2889 | + inkscape:window-maximized="0" /> |
2890 | <metadata |
2891 | id="metadata3284"> |
2892 | <rdf:RDF> |
2893 | @@ -77,7 +79,25 @@ |
2894 | <dc:format>image/svg+xml</dc:format> |
2895 | <dc:type |
2896 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
2897 | + <dc:title></dc:title> |
2898 | + <cc:license |
2899 | + rdf:resource="http://creativecommons.org/licenses/by-sa/3.0/" /> |
2900 | </cc:Work> |
2901 | + <cc:License |
2902 | + rdf:about="http://creativecommons.org/licenses/by-sa/3.0/"> |
2903 | + <cc:permits |
2904 | + rdf:resource="http://creativecommons.org/ns#Reproduction" /> |
2905 | + <cc:permits |
2906 | + rdf:resource="http://creativecommons.org/ns#Distribution" /> |
2907 | + <cc:requires |
2908 | + rdf:resource="http://creativecommons.org/ns#Notice" /> |
2909 | + <cc:requires |
2910 | + rdf:resource="http://creativecommons.org/ns#Attribution" /> |
2911 | + <cc:permits |
2912 | + rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> |
2913 | + <cc:requires |
2914 | + rdf:resource="http://creativecommons.org/ns#ShareAlike" /> |
2915 | + </cc:License> |
2916 | </rdf:RDF> |
2917 | </metadata> |
2918 | <g |
2919 | |
2920 | === added file 'spyderlib/images/projects/folder.png' |
2921 | Binary files spyderlib/images/projects/folder.png 1970-01-01 00:00:00 +0000 and spyderlib/images/projects/folder.png 2012-03-27 18:05:23 +0000 differ |
2922 | === removed file 'spyderlib/images/projects/folder_collapsed.png' |
2923 | Binary files spyderlib/images/projects/folder_collapsed.png 2010-06-28 23:43:02 +0000 and spyderlib/images/projects/folder_collapsed.png 1970-01-01 00:00:00 +0000 differ |
2924 | === removed file 'spyderlib/images/projects/folder_expanded.png' |
2925 | Binary files spyderlib/images/projects/folder_expanded.png 2010-06-28 23:43:02 +0000 and spyderlib/images/projects/folder_expanded.png 1970-01-01 00:00:00 +0000 differ |
2926 | === added file 'spyderlib/images/projects/package.png' |
2927 | Binary files spyderlib/images/projects/package.png 1970-01-01 00:00:00 +0000 and spyderlib/images/projects/package.png 2012-03-27 18:05:23 +0000 differ |
2928 | === removed file 'spyderlib/images/projects/package_collapsed.png' |
2929 | Binary files spyderlib/images/projects/package_collapsed.png 2010-06-28 23:43:02 +0000 and spyderlib/images/projects/package_collapsed.png 1970-01-01 00:00:00 +0000 differ |
2930 | === removed file 'spyderlib/images/projects/package_expanded.png' |
2931 | Binary files spyderlib/images/projects/package_expanded.png 2010-06-28 23:43:02 +0000 and spyderlib/images/projects/package_expanded.png 1970-01-01 00:00:00 +0000 differ |
2932 | === added file 'spyderlib/images/projects/pp_folder.png' |
2933 | Binary files spyderlib/images/projects/pp_folder.png 1970-01-01 00:00:00 +0000 and spyderlib/images/projects/pp_folder.png 2012-03-27 18:05:23 +0000 differ |
2934 | === removed file 'spyderlib/images/projects/pp_folder_collapsed.png' |
2935 | Binary files spyderlib/images/projects/pp_folder_collapsed.png 2010-06-28 23:43:02 +0000 and spyderlib/images/projects/pp_folder_collapsed.png 1970-01-01 00:00:00 +0000 differ |
2936 | === removed file 'spyderlib/images/projects/pp_folder_expanded.png' |
2937 | Binary files spyderlib/images/projects/pp_folder_expanded.png 2010-06-28 23:43:02 +0000 and spyderlib/images/projects/pp_folder_expanded.png 1970-01-01 00:00:00 +0000 differ |
2938 | === added file 'spyderlib/images/projects/pp_package.png' |
2939 | Binary files spyderlib/images/projects/pp_package.png 1970-01-01 00:00:00 +0000 and spyderlib/images/projects/pp_package.png 2012-03-27 18:05:23 +0000 differ |
2940 | === removed file 'spyderlib/images/projects/pp_package_collapsed.png' |
2941 | Binary files spyderlib/images/projects/pp_package_collapsed.png 2010-06-28 23:43:02 +0000 and spyderlib/images/projects/pp_package_collapsed.png 1970-01-01 00:00:00 +0000 differ |
2942 | === removed file 'spyderlib/images/projects/pp_package_expanded.png' |
2943 | Binary files spyderlib/images/projects/pp_package_expanded.png 2010-06-28 23:43:02 +0000 and spyderlib/images/projects/pp_package_expanded.png 1970-01-01 00:00:00 +0000 differ |
2944 | === added file 'spyderlib/images/projects/pp_project.png' |
2945 | Binary files spyderlib/images/projects/pp_project.png 1970-01-01 00:00:00 +0000 and spyderlib/images/projects/pp_project.png 2012-03-27 18:05:23 +0000 differ |
2946 | === removed file 'spyderlib/images/projects/pp_project_collapsed.png' |
2947 | Binary files spyderlib/images/projects/pp_project_collapsed.png 2010-06-28 23:43:02 +0000 and spyderlib/images/projects/pp_project_collapsed.png 1970-01-01 00:00:00 +0000 differ |
2948 | === removed file 'spyderlib/images/projects/pp_project_expanded.png' |
2949 | Binary files spyderlib/images/projects/pp_project_expanded.png 2010-06-28 23:43:02 +0000 and spyderlib/images/projects/pp_project_expanded.png 1970-01-01 00:00:00 +0000 differ |
2950 | === added file 'spyderlib/images/projects/project.png' |
2951 | Binary files spyderlib/images/projects/project.png 1970-01-01 00:00:00 +0000 and spyderlib/images/projects/project.png 2012-03-27 18:05:23 +0000 differ |
2952 | === removed file 'spyderlib/images/projects/project_collapsed.png' |
2953 | Binary files spyderlib/images/projects/project_collapsed.png 2010-06-28 23:43:02 +0000 and spyderlib/images/projects/project_collapsed.png 1970-01-01 00:00:00 +0000 differ |
2954 | === removed file 'spyderlib/images/projects/project_expanded.png' |
2955 | Binary files spyderlib/images/projects/project_expanded.png 2010-06-28 23:43:02 +0000 and spyderlib/images/projects/project_expanded.png 1970-01-01 00:00:00 +0000 differ |
2956 | === added file 'spyderlib/images/scm_browse.png' |
2957 | Binary files spyderlib/images/scm_browse.png 1970-01-01 00:00:00 +0000 and spyderlib/images/scm_browse.png 2012-03-27 18:05:23 +0000 differ |
2958 | === added file 'spyderlib/images/scm_commit.png' |
2959 | Binary files spyderlib/images/scm_commit.png 1970-01-01 00:00:00 +0000 and spyderlib/images/scm_commit.png 2012-03-27 18:05:23 +0000 differ |
2960 | === modified file 'spyderlib/images/spyder.svg' |
2961 | --- spyderlib/images/spyder.svg 2010-03-25 17:30:45 +0000 |
2962 | +++ spyderlib/images/spyder.svg 2012-03-27 18:05:23 +0000 |
2963 | @@ -1,5 +1,6 @@ |
2964 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
2965 | <!-- Created with Inkscape (http://www.inkscape.org/) --> |
2966 | + |
2967 | <svg |
2968 | xmlns:dc="http://purl.org/dc/elements/1.1/" |
2969 | xmlns:cc="http://creativecommons.org/ns#" |
2970 | @@ -14,9 +15,8 @@ |
2971 | height="150.31233" |
2972 | id="svg2" |
2973 | sodipodi:version="0.32" |
2974 | - inkscape:version="0.46" |
2975 | + inkscape:version="0.48.2 r9819" |
2976 | sodipodi:docname="spyder.svg" |
2977 | - sodipodi:docbase="/home/sdeibel" |
2978 | inkscape:output_extension="org.inkscape.output.svg.inkscape" |
2979 | inkscape:export-filename="D:\Python\spyder\doc_src\_static\spyder.png" |
2980 | inkscape:export-xdpi="77.629997" |
2981 | @@ -29,7 +29,23 @@ |
2982 | <dc:format>image/svg+xml</dc:format> |
2983 | <dc:type |
2984 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
2985 | + <dc:title></dc:title> |
2986 | + <cc:license |
2987 | + rdf:resource="http://creativecommons.org/licenses/by/3.0/" /> |
2988 | </cc:Work> |
2989 | + <cc:License |
2990 | + rdf:about="http://creativecommons.org/licenses/by/3.0/"> |
2991 | + <cc:permits |
2992 | + rdf:resource="http://creativecommons.org/ns#Reproduction" /> |
2993 | + <cc:permits |
2994 | + rdf:resource="http://creativecommons.org/ns#Distribution" /> |
2995 | + <cc:requires |
2996 | + rdf:resource="http://creativecommons.org/ns#Notice" /> |
2997 | + <cc:requires |
2998 | + rdf:resource="http://creativecommons.org/ns#Attribution" /> |
2999 | + <cc:permits |
3000 | + rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> |
3001 | + </cc:License> |
3002 | </rdf:RDF> |
3003 | </metadata> |
3004 | <sodipodi:namedview |
3005 | @@ -42,12 +58,13 @@ |
3006 | pagecolor="#ffffff" |
3007 | id="base" |
3008 | inkscape:zoom="2.0279948" |
3009 | - inkscape:cx="-53.646496" |
3010 | + inkscape:cx="-160.92069" |
3011 | inkscape:cy="56.434504" |
3012 | inkscape:window-x="0" |
3013 | inkscape:window-y="22" |
3014 | inkscape:current-layer="svg2" |
3015 | - showgrid="false" /> |
3016 | + showgrid="false" |
3017 | + inkscape:window-maximized="0" /> |
3018 | <defs |
3019 | id="defs4"> |
3020 | <linearGradient |
3021 | @@ -361,7 +378,7 @@ |
3022 | sodipodi:cy="45.035332" |
3023 | sodipodi:rx="5.9274387" |
3024 | sodipodi:ry="10.808859" |
3025 | - d="M 102.50982,45.035332 A 5.9274387,10.808859 0 1 1 90.654943,45.035332 A 5.9274387,10.808859 0 1 1 102.50982,45.035332 z" |
3026 | + d="m 102.50982,45.035332 c 0,5.969568 -2.653804,10.808859 -5.927438,10.808859 -3.273634,0 -5.927439,-4.839291 -5.927439,-10.808859 0,-5.969568 2.653805,-10.808859 5.927439,-10.808859 3.273634,0 5.927438,4.839291 5.927438,10.808859 z" |
3027 | transform="matrix(0.6055665,0.6055665,-0.6286135,0.6286135,75.900286,-31.30135)" /> |
3028 | </g> |
3029 | </svg> |
3030 | |
3031 | === modified file 'spyderlib/images/spyder_light.svg' |
3032 | --- spyderlib/images/spyder_light.svg 2011-03-05 18:03:43 +0000 |
3033 | +++ spyderlib/images/spyder_light.svg 2012-03-27 18:05:23 +0000 |
3034 | @@ -15,8 +15,8 @@ |
3035 | height="150.31233" |
3036 | id="svg2" |
3037 | sodipodi:version="0.32" |
3038 | - inkscape:version="0.48.0 r9654" |
3039 | - sodipodi:docname="spyder-small.svg" |
3040 | + inkscape:version="0.48.2 r9819" |
3041 | + sodipodi:docname="spyder_light.svg" |
3042 | inkscape:output_extension="org.inkscape.output.svg.inkscape" |
3043 | inkscape:export-filename="D:\Python\spyder\img_src\ico24.png" |
3044 | inkscape:export-xdpi="14.35" |
3045 | @@ -30,7 +30,22 @@ |
3046 | <dc:type |
3047 | rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
3048 | <dc:title></dc:title> |
3049 | + <cc:license |
3050 | + rdf:resource="http://creativecommons.org/licenses/by/3.0/" /> |
3051 | </cc:Work> |
3052 | + <cc:License |
3053 | + rdf:about="http://creativecommons.org/licenses/by/3.0/"> |
3054 | + <cc:permits |
3055 | + rdf:resource="http://creativecommons.org/ns#Reproduction" /> |
3056 | + <cc:permits |
3057 | + rdf:resource="http://creativecommons.org/ns#Distribution" /> |
3058 | + <cc:requires |
3059 | + rdf:resource="http://creativecommons.org/ns#Notice" /> |
3060 | + <cc:requires |
3061 | + rdf:resource="http://creativecommons.org/ns#Attribution" /> |
3062 | + <cc:permits |
3063 | + rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> |
3064 | + </cc:License> |
3065 | </rdf:RDF> |
3066 | </metadata> |
3067 | <sodipodi:namedview |
3068 | @@ -43,7 +58,7 @@ |
3069 | pagecolor="#ffffff" |
3070 | id="base" |
3071 | inkscape:zoom="2.0279948" |
3072 | - inkscape:cx="-92.102604" |
3073 | + inkscape:cx="-228.44418" |
3074 | inkscape:cy="56.434504" |
3075 | inkscape:window-x="0" |
3076 | inkscape:window-y="22" |
3077 | |
3078 | === added file 'spyderlib/images/upper_lower.png' |
3079 | Binary files spyderlib/images/upper_lower.png 1970-01-01 00:00:00 +0000 and spyderlib/images/upper_lower.png 2012-03-27 18:05:23 +0000 differ |
3080 | === added file 'spyderlib/images/whole_words.png' |
3081 | Binary files spyderlib/images/whole_words.png 1970-01-01 00:00:00 +0000 and spyderlib/images/whole_words.png 2012-03-27 18:05:23 +0000 differ |
3082 | === modified file 'spyderlib/interpreter.py' |
3083 | --- spyderlib/interpreter.py 2011-04-29 21:19:10 +0000 |
3084 | +++ spyderlib/interpreter.py 2012-03-27 18:05:23 +0000 |
3085 | @@ -6,8 +6,14 @@ |
3086 | |
3087 | """Shell Interpreter""" |
3088 | |
3089 | -import sys, atexit, threading, ctypes |
3090 | -import os, re, os.path as osp, pydoc |
3091 | +import sys |
3092 | +import atexit |
3093 | +import threading |
3094 | +import ctypes |
3095 | +import os |
3096 | +import re |
3097 | +import os.path as osp |
3098 | +import pydoc |
3099 | from subprocess import Popen, PIPE |
3100 | from code import InteractiveConsole |
3101 | |
3102 | @@ -18,9 +24,6 @@ |
3103 | # Force Python to search modules in the current directory first: |
3104 | sys.path.insert(0, '') |
3105 | |
3106 | -# For debugging purpose |
3107 | -STDOUT, STDERR = sys.stdout, sys.stderr |
3108 | - |
3109 | |
3110 | def guess_filename(filename): |
3111 | """Guess filename""" |
3112 | @@ -220,6 +223,8 @@ |
3113 | |
3114 | def run_line(self): |
3115 | line = self.stdin_read.readline() |
3116 | + if self.exit_flag: |
3117 | + return |
3118 | # Remove last character which is always '\n': |
3119 | self.run_command(line[:-1]) |
3120 | |
3121 | |
3122 | === added file 'spyderlib/locale/fr/LC_MESSAGES/spyderlib.mo' |
3123 | Binary files spyderlib/locale/fr/LC_MESSAGES/spyderlib.mo 1970-01-01 00:00:00 +0000 and spyderlib/locale/fr/LC_MESSAGES/spyderlib.mo 2012-03-27 18:05:23 +0000 differ |
3124 | === modified file 'spyderlib/locale/fr/LC_MESSAGES/spyderlib.po' |
3125 | --- spyderlib/locale/fr/LC_MESSAGES/spyderlib.po 2011-04-29 21:19:10 +0000 |
3126 | +++ spyderlib/locale/fr/LC_MESSAGES/spyderlib.po 2012-03-27 18:05:23 +0000 |
3127 | @@ -4,8 +4,8 @@ |
3128 | # |
3129 | msgid "" |
3130 | msgstr "" |
3131 | -"Project-Id-Version: 2.0\n" |
3132 | -"POT-Creation-Date: 2011-04-26 11:26+Paris, Madrid\n" |
3133 | +"Project-Id-Version: 2.1\n" |
3134 | +"POT-Creation-Date: 2012-02-20 15:44+Paris, Madrid\n" |
3135 | "PO-Revision-Date: 2011-04-11 21:41+2\n" |
3136 | "Last-Translator: Pierre Raybaut\n" |
3137 | "Language-Team: Python\n" |
3138 | @@ -14,357 +14,418 @@ |
3139 | "Content-Transfer-Encoding: utf-8\n" |
3140 | "Generated-By: pygettext.py 1.5\n" |
3141 | |
3142 | -#: spyderlib\plugins\configdialog.py:120 |
3143 | +#: spyderlib\config.py:52 |
3144 | +msgid "Python files" |
3145 | +msgstr "Fichier Python" |
3146 | + |
3147 | +#: spyderlib\config.py:53 |
3148 | +msgid "Cython/Pyrex files" |
3149 | +msgstr "Fichiers Cython/Pyrex" |
3150 | + |
3151 | +#: spyderlib\config.py:54 |
3152 | +msgid "C files" |
3153 | +msgstr "Fichiers C" |
3154 | + |
3155 | +#: spyderlib\config.py:55 |
3156 | +msgid "C++ files" |
3157 | +msgstr "Fichiers C++" |
3158 | + |
3159 | +#: spyderlib\config.py:56 |
3160 | +msgid "OpenCL files" |
3161 | +msgstr "Fichiers OpenCL" |
3162 | + |
3163 | +#: spyderlib\config.py:57 |
3164 | +msgid "Fortran files" |
3165 | +msgstr "Fichiers Fortran" |
3166 | + |
3167 | +#: spyderlib\config.py:58 |
3168 | +msgid "Patch and diff files" |
3169 | +msgstr "Fichiers patch et diff" |
3170 | + |
3171 | +#: spyderlib\config.py:59 |
3172 | +msgid "Batch files" |
3173 | +msgstr "Fichiers Batch" |
3174 | + |
3175 | +#: spyderlib\config.py:60 spyderlib\utils\iofuncs.py:337 |
3176 | +msgid "Text files" |
3177 | +msgstr "Fichiers texte" |
3178 | + |
3179 | +#: spyderlib\config.py:61 |
3180 | +msgid "reStructured Text files" |
3181 | +msgstr "Fichiers reST" |
3182 | + |
3183 | +#: spyderlib\config.py:62 |
3184 | +msgid "gettext files" |
3185 | +msgstr "Fichiers gettext" |
3186 | + |
3187 | +#: spyderlib\config.py:63 |
3188 | +msgid "Web page files" |
3189 | +msgstr "Fichiers web" |
3190 | + |
3191 | +#: spyderlib\config.py:64 |
3192 | +msgid "Configuration files" |
3193 | +msgstr "Configurations" |
3194 | + |
3195 | +#: spyderlib\config.py:72 spyderlib\widgets\explorer.py:619 |
3196 | +msgid "All files" |
3197 | +msgstr "Tous les fichiers" |
3198 | + |
3199 | +#: spyderlib\plugins\configdialog.py:130 |
3200 | msgid "Preferences" |
3201 | msgstr "Préférences" |
3202 | |
3203 | -#: spyderlib\plugins\configdialog.py:385 |
3204 | +#: spyderlib\plugins\configdialog.py:401 |
3205 | msgid "Invalid directory path" |
3206 | msgstr "Chemin d'accès de répertoire incorrect" |
3207 | |
3208 | -#: spyderlib\plugins\configdialog.py:388 spyderlib\plugins\configdialog.py:404 |
3209 | -#: spyderlib\plugins\runconfig.py:126 spyderlib\plugins\runconfig.py:175 |
3210 | -#: spyderlib\plugins\workingdirectory.py:293 |
3211 | -#: spyderlib\widgets\externalshell\pythonshell.py:540 |
3212 | -#: spyderlib\widgets\findinfiles.py:518 spyderlib\widgets\pathmanager.py:212 |
3213 | +#: spyderlib\plugins\configdialog.py:404 spyderlib\plugins\configdialog.py:420 |
3214 | +#: spyderlib\plugins\runconfig.py:134 spyderlib\plugins\runconfig.py:185 |
3215 | +#: spyderlib\plugins\workingdirectory.py:294 spyderlib\widgets\explorer.py:535 |
3216 | +#: spyderlib\widgets\externalshell\pythonshell.py:584 |
3217 | +#: spyderlib\widgets\findinfiles.py:513 spyderlib\widgets\pathmanager.py:218 |
3218 | +#: spyderlib\widgets\projectexplorer.py:812 |
3219 | msgid "Select directory" |
3220 | msgstr "Sélectionner un répertoire" |
3221 | |
3222 | -#: spyderlib\plugins\configdialog.py:416 |
3223 | +#: spyderlib\plugins\configdialog.py:432 |
3224 | msgid "Invalid file path" |
3225 | msgstr "Chemin d'accès de fichier incorrect" |
3226 | |
3227 | -#: spyderlib\plugins\configdialog.py:419 spyderlib\plugins\configdialog.py:437 |
3228 | +#: spyderlib\plugins\configdialog.py:435 spyderlib\plugins\configdialog.py:453 |
3229 | msgid "Select file" |
3230 | msgstr "Sélectionner un fichier" |
3231 | |
3232 | -#: spyderlib\plugins\configdialog.py:436 |
3233 | +#: spyderlib\plugins\configdialog.py:452 |
3234 | msgid "All files (*)" |
3235 | msgstr "Tous les fichiers (*)" |
3236 | |
3237 | -#: spyderlib\plugins\configdialog.py:500 spyderlib\widgets\formlayout.py:209 |
3238 | +#: spyderlib\plugins\configdialog.py:516 spyderlib\widgets\formlayout.py:205 |
3239 | msgid "Bold" |
3240 | msgstr "Gras" |
3241 | |
3242 | -#: spyderlib\plugins\configdialog.py:503 spyderlib\widgets\formlayout.py:204 |
3243 | +#: spyderlib\plugins\configdialog.py:519 spyderlib\widgets\formlayout.py:200 |
3244 | msgid "Italic" |
3245 | msgstr "Italique" |
3246 | |
3247 | -#: spyderlib\plugins\configdialog.py:541 |
3248 | +#: spyderlib\plugins\configdialog.py:557 |
3249 | msgid "Font: " |
3250 | msgstr "Police : " |
3251 | |
3252 | -#: spyderlib\plugins\configdialog.py:545 |
3253 | +#: spyderlib\plugins\configdialog.py:561 |
3254 | msgid "Size: " |
3255 | msgstr "Taille : " |
3256 | |
3257 | -#: spyderlib\plugins\configdialog.py:554 spyderlib\plugins\history.py:41 |
3258 | +#: spyderlib\plugins\configdialog.py:570 spyderlib\plugins\history.py:40 |
3259 | msgid "Font style" |
3260 | msgstr "Police d'écriture" |
3261 | |
3262 | -#: spyderlib\plugins\configdialog.py:598 |
3263 | +#: spyderlib\plugins\configdialog.py:614 |
3264 | msgid "General" |
3265 | msgstr "Général" |
3266 | |
3267 | -#: spyderlib\plugins\configdialog.py:604 spyderlib\plugins\editor.py:85 |
3268 | -#: spyderlib\plugins\externalconsole.py:39 |
3269 | +#: spyderlib\plugins\configdialog.py:620 spyderlib\plugins\editor.py:81 |
3270 | +#: spyderlib\plugins\externalconsole.py:45 |
3271 | msgid "Interface" |
3272 | msgstr "Interface" |
3273 | |
3274 | -#: spyderlib\plugins\configdialog.py:606 |
3275 | +#: spyderlib\plugins\configdialog.py:623 |
3276 | +msgid "Qt windows style" |
3277 | +msgstr "Style de fenêtres Qt" |
3278 | + |
3279 | +#: spyderlib\plugins\configdialog.py:627 |
3280 | msgid "Vertical dockwidget title bars" |
3281 | msgstr "Barres de titre orientées verticalement" |
3282 | |
3283 | -#: spyderlib\plugins\configdialog.py:608 |
3284 | +#: spyderlib\plugins\configdialog.py:629 |
3285 | msgid "Vertical dockwidget tabs" |
3286 | msgstr "Onglets distribués verticalement" |
3287 | |
3288 | -#: spyderlib\plugins\configdialog.py:610 |
3289 | +#: spyderlib\plugins\configdialog.py:631 |
3290 | msgid "Animated toolbars and dockwidgets" |
3291 | msgstr "Panneaux et barres d'outils animés" |
3292 | |
3293 | -#: spyderlib\plugins\configdialog.py:612 |
3294 | +#: spyderlib\plugins\configdialog.py:633 |
3295 | msgid "Custom dockwidget margin:" |
3296 | msgstr "Marges personnalisées :" |
3297 | |
3298 | -#: spyderlib\plugins\configdialog.py:642 |
3299 | +#: spyderlib\plugins\configdialog.py:664 |
3300 | msgid "Syntax coloring" |
3301 | msgstr "Coloration syntaxique" |
3302 | |
3303 | -#: spyderlib\plugins\configdialog.py:653 |
3304 | +#: spyderlib\plugins\configdialog.py:675 |
3305 | msgid "Background:" |
3306 | msgstr "Fond :" |
3307 | |
3308 | -#: spyderlib\plugins\configdialog.py:654 spyderlib\widgets\editor.py:58 |
3309 | +#: spyderlib\plugins\configdialog.py:676 |
3310 | +#: spyderlib\widgets\sourcecode\codeeditor.py:245 |
3311 | msgid "Current line:" |
3312 | msgstr "Ligne actuelle :" |
3313 | |
3314 | -#: spyderlib\plugins\configdialog.py:655 |
3315 | +#: spyderlib\plugins\configdialog.py:677 |
3316 | msgid "Occurence:" |
3317 | msgstr "Occurence :" |
3318 | |
3319 | -#: spyderlib\plugins\configdialog.py:656 |
3320 | +#: spyderlib\plugins\configdialog.py:678 |
3321 | msgid "Link:" |
3322 | msgstr "Lien :" |
3323 | |
3324 | -#: spyderlib\plugins\configdialog.py:657 |
3325 | +#: spyderlib\plugins\configdialog.py:679 |
3326 | msgid "Side areas:" |
3327 | msgstr "Zones latérales :" |
3328 | |
3329 | -#: spyderlib\plugins\configdialog.py:658 |
3330 | +#: spyderlib\plugins\configdialog.py:680 |
3331 | msgid "Matched parentheses:" |
3332 | msgstr "Parenthèse fermée :" |
3333 | |
3334 | -#: spyderlib\plugins\configdialog.py:659 |
3335 | +#: spyderlib\plugins\configdialog.py:681 |
3336 | msgid "Unmatched parentheses:" |
3337 | msgstr "Parenthèse non fermée :" |
3338 | |
3339 | -#: spyderlib\plugins\configdialog.py:660 |
3340 | +#: spyderlib\plugins\configdialog.py:682 |
3341 | msgid "Normal text:" |
3342 | msgstr "Texte normal :" |
3343 | |
3344 | -#: spyderlib\plugins\configdialog.py:661 |
3345 | +#: spyderlib\plugins\configdialog.py:683 |
3346 | msgid "Keyword:" |
3347 | msgstr "Mot-clé :" |
3348 | |
3349 | -#: spyderlib\plugins\configdialog.py:662 |
3350 | +#: spyderlib\plugins\configdialog.py:684 |
3351 | msgid "Builtin:" |
3352 | msgstr "Objet intégré :" |
3353 | |
3354 | -#: spyderlib\plugins\configdialog.py:663 |
3355 | +#: spyderlib\plugins\configdialog.py:685 |
3356 | msgid "Definition:" |
3357 | msgstr "Définition :" |
3358 | |
3359 | -#: spyderlib\plugins\configdialog.py:664 |
3360 | +#: spyderlib\plugins\configdialog.py:686 |
3361 | msgid "Comment:" |
3362 | msgstr "Commentaire :" |
3363 | |
3364 | -#: spyderlib\plugins\configdialog.py:665 |
3365 | +#: spyderlib\plugins\configdialog.py:687 |
3366 | msgid "String:" |
3367 | msgstr "Chaîne :" |
3368 | |
3369 | -#: spyderlib\plugins\configdialog.py:666 |
3370 | +#: spyderlib\plugins\configdialog.py:688 |
3371 | msgid "Number:" |
3372 | msgstr "Nombre :" |
3373 | |
3374 | -#: spyderlib\plugins\configdialog.py:667 |
3375 | +#: spyderlib\plugins\configdialog.py:689 |
3376 | msgid "Instance:" |
3377 | msgstr "Instance :" |
3378 | |
3379 | -#: spyderlib\plugins\configdialog.py:673 |
3380 | +#: spyderlib\plugins\configdialog.py:695 |
3381 | msgid "Color scheme" |
3382 | msgstr "Paramètres de coloration syntaxique" |
3383 | |
3384 | -#: spyderlib\plugins\configdialog.py:695 spyderlib\plugins\shortcuts.py:324 |
3385 | +#: spyderlib\plugins\configdialog.py:717 spyderlib\plugins\shortcuts.py:343 |
3386 | msgid "Reset to default values" |
3387 | msgstr "Rétablir les valeurs par défaut" |
3388 | |
3389 | -#: spyderlib\plugins\console.py:101 |
3390 | +#: spyderlib\plugins\console.py:104 |
3391 | msgid "Internal console" |
3392 | msgstr "Console interne" |
3393 | |
3394 | -#: spyderlib\plugins\console.py:121 spyderlib\spyder.py:573 |
3395 | +#: spyderlib\plugins\console.py:124 spyderlib\spyder.py:641 |
3396 | msgid "&Quit" |
3397 | msgstr "&Quitter" |
3398 | |
3399 | -#: spyderlib\plugins\console.py:122 spyderlib\spyder.py:574 |
3400 | +#: spyderlib\plugins\console.py:125 spyderlib\spyder.py:642 |
3401 | msgid "Quit" |
3402 | msgstr "Quitter" |
3403 | |
3404 | -#: spyderlib\plugins\console.py:125 spyderlib\plugins\externalconsole.py:681 |
3405 | +#: spyderlib\plugins\console.py:128 spyderlib\plugins\externalconsole.py:899 |
3406 | msgid "&Run..." |
3407 | msgstr "Exécute&r..." |
3408 | |
3409 | -#: spyderlib\plugins\console.py:126 spyderlib\plugins\externalconsole.py:682 |
3410 | +#: spyderlib\plugins\console.py:129 spyderlib\plugins\externalconsole.py:900 |
3411 | msgid "Run a Python script" |
3412 | msgstr "Exécuter un script Python" |
3413 | |
3414 | -#: spyderlib\plugins\console.py:129 |
3415 | +#: spyderlib\plugins\console.py:132 |
3416 | msgid "Environment variables..." |
3417 | msgstr "Variables d'environnement..." |
3418 | |
3419 | -#: spyderlib\plugins\console.py:131 |
3420 | +#: spyderlib\plugins\console.py:134 |
3421 | msgid "Show and edit environment variables (for current session)" |
3422 | msgstr "" |
3423 | "Afficher et modifier les variables d'environnement (pour la session en cours)" |
3424 | |
3425 | -#: spyderlib\plugins\console.py:135 |
3426 | +#: spyderlib\plugins\console.py:138 |
3427 | msgid "Show sys.path contents..." |
3428 | msgstr "Afficher le contenu de sys.path..." |
3429 | |
3430 | -#: spyderlib\plugins\console.py:137 |
3431 | +#: spyderlib\plugins\console.py:140 |
3432 | msgid "Show (read-only) sys.path" |
3433 | msgstr "Afficher le contenu de sys.path (lecture seule)" |
3434 | |
3435 | -#: spyderlib\plugins\console.py:140 |
3436 | +#: spyderlib\plugins\console.py:143 |
3437 | msgid "Buffer..." |
3438 | msgstr "Tampon..." |
3439 | |
3440 | -#: spyderlib\plugins\console.py:141 spyderlib\plugins\externalconsole.py:59 |
3441 | -#: spyderlib\plugins\history.py:36 |
3442 | +#: spyderlib\plugins\console.py:144 spyderlib\plugins\externalconsole.py:65 |
3443 | +#: spyderlib\plugins\history.py:33 |
3444 | msgid "Set maximum line count" |
3445 | msgstr "Modifier le nombre maximum de lignes" |
3446 | |
3447 | -#: spyderlib\plugins\console.py:144 spyderlib\plugins\explorer.py:67 |
3448 | -#: spyderlib\plugins\history.py:146 spyderlib\plugins\inspector.py:217 |
3449 | -#: spyderlib\plugins\projectexplorer.py:65 |
3450 | +#: spyderlib\plugins\console.py:147 spyderlib\plugins\explorer.py:59 |
3451 | +#: spyderlib\plugins\history.py:149 spyderlib\plugins\inspector.py:220 |
3452 | +#: spyderlib\plugins\projectexplorer.py:56 |
3453 | msgid "&Font..." |
3454 | msgstr "&Police..." |
3455 | |
3456 | -#: spyderlib\plugins\console.py:145 spyderlib\plugins\history.py:147 |
3457 | +#: spyderlib\plugins\console.py:148 spyderlib\plugins\history.py:150 |
3458 | msgid "Set shell font style" |
3459 | msgstr "Changer la police d'écriture de la console" |
3460 | |
3461 | -#: spyderlib\plugins\console.py:148 |
3462 | +#: spyderlib\plugins\console.py:151 |
3463 | msgid "External editor path..." |
3464 | msgstr "Éditeur externe..." |
3465 | |
3466 | -#: spyderlib\plugins\console.py:149 |
3467 | +#: spyderlib\plugins\console.py:152 |
3468 | msgid "Set external editor executable path" |
3469 | msgstr "Modifier le chemin d'accès de l'éditeur externe" |
3470 | |
3471 | -#: spyderlib\plugins\console.py:152 spyderlib\plugins\editor.py:117 |
3472 | -#: spyderlib\plugins\externalconsole.py:60 spyderlib\plugins\history.py:39 |
3473 | -#: spyderlib\plugins\history.py:149 spyderlib\plugins\inspector.py:89 |
3474 | -#: spyderlib\plugins\inspector.py:220 |
3475 | +#: spyderlib\plugins\console.py:155 spyderlib\plugins\editor.py:118 |
3476 | +#: spyderlib\plugins\externalconsole.py:66 spyderlib\plugins\history.py:36 |
3477 | +#: spyderlib\plugins\history.py:152 spyderlib\plugins\inspector.py:89 |
3478 | +#: spyderlib\plugins\inspector.py:223 |
3479 | msgid "Wrap lines" |
3480 | msgstr "Retour à la ligne automatique" |
3481 | |
3482 | -#: spyderlib\plugins\console.py:155 spyderlib\plugins\editor.py:145 |
3483 | -#: spyderlib\plugins\externalconsole.py:93 |
3484 | +#: spyderlib\plugins\console.py:158 spyderlib\plugins\editor.py:148 |
3485 | +#: spyderlib\plugins\externalconsole.py:121 |
3486 | msgid "Balloon tips" |
3487 | msgstr "Info-bulles" |
3488 | |
3489 | -#: spyderlib\plugins\console.py:159 spyderlib\plugins\editor.py:137 |
3490 | -#: spyderlib\plugins\externalconsole.py:85 |
3491 | +#: spyderlib\plugins\console.py:162 spyderlib\plugins\editor.py:140 |
3492 | +#: spyderlib\plugins\externalconsole.py:113 |
3493 | msgid "Automatic code completion" |
3494 | msgstr "Complétion de code automatique" |
3495 | |
3496 | -#: spyderlib\plugins\console.py:163 spyderlib\plugins\editor.py:143 |
3497 | -#: spyderlib\plugins\externalconsole.py:91 |
3498 | +#: spyderlib\plugins\console.py:166 spyderlib\plugins\editor.py:146 |
3499 | +#: spyderlib\plugins\externalconsole.py:119 |
3500 | msgid "Enter key selects completion" |
3501 | msgstr "Entrée valide la complétion de code" |
3502 | |
3503 | -#: spyderlib\plugins\console.py:168 |
3504 | +#: spyderlib\plugins\console.py:171 |
3505 | msgid "Internal console settings" |
3506 | msgstr "Options de la console interne" |
3507 | |
3508 | -#: spyderlib\plugins\console.py:210 spyderlib\plugins\externalconsole.py:861 |
3509 | +#: spyderlib\plugins\console.py:221 spyderlib\plugins\externalconsole.py:1122 |
3510 | msgid "Run Python script" |
3511 | msgstr "Exécuter un script Python" |
3512 | |
3513 | -#: spyderlib\plugins\console.py:211 spyderlib\plugins\externalconsole.py:862 |
3514 | -#: spyderlib\widgets\explorer.py:498 spyderlib\widgets\projectexplorer.py:1167 |
3515 | +#: spyderlib\plugins\console.py:222 spyderlib\plugins\externalconsole.py:227 |
3516 | +#: spyderlib\plugins\externalconsole.py:1123 spyderlib\widgets\explorer.py:633 |
3517 | msgid "Python scripts" |
3518 | msgstr "Scripts Python" |
3519 | |
3520 | -#: spyderlib\plugins\console.py:257 spyderlib\plugins\explorer.py:140 |
3521 | -#: spyderlib\plugins\history.py:257 spyderlib\plugins\inspector.py:459 |
3522 | -#: spyderlib\plugins\projectexplorer.py:117 |
3523 | +#: spyderlib\plugins\console.py:266 spyderlib\plugins\explorer.py:110 |
3524 | +#: spyderlib\plugins\history.py:261 spyderlib\plugins\inspector.py:465 |
3525 | +#: spyderlib\plugins\projectexplorer.py:109 |
3526 | msgid "Select a new font" |
3527 | msgstr "Sélectionner une police d'écriture" |
3528 | |
3529 | -#: spyderlib\plugins\console.py:264 |
3530 | +#: spyderlib\plugins\console.py:273 |
3531 | msgid "Buffer" |
3532 | msgstr "Tampon" |
3533 | |
3534 | -#: spyderlib\plugins\console.py:265 |
3535 | +#: spyderlib\plugins\console.py:274 |
3536 | msgid "Maximum line count" |
3537 | msgstr "Nombre maximum de lignes" |
3538 | |
3539 | -#: spyderlib\plugins\console.py:274 |
3540 | +#: spyderlib\plugins\console.py:283 |
3541 | msgid "External editor" |
3542 | msgstr "Éditeur externe" |
3543 | |
3544 | -#: spyderlib\plugins\console.py:275 |
3545 | +#: spyderlib\plugins\console.py:284 |
3546 | msgid "External editor executable path:" |
3547 | msgstr "Chemin d'accès de l'exécutable :" |
3548 | |
3549 | -#: spyderlib\plugins\editor.py:79 spyderlib\plugins\editor.py:467 |
3550 | -#: spyderlib\plugins\editor.py:1412 spyderlib\plugins\inspector.py:244 |
3551 | -#: spyderlib\widgets\editor.py:50 spyderlib\widgets\editor.py:458 |
3552 | +#: spyderlib\plugins\editor.py:75 spyderlib\plugins\editor.py:481 |
3553 | +#: spyderlib\plugins\editor.py:1421 spyderlib\plugins\inspector.py:247 |
3554 | +#: spyderlib\widgets\editor.py:518 |
3555 | +#: spyderlib\widgets\sourcecode\codeeditor.py:235 |
3556 | +#: spyderlib\widgets\sourcecode\codeeditor.py:2273 |
3557 | msgid "Editor" |
3558 | msgstr "Éditeur" |
3559 | |
3560 | -#: spyderlib\plugins\editor.py:82 |
3561 | +#: spyderlib\plugins\editor.py:78 |
3562 | msgid "Edit template for new modules" |
3563 | msgstr "Modifier le modèle (nouveaux modules)" |
3564 | |
3565 | -#: spyderlib\plugins\editor.py:87 |
3566 | +#: spyderlib\plugins\editor.py:83 |
3567 | msgid "Text and margin font style" |
3568 | msgstr "Police d'écriture du texte et de la marge" |
3569 | |
3570 | -#: spyderlib\plugins\editor.py:90 |
3571 | -msgid "Show outline explorer" |
3572 | -msgstr "Afficher l'explorateur de structure" |
3573 | - |
3574 | -#: spyderlib\plugins\editor.py:92 |
3575 | +#: spyderlib\plugins\editor.py:86 |
3576 | msgid "Sort files according to full path" |
3577 | msgstr "Classer les fichiers suivant leur chemin complet" |
3578 | |
3579 | -#: spyderlib\plugins\editor.py:94 |
3580 | +#: spyderlib\plugins\editor.py:88 |
3581 | msgid "Show tab bar" |
3582 | msgstr "Afficher la barre d'onglets" |
3583 | |
3584 | -#: spyderlib\plugins\editor.py:102 spyderlib\plugins\editor.py:165 |
3585 | -#: spyderlib\plugins\externalconsole.py:55 |
3586 | -#: spyderlib\plugins\externalconsole.py:84 spyderlib\plugins\history.py:38 |
3587 | +#: spyderlib\plugins\editor.py:95 spyderlib\plugins\editor.py:169 |
3588 | +#: spyderlib\plugins\externalconsole.py:61 |
3589 | +#: spyderlib\plugins\externalconsole.py:112 spyderlib\plugins\history.py:35 |
3590 | #: spyderlib\plugins\inspector.py:88 |
3591 | msgid "Source code" |
3592 | msgstr "Code source" |
3593 | |
3594 | -#: spyderlib\plugins\editor.py:103 |
3595 | +#: spyderlib\plugins\editor.py:96 |
3596 | msgid "Show line numbers" |
3597 | msgstr "Afficher les numéros de ligne" |
3598 | |
3599 | -#: spyderlib\plugins\editor.py:104 |
3600 | +#: spyderlib\plugins\editor.py:97 |
3601 | msgid "Show vertical line after" |
3602 | msgstr "Afficher une ligne verticale après" |
3603 | |
3604 | -#: spyderlib\plugins\editor.py:105 |
3605 | +#: spyderlib\plugins\editor.py:98 |
3606 | msgid "characters" |
3607 | msgstr "caractères" |
3608 | |
3609 | -#: spyderlib\plugins\editor.py:113 |
3610 | +#: spyderlib\plugins\editor.py:106 |
3611 | msgid "Highlight current line" |
3612 | msgstr "Surligner la ligne en cours d'édition" |
3613 | |
3614 | -#: spyderlib\plugins\editor.py:115 |
3615 | -msgid "Highlight occurences" |
3616 | -msgstr "Surligner les occurences" |
3617 | +#: spyderlib\plugins\editor.py:108 |
3618 | +msgid "Highlight occurences after" |
3619 | +msgstr "Surligner les occurences après" |
3620 | |
3621 | -#: spyderlib\plugins\editor.py:120 spyderlib\plugins\history.py:45 |
3622 | +#: spyderlib\plugins\editor.py:121 spyderlib\plugins\history.py:44 |
3623 | #: spyderlib\plugins\inspector.py:97 |
3624 | msgid "Syntax color scheme: " |
3625 | msgstr "Thème de coloration syntaxique : " |
3626 | |
3627 | -#: spyderlib\plugins\editor.py:132 spyderlib\plugins\runconfig.py:225 |
3628 | -#: spyderlib\plugins\runconfig.py:273 spyderlib\widgets\explorer.py:215 |
3629 | -#: spyderlib\widgets\externalshell\baseshell.py:131 |
3630 | +#: spyderlib\plugins\editor.py:133 spyderlib\plugins\runconfig.py:258 |
3631 | +#: spyderlib\plugins\runconfig.py:316 spyderlib\spyder.py:1497 |
3632 | +#: spyderlib\widgets\explorer.py:234 |
3633 | +#: spyderlib\widgets\externalshell\baseshell.py:136 |
3634 | msgid "Run" |
3635 | msgstr "Exécuter" |
3636 | |
3637 | -#: spyderlib\plugins\editor.py:133 |
3638 | +#: spyderlib\plugins\editor.py:134 |
3639 | msgid "Save all files before running script" |
3640 | msgstr "Enregistrer tous les fichiers avant l'exécution d'un script" |
3641 | |
3642 | -#: spyderlib\plugins\editor.py:136 spyderlib\plugins\externalconsole.py:270 |
3643 | +#: spyderlib\plugins\editor.py:137 spyderlib\plugins\externalconsole.py:411 |
3644 | msgid "Introspection" |
3645 | msgstr "Introspection" |
3646 | |
3647 | -#: spyderlib\plugins\editor.py:139 spyderlib\plugins\externalconsole.py:87 |
3648 | +#: spyderlib\plugins\editor.py:142 spyderlib\plugins\externalconsole.py:115 |
3649 | msgid "Case sensitive code completion" |
3650 | msgstr "Complétion de code sensible à la casse" |
3651 | |
3652 | -#: spyderlib\plugins\editor.py:141 spyderlib\plugins\externalconsole.py:89 |
3653 | +#: spyderlib\plugins\editor.py:144 spyderlib\plugins\externalconsole.py:117 |
3654 | msgid "Show single completion" |
3655 | msgstr "Afficher les listes de complétion avec un choix unique" |
3656 | |
3657 | -#: spyderlib\plugins\editor.py:146 |
3658 | +#: spyderlib\plugins\editor.py:149 |
3659 | msgid "Link to object definition" |
3660 | msgstr "Lien vers la définition d'un objet" |
3661 | |
3662 | -#: spyderlib\plugins\editor.py:148 |
3663 | +#: spyderlib\plugins\editor.py:151 |
3664 | msgid "" |
3665 | "If this option is enabled, clicking on an object\n" |
3666 | "name (left-click + Ctrl key) will go this object\n" |
3667 | @@ -374,11 +435,11 @@ |
3668 | "d'un objet (click gauche + touche Ctrl) ira à la\n" |
3669 | "définition de cet objet (si celle-ci est trouvée)." |
3670 | |
3671 | -#: spyderlib\plugins\editor.py:152 spyderlib\plugins\externalconsole.py:95 |
3672 | +#: spyderlib\plugins\editor.py:155 spyderlib\plugins\externalconsole.py:123 |
3673 | msgid "Automatic notification to object inspector" |
3674 | msgstr "Notification automatique à l'inspecteur d'objets" |
3675 | |
3676 | -#: spyderlib\plugins\editor.py:154 |
3677 | +#: spyderlib\plugins\editor.py:157 |
3678 | msgid "" |
3679 | "If this option is enabled, object inspector\n" |
3680 | "will automatically show informations on functions\n" |
3681 | @@ -391,7 +452,7 @@ |
3682 | "(le mécanisme est déclenché par la saisie d'une\n" |
3683 | "parenthèse gauche après un nom valide de fonction)" |
3684 | |
3685 | -#: spyderlib\plugins\editor.py:158 |
3686 | +#: spyderlib\plugins\editor.py:162 |
3687 | msgid "" |
3688 | "<b>Warning:</b><br>The Python module <i>rope</i> is not installed on this " |
3689 | "computer: calltips, code completion and go-to-definition features won't be " |
3690 | @@ -401,19 +462,44 @@ |
3691 | "sur cet ordinateur : les fonctionnalités telles que la complétion de code ou " |
3692 | "le lien vers la définition d'un objet ne sont donc pas accessibles." |
3693 | |
3694 | -#: spyderlib\plugins\editor.py:166 |
3695 | +#: spyderlib\plugins\editor.py:170 |
3696 | msgid "Automatic parentheses, braces and brackets insertion" |
3697 | -msgstr "Fermeture automatique des parenthèses, crochets et accolades" |
3698 | +msgstr "" |
3699 | +"Insertion automatique des parenthèses, crochets et accolades" |
3700 | |
3701 | -#: spyderlib\plugins\editor.py:169 |
3702 | +#: spyderlib\plugins\editor.py:173 |
3703 | msgid "Automatic indentation after 'else', 'elif', etc." |
3704 | msgstr "Indentation automatique après 'else', 'elif', etc." |
3705 | |
3706 | -#: spyderlib\plugins\editor.py:171 |
3707 | +#: spyderlib\plugins\editor.py:175 |
3708 | +msgid "Indentation characters: " |
3709 | +msgstr "Caractères d'indentation : " |
3710 | + |
3711 | +#: spyderlib\plugins\editor.py:176 |
3712 | +msgid "4 spaces" |
3713 | +msgstr "4 espaces" |
3714 | + |
3715 | +#: spyderlib\plugins\editor.py:177 |
3716 | +msgid "2 spaces" |
3717 | +msgstr "2 espaces" |
3718 | + |
3719 | +#: spyderlib\plugins\editor.py:178 |
3720 | +msgid "tab" |
3721 | +msgstr "tabulation" |
3722 | + |
3723 | +#: spyderlib\plugins\editor.py:179 |
3724 | +msgid "Tab stop width:" |
3725 | +msgstr "Largeur des tabulations :" |
3726 | + |
3727 | +#: spyderlib\plugins\editor.py:179 |
3728 | +msgid "pixels" |
3729 | +msgstr "pixels" |
3730 | + |
3731 | +#: spyderlib\plugins\editor.py:181 |
3732 | msgid "Tab always indent" |
3733 | msgstr "Toujours indenter avec la touche Tab" |
3734 | |
3735 | -#: spyderlib\plugins\editor.py:173 |
3736 | +#: spyderlib\plugins\editor.py:183 |
3737 | msgid "" |
3738 | "If enabled, pressing Tab will always indent,\n" |
3739 | "even when the cursor is not at the beginning\n" |
3740 | @@ -427,44 +513,81 @@ |
3741 | "option est activée, la complétion de code reste \n" |
3742 | "accessible via le raccourci Ctrl+Espace)" |
3743 | |
3744 | -#: spyderlib\plugins\editor.py:178 |
3745 | +#: spyderlib\plugins\editor.py:188 |
3746 | msgid "Intelligent backspace" |
3747 | msgstr "Retour arrière (\"backspace\") intelligent" |
3748 | |
3749 | -#: spyderlib\plugins\editor.py:181 |
3750 | +#: spyderlib\plugins\editor.py:190 |
3751 | +msgid "Automatically remove trailing spaces when saving files" |
3752 | +msgstr "" |
3753 | +"Supprimer automatiquement les espaces en fin de ligne lors de " |
3754 | +"l'enregistrement" |
3755 | + |
3756 | +#: spyderlib\plugins\editor.py:194 |
3757 | msgid "Analysis" |
3758 | msgstr "Analyse" |
3759 | |
3760 | -#: spyderlib\plugins\editor.py:182 |
3761 | -msgid "Code analysis (pyflakes)" |
3762 | -msgstr "Analyse de code (pyflakes)" |
3763 | - |
3764 | -#: spyderlib\plugins\editor.py:184 |
3765 | +#: spyderlib\plugins\editor.py:196 |
3766 | +msgid "" |
3767 | +"<u>Note</u>: add <b>analysis:ignore</b> in a comment to ignore code/style " |
3768 | +"analysis warnings. For more informations on style guide for Python code, " |
3769 | +"please refer to the %s page." |
3770 | +msgstr "" |
3771 | +"<u>Note</u>: ajouter <b>analysis:ignore</b> dans un commentaire pour ignorer " |
3772 | +"les résultats de l'analyse de code ou de style. Pour plus d'informations sur " |
3773 | +"les recommandations officielles de style d'écriture avec le langage Python, " |
3774 | +"veuillez visiter la page de la %s." |
3775 | + |
3776 | +#: spyderlib\plugins\editor.py:205 |
3777 | +#: spyderlib\widgets\sourcecode\codeeditor.py:1526 |
3778 | +msgid "Code analysis" |
3779 | +msgstr "Analyse de code" |
3780 | + |
3781 | +#: spyderlib\plugins\editor.py:207 |
3782 | msgid "" |
3783 | "If enabled, Python source code will be analyzed\n" |
3784 | "using pyflakes, lines containing errors or \n" |
3785 | "warnings will be highlighted" |
3786 | msgstr "" |
3787 | "Si cette option est activée, le code source Python sera analysé\n" |
3788 | -"avec pyflakes et les lignes contenant des erreurs seront indiquées" |
3789 | - |
3790 | -#: spyderlib\plugins\editor.py:188 |
3791 | +"avec des outils l'outil d'introspection de code pyflakes\n" |
3792 | +"et les lignes contenant des erreurs seront indiquées" |
3793 | + |
3794 | +#: spyderlib\plugins\editor.py:212 |
3795 | +msgid "Code analysis requires pyflakes %s+" |
3796 | +msgstr "L'analyse de code requiert pyflakes %s+" |
3797 | + |
3798 | +#: spyderlib\plugins\editor.py:214 |
3799 | +msgid "Style analysis" |
3800 | +msgstr "Analyse de style" |
3801 | + |
3802 | +#: spyderlib\plugins\editor.py:216 |
3803 | +msgid "" |
3804 | +"If enabled, Python source code will be analyzed\n" |
3805 | +"using pep8, lines that are not following PEP8\n" |
3806 | +"style guide will be highlighted" |
3807 | +msgstr "" |
3808 | +"Si cette option est activée, le style du code source Python sera analysé\n" |
3809 | +"avec l'outil d'introspection de code pep8 et les lignes ne suivant pas\n" |
3810 | +"les recommandations officielles seront indiquées" |
3811 | + |
3812 | +#: spyderlib\plugins\editor.py:223 |
3813 | msgid "Tasks (TODO, FIXME, XXX, HINT, TIP)" |
3814 | msgstr "Tâches (TODO, FIXME, XXX, HINT, TIP)" |
3815 | |
3816 | -#: spyderlib\plugins\editor.py:194 |
3817 | +#: spyderlib\plugins\editor.py:226 |
3818 | msgid "Perform analysis when saving file and every" |
3819 | msgstr "Analyser lors de l'enregistrement et toutes les" |
3820 | |
3821 | -#: spyderlib\plugins\editor.py:198 |
3822 | +#: spyderlib\plugins\editor.py:230 |
3823 | msgid "Perform analysis only when saving file" |
3824 | msgstr "Analyser uniquement lors de l'enregistrement" |
3825 | |
3826 | -#: spyderlib\plugins\editor.py:237 |
3827 | +#: spyderlib\plugins\editor.py:274 |
3828 | msgid "End-of-line characters" |
3829 | msgstr "Caractères de fin de ligne" |
3830 | |
3831 | -#: spyderlib\plugins\editor.py:238 |
3832 | +#: spyderlib\plugins\editor.py:275 |
3833 | msgid "" |
3834 | "When opening a text file containing mixed end-of-line characters (this may " |
3835 | "raise syntax errors in Python interpreter on Windows platforms), Spyder may " |
3836 | @@ -475,190 +598,137 @@ |
3837 | "l'interpréteur Python sous Windows), Spyder peut réparer le fichier " |
3838 | "automatiquement." |
3839 | |
3840 | -#: spyderlib\plugins\editor.py:244 |
3841 | +#: spyderlib\plugins\editor.py:281 |
3842 | msgid "Fix automatically and show warning message box" |
3843 | msgstr "Réparer automatiquement et afficher un message d'avertissement" |
3844 | |
3845 | -#: spyderlib\plugins\editor.py:255 spyderlib\plugins\externalconsole.py:268 |
3846 | -#: spyderlib\plugins\variableexplorer.py:43 |
3847 | +#: spyderlib\plugins\editor.py:292 spyderlib\plugins\externalconsole.py:409 |
3848 | +#: spyderlib\plugins\variableexplorer.py:40 |
3849 | msgid "Display" |
3850 | msgstr "Affichage" |
3851 | |
3852 | -#: spyderlib\plugins\editor.py:257 |
3853 | +#: spyderlib\plugins\editor.py:294 |
3854 | msgid "Code Introspection/Analysis" |
3855 | msgstr "Introspection et analyse de code" |
3856 | |
3857 | -#: spyderlib\plugins\editor.py:260 spyderlib\plugins\externalconsole.py:272 |
3858 | +#: spyderlib\plugins\editor.py:297 spyderlib\plugins\externalconsole.py:414 |
3859 | msgid "Advanced settings" |
3860 | msgstr "Options avancées" |
3861 | |
3862 | -#: spyderlib\plugins\editor.py:303 |
3863 | -msgid "Python files" |
3864 | -msgstr "Fichier Python" |
3865 | - |
3866 | -#: spyderlib\plugins\editor.py:304 |
3867 | -msgid "Cython/Pyrex files" |
3868 | -msgstr "Fichiers Cython/Pyrex" |
3869 | - |
3870 | -#: spyderlib\plugins\editor.py:305 |
3871 | -msgid "C files" |
3872 | -msgstr "Fichiers C" |
3873 | - |
3874 | -#: spyderlib\plugins\editor.py:306 |
3875 | -msgid "C++ files" |
3876 | -msgstr "Fichiers C++" |
3877 | - |
3878 | -#: spyderlib\plugins\editor.py:308 |
3879 | -msgid "Fortran files" |
3880 | -msgstr "Fichiers Fortran" |
3881 | - |
3882 | -#: spyderlib\plugins\editor.py:310 |
3883 | -msgid "Patch and diff files" |
3884 | -msgstr "Fichiers patch et diff" |
3885 | - |
3886 | -#: spyderlib\plugins\editor.py:312 |
3887 | -msgid "Batch files" |
3888 | -msgstr "Fichiers Batch" |
3889 | - |
3890 | -#: spyderlib\plugins\editor.py:314 spyderlib\utils\iofuncs.py:328 |
3891 | -msgid "Text files" |
3892 | -msgstr "Fichiers texte" |
3893 | - |
3894 | -#: spyderlib\plugins\editor.py:315 |
3895 | -msgid "reStructured Text files" |
3896 | -msgstr "Fichiers reST" |
3897 | - |
3898 | -#: spyderlib\plugins\editor.py:317 |
3899 | -msgid "gettext files" |
3900 | -msgstr "Fichiers gettext" |
3901 | - |
3902 | -#: spyderlib\plugins\editor.py:318 |
3903 | -msgid "Web page files" |
3904 | -msgstr "Fichiers web" |
3905 | - |
3906 | -#: spyderlib\plugins\editor.py:320 |
3907 | -msgid "Configuration files" |
3908 | -msgstr "Configurations" |
3909 | - |
3910 | -#: spyderlib\plugins\editor.py:323 spyderlib\widgets\explorer.py:499 |
3911 | -#: spyderlib\widgets\projectexplorer.py:1127 |
3912 | -msgid "All files" |
3913 | -msgstr "Tous les fichiers" |
3914 | - |
3915 | -#: spyderlib\plugins\editor.py:528 spyderlib\widgets\editortools.py:529 |
3916 | +#: spyderlib\plugins\editor.py:540 spyderlib\widgets\editortools.py:483 |
3917 | msgid "Show/hide outline explorer" |
3918 | msgstr "Afficher/masquer l'explorateur de structure" |
3919 | |
3920 | -#: spyderlib\plugins\editor.py:535 |
3921 | +#: spyderlib\plugins\editor.py:546 |
3922 | msgid "Show/hide project explorer" |
3923 | msgstr "Afficher/masquer l'explorateur de projets" |
3924 | |
3925 | -#: spyderlib\plugins\editor.py:543 |
3926 | +#: spyderlib\plugins\editor.py:554 |
3927 | msgid "&New file..." |
3928 | msgstr "&Nouveau fichier..." |
3929 | |
3930 | -#: spyderlib\plugins\editor.py:544 |
3931 | +#: spyderlib\plugins\editor.py:555 |
3932 | msgid "Create a new Python script" |
3933 | msgstr "Créer un nouveau script Python" |
3934 | |
3935 | -#: spyderlib\plugins\editor.py:548 |
3936 | +#: spyderlib\plugins\editor.py:559 |
3937 | msgid "&Open..." |
3938 | msgstr "&Ouvrir..." |
3939 | |
3940 | -#: spyderlib\plugins\editor.py:549 |
3941 | +#: spyderlib\plugins\editor.py:560 |
3942 | msgid "Open text file" |
3943 | msgstr "Ouvrir un fichier texte" |
3944 | |
3945 | -#: spyderlib\plugins\editor.py:551 |
3946 | +#: spyderlib\plugins\editor.py:562 |
3947 | msgid "&Revert" |
3948 | msgstr "&Réinitialiser" |
3949 | |
3950 | -#: spyderlib\plugins\editor.py:552 |
3951 | +#: spyderlib\plugins\editor.py:563 |
3952 | msgid "Revert file from disk" |
3953 | msgstr "Revenir à la version du fichier enregistrée sur le disque" |
3954 | |
3955 | -#: spyderlib\plugins\editor.py:556 |
3956 | +#: spyderlib\plugins\editor.py:567 |
3957 | msgid "&Save" |
3958 | msgstr "&Enregistrer" |
3959 | |
3960 | -#: spyderlib\plugins\editor.py:557 |
3961 | +#: spyderlib\plugins\editor.py:568 |
3962 | msgid "Save current file" |
3963 | msgstr "Enregistrer le fichier en cours d'édition" |
3964 | |
3965 | -#: spyderlib\plugins\editor.py:561 |
3966 | +#: spyderlib\plugins\editor.py:572 |
3967 | msgid "Sav&e all" |
3968 | msgstr "Enregistrer &tout" |
3969 | |
3970 | -#: spyderlib\plugins\editor.py:562 |
3971 | +#: spyderlib\plugins\editor.py:573 |
3972 | msgid "Save all opened files" |
3973 | msgstr "Enregistrer tous les fichiers ouverts" |
3974 | |
3975 | -#: spyderlib\plugins\editor.py:566 |
3976 | +#: spyderlib\plugins\editor.py:577 |
3977 | msgid "Save &as..." |
3978 | msgstr "Enregistrer &sous..." |
3979 | |
3980 | -#: spyderlib\plugins\editor.py:567 |
3981 | +#: spyderlib\plugins\editor.py:578 |
3982 | msgid "Save current file as..." |
3983 | msgstr "Enregistrer le fichier en cours d'édition sous un autre nom..." |
3984 | |
3985 | -#: spyderlib\plugins\editor.py:569 spyderlib\plugins\editor.py:570 |
3986 | +#: spyderlib\plugins\editor.py:580 spyderlib\plugins\editor.py:581 |
3987 | msgid "Print preview..." |
3988 | msgstr "Aperçu avant impression..." |
3989 | |
3990 | -#: spyderlib\plugins\editor.py:571 |
3991 | +#: spyderlib\plugins\editor.py:582 |
3992 | msgid "&Print..." |
3993 | msgstr "Im&primer..." |
3994 | |
3995 | -#: spyderlib\plugins\editor.py:572 |
3996 | +#: spyderlib\plugins\editor.py:583 |
3997 | msgid "Print current file..." |
3998 | msgstr "Imprimer le fichier en cours d'édition..." |
3999 | |
4000 | -#: spyderlib\plugins\editor.py:574 |
4001 | +#: spyderlib\plugins\editor.py:587 |
4002 | msgid "&Close" |
4003 | msgstr "&Fermer" |
4004 | |
4005 | -#: spyderlib\plugins\editor.py:575 |
4006 | +#: spyderlib\plugins\editor.py:588 |
4007 | msgid "Close current file" |
4008 | msgstr "Fermer le fichier en cours d'édition" |
4009 | |
4010 | -#: spyderlib\plugins\editor.py:579 |
4011 | +#: spyderlib\plugins\editor.py:592 |
4012 | msgid "C&lose all" |
4013 | msgstr "Fermer t&out" |
4014 | |
4015 | -#: spyderlib\plugins\editor.py:580 |
4016 | +#: spyderlib\plugins\editor.py:593 |
4017 | msgid "Close all opened files" |
4018 | msgstr "Fermer tous les fichiers ouverts" |
4019 | |
4020 | -#: spyderlib\plugins\editor.py:586 |
4021 | +#: spyderlib\plugins\editor.py:599 |
4022 | msgid "Set/Clear breakpoint" |
4023 | msgstr "Ajouter/supprimer un point d'arrêt" |
4024 | |
4025 | -#: spyderlib\plugins\editor.py:593 |
4026 | +#: spyderlib\plugins\editor.py:606 |
4027 | msgid "Set/Edit conditional breakpoint" |
4028 | msgstr "Ajouter/modifier un point d'arrêt conditionnel" |
4029 | |
4030 | -#: spyderlib\plugins\editor.py:601 |
4031 | +#: spyderlib\plugins\editor.py:614 |
4032 | msgid "Clear breakpoints in all files" |
4033 | msgstr "Supprimer les points d'arrêt dans tous les fichiers" |
4034 | |
4035 | -#: spyderlib\plugins\editor.py:603 |
4036 | +#: spyderlib\plugins\editor.py:616 |
4037 | msgid "Breakpoints" |
4038 | msgstr "Points d'arrêt" |
4039 | |
4040 | -#: spyderlib\plugins\editor.py:608 spyderlib\plugins\editor.py:1074 |
4041 | -#: spyderlib\spyder.py:471 |
4042 | +#: spyderlib\plugins\editor.py:621 spyderlib\plugins\editor.py:1081 |
4043 | +#: spyderlib\spyder.py:503 |
4044 | msgid "&Run" |
4045 | msgstr "E&xécution" |
4046 | |
4047 | -#: spyderlib\plugins\editor.py:609 |
4048 | +#: spyderlib\plugins\editor.py:622 |
4049 | msgid "Run active script in a new Python interpreter" |
4050 | msgstr "Exécuter le script actuel dans un nouvel interpréteur Python" |
4051 | |
4052 | -#: spyderlib\plugins\editor.py:613 |
4053 | +#: spyderlib\plugins\editor.py:626 |
4054 | msgid "&Debug" |
4055 | msgstr "&Déboguer" |
4056 | |
4057 | -#: spyderlib\plugins\editor.py:614 |
4058 | +#: spyderlib\plugins\editor.py:627 |
4059 | msgid "" |
4060 | "Debug current script in external console\n" |
4061 | "(external console is executed in a separate process)" |
4062 | @@ -666,27 +736,27 @@ |
4063 | "Déboguer le script en cours d'édition dans la console externe\n" |
4064 | "(la console externe est exécutée dans un processus séparé)" |
4065 | |
4066 | -#: spyderlib\plugins\editor.py:621 |
4067 | +#: spyderlib\plugins\editor.py:634 |
4068 | msgid "&Configure..." |
4069 | msgstr "&Configurer..." |
4070 | |
4071 | -#: spyderlib\plugins\editor.py:622 |
4072 | +#: spyderlib\plugins\editor.py:635 |
4073 | msgid "Edit run configurations" |
4074 | msgstr "Modifier les configurations d'exécution des scripts récents" |
4075 | |
4076 | -#: spyderlib\plugins\editor.py:627 |
4077 | +#: spyderlib\plugins\editor.py:640 |
4078 | msgid "Re-run &last script" |
4079 | msgstr "Exécuter de nouveau le &dernier script" |
4080 | |
4081 | -#: spyderlib\plugins\editor.py:628 |
4082 | +#: spyderlib\plugins\editor.py:641 |
4083 | msgid "Run again last script in external console with the same options" |
4084 | msgstr "Exécuter de nouveau le dernier script avec les mêmes options" |
4085 | |
4086 | -#: spyderlib\plugins\editor.py:635 |
4087 | +#: spyderlib\plugins\editor.py:648 |
4088 | msgid "Run &selection or current block" |
4089 | msgstr "Exécuter la &sélection ou le bloc de lignes" |
4090 | |
4091 | -#: spyderlib\plugins\editor.py:637 |
4092 | +#: spyderlib\plugins\editor.py:650 |
4093 | msgid "" |
4094 | "Run selected text or current block of lines \n" |
4095 | "inside current external console's interpreter" |
4096 | @@ -694,155 +764,153 @@ |
4097 | "Exécuter le texte sélectionné ou le bloc de lignes \n" |
4098 | "dans l'interpréteur de la console externe active" |
4099 | |
4100 | -#: spyderlib\plugins\editor.py:644 |
4101 | +#: spyderlib\plugins\editor.py:657 |
4102 | msgid "Show todo list" |
4103 | msgstr "Afficher la liste des tâches" |
4104 | |
4105 | -#: spyderlib\plugins\editor.py:645 |
4106 | +#: spyderlib\plugins\editor.py:658 |
4107 | msgid "Show TODO/FIXME/XXX/HINT/TIP comments list" |
4108 | msgstr "Afficher la liste des commentaires du type TODO/FIXME/XXX/HINT/TIP" |
4109 | |
4110 | -#: spyderlib\plugins\editor.py:653 |
4111 | +#: spyderlib\plugins\editor.py:666 |
4112 | msgid "Show warning/error list" |
4113 | msgstr "Afficher la liste des avertissements/erreurs" |
4114 | |
4115 | -#: spyderlib\plugins\editor.py:654 |
4116 | +#: spyderlib\plugins\editor.py:667 |
4117 | msgid "Show code analysis warnings/errors" |
4118 | msgstr "" |
4119 | "Afficher la liste des avertissements/erreurs provenant de l'analyse de code" |
4120 | |
4121 | -#: spyderlib\plugins\editor.py:661 |
4122 | +#: spyderlib\plugins\editor.py:674 |
4123 | msgid "Previous warning/error" |
4124 | msgstr "Avertissement suivant" |
4125 | |
4126 | -#: spyderlib\plugins\editor.py:662 |
4127 | +#: spyderlib\plugins\editor.py:675 |
4128 | msgid "Go to previous code analysis warning/error" |
4129 | msgstr "Afficher le message d'avertissement ou d'erreur suivant" |
4130 | |
4131 | -#: spyderlib\plugins\editor.py:665 |
4132 | +#: spyderlib\plugins\editor.py:678 |
4133 | msgid "Next warning/error" |
4134 | msgstr "Avertissement précédent" |
4135 | |
4136 | -#: spyderlib\plugins\editor.py:666 |
4137 | +#: spyderlib\plugins\editor.py:679 |
4138 | msgid "Go to next code analysis warning/error" |
4139 | msgstr "Afficher le message d'avertissement ou d'erreur précédent" |
4140 | |
4141 | -#: spyderlib\plugins\editor.py:670 |
4142 | +#: spyderlib\plugins\editor.py:683 |
4143 | msgid "Last edit location" |
4144 | msgstr "Dernière position d'édition" |
4145 | |
4146 | -#: spyderlib\plugins\editor.py:671 |
4147 | +#: spyderlib\plugins\editor.py:684 |
4148 | msgid "Go to last edit location" |
4149 | msgstr "Aller à la dernière position d'édition" |
4150 | |
4151 | -#: spyderlib\plugins\editor.py:678 |
4152 | +#: spyderlib\plugins\editor.py:691 |
4153 | msgid "Previous cursor position" |
4154 | msgstr "Position suivante du curseur" |
4155 | |
4156 | -#: spyderlib\plugins\editor.py:679 |
4157 | +#: spyderlib\plugins\editor.py:692 |
4158 | msgid "Go to previous cursor position" |
4159 | msgstr "Aller à la position précédente du curseur" |
4160 | |
4161 | -#: spyderlib\plugins\editor.py:686 |
4162 | +#: spyderlib\plugins\editor.py:699 |
4163 | msgid "Next cursor position" |
4164 | msgstr "Position suivante du curseur" |
4165 | |
4166 | -#: spyderlib\plugins\editor.py:687 |
4167 | +#: spyderlib\plugins\editor.py:700 |
4168 | msgid "Go to next cursor position" |
4169 | msgstr "Aller à la position suivante du curseur" |
4170 | |
4171 | -#: spyderlib\plugins\editor.py:694 |
4172 | -msgid "Co&mment" |
4173 | -msgstr "Co&mmenter" |
4174 | - |
4175 | -#: spyderlib\plugins\editor.py:695 |
4176 | +#: spyderlib\plugins\editor.py:707 |
4177 | +#: spyderlib\widgets\sourcecode\codeeditor.py:1967 |
4178 | +msgid "Comment" |
4179 | +msgstr "Commenter" |
4180 | + |
4181 | +#: spyderlib\plugins\editor.py:707 |
4182 | +#: spyderlib\widgets\sourcecode\codeeditor.py:1967 |
4183 | +msgid "Uncomment" |
4184 | +msgstr "Décommenter" |
4185 | + |
4186 | +#: spyderlib\plugins\editor.py:708 |
4187 | msgid "Comment current line or selection" |
4188 | msgstr "Commenter la sélection ou la ligne en cours d'édition" |
4189 | |
4190 | -#: spyderlib\plugins\editor.py:700 |
4191 | -msgid "&Uncomment" |
4192 | -msgstr "&Décommenter" |
4193 | - |
4194 | -#: spyderlib\plugins\editor.py:701 |
4195 | -msgid "Uncomment current line or selection" |
4196 | -msgstr "Décommenter la sélection ou la ligne en cours d'édition" |
4197 | - |
4198 | -#: spyderlib\plugins\editor.py:705 |
4199 | +#: spyderlib\plugins\editor.py:712 |
4200 | msgid "Add &block comment" |
4201 | msgstr "Ajouter un &bloc de commentaires" |
4202 | |
4203 | -#: spyderlib\plugins\editor.py:706 |
4204 | +#: spyderlib\plugins\editor.py:713 |
4205 | msgid "Add block comment around current line or selection" |
4206 | msgstr "" |
4207 | "Ajouter un bloc de commentaires autour de la sélection ou de la ligne en " |
4208 | "cours d'édition" |
4209 | |
4210 | -#: spyderlib\plugins\editor.py:712 |
4211 | +#: spyderlib\plugins\editor.py:719 |
4212 | msgid "R&emove block comment" |
4213 | msgstr "&Supprimer un bloc de commentaires" |
4214 | |
4215 | -#: spyderlib\plugins\editor.py:713 |
4216 | +#: spyderlib\plugins\editor.py:720 |
4217 | msgid "Remove comment block around current line or selection" |
4218 | msgstr "" |
4219 | "Supprimer le bloc de commentaires autour de la ligne en cours d'édition" |
4220 | |
4221 | -#: spyderlib\plugins\editor.py:724 |
4222 | +#: spyderlib\plugins\editor.py:731 |
4223 | msgid "Indent" |
4224 | msgstr "Indenter" |
4225 | |
4226 | -#: spyderlib\plugins\editor.py:725 |
4227 | +#: spyderlib\plugins\editor.py:732 |
4228 | msgid "Indent current line or selection" |
4229 | msgstr "Indenter la sélection ou la ligne en cours d'édition" |
4230 | |
4231 | -#: spyderlib\plugins\editor.py:728 |
4232 | +#: spyderlib\plugins\editor.py:735 |
4233 | msgid "Unindent" |
4234 | msgstr "Désindenter" |
4235 | |
4236 | -#: spyderlib\plugins\editor.py:729 |
4237 | +#: spyderlib\plugins\editor.py:736 |
4238 | msgid "Unindent current line or selection" |
4239 | msgstr "Désindenter la sélection ou la ligne en cours d'édition" |
4240 | |
4241 | -#: spyderlib\plugins\editor.py:733 |
4242 | +#: spyderlib\plugins\editor.py:740 |
4243 | msgid "Debug with winpdb" |
4244 | msgstr "Déboguer avec winpdb" |
4245 | |
4246 | -#: spyderlib\plugins\editor.py:740 |
4247 | +#: spyderlib\plugins\editor.py:747 |
4248 | msgid "Carriage return and line feed (Windows)" |
4249 | msgstr "Retour chariot et retour à la ligne (Windows)" |
4250 | |
4251 | -#: spyderlib\plugins\editor.py:743 |
4252 | +#: spyderlib\plugins\editor.py:750 |
4253 | msgid "Line feed (UNIX)" |
4254 | msgstr "Retour à la ligne (UNIX)" |
4255 | |
4256 | -#: spyderlib\plugins\editor.py:746 |
4257 | +#: spyderlib\plugins\editor.py:753 |
4258 | msgid "Carriage return (Mac)" |
4259 | msgstr "Retour chariot (Mac)" |
4260 | |
4261 | -#: spyderlib\plugins\editor.py:752 |
4262 | +#: spyderlib\plugins\editor.py:759 |
4263 | msgid "Convert end-of-line characters" |
4264 | msgstr "Convertir les caractères de fin de ligne" |
4265 | |
4266 | -#: spyderlib\plugins\editor.py:756 |
4267 | +#: spyderlib\plugins\editor.py:763 |
4268 | msgid "Remove trailing spaces" |
4269 | msgstr "Supprimer les espaces en fin de ligne" |
4270 | |
4271 | -#: spyderlib\plugins\editor.py:758 |
4272 | +#: spyderlib\plugins\editor.py:765 |
4273 | msgid "Fix indentation" |
4274 | msgstr "Corriger l'indentation" |
4275 | |
4276 | -#: spyderlib\plugins\editor.py:759 |
4277 | +#: spyderlib\plugins\editor.py:766 |
4278 | msgid "Replace tab characters by space characters" |
4279 | msgstr "Remplacer les caractères de tabulation par des espaces" |
4280 | |
4281 | -#: spyderlib\plugins\editor.py:762 |
4282 | +#: spyderlib\plugins\editor.py:769 |
4283 | msgid "Go to line..." |
4284 | msgstr "Aller à la ligne..." |
4285 | |
4286 | -#: spyderlib\plugins\editor.py:770 |
4287 | +#: spyderlib\plugins\editor.py:777 |
4288 | msgid "Set console working directory" |
4289 | msgstr "Répertoire de travail de la console" |
4290 | |
4291 | -#: spyderlib\plugins\editor.py:772 |
4292 | +#: spyderlib\plugins\editor.py:779 |
4293 | msgid "" |
4294 | "Set current console (and file explorer) working directory to current script " |
4295 | "directory" |
4296 | @@ -850,134 +918,167 @@ |
4297 | "Choisir le répertoire du script comme répertoire de travail de la console " |
4298 | "courante (et de l'explorateur de fichier)" |
4299 | |
4300 | -#: spyderlib\plugins\editor.py:777 |
4301 | +#: spyderlib\plugins\editor.py:784 |
4302 | msgid "Maximum number of recent files..." |
4303 | msgstr "Nombre maximum de fichiers récents..." |
4304 | |
4305 | -#: spyderlib\plugins\editor.py:780 |
4306 | +#: spyderlib\plugins\editor.py:787 |
4307 | msgid "Clear recent files list" |
4308 | msgstr "Effacer la liste des fichiers récents" |
4309 | |
4310 | -#: spyderlib\plugins\editor.py:780 |
4311 | +#: spyderlib\plugins\editor.py:787 |
4312 | msgid "Clear this list" |
4313 | msgstr "Effacer cette liste" |
4314 | |
4315 | -#: spyderlib\plugins\editor.py:782 |
4316 | +#: spyderlib\plugins\editor.py:789 |
4317 | msgid "Open &recent" |
4318 | msgstr "Fichiers &récents" |
4319 | |
4320 | -#: spyderlib\plugins\editor.py:1063 spyderlib\spyder.py:452 |
4321 | +#: spyderlib\plugins\editor.py:1070 spyderlib\spyder.py:484 |
4322 | msgid "File toolbar" |
4323 | msgstr "Barre d'outil fichiers" |
4324 | |
4325 | -#: spyderlib\plugins\editor.py:1064 spyderlib\spyder.py:462 |
4326 | +#: spyderlib\plugins\editor.py:1071 spyderlib\spyder.py:494 |
4327 | msgid "Search toolbar" |
4328 | msgstr "Barre d'outil de recherche" |
4329 | |
4330 | -#: spyderlib\plugins\editor.py:1065 spyderlib\spyder.py:467 |
4331 | +#: spyderlib\plugins\editor.py:1072 spyderlib\spyder.py:499 |
4332 | msgid "Source toolbar" |
4333 | msgstr "Barre d'outils code source" |
4334 | |
4335 | -#: spyderlib\plugins\editor.py:1066 spyderlib\spyder.py:472 |
4336 | +#: spyderlib\plugins\editor.py:1073 spyderlib\spyder.py:504 |
4337 | msgid "Run toolbar" |
4338 | msgstr "Barre d'outil exécution" |
4339 | |
4340 | -#: spyderlib\plugins\editor.py:1067 spyderlib\spyder.py:457 |
4341 | +#: spyderlib\plugins\editor.py:1074 spyderlib\spyder.py:489 |
4342 | msgid "Edit toolbar" |
4343 | msgstr "Barre d'outil édition" |
4344 | |
4345 | -#: spyderlib\plugins\editor.py:1070 spyderlib\spyder.py:449 |
4346 | +#: spyderlib\plugins\editor.py:1077 spyderlib\spyder.py:481 |
4347 | msgid "&File" |
4348 | msgstr "&Fichier" |
4349 | |
4350 | -#: spyderlib\plugins\editor.py:1071 spyderlib\spyder.py:456 |
4351 | +#: spyderlib\plugins\editor.py:1078 spyderlib\spyder.py:488 |
4352 | msgid "&Edit" |
4353 | msgstr "&Édition" |
4354 | |
4355 | -#: spyderlib\plugins\editor.py:1072 spyderlib\spyder.py:461 |
4356 | +#: spyderlib\plugins\editor.py:1079 spyderlib\spyder.py:493 |
4357 | msgid "&Search" |
4358 | msgstr "&Recherche" |
4359 | |
4360 | -#: spyderlib\plugins\editor.py:1073 spyderlib\spyder.py:466 |
4361 | +#: spyderlib\plugins\editor.py:1080 spyderlib\spyder.py:498 |
4362 | msgid "Sour&ce" |
4363 | msgstr "Sour&ce" |
4364 | |
4365 | -#: spyderlib\plugins\editor.py:1075 spyderlib\spyder.py:476 |
4366 | +#: spyderlib\plugins\editor.py:1082 spyderlib\spyder.py:511 |
4367 | msgid "&Tools" |
4368 | msgstr "Ou&tils" |
4369 | |
4370 | -#: spyderlib\plugins\editor.py:1076 |
4371 | +#: spyderlib\plugins\editor.py:1083 |
4372 | msgid "?" |
4373 | msgstr "?" |
4374 | |
4375 | -#: spyderlib\plugins\editor.py:1298 |
4376 | +#: spyderlib\plugins\editor.py:1294 |
4377 | msgid "Spyder Editor" |
4378 | msgstr "Éditeur de Spyder" |
4379 | |
4380 | -#: spyderlib\plugins\editor.py:1299 |
4381 | +#: spyderlib\plugins\editor.py:1295 |
4382 | msgid "This temporary script file is located here:" |
4383 | msgstr "Ce script temporaire est sauvegardé ici :" |
4384 | |
4385 | -#: spyderlib\plugins\editor.py:1349 |
4386 | +#: spyderlib\plugins\editor.py:1352 |
4387 | msgid "untitled" |
4388 | msgstr "sanstitre" |
4389 | |
4390 | -#: spyderlib\plugins\editor.py:1413 |
4391 | +#: spyderlib\plugins\editor.py:1422 |
4392 | msgid "Maximum number of recent files" |
4393 | msgstr "Nombre maximum de fichiers récents" |
4394 | |
4395 | -#: spyderlib\plugins\editor.py:1444 spyderlib\plugins\workingdirectory.py:71 |
4396 | +#: spyderlib\plugins\editor.py:1453 spyderlib\plugins\workingdirectory.py:69 |
4397 | msgid "Open file" |
4398 | msgstr "Ouvrir un fichier" |
4399 | |
4400 | -#: spyderlib\plugins\editor.py:1513 |
4401 | +#: spyderlib\plugins\editor.py:1531 |
4402 | msgid "Printing..." |
4403 | msgstr "Impression en cours..." |
4404 | |
4405 | -#: spyderlib\plugins\editor.py:1529 |
4406 | -msgid "Print" |
4407 | -msgstr "Impression" |
4408 | - |
4409 | -#: spyderlib\plugins\editor.py:1530 |
4410 | -msgid "<b>Unable to print document '%s'</b>" |
4411 | -msgstr "<b>Impossible d'imprimer le document '%s'</b>" |
4412 | - |
4413 | -#: spyderlib\plugins\explorer.py:55 |
4414 | +#: spyderlib\plugins\explorer.py:47 |
4415 | msgid "File explorer" |
4416 | msgstr "Explorateur de fichiers" |
4417 | |
4418 | -#: spyderlib\plugins\explorer.py:68 spyderlib\plugins\inspector.py:218 |
4419 | -#: spyderlib\plugins\projectexplorer.py:66 |
4420 | +#: spyderlib\plugins\explorer.py:60 spyderlib\plugins\inspector.py:221 |
4421 | +#: spyderlib\plugins\projectexplorer.py:57 |
4422 | msgid "Set font style" |
4423 | msgstr "Changer la police d'écriture" |
4424 | |
4425 | -#: spyderlib\plugins\externalconsole.py:43 |
4426 | +#: spyderlib\plugins\externalconsole.py:42 |
4427 | +#: spyderlib\plugins\externalconsole.py:865 spyderlib\plugins\inspector.py:247 |
4428 | +#: spyderlib\widgets\externalshell\baseshell.py:104 |
4429 | +msgid "Console" |
4430 | +msgstr "Console" |
4431 | + |
4432 | +#: spyderlib\plugins\externalconsole.py:49 |
4433 | msgid "One tab per script" |
4434 | msgstr "Un onglet par script" |
4435 | |
4436 | -#: spyderlib\plugins\externalconsole.py:44 |
4437 | -#: spyderlib\widgets\externalshell\baseshell.py:164 |
4438 | +#: spyderlib\plugins\externalconsole.py:50 |
4439 | +#: spyderlib\widgets\externalshell\baseshell.py:169 |
4440 | msgid "Show elapsed time" |
4441 | msgstr "Afficher le temps écoulé" |
4442 | |
4443 | -#: spyderlib\plugins\externalconsole.py:45 spyderlib\widgets\explorer.py:532 |
4444 | +#: spyderlib\plugins\externalconsole.py:51 spyderlib\widgets\explorer.py:952 |
4445 | msgid "Show icons and text" |
4446 | msgstr "Afficher icônes et textes" |
4447 | |
4448 | -#: spyderlib\plugins\externalconsole.py:57 |
4449 | +#: spyderlib\plugins\externalconsole.py:63 |
4450 | msgid " lines" |
4451 | msgstr " lignes" |
4452 | |
4453 | -#: spyderlib\plugins\externalconsole.py:57 |
4454 | +#: spyderlib\plugins\externalconsole.py:63 |
4455 | msgid "Buffer: " |
4456 | msgstr "Tampon : " |
4457 | |
4458 | #: spyderlib\plugins\externalconsole.py:68 |
4459 | -#: spyderlib\widgets\arrayeditor.py:385 |
4460 | +msgid "Merge process standard output/error channels" |
4461 | +msgstr "Fusionner les canaux de sortie et d'erreur du processus" |
4462 | + |
4463 | +#: spyderlib\plugins\externalconsole.py:70 |
4464 | +msgid "" |
4465 | +"Merging the output channels of the process means that\n" |
4466 | +"the standard error won't be written in red anymore,\n" |
4467 | +"but this has the effect of speeding up display.\n" |
4468 | +"\n" |
4469 | +"This option has no effect on IPython." |
4470 | +msgstr "" |
4471 | +"Fusionner les canaux de sortie et d'erreur du processus\n" |
4472 | +"signifie que les erreurs ne seront plus affichées en rouge,\n" |
4473 | +"mais cela entraînera également une amélioration des performances\n" |
4474 | +"d'affichage et une meilleure réactivité de la console.\n" |
4475 | +"\n" |
4476 | +"Cette option n'a aucun effet sur les interpréteurs IPython." |
4477 | + |
4478 | +#: spyderlib\plugins\externalconsole.py:75 |
4479 | +msgid "Colorize standard error channel using ANSI escape codes" |
4480 | +msgstr "Coloriser le canal d'erreur standard (codes d'échappement ANSI)" |
4481 | + |
4482 | +#: spyderlib\plugins\externalconsole.py:77 |
4483 | +msgid "" |
4484 | +"This method is the only way to have colorized standard\n" |
4485 | +"error channel when the output channels have been merged.\n" |
4486 | +"\n" |
4487 | +"This option has no effect on IPython." |
4488 | +msgstr "" |
4489 | +"Cette méthode est le seul moyen de coloriser le canal\n" |
4490 | +"d'erreur standard lorsque les canaux de sorties ont été fusionnés.\n" |
4491 | +"\n" |
4492 | +"Cette option n'a aucun effet sur les interpréteurs IPython." |
4493 | + |
4494 | +#: spyderlib\plugins\externalconsole.py:95 |
4495 | +#: spyderlib\widgets\arrayeditor.py:393 |
4496 | msgid "Background color" |
4497 | msgstr "Couleur de fond" |
4498 | |
4499 | -#: spyderlib\plugins\externalconsole.py:69 |
4500 | +#: spyderlib\plugins\externalconsole.py:96 |
4501 | msgid "" |
4502 | "This option will be applied the next time a Python console or a terminal is " |
4503 | "opened." |
4504 | @@ -985,15 +1086,15 @@ |
4505 | "Cette option sera prise en compte lors de la prochaine ouverture de console " |
4506 | "(interpréteur Python ou terminal)." |
4507 | |
4508 | -#: spyderlib\plugins\externalconsole.py:72 |
4509 | +#: spyderlib\plugins\externalconsole.py:99 |
4510 | msgid "Light background (white color)" |
4511 | msgstr "Fond blanc" |
4512 | |
4513 | -#: spyderlib\plugins\externalconsole.py:74 |
4514 | +#: spyderlib\plugins\externalconsole.py:101 |
4515 | msgid "Set the appropriate IPython color option" |
4516 | msgstr "Utiliser le réglage de couleur IPython approprié" |
4517 | |
4518 | -#: spyderlib\plugins\externalconsole.py:97 |
4519 | +#: spyderlib\plugins\externalconsole.py:125 |
4520 | msgid "" |
4521 | "If this option is enabled, object inspector\n" |
4522 | "will automatically show informations on functions\n" |
4523 | @@ -1005,23 +1106,24 @@ |
4524 | "déclenché par la saisie d'une parenthèse gauche après un nom valide de " |
4525 | "fonction)" |
4526 | |
4527 | -#: spyderlib\plugins\externalconsole.py:112 |
4528 | +#: spyderlib\plugins\externalconsole.py:140 |
4529 | msgid "User Module Deleter (UMD)" |
4530 | msgstr "User Module Deleter (UMD)" |
4531 | |
4532 | -#: spyderlib\plugins\externalconsole.py:113 |
4533 | +#: spyderlib\plugins\externalconsole.py:141 |
4534 | msgid "" |
4535 | -"UMD forces Python to reload modules imported when executing a script in the " |
4536 | -"external console with the 'runfile' function" |
4537 | +"UMD forces Python to reload modules which were imported when executing a \n" |
4538 | +"script in the external console with the 'runfile' function." |
4539 | msgstr "" |
4540 | -"L'UMD force Python à recharger les modules importés lors de l'exécution d'un " |
4541 | -"script dans la console interne avec la fonction 'runfile'" |
4542 | +"L'UMD force Python à recharger les modules importés lors de l'exécution " |
4543 | +"d'un\n" |
4544 | +"script dans la console interne avec la fonction 'runfile'." |
4545 | |
4546 | -#: spyderlib\plugins\externalconsole.py:117 |
4547 | +#: spyderlib\plugins\externalconsole.py:144 |
4548 | msgid "Enable UMD" |
4549 | msgstr "Activer l'UMD" |
4550 | |
4551 | -#: spyderlib\plugins\externalconsole.py:118 |
4552 | +#: spyderlib\plugins\externalconsole.py:145 |
4553 | msgid "" |
4554 | "This option will enable the User Module Deleter (UMD) in Python/IPython " |
4555 | "interpreters. UMD forces Python to reload deeply modules during import when " |
4556 | @@ -1046,12 +1148,12 @@ |
4557 | "l'attribut <b>Qt.WA_DeleteOnClose</b> sur votre objet fenêtre principale " |
4558 | "grâce à la méthode <b>setAttribute</b>)" |
4559 | |
4560 | -#: spyderlib\plugins\externalconsole.py:134 |
4561 | +#: spyderlib\plugins\externalconsole.py:161 |
4562 | msgid "Show reloaded modules list" |
4563 | msgstr "Afficher les modules rechargés" |
4564 | |
4565 | -#: spyderlib\plugins\externalconsole.py:135 |
4566 | -#: spyderlib\plugins\externalconsole.py:888 |
4567 | +#: spyderlib\plugins\externalconsole.py:162 |
4568 | +#: spyderlib\plugins\externalconsole.py:1149 |
4569 | msgid "" |
4570 | "Please note that these changes will be applied only to new Python/IPython " |
4571 | "interpreters" |
4572 | @@ -1059,28 +1161,70 @@ |
4573 | "Veuillez noter que ces changements ne seront pris en compte que par les " |
4574 | "nouveaux interpréteurs Python/IPython" |
4575 | |
4576 | -#: spyderlib\plugins\externalconsole.py:141 |
4577 | +#: spyderlib\plugins\externalconsole.py:168 |
4578 | msgid "Set UMD excluded (not reloaded) modules" |
4579 | msgstr "Modifier la liste des modules non rechargés par l'UMD" |
4580 | |
4581 | -#: spyderlib\plugins\externalconsole.py:153 |
4582 | -#: spyderlib\plugins\workingdirectory.py:44 |
4583 | +#: spyderlib\plugins\externalconsole.py:180 |
4584 | +msgid "Python executable" |
4585 | +msgstr "Exécutable Python" |
4586 | + |
4587 | +#: spyderlib\plugins\externalconsole.py:181 |
4588 | +msgid "Path to Python interpreter executable binary:" |
4589 | +msgstr "Emplacement de l'exécutable de l'interpréteur Python :" |
4590 | + |
4591 | +#: spyderlib\plugins\externalconsole.py:184 |
4592 | +msgid "Executables" |
4593 | +msgstr "Exécutables" |
4594 | + |
4595 | +#: spyderlib\plugins\externalconsole.py:196 |
4596 | +#: spyderlib\plugins\workingdirectory.py:42 |
4597 | msgid "Startup" |
4598 | msgstr "Démarrage" |
4599 | |
4600 | -#: spyderlib\plugins\externalconsole.py:154 |
4601 | +#: spyderlib\plugins\externalconsole.py:197 |
4602 | msgid "Open a Python interpreter at startup" |
4603 | msgstr "Ouvrir un interpréteur Python au démarrage" |
4604 | |
4605 | -#: spyderlib\plugins\externalconsole.py:156 |
4606 | +#: spyderlib\plugins\externalconsole.py:199 |
4607 | msgid "Open an IPython interpreter at startup" |
4608 | msgstr "Ouvrir un interpréteur IPython au démarrage" |
4609 | |
4610 | -#: spyderlib\plugins\externalconsole.py:166 |
4611 | +#: spyderlib\plugins\externalconsole.py:205 |
4612 | +msgid "" |
4613 | +"This option is not available for IPython\n" |
4614 | +"versions which are not fully supported\n" |
4615 | +"through Spyder's console (i.e. IPython v0.11+)." |
4616 | +msgstr "" |
4617 | +"Cette option est désactivée pour les versions de IPython\n" |
4618 | +"qui ne sont entièrement prises en charge par Spyder\n" |
4619 | +"à travers la console (i.e. IPython v0.11+)." |
4620 | + |
4621 | +#: spyderlib\plugins\externalconsole.py:215 |
4622 | +msgid "PYTHONSTARTUP replacement" |
4623 | +msgstr "Substitution de PYTHONSTARTUP" |
4624 | + |
4625 | +#: spyderlib\plugins\externalconsole.py:216 |
4626 | +msgid "" |
4627 | +"This option will override the PYTHONSTARTUP environment variable which\n" |
4628 | +"defines the script to be executed during the Python interpreter startup." |
4629 | +msgstr "" |
4630 | +"Cette option permet de remplacer le script de démarrage défini par la\n" |
4631 | +"variable d'environnement PYTHONSTARTUP." |
4632 | + |
4633 | +#: spyderlib\plugins\externalconsole.py:221 |
4634 | +msgid "Default PYTHONSTARTUP script" |
4635 | +msgstr "Script PYTHONSTARTUP par défaut" |
4636 | + |
4637 | +#: spyderlib\plugins\externalconsole.py:224 |
4638 | +msgid "Use the following startup script:" |
4639 | +msgstr "Utiliser le script de démarrage suivant :" |
4640 | + |
4641 | +#: spyderlib\plugins\externalconsole.py:242 |
4642 | msgid "Monitor" |
4643 | msgstr "Moniteur" |
4644 | |
4645 | -#: spyderlib\plugins\externalconsole.py:167 |
4646 | +#: spyderlib\plugins\externalconsole.py:243 |
4647 | msgid "" |
4648 | "The monitor provides introspection features to console: code completion, " |
4649 | "calltips and variable explorer. Because it relies on several modules, " |
4650 | @@ -1091,75 +1235,146 @@ |
4651 | "Parce qu'il nécessite l'import de nombreux modules, désactiver le moniteur " |
4652 | "permet d'accélérer le démarrage de la console." |
4653 | |
4654 | -#: spyderlib\plugins\externalconsole.py:174 |
4655 | +#: spyderlib\plugins\externalconsole.py:250 |
4656 | msgid "Enable monitor" |
4657 | msgstr "Activer le moniteur" |
4658 | |
4659 | -#: spyderlib\plugins\externalconsole.py:186 |
4660 | +#: spyderlib\plugins\externalconsole.py:280 |
4661 | +msgid "Qt (PyQt/PySide)" |
4662 | +msgstr "Qt (PyQt/PySide)" |
4663 | + |
4664 | +#: spyderlib\plugins\externalconsole.py:282 |
4665 | +msgid "Qt-Python bindings library selection:" |
4666 | +msgstr "Sélection de la bibliothèque d'interfaçage Qt :" |
4667 | + |
4668 | +#: spyderlib\plugins\externalconsole.py:283 |
4669 | +msgid "Default library" |
4670 | +msgstr "Bibliothèque par défaut" |
4671 | + |
4672 | +#: spyderlib\plugins\externalconsole.py:284 |
4673 | +msgid "This option will act on libraries such as Matplotlib, guidata or ETS" |
4674 | +msgstr "" |
4675 | +"Cette option est prise en charge par les bibliothèques telles que " |
4676 | +"Matplotlib, guidata ou ETS" |
4677 | + |
4678 | +#: spyderlib\plugins\externalconsole.py:286 |
4679 | +msgid "Install Spyder's input hook for Qt" |
4680 | +msgstr "Installer le \"input hook\" de Spyder pour Qt" |
4681 | + |
4682 | +#: spyderlib\plugins\externalconsole.py:288 |
4683 | +msgid "" |
4684 | +"PyQt installs an input hook that allows creating and interacting\n" |
4685 | +"with Qt widgets in an interactive interpreter without blocking it. \n" |
4686 | +"On Windows platforms, it is strongly recommended to replace it by " |
4687 | +"Spyder's. \n" |
4688 | +"Regarding PySide, note that it does not install an input hook, so it is \n" |
4689 | +"required to enable this feature in order to be able to manipulate PySide/" |
4690 | +"Qt \n" |
4691 | +"objects interactively. Note that this feature requires the monitor to be \n" |
4692 | +"enabled and that it has no effect in IPython." |
4693 | +msgstr "" |
4694 | +"PyQt installe un \"input hook\", mécanisme permettant d'interagir\n" |
4695 | +"avec des widgets Qt dans un interpréteur Python sans bloquer ce dernier. \n" |
4696 | +"Sous Windows, il est fortement conseillé de le remplacer par celui de " |
4697 | +"Spyder. \n" |
4698 | +"Concernant PySide, aucun \"input hook\" n'étant implémenté dans la version " |
4699 | +"1.0, \n" |
4700 | +"il est également recommandé d'activer cette option \n" |
4701 | +"(cette fonctionnalité n'a aucun effet si le moniteur est désactivé \n" |
4702 | +"ou dans un interpréteur IPython)." |
4703 | + |
4704 | +#: spyderlib\plugins\externalconsole.py:304 |
4705 | msgid "PyQt" |
4706 | msgstr "PyQt" |
4707 | |
4708 | -#: spyderlib\plugins\externalconsole.py:187 |
4709 | +#: spyderlib\plugins\externalconsole.py:306 |
4710 | +msgid "API selection for QString and QVariant objects:" |
4711 | +msgstr "Sélection de l'API des objets QString et QVariant :" |
4712 | + |
4713 | +#: spyderlib\plugins\externalconsole.py:307 |
4714 | +msgid "API #1" |
4715 | +msgstr "API n°1" |
4716 | + |
4717 | +#: spyderlib\plugins\externalconsole.py:307 |
4718 | +msgid "API #2" |
4719 | +msgstr "API n°2" |
4720 | + |
4721 | +#: spyderlib\plugins\externalconsole.py:307 |
4722 | +msgid "Default API" |
4723 | +msgstr "API par défaut" |
4724 | + |
4725 | +#: spyderlib\plugins\externalconsole.py:308 |
4726 | msgid "" |
4727 | -"PyQt installs an input hook that allows creating and interacting with " |
4728 | -"widgets in an interactive interpreter without blocking it. It is strongly " |
4729 | -"recommended to remove it on Windows platforms (it has no effect in IPython)." |
4730 | +"PyQt API #1 is the default API for Python 2. PyQt API #2 is the default \n" |
4731 | +"API for Python 3 and is compatible with PySide.\n" |
4732 | +"Note that switching to API #2 may require to enable the Matplotlib patch." |
4733 | msgstr "" |
4734 | -"PyQt installe un \"input hook\" qui permet d'interagir avec des widgets dans " |
4735 | -"un interpréteur Python sans bloquer ce dernier. Il est fortement conseillé " |
4736 | -"de le supprimer sous Windows." |
4737 | - |
4738 | -#: spyderlib\plugins\externalconsole.py:193 |
4739 | -msgid "Remove PyQt input hook" |
4740 | -msgstr "Supprimer le \"input hook\" de PyQt" |
4741 | - |
4742 | -#: spyderlib\plugins\externalconsole.py:195 |
4743 | +"L'API n°1 de PyQt est l'API par défaut pour Python 2. L'API n°2 est l'API \n" |
4744 | +"par défaut pour Python 3 : c'est l'API qui est compatible avec PySide.\n" |
4745 | +"La sélection de l'API n°2 peut nécessiter l'activation du patch de " |
4746 | +"Matplotlib." |
4747 | + |
4748 | +#: spyderlib\plugins\externalconsole.py:312 |
4749 | msgid "Ignore API change errors (sip.setapi)" |
4750 | msgstr "Ignorer les erreurs de changement d'API (sip.setapi)" |
4751 | |
4752 | -#: spyderlib\plugins\externalconsole.py:210 |
4753 | -msgid "IPython" |
4754 | -msgstr "IPython" |
4755 | - |
4756 | -#: spyderlib\plugins\externalconsole.py:211 |
4757 | -msgid "" |
4758 | -"IPython interpreter command line options:\n" |
4759 | -"(Qt4 and matplotlib support: -q4thread -pylab)" |
4760 | -msgstr "" |
4761 | -"Options en ligne de commande de IPython :\n" |
4762 | -"(support Qt4 et matplotlib : -q4thread -pylab)" |
4763 | - |
4764 | -#: spyderlib\plugins\externalconsole.py:222 |
4765 | +#: spyderlib\plugins\externalconsole.py:313 |
4766 | +msgid "" |
4767 | +"Enabling this option will ignore errors when changing PyQt API.\n" |
4768 | +"As PyQt does not support dynamic API changes, it is strongly recommended\n" |
4769 | +"to use this feature wisely, e.g. for debugging purpose." |
4770 | +msgstr "" |
4771 | +"L'activation de cette option permet d'ignorer les erreurs liées aux " |
4772 | +"changements\n" |
4773 | +"d'API de PyQt. Vu que PyQt ne prend pas en charge le changement dynamique\n" |
4774 | +" d'API, il est fortement recommandé d'utiliser cette fonctionnalité " |
4775 | +"exceptionnellement,\n" |
4776 | +"par exemple pour du débogage." |
4777 | + |
4778 | +#: spyderlib\plugins\externalconsole.py:332 |
4779 | +msgid "IPython interpreter command line options" |
4780 | +msgstr "IPython : options en ligne de commande" |
4781 | + |
4782 | +#: spyderlib\plugins\externalconsole.py:344 |
4783 | +msgid "" |
4784 | +"<b>Note:</b><br>IPython >=<u>v0.10</u> is not installed on this computer." |
4785 | +msgstr "" |
4786 | +"<b>Note :</b><br>IPython >=<u>v0.10</u> n'est pas installé sur cet " |
4787 | +"ordinateur." |
4788 | + |
4789 | +#: spyderlib\plugins\externalconsole.py:353 |
4790 | msgid "Matplotlib" |
4791 | msgstr "Matplotlib" |
4792 | |
4793 | -#: spyderlib\plugins\externalconsole.py:223 |
4794 | +#: spyderlib\plugins\externalconsole.py:355 |
4795 | +msgid "GUI backend:" |
4796 | +msgstr "Backend graphique :" |
4797 | + |
4798 | +#: spyderlib\plugins\externalconsole.py:357 |
4799 | +msgid "" |
4800 | +"Set the GUI toolkit used by Matplotlib to show figures (default: Qt4Agg)" |
4801 | +msgstr "" |
4802 | +"Spécifie la bibliothèque d'interfaces graphiques à utiliser pour l'affichage " |
4803 | +"des figures Matplotlib (par défaut : Qt4Agg)" |
4804 | + |
4805 | +#: spyderlib\plugins\externalconsole.py:367 |
4806 | +msgid "Patch Matplotlib figures" |
4807 | +msgstr "Patcher les figures Matplotlib" |
4808 | + |
4809 | +#: spyderlib\plugins\externalconsole.py:369 |
4810 | msgid "" |
4811 | "Patching Matplotlib library will add a button to customize figure options " |
4812 | -"(curves/images plot parameters)." |
4813 | +"(Qt4Agg only) and fix some issues." |
4814 | msgstr "" |
4815 | "Appliquer un patch à la bibliothèque Matplotlib permet d'ajouter un bouton " |
4816 | -"pour modifier les options des courbes et images affichées." |
4817 | - |
4818 | -#: spyderlib\plugins\externalconsole.py:227 |
4819 | -msgid "Patch Matplotlib figures" |
4820 | -msgstr "Patcher les figures Matplotlib" |
4821 | - |
4822 | -#: spyderlib\plugins\externalconsole.py:229 |
4823 | -msgid "Matplotlib backend (default: Qt4Agg):" |
4824 | -msgstr "Backend Matplotlib (valeur par défaut: Qt4Agg) :" |
4825 | - |
4826 | -#: spyderlib\plugins\externalconsole.py:232 |
4827 | -msgid "Set the GUI toolkit used by Matplotlib to show figures" |
4828 | -msgstr "" |
4829 | -"Spécifie la bibliothèque d'interfaces graphiques à utiliser pour l'affichage " |
4830 | -"des figures Matplotlib" |
4831 | - |
4832 | -#: spyderlib\plugins\externalconsole.py:248 |
4833 | +"(au backend Qt4Agg) pour modifier les options des courbes et images " |
4834 | +"affichées et de corriger quelques bogues." |
4835 | + |
4836 | +#: spyderlib\plugins\externalconsole.py:391 |
4837 | msgid "Enthought Tool Suite" |
4838 | msgstr "Enthought Tool Suite" |
4839 | |
4840 | -#: spyderlib\plugins\externalconsole.py:249 |
4841 | +#: spyderlib\plugins\externalconsole.py:392 |
4842 | msgid "" |
4843 | "Enthought Tool Suite (ETS) supports PyQt4 (qt4) and wxPython (wx) graphical " |
4844 | "user interfaces." |
4845 | @@ -1167,15 +1382,15 @@ |
4846 | "Le logiciel Enthought Tool Suite (ETS) prend en charge les interfaces " |
4847 | "graphiques PyQt4 (qt4) et wxPython (wx)." |
4848 | |
4849 | -#: spyderlib\plugins\externalconsole.py:253 |
4850 | -msgid "ETS_TOOLKIT (default value: qt4):" |
4851 | -msgstr "ETS_TOOLKIT (valeur par défaut: qt4) :" |
4852 | +#: spyderlib\plugins\externalconsole.py:396 |
4853 | +msgid "ETS_TOOLKIT:" |
4854 | +msgstr "ETS_TOOLKIT:" |
4855 | |
4856 | -#: spyderlib\plugins\externalconsole.py:275 |
4857 | +#: spyderlib\plugins\externalconsole.py:417 |
4858 | msgid "External modules" |
4859 | msgstr "Modules externes" |
4860 | |
4861 | -#: spyderlib\plugins\externalconsole.py:473 |
4862 | +#: spyderlib\plugins\externalconsole.py:644 |
4863 | msgid "" |
4864 | "%s is already running in a separate process.\n" |
4865 | "Do you want to kill the process before starting a new one?" |
4866 | @@ -1183,58 +1398,57 @@ |
4867 | "%s est déjà en cours d'exécution dans un processus séparé.\n" |
4868 | "Souhaitez-vous tuer ce processus avant d'en démarrer un autre ?" |
4869 | |
4870 | -#: spyderlib\plugins\externalconsole.py:597 |
4871 | +#: spyderlib\plugins\externalconsole.py:803 |
4872 | msgid "Command Window" |
4873 | msgstr "Invite de commandes" |
4874 | |
4875 | -#: spyderlib\plugins\externalconsole.py:599 |
4876 | +#: spyderlib\plugins\externalconsole.py:805 |
4877 | msgid "Terminal" |
4878 | msgstr "Terminal" |
4879 | |
4880 | -#: spyderlib\plugins\externalconsole.py:653 spyderlib\plugins\inspector.py:244 |
4881 | -#: spyderlib\widgets\externalshell\baseshell.py:99 |
4882 | -msgid "Console" |
4883 | -msgstr "Console" |
4884 | - |
4885 | -#: spyderlib\plugins\externalconsole.py:669 |
4886 | +#: spyderlib\plugins\externalconsole.py:887 |
4887 | msgid "Open &interpreter" |
4888 | msgstr "Ouvrir un &interpréteur" |
4889 | |
4890 | -#: spyderlib\plugins\externalconsole.py:670 |
4891 | +#: spyderlib\plugins\externalconsole.py:888 |
4892 | msgid "Open a Python interpreter" |
4893 | msgstr "Ouvrir un interpréteur Python" |
4894 | |
4895 | -#: spyderlib\plugins\externalconsole.py:673 |
4896 | +#: spyderlib\plugins\externalconsole.py:891 |
4897 | msgid "Open &command prompt" |
4898 | msgstr "Ouvrir un invite de &commandes" |
4899 | |
4900 | -#: spyderlib\plugins\externalconsole.py:674 |
4901 | +#: spyderlib\plugins\externalconsole.py:892 |
4902 | msgid "Open a Windows command prompt" |
4903 | msgstr "Ouvrir un invite de commandes Windows" |
4904 | |
4905 | -#: spyderlib\plugins\externalconsole.py:676 |
4906 | +#: spyderlib\plugins\externalconsole.py:894 |
4907 | msgid "Open &terminal" |
4908 | msgstr "Ouvrir un &terminal" |
4909 | |
4910 | -#: spyderlib\plugins\externalconsole.py:677 |
4911 | +#: spyderlib\plugins\externalconsole.py:895 |
4912 | msgid "Open a terminal window inside Spyder" |
4913 | msgstr "Ouvrir un terminal de commandes dans Spyder" |
4914 | |
4915 | -#: spyderlib\plugins\externalconsole.py:690 |
4916 | +#: spyderlib\plugins\externalconsole.py:908 |
4917 | +msgid "Start a new IPython kernel" |
4918 | +msgstr "Démarrer un nouveau noyau IPython" |
4919 | + |
4920 | +#: spyderlib\plugins\externalconsole.py:915 |
4921 | msgid "Open IPython interpreter" |
4922 | msgstr "Ouvrir un interpréteur IPython" |
4923 | |
4924 | -#: spyderlib\plugins\externalconsole.py:692 |
4925 | +#: spyderlib\plugins\externalconsole.py:917 |
4926 | msgid "Open an IPython interpreter" |
4927 | msgstr "Ouvrir un interpréteur IPython" |
4928 | |
4929 | -#: spyderlib\plugins\externalconsole.py:870 |
4930 | -#: spyderlib\plugins\externalconsole.py:883 |
4931 | -#: spyderlib\plugins\externalconsole.py:887 |
4932 | +#: spyderlib\plugins\externalconsole.py:1131 |
4933 | +#: spyderlib\plugins\externalconsole.py:1144 |
4934 | +#: spyderlib\plugins\externalconsole.py:1148 |
4935 | msgid "UMD" |
4936 | msgstr "UMD" |
4937 | |
4938 | -#: spyderlib\plugins\externalconsole.py:871 |
4939 | +#: spyderlib\plugins\externalconsole.py:1132 |
4940 | msgid "" |
4941 | "UMD excluded modules:\n" |
4942 | "(example: guidata, guiqwt)" |
4943 | @@ -1242,7 +1456,7 @@ |
4944 | "Modules non rechargés par l'UMD :\n" |
4945 | "(exemple: guidata, guiqwt)" |
4946 | |
4947 | -#: spyderlib\plugins\externalconsole.py:884 |
4948 | +#: spyderlib\plugins\externalconsole.py:1145 |
4949 | msgid "" |
4950 | "The following modules are not installed on your machine:\n" |
4951 | "%s" |
4952 | @@ -1250,54 +1464,58 @@ |
4953 | "Les modules suivants ne sont pas installés sur votre ordinateur :\n" |
4954 | "%s" |
4955 | |
4956 | -#: spyderlib\plugins\findinfiles.py:86 spyderlib\widgets\findinfiles.py:701 |
4957 | +#: spyderlib\plugins\findinfiles.py:89 spyderlib\widgets\findinfiles.py:695 |
4958 | msgid "Find in files" |
4959 | msgstr "Recherche dans des fichiers" |
4960 | |
4961 | -#: spyderlib\plugins\findinfiles.py:110 |
4962 | +#: spyderlib\plugins\findinfiles.py:113 |
4963 | msgid "&Find in files" |
4964 | msgstr "Rechercher dans des &fichiers" |
4965 | |
4966 | -#: spyderlib\plugins\findinfiles.py:113 |
4967 | +#: spyderlib\plugins\findinfiles.py:116 |
4968 | msgid "Search text in multiple files" |
4969 | msgstr "Rechercher une chaîne de caractères dans plusieurs fichiers à la fois" |
4970 | |
4971 | -#: spyderlib\plugins\history.py:32 |
4972 | +#: spyderlib\plugins\history.py:29 |
4973 | msgid "Settings" |
4974 | msgstr "Options" |
4975 | |
4976 | -#: spyderlib\plugins\history.py:34 |
4977 | +#: spyderlib\plugins\history.py:31 |
4978 | msgid " entries" |
4979 | msgstr " lignes" |
4980 | |
4981 | -#: spyderlib\plugins\history.py:34 |
4982 | +#: spyderlib\plugins\history.py:31 |
4983 | msgid "History depth: " |
4984 | msgstr "Taille de l'historique : " |
4985 | |
4986 | -#: spyderlib\plugins\history.py:94 spyderlib\plugins\inspector.py:297 |
4987 | -#: spyderlib\widgets\editor.py:553 spyderlib\widgets\explorer.py:567 |
4988 | -#: spyderlib\widgets\externalshell\baseshell.py:144 |
4989 | -#: spyderlib\widgets\externalshell\namespacebrowser.py:206 |
4990 | +#: spyderlib\plugins\history.py:38 |
4991 | +msgid "Scroll automatically to last entry" |
4992 | +msgstr "Défiler automatiquement jusqu'à la dernière ligne" |
4993 | + |
4994 | +#: spyderlib\plugins\history.py:97 spyderlib\plugins\inspector.py:300 |
4995 | +#: spyderlib\widgets\editor.py:610 spyderlib\widgets\explorer.py:982 |
4996 | +#: spyderlib\widgets\externalshell\baseshell.py:149 |
4997 | +#: spyderlib\widgets\externalshell\namespacebrowser.py:221 |
4998 | msgid "Options" |
4999 | msgstr "Options" |
5000 |
The diff has been truncated for viewing.
Hey Matthew.
Thanks for the patch! I have some notes though: /wiki.ubuntu. com/PackagingGu ide.
- you didn't target the right branch (you targeted the oneiric branch, not precise one)
- debian/changelog target "oneiric" and not "precise" :)
- also, you made an inline patch. We tend to avoid doing that and using a patch system (this one is using quilt). For more information please look at https:/
- finally, this patch should definitively be sent to upstream (eventually debian). Can you please take care of that?
Anyway, I've fixed the 3 first bullet and sponsored to precise. Thanks! Marking the branch as merged.