nushell/crates
Jack Wright efc1cfa939
Move dataframes support to a plugin (#12220)
WIP

This PR covers migration crates/nu-cmd-dataframes to a new plugin
./crates/nu_plugin_polars

## TODO List

Other:
- [X] Fix examples
- [x] Fix Plugin Test Harness
- [X] Move Cache to Mutex<BTreeMap>
- [X] Logic for disabling/enabling plugin GC based off whether items are
cached.
- [x] NuExpression custom values
- [X] Optimize caching (don't cache every object creation). 
- [x] Fix dataframe operations (in NuDataFrameCustomValue::operations)
- [x] Added plugin_debug! macro that for checking an env variable
POLARS_PLUGIN_DEBUG

Fix duplicated commands:
- [x] There are two polars median commands, one for lazy and one for
expr.. there should only be one that works for both. I temporarily
called on polars expr-median (inside expressions_macros.rs)
- [x] polars quantile (lazy, and expr). the expr one is temporarily
expr-median
- [x] polars is-in (renamed one series-is-in)

Commands:
- [x] AppendDF
- [x] CastDF
- [X] ColumnsDF
- [x] DataTypes
- [x] Summary
- [x] DropDF
- [x] DropDuplicates
- [x] DropNulls
- [x] Dummies
- [x] FilterWith
- [X] FirstDF
- [x] GetDF
- [x] LastDF
- [X] ListDF
- [x] MeltDF
- [X] OpenDataFrame
- [x] QueryDf
- [x] RenameDF
- [x] SampleDF
- [x] SchemaDF
- [x] ShapeDF
- [x] SliceDF
- [x] TakeDF
- [X] ToArrow
- [x] ToAvro
- [X] ToCSV
- [X] ToDataFrame
- [X] ToNu
- [x] ToParquet
- [x] ToJsonLines
- [x] WithColumn
- [x] ExprAlias
- [x] ExprArgWhere
- [x] ExprCol
- [x] ExprConcatStr
- [x] ExprCount
- [x] ExprLit
- [x] ExprWhen
- [x] ExprOtherwise
- [x] ExprQuantile
- [x] ExprList
- [x] ExprAggGroups
- [x] ExprCount
- [x] ExprIsIn
- [x] ExprNot
- [x] ExprMax
- [x] ExprMin
- [x] ExprSum
- [x] ExprMean
- [x] ExprMedian
- [x] ExprStd
- [x] ExprVar
- [x] ExprDatePart
- [X] LazyAggregate
- [x] LazyCache
- [X] LazyCollect
- [x] LazyFetch
- [x] LazyFillNA
- [x] LazyFillNull
- [x] LazyFilter
- [x] LazyJoin
- [x] LazyQuantile
- [x] LazyMedian
- [x] LazyReverse
- [x] LazySelect
- [x] LazySortBy
- [x] ToLazyFrame
- [x] ToLazyGroupBy
- [x] LazyExplode
- [x] LazyFlatten
- [x] AllFalse
- [x] AllTrue
- [x] ArgMax
- [x] ArgMin
- [x] ArgSort
- [x] ArgTrue
- [x] ArgUnique
- [x] AsDate
- [x] AsDateTime
- [x] Concatenate
- [x] Contains
- [x] Cumulative
- [x] GetDay
- [x] GetHour
- [x] GetMinute
- [x] GetMonth
- [x] GetNanosecond
- [x] GetOrdinal
- [x] GetSecond
- [x] GetWeek
- [x] GetWeekDay
- [x] GetYear
- [x] IsDuplicated
- [x] IsIn
- [x] IsNotNull
- [x] IsNull
- [x] IsUnique
- [x] NNull
- [x] NUnique
- [x] NotSeries
- [x] Replace
- [x] ReplaceAll
- [x] Rolling
- [x] SetSeries
- [x] SetWithIndex
- [x] Shift
- [x] StrLengths
- [x] StrSlice
- [x] StrFTime
- [x] ToLowerCase
- [x] ToUpperCase
- [x] Unique
- [x] ValueCount

---------

Co-authored-by: Jack Wright <jack.wright@disqo.com>
2024-04-09 19:31:43 -05:00
..
nu_plugin_custom_values Fix deadlock on PluginCustomValue drop (#12418) 2024-04-05 21:57:00 -05:00
nu_plugin_example Add GetSpanContents engine call (#12439) 2024-04-09 10:02:17 -04:00
nu_plugin_formats Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu_plugin_gstat Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu_plugin_inc Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu_plugin_polars Move dataframes support to a plugin (#12220) 2024-04-09 19:31:43 -05:00
nu_plugin_python Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu_plugin_query Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-cli Rename IoStream to OutDest (#12433) 2024-04-09 16:48:32 +00:00
nu-cmd-base Range refactor (#12405) 2024-04-06 09:04:56 -05:00
nu-cmd-dataframe Move dataframes support to a plugin (#12220) 2024-04-09 19:31:43 -05:00
nu-cmd-extra Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-cmd-lang Rename IoStream to OutDest (#12433) 2024-04-09 16:48:32 +00:00
nu-color-config Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-command Isolate tests from user config (#12437) 2024-04-10 06:27:46 +08:00
nu-engine Rename IoStream to OutDest (#12433) 2024-04-09 16:48:32 +00:00
nu-explore Rename IoStream to OutDest (#12433) 2024-04-09 16:48:32 +00:00
nu-glob Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-json Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-lsp Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-parser Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-path Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-plugin Rename IoStream to OutDest (#12433) 2024-04-09 16:48:32 +00:00
nu-plugin-test-support Bump similar from 2.4.0 to 2.5.0 (#12375) 2024-04-07 21:50:11 +00:00
nu-pretty-hex Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-protocol Rename IoStream to OutDest (#12433) 2024-04-09 16:48:32 +00:00
nu-std Isolate tests from user config (#12437) 2024-04-10 06:27:46 +08:00
nu-system Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-table Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-term-grid Bump version to 0.92.2 (#12402) 2024-04-05 10:24:00 -04:00
nu-test-support Isolate tests from user config (#12437) 2024-04-10 06:27:46 +08:00
nu-utils Make auto-cd check for permissions (#12342) 2024-04-06 08:56:46 -05:00
README.md Remove old nushell/merge engine-q 2022-02-07 14:54:06 -05:00

Nushell core libraries and plugins

These sub-crates form both the foundation for Nu and a set of plugins which extend Nu with additional functionality.

Foundational libraries are split into two kinds of crates:

  • Core crates - those crates that work together to build the Nushell language engine
  • Support crates - a set of crates that support the engine with additional features like JSON support, ANSI support, and more.

Plugins are likewise also split into two types:

  • Core plugins - plugins that provide part of the default experience of Nu, including access to the system properties, processes, and web-connectivity features.
  • Extra plugins - these plugins run a wide range of different capabilities like working with different file types, charting, viewing binary data, and more.