forked from Unidata/MetPy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.py
91 lines (74 loc) · 3.13 KB
/
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# 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 IPython.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='[email protected]',
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']},
test_suite="nose.collector",
install_requires=dependencies,
extras_require={
'cdm': ['pyproj>=1.9.4'],
'dev': ['ipython[all]>=3.1'],
'doc': ['sphinx>=1.3', 'ipython[all]>=3.1'],
'examples': ['cartopy>=0.13','pillow'],
'test': ['nose']
},
cmdclass=commands,
download_url='https://github.com/metpy/MetPy/archive/v%s.tar.gz' % ver,)