Skip to content

Recategorizing built-in methods - #7612

Merged
aparajit-pratap merged 19 commits into
DynamoDS:masterfrom
yeexinc:branch-lib
Apr 5, 2017
Merged

aparajit-pratap merged 19 commits into
DynamoDS:masterfrom
yeexinc:branch-lib

Conversation

@yeexinc

@yeexinc yeexinc commented Feb 16, 2017 •

Copy link
Copy Markdown
Contributor

Purpose

This PR is to address DYN-421.
The built-in methods are recategorized to the following functions: (ticked ones are the ones committed in this PR)

  • ImportExport.ImportCSV
  • List.AllFalse
  • List.AllTrue
  • List.Contains
  • List.IsHomogeneous
  • List.IsRectangular
  • List.IsUniformDepth
  • List.TrueForAll
  • List.TrueForAny
  • List.SetDifference
  • List.SetIntersection
  • List.SetUnion
  • List.IndexOf
  • List.Equals
  • List.CountFalse
  • List.CountTrue
  • List.Count
  • List.RemoveIfNot
  • List.Flatten
  • List.Insert
  • List.GroupByFunction
  • List.Reorder
  • List.SortByFunction
  • List.MaximumItemByKey
  • List.MinimumItemByKey
  • List.ContainsKeys
  • List.RemoveKey
  • List.SortIndexByValue
  • List.NormalizeDepth
  • List.GetValues
  • Math.Map
  • Math.MapTo
  • Math.PI
  • Math.NewtonRootFind1DNoDeriv
  • Math.NewtonRootFind1DWithDeriv

To be consistent with the migration of BuiltIn.ImportFromCSV to ImportExport.ImportCSV, the following method is added as well:

  • ImportExport.ExportCSV (to replace CSV.WriteToFile)

Declarations

Check these if you believe they are true

  • The code base is in a better state after this PR
  • Is documented according to the standards
  • The level of testing this PR includes is appropriate
  • User facing strings, if any, are extracted into *.resx files
  • All tests pass using the self-service CI.
  • Snapshot of UI changes, if any.
  • Changes to the API follow Semantic Versioning, and are documented in the API Changes document.

Reviewers

@aparajit-pratap

FYIs

@ke-yu @sharadkjaiswal

