Instalacja

Ciekawostki:

ipython profile create andrzejkrawczyk

stworzenie własnego profilu z konfiguracją

ipython --profile andrzejkrawczyk

Miejsce skryptów konfiguracyjnych

  • Windows: u'C:\Users\akrawczyk\.ipython\profile_andrzejkrawczyk\ipython_config.py'
  • Linux: "~/.ipython/"

Do modyfikacji konfiguracji jest potrzebne pobranie konfiguracji, dodajemy na starcie pliku:

c = get_config()

konfiguracja zapamiętywania aliasów / makr / zmiennych przez %store

c.StoreMagics.autorestore = False

Auto uzupełnianie nawiasów i uruchamianie obiektów callable
np. def foo(x): print(x)

foo 5 -> #5

0 - wyłącz
1 - 'smart' - tylko jak są argumenty uruchom call
2 - force call

c.InteractiveShell.autocall = 1

Ustawia możliwość uruchamiania magicznych komend bez %

c.InteractiveShell.automagic = True

Ustawienie koloru shella opcje: (NoColor, Neutral, Linux, or LightBG)

c.InteractiveShell.colors = 'Neutral'

Ustawienie edytora plików

c.TerminalInteractiveShell.editor = 'C:\Program Files\Notepad++\notepad++.exe'

Wykonanie wskazanych linii na start shell'a

c.InteractiveShellApp.exec_lines = ["import sys", "import os"]

  • Folder startup w config - ładowanie skryptów przy uruchomieniu.
  • Można pisać skrypty .py / .ipy
  • Skrypty ładowane w kolejności leksykograficznej.

In [ ]:
%lsmagic

In [ ]:
%ls

In [ ]:
%pwd

In [ ]:
# Konfiguracja zakładek do folderów
%bookmark -l
%bookmark my_pwd
%bookmark -l
%cd my_pwd

In [ ]:
print(4)
print(5)

In [ ]:
%macro foo #n1-n2 n1 n2

In [ ]:
%store foo

Alias na komendę systemową z powłoki

alias


In [ ]:
%alias whole_line echo "%l"
%whole_line ala ma kota

In [ ]:
%alias params_echo echo ala ma %s a tomek ma %s a zuzia ma %s
%params_echo psa kota zyrafe

In [ ]:
dane = !dir
print(dane)

In [ ]:
dane = "Ala ma kota"
!echo $dane

In [ ]:
!echo $$

In [ ]:
from IPython.core.magic import register_line_magic

@register_line_magic
def my_custom_quadratic(line):
    print(int(line) ** 2)
del my_custom_quadratic

In [ ]:
%my_custom_quadratic 4

In [ ]:
def foo(a, b): # foo("5", "6")
    print(a, b)
    print(type(a), type(b))

,foo 5, 6

In [ ]:
def foo(a, b=None): # foo("5 6")
    print(a, b)
    print(type(a), type(b))

;foo 5, 6

In [ ]:
%hist -n

In [ ]:
%hist -g

In [ ]:
%hist -o -g -f ipython_history.md

In [ ]:
%save example.py <zakres>

In [ ]:
%reset

In [ ]:
%paste

In [ ]:
%timeit [x for x in range(10000)]

In [ ]:
%%timeit L = []
for x in range(10000):
    L.append(x**x)
L = L[:int(len(L) / 2)]

pdb z ipythonem

pip install ipdb