Skip to content

Commit

Permalink
Merge 5dc0346 into 8936673
Browse files Browse the repository at this point in the history
  • Loading branch information
corranwebster committed Dec 23, 2014
2 parents 8936673 + 5dc0346 commit 0fb191d
Show file tree
Hide file tree
Showing 242 changed files with 1,258 additions and 901 deletions.
12 changes: 10 additions & 2 deletions .travis.yml
Expand Up @@ -2,20 +2,28 @@ language: python
python:
- '2.7_with_system_site_packages'
- 2.6
- 3.2
- 3.3
- 3.4
before_install:
- sudo apt-get update
- sudo apt-get install python-numpy swig
- source .travis_before_install
install:
- pip install cython
- pip install --install-option="--no-cython-compile" cython
- pip install coveralls
- pip install -r dev_requirements.txt
- python setup.py develop
before_script:
- mkdir testrunner
- cp .coveragerc testrunner/
- cd testrunner
script:
- if [[ $TRAVIS_PYTHON_VERSION == *_with_system_site_packages ]]; then ETS_TOOLKIT='qt4' coverage run -p -m nose.core -v chaco; fi
- if [[ $TRAVIS_PYTHON_VERSION == *_with_system_site_packages ]]; then ETS_TOOLKIT='wx' coverage run -p -m nose.core -v chaco; fi
- if [[ $TRAVIS_PYTHON_VERSION == *_with_system_site_packages ]]; then coverage combine; fi
- if [[ $TRAVIS_PYTHON_VERSION == '2.6' ]]; then coverage run -m nose.core -v chaco/tests; fi
- if [[ $TRAVIS_PYTHON_VERSION == '2.6' ]]; then coverage run -m nose.core -v chaco.tests; fi
- if [[ $TRAVIS_PYTHON_VERSION == 3.* ]]; then coverage run -m nose.core -v chaco.tests; fi
notifications:
email:
- travis-ci@enthought.com
Expand Down
18 changes: 17 additions & 1 deletion CHANGES.txt
Expand Up @@ -2,6 +2,22 @@
Chaco CHANGELOG
===============

What's new in Chaco 5.0.0
-------------------------

Change summary since 4.6.0

New Features

* Experimental Python 3 support. The Chaco codebase has been ported to run on
Python 2.6, 2.7, 3.2, 3.3 and 3.4. The basic test suite runs without error
on 3.2, 3.3 and 3.4 on Travis CI, but has not been extensively used yet.
Feedback appreciated. (PR#259)


What's new in Chaco 4.6.0
-------------------------

Change summary since 4.5.0

Fixes
Expand All @@ -20,7 +36,7 @@ New features/Improvements
* Added perceptual colormaps by Matteo Niccoli, Dave Green and Kenneth Moreland.
* Added `asynchronous_updates.py` demo that shows a pattern for generating
expensive plots while keeping the interface responsive (PR#170).
* Speeded up by 10x the data mappers of the `GridMapper` class (mapping of 2D data
* Speeded up by 10x the data mappers of the `GridMapper` class (mapping of 2D data
to/from screen space).


Expand Down
5 changes: 4 additions & 1 deletion chaco/abstract_colormap.py
@@ -1,8 +1,11 @@
""" Defines the base class for color maps
"""

from __future__ import absolute_import, division, print_function, unicode_literals

from traits.api import Enum, Event, HasTraits, Instance

from data_range_1d import DataRange1D
from .data_range_1d import DataRange1D

class AbstractColormap(HasTraits):
"""
Expand Down
5 changes: 3 additions & 2 deletions chaco/abstract_data_range.py
Expand Up @@ -2,11 +2,13 @@
Defines the base class for data ranges.
"""

from __future__ import absolute_import, division, print_function, unicode_literals

# Enthought library imports
from traits.api import Event, Float, HasTraits, Instance, List, Trait

# Local relative imports
from abstract_data_source import AbstractDataSource
from .abstract_data_source import AbstractDataSource


class AbstractDataRange(HasTraits):
Expand Down Expand Up @@ -118,4 +120,3 @@ def _refresh_bounds(self):
This method is called only if one of the bounds settings is "auto".
"""
raise NotImplementedError

4 changes: 3 additions & 1 deletion chaco/abstract_data_source.py
Expand Up @@ -2,10 +2,12 @@
Defines the AbstractDataSource class.
"""

from __future__ import absolute_import, division, print_function, unicode_literals

from traits.api import Bool, Dict, Event, HasTraits

# Local relative imports
from base import DimensionTrait
from .base import DimensionTrait

class AbstractDataSource(HasTraits):
""" This abstract interface must be implemented by any class supplying data
Expand Down
3 changes: 3 additions & 0 deletions chaco/abstract_mapper.py
@@ -1,5 +1,8 @@
""" Defines the base class for mappings.
"""

from __future__ import absolute_import, division, print_function, unicode_literals

# Major library imports
from numpy import array

Expand Down
4 changes: 3 additions & 1 deletion chaco/abstract_overlay.py
Expand Up @@ -4,10 +4,12 @@
data-related plot items and the decorators on them.
"""

from __future__ import absolute_import, division, print_function, unicode_literals

from enable.api import Component
from traits.api import Instance

from plot_component import PlotComponent
from .plot_component import PlotComponent


class AbstractOverlay(PlotComponent):
Expand Down
12 changes: 7 additions & 5 deletions chaco/abstract_plot_data.py
@@ -1,5 +1,8 @@
""" Defines the base class for plot data.
"""

from __future__ import absolute_import, division, print_function, unicode_literals

from traits.api import Bool, Event, HasTraits


Expand Down Expand Up @@ -52,9 +55,9 @@ def get_data(self, name):
def del_data(self, name):
""" Deletes the array specified by *name*, or raises a KeyError if
the named array does not exist.
If the instance is not writable, then this must do nothing.
"""
raise NotImplementedError

Expand Down Expand Up @@ -88,10 +91,10 @@ def set_data(self, name, new_data, generate_name=False):
def update_data(self, *args, **kwargs):
"""
Update a set of data values, firing only one data_changed event.
This function has the same signature as the dictionary update()
method.
"""
raise NotImplementedError

Expand Down Expand Up @@ -126,4 +129,3 @@ def __delitem__(self, name):

def update(self, *args, **kwargs):
self.update_data(*args, **kwargs)

5 changes: 4 additions & 1 deletion chaco/abstract_plot_renderer.py
@@ -1,10 +1,13 @@
""" Defines a base class for plot renderers.
"""

from __future__ import absolute_import, division, print_function, unicode_literals

# Enthought library imports.
from traits.api import Enum

# Local relative imports
from plot_component import PlotComponent
from .plot_component import PlotComponent

class AbstractPlotRenderer(PlotComponent):
""" This is the minimal interface that all plot renderers must support.
Expand Down
142 changes: 72 additions & 70 deletions chaco/api.py
Expand Up @@ -3,107 +3,109 @@
# This just imports the key datamodel classes into the top-level package
# namespace for convenience.

from base import NumericalSequenceTrait, PointTrait, ImageTrait, DimensionTrait, \
from __future__ import absolute_import, division, print_function, unicode_literals

from .base import NumericalSequenceTrait, PointTrait, ImageTrait, DimensionTrait, \
SortOrderTrait, bin_search, reverse_map_1d, right_shift, \
left_shift, sort_points, find_runs, arg_find_runs, \
point_line_distance

# Data model
from abstract_data_source import AbstractDataSource
from array_data_source import ArrayDataSource
from grid_data_source import GridDataSource
from image_data import ImageData
from multi_array_data_source import MultiArrayDataSource
from point_data_source import PointDataSource
from abstract_data_range import AbstractDataRange
from base_data_range import BaseDataRange
from data_range_1d import DataRange1D
from data_range_2d import DataRange2D
from .abstract_data_source import AbstractDataSource
from .array_data_source import ArrayDataSource
from .grid_data_source import GridDataSource
from .image_data import ImageData
from .multi_array_data_source import MultiArrayDataSource
from .point_data_source import PointDataSource
from .abstract_data_range import AbstractDataRange
from .base_data_range import BaseDataRange
from .data_range_1d import DataRange1D
from .data_range_2d import DataRange2D

# Mappers
from abstract_mapper import AbstractMapper
from base_1d_mapper import Base1DMapper
from grid_mapper import GridMapper
from log_mapper import LogMapper
from linear_mapper import LinearMapper
from color_mapper import ColorMapper, ColorMapTemplate
from transform_color_mapper import TransformColorMapper
from .abstract_mapper import AbstractMapper
from .base_1d_mapper import Base1DMapper
from .grid_mapper import GridMapper
from .log_mapper import LogMapper
from .linear_mapper import LinearMapper
from .color_mapper import ColorMapper, ColorMapTemplate
from .transform_color_mapper import TransformColorMapper

# Colormaps and color palettes
from default_colormaps import *
from default_colors import *
from .default_colormaps import *
from .default_colors import *

# Visual components
from abstract_plot_renderer import AbstractPlotRenderer
from abstract_overlay import AbstractOverlay
from base_plot_container import BasePlotContainer
from base_plot_frame import BasePlotFrame
from cross_plot_frame import CrossPlotFrame
from data_view import DataView
from simple_plot_frame import SimplePlotFrame
from plot_component import PlotComponent
from plot_graphics_context import PlotGraphicsContext, PlotGraphicsContextMixin
from selectable_overlay_container import SelectableOverlayPlotContainer
from plot_containers import OverlayPlotContainer, HPlotContainer, VPlotContainer, \
from .abstract_plot_renderer import AbstractPlotRenderer
from .abstract_overlay import AbstractOverlay
from .base_plot_container import BasePlotContainer
from .base_plot_frame import BasePlotFrame
from .cross_plot_frame import CrossPlotFrame
from .data_view import DataView
from .simple_plot_frame import SimplePlotFrame
from .plot_component import PlotComponent
from .plot_graphics_context import PlotGraphicsContext, PlotGraphicsContextMixin
from .selectable_overlay_container import SelectableOverlayPlotContainer
from .plot_containers import OverlayPlotContainer, HPlotContainer, VPlotContainer, \
GridPlotContainer
GridContainer = GridPlotContainer

from label import Label
from plot_label import PlotLabel
from legend import Legend
from tooltip import ToolTip
from data_label import DataLabel
from lasso_overlay import LassoOverlay
from color_bar import ColorBar
from text_box_overlay import TextBoxOverlay
from scatter_inspector_overlay import ScatterInspectorOverlay
from .label import Label
from .plot_label import PlotLabel
from .legend import Legend
from .tooltip import ToolTip
from .data_label import DataLabel
from .lasso_overlay import LassoOverlay
from .color_bar import ColorBar
from .text_box_overlay import TextBoxOverlay
from .scatter_inspector_overlay import ScatterInspectorOverlay

# Renderers
from barplot import BarPlot
from base_2d_plot import Base2DPlot
from base_xy_plot import BaseXYPlot
from scatterplot import ScatterPlot, render_markers
from image_plot import ImagePlot
from cmap_image_plot import CMapImagePlot
from contour_line_plot import ContourLinePlot
from contour_poly_plot import ContourPolyPlot
from lineplot import LinePlot
from colormapped_scatterplot import ColormappedScatterPlot
from colormapped_selection_overlay import ColormappedSelectionOverlay
from polygon_plot import PolygonPlot
from errorbar_plot import ErrorBarPlot
from filled_line_plot import FilledLinePlot
from quiverplot import QuiverPlot
from candle_plot import CandlePlot
from multi_line_plot import MultiLinePlot
from jitterplot import JitterPlot
from variable_size_scatterplot import VariableSizeScatterPlot
from horizon_plot import BandedMapper, HorizonPlot
from .barplot import BarPlot
from .base_2d_plot import Base2DPlot
from .base_xy_plot import BaseXYPlot
from .scatterplot import ScatterPlot, render_markers
from .image_plot import ImagePlot
from .cmap_image_plot import CMapImagePlot
from .contour_line_plot import ContourLinePlot
from .contour_poly_plot import ContourPolyPlot
from .lineplot import LinePlot
from .colormapped_scatterplot import ColormappedScatterPlot
from .colormapped_selection_overlay import ColormappedSelectionOverlay
from .polygon_plot import PolygonPlot
from .errorbar_plot import ErrorBarPlot
from .filled_line_plot import FilledLinePlot
from .quiverplot import QuiverPlot
from .candle_plot import CandlePlot
from .multi_line_plot import MultiLinePlot
from .jitterplot import JitterPlot
from .variable_size_scatterplot import VariableSizeScatterPlot
from .horizon_plot import BandedMapper, HorizonPlot

# Plot factories
from plot_factory import create_bar_plot, create_line_plot, create_scatter_plot, \
from .plot_factory import create_bar_plot, create_line_plot, create_scatter_plot, \
create_polar_plot, add_default_axes, add_default_grids

from abstract_plot_data import AbstractPlotData
from array_plot_data import ArrayPlotData
from plot import Plot
from toolbar_plot import ToolbarPlot
from .abstract_plot_data import AbstractPlotData
from .array_plot_data import ArrayPlotData
from .plot import Plot
from .toolbar_plot import ToolbarPlot

# Axis
from axis import PlotAxis
from label_axis import LabelAxis
from ticks import AbstractTickGenerator, DefaultTickGenerator, auto_ticks, auto_interval, \
from .axis import PlotAxis
from .label_axis import LabelAxis
from .ticks import AbstractTickGenerator, DefaultTickGenerator, auto_ticks, auto_interval, \
tick_intervals, log_auto_ticks, auto_bounds, calc_bound

# Grid
from grid import PlotGrid
from .grid import PlotGrid

# Style stuff
#from stylable import Stylable
#from stylesheets import Style, StyleSheet

# Tools
from abstract_controller import AbstractController
from .abstract_controller import AbstractController

# Importing various symbols into the Chaco namespace for backwards
# compatibility. New code should directly import from Enable.
Expand Down
8 changes: 5 additions & 3 deletions chaco/array_data_source.py
@@ -1,5 +1,7 @@
""" Defines the ArrayDataSource class."""

from __future__ import absolute_import, division, print_function, unicode_literals

# Major library imports
from numpy import array, isfinite, ones, ndarray
import numpy as np
Expand All @@ -8,8 +10,8 @@
from traits.api import Any, Constant, Int, Tuple

# Chaco imports
from base import NumericalSequenceTrait, reverse_map_1d, SortOrderTrait
from abstract_data_source import AbstractDataSource
from .base import NumericalSequenceTrait, reverse_map_1d, SortOrderTrait
from .abstract_data_source import AbstractDataSource


def bounded_nanargmin(arr):
Expand Down Expand Up @@ -251,7 +253,7 @@ def _compute_bounds(self, data=None):
data_len = 0
try:
data_len = len(data)
except:
except Exception:
pass
if data_len == 0:
self._min_index = 0
Expand Down

0 comments on commit 0fb191d

Please sign in to comment.