/// <returns name="list">The flattened 1D list.</returns>
/// <search>flatten,1D</search>
public static IList Flatten(IList list)
{

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I initially mapped builtin Flatten to List.Flatten in Thunderstorm. Unfortunately, this results in a change in output for the case where builtin Flatten is passed a simple value rather than a list. It currently returns the value unmodified rather than putting it in a list.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Thanks for the review @gregmarr , I'll look into that.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@yeexinc I was updating the data from the tests in the CoGS repo, and found that this output change has happened, demonstrated in testPlattenCompletely_singleInput.dyn. Looks like the new List.Flatten with no argument isn't behaving the same as the builtin Flatten.

- built-in methods are hidden from user's search
- test cases moved to DSCoreNodesImages.resx
- minor refinement to some methods
- added test cases for List.cs and Math.cs
@yeexinc

yeexinc commented Mar 6, 2017

Copy link
Copy Markdown
Contributor Author

The current state of this PR is:

  • Built-in methods that have been re-implemented (the ticked items in the list) are hidden from user's search
  • Icons have been moved from BuiltInImages.resx to DSCoreNodesImages.resx
  • Test cases have been added for the new methods added

@gregmarr

gregmarr commented Mar 6, 2017

Copy link
Copy Markdown
Contributor

@yeexinc Can you look at this code and see if it lines up with what's been done thus far?
https://git.autodesk.com/AEC-Generative-Design/ComputationGraphService/blob/master/src/codegen/codeblocknode.go#L579-L619

@yeexinc

yeexinc commented Mar 6, 2017

Copy link
Copy Markdown
Contributor Author

Hi @gregmarr ,

  • The nodes with Autodesk.DesignScript.Geometry in their names have not yet been recategorized.
  • List.FlattenCompletely is named as List.Flatten with two overloads, Flatten(list) and Flatten(list, amt), in which the first function will flatten an input list completely.
  • Concat is not in the BuiltIn methods - it seems to be replaced by Join?
  • List.ContainsItem checks if the item is present in the values of the list, and doesn't function the same way as ContainsKey.

The others seem to line up excluding the ones unchecked in the description.

@gregmarr

gregmarr commented Mar 6, 2017

Copy link
Copy Markdown
Contributor

So List.Flatten now has two overloads?

"Concat is not in the BuiltIn methods - it seems to be replaced by Join?"
https://git.autodesk.com/Dynamo/Dynamo/blob/master/src/Engine/ProtoCore/Lang/BuiltInMethods.cs#L204-L215

"doesn't function the same way as ContainsKey."

Yeah, I'm not sure what we should do with that one. TS doesn't support lists as dictionaries.

@gregmarr

gregmarr commented Mar 6, 2017

Copy link
Copy Markdown
Contributor

Note that the spreadsheet has List.ContainsKeys from BuiltIn > ContainsKeys, plural rather than the current singular.

@yeexinc

yeexinc commented Mar 6, 2017 •

Copy link
Copy Markdown
Contributor Author

@gregmarr - Thanks for the input, the Concat function is hidden by setting HiddenInLibrary to true:
https://git.autodesk.com/Dynamo/Dynamo/blob/master/src/Engine/ProtoCore/Parser/AssociativeAST.cs#L1541-L1543

Current implementation for List.Flatten has two overloads:
list flatten
Was there only one implementation for List.Flatten in BuiltIn? If there was, I'll remove the second overload.

@gregmarr

gregmarr commented Mar 6, 2017

Copy link
Copy Markdown
Contributor

Instead of adding an overload, should it have been added as a new name?

@gregmarr

gregmarr commented Mar 6, 2017

Copy link
Copy Markdown
Contributor

At least for now, I need to handle all possible builtins, until the Dynamo migration eliminates them all.

/// <summary>
/// Methods for Import/Export category.
/// </summary>
public static class ImportExport

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Can you not reuse the implementation from DSCore.IO.CSV.ReadFromFile?

/// <param name="list">List to search in.</param>
/// <param name="item">Item to look for.</param>
/// <returns name="bool">Whether list contains the given item.</returns>
/// <search>item,search,in,listcontains</search>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@yeexinc I think this method needs to be consolidated with List.ContainsItem as per the recategorization worksheet.

/// </summary>
/// <param name="list">List to be checked if the rows have the same number of items.</param>
/// <returns name="bool">Whether the list has the same number of items in all rows.</returns>
/// <search>rectangular,isrectangular,same,sublist,row</search>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Have you hidden this from Builtins?

/// <param name="list">The list to be reordered.</param>
/// <param name="indice">The indices used to reorder the items in the list.</param>
/// <returns name="list">The reordered list.</returns>
/// <search>reorder,index,indices</search>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hidden from built-in?

Comment thread src/Libraries/CoreNodes/List.cs Outdated
/// Returns multidimentional list according to the rank of the input list.
/// </summary>
/// <param name="list">The list whose depth is to be normalized.</param>
/// <returns name="list">The list with the normalized rank.</returns>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The two NormalizeDepth methods must be consolidated as per the spreadsheet. Maybe you can add the rank as the second parameter with default argument

}
return list;
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think it would be easier to read this file if all private helper methods are grouped together within a region and all public methods are together in a separate region.

Comment thread src/Libraries/CoreNodes/List.cs Outdated
/// Returns the values of a list of key-value pair in a new list.
/// </summary>
/// <param name="list">The list to obtain the values from.</param>
/// <returns name="newlist">The new list which contains the values.</returns>

@aparajit-pratap aparajit-pratap Mar 9, 2017 •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Remove this, we will keep the builtin method.

@Racel

Racel commented Mar 9, 2017

Copy link
Copy Markdown

@aparajit-pratap @ke-yu - Can you please provide a list of which nodes were problematic to convert to ZT? Also, please provide a reason why they are difficult to implement.

@ke-yu

ke-yu commented Mar 10, 2017

Copy link
Copy Markdown
Contributor

@Racel @kronz @riteshchandawar @aparajit-pratap @benglin

It needs runtime information to do deep comparison (e.g., comparing two Points needs to get .net objects and call Equals() on these two objects).

  • List.Equals

List.RemoveIfNot() removes those items that are not of specified type (e.g., "string", "int" etc). It needs runtime information (to get the type of object), so can't be implemented in zero touch library.

  • List.RemoveIfNot

