Releases: medialab/xan
Releases Β· medialab/xan
Release list
v0.60.0
Breaking
- Renaming
xan from --pathto--root. - Renaming
xan separate -T/--txtto-L/--lines.
Features
- Adding
xan count -c/--check-alignment & -H/--human-readable. - Adding
xan sort -e -z/--compress. - Adding
xan sample -g -S/--sorted. - Adding
xan from -f=(json|ndjson) --model. - Adding
xan cat rows -I/--intersection & -U/--union. - Adding
xan top -g -S/--sorted. - Adding the
sort,dedup,flatten&flat_mapmoonblade function. - Adding support for
list&mapcolumns when usingxan from -f=parquet.
Fixes
- Fixing text wrapping across tool, especially
xan flatten -w&xan flatten -F. - Fixing
xan select -e&xan mapplural clause flattening given list. - Fixing
xan from -f=parquetnot emitting correct column names for list & map columns.
Performance
- Introducing a fast path for
xan sort -ewhen input fits in a single chunk. - Faster
xan from -f=ndjson & -f=parquet. - Amortizing
xan sampleallocations. - Improving performance of
xan freq&xan p freq.
Quality of Life
- Better record size estimation for
xan sort -e. - Better
xan flatten -cwhen string width cannot be computed correctly (because of emojis typically).
v0.60.0-rc.1
Bump 0.60.0-rc.1
v0.59.0
Breaking
- Bumping MSRV to
1.85.0and edition 2024. - Overhauling how
xan scrapetakes its inputs. It now targets HTML files on disk by default now. xan plot --density-scalenow defaults tolog.xan freq -X/--approx-algo&xan p freq -X/--approx-algonow default toheavy-keeper.- Dropping
xan eval -S/--serialize. The default behavior of the command is now to output the serialized value.
Features
- Adding
xan search -x/--pattern-file. - Adding
xan cat --glob,xan merge --glob,xan parallel --glob. - Adding the
hostnamemoonblade function. - Adding
xan scrape --paths, --path-column, --docs, --docs-column, -D/--stdin-doc & --glob. - Adding
xan from -f=(json|ndjson) --path <path>. - Adding
xan from -f toml&-f raw. - Adding
xan spark --hide-all & --repeat-x-axis.
Fixes
- Fixing moonblade string with bstring equality.
- Fixing percentages shown by
xan spark -P. - Fixing
xan completecorrectness in presence of duplicate values. - Fixing
xan spark -cdiscretization & legend.
Performance
- Improving performance of
xan scrape. - Improving performance of
xan from -f ndjson.
Quality of Life
- Better legends & axis for
xan spark. - Highlighting empty labels when using
xan heatmap.
v0.59.0-rc.1
Bump 0.59.0-rc.1
v0.58.0
Breaking
- Stopping to serialize moonblade lists either as joined by some separator or JSON. This was awkard, error-prone & potentially lossy. Use the
joinfunction manually to format output when required. - As per previous point, dropping
xan scrape --sep. - Dropping implicit unary function calls in moonblade pipelines. This feature was not well-known, confusing (an indentifier, could be understood as a call in a pipeline, only if not in first position...), and mostly useless now that moonblade has had a proper dot operator.
xan plot -A/--aggregatedoes not take an expression anymore but has an automatic selection of two modes:sumandmean. It should also be faster.- Renaming the
indexfunction asrow_indexfor clarity. xan agg -C/--along-columns & -M/--along-matrix&xan groupby -C/--along-columns & -M/--along-matrixwill not map current column index to the result of theindex()function. Thecol_index()can be now used instead for this very purpose.xan window -g/--groupbydoes not require the file to be sorted anymore. This means using-g/--groupbywill now require the whole file to be buffered into memory by the command. The old behavior can still be used through the-S/--sortedflag, thus aligning thexan windowcommand with the rest of the tool.row_indexwill now error if the expression has no concept of row index, instead of returning nothing.xan parallel -z/--compressnow take the desired compression (eithergziporzstd).- Retiring the
xan grepcommand in favor ofxan search -Z/--fast-parser. xan tokenize --keepshort flag becomes-kinstead of-Kto harmonize with other commands.- Retiring the
xan flatmapcommand in favor ofxan explode -e. - Retiring the
xan fuzzy-joincommand in favor of a consolidatedxan joincommand. - Changing
xan from -f txt -c <name>default tolineinstead ofvalue. - Renaming
xan join -L/--prefix-left & -R/--prefix-rightshort flags to-l&-rrespectively to avoid colliding with the added-R/--reverseflag that can be used for merge joins. - Dropping
xan plot -B/--bars. It never worked very well and its use-case will be redirected toxan spark. - Changing
xan heatmap --widthshort flag from-wto-Wso that adding a-H/--heightflag remain consistent and avoids clashing with-h/--help. - Dropping
xan heatmap --show-gradientsin favor ofxan help gradients. - Renaming
xan search -A/--allflag to--every-columnfor clarity and avoid clash with-A/--after-context. - Dropping
xan sort -U/--unstable. It was never used and the performance boost it supposedly provides cannot be observed.
Features
- Adding
xan parallel --dont-chunk. - Adding nullary
col,col_index&headervariants, to work with expression applied in series to multiple columns at once. - Adding
prev_col&next_colfunctions. - Adding
xan (search|filter) -B/--before-context & -A/--after-context. - Adding
xan window -O/--overwrite. - Adding
xan map -C/--along-columns. - Adding
xan window -C/--along-columns. - Adding
xan cat rows --raw, -P/--preprocess & -H/--shell-preprocess. - Improving
xan selectDSL star selectors. You can now do stuff likevec_*_count,*[1],vec_*[1]etc. xan p -H/--shell-preprocessnow works on Windows.- Adding native
zshcompletions (@apcamargo). - Adding
xan dedup --u32. - Adding
xan explode -e/--evaluate, -f/--evaluate-file, --pad & -k/--keep. xan to npyis now able to stream.- Adding
xan parallel top&xan top -p/--parallel, -t/--threads. - Adding
xan network edgelist --range. - Adding
xan network nodelist. - Adding the
xan runcommand. - Adding
xan view --name. - Adding
xan join -S/--sorted, -R/--reverse & -N/--numeric. - Adding
xan parallel --run&xan cat rows --run. - Adding
xan to md -l/--limit. - Adding the
xan sparkcommand. - Adding
xan stats -R/--report, --color, --cols, --sep. - Adding
xan (freq|p freq) -X/--approx-algo. - Adding
xan plot -D/--density-gradient, --density-scale, --hide-legend, --hide-x-axis, --hide-y-axis, --hide-all & -Q/--square. xan separatewill now avoid emitting columns with an empty name given to--into.- Adding
xan separate --txt & --F/--filter. - Adding
pow&sqrtscales.
Fixes
- Fixing issues related to nested lambdas in expressions.
- Fixing
xan renameconsistency regarding CRLF newlines and first row normalization when using-n/--no-headers. - Fixing
xan map --overwrite --filter. - Fixing
leadwindow function when there is not enough rows ahead. - Fixing
xan network --formatnot being validated early enough. - Fixing
xan explode -D/--drop-emptywhen selecting multiple columns. - Fixing
xan merge -urow precedence. - Fixing
xan join -D/--drop-keyautomatic selection when using--full. - Fixing granularity inference of
xan plot -T. - Fixing
xan from -f (json|ndjson)to emit empty outputs from empty inputs. - Fixing
xan headerslayout when input files have a very large number of columns (>= 1000). - Fixing arity validation of
top,argtop,most_common&most_common_countsaggregation functions.
Performance
- moonblade expressions are now faster overall and allocate more cautiously, thus saving memory.
- Improving performance of
xan transform,xan flatmap,xan agg&xan groupby. - Improving performance of
xan rename. - Faster
xan range. - Faster
xan parallel -H/--shell-preprocess. - Faster
xan tokenize words. - Adding fast path for
xan explodewhen only a single column is selected. - Faster
xan sort -e.
Quality of Life
xan plotwill now display<empty>label in legends.xan cat rowswill now error when input have inconsistent columns.- Automatic column alignement with
xan to md. xan fromnow consider.logfiles as text lines.
v0.57.1
Fixes
- Fixing
xan sort --check -n&xan dedup --check -nprinted report. - Fixing
xan parallel cat -nS. - Fixing CSV parsing rare edge case panics.
- Fixing commands relying on zero-copy CSV parsing for performance.
Performance
- Improving performance of
xan flatten,xan view,xan to&xan network. - Faster
xan network -f nodelistin some cases.
v0.57.0
The temporal update.
Breaking
xan select -nwill not error anymore on empty inputs and, generally, empty files should not trigger selection errors when using commands with-n/--no-headers.xan heatmap -C/--crambecomes a flag accepting eitherauto,alwaysornever.- Dropping
-Cshort flag forxan sort --cells(it could be confused with--columnsor--check). - Completely overhauled how datetimes work in moonblade.
xan separatewill not trim splitted values with some modes by default anymore.- Dropping
xan network --statsin favor of-f stats. -Dbecomes short flag forxan network --degreesinstead of--disjoint-keys.xan separate --capture-groupsis dropped in favor of-c/--captures&-C/--all-captures.- Renaming
xan search --breakdownshortflag to-bto allow for future-B/--before-context.
Features
- Adding
xan matrix count&xan matrix adj. - Adding
front_codingwindow function. - Timestamp support with
xan plot -LT. - Adding
xan rename -n/--no-headerssupport for-p/--prefix&-x/--suffix. - Adding
xan from -f parquet(requires theparquetfeature). - Adding
xan to latex. - Adding
xan top -L/--lexicographic. - Adding
xan heatmapflags:-w/--width,-F/--fill,-a/--align,-U/--unit,-Z/--show-normalized,-A/--ascii,-l/--label&-v/--values. - Adding new gradients to
xan heatmap. - Adding
range&repeatmoonblade functions. - Adding
xan sort --columns. - Adding
xan view -T/--tee. - Adding
now,fractional_days,to_timezone,to_local_timezone,with_timezone,with_local_timezone,without_timezone,to_timestamp,to_timestamp_ms,from_timestamp,from_timestamp_ms,span,date&timemoonblade functions. - Better type inference with
xan stats, and thetype&typesaggregation functions, now including more types for temporal values (zoned_datetime,datetime,date&time). - Adding
xan input -T/--tolerant. - Adding
xan separate --trim. - Adding
xan grep -B/--before-context & -A/--after-context. - Adding
xan network -f=components, -S/--simple, --union-find, --minify & --sample-size <n>. - Adding
xan plot --timezone. - Adding
xan hist --logshorthand flag for--scale=log. - Adding
log_distsparkline column toxan stats -qoutput. - Adding
dist&log_distaggregation functions. - Adding
xan search -L/--levenshtein <k> & -D/--damerau-levenshtein <k>.
Fixes
- Fixing
xan separateautomatic column prefix extraction. - Fixing
xan heatmap -n. - Fixing
xan heatmap --repeat-headers --cram alwaysnot repeating x-axis legend. - Fixing correctness of
xan plot -Tand increase resolution to microseconds. - Fixing moonblade column-related functions returning incorrect results wrt
-n/--no-headers. xan searchshould now properly error when handling invalid utf-8 in relevant modes.- Fixing
xan search -iR&xan search -i --replacement-column.
Performance
- Improving performance of
xan complete,xan top,xan plot -T&xan hist. - Improving overall performance of
xan network. - Slightly optimizing
xan vocabby allowing needless heap allocation & indirection. - Improving performance and memory usage of
xan separate.
Quality of Life
- Adding proper help to
xan heatmap.
v0.56.0
Features
- Adding
xan bisect. - Adding
xan flatten -N/--non-empty. - Adding the
soundex,refined_soundex&phonogrammoonblade functions for phonetic encoding.
Fixes
- Fixing
xan to (md|html) --no-headers. - Fixing
xan plot -R/--regression-line.
Quality of Life
- Adding
xan to markdownas an alias forxan to md. xan flatten&xan viewwill stop masquerading trimmed empty cells as empty.
v0.55.0
Breaking
- Changing how
xan separategenerates default column names. xan from -f=(json|ndjson|jsonl)will now emit column in input order by default.- Changing
xan to -B/--buffer-sizeto--sample-sizeto harmonize flag names withxan from.
Features
- Adding the
xan completecommand. - Adding an optional unit to
ceil,floor,round&truncmoonblade function. E.g. floor to nearest decade:floor(year, 10). - Adding
basename&dirnamemoonblade functions. - Adding
parse_py_literalmoonblade functions. Useful to deal with files dubiously serialized usingpandas. - Adding
xan view --repeat-headers=(auto|always|never). - Adding
xan view --reveal-whitespace=(auto|always|never). - Adding
--colorsupport toXAN_VIEW_ARGS. - Adding
xan from -f json --sample-size -1to sample the whole file. - Adding
xan from -f json --single-object. - Adding
xan from --sort-keys. - Adding
xan to (json|ndjson|jsonl) --sample-size -1to sample the whole file. - Adding
xan to (json|ndjson|jsonl) --stringsflag. - Adding
xan separate --prefix. - Adding
xan heatmap -Cshort flag for--cram. - Adding
xan heatmap --repeat-headers. - Adding
rank,cume_dist,percent_rankandntilewindow functions. - Adding
xan help --color.
Fixes
- Fixing
xan select -neincorrectly emitting headers.
Quality of Life
xan view -pwill not print bottom header anymore by default.xan viewwill not reveal problematic whitespace if output is not colored anymore, by default.- Better
xan histerror messages and help. - Testing more file name variants when searching for a
.gziindex.
v0.54.1
Fixes
- Fixing
xan freq --groupbyincorrectly unescaping group cells. - Fixing help related to
xan pivot&xan unpivot. - Upgrading
simd-csvto get safety fixes.