Changelog for Frames-0.7.4
0.7.4
Replace the htoml
package used in a test with tomland
.
0.7.2
- Add
writeCSVopts
that accepts options to specify the CSV delimiter. - Add
inferencePrefix
that controls how many lines of the input file are used for column type inference (default is 1000). - Add
readTableDebug
that loads and parses a data frame asreadTable
, but additionally prints lines that failed to parse tostderr
.
0.7.1
-
Add
showFrame
,printFrame
,takeRows
, anddropRows
to theFrames.Exploration
module. These helpers for working withFrames
are re-exported from theFrames
module itself. Thanks to @chfin. -
GHC-9.0.1 support.
0.7.0
GHC-8.10 support in Vinyl requires a major version bump.
0.6.3
- Fix support for categorical column names that include spaces (@epn09)
0.6.0
Support external CSV tokenizers
Internal functionality is now defined more cleanly atop a stream of rows already broken into columns (rather than a stream of rows that we quietly break into columns ourself). This permits the use of external parsers such as provided by the new Frames-dsv package that supplies a CSV parser built atop hw-dsv
.
The built-in CSV parser remains for ease of installation.
0.5.1
GHC 8.6 compatibility
0.5.0
-
Renamed the
rgetf
andrputf
exported by theFrames
module torgetField
andrputField
. This avoids clashing with the same names exported byvinyl
and further advances the process of eliminating the oldFrames
Col
type in favor ofvinyl
'sElField
. -
Add a
ShowCSV
class rather than leaning on overburdenedShow
instances. -
Add support for categorical column types: values of these types are one of a small number of textual values. Because they can only take on a small number of different text values, we can compactly represent values of these types as standard Haskell sum types.
0.4.0
-
Added table joins in
Data.Vinyl.Joins
(Chris Hammill) -
Changed types of
mapMethod
andmapMethodV
These now rely on explicit TypeApplications
rather than Proxy
values.
0.3.0
- Pervasive use of
pipes
for CSV data loading
This provides better exception handling (file handles should be closed more reliably), and offers an interface point for customized handling of input texts. An example of this latter point is working with particular file encodings.
A breaking change is that operations that previously returned IO
values now return MonadSafe
constrained values.
- Adaptation of
Data.Vinyl.Curry.runcurry
to the FramesRecord
type This simply strips the column name information from a row before applying the function fromvinyl
.
0.2.1
-
Refactored to use the
CoRec
type provided byvinyl
>= 0.6.0 -
Fixed bug in typing mostly-numeric columns Such columns must be represented as
Text
. Previously, we strove a bit too hard to avoid falling back toText
resulting in dropping rows containing non-numeric values for columns we crammed into a numeric type. -
Minor optimization of CSV parsing In particular, dealing with RFC4180 style quoting
-
GHC-8.2.1 compatibility
0.1.10
- Added CSV output functions:
produceCSV
andwriteCSV
- Added an Eq instance for the
Frame
type
0.1.9
Fixed column type inference bug that led the inferencer to prefer Bool
too strongly.
This was fallout from typing columns whose values are all 0 or 1 as Bool
.
0.1.6
Re-export Frames.CSV.declareColumn
from Frames
. This makes it much
easier to manually define column types.
0.1.4
Use microlens
instead of lens-family-core
for demos.
0.1.3
GHC-8.0.1 compatibility
0.1.2.1
Improved documentation based on suggestions by Alexander Kjeldaas
0.1.2
Fixed bug in Monoid
instance of Frame
(@dalejordan)
0.1.1.0
Added frameConsA
, frameSnoc
, and RecordColumns
to help with
changing row types.
0.1.0.0
Initial version pushed to hackage.