Skip to content
Phillip Cloud edited this page Jul 31, 2013 · 7 revisions

Python

Testing for versions

In [1]: from distutils.version import LooseVersion
In [2]: LooseVersion(np.__version__)>='1.7.0'
Out[2]: True

Skipping an entire file full of tests on a failed import of a module named a_module

import nose

try:
    import a_module
except ImportError:
    raise nose.SkipTest

Git

add the pandas remote repository to your fork and name it upstream

git remote add upstream git://github.com/pydata/pandas

pull in the latest upstream changes without merging

git fetch upstream

fetch changes from upstream and rebase off of latest upstream/master changes

git fetch upstream
git rebase upstream/master

fetch and then rebase interactively to squash, reword, fix, otherwise change some commits

git fetch upstream
git rebase --interactive upstream/master

This tip allows you to rebase relative to upstream/master which allows you to do squash commits from the point at which your fork diverged from pandas upstream

Making your git life easier when hacking on pandas

list your global git config values

git config --list --global

don't clobber file permissions

git config --global core.filemode false

keep the line endings the same as the input file, i.e., don't convert them to your platform

git config --global core.autocrlf input

Nose

Exclude a particular test (e.g., a test that's failing you don't care about)

nosetests -Isome_test_name

Fail fast (on first failure - useful with git bisect)

nosetests -x

Run with ids (and just re-run tests that failed)

# stores ids
nosetests --with-ids
# runs only tests that previously failed 
nosetests --failed

Misc

Reading from a url

from pandas.io.common import urlopen
with urlopen('http://www.google.com') as url:
    raw_text = url.read()

Reading a file named file.txt that's inside of a zip file named file.zip

from pandas.io.common import ZipFile
with ZipFile('file.zip') as zf:
    raw_text = zf.read('file.txt')