StartupFiles

My IPython startup files.

MIT License

Stars
109
Committers
2

Startup Files

This is inspired by all the really awesome dotfile repos available. We need an ecosystem like this for Python.

Introduction

IPython has a feature that allows you to run scripts before the console starts. From IPython docs:

This is the IPython startup directory

.py and .ipy files in this directory will be run prior to any code or files specified via the exec_lines or exec_files configurables whenever you load this profile.

Files will be run in lexicographical order, so you can control the execution order of files with a prefix, e.g.::

00-first.py 50-middle.py 99-last.ipy

This repo contains my IPython startup files that I've found to be timesaving for my workflow.

How it works

First, who is this for?

My startup scripts are focused on data analysis and prototyping enviroments, as this is my primary purpose for using Python and IPython. I have lots of examples in the startup folder that can be used as ag starting place for other IPython workflows.

There is a requirements.txt file because some of my imports are external libraries.

Installation

First, clone the repo:

git clone https://github.com/CamDavidsonPilon/StartupFiles.git

Create Symlinks

The contents in startup should be added to ~/.ipython/<your_profile>/startup. One method to do this is to create a symlink between ~/.ipython/<profile>/startup and the startup folder in this repo. The script build_symlink will do just that:

./bin/build_symlink

will replace the default profile's startup with symlinks to the local repo. Alternatively, you can run

./bin/build_symlink --profile <profile>

to use an different profile to symlink too.

Building your own

Included is a script, ./bin/ipython_analysis, to query your IPython sqlite database. Yes, IPython stores all your commands in a sqlite database. This script will return suggestions for you to add to your startup scripts.


New %Magic Commands Included in this Repo

%pyplot

Get the best pieces of matplotlib, plus some extras.


%pase, %past, %pate

Are all alias to %paste, my most common IPython command and the one I mess up the most.


%lifelines and %stats

The former for development work on lifelines, the latter for general statistical work. I might add sklearn stuff here.