nushell/crates
NotTheDr01ds 4e83ccdf86
Allow int input when using a formatstring in into datetime (#13541)
# Description

When using a format string, `into datetime` would disallow an `int` even
when it logically made sense. This was mainly a problem when attempting
to convert a Unix epoch to Nushell `datetime`. Unix epochs are often
stored or returned as `int` in external data sources.

```nu
1722821463 | into datetime -f '%s'
Error: nu:🐚:only_supports_this_input_type

  × Input type not supported.
   ╭─[entry #3:1:1]
 1 │ 1722821463 | into datetime -f '%s'
   · ─────┬────   ──────┬──────
   ·      │             ╰── only string input data is supported
   ·      ╰── input type: int
   ╰────
```

While the solution was simply to `| to text` the `int`, this PR handles
the use-case automatically.

Essentially a ~5 line change that just moves the current parsing to a
closure that is called for both Strings and Ints-converted-to-Strings.

# User-Facing Changes

After the change:

```nu
[
  1722821463
  "1722821463"
  0
] | each { into datetime -f '%s' }
╭───┬──────────────╮
│ 0 │ 10 hours ago │
│ 1 │ 10 hours ago │
│ 2 │ 54 years ago │
╰───┴──────────────╯
```

# Tests + Formatting

Test case added.

- 🟢 `toolkit fmt`
- 🟢 `toolkit clippy`
- 🟢 `toolkit test`
- 🟢 `toolkit test stdlib`

# After Submitting
2024-08-05 20:05:32 -05:00
..
nu_plugin_custom_values Bump version to 0.96.2 (#13485) 2024-07-29 17:20:55 -07:00
nu_plugin_example feat: make ctrlc available to plugins (#13181) 2024-07-30 08:29:18 -05:00
nu_plugin_formats Adding plist support (#13545) 2024-08-05 14:07:15 -07:00
nu_plugin_gstat Bump version to 0.96.2 (#13485) 2024-07-29 17:20:55 -07:00
nu_plugin_inc Bump version to 0.96.2 (#13485) 2024-07-29 17:20:55 -07:00
nu_plugin_nu_example Make pipeline metadata available to plugins (#13495) 2024-08-02 11:01:20 -07:00
nu_plugin_polars Add "--as-columns" flag to polars into-df (#13449) 2024-07-30 08:50:50 -05:00
nu_plugin_python Make pipeline metadata available to plugins (#13495) 2024-08-02 11:01:20 -07:00
nu_plugin_query Include empty table data cells in query web tables (#13538) 2024-08-05 06:20:14 -05:00
nu_plugin_stress_internals Make pipeline metadata available to plugins (#13495) 2024-08-02 11:01:20 -07:00
nu-cli Add completions.sort option (#13311) 2024-08-05 20:30:10 -04:00
nu-cmd-base Path migration part 3: $nu paths (#13368) 2024-08-01 10:16:31 +02:00
nu-cmd-extra Bump version to 0.96.2 (#13485) 2024-07-29 17:20:55 -07:00
nu-cmd-lang setting content type metadata on all core to * commands (#13506) 2024-08-01 11:10:52 +02:00
nu-cmd-plugin Bump version to 0.96.2 (#13485) 2024-07-29 17:20:55 -07:00
nu-color-config Bump version to 0.96.2 (#13485) 2024-07-29 17:20:55 -07:00
nu-command Allow int input when using a formatstring in into datetime (#13541) 2024-08-05 20:05:32 -05:00
nu-derive-value Bump version to 0.96.2 (#13485) 2024-07-29 17:20:55 -07:00
nu-engine Rework help generation internals (#13531) 2024-08-05 22:44:24 +02:00
nu-explore Bump version to 0.96.2 (#13485) 2024-07-29 17:20:55 -07:00
nu-glob Bump version to 0.96.2 (#13485) 2024-07-29 17:20:55 -07:00
nu-json Bump version to 0.96.2 (#13485) 2024-07-29 17:20:55 -07:00
nu-lsp Add completions.sort option (#13311) 2024-08-05 20:30:10 -04:00
nu-parser Contentious clippy fixes (#13498) 2024-08-01 11:02:55 +02:00
nu-path Path migration part 3: $nu paths (#13368) 2024-08-01 10:16:31 +02:00
nu-plugin Rework help generation internals (#13531) 2024-08-05 22:44:24 +02:00
nu-plugin-core Make pipeline metadata available to plugins (#13495) 2024-08-02 11:01:20 -07:00
nu-plugin-engine Make pipeline metadata available to plugins (#13495) 2024-08-02 11:01:20 -07:00
nu-plugin-protocol Make pipeline metadata available to plugins (#13495) 2024-08-02 11:01:20 -07:00
nu-plugin-test-support Bump similar from 2.5.0 to 2.6.0 (#13492) 2024-07-31 08:10:33 +00:00
nu-pretty-hex Clippy fixes from stable and nightly (#13455) 2024-07-31 20:37:40 +02:00
nu-protocol Add completions.sort option (#13311) 2024-08-05 20:30:10 -04:00
nu-std fix: Make log respect use_ansi_coloring setting. (#13442) 2024-07-30 08:34:11 -05:00
nu-system Clippy fixes from stable and nightly (#13455) 2024-07-31 20:37:40 +02:00
nu-table Bump version to 0.96.2 (#13485) 2024-07-29 17:20:55 -07:00
nu-term-grid Bump version to 0.96.2 (#13485) 2024-07-29 17:20:55 -07:00
nu-test-support Path migration part 4: various tests (#13373) 2024-08-03 10:09:13 +02:00
nu-utils Add completions.sort option (#13311) 2024-08-05 20:30:10 -04:00
nuon Clippy fixes from stable and nightly (#13455) 2024-07-31 20:37:40 +02: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.