| @@ -17,9 +17,11 @@ | |||||
| # version: 3.5.2 | # version: 3.5.2 | ||||
| # --- | # --- | ||||
| # ## Animation | |||||
| # ## Matplotlib Animation | |||||
| # | # | ||||
| # ## Method 1 | |||||
| # + | # + | ||||
| # %matplotlib inline | # %matplotlib inline | ||||
| @@ -61,3 +63,25 @@ anim = animation.FuncAnimation(fig, animate, init_func=init, | |||||
| frames=100, interval=20, blit=True) | frames=100, interval=20, blit=True) | ||||
| HTML(anim.to_html5_video()) | HTML(anim.to_html5_video()) | ||||
| # - | |||||
| # ## Method 2 | |||||
| # + | |||||
| # %matplotlib nbagg | |||||
| import numpy as np | |||||
| import matplotlib.pyplot as plt | |||||
| import matplotlib.animation as animation | |||||
| fig = plt.figure() | |||||
| x = np.arange(0, 10, 0.1) | |||||
| ims = [] | |||||
| for a in range(50): | |||||
| y = np.sin(x - a) | |||||
| im = plt.plot(x, y, "r") | |||||
| ims.append(im) | |||||
| ani = animation.ArtistAnimation(fig, ims) | |||||
| plt.show() | |||||
| @@ -1,37 +0,0 @@ | |||||
| # --- | |||||
| # jupyter: | |||||
| # jupytext_format_version: '1.2' | |||||
| # kernelspec: | |||||
| # display_name: Python 3 | |||||
| # language: python | |||||
| # name: python3 | |||||
| # language_info: | |||||
| # codemirror_mode: | |||||
| # name: ipython | |||||
| # version: 3 | |||||
| # file_extension: .py | |||||
| # mimetype: text/x-python | |||||
| # name: python | |||||
| # nbconvert_exporter: python | |||||
| # pygments_lexer: ipython3 | |||||
| # version: 3.5.2 | |||||
| # --- | |||||
| # + | |||||
| # %matplotlib nbagg | |||||
| import numpy as np | |||||
| import matplotlib.pyplot as plt | |||||
| import matplotlib.animation as animation | |||||
| fig = plt.figure() | |||||
| x = np.arange(0, 10, 0.1) | |||||
| ims = [] | |||||
| for a in range(50): | |||||
| y = np.sin(x - a) | |||||
| im = plt.plot(x, y, "r") | |||||
| ims.append(im) | |||||
| ani = animation.ArtistAnimation(fig, ims) | |||||
| plt.show() | |||||
| @@ -1,322 +0,0 @@ | |||||
| % Default to the notebook output style | |||||
| % Inherit from the specified cell style. | |||||
| \documentclass[11pt]{article} | |||||
| \usepackage[T1]{fontenc} | |||||
| % Nicer default font (+ math font) than Computer Modern for most use cases | |||||
| \usepackage{mathpazo} | |||||
| % Basic figure setup, for now with no caption control since it's done | |||||
| % automatically by Pandoc (which extracts  syntax from Markdown). | |||||
| \usepackage{graphicx} | |||||
| % We will generate all images so they have a width \maxwidth. This means | |||||
| % that they will get their normal width if they fit onto the page, but | |||||
| % are scaled down if they would overflow the margins. | |||||
| \makeatletter | |||||
| \def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth | |||||
| \else\Gin@nat@width\fi} | |||||
| \makeatother | |||||
| \let\Oldincludegraphics\includegraphics | |||||
| % Set max figure width to be 80% of text width, for now hardcoded. | |||||
| \renewcommand{\includegraphics}[1]{\Oldincludegraphics[width=.8\maxwidth]{#1}} | |||||
| % Ensure that by default, figures have no caption (until we provide a | |||||
| % proper Figure object with a Caption API and a way to capture that | |||||
| % in the conversion process - todo). | |||||
| \usepackage{caption} | |||||
| \DeclareCaptionLabelFormat{nolabel}{} | |||||
| \captionsetup{labelformat=nolabel} | |||||
| \usepackage{adjustbox} % Used to constrain images to a maximum size | |||||
| \usepackage{xcolor} % Allow colors to be defined | |||||
| \usepackage{enumerate} % Needed for markdown enumerations to work | |||||
| \usepackage{geometry} % Used to adjust the document margins | |||||
| \usepackage{amsmath} % Equations | |||||
| \usepackage{amssymb} % Equations | |||||
| \usepackage{textcomp} % defines textquotesingle | |||||
| % Hack from http://tex.stackexchange.com/a/47451/13684: | |||||
| \AtBeginDocument{% | |||||
| \def\PYZsq{\textquotesingle}% Upright quotes in Pygmentized code | |||||
| } | |||||
| \usepackage{upquote} % Upright quotes for verbatim code | |||||
| \usepackage{eurosym} % defines \euro | |||||
| \usepackage[mathletters]{ucs} % Extended unicode (utf-8) support | |||||
| \usepackage[utf8x]{inputenc} % Allow utf-8 characters in the tex document | |||||
| \usepackage{fancyvrb} % verbatim replacement that allows latex | |||||
| \usepackage{grffile} % extends the file name processing of package graphics | |||||
| % to support a larger range | |||||
| % The hyperref package gives us a pdf with properly built | |||||
| % internal navigation ('pdf bookmarks' for the table of contents, | |||||
| % internal cross-reference links, web links for URLs, etc.) | |||||
| \usepackage{hyperref} | |||||
| \usepackage{longtable} % longtable support required by pandoc >1.10 | |||||
| \usepackage{booktabs} % table support for pandoc > 1.12.2 | |||||
| \usepackage[inline]{enumitem} % IRkernel/repr support (it uses the enumerate* environment) | |||||
| \usepackage[normalem]{ulem} % ulem is needed to support strikethroughs (\sout) | |||||
| % normalem makes italics be italics, not underlines | |||||
| % Colors for the hyperref package | |||||
| \definecolor{urlcolor}{rgb}{0,.145,.698} | |||||
| \definecolor{linkcolor}{rgb}{.71,0.21,0.01} | |||||
| \definecolor{citecolor}{rgb}{.12,.54,.11} | |||||
| % ANSI colors | |||||
| \definecolor{ansi-black}{HTML}{3E424D} | |||||
| \definecolor{ansi-black-intense}{HTML}{282C36} | |||||
| \definecolor{ansi-red}{HTML}{E75C58} | |||||
| \definecolor{ansi-red-intense}{HTML}{B22B31} | |||||
| \definecolor{ansi-green}{HTML}{00A250} | |||||
| \definecolor{ansi-green-intense}{HTML}{007427} | |||||
| \definecolor{ansi-yellow}{HTML}{DDB62B} | |||||
| \definecolor{ansi-yellow-intense}{HTML}{B27D12} | |||||
| \definecolor{ansi-blue}{HTML}{208FFB} | |||||
| \definecolor{ansi-blue-intense}{HTML}{0065CA} | |||||
| \definecolor{ansi-magenta}{HTML}{D160C4} | |||||
| \definecolor{ansi-magenta-intense}{HTML}{A03196} | |||||
| \definecolor{ansi-cyan}{HTML}{60C6C8} | |||||
| \definecolor{ansi-cyan-intense}{HTML}{258F8F} | |||||
| \definecolor{ansi-white}{HTML}{C5C1B4} | |||||
| \definecolor{ansi-white-intense}{HTML}{A1A6B2} | |||||
| % commands and environments needed by pandoc snippets | |||||
| % extracted from the output of `pandoc -s` | |||||
| \providecommand{\tightlist}{% | |||||
| \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} | |||||
| \DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}} | |||||
| % Add ',fontsize=\small' for more characters per line | |||||
| \newenvironment{Shaded}{}{} | |||||
| \newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{{#1}}}} | |||||
| \newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.56,0.13,0.00}{{#1}}} | |||||
| \newcommand{\DecValTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}} | |||||
| \newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}} | |||||
| \newcommand{\FloatTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}} | |||||
| \newcommand{\CharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} | |||||
| \newcommand{\StringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} | |||||
| \newcommand{\CommentTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textit{{#1}}}} | |||||
| \newcommand{\OtherTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{{#1}}} | |||||
| \newcommand{\AlertTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}} | |||||
| \newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.02,0.16,0.49}{{#1}}} | |||||
| \newcommand{\RegionMarkerTok}[1]{{#1}} | |||||
| \newcommand{\ErrorTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}} | |||||
| \newcommand{\NormalTok}[1]{{#1}} | |||||
| % Additional commands for more recent versions of Pandoc | |||||
| \newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.53,0.00,0.00}{{#1}}} | |||||
| \newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} | |||||
| \newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} | |||||
| \newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.73,0.40,0.53}{{#1}}} | |||||
| \newcommand{\ImportTok}[1]{{#1}} | |||||
| \newcommand{\DocumentationTok}[1]{\textcolor[rgb]{0.73,0.13,0.13}{\textit{{#1}}}} | |||||
| \newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}} | |||||
| \newcommand{\CommentVarTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}} | |||||
| \newcommand{\VariableTok}[1]{\textcolor[rgb]{0.10,0.09,0.49}{{#1}}} | |||||
| \newcommand{\ControlFlowTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{{#1}}}} | |||||
| \newcommand{\OperatorTok}[1]{\textcolor[rgb]{0.40,0.40,0.40}{{#1}}} | |||||
| \newcommand{\BuiltInTok}[1]{{#1}} | |||||
| \newcommand{\ExtensionTok}[1]{{#1}} | |||||
| \newcommand{\PreprocessorTok}[1]{\textcolor[rgb]{0.74,0.48,0.00}{{#1}}} | |||||
| \newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.49,0.56,0.16}{{#1}}} | |||||
| \newcommand{\InformationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}} | |||||
| \newcommand{\WarningTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}} | |||||
| % Define a nice break command that doesn't care if a line doesn't already | |||||
| % exist. | |||||
| \def\br{\hspace*{\fill} \\* } | |||||
| % Math Jax compatability definitions | |||||
| \def\gt{>} | |||||
| \def\lt{<} | |||||
| % Document parameters | |||||
| \title{matplotlib\_ani2} | |||||
| % Pygments definitions | |||||
| \makeatletter | |||||
| \def\PY@reset{\let\PY@it=\relax \let\PY@bf=\relax% | |||||
| \let\PY@ul=\relax \let\PY@tc=\relax% | |||||
| \let\PY@bc=\relax \let\PY@ff=\relax} | |||||
| \def\PY@tok#1{\csname PY@tok@#1\endcsname} | |||||
| \def\PY@toks#1+{\ifx\relax#1\empty\else% | |||||
| \PY@tok{#1}\expandafter\PY@toks\fi} | |||||
| \def\PY@do#1{\PY@bc{\PY@tc{\PY@ul{% | |||||
| \PY@it{\PY@bf{\PY@ff{#1}}}}}}} | |||||
| \def\PY#1#2{\PY@reset\PY@toks#1+\relax+\PY@do{#2}} | |||||
| \expandafter\def\csname PY@tok@gi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} | |||||
| \expandafter\def\csname PY@tok@ni\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.60,0.60,0.60}{##1}}} | |||||
| \expandafter\def\csname PY@tok@ow\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} | |||||
| \expandafter\def\csname PY@tok@dl\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} | |||||
| \expandafter\def\csname PY@tok@vi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} | |||||
| \expandafter\def\csname PY@tok@nl\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.63,0.63,0.00}{##1}}} | |||||
| \expandafter\def\csname PY@tok@mb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} | |||||
| \expandafter\def\csname PY@tok@m\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} | |||||
| \expandafter\def\csname PY@tok@mo\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} | |||||
| \expandafter\def\csname PY@tok@sa\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} | |||||
| \expandafter\def\csname PY@tok@nb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | |||||
| \expandafter\def\csname PY@tok@ss\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} | |||||
| \expandafter\def\csname PY@tok@kp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | |||||
| \expandafter\def\csname PY@tok@sx\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | |||||
| \expandafter\def\csname PY@tok@kn\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | |||||
| \expandafter\def\csname PY@tok@mh\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} | |||||
| \expandafter\def\csname PY@tok@gu\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} | |||||
| \expandafter\def\csname PY@tok@sc\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} | |||||
| \expandafter\def\csname PY@tok@c1\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} | |||||
| \expandafter\def\csname PY@tok@gh\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} | |||||
| \expandafter\def\csname PY@tok@gt\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}} | |||||
| \expandafter\def\csname PY@tok@vm\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} | |||||
| \expandafter\def\csname PY@tok@nc\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} | |||||
| \expandafter\def\csname PY@tok@sh\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} | |||||
| \expandafter\def\csname PY@tok@gp\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} | |||||
| \expandafter\def\csname PY@tok@nv\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} | |||||
| \expandafter\def\csname PY@tok@w\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} | |||||
| \expandafter\def\csname PY@tok@ne\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.82,0.25,0.23}{##1}}} | |||||
| \expandafter\def\csname PY@tok@gd\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} | |||||
| \expandafter\def\csname PY@tok@cm\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} | |||||
| \expandafter\def\csname PY@tok@k\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | |||||
| \expandafter\def\csname PY@tok@bp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | |||||
| \expandafter\def\csname PY@tok@gr\endcsname{\def\PY@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} | |||||
| \expandafter\def\csname PY@tok@sb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} | |||||
| \expandafter\def\csname PY@tok@cp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.74,0.48,0.00}{##1}}} | |||||
| \expandafter\def\csname PY@tok@mi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} | |||||
| \expandafter\def\csname PY@tok@mf\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} | |||||
| \expandafter\def\csname PY@tok@il\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} | |||||
| \expandafter\def\csname PY@tok@nf\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} | |||||
| \expandafter\def\csname PY@tok@se\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.13}{##1}}} | |||||
| \expandafter\def\csname PY@tok@nt\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | |||||
| \expandafter\def\csname PY@tok@si\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} | |||||
| \expandafter\def\csname PY@tok@nd\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} | |||||
| \expandafter\def\csname PY@tok@cpf\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} | |||||
| \expandafter\def\csname PY@tok@cs\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} | |||||
| \expandafter\def\csname PY@tok@vc\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} | |||||
| \expandafter\def\csname PY@tok@sd\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} | |||||
| \expandafter\def\csname PY@tok@err\endcsname{\def\PY@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}} | |||||
| \expandafter\def\csname PY@tok@na\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.49,0.56,0.16}{##1}}} | |||||
| \expandafter\def\csname PY@tok@s1\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} | |||||
| \expandafter\def\csname PY@tok@ch\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} | |||||
| \expandafter\def\csname PY@tok@s\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} | |||||
| \expandafter\def\csname PY@tok@fm\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} | |||||
| \expandafter\def\csname PY@tok@c\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} | |||||
| \expandafter\def\csname PY@tok@kd\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | |||||
| \expandafter\def\csname PY@tok@ge\endcsname{\let\PY@it=\textit} | |||||
| \expandafter\def\csname PY@tok@kr\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | |||||
| \expandafter\def\csname PY@tok@vg\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} | |||||
| \expandafter\def\csname PY@tok@go\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.53,0.53,0.53}{##1}}} | |||||
| \expandafter\def\csname PY@tok@no\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}} | |||||
| \expandafter\def\csname PY@tok@o\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} | |||||
| \expandafter\def\csname PY@tok@kc\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} | |||||
| \expandafter\def\csname PY@tok@gs\endcsname{\let\PY@bf=\textbf} | |||||
| \expandafter\def\csname PY@tok@sr\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} | |||||
| \expandafter\def\csname PY@tok@nn\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} | |||||
| \expandafter\def\csname PY@tok@s2\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} | |||||
| \expandafter\def\csname PY@tok@kt\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}} | |||||
| \def\PYZbs{\char`\\} | |||||
| \def\PYZus{\char`\_} | |||||
| \def\PYZob{\char`\{} | |||||
| \def\PYZcb{\char`\}} | |||||
| \def\PYZca{\char`\^} | |||||
| \def\PYZam{\char`\&} | |||||
| \def\PYZlt{\char`\<} | |||||
| \def\PYZgt{\char`\>} | |||||
| \def\PYZsh{\char`\#} | |||||
| \def\PYZpc{\char`\%} | |||||
| \def\PYZdl{\char`\$} | |||||
| \def\PYZhy{\char`\-} | |||||
| \def\PYZsq{\char`\'} | |||||
| \def\PYZdq{\char`\"} | |||||
| \def\PYZti{\char`\~} | |||||
| % for compatibility with earlier versions | |||||
| \def\PYZat{@} | |||||
| \def\PYZlb{[} | |||||
| \def\PYZrb{]} | |||||
| \makeatother | |||||
| % Exact colors from NB | |||||
| \definecolor{incolor}{rgb}{0.0, 0.0, 0.5} | |||||
| \definecolor{outcolor}{rgb}{0.545, 0.0, 0.0} | |||||
| % Prevent overflowing lines due to hard-to-break entities | |||||
| \sloppy | |||||
| % Setup hyperref package | |||||
| \hypersetup{ | |||||
| breaklinks=true, % so long urls are correctly broken across lines | |||||
| colorlinks=true, | |||||
| urlcolor=urlcolor, | |||||
| linkcolor=linkcolor, | |||||
| citecolor=citecolor, | |||||
| } | |||||
| % Slightly bigger margins than the latex defaults | |||||
| \geometry{verbose,tmargin=1in,bmargin=1in,lmargin=1in,rmargin=1in} | |||||
| \begin{document} | |||||
| \maketitle | |||||
| \begin{Verbatim}[commandchars=\\\{\}] | |||||
| {\color{incolor}In [{\color{incolor}1}]:} \PY{c+c1}{\PYZsh{}\PYZpc{}matplotlib nbagg} | |||||
| \PY{o}{\PYZpc{}}\PY{k}{matplotlib} nbagg | |||||
| \PY{k+kn}{import} \PY{n+nn}{numpy} \PY{k}{as} \PY{n+nn}{np} | |||||
| \PY{k+kn}{import} \PY{n+nn}{matplotlib}\PY{n+nn}{.}\PY{n+nn}{pyplot} \PY{k}{as} \PY{n+nn}{plt} | |||||
| \PY{k+kn}{import} \PY{n+nn}{matplotlib}\PY{n+nn}{.}\PY{n+nn}{animation} \PY{k}{as} \PY{n+nn}{animation} | |||||
| \PY{n}{fig} \PY{o}{=} \PY{n}{plt}\PY{o}{.}\PY{n}{figure}\PY{p}{(}\PY{p}{)} | |||||
| \PY{n}{x} \PY{o}{=} \PY{n}{np}\PY{o}{.}\PY{n}{arange}\PY{p}{(}\PY{l+m+mi}{0}\PY{p}{,} \PY{l+m+mi}{10}\PY{p}{,} \PY{l+m+mf}{0.1}\PY{p}{)} | |||||
| \PY{n}{ims} \PY{o}{=} \PY{p}{[}\PY{p}{]} | |||||
| \PY{k}{for} \PY{n}{a} \PY{o+ow}{in} \PY{n+nb}{range}\PY{p}{(}\PY{l+m+mi}{50}\PY{p}{)}\PY{p}{:} | |||||
| \PY{n}{y} \PY{o}{=} \PY{n}{np}\PY{o}{.}\PY{n}{sin}\PY{p}{(}\PY{n}{x} \PY{o}{\PYZhy{}} \PY{n}{a}\PY{p}{)} | |||||
| \PY{n}{im} \PY{o}{=} \PY{n}{plt}\PY{o}{.}\PY{n}{plot}\PY{p}{(}\PY{n}{x}\PY{p}{,} \PY{n}{y}\PY{p}{,} \PY{l+s+s2}{\PYZdq{}}\PY{l+s+s2}{r}\PY{l+s+s2}{\PYZdq{}}\PY{p}{)} | |||||
| \PY{n}{ims}\PY{o}{.}\PY{n}{append}\PY{p}{(}\PY{n}{im}\PY{p}{)} | |||||
| \PY{n}{ani} \PY{o}{=} \PY{n}{animation}\PY{o}{.}\PY{n}{ArtistAnimation}\PY{p}{(}\PY{n}{fig}\PY{p}{,} \PY{n}{ims}\PY{p}{)} | |||||
| \PY{n}{plt}\PY{o}{.}\PY{n}{show}\PY{p}{(}\PY{p}{)} | |||||
| \end{Verbatim} | |||||
| \begin{verbatim} | |||||
| <IPython.core.display.Javascript object> | |||||
| \end{verbatim} | |||||
| \begin{verbatim} | |||||
| <IPython.core.display.HTML object> | |||||
| \end{verbatim} | |||||
| % Add a bibliography block to the postdoc | |||||
| \end{document} | |||||
| @@ -0,0 +1,281 @@ | |||||
| { | |||||
| "cells": [ | |||||
| { | |||||
| "cell_type": "markdown", | |||||
| "metadata": {}, | |||||
| "source": [ | |||||
| "# 2.3. Learning the basics of the distributed version control system Git" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 1, | |||||
| "metadata": {}, | |||||
| "outputs": [], | |||||
| "source": [ | |||||
| "mkdir myproject\n", | |||||
| "cd myproject" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 2, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "Initialized empty Git repository in\n", | |||||
| "~/git/cookbook-2nd/chapter02/myproject/.git/\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "git init" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 3, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "~/git/cookbook-2nd/chapter02/myproject\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "pwd" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 4, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| ". .. .git\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "ls -a" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 5, | |||||
| "metadata": {}, | |||||
| "outputs": [], | |||||
| "source": [ | |||||
| "git config --global user.name \"My Name\"\n", | |||||
| "git config --global user.email \"me@home.com\"" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 6, | |||||
| "metadata": {}, | |||||
| "outputs": [], | |||||
| "source": [ | |||||
| "echo \"Hello world\" > file.txt\n", | |||||
| "git add file.txt" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 7, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "[master (root-commit) 02971c0] Initial commit\n", | |||||
| " 1 file changed, 1 insertion(+)\n", | |||||
| " create mode 100644 file.txt\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "git commit -m \"Initial commit\"" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 8, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "commit 02971c0e1176cd26ec33900e359b192a27df2821\n", | |||||
| "Author: My Name <me@home.com>\n", | |||||
| "Date: Tue Dec 12 10:50:37 2017 +0100\n", | |||||
| "\n", | |||||
| " Initial commit\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "git log" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 9, | |||||
| "metadata": {}, | |||||
| "outputs": [], | |||||
| "source": [ | |||||
| "echo \"Hello world!\" > file.txt" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 10, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "Hello world!\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "cat file.txt" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 11, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "diff --git a/file.txt b/file.txt\n", | |||||
| "index 802992c..cd08755 100644\n", | |||||
| "--- a/file.txt\n", | |||||
| "+++ b/file.txt\n", | |||||
| "@@ -1 +1 @@\n", | |||||
| "-Hello world\n", | |||||
| "+Hello world!\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "git diff" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 12, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "On branch master\n", | |||||
| "Changes not staged for commit:\n", | |||||
| " (use \"git add <file>...\" to update what will\n", | |||||
| " be committed)\n", | |||||
| "\n", | |||||
| " modified: file.txt\n", | |||||
| "\n", | |||||
| "no changes added to commit (use \"git add\")\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "git status" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 13, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| " file.txt | 2 +-\n", | |||||
| " 1 file changed, 1 insertion(+), 1 deletion(-)\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "git diff --stat" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 14, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "[master 045df6a] Add exclamation mark to file.txt\n", | |||||
| " 1 file changed, 1 insertion(+), 1 deletion(-)\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "git commit -am \"Add exclamation mark to file.txt\"" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 15, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "commit 045df6a6f8a62b19f45025d15168d6d7382a8429\n", | |||||
| "Author: My Name <me@home.com>\n", | |||||
| "Date: Tue Dec 12 10:59:39 2017 +0100\n", | |||||
| "\n", | |||||
| " Add exclamation mark to file.txt\n", | |||||
| "\n", | |||||
| "commit 02971c0e1176cd26ec33900e359b192a27df2821\n", | |||||
| "Author: My Name <me@home.com>\n", | |||||
| "Date: Tue Dec 12 10:50:37 2017 +0100\n", | |||||
| "\n", | |||||
| " Initial commit\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "git log" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 16, | |||||
| "metadata": {}, | |||||
| "outputs": [], | |||||
| "source": [ | |||||
| "git clone https://github.com/mylogin/myproject.git" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "metadata": {}, | |||||
| "nbformat": 4, | |||||
| "nbformat_minor": 2 | |||||
| } | |||||
| @@ -0,0 +1,411 @@ | |||||
| { | |||||
| "cells": [ | |||||
| { | |||||
| "cell_type": "markdown", | |||||
| "metadata": {}, | |||||
| "source": [ | |||||
| "# 2.4. A typical workflow with Git branching" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 1, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "/home/cyrille/git/cookbook-2nd/chapter02\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "pwd" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 2, | |||||
| "metadata": {}, | |||||
| "outputs": [], | |||||
| "source": [ | |||||
| "cd myproject" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 3, | |||||
| "metadata": {}, | |||||
| "outputs": [], | |||||
| "source": [ | |||||
| "git branch newidea" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 4, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "* master\n", | |||||
| " newidea\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "git branch" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 5, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "Switched to branch 'newidea'\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "git checkout newidea" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 6, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| " master\n", | |||||
| "* newidea\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "git branch" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 7, | |||||
| "metadata": {}, | |||||
| "outputs": [], | |||||
| "source": [ | |||||
| "echo \"print('new')\" > newfile.py" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 8, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "print('new')\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "cat newfile.py" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 9, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "[newidea 8ebee32] Testing new idea\n", | |||||
| " 1 file changed, 1 insertion(+)\n", | |||||
| " create mode 100644 newfile.py\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "git add newfile.py\n", | |||||
| "git commit -m \"Testing new idea\"" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 10, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "file.txt newfile.py\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "ls" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 11, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "Switched to branch 'master'\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "git checkout master" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 12, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "file.txt\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "ls" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 13, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "Updating 045df6a..8ebee32\n", | |||||
| "Fast-forward\n", | |||||
| " newfile.py | 1 +\n", | |||||
| " 1 file changed, 1 insertion(+)\n", | |||||
| " create mode 100644 newfile.py\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "git merge newidea" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 14, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "file.txt newfile.py\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "ls" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 15, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "HEAD is now at 045df6 Add exclamation mark to file.txt\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "git reset --hard HEAD~1" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 16, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "* master\n", | |||||
| " new idea\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "git branch" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 17, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "Deleted branch newidea (was 8ebee32).\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "git branch -D newidea" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 18, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "file.txt\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "ls" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 19, | |||||
| "metadata": {}, | |||||
| "outputs": [], | |||||
| "source": [ | |||||
| "echo \"new line\" >> file.txt" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 20, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "Hello world!\n", | |||||
| "new line\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "cat file.txt" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 21, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "Saved working directory and index state WIP on master:\n", | |||||
| "045df6a Add exclamation mark to file.txt\n", | |||||
| "HEAD is now at 045df6 Add exclamation mark to file.txt\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "git stash" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 22, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "Hello world!\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "cat file.txt" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 23, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "On branch master\n", | |||||
| "Changes not staged for commit:\n", | |||||
| "\n", | |||||
| " modified: file.txt\n", | |||||
| "\n", | |||||
| "no changes added to commit\n", | |||||
| " (use \"git add\" and/or \"git commit -a\")\n", | |||||
| "Dropped refs/stash@{0} (c9071a)\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "git stash pop" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 24, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "Hello world!\n", | |||||
| "new line\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "cat file.txt" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "metadata": {}, | |||||
| "nbformat": 4, | |||||
| "nbformat_minor": 2 | |||||
| } | |||||
| @@ -0,0 +1,359 @@ | |||||
| { | |||||
| "cells": [ | |||||
| { | |||||
| "cell_type": "markdown", | |||||
| "metadata": {}, | |||||
| "source": [ | |||||
| "# 2.1. Learning the basics of the Unix shell" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 1, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "~/git/cookbook-2nd/chapter02_best_practices\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "pwd" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 2, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "00_intro.md 03_git.md 07_high_quality.md\n", | |||||
| "01_shell.md 04_git_advanced.md 08_test.md\n", | |||||
| "02_py3 05_workflows.md 09_debugging.md\n", | |||||
| "02_py3.md 06_tips.md images\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "ls" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 3, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "total 100\n", | |||||
| "-rw-rw-r-- 1 owner 769 Dec 12 10:23 00_intro.md\n", | |||||
| "-rw-rw-r-- 1 owner 2473 Dec 12 14:21 01_shell.md\n", | |||||
| "...\n", | |||||
| "-rw-rw-r-- 1 owner 9390 Dec 12 11:46 08_test.md\n", | |||||
| "-rw-rw-r-- 1 owner 5032 Dec 12 10:23 09_debugging.md\n", | |||||
| "drwxrwxr-x 2 owner 4096 Aug 1 16:49 images\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "ls -l" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 4, | |||||
| "metadata": {}, | |||||
| "outputs": [], | |||||
| "source": [ | |||||
| "cd images" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 5, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "data": { | |||||
| "text/plain": [ | |||||
| "~/git/cookbook-2nd/chapter02_best_practices/images" | |||||
| ] | |||||
| }, | |||||
| "execution_count": 5, | |||||
| "metadata": {}, | |||||
| "output_type": "execute_result" | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "pwd" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 6, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "folder.png github_new.png\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "ls" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 7, | |||||
| "metadata": {}, | |||||
| "outputs": [], | |||||
| "source": [ | |||||
| "cd .." | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 8, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "data": { | |||||
| "text/plain": [ | |||||
| "~/git/cookbook-2nd/chapter02_best_practices" | |||||
| ] | |||||
| }, | |||||
| "execution_count": 8, | |||||
| "metadata": {}, | |||||
| "output_type": "execute_result" | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "pwd" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 9, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "total 20\n", | |||||
| "drwxr-xr-x 5 cyrille 4096 Nov 14 16:16 .\n", | |||||
| "drwxr-xr-x 93 cyrille 4096 Dec 12 10:50 ..\n", | |||||
| "drwxr-xr-x 2 cyrille 4096 Nov 14 16:16 extensions\n", | |||||
| "drwxr-xr-x 2 cyrille 4096 Nov 14 16:16 nbextensions\n", | |||||
| "drwxr-xr-x 7 cyrille 4096 Dec 12 14:18 profile_default\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "ls -la ~/.ipython" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 10, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "00_intro.md 05_workflows.md\n", | |||||
| "01_shell.md 06_tips.md\n", | |||||
| "02_py3.md 07_high_quality.md\n", | |||||
| "03_git.md 08_test.md\n", | |||||
| "04_git_advanced.md 09_debugging.md\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "# We create an empty directory:\n", | |||||
| "mkdir md_files\n", | |||||
| "# We copy all Markdown files into the new directory:\n", | |||||
| "cp *.md md_files\n", | |||||
| "# We rename the directory:\n", | |||||
| "mv md_files markdown_files\n", | |||||
| "ls markdown_files" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 11, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "rmdir: failed to remove 'markdown_files':\n", | |||||
| " Directory not empty\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "rmdir markdown_files" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 12, | |||||
| "metadata": {}, | |||||
| "outputs": [], | |||||
| "source": [ | |||||
| "rm markdown_files/*" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 13, | |||||
| "metadata": {}, | |||||
| "outputs": [], | |||||
| "source": [ | |||||
| "rmdir markdown_files" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 14, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "# Learning the basics of the Unix shell\n", | |||||
| "\n", | |||||
| "Learning how to interact with the operating system (...)\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "# Show the first three lines of a text file:\n", | |||||
| "head -n 3 01_shell.md" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 15, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "We will also cover more general topics (...)\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "# Show the last line of a text file:\n", | |||||
| "tail -n 1 00_intro.md" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 16, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "Hello world!\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "# We display some text:\n", | |||||
| "echo \"Hello world!\"" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 17, | |||||
| "metadata": {}, | |||||
| "outputs": [], | |||||
| "source": [ | |||||
| "# We redirect the output of a command to\n", | |||||
| "# a text file with `>`:\n", | |||||
| "echo \"Hello world!\" > myfile.txt" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 18, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "Hello world!\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "# We display the entire contents of the file:\n", | |||||
| "cat myfile.txt" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 19, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "Unix shell\n", | |||||
| "Unix shell\n", | |||||
| "Unix subsystem\n", | |||||
| "Unix shell\n", | |||||
| "(...)\n", | |||||
| "Unix shell\n", | |||||
| "Unix shell\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "grep -Eo \"Unix \\w+\" 01_shell.md" | |||||
| ] | |||||
| }, | |||||
| { | |||||
| "cell_type": "code", | |||||
| "execution_count": 20, | |||||
| "metadata": {}, | |||||
| "outputs": [ | |||||
| { | |||||
| "name": "stdout", | |||||
| "output_type": "stream", | |||||
| "text": [ | |||||
| "Unix shell\n" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "source": [ | |||||
| "echo \"This is a Unix shell\" | grep -Eo \"Unix \\w+\"" | |||||
| ] | |||||
| } | |||||
| ], | |||||
| "metadata": {}, | |||||
| "nbformat": 4, | |||||
| "nbformat_minor": 2 | |||||
| } | |||||