Skip to content
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

BUG: Fixes color distortion for flat-facing geometries #628

Merged
merged 2 commits into from Nov 28, 2017

Conversation

ElDeveloper
Copy link
Member

Geometries that are flat-facing would suffer from color distortion. To
fix this, I've added a small amount of rotation to those geometries. And
included a few new geometries.

Fixes #544

Geometries that are flat-facing would suffer from color distortion. To
fix this, I've added a small amount of rotation to those geometries. And
included a couple new geometries.

Fixes biocore#544
@coveralls
Copy link

coveralls commented Nov 28, 2017

Coverage Status

Coverage remained the same at 94.184% when pulling d2859de on ElDeveloper:issue-544 into fd69b19 on biocore:new-api.

@ElDeveloper
Copy link
Member Author

The screenshots below show examples of a bunch of different geometries and how the colors are much more homogeneous now:

New

screen shot 2017-11-27 at 11 45 58 pm

Old

screen shot 2017-11-27 at 11 48 58 pm

@coveralls
Copy link

Coverage Status

Coverage remained the same at 94.184% when pulling 14ebfa6 on ElDeveloper:issue-544 into fd69b19 on biocore:new-api.

1 similar comment
@coveralls
Copy link

Coverage Status

Coverage remained the same at 94.184% when pulling 14ebfa6 on ElDeveloper:issue-544 into fd69b19 on biocore:new-api.

@ElDeveloper
Copy link
Member Author

Tests are failing because of a new release of flake8, merge #626 first.

Copy link
Collaborator

@antgonza antgonza left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Small comment


