awips2/pythonPackages/metpy/setup.py
mjames-upc 076392d3de metpy 0.3.0, numpy 1.10, cartopy 0.13.0, basemap 1.0.7
Former-commit-id: ff60eb3a7be83e96a595c2868243f45bfc6203f8
2016-03-13 18:05:31 -05:00

92 lines
3.3 KiB
Python

# Copyright (c) 2008-2015 MetPy Developers.
# Distributed under the terms of the BSD 3-Clause License.
# SPDX-License-Identifier: BSD-3-Clause
from __future__ import print_function
import sys
from setuptools import setup, find_packages, Command
import versioneer
class MakeExamples(Command):
description = 'Create example scripts from IPython notebooks'
user_options=[]
def initialize_options(self):
pass
def finalize_options(self):
pass
def run(self):
import glob
import os
import os.path
from nbconvert.exporters import python
from traitlets.config import Config
examples_dir = os.path.join(os.path.dirname(__file__), 'examples')
script_dir = os.path.join(examples_dir, 'scripts')
if not os.path.exists(script_dir):
os.makedirs(script_dir)
c = Config({'Exporter': {'template_file': 'examples/python-scripts.tpl'}})
exporter = python.PythonExporter(config=c)
for fname in glob.glob(os.path.join(examples_dir, 'notebooks', '*.ipynb')):
output, _ = exporter.from_filename(fname)
out_fname = os.path.splitext(os.path.basename(fname))[0]
out_name = os.path.join(script_dir, out_fname + '.py')
print(fname, '->', out_name)
with open(out_name, 'w') as outf:
outf.write(output)
ver = versioneer.get_version()
commands = versioneer.get_cmdclass()
commands.update(examples=MakeExamples)
# Need to conditionally add enum support for older Python
dependencies = ['matplotlib>=1.4', 'numpy>=1.8', 'scipy>=0.13.3', 'pint>=0.6']
if sys.version_info < (3, 4):
dependencies.append('enum34')
setup(
name='MetPy',
version=ver,
description='Collection of tools for reading, visualizing and'
'performing calculations with weather data.',
url='http://github.com/MetPy/MetPy',
maintainer='Unidata',
maintainer_email='support-python@unidata.ucar.edu',
license='BSD',
classifiers=['Development Status :: 3 - Alpha',
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.3',
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
'Topic :: Scientific/Engineering',
'Intended Audience :: Science/Research',
'Operating System :: OS Independent',
'License :: OSI Approved :: BSD License'],
keywords='meteorology weather',
packages=find_packages(exclude=['doc', 'examples']),
package_data={'metpy.plots': ['colortables/*.tbl', 'nexrad_tables/*.tbl',
'fonts/*.ttf']},
install_requires=dependencies,
extras_require={
'cdm': ['pyproj>=1.9.4'],
'dev': ['ipython[all]>=3.1'],
'doc': ['sphinx>=1.3', 'ipython[all]>=3.1'],
# Until we have 0.13.1 on pypi, need to limit shapely
'examples': ['cartopy>=0.13.0', 'shapely<=1.5.12', 'pillow'],
'test': ['pytest', 'pytest-runner']
},
cmdclass=commands,
download_url='https://github.com/metpy/MetPy/archive/v%s.tar.gz' % ver,)