Skip to content

Dev: Spyder Internals

Gonzalo Peña-Castellanos edited this page Apr 15, 2015 · 4 revisions

This section aims to give an introduction into Spyder internals.

Note: This is a work in progress!

Directory Structure

The following tree represents the current structure of Spyder master repo. The branches here represent only folders, more specifics and explanations will be given below.

📂 spyder-ide/spyder.git
├── app_example
├── doc
├── external-py2
├── external-py3
├── img_src
├── rope_profiling
├── scripts
├── spyderlib ··························· Main library
│    ├── defaults ······················ TODO:
│    ├── images ······················· TODO:
│    ├── locale ························· Translations
│    ├── plugins ······················· TODO:
│    ├── qt ······························· PySide/PyQt wrapper
│    ├── utils ···························· TODO:
│    ├── widgets ······················ TODO:
│    │    ├── externalshell ······· TODO:
│    │    └── sourcecode ········· Code editor widget, Syntax highlighting
│    └── windows ···················· TODO:
└── spyderplugins ·················· TODO:

app_example

TODO:

doc

As the name suggests this is the folder where the documentation of the project resides.

The documentation is written in reStructuredText (.rst) and is parsed using Sphinx.

The documentation is hosted in Python Hosted.

external-py2

Spyder makes use of external python libraries, such as pyflakes, rope, pep8 and a modified version of the conda_api. When Spyder runs from a Python 2 interpreter, the external-py2 folder is added to the PATH.

The modules saved here must be compatible with Python 2.

external-py3

Spyder makes use of external python libraries, such as pyflakes, rope, pep8 and a modified version of the conda_api. When Spyder runs from a Python 3 interpreter, the external-py3 folder is added to the PATH.

The modules saved here must be compatible with Python 3.

Note: Even if the same module works with both Python 2 and Python 3, it must be copied inside both external-py2 and external-py3 folders.

img_src

This folder holds the editable and rendered versions of images and art for the Spyder project.

Included files: Official icons, main logo, and some screenshots.

rope_profiling

TODO:

scripts

TODO:

spyderlib

This is the actual main module of Spyder.

The name spyderlib is due to the existence of another project named "spyder."

locale

The translations of the interface for Spyder are stored in this folder. Currently Spyder has translations available for Spanish (es) and French (fr).

If you would like to have Spyder translated to a new language please drop us a line on the public chat.

plugins

TODO:

qt

Spyder is and will remain compatible with the available Qt bindings, PyQt, and PySide.

This folder contains the modules that detect the available binding and wrap the necessary classes inside a single code base so that instead of using import PySide.QtCore or import PyQt4.QtCore we can use import spyderlib.qt.QtCore.

widgets

TODO:

externalshell

TODO:

sourcecode

TODO:

spyderplugins

TODO:

Clone this wiki locally