kotools / csv Goto Github PK
View Code? Open in Web Editor NEWElegant CSV file's manager for Kotlin.
Home Page: https://kotools.github.io/csv
License: MIT License
Elegant CSV file's manager for Kotlin.
Home Page: https://kotools.github.io/csv
License: MIT License
CSV writer doesn't seem to like absolute paths in Windows (because they begin with <DiskLetter>:/
)...
Work in progress
section in changelog.Migrate incrementally to the latest version of Kotools Assert.
v1.2
.v2.0
.v2.1
.v3.0
.Create functions for reading all lines of a CSV file.
Types of functions to implement:
Work in progress
section in changelog.Migrate incrementally to the latest version of Kotools Types.
We should accept future fixes of this version!
Also, records conversions should work with data classes containing types provided by this library.
v1.1
.v1.2
.v1.3
.v2.0
.v3.0
.v3.1
.Work in progress
section in changelog.Store developer information in secrets for delivering the library to Maven Central Repository.
Update readme.md
for documenting the library installation and usages.
Issues of this new version should be done before resolving this issue.
Create a Continuous Integration workflow.
Update workflows for using the trunk based development strategy instead of GitHub flow.
Migrate the API to a typeful design by using the types provided by the Kotools Types library.
This is a breaking change! ๐ฅ
Work in progress
section in changelog.Implement a StrictWriter
type that should write rows in a CSV file or throw an exception if the configuration is invalid or if something else goes wrong.
Work in progress
section in changelog.Create a Continuous Deployment workflow, triggerred when a new release is created, that should publish the library in the GitHub registry.
The history of this repository should follow the conventional commits specifications.
For easing the migration, create a new main
branch containing the new history.
2.2.0
.2.1.1
.2.1.0
.2.0.1
.2.0.0
.1.0.0
.Migrate the project to a multiplatform library targetting the JVM and JS runtimes.
Work in progress
section in changelog.Integrate Qodana in the CI workflow for analyzing the code quality of the library.
Work in progress
section in changelog.Issues of this new version should be done before resolving this issue.
Update workflows for applying GitHub Flow strategy.
Update CD for deploying the library to Maven repository.
We should apply the filter before the pagination.
This bug was introduced in
v2.1.1
and its fix should be included in thev2.1.2
and thev2.2.1
!
v2.1.2
.v2.2.1
.Work in progress
section in changelog.Users should be able to write in file by given the type of rows in the DSL.
csvWriterAsOrNull
and csvWriterAsOrNullAsync
.csvWriterAs
and csvWriterAsAsync
.Work in progress
section in changelog.Integrate Kotools Types library without changing the public API.
Work in progress
section in changelog.Update functions for following the design of Kotlin Standard Library for explicit error handling.
Work in progress
section in changelog.Update documentation files for version 2.0.0.
readme.md
.Work in progress
section in changelog.Create functions for writing content in a CSV file.
If the file doesn't exist, it should be created automatically.
If the file exist, the user should be able to choose if he wants to overwrite or to append its content.
Work in progress
section in changelog.Implement the missing csvWriterAsync
function in the io.github.kotools.csv
package (see the following screenshot).
This is a regression from
v2.0
of this library because this function was present onv1.0
.
This issue should fix the following versions :v2.0
,v2.1
andv2.2
.
v2.0.2
.v2.1.2
.v2.2.1
.Work in progress
section in changelog.Stabilize features for the next major version.
csvReaderOrNull
and csvReaderOrNullAsync
.csvReader
and csvReaderAsync
.csvWriterOrNull
and csvWriterOrNullAsync
.csvWriter
and csvWriterAsync
.Work in progress
section in changelog.Initialize a new library with Gradle for following best practices and fixing indexing.
Issues of this new version should be done before resolving this issue.
Issues of this new version should be done before resolving this issue.
Create a function for reading a CSV file's content line by line.
Work in progress
section in changelog.Issues of this new version should be done before resolving this issue.
Create functions that should read a CSV file's content or throw an exception if something goes wrong.
Work in progress
section in changelog.Create issue templates for:
Deliver to OSSRH job shouldn't be ignored in the delivery workflow.
Fix the documentation of csvReaderAsync
accordingly to the following screenshot.
Work in progress
section in changelog.assertFails
for being usable in this library (see this issue).Issues of this new version should be done before resolving this issue.
readme.md
.Change the design of DSL for forcing users to define a file
property instead of setting it in the builder. This allows to check the requirements in compile time instead of runtime.
Here's an example of what a user should do:
data class Person(val name: String, val age: Int, val isAdmin: Boolean = false)
suspend fun main() {
csvWriter<Person>(file = "people") {
records { +Person("Nobody", 25) }
}
val people: List<Person> = csvReader(file = "people")
println(people)
}
This is a breaking change! ๐ฅ
Work in progress
section in changelog.The file
property should have a default value corresponding to the given type's name in lowercase and followed by a s
.
Work in progress
section in changelog.Work in progress
section in changelog.Create a package kotools.csv
containing all declarations of the package io.github.kotools.csv
.
Then, deprecate all declarations of the old package.
Work in progress
section in changelog.Create functions for reading a CSV file as a list of given type.
Work in progress
section in changelog.The idea is to search records in a given CSV file based on provided filters.
Because the return type will basically be the same of csvReader {...}
, we could simply integrate filters in it.
Work in progress
section in changelog.Users should be able to read a CSV file with a pagination
Work in progress
section in changelog.A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.