Projectrename

Renamed the entire project to scikit spec.  Script to do it attached below.  Some issues with this script are that it doesn't output into a new directory, so I first copy pasted pyuvvis to a dummy folder, foouvvis, and worked on this folder.  Since all contents are copied, the git connection was not severed.  Here are the steps I followed losely:

```
   1.  Make a backup branch "backup" and push to github!

   2.  Create a new branch, "projecrename" to work out of.

   3.  Copy locally my pyuvvis folder into a new folder called foouvvis.
        - git connection should still be fine.

   4.  Run the script (PARAMETERS IN BOTTOM) with case insensitive on.  (Note, this will replace long names like PYuvvis with skspec.   In many isntances, I wanted scikit-spectra not skspec, but had to manually fix these later.

    5.. Either manually change all instances of pyuvvis in top-level files including setup.py, readme, licence, or copy paste them in a new directory and run script on that directory to do a batch replace.
 
    6. Go through and change instances of shortname to longname.  For example, readme header was "skspec: Tools for explorative spectroscopy" and here' s an instance where I actually want it to read "sickit-spectra: Tools..."
  
    7.  Carefully inspect and pull, merge pull.

    8.  Rename local foouvvis to pyuvvis, or go back to original pyuvvis, pull from master, and delete the foouvvis folder or whichever folder is irrelevant now.
```

SCRIPT BELOW
----------------------

```
""" Replace an entire project (directory of files) recursively with a 
new string.  Used to rename pyuvvis to scikit-spectra.  First, we had to
rename imports/function calls(pyuvvis.) with (skpectra.).  I ran this program
several times to do each replace, so it's not built to do it all in one-go.
Writes to an outdir, so if I have to replace say 3 phrases, have to run it
iteratively.  IE

   Trial 1:  pyuvvis ---> skspec (replaced .pyuvvis with .skspec)
   Trial 2: skspec ----> skspec2 (replaced ...?)

"""

import os 
import re
import os.path as op

# http://stackoverflow.com/questions/919056/python-case-insensitive-replace
def replace(contents, old, new, ignorecase=False):
    """ Replace old expression with new expression in a string (contents).
    """
    if ignorecase:
        return re.sub(old, new, contents, flags = re.IGNORECASE)
    else:
        return re.sub(old, new, contents)
        

def hasexpression(path, expression, ignorecase = False):
    """ Return the contents of a file if file contains string expression. """
    with open(path, 'r') as f:
        contents = f.read()
        if ignorecase:
            foundlist = re.findall(expression, contents, flags = re.IGNORECASE)
        else:
            foundlist = re.findall(expression, contents)
        if foundlist:
            print 'found "%s" in %s' % (expression, op.basename(path))
            return contents
    
def main(inroot):
    """ Walk the directory tree, replace expressions only .py, .ipynb and
    .rst files """
   
    for (rootpath, rootdirs, rootfiles) in \
        os.walk(inroot,
                topdown=True, 
                onerror=None, 
                followlinks=False
                ):
    
        for folder in rootdirs:                
            
            indir = op.join(rootpath, folder)
            
            for shortname in os.listdir(indir):
                outpath = op.join(rootpath, shortname) #Cut extension is here
                
                
                # SHOULDR REFACTOR FROM HERE DOWN TO BECAUSE DIDN"T INCLUDE
                # FILES IN TOPLEVEL LIKE SETUP.PY, LICENSE.TXT etc...
                
                filepath = op.join(indir, shortname)
                newcontents = None
            
                if op.isfile(filepath):
                    if op.splitext(filepath)[-1] in ALLOWED:
                        contents = hasexpression(filepath, EXP_OLD, ignorecase=IGNORECASE)
                        if contents:
                            newcontents = replace(contents, 
                                                  EXP_OLD, 
                                                  EXP_NEW, 
                                                  ignorecase=IGNORECASE)
                            if newcontents:
                                print 'replace in', filepath

                            if not DRYRUN:
                                with open(filepath, 'w') as f:
                                    f.write(newcontents)

 #               print filepath, 'OLD'
#                print outpath, 'NEW'
        
#            print folder, 'folder'
        
        
if __name__ == '__main__':
    ALLOWED=['.py','.rst','.ipynb', '.txt']

    EXP_OLD = 'pyuvvis'
    EXP_NEW = 'skspec'
    IGNORECASE = True    

    DRYRUN = False    
    DIRECTORY = 'foouvvis'
    main(DIRECTORY)
```