Recent Releases of xan
xan - v0.52.0
Breaking
xan search --countwill not emit rows with 0 matches anymore unless--leftis used.
Features
xan transformis now able to work on a selection of columns, rather than on a single column.- Adding the
xan unpivotcommand. - Adding the
xan pivotcommand. - Adding
xan join --semi&xan join --anticommands. - Adding
xan slice --raw. - Adding default expression argument to
lead&lagwindow functions. - Adding
shlex_split,cmdandshellmoonblade functions. - Adding
aarch64-apple-darwinandaarch64-unknown-linux-gnuto CI builds. - Adding
to_fixedmoonblade function. - Adding decimal places optional argument to
ratio&percentageaggregation functions. - Adding
frac&dense_rankaggregation functions toxan window.
Fixes
- Loosening
xan partitionsanitizer to allow hyphens, dashes and points. - Fixing
xan parallel --progressdisplay. - Fixing logic error in
xan search -Bwhen using without--left. - Fixing
xan parallel catwhen working on file chunks with-Por-H. - Fixing moonblade list/string slicing with some combinations of negatives indices.
- Fixing moonblade
splitfunction not using regex patterns properly. - Fixing moonblade parsing wrt regex patterns and comments (using a regex pattern containing
#was not possible). - Fixing
leadwindow aggregation function when working on any column that is not the first one. - Fixing
xan view -S/--significancebeing overzealous, especially wrt integers.
Performance
- Improving performance of
xan parallelwhen working on file chunks.
Quality of Life
xan headersnow report more useful information when files have diverging headers.- Better error messages for
read_jsonandparse_jsonmoonblade functions. xan view -pwill not engage pager when input errored or is empty.xan select -e & -fbecome boolean flags instead of error-inducing invocation variants.
- Rust
Published by github-actions[bot] 7 months ago
xan - v0.51.0
The parallel update.
Breaking
- Dropping undocumented
xan indexand related interactions (inxan count,xan sample,xan slice&xan split --jobs). - Dropping now useless
coalescemoonblade function. xan splitnow accepts its output directory as an optional flag.xan partitionnow accepts its output directory as an optional flag.xan split -sbecomesxan split -Sto avoid confusion with the-s/--selectflag used everywhere else.- Dropping useless
xan count --csvflag. - Dropping
xan freq -t/--threshold. Usexan freq | xan filter 'count >= n'instead. - Adding
xan slice -I/--indicestaking care ofxan slice -ipolymorphism taking multiple indices before. xan parallel freqnow followsxan freqbehavior regarding limits.- Dropping
xan url-join&xan regex-join. Both commands have been merged into a newxan fuzzy-joincommand using the-u/--url-prefix&-r/--regexflags respectively. xan from --sheetbecomes--sheet-nameand is no longer the default.--sheet-index 0becomes the default.- Dropping
xan foreach. It is not distinctive enough as you can usexan mapfor the same purpose and get useful information about the results of evaluated side effects or write to/dev/null. - Renaming
xan agg --colstoxan agg --along-rows. - Changing
cellplaceholder to anonymous_value inxan agg -R/--along-rows. - Dropping moonblade commands
-E/--errorsflags. A lot has changed since they were created. They will be reevaluated in the future if required. You can rely on thetry&warnmoonblade functions instead, for now. - Dropping
xan select -A/--append. Latestxan mapis now actually equivalent toxan select -eA. - Changing
xan mapto accept a selection expression able to create multiple columns at once rather than a single expression and a column name. This meansxan map 'expr' col_namebecomesxan map 'expr as col_name'.
Features
- Adding
xan count -a/--approx. - Adding
xan slice --end-byte. - Adding
xan slice -S/--start-condition&xan slice -E/--end-condition. - Adding
xan slice -L/--last. - Allowing
-n/--no-headersand-d/--delimiterflags to appear before subcommands. - Adding backtick quoted strings to moonblade.
- Adding moonblade
printffunction. - Adding moonblade
pad,lpad&rpadfunctions. - Adding
xan select -f/--evaluate-file. - Adding multi-member gzip files support (to handle files compressed with
bgzipnotably). - Adding
xan split -f&xan partition -fshort flag for--filename. - Adding
xan split -c/--chunks&xan split --segments. - Adding
xan sample -§/--cursed. - Adding
xan search -B/--breakdownand the related--name-columnflag. - Adding CSV file chunking capabilities to
xan parallel. - Adding
xan from md. - Adding
xan parallel map. - Adding
-p/--parallel&-t/--threadstocount,freq,stats,search,agg&groupbycommands. - Adding piped column access to expression given to
xan flatmap -r. - Adding
xan rename -R/--replace&xan rename -x/--suffix. - Adding
xan parallel freq -l/--limit, -A/--all, -a/--approx & -N/--no-extra. - Adding
xan search -U/--unique-matches & --sep & --left. - Adding parallelization through novel file segmentation of files compressed with
bgzipwhen a.gziindex can be found. - Adding the
xan windowcommand for window aggregations like rolling averages, cumulative sums, lags etc. - Adding
xan help window. - Adding
xan head&xan tailas aliases overxan slice -l&xan slice -Lrespectively. - Adding
xan from --sheet-index & --list-sheets. - Adding
xan flatten -H/--highlight & -i/--ignore-case. - Adding
xan agg -C/--along-cols&xan agg -M/--along-matrix. - Adding
xan groupby -C/--along-cols. - Adding support for
xan search -l -p -t. - Adding
rmsmoonblade aggregation function. - Adding
xan scrape -E/--encoding. - Adding CDX files support.
- Adding
regexmoonblade function. - Adding
header,col_index&col_index?moonblade functions. - Adding
find&find_indexmoonblade functions. - Adding
-l/--limitsupport toxan search -p&xan filter -p.
Fixes
- Adding missing highlight for
NULLvalues inxan view&xan flatten. - Fixing moonblade slicing wrt negative indexing and nontrivial inner expression.
- Fixing moonblade
getfunction for bytes. - Fixing
xan sort -eskipping first record of each chunk. - Fixing
xan sort -estability. - More accurate
xan sort -ememory usage calculations. - Fixing
xan transform -n. - Fixing
xan view -g -s. - Fixing moonblade concretization wrt branching.
- Fixing
xan behead -oandxan behead -Ao. - Reorganizing
xan help functions. - Fixing lexicographic extent merging in
xan parallel stats. - Fixing
xan to mdwidth alignment. - Renaming
xan parallel --shell-preprocessingshort flag to be-Hbecause it was being overriden by-S/--source-column. - Adding missing subcommand completions for
xan parallel&xan cat. - Better default threads count heuristics.
- Better
xan plot -Tdate parsing. - Fixing
xan searchreplacements when using the-s/--selectflag with a non-full selection. - Adding the
xan view -r/--rightflag to force right alignment for a selection of columns. - Fixing
xan flattenbroken pipe panics when piped. - Fixing
xan plot -R/--regression-linewhen linear function endpoints are out of bounds. xan parallelearly exits when a target file does not exist.- Fixing
moonbladelist slicing. - Fixing
cols()&headers()moonblade functions without arguments. - Fixing
cols()&headers()not working with dynamic arguments. - Fixing moonblade indexing parsing.
- Fixing aggregation arity validation.
- Fixing
xan agg&xan groupbybehavior wrt-n/--no-headers. - Fixing shortcircuiting of
andandormoonblade functions. - Fixing issue with degenerate cases in
xan bins --nice. - Fixing bin allocation in
xan bins --nice. - Fixing
xan bins --nicefirst and last bound to stick to min & max. - Fixing negative indexing with
col*(name, pos)moonblade functions. - Fixing
argmin&argmaxparallel stability. - Fixing panic with
xan plotwhen using log scales and min/max are <= 0.
Performance
- Switching hashmaps to
ahash. - Optimizing moonblade pipelines with more than a single underscore substitution.
- Improving
xan reverseperformance. - Reducing memory footprint of aggregators.
- Optimizing
xan select -eallocations.
Quality of Life
- Prepending xan subcommand to error messages.
- Better error messages when moonblade expressions cannot be parsed.
- Displaying number of threads actually used when using
xan parallel. xan viewnow automatically right-align columns containing only integers.- Better moonblade casting errors.
xan binsformatted bound will now be padded for better readability.
- Rust
Published by github-actions[bot] 8 months ago
xan - v0.50.0
Features
- Adding moonblade function
log2,log10and support for custom base with an optional argument oflog. - Adding
\0,\x..and\u{......}literals to moonblade strings. - Adding moonblade function
col?.
Fixes
- Better color support for legacy Windows terminals.
- Fixing
to_timezonefunction with UTC timestamps on some platforms where jiff is built "bundled". - Fixing moonblade commands (e.g.
filter,mapetc.) when using-n/--no-headers.
- Rust
Published by github-actions[bot] 10 months ago
xan - v0.49.0
Breaking
- Dropping mostly useless
-p/--parallel&-c/--chunk-sizeflags inxan agg&xan groupby. They were only useful when the inner aggregated expression was costly (i.e. reading files) and you can usexan map -pupstream for this instead. See alsoxan parallel (agg | groupby)if you want to work in parallel over multiple files.
Features
- Adding
xan input --tabs. - Adding
xan input -H/--skip-headers. - Adding
xan input -L/--skip-lines. - Adding
xan input -R/--skip-rows. - Adding
xan input --vcf, --gtf, --gff. - Adding
xan search -R/--replace&xan search --replacement-column. - Adding
xan rename -S/--slugify. - Adding moonblade function
sum. - Adding support for
.psv,.ssv&.scsvfile extensions. - Adding
xan headers -s/--start. - Adding
xan to txt. - Adding
xan behead -A/--append. - Adding
xan hist -G/--compress-gaps. - Adding
xan agg --cols.
Fixes
xan view --no-headersnow automatically toggles--hide-headers.xan fromcorrectly decompress some gzipped formats.xan fill -vcorrectly fills empty cells at beginning of files.xan parallel -twill not use more threads than inputs.- Fixing
xan statspanicking when encountering NaN values. - Allowing tabs to be understood as whitespace in moonblade expressions.
- Fixing
xan join --crosswhen joined files don't have the same number of columns. - Adding missing
-n/--no-headers&-d/--delimitertoxan to. - Fixing
xan progress -Bwith gzipped files. - Adding missing
-C/--force-colorstoxan plot.
- Rust
Published by Yomguithereal 11 months ago
xan - v0.48.0
Breaking
- Dropping
xan union-find. Seexan networknow for similar utilities. xan explode --singularbecomesxan explode --singularize.xan implode --pluralbecomesxan implode --pluralize.
Features
- Adding scraping selectors
prev_sibling,next_sibling,find_ancestor&last. - Adding
xan scrape images. - Adding
xan search -u/--url-prefix. - Adding
xan network -f nodelistandxan network --degrees. - Adding various format aliases to
xan from. - Adding
xan explode -D/--drop-empty. - Adding
xan from tar. - Adding
xan url-join.
Fixes
- More inflection cases supported in both
xan explode -Sandxan implode -P. - Better error reporting with
xan scrape. - Fixing
xan scrapeprocessing values when selection is empty. - Fixing
parentscraping selector. - Adding missing higher-order functions documentation to
xan help.
Performance
- Improving performance of
xan explode. - Improving performance of
xan implode.
- Rust
Published by Yomguithereal 11 months ago
xan - v0.47.0
Breaking
- Moonblade
strftime()and all other date formatting functions such asymd()do not support timezones any more, seeto_timezoneandto_local_timezoneinstead.
Features
- Adding moonblade function
to_timezoneandto_local_timezone - Improving
xan help cheatsheet. - Adding moonblade function
try. - Adding moonblade functions
int&float. - Adding moonblade functions
lru&urljoin. moonbladenow tolerates line-breaks as whitespace when parsing. This makes it possible to write your expressions on multiple lines.moonbladenow accepts comments starting with#.- Adding
xan scrapecommand. - Adding
xan help scrapingsubcommand. - Adding moonblade function
html_unescape.
Fixes
- Fixing
xan flatten -wwrt line breaks. - Fixing underscore expansion when contained in map & list expressions.
- Fixing
xan to mdcell escaping.
Performance
- Decrease
moonblade-related commands memory consumption.
- Rust
Published by Yomguithereal 12 months ago
xan - v0.46.0
Breaking
- Moonblade concat operator becomes
++instead of.. - Overhauling moonblade cli documentation:
- Dropping
--functions,--cheatsheetand--aggseverywhere - Adding a proper
xan helpcommand
- Dropping
- Dropping
xan glob. - Adding access & call operator to moonblade:
- Member access:
map.name(same asget(map, "name")) - Function call:
string.len()(same aslen(string))
- Member access:
- Help is now printed in stdout (typically when using the
-h/--helpflag).
Features
- Adding
xan to html. - Adding
xan to md. - Adding
xan to npy. - Adding
xan from npy. - Adding
-R/--regression-linetoxan plot. - Adding
xan talias forxan transpose. - Adding map substitution to
fmtmoonblade function. - Adding
xan sort -C/--cells. - Adding
xan search --count --overlapping. - Adding
xan tokenize words -F/--flatmap.
Fixes
- Fixing
xan search --pattern-column. - Fixing autocompletion with range and multiple selection.
- Fixing url highlighting in
xan viewandxan flatten. - Fixing datetime highlighting in
xan viewandxan flattenwrt Z-terminated timestamp formats. - Fixing
statsdate & url inference. - Fixing moonblade support for Z-terminated timestamp formats.
- Fixing
xan plot -Tgranularity inference. - Fixing missing fractional seconds to default
datetimeserialization. - Fixing bin allocation with
xan bins --nice. - Fixing
xan search --patterns -i. - Fixing
xan search -r -i --patterns --countresults.
Performance
- Optimizing aggregator memory consumption.
- Rust
Published by Yomguithereal 12 months ago