hw-mquery 0.2.1.1 → 0.2.1.2
raw patch · 6 files changed
+42/−34 lines, 6 filesdep +prettyprinterdep −ansi-wl-pprintdep ~doctestdep ~hedgehogPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: prettyprinter
Dependencies removed: ansi-wl-pprint
Dependency ranges changed: doctest, hedgehog
API changes (from Hackage documentation)
- HaskellWorks.Data.MQuery: instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (HaskellWorks.Data.MQuery.MQuery GHC.Base.String)
- HaskellWorks.Data.MQuery: instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (HaskellWorks.Data.MQuery.MQuery GHC.Integer.Type.Integer)
- HaskellWorks.Data.MQuery: instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (HaskellWorks.Data.MQuery.MQuery GHC.Types.Int)
- HaskellWorks.Data.MQuery: type family ArgOf a;
- HaskellWorks.Data.MQuery.Entry: instance (Text.PrettyPrint.ANSI.Leijen.Internal.Pretty k, Text.PrettyPrint.ANSI.Leijen.Internal.Pretty v) => Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (HaskellWorks.Data.MQuery.Entry.Entry k v)
- HaskellWorks.Data.MQuery.Micro: instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty a => Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (HaskellWorks.Data.MQuery.Micro.Micro (Data.DList.Internal.DList a))
- HaskellWorks.Data.MQuery.Micro: instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty a => Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (HaskellWorks.Data.MQuery.Micro.Micro [a])
- HaskellWorks.Data.MQuery.Mini: instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (HaskellWorks.Data.MQuery.Micro.Micro a) => Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (HaskellWorks.Data.MQuery.Mini.Mini [a])
- HaskellWorks.Data.MQuery.Mini: instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (HaskellWorks.Data.MQuery.Mini.Mini a) => Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (HaskellWorks.Data.MQuery.Mini.Mini (Data.DList.Internal.DList a))
- HaskellWorks.Data.MQuery.Row: instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty a => Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (HaskellWorks.Data.MQuery.Row.Row (Data.DList.Internal.DList a))
+ HaskellWorks.Data.MQuery: instance Prettyprinter.Internal.Pretty (HaskellWorks.Data.MQuery.MQuery GHC.Base.String)
+ HaskellWorks.Data.MQuery: instance Prettyprinter.Internal.Pretty (HaskellWorks.Data.MQuery.MQuery GHC.Num.Integer.Integer)
+ HaskellWorks.Data.MQuery: instance Prettyprinter.Internal.Pretty (HaskellWorks.Data.MQuery.MQuery GHC.Types.Int)
+ HaskellWorks.Data.MQuery: type ArgOf a;
+ HaskellWorks.Data.MQuery.Entry: instance (Prettyprinter.Internal.Pretty k, Prettyprinter.Internal.Pretty v) => Prettyprinter.Internal.Pretty (HaskellWorks.Data.MQuery.Entry.Entry k v)
+ HaskellWorks.Data.MQuery.Micro: instance Prettyprinter.Internal.Pretty a => Prettyprinter.Internal.Pretty (HaskellWorks.Data.MQuery.Micro.Micro (Data.DList.Internal.DList a))
+ HaskellWorks.Data.MQuery.Micro: instance Prettyprinter.Internal.Pretty a => Prettyprinter.Internal.Pretty (HaskellWorks.Data.MQuery.Micro.Micro [a])
+ HaskellWorks.Data.MQuery.Mini: instance Prettyprinter.Internal.Pretty (HaskellWorks.Data.MQuery.Micro.Micro a) => Prettyprinter.Internal.Pretty (HaskellWorks.Data.MQuery.Mini.Mini [a])
+ HaskellWorks.Data.MQuery.Mini: instance Prettyprinter.Internal.Pretty (HaskellWorks.Data.MQuery.Mini.Mini a) => Prettyprinter.Internal.Pretty (HaskellWorks.Data.MQuery.Mini.Mini (Data.DList.Internal.DList a))
+ HaskellWorks.Data.MQuery.Row: instance Prettyprinter.Internal.Pretty a => Prettyprinter.Internal.Pretty (HaskellWorks.Data.MQuery.Row.Row (Data.DList.Internal.DList a))
- HaskellWorks.Data.MQuery.Micro: prettyKvs :: Pretty (Micro a) => [a] -> Doc
+ HaskellWorks.Data.MQuery.Micro: prettyKvs :: Pretty (Micro a) => [a] -> Doc ann
- HaskellWorks.Data.MQuery.Micro: prettyVs :: Pretty a => [a] -> Doc
+ HaskellWorks.Data.MQuery.Micro: prettyVs :: Pretty a => [a] -> Doc ann
- HaskellWorks.Data.MQuery.Row: prettyRowOfString :: Show a => Row (DList a) -> Doc
+ HaskellWorks.Data.MQuery.Row: prettyRowOfString :: Show a => Row (DList a) -> Doc ann
Files
- hw-mquery.cabal +5/−5
- src/HaskellWorks/Data/MQuery.hs +1/−1
- src/HaskellWorks/Data/MQuery/Entry.hs +4/−2
- src/HaskellWorks/Data/MQuery/Micro.hs +16/−13
- src/HaskellWorks/Data/MQuery/Mini.hs +6/−5
- src/HaskellWorks/Data/MQuery/Row.hs +10/−8
hw-mquery.cabal view
@@ -1,7 +1,7 @@ cabal-version: 2.2 name: hw-mquery-version: 0.2.1.1+version: 0.2.1.2 synopsis: Monadic query DSL description: Please see README.md category: Data@@ -22,11 +22,11 @@ common base { build-depends: base >= 4.11 && < 5 } -common ansi-wl-pprint { build-depends: ansi-wl-pprint >= 0.6.8 && < 0.7 }+common prettyprinter { build-depends: prettyprinter >= 1 && < 2 } common dlist { build-depends: dlist >= 0.8.0 && < 1.1 }-common doctest { build-depends: doctest >= 0.16.2 && < 0.21 }+common doctest { build-depends: doctest >= 0.16.2 && < 1 } common doctest-discover { build-depends: doctest-discover >= 0.2 && < 0.3 }-common hedgehog { build-depends: hedgehog >= 0.6.1 && < 1.2 }+common hedgehog { build-depends: hedgehog >= 0.6.1 && < 2 } common hspec { build-depends: hspec >= 2.6.0 && < 3 } common hw-hspec-hedgehog { build-depends: hw-hspec-hedgehog >= 0.1.0.5 && < 0.2 } common lens { build-depends: lens >= 4.17 && < 6 }@@ -40,7 +40,7 @@ library import: base, config- , ansi-wl-pprint+ , prettyprinter , dlist , lens hs-source-dirs: src
src/HaskellWorks/Data/MQuery.hs view
@@ -13,7 +13,7 @@ import HaskellWorks.Data.MQuery.Entry import HaskellWorks.Data.MQuery.Row import HaskellWorks.Data.MQuery.ToBool-import Text.PrettyPrint.ANSI.Leijen hiding ((<>))+import Prettyprinter import qualified Data.DList as DL
src/HaskellWorks/Data/MQuery/Entry.hs view
@@ -1,8 +1,10 @@+{-# LANGUAGE OverloadedStrings #-}+ module HaskellWorks.Data.MQuery.Entry where -import Text.PrettyPrint.ANSI.Leijen+import Prettyprinter data Entry k v = Entry k v instance (Pretty k, Pretty v) => Pretty (Entry k v) where- pretty (Entry k v) = pretty k <> text ": " <> pretty v+ pretty (Entry k v) = pretty k <> ": " <> pretty v
src/HaskellWorks/Data/MQuery/Micro.hs view
@@ -1,34 +1,37 @@ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE OverloadedStrings #-} module HaskellWorks.Data.MQuery.Micro where -import Text.PrettyPrint.ANSI.Leijen+import Prettyprinter+import Prettyprinter.Render.Text + import qualified Data.DList as DL newtype Micro a = Micro a -prettyVs :: Pretty a => [a] -> Doc-prettyVs (kv:kvs) = pretty kv <> foldl (<>) empty ((\jv -> text ", " <> pretty jv) `map` kvs)-prettyVs [] = empty+prettyVs :: Pretty a => [a] -> Doc ann+prettyVs (kv:kvs) = pretty kv <> foldl (<>) mempty ((\jv -> ", " <> pretty jv) `map` kvs)+prettyVs [] = mempty putPretty :: Pretty a => a -> IO () putPretty a = putDoc (pretty a <> hardline) -prettyKvs :: Pretty (Micro a) => [a] -> Doc-prettyKvs (kv:kvs) = pretty (Micro kv) <> foldl (<>) empty ((\jv -> text ", " <> pretty (Micro jv)) `map` kvs)-prettyKvs [] = empty+prettyKvs :: Pretty (Micro a) => [a] -> Doc ann+prettyKvs (kv:kvs) = pretty (Micro kv) <> foldl (<>) mempty ((\jv -> ", " <> pretty (Micro jv)) `map` kvs)+prettyKvs [] = mempty instance Pretty a => Pretty (Micro [a]) where pretty (Micro xs) = case length xs of- xsLen | xsLen == 0 -> text "[]"- xsLen | xsLen <= 10 -> text "[" <> prettyVs xs <> text "]"- _ -> text "[" <> prettyVs (take 10 xs) <> text ", ..]"+ xsLen | xsLen == 0 -> "[]"+ xsLen | xsLen <= 10 -> "[" <> prettyVs xs <> "]"+ _ -> "[" <> prettyVs (take 10 xs) <> ", ..]" instance Pretty a => Pretty (Micro (DL.DList a)) where pretty (Micro dxs) = case DL.toList dxs of- xs@(_:_:_:_:_:_:_:_:_:_:_:_:_) -> text "[" <> prettyVs (take 50 xs) <> text ", ..]"- [] -> text "[]"- xs -> text "[" <> prettyVs xs <> text "]"+ xs@(_:_:_:_:_:_:_:_:_:_:_:_:_) -> "[" <> prettyVs (take 50 xs) <> ", ..]"+ [] -> "[]"+ xs -> "[" <> prettyVs xs <> "]"
src/HaskellWorks/Data/MQuery/Mini.hs view
@@ -1,20 +1,21 @@ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE OverloadedStrings #-} module HaskellWorks.Data.MQuery.Mini where import HaskellWorks.Data.MQuery.AtLeastSize import HaskellWorks.Data.MQuery.Micro-import Text.PrettyPrint.ANSI.Leijen+import Prettyprinter import qualified Data.DList as DL newtype Mini a = Mini a instance Pretty (Micro a) => Pretty (Mini [a]) where- pretty (Mini xs) | xs `atLeastSize` 11 = text "[" <> nest 2 (prettyVs (take 10 (Micro `map` xs))) <> text ", ..]"- pretty (Mini xs) | xs `atLeastSize` 1 = text "[" <> nest 2 (prettyVs (take 10 (Micro `map` xs))) <> text "]"- pretty (Mini _ ) = text "[]"+ pretty (Mini xs) | xs `atLeastSize` 11 = "[" <> nest 2 (prettyVs (take 10 (Micro `map` xs))) <> ", ..]"+ pretty (Mini xs) | xs `atLeastSize` 1 = "[" <> nest 2 (prettyVs (take 10 (Micro `map` xs))) <> "]"+ pretty (Mini _ ) = "[]" instance Pretty (Mini a) => Pretty (Mini (DL.DList a)) where- pretty (Mini xs) = vcat (punctuate (text ",") ((pretty . Mini) `map` take 10 (DL.toList xs)))+ pretty (Mini xs) = vcat (punctuate "," ((pretty . Mini) `map` take 10 (DL.toList xs)))
src/HaskellWorks/Data/MQuery/Row.hs view
@@ -1,9 +1,10 @@ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE OverloadedStrings #-} module HaskellWorks.Data.MQuery.Row where -import Text.PrettyPrint.ANSI.Leijen+import Prettyprinter import qualified Data.DList as DL @@ -12,11 +13,12 @@ data Row a = Row MaxChars a instance Pretty a => Pretty (Row (DL.DList a)) where- pretty (Row maxChars xs) = vcat (((bold . yellow) (text "==> ") <>) `map` prettyRows)- where prettyRows :: [Doc]- prettyRows = (\row -> text (take maxChars (displayS (renderCompact (pretty row)) []))) `map` DL.toList xs+ -- TODO implement max chars for Row+ pretty (Row _ xs) = vcat (("==> " <>) `map` prettyRows)+ where prettyRows :: [Doc ann]+ prettyRows = fmap pretty $ DL.toList xs -prettyRowOfString :: Show a => Row (DL.DList a) -> Doc-prettyRowOfString (Row _ xs) = vcat (((bold . yellow) (text "==> ") <>) `map` prettyRows)- where prettyRows :: [Doc]- prettyRows = (text . show) `map` DL.toList xs+prettyRowOfString :: Show a => Row (DL.DList a) -> Doc ann+prettyRowOfString (Row _ xs) = vcat (("==> " <>) `map` prettyRows)+ where prettyRows :: [Doc ann]+ prettyRows = (pretty . show) `map` DL.toList xs