but if I use GZip streams as input or output, it complains about uvtype method:
using GZip
run(pipeline(open("input.csv", "r"), `cat`, GZip.open("output.csv.gz", "w")))
LoadError: MethodError: no method matching uvtype(::GZip.GZipStream)
Closest candidates are:
uvtype(!Matched::RawFD) at process.jl:158
uvtype(!Matched::Base.DevNullStream) at process.jl:151
uvtype(!Matched::Base.Filesystem.File) at filesystem.jl:70
...
while loading In[5], in expression starting on line 2
in _jl_spawn(::String, ::Array{String,1}, ::Ptr{Void}, ::Base.Process, ::Base.Filesystem.File, ::GZip.GZipStream, ::RawFD) at ./process.jl:312
in #412 at ./process.jl:478 [inlined]
in setup_stdio(::Base.##412#413{Cmd,Ptr{Void},Base.Process}, ::Tuple{IOStream,GZip.GZipStream,RawFD}) at ./process.jl:466
in #spawn#411(::Nullable{Base.ProcessChain}, ::Function, ::Cmd, ::Tuple{IOStream,GZip.GZipStream,RawFD}, ::Bool, ::Bool) at ./process.jl:477
in (::Base.#kw##spawn)(::Array{Any,1}, ::Base.#spawn, ::Cmd, ::Tuple{IOStream,GZip.GZipStream,RawFD}, ::Bool, ::Bool) at ./<missing>:0
in #spawn#408(::Nullable{Base.ProcessChain}, ::Function, ::Base.CmdRedirect, ::Tuple{RawFD,GZip.GZipStream,RawFD}, ::Bool, ::Bool) at ./process.jl:359
in (::Base.#kw##spawn)(::Array{Any,1}, ::Base.#spawn, ::Base.CmdRedirect, ::Tuple{RawFD,GZip.GZipStream,RawFD}, ::Bool, ::Bool) at ./<missing>:0
in #spawn#408(::Nullable{Base.ProcessChain}, ::Function, ::Base.CmdRedirect, ::Tuple{RawFD,RawFD,RawFD}, ::Bool, ::Bool) at ./process.jl:359
in run(::Base.CmdRedirect) at ./process.jl:591
This code runs ok:
but if I use GZip streams as input or output, it complains about
uvtype
method:Is is possible to define this method?