ihaskell-magic 0.2.0.0 → 0.3.0.0
raw patch · 2 files changed
+32/−29 lines, 2 filesdep −classy-preludedep ~base
Dependencies removed: classy-prelude
Dependency ranges changed: base
Files
- IHaskell/Display/Magic.hs +30/−26
- ihaskell-magic.cabal +2/−3
IHaskell/Display/Magic.hs view
@@ -1,31 +1,32 @@ {-# LANGUAGE ViewPatterns, TypeSynonymInstances, FlexibleInstances #-}+ module IHaskell.Display.Magic () where -import IHaskell.Display-import Magic+import IHaskell.Display+import Magic import qualified Data.ByteString as B import qualified Data.ByteString.Unsafe as B import qualified Data.ByteString.Base64 as Base64 import qualified Data.ByteString.Char8 as Char import qualified Data.ByteString.UTF8 as B -import Text.Read-import Data.Char+import Text.Read+import Data.Char import qualified Data.Text as T import qualified Data.Text.Encoding as T-import IHaskell.IPython.Types (MimeType(MimeSvg))-import Data.ByteString.UTF8+import IHaskell.IPython.Types (MimeType(MimeSvg))+import Data.ByteString.UTF8 instance IHaskellDisplay T.Text where- display = display . T.encodeUtf8+ display = display . T.encodeUtf8 instance IHaskellDisplay B.ByteString where- display x = do- m <- magicOpen []- magicLoadDefault m- f <- B.unsafeUseAsCStringLen x (magicCString m)- return $ Display [withClass (parseMagic f) x]+ display x = do+ m <- magicOpen []+ magicLoadDefault m+ f <- B.unsafeUseAsCStringLen x (magicCString m)+ return $ Display [withClass (parseMagic f) x] b64 :: B.ByteString -> String b64 = Char.unpack . Base64.encode@@ -34,7 +35,7 @@ withClass SVG = DisplayData MimeSvg . T.decodeUtf8 withClass (PNG w h) = png w h . T.decodeUtf8 . Base64.encode withClass JPG = jpg 400 300 . T.decodeUtf8 . Base64.encode-withClass HTML = html . B.toString +withClass HTML = html . B.toString withClass LaTeX = latex . B.toString withClass _ = plain . B.toString @@ -54,17 +55,20 @@ -} parseMagic :: String -> MagicClass-parseMagic f = case words f of- "SVG" : _ -> SVG- "PNG" : _image : _data :- (readMaybe -> Just w) : _x :- (readMaybe . takeWhile isDigit -> Just h) : _ -> PNG w h- "LaTeX" : _ -> LaTeX- "HTML" : _ -> HTML- "JPEG" : _ -> JPG- _ -> Unknown-+parseMagic f =+ case words f of+ "SVG":_ -> SVG+ "PNG":_image:_data:(readMaybe -> Just w):_x:(readMaybe . takeWhile isDigit -> Just h):_ -> PNG w+ h+ "LaTeX":_ -> LaTeX+ "HTML":_ -> HTML+ "JPEG":_ -> JPG+ _ -> Unknown -data MagicClass =- SVG | PNG Int Int | JPG | HTML | LaTeX | Unknown- deriving Show+data MagicClass = SVG+ | PNG Int Int+ | JPG+ | HTML+ | LaTeX+ | Unknown+ deriving Show
ihaskell-magic.cabal view
@@ -10,7 +10,7 @@ -- PVP summary: +-+------- breaking API changes -- | | +----- non-breaking API additions -- | | | +--- code changes with no API change-version: 0.2.0.0+version: 0.3.0.0 -- A short (one-line) description of the package. synopsis: IHaskell display instances for bytestrings@@ -61,8 +61,7 @@ OverloadedStrings -- Other library packages from which modules are imported.- build-depends: base ==4.6.* || ==4.7.*,- classy-prelude >=0.6,+ build-depends: base >=4.6 && <4.9, magic >= 1.0.8, text, bytestring,