Partial function. These functions are implemented in pure DesignScript code. We don't have a way to marshal DesignScript function to .net function and run it in .net land.

  • List.GroupByFunction
  • List.SortByFunction
  • List.MaximumItemByKey
  • List.MinimumItemByKey
  • List.TrueForAll
  • List.TrueForAny

Dictionary related functions, I think we could provide zero touch functions for them @yeexinc could you please try? Though we are not encouraging user to use dictionary.

  • List.RemoveKey
  • List.GetValues
  • List.ContainsKeys

Beyond human intelligence to understand how it work.

  • Math.NewtonRootFind1DNoDeriv
  • Math.NewtonRootFind1DWithDeriv

@Racel

Racel commented Mar 10, 2017

Copy link
Copy Markdown

Thanks for the list @ke-yu. Here are my suggestions:

  • Deprecate both Math.NewtonRoot nodes
  • Visually place all of the other nodes as list, but just leave them as builtins. Can you tell us what that would look like if you called these remaining built-in nodes in DesignScript?
  • What do people usually use Equals for as opposed to ==? Is it mainly for geometry? If so, maybe we should place Equals in Geometry.Geometry. Thoughts?

I especially enjoyed

Beyond human intelligence to understand how it work.

- Implementation for SetUnion, SetIntersection and SetDifference are the
same as built-in methods
- Edited ImportExport.ImportFromCSV to reuse the implementation from
built-in
- Added test cases for ImportExport.ImportFromCSV and fixed other test
cases
- Consolidated List.Contains with List.ContainsItem
- Consolidated NormalizeDepth(list, rank) with NormalizeDepth(list)
- Hid some of the built-in methods
- Public methods and private helper methods are grouped using regions
- Overload of List.Flatten is renamed as FlattenCompletely
@yeexinc

yeexinc commented Mar 13, 2017

Copy link
Copy Markdown
Contributor Author

Thanks for the review @aparajit-pratap , I've made some changes:

  • Edited ImportExport.ImportFromCSV, the implementation is about the same as LoadCSVWithMode in BuiltInFunctionEndPoints.cs, since it is the implementation for BuiltIn.ImportFromCSV. DSCore.IO.CSV.ReadFromFile has a separate implementation.
  • Hidden IsRectangular and Reorder in built-ins.
  • Simplified SetUnion, SetInteraction and SetDifference so that they exert the same behaviour has built-ins.
  • Renamed Flatten (without the amt parameter) to FlattenCompletely.
  • Added test cases for ImportFromCSV and edited some of the other test cases.

@ke-yu - I'm not sure if I can cast the inputs into Dictionary class as they're passed as ArrayList (with the information about their keys lost) into the zero touch functions. Any better ways of implementing it?

@aparajit-pratap aparajit-pratap left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@yeexinc i've posted some comments. Looks good overall. Please take a look.

Comment thread src/Libraries/CoreNodes/ImportExport.cs Outdated
/// <param name="filePath">The CSV file to be converted into a list.</param>
/// <returns name="list">The list containing the items in the CSV file.</returns>
/// <search>import,csv,comma,file,list,separate</search>
public static IList ImportFromCSV(string filePath)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@yeexinc I think we should try to consolidate ImportFromCSV (and Export) with CSV.ReadFromFile (WriteToFile), check if the nodes do the same thing and if so, remove the redundant node

Comment thread src/Libraries/CoreNodes/ImportExport.cs Outdated
/// <search>import,csv,comma,file,list,separate,transpose</search>
public static IList ImportFromCSV(string filePath, bool transpose)
{
if (null == filePath || !File.Exists(filePath))

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

use string.IsNullOrEmpty

}

// The length of all arrays in CSVdatalist must be the same. If the length of the array
// is less than colNum, null is appended to the array to achieve the required length.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks for the comments, they're useful

Comment thread src/Libraries/CoreNodes/Math.cs Outdated
double x = rangeMax;
rangeMax = rangeMin;
rangeMin = x;
if (inputValue >= rangeMax) return targetRangeMin;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

should this not be:

if (inputValue >= rangeMax) return targetRangeMax;
if (inputValue <= rangeMin) return targetRangeMin;

?

Comment thread src/Libraries/CoreNodes/Math.cs Outdated
else if (inputValue <= rangeMin) return targetRangeMax;
}
if (inputValue >= rangeMax) return targetRangeMax;
else if (inputValue <= rangeMin) return targetRangeMin;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

