mirror of
https://github.com/nushell/nushell
synced 2025-01-13 13:49:21 +00:00
Deprecate date to-record
and date to-table
(#14319)
# Description Implements #11234 based on the comments there: * (Previously implemented): `into record` handles nanoseconds (as well as milliseconds and microseconds, which the deprecated commands didn't support). * Added deprecation warning to `date to-record` and `date to-table` * Added new example for `into record` showing the conversion to a table * Changed `std/dt` to use `into record` * Added "Deprecated" category back to nu-protocol::Signature * Assigned the deprecated commands to the Deprecated category so be categorized properly in the online Doc. # User-Facing Changes Deprecated command warning # Tests + Formatting - 🟢 `toolkit fmt` - 🟢 `toolkit clippy` - 🟢 `toolkit test` - 🟢 `toolkit test stdlib` # After Submitting Searched doc for existing uses of `date to-record` and `date to-table`: * For primary English-language docs, there are no uses other than in the auto-generated command help, which will be updated based on this PR * Other language translations appear to have an old use in several places and will need to be updated to match the English-language doc.
This commit is contained in:
parent
817830940b
commit
e17f6d654c
5 changed files with 34 additions and 4 deletions
|
@ -99,6 +99,11 @@ impl Command for SubCommand {
|
|||
"timezone" => Value::test_string("+02:00"),
|
||||
})),
|
||||
},
|
||||
Example {
|
||||
description: "convert date components to table columns",
|
||||
example: "2020-04-12T22:10:57+02:00 | into record | transpose | transpose -r",
|
||||
result: None,
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
use crate::date::utils::parse_date_from_string;
|
||||
use chrono::{DateTime, Datelike, FixedOffset, Local, Timelike};
|
||||
use nu_engine::command_prelude::*;
|
||||
use nu_protocol::{report_parse_warning, ParseWarning};
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct SubCommand;
|
||||
|
@ -17,7 +18,7 @@ impl Command for SubCommand {
|
|||
(Type::String, Type::record()),
|
||||
])
|
||||
.allow_variants_without_examples(true) // https://github.com/nushell/nushell/issues/7032
|
||||
.category(Category::Date)
|
||||
.category(Category::Deprecated)
|
||||
}
|
||||
|
||||
fn description(&self) -> &str {
|
||||
|
@ -35,6 +36,17 @@ impl Command for SubCommand {
|
|||
call: &Call,
|
||||
input: PipelineData,
|
||||
) -> Result<PipelineData, ShellError> {
|
||||
let head = call.head;
|
||||
report_parse_warning(
|
||||
&StateWorkingSet::new(engine_state),
|
||||
&ParseWarning::DeprecatedWarning {
|
||||
old_command: "date to-record".into(),
|
||||
new_suggestion: "see `into record` command examples".into(),
|
||||
span: head,
|
||||
url: "`help into record`".into(),
|
||||
},
|
||||
);
|
||||
|
||||
let head = call.head;
|
||||
// This doesn't match explicit nulls
|
||||
if matches!(input, PipelineData::Empty) {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
use crate::date::utils::parse_date_from_string;
|
||||
use chrono::{DateTime, Datelike, FixedOffset, Local, Timelike};
|
||||
use nu_engine::command_prelude::*;
|
||||
use nu_protocol::{report_parse_warning, ParseWarning};
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct SubCommand;
|
||||
|
@ -17,7 +18,7 @@ impl Command for SubCommand {
|
|||
(Type::String, Type::table()),
|
||||
])
|
||||
.allow_variants_without_examples(true) // https://github.com/nushell/nushell/issues/7032
|
||||
.category(Category::Date)
|
||||
.category(Category::Deprecated)
|
||||
}
|
||||
|
||||
fn description(&self) -> &str {
|
||||
|
@ -36,6 +37,16 @@ impl Command for SubCommand {
|
|||
input: PipelineData,
|
||||
) -> Result<PipelineData, ShellError> {
|
||||
let head = call.head;
|
||||
report_parse_warning(
|
||||
&StateWorkingSet::new(engine_state),
|
||||
&ParseWarning::DeprecatedWarning {
|
||||
old_command: "date to-table".into(),
|
||||
new_suggestion: "see `into record` command examples".into(),
|
||||
span: head,
|
||||
url: "`help into record`".into(),
|
||||
},
|
||||
);
|
||||
|
||||
// This doesn't match explicit nulls
|
||||
if matches!(input, PipelineData::Empty) {
|
||||
return Err(ShellError::PipelineEmpty { dst_span: head });
|
||||
|
|
|
@ -44,6 +44,7 @@ pub enum Category {
|
|||
Date,
|
||||
Debug,
|
||||
Default,
|
||||
Deprecated,
|
||||
Removed,
|
||||
Env,
|
||||
Experimental,
|
||||
|
@ -79,6 +80,7 @@ impl std::fmt::Display for Category {
|
|||
Category::Date => "date",
|
||||
Category::Debug => "debug",
|
||||
Category::Default => "default",
|
||||
Category::Deprecated => "deprecated",
|
||||
Category::Removed => "removed",
|
||||
Category::Env => "env",
|
||||
Category::Experimental => "experimental",
|
||||
|
|
|
@ -120,8 +120,8 @@ export def datetime-diff [
|
|||
}
|
||||
}
|
||||
}
|
||||
let from_expanded = ($later | date to-timezone utc | date to-record)
|
||||
let to_expanded = ($earlier | date to-timezone utc | date to-record)
|
||||
let from_expanded = ($later | date to-timezone utc | into record)
|
||||
let to_expanded = ($earlier | date to-timezone utc | into record)
|
||||
|
||||
mut result = { year: ($from_expanded.year - $to_expanded.year), month: ($from_expanded.month - $to_expanded.month), day:0, hour:0, minute:0, second:0, millisecond:0, microsecond:0, nanosecond:0}
|
||||
|
||||
|
|
Loading…
Reference in a new issue