Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

deprecate readcsv and writecsv? #23414

Closed
JeffBezanson opened this issue Aug 23, 2017 · 7 comments
Closed

deprecate readcsv and writecsv? #23414

JeffBezanson opened this issue Aug 23, 2017 · 7 comments
Assignees
Labels
deprecation This change introduces or involves a deprecation good first issue Indicates a good issue for first-time contributors to Julia needs decision A decision on this change is needed
Milestone

Comments

@JeffBezanson
Copy link
Sponsor Member

These functions are already just 1-line aliases, so they're easy to deprecate. Has been discussed before, e.g. in JuliaData/DelimitedFiles.jl#13.

I would also favor removing some features from readdlm --- for example it could support only reading 2-d arrays of numbers of a specified type. But this is a slightly separate issue.

@JeffBezanson JeffBezanson added the deprecation This change introduces or involves a deprecation label Aug 23, 2017
@JeffBezanson JeffBezanson added this to the 1.0 milestone Aug 23, 2017
@fredrikekre fredrikekre added the good first issue Indicates a good issue for first-time contributors to Julia label Aug 23, 2017
@yuyichao yuyichao added the needs decision A decision on this change is needed label Aug 23, 2017
@yuyichao
Copy link
Contributor

I do find it very convenient for quickly reading data in a REPL. readdlm is somewhat more typing in the REPL but also not that a big deal if we really want to remove them....

@StefanKarpinski
Copy link
Sponsor Member

StefanKarpinski commented Aug 23, 2017

I think the problem with the names {read,write}csv is that they suggest you can read/write the general CSV format – which you cannot. I think that even if we don't entirely remove {read,write}dlm we should severely simplify the interface – any maybe require an element type so that the function doesn't have to do anything fancy and probably doesn't even need you to specify a delimiter for files full of numbers.

@sbromberger
Copy link
Contributor

The argument against doing this is that the existing package, CSV.jl, introduces 14 additional depedencies (direct and indirect). This would be a big problem for those of us seeking to keep our pacakges "light".

@JeffBezanson
Copy link
Sponsor Member Author

My preferred solution for that is to keep a lightweight readdlm in the "standard library", and also lighten the dependencies of CSV.jl via the ongoing refactoring of DataFrames.

@sbromberger
Copy link
Contributor

@JeffBezanson - is it your idea to keep readdlm pretty much the same as it is now, so that my_new_readcsv() could just call it with specific options (much like readcsv today)?

@JeffBezanson
Copy link
Sponsor Member Author

Maybe, but I do think there are other issues. For instance, for heterogeneous data it should return a set of column vectors instead of a 2d array, or perhaps not support heterogeneous data. Do you actually want it to keep returning Array{Any,2}s?

@davidanthoff
Copy link
Contributor

@sbromberger Note also that if you play along with the iterable tables interface from TableTraits.jl you automatically get integration with CSVFiles.jl (and ExcelFiles.jl, FeatherFiles.jl, StatFiles.jl and soon ParquetFiles.jl]) without taking any dependency on those packages. You will still pull in some small packages, but a lot less than via CSV.jl. Happy to help with any integration work or explain this (probably better in an issue over your package world), just ping me!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
deprecation This change introduces or involves a deprecation good first issue Indicates a good issue for first-time contributors to Julia needs decision A decision on this change is needed
Projects
None yet
Development

No branches or pull requests

7 participants