conduit-extra 1.3.0 → 1.3.1
raw patch · 4 files changed
+19/−13 lines, 4 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Data.Conduit.Attoparsec: instance GHC.Exception.Exception Data.Conduit.Attoparsec.ParseError
- Data.Conduit.Binary: instance GHC.Exception.Exception Data.Conduit.Binary.SinkStorableException
- Data.Conduit.Process: instance (Control.Monad.IO.Class.MonadIO m, Control.Monad.IO.Class.MonadIO n, r ~ (), r' ~ ()) => Data.Streaming.Process.Internal.InputSource (Data.Conduit.Process.BuilderInput o m r, n r')
- Data.Conduit.Process: instance (Control.Monad.IO.Class.MonadIO m, Control.Monad.IO.Class.MonadIO n, r ~ (), r' ~ ()) => Data.Streaming.Process.Internal.InputSource (Data.Conduit.Process.FlushInput o m r, n r')
- Data.Conduit.Process: instance (Control.Monad.IO.Class.MonadIO m, r ~ ()) => Data.Streaming.Process.Internal.InputSource (Data.Conduit.Process.BuilderInput o m r)
- Data.Conduit.Process: instance (Control.Monad.IO.Class.MonadIO m, r ~ ()) => Data.Streaming.Process.Internal.InputSource (Data.Conduit.Process.FlushInput o m r)
- Data.Conduit.Process: instance (r ~ (), Control.Monad.IO.Class.MonadIO m, i ~ Data.ByteString.Internal.ByteString) => Data.Streaming.Process.Internal.InputSource (Data.Conduit.Internal.Conduit.ConduitM i o m r)
- Data.Conduit.Process: instance (r ~ (), Control.Monad.IO.Class.MonadIO m, o ~ Data.ByteString.Internal.ByteString) => Data.Streaming.Process.Internal.OutputSink (Data.Conduit.Internal.Conduit.ConduitM i o m r)
- Data.Conduit.Process: instance (r ~ (), r' ~ (), Control.Monad.IO.Class.MonadIO m, Control.Monad.IO.Class.MonadIO n, i ~ Data.ByteString.Internal.ByteString) => Data.Streaming.Process.Internal.InputSource (Data.Conduit.Internal.Conduit.ConduitM i o m r, n r')
- Data.Conduit.Process: instance (r ~ (), r' ~ (), Control.Monad.IO.Class.MonadIO m, Control.Monad.IO.Class.MonadIO n, o ~ Data.ByteString.Internal.ByteString) => Data.Streaming.Process.Internal.OutputSink (Data.Conduit.Internal.Conduit.ConduitM i o m r, n r')
- Data.Conduit.Text: instance GHC.Exception.Exception Data.Conduit.Text.TextException
+ Data.Conduit.Attoparsec: instance GHC.Exception.Type.Exception Data.Conduit.Attoparsec.ParseError
+ Data.Conduit.Binary: instance GHC.Exception.Type.Exception Data.Conduit.Binary.SinkStorableException
+ Data.Conduit.Process: instance (Control.Monad.IO.Class.MonadIO m, Control.Monad.IO.Class.MonadIO n, r Data.Type.Equality.~ (), r' Data.Type.Equality.~ ()) => Data.Streaming.Process.Internal.InputSource (Data.Conduit.Process.BuilderInput o m r, n r')
+ Data.Conduit.Process: instance (Control.Monad.IO.Class.MonadIO m, Control.Monad.IO.Class.MonadIO n, r Data.Type.Equality.~ (), r' Data.Type.Equality.~ ()) => Data.Streaming.Process.Internal.InputSource (Data.Conduit.Process.FlushInput o m r, n r')
+ Data.Conduit.Process: instance (Control.Monad.IO.Class.MonadIO m, r Data.Type.Equality.~ ()) => Data.Streaming.Process.Internal.InputSource (Data.Conduit.Process.BuilderInput o m r)
+ Data.Conduit.Process: instance (Control.Monad.IO.Class.MonadIO m, r Data.Type.Equality.~ ()) => Data.Streaming.Process.Internal.InputSource (Data.Conduit.Process.FlushInput o m r)
+ Data.Conduit.Process: instance (r Data.Type.Equality.~ (), Control.Monad.IO.Class.MonadIO m, i Data.Type.Equality.~ Data.ByteString.Internal.ByteString) => Data.Streaming.Process.Internal.InputSource (Data.Conduit.Internal.Conduit.ConduitM i o m r)
+ Data.Conduit.Process: instance (r Data.Type.Equality.~ (), Control.Monad.IO.Class.MonadIO m, o Data.Type.Equality.~ Data.ByteString.Internal.ByteString) => Data.Streaming.Process.Internal.OutputSink (Data.Conduit.Internal.Conduit.ConduitM i o m r)
+ Data.Conduit.Process: instance (r Data.Type.Equality.~ (), r' Data.Type.Equality.~ (), Control.Monad.IO.Class.MonadIO m, Control.Monad.IO.Class.MonadIO n, i Data.Type.Equality.~ Data.ByteString.Internal.ByteString) => Data.Streaming.Process.Internal.InputSource (Data.Conduit.Internal.Conduit.ConduitM i o m r, n r')
+ Data.Conduit.Process: instance (r Data.Type.Equality.~ (), r' Data.Type.Equality.~ (), Control.Monad.IO.Class.MonadIO m, Control.Monad.IO.Class.MonadIO n, o Data.Type.Equality.~ Data.ByteString.Internal.ByteString) => Data.Streaming.Process.Internal.OutputSink (Data.Conduit.Internal.Conduit.ConduitM i o m r, n r')
+ Data.Conduit.Process.Typed: ByteStringOutputException :: SomeException -> ProcessConfig () () () -> ByteStringOutputException
+ Data.Conduit.Process.Typed: ExitCodeException :: ExitCode -> ProcessConfig () () () -> ByteString -> ByteString -> ExitCodeException
+ Data.Conduit.Process.Typed: STInput :: StreamType
+ Data.Conduit.Process.Typed: STOutput :: StreamType
+ Data.Conduit.Process.Typed: [eceExitCode] :: ExitCodeException -> ExitCode
+ Data.Conduit.Process.Typed: [eceProcessConfig] :: ExitCodeException -> ProcessConfig () () ()
+ Data.Conduit.Process.Typed: [eceStderr] :: ExitCodeException -> ByteString
+ Data.Conduit.Process.Typed: [eceStdout] :: ExitCodeException -> ByteString
+ Data.Conduit.Process.Typed: byteStringInput :: ByteString -> StreamSpec STInput ()
+ Data.Conduit.Process.Typed: byteStringOutput :: StreamSpec STOutput (STM ByteString)
+ Data.Conduit.Process.Typed: checkExitCode :: MonadIO m => Process stdin stdout stderr -> m ()
+ Data.Conduit.Process.Typed: checkExitCodeSTM :: () => Process stdin stdout stderr -> STM ()
+ Data.Conduit.Process.Typed: closed :: () => StreamSpec anyStreamType ()
+ Data.Conduit.Process.Typed: createPipe :: () => StreamSpec anyStreamType Handle
+ Data.Conduit.Process.Typed: data ByteStringOutputException
+ Data.Conduit.Process.Typed: data ExitCodeException
+ Data.Conduit.Process.Typed: data Process stdin stdout stderr
+ Data.Conduit.Process.Typed: data ProcessConfig stdin stdout stderr
+ Data.Conduit.Process.Typed: data StreamSpec (streamType :: StreamType) a
+ Data.Conduit.Process.Typed: data StreamType
+ Data.Conduit.Process.Typed: getExitCode :: MonadIO m => Process stdin stdout stderr -> m (Maybe ExitCode)
+ Data.Conduit.Process.Typed: getExitCodeSTM :: () => Process stdin stdout stderr -> STM (Maybe ExitCode)
+ Data.Conduit.Process.Typed: getStderr :: () => Process stdin stdout stderr -> stderr
+ Data.Conduit.Process.Typed: getStdin :: () => Process stdin stdout stderr -> stdin
+ Data.Conduit.Process.Typed: getStdout :: () => Process stdin stdout stderr -> stdout
+ Data.Conduit.Process.Typed: inherit :: () => StreamSpec anyStreamType ()
+ Data.Conduit.Process.Typed: mkStreamSpec :: () => StdStream -> (ProcessConfig () () () -> Maybe Handle -> IO (a, IO ())) -> StreamSpec streamType a
+ Data.Conduit.Process.Typed: proc :: FilePath -> [String] -> ProcessConfig () () ()
+ Data.Conduit.Process.Typed: readProcess :: MonadIO m => ProcessConfig stdin stdoutIgnored stderrIgnored -> m (ExitCode, ByteString, ByteString)
+ Data.Conduit.Process.Typed: readProcessInterleaved :: MonadIO m => ProcessConfig stdin stdoutIgnored stderrIgnored -> m (ExitCode, ByteString)
+ Data.Conduit.Process.Typed: readProcessInterleaved_ :: MonadIO m => ProcessConfig stdin stdoutIgnored stderrIgnored -> m ByteString
+ Data.Conduit.Process.Typed: readProcessStderr :: MonadIO m => ProcessConfig stdin stdout stderrIgnored -> m (ExitCode, ByteString)
+ Data.Conduit.Process.Typed: readProcessStderr_ :: MonadIO m => ProcessConfig stdin stdout stderrIgnored -> m ByteString
+ Data.Conduit.Process.Typed: readProcessStdout :: MonadIO m => ProcessConfig stdin stdoutIgnored stderr -> m (ExitCode, ByteString)
+ Data.Conduit.Process.Typed: readProcessStdout_ :: MonadIO m => ProcessConfig stdin stdoutIgnored stderr -> m ByteString
+ Data.Conduit.Process.Typed: readProcess_ :: MonadIO m => ProcessConfig stdin stdoutIgnored stderrIgnored -> m (ByteString, ByteString)
+ Data.Conduit.Process.Typed: runProcess :: MonadIO m => ProcessConfig stdin stdout stderr -> m ExitCode
+ Data.Conduit.Process.Typed: runProcess_ :: MonadIO m => ProcessConfig stdin stdout stderr -> m ()
+ Data.Conduit.Process.Typed: setChildGroup :: () => GroupID -> ProcessConfig stdin stdout stderr -> ProcessConfig stdin stdout stderr
+ Data.Conduit.Process.Typed: setChildGroupInherit :: () => ProcessConfig stdin stdout stderr -> ProcessConfig stdin stdout stderr
+ Data.Conduit.Process.Typed: setChildUser :: () => UserID -> ProcessConfig stdin stdout stderr -> ProcessConfig stdin stdout stderr
+ Data.Conduit.Process.Typed: setChildUserInherit :: () => ProcessConfig stdin stdout stderr -> ProcessConfig stdin stdout stderr
+ Data.Conduit.Process.Typed: setCloseFds :: () => Bool -> ProcessConfig stdin stdout stderr -> ProcessConfig stdin stdout stderr
+ Data.Conduit.Process.Typed: setCreateGroup :: () => Bool -> ProcessConfig stdin stdout stderr -> ProcessConfig stdin stdout stderr
+ Data.Conduit.Process.Typed: setCreateNewConsole :: () => Bool -> ProcessConfig stdin stdout stderr -> ProcessConfig stdin stdout stderr
+ Data.Conduit.Process.Typed: setDelegateCtlc :: () => Bool -> ProcessConfig stdin stdout stderr -> ProcessConfig stdin stdout stderr
+ Data.Conduit.Process.Typed: setDetachConsole :: () => Bool -> ProcessConfig stdin stdout stderr -> ProcessConfig stdin stdout stderr
+ Data.Conduit.Process.Typed: setEnv :: () => [(String, String)] -> ProcessConfig stdin stdout stderr -> ProcessConfig stdin stdout stderr
+ Data.Conduit.Process.Typed: setEnvInherit :: () => ProcessConfig stdin stdout stderr -> ProcessConfig stdin stdout stderr
+ Data.Conduit.Process.Typed: setNewSession :: () => Bool -> ProcessConfig stdin stdout stderr -> ProcessConfig stdin stdout stderr
+ Data.Conduit.Process.Typed: setStderr :: () => StreamSpec STOutput stderr -> ProcessConfig stdin stdout stderr0 -> ProcessConfig stdin stdout stderr
+ Data.Conduit.Process.Typed: setStdin :: () => StreamSpec STInput stdin -> ProcessConfig stdin0 stdout stderr -> ProcessConfig stdin stdout stderr
+ Data.Conduit.Process.Typed: setStdout :: () => StreamSpec STOutput stdout -> ProcessConfig stdin stdout0 stderr -> ProcessConfig stdin stdout stderr
+ Data.Conduit.Process.Typed: setWorkingDir :: () => FilePath -> ProcessConfig stdin stdout stderr -> ProcessConfig stdin stdout stderr
+ Data.Conduit.Process.Typed: setWorkingDirInherit :: () => ProcessConfig stdin stdout stderr -> ProcessConfig stdin stdout stderr
+ Data.Conduit.Process.Typed: shell :: String -> ProcessConfig () () ()
+ Data.Conduit.Process.Typed: startProcess :: MonadIO m => ProcessConfig stdin stdout stderr -> m (Process stdin stdout stderr)
+ Data.Conduit.Process.Typed: stopProcess :: MonadIO m => Process stdin stdout stderr -> m ()
+ Data.Conduit.Process.Typed: unsafeProcessHandle :: () => Process stdin stdout stderr -> ProcessHandle
+ Data.Conduit.Process.Typed: useHandleClose :: () => Handle -> StreamSpec anyStreamType ()
+ Data.Conduit.Process.Typed: useHandleOpen :: () => Handle -> StreamSpec anyStreamType ()
+ Data.Conduit.Process.Typed: waitExitCode :: MonadIO m => Process stdin stdout stderr -> m ExitCode
+ Data.Conduit.Process.Typed: waitExitCodeSTM :: () => Process stdin stdout stderr -> STM ExitCode
+ Data.Conduit.Text: instance GHC.Exception.Type.Exception Data.Conduit.Text.TextException
- Data.Conduit.Binary: sinkHandleFlush :: MonadIO m => Handle -> ConduitM Flush ByteString o m ()
+ Data.Conduit.Binary: sinkHandleFlush :: MonadIO m => Handle -> ConduitM (Flush ByteString) o m ()
- Data.Conduit.ByteString.Builder: builderToByteStringFlush :: PrimMonad m => ConduitT Flush Builder Flush ByteString m ()
+ Data.Conduit.ByteString.Builder: builderToByteStringFlush :: PrimMonad m => ConduitT (Flush Builder) (Flush ByteString) m ()
- Data.Conduit.ByteString.Builder: builderToByteStringWithFlush :: PrimMonad m => BufferAllocStrategy -> ConduitT Flush Builder Flush ByteString m ()
+ Data.Conduit.ByteString.Builder: builderToByteStringWithFlush :: PrimMonad m => BufferAllocStrategy -> ConduitT (Flush Builder) (Flush ByteString) m ()
- Data.Conduit.Network: data AppData :: *
+ Data.Conduit.Network: data AppData
- Data.Conduit.Network: data ClientSettings :: *
+ Data.Conduit.Network: data ClientSettings
- Data.Conduit.Network: data HostPreference :: *
+ Data.Conduit.Network: data HostPreference
- Data.Conduit.Network: data ServerSettings :: *
+ Data.Conduit.Network: data ServerSettings
- Data.Conduit.Network.UDP: data HostPreference :: *
+ Data.Conduit.Network.UDP: data HostPreference
- Data.Conduit.Network.UDP: data Message :: *
+ Data.Conduit.Network.UDP: data Message
- Data.Conduit.Network.Unix: data AppDataUnix :: *
+ Data.Conduit.Network.Unix: data AppDataUnix
- Data.Conduit.Network.Unix: data ClientSettingsUnix :: *
+ Data.Conduit.Network.Unix: data ClientSettingsUnix
- Data.Conduit.Network.Unix: data ServerSettingsUnix :: *
+ Data.Conduit.Network.Unix: data ServerSettingsUnix
- Data.Conduit.Zlib: data WindowBits :: *
+ Data.Conduit.Zlib: data WindowBits
Files
- ChangeLog.md +4/−0
- Data/Conduit/Zlib.hs +1/−1
- conduit-extra.cabal +2/−1
- test/Data/Conduit/FilesystemSpec.hs +12/−11
ChangeLog.md view
@@ -1,3 +1,7 @@+## 1.3.1++* Switched `gzip` to use zlib's default compression level.+ ## 1.3.0 * Switch over to unliftio
Data/Conduit/Zlib.hs view
@@ -26,7 +26,7 @@ -- | Gzip compression with default parameters. gzip :: (MonadThrow m, PrimMonad m) => ConduitT ByteString ByteString m ()-gzip = compress 1 (WindowBits 31)+gzip = compress (-1) (WindowBits 31) -- | Gzip decompression with default parameters. ungzip :: (PrimMonad m, MonadThrow m) => ConduitT ByteString ByteString m ()
conduit-extra.cabal view
@@ -1,5 +1,5 @@ Name: conduit-extra-Version: 1.3.0+Version: 1.3.1 Synopsis: Batteries included conduit: adapters for common libraries. Description: The conduit package itself maintains relative small dependencies. The purpose of this package is to collect commonly used utility functions wrapping other library dependencies, without depending on heavier-weight dependencies. The basic idea is that this package should only depend on haskell-platform packages and conduit.@@ -85,6 +85,7 @@ , transformers , transformers-base , directory+ , filepath ghc-options: -Wall if os(windows) cpp-options: -DWINDOWS
test/Data/Conduit/FilesystemSpec.hs view
@@ -5,33 +5,34 @@ import qualified Data.Conduit.List as CL import Data.Conduit.Filesystem import Data.List (sort, isSuffixOf)+import System.FilePath ((</>)) spec :: Spec spec = describe "Data.Conduit.Filesystem" $ do it "sourceDirectory" $ do res <- runConduitRes- $ sourceDirectory "test/filesystem"+ $ sourceDirectory ("test" </> "filesystem") .| CL.filter (not . (".swp" `isSuffixOf`)) .| CL.consume sort res `shouldBe`- [ "test/filesystem/bar.txt"- , "test/filesystem/baz.txt"- , "test/filesystem/bin"- , "test/filesystem/foo.txt"+ [ "test" </> "filesystem" </> "bar.txt"+ , "test" </> "filesystem" </> "baz.txt"+ , "test" </> "filesystem" </> "bin"+ , "test" </> "filesystem" </> "foo.txt" ] it "sourceDirectoryDeep" $ do res1 <- runConduitRes- $ sourceDirectoryDeep False "test/filesystem"+ $ sourceDirectoryDeep False ("test" </> "filesystem") .| CL.filter (not . (".swp" `isSuffixOf`)) .| CL.consume res2 <- runConduitRes- $ sourceDirectoryDeep True "test/filesystem"+ $ sourceDirectoryDeep True ("test" </> "filesystem") .| CL.filter (not . (".swp" `isSuffixOf`)) .| CL.consume sort res1 `shouldBe`- [ "test/filesystem/bar.txt"- , "test/filesystem/baz.txt"- , "test/filesystem/bin/bin.txt"- , "test/filesystem/foo.txt"+ [ "test" </> "filesystem" </> "bar.txt"+ , "test" </> "filesystem" </> "baz.txt"+ , "test" </> "filesystem" </> "bin" </> "bin.txt"+ , "test" </> "filesystem" </> "foo.txt" ] sort res1 `shouldBe` sort res2