DEV Community

Super Kai (Kazuya Ito)
Super Kai (Kazuya Ito)

Posted on • Edited on

Useful IPython magic commands

Buy Me a Coffee

*Memos:

  • My post explains how to clone a private repository with FGPAT(Fine-Grained Personal Access Token) from Github.
  • My post explains how to clone a private repository with PAT(Personal Access Token) from Github.

An IPython magic command is the special code which basically starts with % or %% but sometimes ! or !!:

*Memos:

  • Basically, % or %% works more than ! or !! so only if % or %% doesn't work use ! or !!.
  • There are the magic commands which work only with % or ! but not with %% or !!.
  • I have never seen the magic commands which work with !!.
  • The magic commands with % or ! are for one line of code.
  • The magic commands with %% or !! are for a cell(one or more lines of code).
  • IPython masic commands can be used on IPython and the IPython-based editors such as Google Colab, JupyterLab, Jupyter Notebook, etc.
  • The IPython doc doesn't cover all magic commands.

<% with unix(linux) commands>

*For unix(linux) commands, % should be used because ! doesn't sometimes work.

  • %pwd can show the current directory:
%pwd
# '/home/superkai'
Enter fullscreen mode Exit fullscreen mode
  • %ls can show the files and folders. *-a can also show hidden files and folders:
%ls -a
# ./  ../ file1 .file2 folder1/ .folder2/
Enter fullscreen mode Exit fullscreen mode
  • %cd can change the current directory:
%cd folder1
Enter fullscreen mode Exit fullscreen mode
  • %rm can remove(delete) files and folders. *-r enables to remove folders:
%rm -r file1 folder1
Enter fullscreen mode Exit fullscreen mode

<!git commands>

*Memos:

  • %git doesn't work.
  • Basically, you better use these commands on IPython-based editors so that you don't need to learn their own specific ways to do these operations below. *Colab doesn't support to clone a private repository using API authentication.

1. Clone a public or private repository:

*Memos:

  • % doesn't work with git commands.
  • My post explains how to clone a private repository with FGPAT(Fine-Grained Personal Access Token) from Github.
  • My post explains how to clone a private repository with PAT(Personal Access Token) from Github.
# Clone a public repository

!git clone https://github.com/<usr or org>/<repo>.git
Enter fullscreen mode Exit fullscreen mode
# Clone a private repository

!git clone https://<fgpat or pat>@github.com/<usr or org>/<repo>.git
Enter fullscreen mode Exit fullscreen mode

2. Do add operation:
*Memos:

  • -A can stage all (new, modified, deleted) files.
  • -a(lowercase) doesn't work.
!git add -A
Enter fullscreen mode Exit fullscreen mode

3. May need config operation to add an email and username:

git config --global user.email "you@example.com"
git config --global user.name "Your Name"
Enter fullscreen mode Exit fullscreen mode

4. Do commit operation. *The command without the message -m "..." gets error:

!git commit -m "New"
Enter fullscreen mode Exit fullscreen mode

5. Do push operation. *The command without main will work:

<%timeit and %%timeit>

*Memos:

  • %timeit works for one line of code.
  • %%timeit works for a cell(one or more lines of code)
  • You can set -r <number> after %timeit and %%timeit e.g. %timeit -r 4 and %%timeit -r 4 which can change the number of repeats from 7 to 4. *You can check more options (flags) for %timeit and %%timeit.

%timeit can calculate the mean(average) and standard deviation(std) of one line of code, repeating 7 times with the suitable number of loops by default as shown below:

%timeit sum(range(1000000))
# 21.1 ms ± 4.79 ms per loop (mean ± std. dev. of 7 runs, 100 loops each)
Enter fullscreen mode Exit fullscreen mode

%%timeit can calculate the mean(average) and standard deviation(std) of a cell(one or more lines of code), repeating 7 times with the suitable number of loops by default as shown below:

%%timeit
sum(range(1000000))
sum(range(1000000))
sum(range(1000000))
# 57.5 ms ± 1.49 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
Enter fullscreen mode Exit fullscreen mode

<%time and %%time>

*Memos:

  • %time works for one line of code.
  • %%time works for a cell(one or more lines of code)
  • CPU times is the total of User CPU time and System CPU time: *Memos:
    • User CPU time is the amount of the time which program uses CPU on user space. *User space is the memory space for applications.
    • System CPU time is the amount of the time which program uses CPU on kernel space. *Kernel space is the memory space for kernel which is the core of the operating system.
  • Real is Real time which is the time from when program starts to when program finishes. *Real time is also called wall-clock time or wall time.

%time can calculate CPU time and wall(real) time of one line of code as shown below:

%time sum(range(1000000))
# CPU times: user 19.7 ms, sys: 0 ns, total: 19.7 ms
# Wall time: 19.6 ms
# 499999500000
Enter fullscreen mode Exit fullscreen mode

%%time can calculate CPU time and wall (real) time of a cell(one or more lines of code) as shown below:

%%time
sum(range(1000000))
sum(range(1000000))
sum(range(1000000))
# CPU times: user 60.6 ms, sys: 0 ns, total: 60.6 ms
# Wall time: 63.4 ms
# 499999500000
Enter fullscreen mode Exit fullscreen mode

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more