magic.lambda.csv 11.0.3

There is a newer version of this package available.
See the version list below for details.
dotnet add package magic.lambda.csv --version 11.0.3
                    
NuGet\Install-Package magic.lambda.csv -Version 11.0.3
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="magic.lambda.csv" Version="11.0.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="magic.lambda.csv" Version="11.0.3" />
                    
Directory.Packages.props
<PackageReference Include="magic.lambda.csv" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add magic.lambda.csv --version 11.0.3
                    
#r "nuget: magic.lambda.csv, 11.0.3"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package magic.lambda.csv@11.0.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=magic.lambda.csv&version=11.0.3
                    
Install as a Cake Addin
#tool nuget:?package=magic.lambda.csv&version=11.0.3
                    
Install as a Cake Tool

Parsing CSV files from Hyperlambda

This project provides CSV helper slots for Magic. More specifically, it provides the following slots.

  • [lambda2csv] - Creates a CSV string from a lambda object
  • [csv2lambda] - Creates a lambda object from a CSV string

Usage

.data
   .
      name:Thomas Hansen
      age:int:47
   .
      name:John Doe
      age:int:67

lambda2csv:x:-/*

add:x:+/*/types
   get-nodes:x:@lambda2csv/*

csv2lambda:x:@lambda2csv
   types

Notice, the [lambda2csv] slot will return type information, and the [csv2lambda] slot can optionally be given type information in its [types] argument, allowing you to convert correctly back to the correct type(s) as you convert a CSV string to its lambda objects. The [lambda2csv] slot will also create headers for your CSV string, and the [csv2lambda] slot will use the first line to retrieve these headers, to rebuild the lambda object correctly.

This allows you to roundtrip from a lambda object, to CSV format, and back to lambda again, without loosing type information or names of your nodes. This is necessary since CSV doesn't preserve types in any ways. By default the [lambda2csv] will also treat null values correctly, by adding these into the CSV file as "[NULL]". This allows you to preserve null values, which isn't really possible with CSV normally - However, for some edge cases you might want to use different null value, at which point you can supply this as [null-value] argument to both slots. If you supply a [null-value] argument, but set its value to null - Null values will be ignored, and no null values will be persisted in any direction.

Project website

The source code for this repository can be found at github.com/polterguy/magic.lambda.csv, and you can provide feedback, provide bug reports, etc at the same place.

Quality gates

  • Build status
  • Quality Gate Status
  • Bugs
  • Code Smells
  • Coverage
  • Duplicated Lines (%)
  • Lines of Code
  • Maintainability Rating
  • Reliability Rating
  • Security Rating
  • Technical Debt
  • Vulnerabilities
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on magic.lambda.csv:

Package Downloads
magic.library

Helper project for Magic to wire up everything easily by simply adding one package, and invoking two simple methods. When using Magic, this is (probably) the only package you should actually add, since this package pulls in everything else you'll need automatically, and wires up everything sanely by default. To use package go to https://polterguy.github.io

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
17.2.0 1,637 1/22/2024
17.1.7 304 1/12/2024
17.1.6 270 1/11/2024
17.1.5 287 1/5/2024
17.0.1 303 1/1/2024
17.0.0 468 12/14/2023
16.11.5 421 11/12/2023
16.9.0 426 10/9/2023
16.7.0 730 7/11/2023
16.4.1 555 7/2/2023
16.4.0 553 6/22/2023
16.3.1 463 6/7/2023
16.3.0 445 5/28/2023
16.1.9 777 4/30/2023
15.10.11 629 4/13/2023
15.9.1 738 3/27/2023
15.9.0 569 3/24/2023
15.8.2 606 3/20/2023
15.7.0 515 3/6/2023
15.5.0 1,752 1/28/2023
15.2.0 755 1/18/2023
15.1.0 1,293 12/28/2022
14.5.7 842 12/13/2022
14.5.5 933 12/6/2022
14.5.1 781 11/23/2022
14.5.0 731 11/18/2022
14.4.5 813 10/22/2022
14.4.1 883 10/22/2022
14.4.0 751 10/17/2022
14.3.1 1,439 9/12/2022
14.3.0 796 9/10/2022
14.1.3 1,038 8/7/2022
14.1.2 770 8/7/2022
14.1.1 794 8/7/2022
14.0.14 827 7/26/2022
14.0.12 802 7/24/2022
14.0.11 776 7/23/2022
14.0.10 774 7/23/2022
14.0.9 795 7/23/2022
14.0.8 863 7/17/2022
14.0.5 917 7/11/2022
14.0.4 885 7/6/2022
14.0.3 860 7/2/2022
14.0.2 815 7/2/2022
14.0.0 989 6/25/2022
13.4.0 2,312 5/31/2022
13.3.4 1,607 5/9/2022
13.3.0 1,100 5/1/2022
13.2.0 1,349 4/21/2022
13.1.0 1,213 4/7/2022
13.0.0 873 4/5/2022
11.0.5 1,581 3/2/2022
11.0.4 914 2/22/2022
11.0.3 964 2/9/2022
11.0.2 940 2/6/2022
11.0.1 942 2/5/2022
10.0.21 926 1/28/2022
10.0.20 918 1/27/2022
10.0.19 905 1/23/2022
10.0.18 893 1/17/2022
10.0.15 1,094 12/31/2021
10.0.14 692 12/28/2021
10.0.7 1,653 12/22/2021
10.0.5 902 12/18/2021
9.9.9 1,917 11/29/2021
9.9.3 1,112 11/9/2021
9.9.2 779 11/4/2021
9.9.0 894 10/30/2021
9.8.9 859 10/29/2021
9.8.7 788 10/27/2021
9.8.6 791 10/27/2021
9.8.5 873 10/26/2021
9.8.0 1,543 10/20/2021
9.7.9 760 10/19/2021
9.7.5 1,689 10/14/2021
9.7.0 1,028 10/9/2021
9.6.6 1,391 8/14/2021
9.2.0 6,766 5/26/2021
9.1.4 1,485 4/21/2021
9.1.0 1,224 4/14/2021
9.0.0 1,050 4/5/2021
8.9.9 1,150 3/30/2021