forked from clawpack/riemann
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request clawpack#26 from ahmadia/refactor_toplevel
Refactor top level (stage 1)
- Loading branch information
Showing
3 changed files
with
186 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,172 @@ | ||
#!/usr/bin/env python | ||
"""ClawUtil: Utility Libraries for Clawpack Packages | ||
clawutil is a set of utility scripts to enable cross-package Clawpack functionality. | ||
""" | ||
|
||
# much of the functionality of this file was taken from the scipy setup.py script. | ||
|
||
DOCLINES = __doc__.split("\n") | ||
|
||
import os | ||
import sys | ||
import warnings | ||
import subprocess | ||
import shutil | ||
import re | ||
|
||
if sys.version_info[0] < 3: | ||
import __builtin__ as builtins | ||
else: | ||
import builtins | ||
|
||
CLASSIFIERS = """\ | ||
Development Status :: 4 - Beta | ||
Intended Audience :: Science/Research | ||
Intended Audience :: Developers | ||
License :: OSI Approved | ||
Programming Language :: C | ||
Programming Language :: Python | ||
Topic :: Software Development | ||
Topic :: Scientific/Engineering | ||
Operating System :: POSIX | ||
Operating System :: Unix | ||
Operating System :: MacOS | ||
""" | ||
|
||
MAJOR = 0 | ||
MINOR = 1 | ||
MICRO = 0 | ||
ISRELEASED = False | ||
VERSION = '%d.%d.%d' % (MAJOR, MINOR, MICRO) | ||
|
||
|
||
# Return the git revision as a string | ||
def git_version(): | ||
def _minimal_ext_cmd(cmd): | ||
# construct minimal environment | ||
env = {} | ||
for k in ['SYSTEMROOT', 'PATH']: | ||
v = os.environ.get(k) | ||
if v is not None: | ||
env[k] = v | ||
# LANGUAGE is used on win32 | ||
env['LANGUAGE'] = 'C' | ||
env['LANG'] = 'C' | ||
env['LC_ALL'] = 'C' | ||
out = subprocess.Popen(cmd, stdout = subprocess.PIPE, env=env).communicate()[0] | ||
return out | ||
|
||
try: | ||
out = _minimal_ext_cmd(['git', 'rev-parse', 'HEAD']) | ||
GIT_REVISION = out.strip().decode('ascii') | ||
except OSError: | ||
GIT_REVISION = "Unknown" | ||
|
||
return GIT_REVISION | ||
|
||
|
||
# BEFORE importing distutils, remove MANIFEST. distutils doesn't properly | ||
# update it when the contents of directories change. | ||
if os.path.exists('MANIFEST'): | ||
os.remove('MANIFEST') | ||
|
||
def write_version_py(filename='src/python/clawutil/version.py'): | ||
cnt = """ | ||
# THIS FILE IS GENERATED FROM CLAWUTIL SETUP.PY | ||
short_version = '%(version)s' | ||
version = '%(version)s' | ||
full_version = '%(full_version)s' | ||
git_revision = '%(git_revision)s' | ||
release = %(isrelease)s | ||
if not release: | ||
version = full_version | ||
""" | ||
# Adding the git rev number needs to be done inside | ||
# write_version_py(), otherwise the import of scipy.version messes | ||
# up the build under Python 3. | ||
FULLVERSION = VERSION | ||
if os.path.exists('.git'): | ||
GIT_REVISION = git_version() | ||
elif os.path.exists('src/python/clawutil/version.py'): | ||
# must be a source distribution, use existing version file | ||
from clawutil.version import git_revision as GIT_REVISION | ||
else: | ||
GIT_REVISION = "Unknown" | ||
|
||
if not ISRELEASED: | ||
FULLVERSION += '.dev-' + GIT_REVISION[:7] | ||
|
||
a = open(filename, 'w') | ||
try: | ||
a.write(cnt % {'version': VERSION, | ||
'full_version' : FULLVERSION, | ||
'git_revision' : GIT_REVISION, | ||
'isrelease': str(ISRELEASED)}) | ||
finally: | ||
a.close() | ||
|
||
|
||
def configuration(parent_package='',top_path=None): | ||
from numpy.distutils.misc_util import Configuration | ||
|
||
subpackage_path=os.path.join('src','python','clawutil') | ||
config = Configuration(None, parent_package, top_path) | ||
config.set_options(ignore_setup_xxx_py=True, | ||
assume_default_configuration=True, | ||
delegate_options_to_subpackages=True, | ||
quiet=False) | ||
|
||
config.get_version('src/python/clawutil/version.py') | ||
config.add_subpackage(None, subpackage_path) | ||
|
||
|
||
return config | ||
|
||
|
||
def setup_package(): | ||
from numpy.distutils.core import setup | ||
|
||
old_path = os.getcwd() | ||
local_path = os.path.dirname(os.path.abspath(sys.argv[0])) | ||
src_path = local_path | ||
|
||
os.chdir(local_path) | ||
sys.path.insert(0, local_path) | ||
sys.path.insert(0, os.path.join(local_path, 'src/python/clawutil')) # to retrieve version | ||
|
||
# Run build | ||
old_path = os.getcwd() | ||
os.chdir(src_path) | ||
sys.path.insert(0, src_path) | ||
|
||
# Rewrite the version file everytime | ||
write_version_py() | ||
|
||
try: | ||
setup( | ||
name = 'clawutil', | ||
maintainer = "Clawpack Developers", | ||
maintainer_email = "[email protected]", | ||
description = DOCLINES[0], | ||
long_description = "\n".join(DOCLINES[2:]), | ||
url = "http://www.clawpack.org", | ||
download_url = "https://github.com/clawpack/clawutil/tarball/master", | ||
license = 'BSD', | ||
classifiers=[_f for _f in CLASSIFIERS.split('\n') if _f], | ||
platforms = ["Linux", "Solaris", "Mac OS-X", "Unix"], | ||
configuration=configuration, | ||
package_dir={'':os.path.join('src','python')}, | ||
) | ||
|
||
finally: | ||
del sys.path[0] | ||
os.chdir(old_path) | ||
return | ||
|
||
|
||
if __name__ == '__main__': | ||
setup_package() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
version.py |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
#!/usr/bin/env python | ||
|
||
|
||
def configuration(parent_package='', top_path=None): | ||
from numpy.distutils.misc_util import Configuration | ||
|
||
config = Configuration('clawutil', parent_package, top_path) | ||
return config | ||
|
||
|
||
if __name__ == '__main__': | ||
from numpy.distutils.core import setup | ||
setup(**configuration(top_path='').todict()) |