What happens if targetRangeMax is less than targetRangeMin?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I wasn't sure how BuiltIn handles this. I'll edit these Map and MapTo function to reuse the implementations in BuiltIn.

Comment thread src/Libraries/CoreNodes/List.cs Outdated
/// <param name="list">The list to be flattened.</param>
/// <returns name="list">The flattened 1D list.</returns>
/// <search>flatten,1D</search>
public static IList FlattenCompletely(IList list)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is there such a method?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Builtin Flatten() took no arguments. When I made the Thunderstorm implementation of this Builtin, I mapped it to a new function List.FlattenCompletely() because of the existing List.Flatten(), rather than adding an overload.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@gregmarr I believe we are not supporting method overloads in TS, while at the same time we aren't removing them from DS (at least for the time being). So how are we addressing this in Thunderstorm? Does TS uniquely rename the overloads based on their arguments?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I understand from @ke-yu that these methods are named differently in TS. @yeexinc could you rename this method to Flatten and make it an overload. cc @Racel

@gregmarr gregmarr Mar 27, 2017 •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

TS has overloads, but why do we want to go back to having an overload here? It seems unnecessary. I don't think we should intentionally introduce a difference between the two system when it's trivial to prevent it.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think this decision comes from a UX standpoint of minimizing the number of different method names that have similar functionality since it is confusing to users. I'll leave @Racel to elaborate on this.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I implemented it as a separate function, because I thought that we wanted to minimize the number of overloads since it is confusing to users. If that's not the case, and we actually want the opposite, then the overload makes sense. If we stay with the overload, we'll update the Thunderstorm version to match.

Comment thread src/Libraries/CoreNodes/List.cs Outdated
/// <param name="indice">The indices used to reorder the items in the list.</param>
/// <returns name="list">The reordered list.</returns>
/// <search>reorder,index,indices</search>
public static IList Reorder(IList list, IList indice)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

the argument should be indices

Comment thread src/Libraries/CoreNodes/List.cs Outdated
for (int i = 0; i < indice.Count; i++)
{
int index;
if ((int.TryParse(indice[i].ToString(), out index) && (index < list.Count)))

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

what happens if the index is negative?

newList.Add(x.Item1);
}
return newList;
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

will this work: newList = tupleList.OrderBy(x => x.Item2).Select(y => y.Item1); ?

Comment thread src/Libraries/CoreNodes/List.cs Outdated
}

/// <summary>
/// Returns multidimentional list according the rank given.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

multidimensional

yeexinc added 3 commits March 24, 2017 10:30
- consolidated CSV.ReadFromFile with ImportExport.ImportFromCSV
- renamed ImportFromCSV to ImportCSV
- moved CSV.WriteToFile to ImportExport.ExportCSV
- fixed some of the list functions
- reused builtin implememtations for Math.Map and Math.MapTo
- moved test cases for CSV functions to ImportExport
replacement of CSV.WriteToFile to ImportExport.ExportCSV
@yeexinc

yeexinc commented Apr 3, 2017 •

Copy link
Copy Markdown
Contributor Author

@gregmarr @Racel @aparajit-pratap
Since according to the original specification, BuiltIn.Flatten was to be recategorized as List.Flatten, I renamed List.FlattenCompletely back to List.Flatten so that it becomes an overload. If the name is to be changed again, I think we can have a separate PR for it after this is done.
Thanks.

/// <summary>
/// Methods for Import/Export category.
/// </summary>
public static class ImportExport

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

As per the recategorization doc https://docs.google.com/spreadsheets/d/1IkmjLemPHfPhCfSW75R3NsUwlFkHpcVMDyvI8WvTiS0/edit#gid=0, this class should be Data. There will be no class called ImportExport. ImportExport will just be a category. I'm merging this in for now. @yeexinc please make a note of this and refactor into separate classes once this is merged into the LibraryReorg branch.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Okay. Thank you very much for the review!

@aparajit-pratap
aparajit-pratap merged commit 2852ac9 into DynamoDS:master Apr 5, 2017
aparajit-pratap pushed a commit that referenced this pull request Apr 5, 2017
* Recategorize built-in methods

* Added methods for List.cs, Math.cs and ImportExport.cs

* Updated Math.MapTo

* Updated List.cs

* Icons and test cases

- built-in methods are hidden from user's search
- test cases moved to DSCoreNodesImages.resx
- minor refinement to some methods
- added test cases for List.cs and Math.cs

