#!/usr/bin/env python
"""SimPEG: Simulation and Parameter Estimation in Geophysics

SimPEG is a python package for simulation and gradient based
parameter estimation in the context of geophysical applications.
"""

import numpy as np

import os
import sys
import subprocess

from distutils.core import setup
from setuptools import find_packages
from distutils.extension import Extension

CLASSIFIERS = [
'Development Status :: 4 - Beta',
'Intended Audience :: Developers',
'Intended Audience :: Science/Research',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python',
'Topic :: Scientific/Engineering',
'Topic :: Scientific/Engineering :: Mathematics',
'Topic :: Scientific/Engineering :: Physics',
'Operating System :: Microsoft :: Windows',
'Operating System :: POSIX',
'Operating System :: Unix',
'Operating System :: MacOS',
'Natural Language :: English',
]

args = sys.argv[1:]

# Make a `cleanall` rule to get rid of intermediate and library files
if "cleanall" in args:
    print "Deleting cython files..."
    # Just in case the build directory was created by accident,
    # note that shell=True should be OK here because the command is constant.
    subprocess.Popen("rm -rf build", shell=True, executable="/bin/bash")
    subprocess.Popen("find . -name \*.c -type f -delete", shell=True, executable="/bin/bash")
    subprocess.Popen("find . -name \*.so -type f -delete", shell=True, executable="/bin/bash")
    # Now do a normal clean
    sys.argv[sys.argv.index('cleanall')] = "clean"

# We want to always use build_ext --inplace
if args.count("build_ext") > 0 and args.count("--inplace") == 0:
    sys.argv.insert(sys.argv.index("build_ext")+1, "--inplace")

try:
    from Cython.Build import cythonize
    from Cython.Distutils import build_ext
    cythonKwargs = dict(cmdclass={'build_ext': build_ext})
    USE_CYTHON = True
except Exception, e:
    USE_CYTHON = False
    cythonKwargs = dict()

ext = '.pyx' if USE_CYTHON else '.c'

cython_files = [
                    "SimPEG/Utils/interputils_cython",
                    "SimPEG/Mesh/TreeUtils"
               ]
extensions = [Extension(f, [f+ext]) for f in cython_files]

if USE_CYTHON and "cleanall" not in args:
    from Cython.Build import cythonize
    extensions = cythonize(extensions)

import os, os.path

with open("README.rst") as f:
    LONG_DESCRIPTION = ''.join(f.readlines())

setup(
    name = "SimPEG",
    version = "0.1.4",
    packages = find_packages(),
    install_requires = ['numpy>=1.7',
                        'scipy>=0.13',
                        'Cython'
                       ],
    author = "Rowan Cockett",
    author_email = "rowan@3ptscience.com",
    description = "SimPEG: Simulation and Parameter Estimation in Geophysics",
    long_description = LONG_DESCRIPTION,
    license = "MIT",
    keywords = "geophysics inverse problem",
    url = "http://simpeg.xyz/",
    download_url = "http://github.com/simpeg/simpeg",
    classifiers=CLASSIFIERS,
    platforms = ["Windows", "Linux", "Solaris", "Mac OS-X", "Unix"],
    use_2to3 = False,
    include_dirs=[np.get_include()],
    ext_modules = extensions,
    **cythonKwargs
)

@@ -2155,16 +2155,59 @@
 n_files%5D
+%0Ascripts = %5Bf+'.pyx' for f in cython_files%5D
 %0A%0Aif USE
@@ -3169,16 +3169,37 @@
 nsions,%0A
+    scripts=scripts,%0A
     **cy

Update scripts for pip