JuliaIO / GZip.jl

A Julia interface for gzip functions in zlib
https://juliaio.github.io/GZip.jl/dev
MIT License
39 stars 30 forks source link

implement uvtype(::GZip.GZipStream) #64

Open felipenoris opened 7 years ago

felipenoris commented 7 years ago

This code runs ok:

julia> run(pipeline(open("input.csv", "r"), `cat`, open("output.csv", "w")))

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

Is is possible to define this method?