* Set copy local in DynamoCoreWpfTests to false

* Updated methods and test cases

- Implementation for SetUnion, SetIntersection and SetDifference are the
same as built-in methods
- Edited ImportExport.ImportFromCSV to reuse the implementation from
built-in
- Added test cases for ImportExport.ImportFromCSV and fixed other test
cases
- Consolidated List.Contains with List.ContainsItem
- Consolidated NormalizeDepth(list, rank) with NormalizeDepth(list)
- Hid some of the built-in methods
- Public methods and private helper methods are grouped using regions
- Overload of List.Flatten is renamed as FlattenCompletely

* Fixes for built in method test cases

* Hide SortIndexByValue overload from builtin

* Edited List, Math and ImportExport functions

- consolidated CSV.ReadFromFile with ImportExport.ImportFromCSV
- renamed ImportFromCSV to ImportCSV
- moved CSV.WriteToFile to ImportExport.ExportCSV
- fixed some of the list functions
- reused builtin implememtations for Math.Map and Math.MapTo
- moved test cases for CSV functions to ImportExport

* migrations for csv.writetofile

replacement of CSV.WriteToFile to ImportExport.ExportCSV

* migrations for builtin nodes

* Renamed FlattenCompletely and removed GetValues

* updated icon for list.flatten

* Update List.Flatten test case and revert migration for File.ExportToCSV
@Racel

Racel commented Apr 17, 2017

Copy link
Copy Markdown

@gregmarr @yeexinc @aparajit-pratap - I responded on slack to the flatten issue. But, as outlined in the recategorization spreadsheet, I suggested to consolidate the builtin and list "flatten" node into one. What do you think about this? We would get rid of the overload and reduce the number of OOTB nodes.

Users can still get the same builtin result but using the List node. For the List.Flatten node, we can set the "amt" input to default to 1. Let me know your thoughts.

@gregmarr

Copy link
Copy Markdown
Contributor

This was already done.

@aparajit-pratap

Copy link
Copy Markdown
Contributor

Refer #7772

@yeexinc

yeexinc commented Apr 18, 2017

Copy link
Copy Markdown
Contributor Author

@Racel - I thought it'd be good to mention that the PR sets the default value of "amt" to -1, which will flatten a given list completely. Setting the "amt" to 1 will flatten the list only by one level.

@Racel

Racel commented Apr 19, 2017

Copy link
Copy Markdown

@yeexinc - ah, gotcha. Good point. Can you please add a note about this in the tooltip for the amt input and in the tooltip for the node? Thanks.

