8000 Dep refactor by mrterry · Pull Request #2360 · matplotlib/matplotlib · GitHub
[go: up one dir, main page]

Skip to content

Dep refactor #2360

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 14 commits into from
107 changes: 63 additions & 44 deletions setup.py
< 8000 td class="blob-code blob-code-addition js-file-line"> Spacer = namedtuple('Spacer', ['text']) < 8000 /tr> 9473
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
use_setuptools()

import sys
from collections import namedtuple

# distutils is breaking our sdists for files in symlinked dirs.
# distutils will copy if os.link is not available, so this is a hack
Expand Down Expand Up @@ -55,52 +56,69 @@

# These are the packages in the order we want to display them. This
# list may contain strings to create section headers for the display.


# these packages are dependencies for other packages
# give them names so that we can reference them later
numpy_pkg = setupext.Numpy()
cxx_pkg = setupext.CXX()
libagg_pkg = setupext.LibAgg()
freetype_pkg = setupext.FreeType()

mpl_packages = [
'Building Matplotlib',
Spacer('Building Matplotlib'),
setupext.Matplotlib(),
setupext.Python(),
setupext.Platform(),
'Required dependencies and extensions',
setupext.Numpy(),

Spacer('Required dependencies and extensions'),
numpy_pkg,
setupext.Dateutil(),
setupext.Tornado(),
setupext.Pyparsing(),
setupext.CXX(),
setupext.LibAgg(),
setupext.FreeType(),
setupext.FT2Font(),
setupext.Png(),
setupext.Image(),
setupext.TTConv(),
setupext.Path(),
setupext.Contour(),
setupext.Delaunay(),
setupext.Tri(),
'Optional subpackages',
cxx_pkg,
libagg_pkg,
freetype_pkg,
setupext.FT2Font(dependencies=[freetype_pkg, numpy_pkg, cxx_pkg]),
setupext.Png(dependencies=[numpy_pkg, cxx_pkg]),
setupext.Image(dependencies=[numpy_pkg, libagg_pkg, cxx_pkg]),
setupext.TTConv(dependencies=[numpy_pkg, cxx_pkg]),
setupext.Path(dependencies=[numpy_pkg, libagg_pkg, cxx_pkg]),
setupext.Contour(dependencies=[numpy_pkg]),
setupext.Delaunay(dependencies=[numpy_pkg]),
setupext.Tri(dependencies=[numpy_pkg]),

Spacer('Optional subpackages'),
setupext.SampleData(),
setupext.Toolkits(),
setupext.Tests(),
'Optional backend extensions',

Spacer('Optional backend extensions'),
# These backends are listed in order of preference, the first
# being the most preferred. The first one that looks like it will
# work will be selected as the default backend.
setupext.BackendMacOSX(),
setupext.BackendMacOSX(dependencies=[numpy_pkg, libagg_pkg, cxx_pkg]),
setupext.BackendQt4(),
setupext.BackendGtk3Agg(),
setupext.BackendGtk3Cairo(),
setupext.BackendGtkAgg(),
setupext.BackendTkAgg(),
setupext.BackendGtkAgg(dependencies=[libagg_pkg, cxx_pkg, numpy_pkg]),
setupext.BackendTkAgg(dependencies=[numpy_pkg, libagg_pkg, cxx_pkg]),
setupext.BackendWxAgg(),
setupext.BackendGtk(),
setupext.BackendAgg(),
setupext.BackendGtk(dependencies=[numpy_pkg]),
setupext.BackendAgg(dependencies=[numpy_pkg,
libagg_pkg,
freetype_pkg,
cxx_pkg]),
setupext.BackendCairo(),
setupext.Windowing(),
'Optional LaTeX dependencies',

Spacer('Optional LaTeX dependencies'),
setupext.DviPng(),
setupext.Ghostscript(),
setupext.LaTeX(),
setupext.PdfToPs()
]
setupext.PdfToPs(),
]


classifiers = [
Expand Down Expand Up @@ -137,28 +155,29 @@
required_failed = []
good_packages = []
for package in mpl_packages:
if isinstance(package, str):
if isinstance(package, Spacer):
print_raw('')
print_raw(package.upper())
else:
try:
result = package.check()
if result is not None:
message = 'yes [%s]' % result
print_status(package.name, message)
except setupext.CheckFailed as e:
msg = str(e).strip()
if len(msg):
print_status(package.name, 'no [%s]' % msg)
else:
print_status(package.name, 'no')
if not package.optional:
required_failed.append(package)
print_raw(package.text.upper())
continue

try:
result = package.check()
if result is not None:
message = 'yes [%s]' % result
print_status(package.name, message)
except setupext.CheckFailed as e:
msg = str(e).strip()
if len(msg):
print_status(package.name, 'no [%s]' % msg)
else:
good_packages.append(package)
if isinstance(package, setupext.OptionalBackendPackage):
if default_backend is None:
default_backend = package.name
print_status(package.name, 'no')
if not package.optional:
required_failed.append(package)
else:
good_packages.append(package)
if isinstance(package, setupext.OptionalBackendPackage):
if default_backend is None:
default_backend = package.name
print_raw('')


Expand Down
Loading
0