/**
*
* Return a correctly sized geometry that matches the plotting space
*
* @param {string} shapeName One of 'Sphere', 'Cube', 'Cone', 'Icosahedron'
* @param {string} shapeName One of 'Sphere', 'Square', 'Cone', 'Icosahedron'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here you are missing 2, right? OCTAHEDRON and RING

Addresses @antgonza's comment.

The previous commit also fixes biocore#601 since there's no geometries are no
longer cubes.
@coveralls
Copy link

coveralls commented Nov 28, 2017

Coverage Status

Coverage remained the same at 94.184% when pulling b11e14a on ElDeveloper:issue-544 into f002f2e on biocore:new-api.

1 similar comment
@coveralls
Copy link

Coverage Status

Coverage remained the same at 94.184% when pulling b11e14a on ElDeveloper:issue-544 into f002f2e on biocore:new-api.

@antgonza antgonza merged commit a97f7a6 into biocore:new-api Nov 28, 2017
@ElDeveloper ElDeveloper changed the title BUG:Fixes a color distortion for flat-facing geometries BUG: Fixes color distortion for flat-facing geometries Nov 28, 2017
antgonza added a commit that referenced this pull request Feb 14, 2020
* BLD: beta 4 🐧🐧🐧🐧

* DOC: Add SciPy 2016 presentation notebook

* ENH: Improve icons for context menus

* DOC: Improve installation documentation

This updates the INSTALL.md document to reflect the recent changes we've
made, additionally it also removes the `installation_index.html`, and
points any existing links to that document to INSTALL.md.

* BUG/WIP: Fix bug with axis reorientation

Code is a bit ugly and inefficient but works for the time being.

* DOC: Added additional explanatory documentation

* WIP: Improve rotation of axes

* BUG: Fix problem with dimension flipping

* STY: Fix stylistic JavaScript problems

* TST: Improve tests for decomposition view.

* DOC: Add reference to an issue.

* TST: A test was leaving a folder un-removed

* ENH/API/TST: Surgically add EmperorViewController

This class gets rid of a bit of redundancy, for cases when a controller
needs to operate on a decomposition view dictionary, but doesn't need to
be controlled by a metadata category.

* ENH: Use EmperorViewController in AxesController

* ENH/TST: Add missing checks and getActiveView

* DOC: Fix typos/mistakes

* initial commit

* fixing tests

* HACK: Add extra attribute to denote text

THREE.Sprite objects can't properly be rendered when we use the
SVGRenderer, hence we add an extra attribute to the objects we return
from makeLabel. In this attribute text is stored, such that when
rendering we can check for its presence, and add the appropriate SVG
element.

* WIP

* API: Remove the concept of active views

No views are active anymore, they are all present, the menu only
controls different features, that's it.

Additionally I fixed the setMetadataField and getMetadataField fields to
actually work as expected.

* Additional fixes for axes view controller

* TST: Fix additional tests

* MAINT: Better naming

* adding text

* WIP

* addressing @ElDeveloper comments

* fixing tests

* API: Isolate the abstract base view controller

This class now lives in its own module `abc-view-controller.js`.

cc @iprotsyuk

* ENH: Add the ability to load new decompositions

New decompositions can be loaded from the main controller, these update
the view controllers and the view controllers in return are capable of
adding new metadata categories in themselves.

There's still a few bugs, the main one originating from the fact that
when we update the metadata selection menu, we are re-building the
entire menu, instead of only inserting the needed keys, hence we'll need
to do something a bit more sophisticated.

Note also that the setMetadataField method in the
EmperorAttributeViewController class does not account for multiple
decompositions and will instead select the first decomposition view
where the category is found. This should instead be done on a view by
view basis, where the user can specify what the view it is that they
want to set the metadata category. Which leads to the problem of
selecting the appropriate value from the menu when this is needed. We
need to navigate to the appropriate element under the appropriate option
group to do this.

* ENH: Fix bug where category selection would fail

Make metadata refreshing smarter such that it only adds needed
categories into the screen.

We still need to fix the size of the additional decomposition views, and
make it such that the controller won't let you add a view that's
repeated.

* ENH: Add working version of refreshMetadata

* DOC: Formalize docstrings

* DOC: Add missing documentation to controller.js

* DOC: Add documentation to refresh

* TST: Add tests for ScenePlotView3D.refresh

* DOC: Improve docs for refresh

* TST: Add tests for a variety of methods

* DOC: Improve docs.

* STY: Fix gjslint errors

* DOC: Standardize documentation

* API: Rename refresh to addDecompositionsToScene

* ENH: Add the ability to display custom axes

* ENH: Add tests for custom_axes

* ENH: Add validate_and_process_custom_axes

To avoid having the interface hang

* ENH: Fix tests for merge and use validate...

* BUG: Add formatted column name

* BUG: Bring back the labels

* DOC: Expand documentation

Addresses @antgonza's comment.

* STY: Flake 8 😡

* ENH: Use numpy better and add extra message

* PRE-REL: Pre-release for QIIME2 workshop

* MAINT: Fix examples

Since we added the SVGRenderer as a dependency the main config broke,
this should fix it.

* Fix examples

* ENH/TST: Sort metadata columns

* ENH:Do not initialize grids if N > 1000

* ENH: Move autorotate updates to render

* ENH: Add special casing for large datasets.

When large datasets are loaded no metadata category is automatically
selected, they are all left untouched and additional controllers are
deactivated to prevent user errors.

* image files

* TST/BUG: Fix some broken tests and test setEnabled

* DOC: Better document the name of some tests

* TST/BUG: Add more tests and fix index.html

* TST: Add test for large datasets

* STY: Fix style in tests

* ENH: Add the ability to reset controller settings

* TST: Add tests for toJSON and fromJSON

* ENH: Use proper API

* ENH: Hide unnecessary controllers

* DOC: Remove outdated docs

* DOC: Update readme document

* DOC: Add placeholders for documentation.

* BUG: Fix bug with the docs

* DOC: Add first pass of the examples document

* DOC: Remove redundant section.

* DOC: Add more explanations

* DOC: Delete outdated files

* ENH/TST:Disable auto-select metadata and fix tests

* DOC: Address @antgonza's comments

* BUG: Fix problem with '1.0' getting casted to 1

* TST: Fix tests for splitNumeric

* TST: Add extra test

* TST: Fix tests

* ENH: Checkboxes no longer require extra click (#558)

Previously, to hide/show sets of samples, you would need to click on the
visibility grid to "confirm" the change, this has been fixed to
auto-confirm. Since we were using the original minified editor file,
I've modified the code in-place, but we can re-add the un-minified
version if others think it's appropriate (no strong feelings).

* ENH: Add attributes to change width and height (#559)

These attributes modify the size of the plot when presented in a Jupyter
notebook.

* BLD: Fix failing travis builds (#566)

* ENH: Remove the requirement to shift+right click (#565)

The plot's context menu is now shown without the need of holding shift
and right-clicking. With this patch, the user will need to *only* right
click to show the context menu.

Fixes #563

* ENH: Add context menu item to recenter the camera (#561)

This adds a new option that allows users to go back to the initial
camera position and rotation.

* ENH: Save mapping file and coordinates as JSON

The data is now written using JINJA's tojson filter, this makes the
translation a bit more natural, specially for numbers in scientific
notation.

* BUG: Fix bug with Pandas 0.17.1 💀

* Space normalization (#570)

* ENH: Normalize the coordinate spaces

Instead of the coordinates having an arbitrary size, we divide every
coordinate by the maximum absolute value present in the coordinates.

* TST: Fix tests to account for space normalization

Fixes #542

* Add option to create a large screenshot 📸 (#571)

* ENH: Add megascreenshot

* BUG: Fix problem with labels not being colored

* TST: Improve debuggability of javascript tests

This commit also fixes a problem with the unit tests.

* BUG: Fix problem with axes labels (#568)

* ENH: Deal better with scikit-bio axes names

Files produced by scikit-bio <=0.5.x do not have informative axes names,
this will fix that problem by providing a bit of a more informative name
or using the abbreviated name of the ordination method.

Fixes #562

* DOC: Fix typos in comments

* ENH: Hide color selector upon palette click

* ENH/BUG: Fix problems displaying scree plot

* BUG: Add programmatic creation of menus

* DOC: Add docstring for private method

* BUG: Fix bug with axes controller

* UI: Remove contextmenu for scree plot

Fixes #562

* STY: Fix JS styling

* REL: Bump version numbers for beta 6

* REL: beta6-dev

* BUG: Fix typo in canvas-toBlob

* REL: Bump strings for beta 7 (#575)

* REL: beta7 development cycle (#576)

* DOC: Update dead link to gigascience (#577)

Thanks @mortonjt for pointing this out.

* BLD: Update THREE.js to r83 (#582)

* BUG: Resolve stable URLs depending on package version (#578)

* ENH: Resolve stable URLs depending on the version

* TST: Fix tests for different base URL

* BUG: setuptools appends a number to the version

* STY: Improve styling

* ENH: Warn users when they use remote=True

* ENH: Allow users to set custom visualization settings from the Python API (#579)

* API/TST: Add color_by method and stub methods

* BUG: Fix problem in build.py

* TST: Improve tests

* API/TST: Add shape and visibility methods

Also fix some bugs.

* TST/API: Add methods to scale by

* ENH: Loading from JSON to tolerate null/undefined

* ENH: Add custom settings

* DOC: Documentation updates

* ENH: Remove unnecessary attributes

* ENH/API: Move AxesViewController now uses bools

The _flippedAxes misleadingly used an array of integers, however the
documentation and the semantics indicated that these were boolean
values, the problem was caused by the fact that the XOR operator returns
an integer.

* TST: Reorder tests

* TST: Check for the return value

* ENH/TST: Add methods to modify axes and background

* ENH/TST: Improve makeLabel to use CSS color names

* ENH: Add a "ready" callback for all controllers

* BUG: Fix bug with background color and axes

* DOC/BUG: Fix documentation

* DOC/STY: Improve documentation

* ENH/API: Add settings property and handling

* TST/ENH: Improve dealing with empty data

* ENH: Add visibilities can negate and do lists

The visibilities argument can now be interpreted from a list, and the
method includes a negate argument that inverts the visibilities.

* DOC: Improve documentation for settings attribute

* BUG/BLD: Fix problem with labels being clipped (#590)

* BUG/BLD: Fix problem with labels being clipped

Reported by @ebolyen, long axes labels would be clipped. To fix this
I've made the font canvas bigger, so that it can at least fit 25
characters, after which it will add `...` at the end of the label (this
logic was already in place but was not noticeable due to the bug).

I've also upped the JINJA2 version to at least be 2.9.

* BLD/TST: Cap Sphinx version

* REL: Release beta8 (#591)

Reported by @ebolyen, long axes labels would be clipped. To fix this
I've made the font canvas bigger, so that it can at least fit 25
characters, after which it will add `...` at the end of the label (this
logic was already in place but was not noticeable due to the bug).

I've also upped the JINJA2 version to at least be 2.9.

* DEV: Bump version strings to beta8-dev

* ENH: Hide axes labels and lines (#595)

The color slector for the axes labels and lines can now be set to empty
(or null) in which case will hide the elements.

Fixes #248.

* ENH: Jackknifed Plots in new-api (#587)

* ENH: Factor out the processing of coordinates

* REF: Rework the underlying coordinate processing

Instead of doing everything from scratch and porting things slowly from
the previous version of emperor, for now, we will use the functions that
are available in util.py

* BUG: Fix bug with confidence intervals

There was a bug in the loop that formatted the data into the legacy
structures. It was copying the "master" ordination over and over.

* BUG: Fix small problem with pandas series

* API: API changes to DecompositionModel

It makes more sense to initialize the object with a dictionary of
objects instead of arguments.

* TST: Fix tests to use the new DecompositionModel

* ENH: ScenePlotView3D now deals with CIs

* ENH: Make ColorViewController aware of CIs

* ENH: VisibilityController is now aware of CIs

* ENH: Improve DecompositionView

* STY: Stylistic changes to the JavaScript code

* ENH: Confidence intervals can now be serialized

* ENH/TST: Add test for jackknifing

* BUG: Fix bad merge

* BUG/TST: Fix problem with settings string

* DBG: Experimental numpy modernization

* DBG: Travis pl0x

* TST: Improve tests

We only test two cases with exact formatting of the HTML/JavaScript,
most of the data processing is tested at the Python level, this resulted
in the addition of a get_template method.

* TST: Remove unused text and fix test name

* BUG: Fix bug in util.py

* BLD: Fix .travis.yml

* BUG/TST: User values because old pandas 🐼

* TST: add more tests

* DOC: Add Jackknifed example

* DOC: Add extra notes to all the notebooks

As per @antgonza's request.

* DOC: Remove plots from example notebooks

After debugging a problem with @antgonza, we noticed that the main
problem came from the fact that a pre-loaded plot would break the
environment for any future plots. This patch removes all saved plots and
adds a small description suggesting that users change remote=True if
they wish to share their plots via Github.

* ENH: UI improvements, tooltips and more!

Adds a few tooltips to describe the functionality of some UI elements.
In addition, attribute editors no longer require two clicks to start
changing size, color, etc.

Fixes #586

* ENH: Modify the tooltips for the Axes view

Add tooltips to the scree plot.

* ENH: Improve tooltip display

* ENH: Add cursor types to shape and visibility

* ENH: Fix stylistic problems

* ENH: More UI improvements

* ENH: Add opacity controller and reorder tabs (#596)

* ENH: Add opacity controller and reorder tabs

* REFACTOR: Create a new ABC for scalars

Create a new base class to serve as the parent of both
OpacityViewController and of ScaleViewController.

* ENH: Stylistic changes

* TST: Fix broken tests

* TST: Add tests

* STY: Fix stylistic changes

* ENH/TST/API: Add opacity methods to Emperor

* TST: Fix broken tests due to merge conflicts

* Welcome to flatland (add 2D plots) (#600)

* ENH: Add working version of 2D plots

* TST: Fix broken tests

* TST: Cleanup tests

* TST: Cleanup tests

* TST: Add tests for AxesViewController

* TST: Add test for ScenePlotView3D

* ENH: Fix problem with flipping axes in 2D

* TST: Add tests to DecompositionView

* STY: Fix stylistic problems in JS

Fixes #303

* Update sceneplotview3d.js

* Update sceneplotview3d.js

* Update three.js and bug fixes (#602)

* ENH/BLD: Update to the latest version of THREE

* BUG: Fix bug with mixed color types

The code in emperor was mixing color representations, as hexadecimal
numbers and as strings. Which lead to the AxesViewController to stop
working when colors were saved as numbers and then tried to be loaded as
strings. This patch changes all properties to always deal with CSS-like
strings.

In addition, in the latest version of three.js the renderer's clearColor
property was deprecated and replaced by the scene's background property.

* BUG: Fix problems with SVGRenderer and opacity

* BUG: Fix problem with default color for scene

* REL: Release beta 9 (#603)

* REL: Release beta 9

* MAINT: Remove forgotten console.log

* REL: Bump version strings (#606)

* BUG: Avoid double/triple/quadruple clicks (#607)

* BUG: Avoid double/triple/quadruple clicks

Fixes a problem with attribute editors requiring more than a click to
reactivate after changing value. For example users could change the
color of "Category A", after changing the color and then clicking on the
same "Category A" to change the color again, users would sometimes need
to click awkwardly until the editor reappeared on screen.

This bug affected all editors (color, visibility, scale and shape).

Fixes #586

* REL: Bump version strings

* Adds a banner with number of visible elements (#608)

* ENH: Make visible count work in DecompositionView

This property was available but not usable.

* ENH: Add visible count to emperor

Fixes #594

* STY: Fix stylistic changes

* REL: Bump version strings to beta10 (#609)

* REL: Bump version strings (#611)

* REL: Bump version strings for beta 11

* BUG: Reference to undeclared variable (#612)

* Explicitly load underscore.js and bump version strings (#614)

* REL: Bump version strings

* BUG: Explicitly load underscore.js

ScenePlotView wasn't explicitly loading underscore.js, so this
dependency was loaded from whatever was already available in the
environment, specifically when a plot was loaded in the notebook Emperor
would load underscore.js from that env.  In recent versions of Jupyter
they moved from underscore.js to lodash.js, and while the two libraries
are compatible, they are not 100% compatible, namely _.any is no longer
defined.

Seems like this problem is only restricted to Jupyter notebook renders,
from testing in view.qiime2.org, and standalone plots everything looks
fine.

* BUG: Fix bug where plot would rotate slightly (#617)

The controls only need to be updated if the rotation is enabled.

Fixes #605

* AnimationsViewController (#619)

* WIP: First steps of the animation controller

* WIP: Add trajectory and gradient menus

* ENH: Add GUI elements needed for animations

* WIP

* STY: Adhere to linter's recommendations

* API: Update to newer version

* WIP: Work in progress towards animations

* ENH: Add methods to animations controller

* ENH: Fix problem with coordinate source

* TST: Update require.js configuration

* Get AnimationsController functional

Adds some checks to make sure the play/pause buttons are not usable
unless the controller is enabled.

* MAINT: Cleanup of some commented blocks

* Better use of API

* Fix play/pause buttons

* Remove maximumN limit

* ENH: Improve animations controller UI logic

* BUG: Add the ability to save animations to json

* API: Rename _isPlaying to playing

* DOC: Add documentation to all the methods

* BUG: Fix left-pad delay and capping

All trajectories, regardless of their starting point in time would
always start at the same time. This has been now fixed.

* BUG: Don't remove maxN

* BUG: Fix bug in trajectory filtering

* TST: Fix tests

* TST: Add setup for animations controller tests

* API: check if a metadata category is present

* TST: Add tests for animation controller

* STY: Fix JS style

* API: Add animations_by method to Python API

* BUG: Fix bug with UI elements loading

* Cleanup

* STY: Cleanup draw.js

* TST: Split tests in smaller sub-tests

* Fix tests bug and add the ability to change traces' radius (#622)

* WIP: First steps of the animation controller

* WIP: Add trajectory and gradient menus

* ENH: Add GUI elements needed for animations

* WIP

* STY: Adhere to linter's recommendations

* API: Update to newer version

* WIP: Work in progress towards animations

* ENH: Add methods to animations controller

* ENH: Fix problem with coordinate source

* TST: Update require.js configuration

* Get AnimationsController functional

Adds some checks to make sure the play/pause buttons are not usable
unless the controller is enabled.

* MAINT: Cleanup of some commented blocks

* Better use of API

* Fix play/pause buttons

* Remove maximumN limit

* ENH: Improve animations controller UI logic

* BUG: Add the ability to save animations to json

* API: Rename _isPlaying to playing

* DOC: Add documentation to all the methods

* BUG: Fix left-pad delay and capping

All trajectories, regardless of their starting point in time would
always start at the same time. This has been now fixed.

* BUG: Don't remove maxN

* BUG: Fix bug in trajectory filtering

* TST: Fix tests

* TST: Add setup for animations controller tests

* API: check if a metadata category is present

* TST: Add tests for animation controller

* STY: Fix JS style

* API: Add animations_by method to Python API

* BUG: Fix bug with UI elements loading

* Cleanup

* STY: Cleanup draw.js

* TST: Split tests in smaller sub-tests

* ENH: Add radius for animated traces

And fix some bugs

* Add color controls for animations controller (#623)

* ENH: Add color grid for animation traces

* ENH: Update animations_by method to use colors

* REL: bump version strings for beta 12 (#624)

* REL: Bump version strings to dev (#626)

* REL: Bump version strings to dev

* BUG/TST: Fixes broken tests

* BUG: Fixes a bug in the animations colors (#627)

The grid displaying the colors for the traces was not updated after the
first change to the trajectory category. This has been fixed and I've
added a few missing tests.

* BUG:Fixes a color distortion for flat-facing geometries (#628)

* BUG:Fixes a color distortion for flat-facing geoms

Geometries that are flat-facing would suffer from color distortion. To
fix this, I've added a small amount of rotation to those geometries. And
included a couple new geometries.

Fixes #544

* DOC: Add missing shapes in docstring

Addresses @antgonza's comment.

The previous commit also fixes #601 since there's no geometries are no
longer cubes.

* ENH: Add ability to resize plot space and menu (#629)

* ENH: Add ability to resize plot space and menu

Using jQuery's resizable.

* ENH: Add double-click to resizable handles

* STY: Fix stylistic problem

* ENH: Copy sample names to clipboard. (#630)

* ENH: Copy sample names to clipboard.

Users can now click or double-click to copy a sample's name. If clicking
on a sample, they'll need to also click on the banner at the bottom
left. If double clicking on a sample, the name is automatically copied
to the clipboard.

* STY: Fix stylistic problems

* TST: Fix broken tests

* DOC: Add more info about double-clicking

* REL: Bump to beta 13

* BLD: Bump string versions to 13-dev

* Porting the animations tutorial (#635)

* DOC: Update animations documentation

The documentation has now been updated (as well as the files), to
reflect the latest API changes.

* DOC: More documentation updates

* DOC: Update links about publications

* DOC: Fix link

* BLD: Fix problem with setup.py and setuptools (#637)

Fixes #631, thanks to @ikirker for the report and the suggested patch.

* TST: Improve unit tests in biplots (#640)

* ENH:Download colormap instead of discrete legend (#638)

* ENH:Download colormap instead of discrete legend

Previously when a continuous colormap was set and the user downloaded
the SVG image, Emperor would produce a categorical list of the values,
this patch changes this so that a colormap is produced instead.

Fixes #336

* STY: Fix stylistic issue in JavaScript

* BUG: Sort unique metadata categories (#639)

Fixes a problem where metadata categories would appear to be ordered
randomly. Unique values are now sorted first alphabetically and then
numerically, mimicking the behaviour of the previous version of Emperor.

Fixes #618

* ENH: Add exceptions and tests for missing samples (#636)

* ENH: Add exceptions and tests for missing samples

Two cases are now explicitly checked for:

1) None of the samples in the ordination are part of the metadata.

2) Some samples in the coordinates matrix are not part of the metadata.
In this case the error can be overridden with the ingore_missing_samples
argument.

* BUG: Coping with changes in numpy versions

* BUG: Fix pandas' import # Please enter the commit message for your
changes. Lines starting

* Address @antgonza's comments

* DOC: Improve error message

Thanks @antgonza

* Address @antgonza's comments

* ENH: Add download scree plot button (#641)

* ENH: Add download scree plot button

Fixes #599

* STY/DOC/BLD: Minor updates

* BUG: Fix problem with double-click resize (#645)

Resizing the menu would erroneously be triggered by double-clicking the
menu, whereas it should only be triggered when double-clicking the
resize handle.

* BUG:Add missing attribute types in settings setter (#651)

The setting setter was not taking into consideration the opacity and the
animations types.

Fixes #650

* ENH: Increase text size (#642)

* ENH: Increase text size

This patch increases the labels' size by dynamically calculating the
dimensions of the canvas depending on the font and the width of the
text.

Fixes #598

* ENH: Reduce font size

In response to @antgonza's suggestion.

* TST: Add log2 function so phantom.js passes

* STY: Stylistic fix in JavaScript

* ENH: Improve label resolution

* ENH: Warn users when hiding samples from a plot (#643)

This patch adds a message (in the sample counter) stating that hiding
samples in an ordination can be misleading.

Fixes #589

* DOC: Improve documentation for standalone plots (#644)

* ENH: Add button to show context menu (#648)

This should improve the discoverability of the context menu.

* BUG: Prevent input propagation in the notebook 📓 (#649)

The text inputs in the color picker propagated the keypress and keydown
events all the way down to the notebook. In the case where the inputs
conflicted with a shortcut in the notebook, the shortcut itself would be
triggered.

This has been fixed by preventing the propagation of events in all the
color pickers.

* BUG: UI in some buttons wouldn't always update (#653)

According to the documentation[1], the UI has to be manually refreshed
after changes to the button's state.

[1] - http://api.jqueryui.com/button/ see the refresh() section

* ENH: Bump version strings to beta-14 (#654)

* REL: Update to the beta14-dev cycle (#655)

* Habemus arrow-based biplots  (#646)

* ENH: Add makeArrow function

* ENH: Add the type attribute to the decomp object

* ENH:Make ScenePlotView3D and DecompView aware of->

These two classes are now capable of displaying and handling arrow-based
decompositions.

* ENH: Increase arrow type awareness

This changeset makes a number of view controllers aware of the
decompositions of arrow type. In addition it makes DecompositionView
better support this variant.

It also deals with the cases where the controllers shouldn't modify the
views.

* BUG: Fix raycasting for multiple decompositions

This patch adds the ability to check for raycasting over multiple
decompositions. In addition it subclasses the THREE.ArrowHelper class to
implement the raycast method so that collisions can be detected and
attributed.

* BUG: Include missing assignment

* ENH: Improve the API of the controller

* BUG:Don't use _.pick, it's not supported in the nb

* ENH: Make Emperor aware of biplots

This commit adds a fair number of changes, for the most part the intent
is to be able to interpret and process feature data as transported by
the ordination. The constructor can now take as a parameter feature
metadata. As a result when serializing the object into a JSON object, we
now use a single object, as returned by _to_dict. The main template was
also modified to account for this change. _to_dict puts the sample and
feature ordinations in a common format for easy consumption by the
JavaScript API.

A number of methods have been modified to become aware about feature
metadata and the feature ordination. Specifically:

- _validate_metadata: takes as a parameter the metadata it is validating
and allows for a case where no metadata is provided.

- _process_data: checks if there's a feature ordination and if there is
one proceeds to create the appropriate objects and convert them into
JSON-serializeable types.

- _to_legacy_map now takes as a parameter the metadata to convert.

* STY: Fix stylistic issues with JS

* TST: Fix tests to update the template

* TST: Add tests for the constructor & biplots

* TST: Add tests for _process_data

* ENH: Remove unused method

* TST: Add simple group of tests for most changes

* TST/BUG: Add more tests and fix bug in arrows

The DecompositionView object had a bug where the length of the arrows
was calculated based on the length of the normalized vector not of the
original vector.

Additionally this patch adds some tests to check for the sanity of the
DecompositionView object when initialized with an ArrowType.

* DOC: Add example notebook for biplots

* STY: Fix stylistic issues with JavaScript

* BUG: Bring back to 5

* ENH: Improve build.py to include subjects

* ENH/BUG: Add label for arrows

* Address review comments by @wasade

* TST: Add polyfill for padStart

* TST/BUG: Add additional JavaScript polyfills

* STY: Fix stylistic errors in JavaScript

* ENH: Add example of how to calculate biplots

* DOC: Document the useful categories in the 📓

* Procrustes new api (#647)

* ENH: Add makeArrow function

* ENH: Add the type attribute to the decomp object

* ENH:Make ScenePlotView3D and DecompView aware of->

These two classes are now capable of displaying and handling arrow-based
decompositions.

* ENH: Increase arrow type awareness

This changeset makes a number of view controllers aware of the
decompositions of arrow type. In addition it makes DecompositionView
better support this variant.

It also deals with the cases where the controllers shouldn't modify the
views.

* BUG: Fix raycasting for multiple decompositions

This patch adds the ability to check for raycasting over multiple
decompositions. In addition it subclasses the THREE.ArrowHelper class to
implement the raycast method so that collisions can be detected and
attributed.

* BUG: Include missing assignment

* ENH: Improve the API of the controller

* BUG:Don't use _.pick, it's not supported in the nb

* ENH: Make Emperor aware of biplots

This commit adds a fair number of changes, for the most part the intent
is to be able to interpret and process feature data as transported by
the ordination. The constructor can now take as a parameter feature
metadata. As a result when serializing the object into a JSON object, we
now use a single object, as returned by _to_dict. The main template was
also modified to account for this change. _to_dict puts the sample and
feature ordinations in a common format for easy consumption by the
JavaScript API.

A number of methods have been modified to become aware about feature
metadata and the feature ordination. Specifically:

- _validate_metadata: takes as a parameter the metadata it is validating
and allows for a case where no metadata is provided.

- _process_data: checks if there's a feature ordination and if there is
one proceeds to create the appropriate objects and convert them into
JSON-serializeable types.

- _to_legacy_map now takes as a parameter the metadata to convert.

* STY: Fix stylistic issues with JS

* TST: Fix tests to update the template

* TST: Add tests for the constructor & biplots

* TST: Add tests for _process_data

* ENH: Remove unused method

* TST: Add simple group of tests for most changes

* TST/BUG: Add more tests and fix bug in arrows

The DecompositionView object had a bug where the length of the arrows
was calculated based on the length of the normalized vector not of the
original vector.

Additionally this patch adds some tests to check for the sanity of the
DecompositionView object when initialized with an ArrowType.

* DOC: Add example notebook for biplots

* STY: Fix stylistic issues with JavaScript

* ENH: Add the ability to process procrustes plots

* ENH:Make the GUI objects aware of procrustes plots

Adds a couple of methods for the model and the views to process an edge
list that's used to display procrustes plots.

This patch also includes some cleanup to the repeated code in the
changeVisibleDimensions and flipDimension methods. See updatePositions.

Draw.js has a function to draw lines as a THREE.LineSegments object,
this is recommended from their documentation to be more efficient at
rendering, etc. This used to be a problem when we had a large number of
samples being compared at the same time.

* DOC: Add example notebook for procrustes

* TST: Add tests for procrustes

* TST: Write tests for javascript portions

Fix documentation

* ENH: Add the ability to color procrustes edges

This has also created a number of methods in the AxesController class to
deal with color changes in different elements.

* ENH: Cleanup test suite

* BUG: Fix problem with settings

* BUG: Bring back to 5

* BUG: Should be 7 instead of 5

* ENH: Improve build.py to include subjects

* ENH/BUG: Add label for arrows

* Address review comments by @wasade

* TST: Add polyfill for padStart

* TST/BUG: Add additional JavaScript polyfills

* STY: Fix stylistic errors in JavaScript

* ENH: Add example of how to calculate biplots

* DOC: Document the useful categories in the 📓

* ENH: Fix HTML for axes and .ready for controller

The HTML code for the procrustes controls was missing a few closing
tags. I've also changed the formatting so it is easier to read.

The _expected and _seen attributes in the main controller are now
updated through the addTab method, so there's no need to update these
values manually.

Addressing @antgonza's review comments

* BUG: Hide edges when hiding visible samples (#662)

* BUG: Hide edges when hiding visible samples

Fixes #193

* ENH: Create a subclass for the line segments

This subclass includes a method to make the modification of the
individual lines more straightforward.

* ENH: Bump version strings for beta15 (#663)

* DEV: Bump version strings (#666)

* BUG: Fix problem with custom axes (#665)

* BUG: Fix problem with custom axes

Both for procrustes and for jackknifed plots setting a custom axis would
lead to a failure, specifically:

- Procrustes plots would error since the sample identifiers would be
relabeled twice.

- Jackknifed plots would fail (on JavaScript) because the confidence
intervals didn't have the same dimensions as the coordinates themselves.

Fixes #664

* REV: Address @antgonza's comments

* TST: Fix incorrect test, thanks @antgonza

* DOC: Improve the jackknifed notebook

* TST: Add test for sdev

Addresses @antgonza's comment

* TST: Fix broken test

* REL: Bump version strings to beta 16

* BUG: Fix problem with label sizes (#667)

* ENH: Add star geometry to shapes tab (#669)

Fixes #656

* DEV: Bump version string (#672)

* Minor UI improvements (#674)

* ENH: Make tab names unselectable

* ENH: Add thousands separators

* DOC: Add some comments

* Better notebooks (#675)

* DOC: Update and cleanup notebooks

* MAINT: Update gitignore

* ENH: Cleanup keyboard notebook and add animations

* Use shaders to render hundreds of thousands of samples with a responsive UI (#673)

* ENH/WIP: Use shaders for large datasets

This allows emperor to render 100,000 samples and still be responsive

* ENH: Cleanup _fastInit

* ENH: Add a TODO, should be fixed in this branch

* ENH/API: Make the view object more capable

* ENH: Cleanup the view source

* ENH/DOC: Add docstrings for the attributes

* TST: Add tests for point point clouds

* STY: Fix stylistic issues

* BUG: Fix axes tab for large datasets

* BUG: Make radius determination part of the view

* TST: Add test for getGeometryFactor

* ENH: Increase the circle's size

* ENH: Fix raycasting

* DOC: Add description of getGeometryFactor

* ENH: Add documentation for usesPointCloud

* BUG: Fix quaternion rotation for clouds

* ENH: Add error for jackknifed plots

* STY: Add some cleanup

* DOC: Fix typo

Addresses comments by @wasade.

       ___------__
 |\__-- /\       _-
 |/    __      -
 //\  /  \    /__
 |  o|  0|__     --_        Gotta go fast! 🔥
 \\____-- __ \   ___-
 (@@    __/  / /_
    -_____---   --_
     //  \ \\   ___-
   //|\__/  \\  \
   \_-\_____/  \-\
        // \\--\|   -Han J. Lee-
   ____//  ||_
  /_____\ /___\
______________________
Modified from:
https://www.asciiart.eu/video-games/sonic-the-hedgehog

* ENH: Improve raycaster's tolerance

* BUG: Fix animations for point clouds

* STY: Fix JS style

* ENH: Disable saving as SVG/PNG and add message

For large datasets we can't save to svg nor to png, these options are
now disabled and a message is shown "(disabled for large datasets)".

Suggested by @antgonza

* DOC: Improve message

* ENH: Re-enable PNG rasterization

Grab the drawn buffer from the DOM element and save it to a PNG file.

HT: @josenavas 🎩

* ENH: Minor improvements to biplots UI (#679)

- Improve raycasting for arrows. Previously it would also check for
intersects with lines, which would lead to incorrect matches.

- Fix biplot coordinates computation so that it doesn't modify the
original array, instead it creates a copy. Prevents us from modifying
the inputed OrdinationResults object.

* ENH: Modernize the .travis.yml dependencies

Should fix some broken builds
Remove openpyxl requirement
Remove old numpy versions
Add new Python versions
Change ipython to jupyter

* Improvements to label sizes (#681)

* ENH/BUG: Simply text scaling

Text was scaled based on way too many heuristics that made text size
dependant on the number of characters. This was a bad choice, as it lead
to very odd-looking plots.

* BUG: Make text scaling global

Text will now *look good*

* BUG/TST: Fix problems with text tests

* TST: Attempt to reconcile discrepancies in testing

* BLD: Trying to debug

* TST: Fix tests for canvas text sizes

It turns out that the text measures obtained with PhantomJS running
under macOS were different from those of PhantomJS running under Linux.

* TST: Fix tests for canvas text sizes

It turns out that the text measures obtained with PhantomJS running
under macOS were different from those of PhantomJS running under Linux.

* TST: Add tests for camera recentering (#682)

* ENH: Add menu item to hide biplot labels (#676)

* ENH: Add menu item to hide biplot labels

The labels can get really crowded if a lot of features are shown on
screen.

* ENH: Add the ability to save hidden labels

* REL: Update to beta 17 (#689)

* DEV: Bump version string

* Re-organize documentation (#697)

* DOC: Reorder documentation

Make the example notebooks more prominent, re-add the favicon, and group
all the documentation under the same tab.

Fixes #695

* Document the feature_mappin_file

* BUG: Fix version conflicts with Jupyter deps (#694)

Fixes a problem where Jupyter's require declarations would shadow
Emperor's. Specifically while using the newest version of the Jupyter
notebook jquery would be updated to version 3.x and that version is not
compatible with several dependencies of Emperor.

For now this fix ensures that there will be no version conflicts by
putting all our dependencies under their own context.

* BUG: Fix a bug with the red-yellow-blue colormap (#698)

There was a typo in the name of the colormap that prevented the data
from being colored correctly.

* REL: Update to beta 18 (#701)

* DEV: Bump version strings

* STY: Fix new failures from flake8

* BUG: Fix a problem with no metadata columns (#703)

Fixes a problem where passing a dataframe with no metadata columns would
lead to a failure in the UI. The problem originated from the way we were
using the apply function to transform the values to strings, and how we
were merging the index names.

Fixes #700

* BLD: General updates to the repository (#693)

* BLD: General updates to the repository

- Updates the setup.py file to no longer use distutils.
- Improves the long_description section to load the README.md file.
- Adds publications to the README.md file

* Add 3.7

* Modernize test running and coverage collection

* Add ability to run 3.7

* Add phantom.js as a conda dependency 👻

Install it from conda-forge.

* Another stab at python 3.7

* Update travis CI

* Update scikit-learn through conda

* Install scikit-learn from conda-forge

* ENH: Install from pip with no wheel

* STY: Remove trailing space in travis

* Add descriptor for Python 3.4

* ENH: Add cython

* Pin down scikit-learn

* Re-add testing for python 3.4

* Fixes problem with the camera not being centered (#706)

* WIP: Improve camera positioning

The camera was currently being positioned at the origin, instead of at
the center of the current data on screen.

* WIP: I have not been able to reset the camera

* BUG: Remove control damping

When damping is enabled it makes the recenternig the orbit controls go
to a point close to the center but not exactly it. This is because the
object is trying to simulate inertia during the recentering. I have now
disabled it.

* TST: Expand unit tests for ScenePlotView3D

* STY: Fix stylistic issues

* BUG: Fix problem with two-dimensional data (#707)

* BUG: Fix problem with two-dimensional data

If the plot was initialized with two dimensions, the UI would fail to
instantiate as several objects had the dimensions hard-coded. I've
changed this to make it dependant on the data. In addition the Python
API will now check for one-dimensional data.

Fixes #686
Fixes #705

* Remove unnecessary print

Fixes #709

* Address @antgonza's review comment

* ENH: export plot to vega editor (#714)

* ENH: export plot to vega editor

* SQUASH

* ENH: Experimental features are by default available


This allows for a bit more flexibility while we figure out how to handle
this new functionality. Also, it won't lead to any test updates that
might be a bit too cumbersome.

I added custom icons in the context menu for "experimental" and for "biplot labels".

* SQUASH: linty lint

* REL: Bump version strings for release (#713)

* REL: Bump version strings for release

* STY: Fix PEP8 error

* BLD: bump version string (#718)

* BLD: bump version string

* BLD: Remove PY3.4  build

Tests started failing and we have no reason to officially support/test
this version.

* Color (#719)

* color palette edit

* getDiscreteColorPalette unit test

* getDiscreteColorPalette unit test

* remove logs and changed function name to getPaletteColor

* fixed a long line

* fixed a long line

* BUG: Fix bug with axis inversion in settings (#721)

An axis would only be inverted if the loaded setting was "True", however
this would not honor the inversions that needed to happen if an axis was
currently set to True but should be changing to False.

I've included a unit test for this bug.

Fixes #717

* BLD: Install requests using conda (#725)

* BLD: Remove dependency cap on sphinx

* Remove scikit-learn install

* Install certifi from conda

* Add a comment and remove requests installation

* Install requests using conda

* Update .travis.yml

* Re-add sphinx cap

* Fast Animation (#724)

* Fast animation by splitting tubes into static and dynamic portions such that only the dynamic portions require update each frame.

animate.js - now tracks the previous frame.  Should allow rewind in the future.
animations-controller.js - now treats static and dynamic tube segments separately
draw.js - Added method for creation of TubeBufferGeometry object for static tube segments.
		added method for updating draw range of TubeBufferGeometry
sceneplotview3d.js - now adds both static and dynamic tubes to the scene.
trajectory.js - New function to grab an interpolated tube segment / last two points of a trajectory for the current frame
view.js - split tubes into static and dynamic

* Updated tests for split of tubes field

* Fix for potential divide by zero

* Updated test for trajectory to check dynamic tube section equivalence

* Updated comment for jsdoc

* Moved variable declaration into for loop.  Added utility method to view to retrieve all tubes

* Added test for interpolating trajectories with duplicate points

* Removed drawTrajectoryLine

* Used preferred Material property setting through constructor.  Removed the Blah.

* Updated material constructor parameters for consistency.  Added dispose functions for each tube type.  Moving forward, project should decide if it wants to dispose all meshes the same, or each type of mesh differently, difference is whether or not materials and geometries should have potential to be reused.

* animations-controller now disposes of tube objects when removing them from the scene.  Draw no longer sets matrixAutoUpdate property on tube materials -- matrixAutoUpdate is a property of meshes.  It's unclear what was intended by setting it previously

* Ran fixjsstyle

* Manually fixed lines over 80 characters

* ENH:Allow for missing features in feature metadata

Allows for feature metadata to not include some of the features
represented in the ordination. The errors and warnings have been updated
to properly refer to either features or samples. I've added a couple of
tests to validate the error/warning messages.

Fixes #730
Fixes #733

* ENH: Delete unused code from backports and library (#720)

Several modules in the codebase were not used anywhere. The biplots
module has now been replaced by the biplot functionality available in
scikit-bio, the parsing functionality is all handled elswhere or using a
Pandas DataFrame, and the filtering/sorting functionality is no longer
needed.

Fixes #262
Fixes #261

* Address reviews from @wasade

* ENH: Address @wasade's comment to truncate outptut

The output is truncated to 5 missing elements.

* Add a search bar to the controllers (#735)

* WIP for search bar for categories in view controllers

* Make the searchbar look less awful

* Improve the order of the searchbar

* ENH: Add searchbar to attribute view controller

* break long line

* TST: Add tests for searchbar functionality

Fixes #710

* STY: Small cleanup

* Make searchbar available for continuous values and remove new line

* BUG: Fix "results not found" position

The legend would cover the checkbox for continuous values.

* ENH: Hide searchbar while controller is disabled

* BUG: Fix issue with "No results found" message

Fixes an extraneous tooltip (for the plotMenu) would erroneously show on
screen. We change the context where the tooltip exists and limit it to
be the search bar only.

* Fix a problem where invisible or transparent objects would be intersected (#728)

* BUG: Avoid matches with hidden objects

Improve the raycasting callback to ignore objects that are currently set
as invisible. Also, update the shader to ignore calls if opacity is set
to zero.

* Refine checks

* Add nosetests to setup.py

* Parallel Plots (#727)

* Added multi-model, which takes on calculation of dimension bounds across multiple DecompositionModel objects from sceneplotview3d.  Added viewtype-controller, which lets the user choose between scatter and parallel plots.  Updated for display of parallel plots, still need to track down what needs to be done with scene/camera when switching back and forth

* Fixed camera reset on swapping scatter and parallel plot, fixed axes to use all axes rather than just visibleDimenions

* Moved choice between scatter and parallel plot to axes-controller, deleted viewtype-controller.

* Axes controller now saves viewType.  Changing color now updates the colors of the current scatter or parallel plot (but colors are lost when switching viewType)

* Color support for changing colors (but not generating correctly when colors are already set

* Controllers set applicable parameters on switching back and forth between scatter and parallel-plot

EmperorViewControllerABC adds a forceRefresh function, and defaults it to a toJSON followed by a fromJSON.
ScenePlotView3D's checkUpdate now returns a bit vector of required actions rather than a single boolean.
This is handled in new controller logic.
Attribute setters updated to set attributes for with correct indexing in parallel plot mode.
Shape changes are ignored
Axes changes are ignored

* Animations are no longer shown in parallel plot mode

* Fixed visible count for parallel plots

* Fixed issue in refreshing the controller state when number of points was >20000

* Stopgap measure for memory leaks, until we have a framework for disposing objects

* Ran fixjsstyle

* Fixed long lines

* Re ran fixjsstyle

* Fixed stupidity introduced when fixing line lengths

* Fixed sloppy var scoping from before I knew I could declare variables in for loops in javascript

* gjslinter is dumb, so I turned UPDATE_FLAGS enum into constants and it stopped complaining

* Update emperor/support_files/js/axes-controller.js

Co-Authored-By: Yoshiki Vázquez Baeza <yoshiki89@gmail.com>

* Disabled buildDisplayTable when in parallel plot mode.  This hides the axis chooser from the axes controller tab

* Added ui-state, a model class with events that fire when properties are changed

* Moved view's usesPointCloud property to ui-state as the first usage example, no change tracking on it yet

* Moved usesPointCloud property initialization

* Rough skeleton for adding/removing tabs that uses the UI state framework

* Added a viewType field to ui-state to show what linked events will look like in the parallel plots branch

* Working on adding/removing tabs in jquery

* Err... had to fix the .css call to the proper syntax when passing a dictionary

* Updated parallel plots to use UIState and events.  Updated UIState state change events to only be fired when properties change, rather than every time setProperty is called

* Oops.  UI state only fires events when properties are modified.

* Gave up on modifying jquery for useless tab reordering.  controller.js now holds on to a constant tab order list, we will enable disable controllers individually rather than adding and removing from that list

* Controller now hides the shape tab while in parallel plots mode

* Set default radio button checked in axes controller.  Hide shape and animations tabs when parallel plots are enabled

* Fixed minor comments for pull request

* Removed scale attribute from parallel plot shader

* Fixed png screenshot functionality for parallel plots

* Disabled scale controller when in parallel plots mode

* Disabled context menu options that needed to be turned off when in parallel-plot mode.  Turned off autorotation upon entering parallel-plot mode.

* Updated raycasting to support parallel plots

* Separate cameras+controllers for scatter and parallel plots

* Fixed label display with aspect ratio in parallel plots

* axis labels are resized when screen is resized

* Fixed bug found by unit tests

* index.html now references new files.  all tests painstakingly updated to use new DecompositionView(multiModel, modelKey)

* Continuing to fix unit tests for new DecompositionView constructor

* Removed two unit tests checking for throw errors: rather than throwing errors when passing a biplot and/or jackknifed plot to DecompositionView, it now switches back to its basic mode instead of using fastinit

* axes tests now know about viewtype field

* Passed correct multimodel to each test.  Added 1 to expected counts of objects in scene due to addition of separate parallel-plot mode camera object

* Ran gjslint + fixjsstyle.  Fixed remaining Line too long errors manually

* Revert "Removed two unit tests checking for throw errors: rather than throwing errors when passing a biplot and/or jackknifed plot to DecompositionView, it now switches back to its basic mode instead of using fastinit"

This reverts commit 49fcce29c5f683b282bd186cfa9a8ff352a87e4d.

* Restored error throwing behavior on display of biplots in fast mode.
Fixed unit test to correctly pass jackknifed plot when looking for errors in jackknife code paths

* Cleanup: removed redundant css, added braces for if statements, moved early breakout before variable definition, added comment blocks

* Added UIState to constructors of abc-view-controller, animations-controller, axes-controller, color-view-controller, controller, opacity-view-controller, scale-view-controller, sceneplotview3d, shape-controller, view-controller, view, visibility-controller.
Fixed extremely confusing error resulting from creating variable named scope at the global scope, and then referencing it in a callback method.
Updated controller to construct a UIState instance and pass it through constructors to all necessary objects.
Updated tests with new UIState construction pattern - This helps fix the issue of tests incorrectly sharing objects, but adds significant complexity to test setup.  A full IOC framework, or further extraction of test setup could alleviate this.

* Removed references to the word 'singleton' as the UIstate is no longer a singleton

* Fixed Axes Controller radio button behavior with multiple emperor instances

* STY: Fix some linting issues (#738)

* REL: bump version string for next release (#739)

* Fix raycasting issue (#740)

* BUG: Remove duplicated block of code

This bug was introduced in the conflict resolution of the parallel plots
PR, and the invisible touchable point PR. Both features changed the way
in which we find the intersected objects. We only keep the strategy
followed the parallel plot PR.

* BUG: Fix problem with global variable

The variable intersect was accidentally declared as global and was
leading to incorrect intersections.

* BUG: Fix issue with mesh visibility

* BLD: Bump version string to dev (#745)

* Fixes issue with slickgrid re-rendering (#746)

* BUG: Fix issue with slickgrid re-rendering

The grid was not re-rendered after the model's contents were updated.

Fixes #744

* TST: Add tests as requested by @antgonza

* BLD: Drop support for Python 2.7 (#752)

* BLD: Drop support for Python 2.7

* BLD: Fix build file

* BLD: Add sudo

* BLD: Fix pip

* BLD: Trying something different

* BLD: Add py27

* BLD: Use system-wide py27

* BLD: Debug build in travis

* BLD: Add a custom environment for py27

* BLD: Add missing six dependency

* BUG: Should have been && not ;

* TST: Fix broken tests in test_core.py

* TST: fix broken/outdated tests

* Use conda run

Co-Authored-By: Matthew Dillon <matthewrdillon@gmail.com>

* Use conda run

Co-Authored-By: Matthew Dillon <matthewrdillon@gmail.com>

* BLD: Better use of conda run

Thanks @thermokarst

* BLD: Remove deactivate

* TST: Fix broken test

This failure was being hidden from the PR that just got merged today.

* ENH: Join shader string

Co-authored-by: Matthew Dillon <matthewrdillon@gmail.com>

* Fix _removeObjectsWithPrefix For Duplicate Object Names (#755)

* Fixes the _removeObjectsWithPrefix function to remove -all- objects prefixed with a given name, rather than exactly one object with each name, as names of objects in the scene are not guaranteed to be unique

* STY: Fix gjslint errors

Fixes #748

* TST: Add polyfills to make tests pass

Co-authored-by: Daniel Hakim <dhakimdahakim@gmail.com>

* BUG: Fixes bug creating SVG legend (#756)

The code was using the old way to access grid data. I looked in the rest
of the codebase and there checked there aren't any other usages of
getData (only when necessary).

Fixes #754

* DOC: Merge ChangeLog.md

* BLD: Bump to version 1.0.0

* BLD: Cleanup more files

* BLD: remove scripts entry

Co-authored-by: Antonio Gonzalez <antgonza@gmail.com>
Co-authored-by: Jamie Morton <jamietmorton@gmail.com>
Co-authored-by: Jose Navas <jnavasmolina@google.com>
Co-authored-by: Daniel McDonald <danielmcdonald@ucsd.edu>
Co-authored-by: Matthew Dillon <matthewrdillon@gmail.com>
Co-authored-by: Irene Yang <32945220+IRENEYXH@users.noreply.github.com>
Co-authored-by: Daniel Hakim <dhakimdahakim@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

sample shape causes color to change
3 participants