sharadkjaiswal added a commit that referenced this pull request Jul 3, 2017
* Recategorizing built-in methods (#7612)

* Recategorize built-in methods

* Added methods for List.cs, Math.cs and ImportExport.cs

* Updated Math.MapTo

* Updated List.cs

* Icons and test cases

- built-in methods are hidden from user's search
- test cases moved to DSCoreNodesImages.resx
- minor refinement to some methods
- added test cases for List.cs and Math.cs

* Set copy local in DynamoCoreWpfTests to false

* Updated methods and test cases

- Implementation for SetUnion, SetIntersection and SetDifference are the
same as built-in methods
- Edited ImportExport.ImportFromCSV to reuse the implementation from
built-in
- Added test cases for ImportExport.ImportFromCSV and fixed other test
cases
- Consolidated List.Contains with List.ContainsItem
- Consolidated NormalizeDepth(list, rank) with NormalizeDepth(list)
- Hid some of the built-in methods
- Public methods and private helper methods are grouped using regions
- Overload of List.Flatten is renamed as FlattenCompletely

* Fixes for built in method test cases

* Hide SortIndexByValue overload from builtin

* Edited List, Math and ImportExport functions

- consolidated CSV.ReadFromFile with ImportExport.ImportFromCSV
- renamed ImportFromCSV to ImportCSV
- moved CSV.WriteToFile to ImportExport.ExportCSV
- fixed some of the list functions
- reused builtin implememtations for Math.Map and Math.MapTo
- moved test cases for CSV functions to ImportExport

* migrations for csv.writetofile

replacement of CSV.WriteToFile to ImportExport.ExportCSV

* migrations for builtin nodes

* Renamed FlattenCompletely and removed GetValues

* updated icon for list.flatten

* Update List.Flatten test case and revert migration for File.ExportToCSV

* Consolidate Display nodes for re-categorization

* Add one test case for migrating the very old ByGeometryColor node

* LibraryViewExtension project for hosted library UI (#7756)

* LibraryViewExtension project for hosted library UI

* Serve library view with local data

* Enable Node creation and console log (#7775)

* Cleanup the solution file

* Details view  implementation over Dynamo canvas (#7780)

* Details view  implementation over Dynamo canvas

* Fix visibility of details view

* DetailsView integration (#7788)

* Add missing resources.

* Tabview to show library view and package list view

* Provide Javascript hookup to update active package (#7791)

* Fix a typo

* Method to load installed packages in JSON format (#7789)

* installed packages in json format

* updated method to obtain installed pkg

* removed getInstalledPackagesJSON()

* reverted change to library.html

* reverted previous changes

* Re-fix a typo

* Implement Install Package method on controller (#7793)

* Update the bundle for latest updates in the UI. (#7794)

* Consolidate some nodes from Logic and Formula to Math (#7757)

* move some methods from Logic and Formula to Math

* add entries to migration xml

* add migration testcase

* Remove List.Flatten overload (#7772)

* remove list.flatten overload

* Updated Dynamo.All.Sln

* add migration test case

* Update resources and js code from library.js and PMUI (#7796)

* Recategorize "ColorRange2D" nodes into "ColorRange" (#7763)

* Rename "ColorRange2D" to "ColorRange"

* Add migration test case for ColorRange nodes

* Install integration and style update (#7797)

* Fix the issue that one json string may be invalid (#7802)

* Library reorg (#7803)

* Added 15 more packages to the list.

* updated files to show packages.

* Consolidate all file paths nodes under Import/Export category (#7776)

* move nodes from file to importexport

* add a migration testcase

* change category name on ui to Import/Export

* revert the slash

* change namespace back to DSCore

* rename namespace back to DSCore.IO

* update loadedtypes.json

* Cleanup LibraryReorg branch and remove PMUI code (#7804)

* Update the library UI to recategorize two nodes

* Consolidate all Directory related nodes to Import/Export Category (#7761)

* consolidate directory nodes and rename importexport class

* updated DirectoryFromPath and added migrations

* change namespace from DSCore.IO to ImportExport

* rename namespace and move directory methods to files.cs

* add migration test cases

* add directory.frompath and update nodemigrationtests

* resolve conflicts

* updated files

* Update layoutSpecs and loadedTypes for ColorRange nodes

* add nodes to loadedtype (#7806)

* update layoutspecs and loadedtypes

* Consolidate Excel nodes under Import/Export category (#7809)

* recategorize excel methods

* added migration and test case

* migration for all excel.write node

* move excel and csv methods to dsoffice

* remove unnecessary attribute

* add migration for DSCore.IO.File.ExportToCSV

* Implement custom resource handlers (#7817)

* add migration for csv.readfromfile

* remove csv.readfromfile icons

* Implement resource provider for runtime loadedTypes JSON data (#7826)

* Implement resource provider for runtime loadedTypes JSON data

* Add search keywords to LoadedTypes

* Remove empty keywords

* Tooltip implementation for library items (#7822)

* Tooltip implementation for library items

* Update librarie.min.js to include latest changes

* Update LayoutSpecs.json and js to support sections (#7833)

* Recategorize two GeometryColor nodes

* Add ImportExport.CAD nodes under library (#7832)

* Add ImportExport.CAD nodes under library

* Restore lost changes

* add test case for builtin migration (#7830)

* Wrap left-over builtins into DS class for categorization and autocomplete (#7819)

* wrap builtins into DS class for categorization and autocomplete

* code cleanup

* code cleanup

* address review comments

* addressed review comments

* add checks for only static FFI classes to be derived from DS class

* code cleanup

* code cleanup

* added migration, tests

* revert changes to loadedtypes json file

* updated layout spec json file

* add test cases for static class and fix some tests

* fixed prototest

* Re-recategorize ColorRange nodes (#7840)

* updated layoutSpecs.json (#7841)

* Refactor the code so the LibraryViewController.cs can be tested (#7834)

* Refactor the code so the LibraryViewController.cs can be tested
Move methods to seperate class EventController, so this class
can be used for mock testing.
Derived class object LibraryViewController
needs parameters which cannot be mocked.

* Add moq test for LibraryViewController

* To address the review comments from PR #7834
- Modify AssemblySharedInfo.cs to update CopyRight information of assmblies to 2017
- Remove constructor LibraryViewController()
- Revert changes  to Dynamo.All.sln realted to visual studio version
- Add AssemblySharedInfo.cs to ViewExtensionLibraryTests so the assembly version is set to
get the standard versioning

* Modify the output path in ViewExtensionLibraryTests.csproj to match the properties from props

* Add files related to commit -c03544f

* Revert changs to AssemblySharedInfo.cs
Modify AssemblySharedInfo.tt to update CopyRight information from 2016 to 2017

* Update librarie.js and other resources (#7842)

* Revise category icons for library

* add parameters for overloads

* removed redundant path

* merging new LibUI changes to Dynamo side

* Implement IconResourceProvider to get icons for library items (#7869)

* Implement IconResourceProvider to get icons for library items

* remove methods and fields that are not required

* Use category as read from customization xml

* address review comments

* Add unit tests for ResourceProviders (#7879)

* Add unit tests for RespurceProviders

* Rename ViewExtensionLibraryTests to LibraryResourceProviderTests

- Update json file
- Address review comments

* Ensure that CopyLocal=False for Dynamo binaries (#7881)

* Fix Icon resources for library items (#7880)

- Rename BuiltIns.ds to BuiltIn.ds so that the icons for nodes from
BuiltIn.ds could be resolved from BuiltIn.customization.dll

* Update librarie.js and integrate the new API

* Update library minimized javascript file to latest

* Fix for DYN-870, removed Keys section from Organize group (#7895)

* Remove unused LibraryViewExtension font resources (#7893)

* Add description (#7904)

* Prevent loading LibraryViewExtension in test mode to prevent NUnit crash (#7906)

* wrap builtins into DS class for categorization and autocomplete

* code cleanup

* code cleanup

* address review comments

* addressed review comments

* add checks for only static FFI classes to be derived from DS class

* code cleanup

* code cleanup

* added migration, tests

* revert changes to loadedtypes json file

* updated layout spec json file

* add test cases for static class and fix some tests

* fixed prototest

* disable library view extension in test mode

* update core UI test to run when test mode is set to true and LibraryViewExtension is loaded

* Integrate ImportLibrary UI (#7905)

* Make it possible to use an external search function

* Update library minimized javascript file to latest

* Fix the build error in one test module

* Disable right-click on LibraryView (#7913)

* DYN-862: Implement event notification for libraryDataUpdated (#7896)

* Implement event notification for libraryDataUpdated

* update documentation

* Event Observer

* More testc ases

* Don't use old results when throttle re-fires

* Address review comments

* Addressing review comments

* Add node icon for Label.ByPointAndString

* Addressing more review comments

* fix failing excel tests (#7932)

* Fixed failing tests on LibraryReorg branch  (#7939)

* fix failing excel tests

* fixed tests

* changed comments

* Implement IServiceManager interface (#7949)

* build fix, update csproj (#7950)

* Add List.Equals overload to List BuiltIn class (#7954)

* fix failing excel tests

* fixed tests

* changed comments

* added builtin overload for List.Equals

* Remove SearchView and LibrarySearchView WPF views and related tests (#7956)

* fix failing excel tests

* fixed tests

* changed comments

* added builtin overload for List.Equals

* remove SearchView and LibrarySearchView WPF views

* restore deleted comments

* Remove v0.0.1 from resource path (#7961)

* Fixed merge issues

* Create DynamoVisualProgramming.DynamoCoreNodes.nuspec

* Include assembly name in fully qualified name (#7971)

* Include assembly name in fully qualified name

* Create ZeroTouchSearchElement.cs

* LibraryViewCustomization Service implementation (#7963)

* LibraryViewCustomization Service implementation

* Address review comments

* Address more review comments

* Provides support for default icon when resource not found (#7975)

* Provides support for default icon when resource not found

* Include concurrency test

* Update librarie.js minified and resources (#8004)

* Update library resources and categorization (#8010)

* Update library resource and categorization

* Remove ImportExportTests as its already moved to DSOfficeTests

* update librarie.min.js

* Implement Resource registration and app shutdown notification mechanism (#8014)

* Implement Resource registration and app shutdown notification mechanism

* Update LibraryViewExtension.Dispose implementation

* Address review comments

* Update DSCoreNodes.Migrations.xml

removed unnecessary migration path for ExportCSV node
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants