FEATURE: fix the namespace of the standard library (not testing) (#9193)

This commit is contained in:
Antoine Stevan 2023-05-19 22:27:45 +02:00 committed by GitHub
parent c55b5c0a55
commit 55bb501c71
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 96 additions and 96 deletions

View File

@ -8,7 +8,7 @@ export-env {
# Add one or more directories to the list. # Add one or more directories to the list.
# PWD becomes first of the newly added directories. # PWD becomes first of the newly added directories.
export def-env "dirs add" [ export def-env add [
...paths: string # directory or directories to add to working list ...paths: string # directory or directories to add to working list
] { ] {
mut abspaths = [] mut abspaths = []
@ -27,29 +27,29 @@ export def-env "dirs add" [
_fetch 0 _fetch 0
} }
export alias enter = dirs add export alias enter = add
# Advance to the next directory in the list or wrap to beginning. # Advance to the next directory in the list or wrap to beginning.
export def-env "dirs next" [ export def-env next [
N:int = 1 # number of positions to move. N:int = 1 # number of positions to move.
] { ] {
_fetch $N _fetch $N
} }
export alias n = dirs next export alias n = next
# Back up to the previous directory or wrap to the end. # Back up to the previous directory or wrap to the end.
export def-env "dirs prev" [ export def-env prev [
N:int = 1 # number of positions to move. N:int = 1 # number of positions to move.
] { ] {
_fetch (-1 * $N) _fetch (-1 * $N)
} }
export alias p = dirs prev export alias p = prev
# Drop the current directory from the list, if it's not the only one. # Drop the current directory from the list, if it's not the only one.
# PWD becomes the next working directory # PWD becomes the next working directory
export def-env "dirs drop" [] { export def-env drop [] {
if ($env.DIRS_LIST | length) > 1 { if ($env.DIRS_LIST | length) > 1 {
let-env DIRS_LIST = ( let-env DIRS_LIST = (
($env.DIRS_LIST | take $env.DIRS_POSITION) ($env.DIRS_LIST | take $env.DIRS_POSITION)
@ -60,10 +60,10 @@ export def-env "dirs drop" [] {
_fetch 0 _fetch 0
} }
export alias dexit = dirs drop export alias dexit = drop
# Display current working directories. # Display current working directories.
export def-env "dirs show" [] { export def-env show [] {
mut out = [] mut out = []
for $p in ($env.DIRS_LIST | enumerate) { for $p in ($env.DIRS_LIST | enumerate) {
$out = ($out | append [ $out = ($out | append [
@ -75,11 +75,11 @@ export def-env "dirs show" [] {
$out $out
} }
export alias shells = dirs show export alias shells = show
export def-env "dirs goto" [shell?: int] { export def-env goto [shell?: int] {
if $shell == null { if $shell == null {
return (dirs show) return (show)
} }
if $shell < 0 or $shell >= ($env.DIRS_LIST | length) { if $shell < 0 or $shell >= ($env.DIRS_LIST | length) {
@ -98,7 +98,7 @@ export def-env "dirs goto" [shell?: int] {
cd ($env.DIRS_LIST | get $env.DIRS_POSITION) cd ($env.DIRS_LIST | get $env.DIRS_POSITION)
} }
export alias g = dirs goto export alias g = goto
# fetch item helper # fetch item helper
def-env _fetch [ def-env _fetch [

View File

@ -237,7 +237,7 @@ def show-module [module: record] {
# · ────────┬─────── # · ────────┬───────
# · ╰── module not found # · ╰── module not found
# ╰──── # ╰────
export def "help modules" [ export def modules [
...module: string@"nu-complete list-modules" # the name of module to get help on ...module: string@"nu-complete list-modules" # the name of module to get help on
--find (-f): string # string to find in module names --find (-f): string # string to find in module names
] { ] {
@ -340,7 +340,7 @@ def show-alias [alias: record] {
# · ────────┬─────── # · ────────┬───────
# · ╰── alias not found # · ╰── alias not found
# ╰──── # ╰────
export def "help aliases" [ export def aliases [
...alias: string@"nu-complete list-aliases" # the name of alias to get help on ...alias: string@"nu-complete list-aliases" # the name of alias to get help on
--find (-f): string # string to find in alias names --find (-f): string # string to find in alias names
] { ] {
@ -373,7 +373,7 @@ def show-extern [extern: record] {
} }
# Show help on nushell externs. # Show help on nushell externs.
export def "help externs" [ export def externs [
...extern: string@"nu-complete list-externs" # the name of extern to get help on ...extern: string@"nu-complete list-externs" # the name of extern to get help on
--find (-f): string # string to find in extern names --find (-f): string # string to find in extern names
] { ] {
@ -444,7 +444,7 @@ def show-operator [operator: record] {
# · ────────┬─────── # · ────────┬───────
# · ╰── operator not found # · ╰── operator not found
# ╰──── # ╰────
export def "help operators" [ export def operators [
...operator: string@"nu-complete list-operators" # the name of operator to get help on ...operator: string@"nu-complete list-operators" # the name of operator to get help on
--find (-f): string # string to find in operator names --find (-f): string # string to find in operator names
] { ] {
@ -647,7 +647,7 @@ def show-command [command: record] {
} }
# Show help on commands. # Show help on commands.
export def "help commands" [ export def commands [
...command: string@"nu-complete list-commands" # the name of command to get help on ...command: string@"nu-complete list-commands" # the name of command to get help on
--find (-f): string # string to find in command names and usage --find (-f): string # string to find in command names and usage
] { ] {

View File

@ -27,7 +27,7 @@
# assert equal $found "abc" # assert equal $found "abc"
# assert equal $not_found null # assert equal $not_found null
# ``` # ```
export def "iter find" [ # -> any | null export def find [ # -> any | null
fn: closure # the closure used to perform the search fn: closure # the closure used to perform the search
] { ] {
try { try {
@ -57,7 +57,7 @@ export def "iter find" [ # -> any | null
# let res = ([3 5 13 91] | iter find-index $is_even) # let res = ([3 5 13 91] | iter find-index $is_even)
# assert equal $res -1 # assert equal $res -1
# ``` # ```
export def "iter find-index" [ # -> int export def find-index [ # -> int
fn: closure # the closure used to perform the search fn: closure # the closure used to perform the search
] { ] {
let matches = ( let matches = (
@ -86,7 +86,7 @@ export def "iter find-index" [ # -> int
# let res = ([1 2 3 4] | iter intersperse 0) # let res = ([1 2 3 4] | iter intersperse 0)
# assert equal $res [1 0 2 0 3 0 4] # assert equal $res [1 0 2 0 3 0 4]
# ``` # ```
export def "iter intersperse" [ # -> list<any> export def intersperse [ # -> list<any>
separator: any # the separator to be used separator: any # the separator to be used
] { ] {
reduce -f [] {|it, acc| reduce -f [] {|it, acc|
@ -117,7 +117,7 @@ export def "iter intersperse" [ # -> list<any>
# #
# assert equal $scanned [1, 3, 6] # assert equal $scanned [1, 3, 6]
# ``` # ```
export def "iter scan" [ # -> list<any> export def scan [ # -> list<any>
init: any # initial value to seed the initial state init: any # initial value to seed the initial state
fn: closure # the closure to perform the scan fn: closure # the closure to perform the scan
--noinit(-n) # remove the initial value from the result --noinit(-n) # remove the initial value from the result
@ -144,7 +144,7 @@ export def "iter scan" [ # -> list<any>
# #
# assert equal $res [4 25 49] # assert equal $res [4 25 49]
# ``` # ```
export def "iter filter-map" [ # -> list<any> export def filter-map [ # -> list<any>
fn: closure # the closure to apply to the input fn: closure # the closure to apply to the input
] { ] {
each {|$it| each {|$it|
@ -170,7 +170,7 @@ export def "iter filter-map" [ # -> list<any>
# ) # )
# assert equal $res [6 9 18] # assert equal $res [6 9 18]
# ``` # ```
export def "iter flat-map" [ # -> list<any> export def flat-map [ # -> list<any>
fn: closure # the closure to map to the nested structures fn: closure # the closure to map to the nested structures
] { ] {
each {|it| do $fn $it } | flatten each {|it| do $fn $it } | flatten
@ -188,7 +188,7 @@ export def "iter flat-map" [ # -> list<any>
# #
# assert equal $res [3 5 7] # assert equal $res [3 5 7]
# ``` # ```
export def "iter zip-with" [ # -> list<any> export def zip-with [ # -> list<any>
other: any # the structure to zip with other: any # the structure to zip with
fn: closure # the closure to apply to the zips fn: closure # the closure to apply to the zips
] { ] {

View File

@ -1,40 +1,40 @@
export def "log CRITICAL_LEVEL" [] { export def CRITICAL_LEVEL [] {
50 50
} }
export def "log ERROR_LEVEL" [] { export def ERROR_LEVEL [] {
40 40
} }
export def "log WARNING_LEVEL" [] { export def WARNING_LEVEL [] {
30 30
} }
export def "log INFO_LEVEL" [] { export def INFO_LEVEL [] {
20 20
} }
export def "log DEBUG_LEVEL" [] { export def DEBUG_LEVEL [] {
10 10
} }
def parse-string-level [ def parse-string-level [
level: string level: string
] { ] {
if $level in [(log CRITICAL_LEVEL_PREFIX) (log CRITICAL_LEVEL_PREFIX --short) "CRIT" "CRITICAL"] { if $level in [(CRITICAL_LEVEL_PREFIX) (CRITICAL_LEVEL_PREFIX --short) "CRIT" "CRITICAL"] {
log CRITICAL_LEVEL CRITICAL_LEVEL
} else if $level in [(log ERROR_LEVEL_PREFIX) (log ERROR_LEVEL_PREFIX --short) "ERROR" ] { } else if $level in [(ERROR_LEVEL_PREFIX) (ERROR_LEVEL_PREFIX --short) "ERROR" ] {
log ERROR_LEVEL ERROR_LEVEL
} else if $level in [(log WARNING_LEVEL_PREFIX) (log WARNING_LEVEL_PREFIX --short) "WARN" "WARNING"] { } else if $level in [(WARNING_LEVEL_PREFIX) (WARNING_LEVEL_PREFIX --short) "WARN" "WARNING"] {
log WARNING_LEVEL WARNING_LEVEL
} else if $level in [(log DEBUG_LEVEL_PREFIX) (log DEBUG_LEVEL_PREFIX --short) "DEBUG"] { } else if $level in [(DEBUG_LEVEL_PREFIX) (DEBUG_LEVEL_PREFIX --short) "DEBUG"] {
log DEBUG_LEVEL DEBUG_LEVEL
} else { } else {
log INFO_LEVEL INFO_LEVEL
} }
} }
export def "log CRITICAL_LEVEL_PREFIX" [ export def CRITICAL_LEVEL_PREFIX [
--short (-s) --short (-s)
] { ] {
if $short { if $short {
@ -44,7 +44,7 @@ export def "log CRITICAL_LEVEL_PREFIX" [
} }
} }
export def "log ERROR_LEVEL_PREFIX" [ export def ERROR_LEVEL_PREFIX [
--short (-s) --short (-s)
] { ] {
if $short { if $short {
@ -54,7 +54,7 @@ export def "log ERROR_LEVEL_PREFIX" [
} }
} }
export def "log WARNING_LEVEL_PREFIX" [ export def WARNING_LEVEL_PREFIX [
--short (-s) --short (-s)
] { ] {
if $short { if $short {
@ -64,7 +64,7 @@ export def "log WARNING_LEVEL_PREFIX" [
} }
} }
export def "log INFO_LEVEL_PREFIX" [ export def INFO_LEVEL_PREFIX [
--short (-s) --short (-s)
] { ] {
if $short { if $short {
@ -74,7 +74,7 @@ export def "log INFO_LEVEL_PREFIX" [
} }
} }
export def "log DEBUG_LEVEL_PREFIX" [ export def DEBUG_LEVEL_PREFIX [
--short (-s) --short (-s)
] { ] {
if $short { if $short {
@ -88,41 +88,41 @@ def parse-int-level [
level: int, level: int,
--short (-s) --short (-s)
] { ] {
if $level >= (log CRITICAL_LEVEL) { if $level >= (CRITICAL_LEVEL) {
if $short { if $short {
log CRITICAL_LEVEL_PREFIX --short CRITICAL_LEVEL_PREFIX --short
} else { } else {
log CRITICAL_LEVEL_PREFIX CRITICAL_LEVEL_PREFIX
} }
} else if $level >= (log ERROR_LEVEL) { } else if $level >= (ERROR_LEVEL) {
if $short { if $short {
log ERROR_LEVEL_PREFIX --short ERROR_LEVEL_PREFIX --short
} else { } else {
log ERROR_LEVEL_PREFIX ERROR_LEVEL_PREFIX
} }
} else if $level >= (log WARNING_LEVEL) { } else if $level >= (WARNING_LEVEL) {
if $short { if $short {
log WARNING_LEVEL_PREFIX --short WARNING_LEVEL_PREFIX --short
} else { } else {
log WARNING_LEVEL_PREFIX WARNING_LEVEL_PREFIX
} }
} else if $level >= (log INFO_LEVEL) { } else if $level >= (INFO_LEVEL) {
if $short { if $short {
log INFO_LEVEL_PREFIX --short INFO_LEVEL_PREFIX --short
} else { } else {
log INFO_LEVEL_PREFIX INFO_LEVEL_PREFIX
} }
} else { } else {
if $short { if $short {
log DEBUG_LEVEL_PREFIX --short DEBUG_LEVEL_PREFIX --short
} else { } else {
log DEBUG_LEVEL_PREFIX DEBUG_LEVEL_PREFIX
} }
} }
} }
def current-log-level [] { def current-log-level [] {
let env_level = ($env.NU_LOG_LEVEL? | default (log INFO_LEVEL)) let env_level = ($env.NU_LOG_LEVEL? | default (INFO_LEVEL))
try { try {
$env_level | into int $env_level | into int
@ -144,86 +144,86 @@ def log-formatted [
} }
# Log a critical message # Log a critical message
export def "log critical" [ export def critical [
message: string, # A message message: string, # A message
--short (-s) # Whether to use a short prefix --short (-s) # Whether to use a short prefix
] { ] {
if (current-log-level) > (log CRITICAL_LEVEL) { if (current-log-level) > (CRITICAL_LEVEL) {
return return
} }
let prefix = if $short { let prefix = if $short {
log CRITICAL_LEVEL_PREFIX --short CRITICAL_LEVEL_PREFIX --short
} else { } else {
log CRITICAL_LEVEL_PREFIX CRITICAL_LEVEL_PREFIX
} }
log-formatted (ansi red_bold) $prefix $message log-formatted (ansi red_bold) $prefix $message
} }
# Log an error message # Log an error message
export def "log error" [ export def error [
message: string, # A message message: string, # A message
--short (-s) # Whether to use a short prefix --short (-s) # Whether to use a short prefix
] { ] {
if (current-log-level) > (log ERROR_LEVEL) { if (current-log-level) > (ERROR_LEVEL) {
return return
} }
let prefix = if $short { let prefix = if $short {
log ERROR_LEVEL_PREFIX --short ERROR_LEVEL_PREFIX --short
} else { } else {
log ERROR_LEVEL_PREFIX ERROR_LEVEL_PREFIX
} }
log-formatted (ansi red) $prefix $message log-formatted (ansi red) $prefix $message
} }
# Log a warning message # Log a warning message
export def "log warning" [ export def warning [
message: string, # A message message: string, # A message
--short (-s) # Whether to use a short prefix --short (-s) # Whether to use a short prefix
] { ] {
if (current-log-level) > (log WARNING_LEVEL) { if (current-log-level) > (WARNING_LEVEL) {
return return
} }
let prefix = if $short { let prefix = if $short {
log WARNING_LEVEL_PREFIX --short WARNING_LEVEL_PREFIX --short
} else { } else {
log WARNING_LEVEL_PREFIX WARNING_LEVEL_PREFIX
} }
log-formatted (ansi yellow) $prefix $message log-formatted (ansi yellow) $prefix $message
} }
# Log an info message # Log an info message
export def "log info" [ export def info [
message: string, # A message message: string, # A message
--short (-s) # Whether to use a short prefix --short (-s) # Whether to use a short prefix
] { ] {
if (current-log-level) > (log INFO_LEVEL) { if (current-log-level) > (INFO_LEVEL) {
return return
} }
let prefix = if $short { let prefix = if $short {
log INFO_LEVEL_PREFIX --short INFO_LEVEL_PREFIX --short
} else { } else {
log INFO_LEVEL_PREFIX INFO_LEVEL_PREFIX
} }
log-formatted (ansi default) $prefix $message log-formatted (ansi default) $prefix $message
} }
# Log a debug message # Log a debug message
export def "log debug" [ export def debug [
message: string, # A message message: string, # A message
--short (-s) # Whether to use a short prefix --short (-s) # Whether to use a short prefix
] { ] {
if (current-log-level) > (log DEBUG_LEVEL) { if (current-log-level) > (DEBUG_LEVEL) {
return return
} }
let prefix = if $short { let prefix = if $short {
log DEBUG_LEVEL_PREFIX --short DEBUG_LEVEL_PREFIX --short
} else { } else {
log DEBUG_LEVEL_PREFIX DEBUG_LEVEL_PREFIX
} }
log-formatted (ansi default_dimmed) $prefix $message log-formatted (ansi default_dimmed) $prefix $message
} }
@ -237,7 +237,7 @@ export def "log debug" [
# #
# Examples: # Examples:
# - std log custom "my message" $"(ansi yellow)[%LEVEL%]MY MESSAGE: %MSG% [%DATE%](ansi reset)" (std log WARNING_LEVEL) # - std log custom "my message" $"(ansi yellow)[%LEVEL%]MY MESSAGE: %MSG% [%DATE%](ansi reset)" (std log WARNING_LEVEL)
export def "log custom" [ export def custom [
message: string, # A message message: string, # A message
format: string, # A format format: string, # A format
log_level: int # A log level log_level: int # A log level

View File

@ -1,15 +1,15 @@
# std.nu, `used` to load all standard library components # std.nu, `used` to load all standard library components
export use dirs * export use dirs
export-env { export-env {
use dirs * use dirs *
} }
export use help * export use help
export use iter * export use iter
export use log * export use log
export use testing * export use testing *
export use xml * export use xml
export use dt [datetime-diff, pretty-print-duration] use dt [datetime-diff, pretty-print-duration]
# Add the given paths to the PATH. # Add the given paths to the PATH.
# #

View File

@ -5,7 +5,7 @@
# Assert commands and test runner. # Assert commands and test runner.
# #
################################################################################## ##################################################################################
use log * use log
# Universal assert command # Universal assert command
# #

View File

@ -97,12 +97,12 @@ pub fn load_standard_library(
("std help externs", "help externs"), ("std help externs", "help externs"),
("std help operators", "help operators"), ("std help operators", "help operators"),
("enter", "enter"), ("enter", "dirs enter"),
("shells", "shells"), ("shells", "dirs shells"),
("g", "g"), ("g", "dirs g"),
("n", "n"), ("n", "dirs n"),
("p", "p"), ("p", "dirs p"),
("dexit", "dexit"), ("dexit", "dirs dexit"),
]; ];
let mut working_set = StateWorkingSet::new(engine_state); let mut working_set = StateWorkingSet::new(engine_state);

View File

@ -1,6 +1,6 @@
use std "xaccess" use std xml xaccess
use std "xupdate" use std xml xupdate
use std "xinsert" use std xml xinsert
use std "assert equal" use std "assert equal"
export def setup [] { export def setup [] {