pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc/converters/hs-aeson-better-errors converters/hs-aeson-...
details: https://anonhg.NetBSD.org/pkgsrc/rev/f9a9ac3fba5e
branches: trunk
changeset: 374485:f9a9ac3fba5e
user: pho <pho%pkgsrc.org@localhost>
date: Wed Feb 23 16:08:53 2022 +0000
description:
converters/hs-aeson-better-errors: import hs-aeson-better-errors-0.9.1.0
A small package which gives you the tools to build parsers to decode JSON
values, and gives good error messages when parsing fails. See also
http://harry.garrood.me/blog/aeson-better-errors/
diffstat:
converters/hs-aeson-better-errors/DESCR | 3 +
converters/hs-aeson-better-errors/Makefile | 18 +
converters/hs-aeson-better-errors/PLIST | 26 ++
converters/hs-aeson-better-errors/buildlink3.mk | 21 ++
converters/hs-aeson-better-errors/distinfo | 6 +
converters/hs-aeson-better-errors/patches/patch-src_Data_Aeson_BetterErrors_Internal.hs | 91 ++++++++++
6 files changed, 165 insertions(+), 0 deletions(-)
diffs (189 lines):
diff -r 2d46a77223a8 -r f9a9ac3fba5e converters/hs-aeson-better-errors/DESCR
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/converters/hs-aeson-better-errors/DESCR Wed Feb 23 16:08:53 2022 +0000
@@ -0,0 +1,3 @@
+A small package which gives you the tools to build parsers to decode JSON
+values, and gives good error messages when parsing fails. See also
+http://harry.garrood.me/blog/aeson-better-errors/
diff -r 2d46a77223a8 -r f9a9ac3fba5e converters/hs-aeson-better-errors/Makefile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/converters/hs-aeson-better-errors/Makefile Wed Feb 23 16:08:53 2022 +0000
@@ -0,0 +1,18 @@
+# $NetBSD: Makefile,v 1.1 2022/02/23 16:08:53 pho Exp $
+
+DISTNAME= aeson-better-errors-0.9.1.0
+CATEGORIES= converters
+
+MAINTAINER= pkgsrc-users%NetBSD.org@localhost
+COMMENT= Better error messages when decoding JSON values
+LICENSE= mit
+
+.include "../../converters/hs-aeson/buildlink3.mk"
+.include "../../devel/hs-dlist/buildlink3.mk"
+.include "../../math/hs-scientific/buildlink3.mk"
+.include "../../devel/hs-transformers-compat/buildlink3.mk"
+.include "../../devel/hs-unordered-containers/buildlink3.mk"
+.include "../../devel/hs-vector/buildlink3.mk"
+.include "../../devel/hs-void/buildlink3.mk"
+.include "../../mk/haskell.mk"
+.include "../../mk/bsd.pkg.mk"
diff -r 2d46a77223a8 -r f9a9ac3fba5e converters/hs-aeson-better-errors/PLIST
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/converters/hs-aeson-better-errors/PLIST Wed Feb 23 16:08:53 2022 +0000
@@ -0,0 +1,26 @@
+@comment $NetBSD: PLIST,v 1.1 2022/02/23 16:08:53 pho Exp $
+lib/aeson-better-errors-${PKGVERSION}/${HS_VERSION}/package-description
+lib/aeson-better-errors-${PKGVERSION}/${HS_VERSION}/package-id
+lib/${HS_PLATFORM}/${HS_PKGID}/Data/Aeson/BetterErrors.dyn_hi
+lib/${HS_PLATFORM}/${HS_PKGID}/Data/Aeson/BetterErrors.hi
+lib/${HS_PLATFORM}/${HS_PKGID}/Data/Aeson/BetterErrors.p_hi
+lib/${HS_PLATFORM}/${HS_PKGID}/Data/Aeson/BetterErrors/Internal.dyn_hi
+lib/${HS_PLATFORM}/${HS_PKGID}/Data/Aeson/BetterErrors/Internal.hi
+lib/${HS_PLATFORM}/${HS_PKGID}/Data/Aeson/BetterErrors/Internal.p_hi
+lib/${HS_PLATFORM}/${HS_PKGID}/Data/Aeson/BetterErrors/Utils.dyn_hi
+lib/${HS_PLATFORM}/${HS_PKGID}/Data/Aeson/BetterErrors/Utils.hi
+lib/${HS_PLATFORM}/${HS_PKGID}/Data/Aeson/BetterErrors/Utils.p_hi
+lib/${HS_PLATFORM}/${HS_PKGID}/libHS${HS_PKGID}.a
+lib/${HS_PLATFORM}/${HS_PKGID}/libHS${HS_PKGID}_p.a
+lib/${HS_PLATFORM}/libHS${HS_PKGID}-${HS_VER}.so
+share/doc/${HS_PLATFORM}/aeson-better-errors-${PKGVERSION}/LICENSE
+share/doc/${HS_PLATFORM}/aeson-better-errors-${PKGVERSION}/html/Data-Aeson-BetterErrors-Internal.html
+share/doc/${HS_PLATFORM}/aeson-better-errors-${PKGVERSION}/html/Data-Aeson-BetterErrors.html
+share/doc/${HS_PLATFORM}/aeson-better-errors-${PKGVERSION}/html/aeson-better-errors.haddock
+share/doc/${HS_PLATFORM}/aeson-better-errors-${PKGVERSION}/html/doc-index.html
+share/doc/${HS_PLATFORM}/aeson-better-errors-${PKGVERSION}/html/haddock-bundle.min.js
+share/doc/${HS_PLATFORM}/aeson-better-errors-${PKGVERSION}/html/index.html
+share/doc/${HS_PLATFORM}/aeson-better-errors-${PKGVERSION}/html/linuwial.css
+share/doc/${HS_PLATFORM}/aeson-better-errors-${PKGVERSION}/html/meta.json
+share/doc/${HS_PLATFORM}/aeson-better-errors-${PKGVERSION}/html/quick-jump.css
+share/doc/${HS_PLATFORM}/aeson-better-errors-${PKGVERSION}/html/synopsis.png
diff -r 2d46a77223a8 -r f9a9ac3fba5e converters/hs-aeson-better-errors/buildlink3.mk
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/converters/hs-aeson-better-errors/buildlink3.mk Wed Feb 23 16:08:53 2022 +0000
@@ -0,0 +1,21 @@
+# $NetBSD: buildlink3.mk,v 1.1 2022/02/23 16:08:53 pho Exp $
+
+BUILDLINK_TREE+= hs-aeson-better-errors
+
+.if !defined(HS_AESON_BETTER_ERRORS_BUILDLINK3_MK)
+HS_AESON_BETTER_ERRORS_BUILDLINK3_MK:=
+
+BUILDLINK_API_DEPENDS.hs-aeson-better-errors+= hs-aeson-better-errors>=0.9.1
+BUILDLINK_ABI_DEPENDS.hs-aeson-better-errors+= hs-aeson-better-errors>=0.9.1.0
+BUILDLINK_PKGSRCDIR.hs-aeson-better-errors?= ../../converters/hs-aeson-better-errors
+
+.include "../../converters/hs-aeson/buildlink3.mk"
+.include "../../devel/hs-dlist/buildlink3.mk"
+.include "../../math/hs-scientific/buildlink3.mk"
+.include "../../devel/hs-transformers-compat/buildlink3.mk"
+.include "../../devel/hs-unordered-containers/buildlink3.mk"
+.include "../../devel/hs-vector/buildlink3.mk"
+.include "../../devel/hs-void/buildlink3.mk"
+.endif # HS_AESON_BETTER_ERRORS_BUILDLINK3_MK
+
+BUILDLINK_TREE+= -hs-aeson-better-errors
diff -r 2d46a77223a8 -r f9a9ac3fba5e converters/hs-aeson-better-errors/distinfo
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/converters/hs-aeson-better-errors/distinfo Wed Feb 23 16:08:53 2022 +0000
@@ -0,0 +1,6 @@
+$NetBSD: distinfo,v 1.1 2022/02/23 16:08:53 pho Exp $
+
+BLAKE2s (aeson-better-errors-0.9.1.0.tar.gz) = 624b0cd5a9158b53c8f584b744b1a6f8b879d08048579f639971ec2d1db66001
+SHA512 (aeson-better-errors-0.9.1.0.tar.gz) = 3ff1a0f85f39df01f8cfa0fe4682a97f69a324c8b344f7bb005a84e4adb4c0dabe463e3a029a74012b101413532d3f5d3a4be92671d14b5387fb61ca8e1540c6
+Size (aeson-better-errors-0.9.1.0.tar.gz) = 8401 bytes
+SHA1 (patch-src_Data_Aeson_BetterErrors_Internal.hs) = 544645a1da856bae7c5a62e2b8323ba13b814df9
diff -r 2d46a77223a8 -r f9a9ac3fba5e converters/hs-aeson-better-errors/patches/patch-src_Data_Aeson_BetterErrors_Internal.hs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/converters/hs-aeson-better-errors/patches/patch-src_Data_Aeson_BetterErrors_Internal.hs Wed Feb 23 16:08:53 2022 +0000
@@ -0,0 +1,91 @@
+$NetBSD: patch-src_Data_Aeson_BetterErrors_Internal.hs,v 1.1 2022/02/23 16:08:53 pho Exp $
+
+Fix build with aeson-2.0
+
+--- src/Data/Aeson/BetterErrors/Internal.hs.orig 2022-02-20 12:31:25.835056290 +0000
++++ src/Data/Aeson/BetterErrors/Internal.hs
+@@ -33,7 +33,8 @@ import Data.Vector ((!?))
+ import qualified Data.Vector as V
+ import Data.Scientific (Scientific)
+ import qualified Data.Scientific as S
+-import qualified Data.HashMap.Strict as HashMap
++import Data.Aeson.Key (Key)
++import qualified Data.Aeson.KeyMap as KeyMap
+
+ import Data.Aeson.BetterErrors.Utils
+
+@@ -178,7 +179,7 @@ setValue v r = r { rdrValue = v }
+ -- Internally, a list of these is maintained as the parser traverses the JSON
+ -- data. This list is included in the error if one occurs.
+ data PathPiece
+- = ObjectKey Text
++ = ObjectKey Key
+ | ArrayIndex Int
+ deriving (Show, Eq, Ord)
+
+@@ -201,7 +202,7 @@ type ParseError' = ParseError Void
+ -- but a value of the required type could not be constructed from it, for some
+ -- reason.
+ data ErrorSpecifics err
+- = KeyMissing Text
++ = KeyMissing Key
+ | OutOfBounds Int
+ | WrongType JSONType A.Value -- ^ Expected type, actual value
+ | ExpectedIntegral Double
+@@ -369,25 +370,25 @@ perhaps p = do
+ _ -> Just <$> p
+
+ -- | Take the value corresponding to a given key in the current object.
+-key :: (Functor m, Monad m) => Text -> ParseT err m a -> ParseT err m a
++key :: (Functor m, Monad m) => Key -> ParseT err m a -> ParseT err m a
+ key k p = key' (badSchema (KeyMissing k)) k p
+
+ -- | Take the value corresponding to a given key in the current object, or
+ -- if no property exists with that key, use the supplied default.
+-keyOrDefault :: (Functor m, Monad m) => Text -> a -> ParseT err m a -> ParseT err m a
++keyOrDefault :: (Functor m, Monad m) => Key -> a -> ParseT err m a -> ParseT err m a
+ keyOrDefault k def p = key' (pure def) k p
+
+ -- | Take the value corresponding to a given key in the current object, or
+ -- if no property exists with that key, return Nothing .
+-keyMay :: (Functor m, Monad m) => Text -> ParseT err m a -> ParseT err m (Maybe a)
++keyMay :: (Functor m, Monad m) => Key -> ParseT err m a -> ParseT err m (Maybe a)
+ keyMay k p = keyOrDefault k Nothing (Just <$> p)
+
+-key' :: (Functor m, Monad m) => ParseT err m a -> Text -> ParseT err m a -> ParseT err m a
++key' :: (Functor m, Monad m) => ParseT err m a -> Key -> ParseT err m a -> ParseT err m a
+ key' onMissing k p = do
+ v <- asks rdrValue
+ case v of
+ A.Object obj ->
+- case HashMap.lookup k obj of
++ case KeyMap.lookup k obj of
+ Just v' ->
+ local (appendPath (ObjectKey k) . setValue v') p
+ Nothing ->
+@@ -433,21 +434,21 @@ eachInArray p = do
+
+ -- | Parse each property in an object with the given parser, given the key as
+ -- an argument, and collect the results.
+-forEachInObject :: (Functor m, Monad m) => (Text -> ParseT err m a) -> ParseT err m [a]
++forEachInObject :: (Functor m, Monad m) => (Key -> ParseT err m a) -> ParseT err m [a]
+ forEachInObject p = do
+- xs <- HashMap.toList <$> asObject
++ xs <- KeyMap.toList <$> asObject
+ forM xs $ \(k, x) ->
+ local (appendPath (ObjectKey k) . setValue x) (p k)
+
+ -- | Attempt to parse each property value in the object with the given parser,
+ -- and collect the results.
+-eachInObject :: (Functor m, Monad m) => ParseT err m a -> ParseT err m [(Text, a)]
++eachInObject :: (Functor m, Monad m) => ParseT err m a -> ParseT err m [(Key, a)]
+ eachInObject = eachInObjectWithKey Right
+
+ -- | Attempt to parse each property in the object: parse the key with the
+ -- given validation function, parse the value with the given parser, and
+ -- collect the results.
+-eachInObjectWithKey :: (Functor m, Monad m) => (Text -> Either err k) -> ParseT err m a -> ParseT err m [(k, a)]
++eachInObjectWithKey :: (Functor m, Monad m) => (Key -> Either err k) -> ParseT err m a -> ParseT err m [(k, a)]
+ eachInObjectWithKey parseKey parseVal = forEachInObject $ \k ->
+ (,) <$> liftEither (parseKey k) <*> parseVal
+
Home |
Main Index |
Thread Index |
Old Index