magus v0.4.2 is out. See what's new
¶ View generated markdown
1 min read

csv

Delimiter-separated tabular text (CSV, TSV) parsing and rendering.

Naming convention: import the module under its bare name (import "csv"), reach members with a backslash, and call methods in camelCase: csv\someMethod.

Methods

parse

Parse delimiter-separated text into a list of rows, each a list of fields. Quoted fields, embedded delimiters, and embedded newlines are handled per RFC 4180. delimiter defaults to "," - pass "\t" for TSV. When comment is a single character, lines starting with it are skipped. Raises when a row has a different field count than the first, which is the corruption a hand-rolled split would silently pass through.

Signature: csv\parse(s, [delimiter], [comment]) -> [][]string - source

Parameter Type Optional Description
s string
delimiter string yes
comment string yes

Returns: [][]string

stringify

Render rows (a list of lists of fields) as delimiter-separated text, quoting any field that needs it. delimiter defaults to ",". The output ends with a newline, so it is ready to write.

Signature: csv\stringify(rows, [delimiter]) -> string - source

Parameter Type Optional Description
rows [][]string
delimiter string yes

Returns: string

generatedreference/buzz/csvmodulestdlibmagusfile
Last updated (4f8cc295)
Earlier changes on this page (2)

Full history ↗ · Blame source ↗

Glossary

Magusfile

The magusfile.buzz that declares a project's targets (as export funs) and binds its spells. See targets.

Op

A single tool-native command a target composes (long form: operation); the middle of the work hierarchy (Spell to Op to Target). See operations.

Module

A magus stdlib namespace a magusfile imports for host capabilities: filesystem, exec, vcs, and more. See the module reference.

Buzz

The language magusfiles are written in (the .buzz engine). See engines.

Conventions

This page uses none of the site's convention markers. The full set is on the conventions page.