nushell/crates
Reilly Wood 9ce61dc677
Change group-by to accept cell paths (#9020)
Closes #9003.

This PR changes `group-by` so that its optional argument is interpreted
as a cell path. In turn, this lets users use `?` to ignore rows that are
missing the column they wish to group on. For example:

```
> [{foo: 123}, {foo: 234}, {bar: 345}] | group-by foo
Error: nu:🐚:column_not_found

  × Cannot find column
   ╭─[entry #3:1:1]
 1 │ [{foo: 123}, {foo: 234}, {bar: 345}] | group-by foo
   ·                          ─────┬────             ─┬─
   ·                               │                  ╰── cannot find column 'foo'
   ·                               ╰── value originates here
   ╰────

> [{foo: 123}, {foo: 234}, {bar: 345}] | group-by foo?
╭─────┬───────────────╮
│ 123 │ [table 1 row] │
│ 234 │ [table 1 row] │
╰─────┴───────────────╯
```

~~This removes the ability to pass `group-by` a closure or block (I
wasn't able to figure out how to make the 2 features coexist), and so it
is a breaking change. I think this is OK; I didn't even know `group-by`
could accept a closure or block because there was no example for that
functionality.~~
2023-05-17 18:34:44 -05:00
..
nu_plugin_custom_values bump nushell from release version to development version (#9215) 2023-05-17 07:59:01 -05:00
nu_plugin_example bump nushell from release version to development version (#9215) 2023-05-17 07:59:01 -05:00
nu_plugin_formats bump nushell from release version to development version (#9215) 2023-05-17 07:59:01 -05:00
nu_plugin_gstat bump nushell from release version to development version (#9215) 2023-05-17 07:59:01 -05:00
nu_plugin_inc bump nushell from release version to development version (#9215) 2023-05-17 07:59:01 -05:00
nu_plugin_python update nu_plugin_python due to signature changes (#8107) 2023-02-18 13:27:24 +00:00
nu_plugin_query bump nushell from release version to development version (#9215) 2023-05-17 07:59:01 -05:00
nu-cli Avoid blocking when o+e> redirects too much stderr message (#8784) 2023-05-17 17:47:03 -05:00
nu-cmd-lang bump nushell from release version to development version (#9215) 2023-05-17 07:59:01 -05:00
nu-color-config bump nushell from release version to development version (#9215) 2023-05-17 07:59:01 -05:00
nu-command Change group-by to accept cell paths (#9020) 2023-05-17 18:34:44 -05:00
nu-engine Avoid blocking when o+e> redirects too much stderr message (#8784) 2023-05-17 17:47:03 -05:00
nu-explore bump nushell from release version to development version (#9215) 2023-05-17 07:59:01 -05:00
nu-glob bump nushell from release version to development version (#9215) 2023-05-17 07:59:01 -05:00
nu-json bump nushell from release version to development version (#9215) 2023-05-17 07:59:01 -05:00
nu-parser Avoid blocking when o+e> redirects too much stderr message (#8784) 2023-05-17 17:47:03 -05:00
nu-path bump nushell from release version to development version (#9215) 2023-05-17 07:59:01 -05:00
nu-plugin bump nushell from release version to development version (#9215) 2023-05-17 07:59:01 -05:00
nu-pretty-hex bump nushell from release version to development version (#9215) 2023-05-17 07:59:01 -05:00
nu-protocol Avoid blocking when o+e> redirects too much stderr message (#8784) 2023-05-17 17:47:03 -05:00
nu-std fix spurious 'item not found' error in std help (#9197) 2023-05-17 20:02:23 +02:00
nu-system bump nushell from release version to development version (#9215) 2023-05-17 07:59:01 -05:00
nu-table bump nushell from release version to development version (#9215) 2023-05-17 07:59:01 -05:00
nu-term-grid bump nushell from release version to development version (#9215) 2023-05-17 07:59:01 -05:00
nu-test-support bump nushell from release version to development version (#9215) 2023-05-17 07:59:01 -05:00
nu-utils bump nushell from release version to development version (#9215) 2023-05-17 07:59:01 -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.