dataframe-lazy 2.2.0.0 → 2.3.0.0
raw patch · 2 files changed
+13/−13 lines, 2 filesdep ~dataframe-coredep ~dataframe-csvdep ~dataframe-operationsPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: dataframe-core, dataframe-csv, dataframe-operations, dataframe-parquet, dataframe-parsing
API changes (from Hackage documentation)
- DataFrame.Typed.Lazy: aggregate :: forall (keys :: [Symbol]) (cols :: [Type]) (aggs :: [Type]). TAgg keys cols aggs -> TypedLazyGrouped keys cols -> TypedLazyDataFrame (Append (GroupKeyColumns keys cols) (Reverse aggs))
+ DataFrame.Typed.Lazy: aggregate :: forall (keys :: [Symbol]) (cols :: [(Symbol, Type)]) (aggs :: [(Symbol, Type)]). TAgg keys cols aggs -> TypedLazyGrouped keys cols -> TypedLazyDataFrame (Append (GroupKeyColumns keys cols) (Reverse aggs))
- DataFrame.Typed.Lazy: data TypedLazyDataFrame (cols :: [Type])
+ DataFrame.Typed.Lazy: data TypedLazyDataFrame (cols :: [(Symbol, Type)])
- DataFrame.Typed.Lazy: derive :: forall (name :: Symbol) a (cols :: [Type]). (KnownSymbol name, Columnable a, AssertAbsent name cols) => TExpr cols a -> TypedLazyDataFrame cols -> TypedLazyDataFrame (Snoc cols (Column name a))
+ DataFrame.Typed.Lazy: derive :: forall (name :: Symbol) a (cols :: [(Symbol, Type)]). (KnownSymbol name, Columnable a, AssertAbsent name cols) => TExpr cols a -> TypedLazyDataFrame cols -> TypedLazyDataFrame (Snoc cols '(name, a))
- DataFrame.Typed.Lazy: filter :: forall (cols :: [Type]). TExpr cols Bool -> TypedLazyDataFrame cols -> TypedLazyDataFrame cols
+ DataFrame.Typed.Lazy: filter :: forall (cols :: [(Symbol, Type)]). TExpr cols Bool -> TypedLazyDataFrame cols -> TypedLazyDataFrame cols
- DataFrame.Typed.Lazy: fromDataFrame :: forall (cols :: [Type]). TypedDataFrame cols -> TypedLazyDataFrame cols
+ DataFrame.Typed.Lazy: fromDataFrame :: forall (cols :: [(Symbol, Type)]). TypedDataFrame cols -> TypedLazyDataFrame cols
- DataFrame.Typed.Lazy: fromTypedDataFrame :: forall (cols :: [Type]). TypedDataFrame cols -> TypedLazyDataFrame cols
+ DataFrame.Typed.Lazy: fromTypedDataFrame :: forall (cols :: [(Symbol, Type)]). TypedDataFrame cols -> TypedLazyDataFrame cols
- DataFrame.Typed.Lazy: fullOuterJoin :: forall (key :: Symbol) (left :: [Type]) (right :: [Type]). (KnownSymbol key, AssertAllPresent '[key] left, AssertAllPresent '[key] right, AssertKeyTypesMatch '[key] left right) => TypedLazyDataFrame left -> TypedLazyDataFrame right -> TypedLazyDataFrame (FullOuterJoinSchema '[key] left right)
+ DataFrame.Typed.Lazy: fullOuterJoin :: forall (key :: Symbol) (left :: [(Symbol, Type)]) (right :: [(Symbol, Type)]). (KnownSymbol key, AssertAllPresent '[key] left, AssertAllPresent '[key] right, AssertKeyTypesMatch '[key] left right) => TypedLazyDataFrame left -> TypedLazyDataFrame right -> TypedLazyDataFrame (FullOuterJoinSchema '[key] left right)
- DataFrame.Typed.Lazy: groupBy :: forall (keys :: [Symbol]) (cols :: [Type]). (AllKnownSymbol keys, AssertAllPresent keys cols) => TypedLazyDataFrame cols -> TypedLazyGrouped keys cols
+ DataFrame.Typed.Lazy: groupBy :: forall (keys :: [Symbol]) (cols :: [(Symbol, Type)]). (AllKnownSymbol keys, AssertAllPresent keys cols) => TypedLazyDataFrame cols -> TypedLazyGrouped keys cols
- DataFrame.Typed.Lazy: innerJoin :: forall (key :: Symbol) (left :: [Type]) (right :: [Type]). (KnownSymbol key, AssertAllPresent '[key] left, AssertAllPresent '[key] right, AssertKeyTypesMatch '[key] left right) => TypedLazyDataFrame left -> TypedLazyDataFrame right -> TypedLazyDataFrame (InnerJoinSchema '[key] left right)
+ DataFrame.Typed.Lazy: innerJoin :: forall (key :: Symbol) (left :: [(Symbol, Type)]) (right :: [(Symbol, Type)]). (KnownSymbol key, AssertAllPresent '[key] left, AssertAllPresent '[key] right, AssertKeyTypesMatch '[key] left right) => TypedLazyDataFrame left -> TypedLazyDataFrame right -> TypedLazyDataFrame (InnerJoinSchema '[key] left right)
- DataFrame.Typed.Lazy: leftJoin :: forall (key :: Symbol) (left :: [Type]) (right :: [Type]). (KnownSymbol key, AssertAllPresent '[key] left, AssertAllPresent '[key] right, AssertKeyTypesMatch '[key] left right) => TypedLazyDataFrame left -> TypedLazyDataFrame right -> TypedLazyDataFrame (LeftJoinSchema '[key] left right)
+ DataFrame.Typed.Lazy: leftJoin :: forall (key :: Symbol) (left :: [(Symbol, Type)]) (right :: [(Symbol, Type)]). (KnownSymbol key, AssertAllPresent '[key] left, AssertAllPresent '[key] right, AssertKeyTypesMatch '[key] left right) => TypedLazyDataFrame left -> TypedLazyDataFrame right -> TypedLazyDataFrame (LeftJoinSchema '[key] left right)
- DataFrame.Typed.Lazy: rightJoin :: forall (key :: Symbol) (left :: [Type]) (right :: [Type]). (KnownSymbol key, AssertAllPresent '[key] left, AssertAllPresent '[key] right, AssertKeyTypesMatch '[key] left right) => TypedLazyDataFrame left -> TypedLazyDataFrame right -> TypedLazyDataFrame (RightJoinSchema '[key] left right)
+ DataFrame.Typed.Lazy: rightJoin :: forall (key :: Symbol) (left :: [(Symbol, Type)]) (right :: [(Symbol, Type)]). (KnownSymbol key, AssertAllPresent '[key] left, AssertAllPresent '[key] right, AssertKeyTypesMatch '[key] left right) => TypedLazyDataFrame left -> TypedLazyDataFrame right -> TypedLazyDataFrame (RightJoinSchema '[key] left right)
- DataFrame.Typed.Lazy: run :: forall (cols :: [Type]). KnownSchema cols => TypedLazyDataFrame cols -> IO (TypedDataFrame cols)
+ DataFrame.Typed.Lazy: run :: forall (cols :: [(Symbol, Type)]). KnownSchema cols => TypedLazyDataFrame cols -> IO (TypedDataFrame cols)
- DataFrame.Typed.Lazy: scanCsv :: forall (cols :: [Type]). Schema -> Text -> TypedLazyDataFrame cols
+ DataFrame.Typed.Lazy: scanCsv :: forall (cols :: [(Symbol, Type)]). Schema -> Text -> TypedLazyDataFrame cols
- DataFrame.Typed.Lazy: scanParquet :: forall (cols :: [Type]). Schema -> Text -> TypedLazyDataFrame cols
+ DataFrame.Typed.Lazy: scanParquet :: forall (cols :: [(Symbol, Type)]). Schema -> Text -> TypedLazyDataFrame cols
- DataFrame.Typed.Lazy: scanSeparated :: forall (cols :: [Type]). Char -> Schema -> Text -> TypedLazyDataFrame cols
+ DataFrame.Typed.Lazy: scanSeparated :: forall (cols :: [(Symbol, Type)]). Char -> Schema -> Text -> TypedLazyDataFrame cols
- DataFrame.Typed.Lazy: select :: forall (names :: [Symbol]) (cols :: [Type]). (AllKnownSymbol names, AssertAllPresent names cols) => TypedLazyDataFrame cols -> TypedLazyDataFrame (SubsetSchema names cols)
+ DataFrame.Typed.Lazy: select :: forall (names :: [Symbol]) (cols :: [(Symbol, Type)]). (AllKnownSymbol names, AssertAllPresent names cols) => TypedLazyDataFrame cols -> TypedLazyDataFrame (SubsetSchema names cols)
- DataFrame.Typed.Lazy: sortBy :: forall (cols :: [Type]). [(Text, SortOrder)] -> TypedLazyDataFrame cols -> TypedLazyDataFrame cols
+ DataFrame.Typed.Lazy: sortBy :: forall (cols :: [(Symbol, Type)]). [(Text, SortOrder)] -> TypedLazyDataFrame cols -> TypedLazyDataFrame cols
- DataFrame.Typed.Lazy: take :: forall (cols :: [Type]). Int -> TypedLazyDataFrame cols -> TypedLazyDataFrame cols
+ DataFrame.Typed.Lazy: take :: forall (cols :: [(Symbol, Type)]). Int -> TypedLazyDataFrame cols -> TypedLazyDataFrame cols
Files
- dataframe-lazy.cabal +8/−8
- src/DataFrame/Typed/Lazy.hs +5/−5
dataframe-lazy.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.4 name: dataframe-lazy-version: 2.2.0.0+version: 2.3.0.0 synopsis: Lazy query engine for the dataframe ecosystem. description: The lazy/streaming query engine: relational-algebra plans, optimizer,@@ -45,13 +45,13 @@ attoparsec >= 0.12 && < 0.16, bytestring >= 0.11 && < 0.14, containers >= 0.6.7 && < 0.10,- dataframe-core >= 2.1 && < 2.2,- dataframe-core >= 2.1 && < 2.2,- dataframe-csv >= 2.2 && < 2.3,- dataframe-csv >= 2.2 && < 2.3,- dataframe-operations >= 2.1 && < 2.2,- dataframe-parquet >= 1.4 && < 1.5,- dataframe-parsing >= 2.1 && < 2.2,+ dataframe-core >= 2.2 && < 2.3,+ dataframe-core >= 2.2 && < 2.3,+ dataframe-csv >= 2.3 && < 2.4,+ dataframe-csv >= 2.3 && < 2.4,+ dataframe-operations >= 2.2 && < 2.3,+ dataframe-parquet >= 1.5 && < 1.6,+ dataframe-parsing >= 2.2 && < 2.3, directory >= 1.3.0.0 && < 2, filepath >= 1.4 && < 2, Glob >= 0.10 && < 1,
src/DataFrame/Typed/Lazy.hs view
@@ -21,13 +21,13 @@ import qualified DataFrame.Typed.Lazy as TL import DataFrame.Typed (Column) -type Schema = '[Column \"id\" Int, Column \"name\" Text, Column \"score\" Double]+type Schema = '[ '(\"id\", Int), '(\"name\", Text), '(\"score\", Double)] main = do let query = TL.scanCsv \@Schema \"data.csv\" & TL.filter (TL.col \@\"score\" TL..>. TL.lit 0.5) & TL.select \@'[\"id\", \"name\"]- df <- TL.run query -- TypedDataFrame '[Column \"id\" Int, Column \"name\" Text]+ df <- TL.run query -- TypedDataFrame '[ '(\"id\", Int), '(\"name\", Text)] print df @ -}@@ -91,7 +91,7 @@ import DataFrame.Typed.Types -- | A lazy query with compile-time schema tracking.-newtype TypedLazyDataFrame (cols :: [Type]) = TLD {_unTLD :: LazyDataFrame}+newtype TypedLazyDataFrame (cols :: [(Symbol, Type)]) = TLD {_unTLD :: LazyDataFrame} instance Show (TypedLazyDataFrame cols) where show (TLD ldf) = "TypedLazyDataFrame { " ++ show ldf ++ " }"@@ -140,7 +140,7 @@ (KnownSymbol name, C.Columnable a, AssertAbsent name cols) => TExpr cols a -> TypedLazyDataFrame cols ->- TypedLazyDataFrame (Snoc cols (Column name a))+ TypedLazyDataFrame (Snoc cols '(name, a)) derive (TExpr expr) (TLD ldf) = TLD (L.derive (T.pack (symbolVal (Proxy @name))) expr ldf) @@ -153,7 +153,7 @@ select (TLD ldf) = TLD (L.select (DataFrame.Typed.Schema.symbolVals @names) ldf) -- | A typed lazy grouped query.-newtype TypedLazyGrouped (keys :: [Symbol]) (cols :: [Type]) = TLG+newtype TypedLazyGrouped (keys :: [Symbol]) (cols :: [(Symbol, Type)]) = TLG { _unTLG :: ([T.Text], LazyDataFrame) }