packages feed

dataframe-th 1.0.1.2 → 2.0.0.0

raw patch · 3 files changed

+24/−25 lines, 3 filesdep ~containersdep ~dataframe-coredep ~dataframe-operations

Dependency ranges changed: containers, dataframe-core, dataframe-operations, dataframe-parsing, vector

Files

dataframe-th.cabal view
@@ -1,6 +1,6 @@-cabal-version:      2.4+cabal-version:      3.4 name:               dataframe-th-version:            1.0.1.2+version:            2.0.0.0  synopsis:           Record-based Template Haskell splices for the dataframe ecosystem. description:@@ -28,16 +28,19 @@ library     import:             warnings     exposed-modules:-                        DataFrame.Internal.Schema.TH                         DataFrame.TH.Records                         DataFrame.Typed.TH.Records+    -- Internal record→schema TH; sealed (superseded publicly by+    -- @deriveSchemaFromType@ in DataFrame.Typed.TH.Records).+    other-modules:      DataFrame.Internal.Schema.TH     build-depends:      base >= 4 && < 5,-                        containers >= 0.6.7 && < 0.9,-                        dataframe-core ^>= 1.1,-                        dataframe-operations ^>= 1.1.1,-                        dataframe-parsing ^>= 1.0.2,+                        containers >= 0.6.7 && < 0.10,+                        dataframe-core >= 2.0 && < 2.1,+                        dataframe-core:internal >= 2.0 && < 2.1,+                        dataframe-operations >= 2.0 && < 2.1,+                        dataframe-parsing >= 2.0 && < 2.1,                         template-haskell >= 2.0 && < 3,-                        text >= 2.0 && < 3,-                        vector ^>= 0.13+                        text >= 2.1 && < 3,+                        vector >= 0.13 && < 0.15     hs-source-dirs:     src     default-language:   Haskell2010
src/DataFrame/Internal/Schema/TH.hs view
@@ -18,25 +18,12 @@ import Language.Haskell.TH  import DataFrame.Internal.Expression (Expr)-import DataFrame.Internal.Schema (Schema, makeSchema, schemaType) import DataFrame.Operators (col)+import DataFrame.Schema (Schema, makeSchema, schemaType)  {- | Auto-generate a runtime 'Schema' (and per-column @'Expr'@ accessors)-from a record ADT.--The splice reifies the record, applies @camelCase -> snake_case@ to each-record-selector name, and emits:--* a top-level @\<lower-first TyConName\>Schema :: 'Schema'@ binding suitable-  for passing to 'DataFrame.IO.CSV.readCsvWithSchema'.-* one @\<lower-first TyConName\>\<UpperFirst FieldName\> :: 'Expr' /ty/@ binding-  per field, so you can refer to columns in expression DSL code by name-  without writing @col \@/ty/ "snake_case_name"@ at every call site.--The data type must have exactly one record constructor; sum types or-positional constructors fail the splice with a descriptive error. Field-types must satisfy @('Columnable' a, 'Read' a)@ — the same constraints-'schemaType' already requires.+from a record ADT. Emits @\<tyName\>Schema@ plus one accessor per field+(@camelCase -> snake_case@). Requires a single record constructor. -} deriveSchema :: Name -> DecsQ deriveSchema tyName = do
src/DataFrame/Typed/TH/Records.hs view
@@ -19,6 +19,7 @@     -- * ADT-based schema derivation     deriveSchemaFromType,     deriveSchemaFromTypeWith,+    deriveSchemaValues,     SchemaOptions (..),     defaultSchemaOptions,     camelToSnake,@@ -42,6 +43,7 @@  import qualified DataFrame.Internal.Column as C import qualified DataFrame.Internal.DataFrame as D+import qualified DataFrame.Internal.Schema.TH as SchemaTH import DataFrame.Typed.Record (     HasSchema,     Schema,@@ -51,6 +53,13 @@  ) import DataFrame.Typed.Types (Column, TypedDataFrame) import DataFrame.Typed.Util (camelToSnake)++{- | Derive an untyped 'DataFrame.Schema.Schema' value plus per-column 'Expr'+accessors from a record type. The value-level companion to+'deriveSchemaFromType': @$(deriveSchemaValues ''Order)@ generates @orderSchema@.+-}+deriveSchemaValues :: Name -> DecsQ+deriveSchemaValues = SchemaTH.deriveSchema  deriveSchema :: String -> D.DataFrame -> DecsQ deriveSchema typeName df = do