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

Merge new-api into master #757

Merged
merged 849 commits into from
Feb 14, 2020
Merged

Merge new-api into master #757

merged 849 commits into from
Feb 14, 2020

Conversation

ElDeveloper
Copy link
Member

This represents the changes for release 1.0. After this is merged, we'll go back to having master as the default branch.

ElDeveloper and others added 30 commits July 14, 2016 20:40
MAINT: Logistic updates to create Emperor 1.0
ENH: Adds the ability to use autorotation
DOC: Add SciPy 2016 presentation notebook
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.
DOC: Improve installation documentation
Code is a bit ugly and inefficient but works for the time being.
TST: A test was leaving a folder un-removed
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.
Surgically add the EmperorViewController class
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.
HACK: Add extra attribute to denote text
ElDeveloper and others added 25 commits April 19, 2019 05:36
* REL: Bump version strings for release

* STY: Fix PEP8 error
* BLD: bump version string

* BLD: Remove PY3.4  build

Tests started failing and we have no reason to officially support/test
this version.
* 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
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 biocore#717
* 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 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
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 biocore#730
Fixes biocore#733
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 biocore#262
Fixes biocore#261
The output is truncated to 5 missing elements.
* 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 biocore#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.
ENH:Allow for missing features in feature metadata
…cted (biocore#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
* 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 49fcce2.

* 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
* 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
* BUG: Fix issue with slickgrid re-rendering

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

Fixes biocore#744

* TST: Add tests as requested by @antgonza
* 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>
* 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 biocore#748

* TST: Add polyfills to make tests pass

Co-authored-by: Daniel Hakim <dhakimdahakim@gmail.com>
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 biocore#754
@wasade
Copy link
Member

wasade commented Feb 14, 2020

Nice to see!!

@antgonza antgonza merged commit 659b62a into biocore:master Feb 14, 2020
@ElDeveloper
Copy link
Member Author

ElDeveloper commented Feb 14, 2020 via email

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.

8 participants