| Copyright | Copyright (C) 2019 John MacFarlane |
|---|---|
| License | BSD3 |
| Maintainer | John MacFarlane <jgm@berkeley.edu> |
| Stability | alpha |
| Portability | portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Data.Ipynb
Description
Data structure and JSON serializers for ipynb (Jupyter notebook) format. Version 4 of the format is documented here: https://nbformat.readthedocs.io/en/latest/format_description.html.
The library supports both version 4 ('Notebook NbV4') and version 3
('Notebook NbV3') of nbformat. Note that this is a phantom type: the
NbV3 or NbV4 parameter only affects JSON serialization,
not the data structure itself. So code that manipulates
notebooks can be polymorphic, operating on `Notebook a`.
Synopsis
- data Notebook a = Notebook {
- notebookMetadata :: JSONMeta
- notebookFormat :: (Int, Int)
- notebookCells :: [Cell a]
- data NbV3
- data NbV4
- newtype JSONMeta = JSONMeta (Map Text Value)
- data Cell a = Cell {
- cellType :: CellType a
- cellId :: Maybe Text
- cellSource :: Source
- cellMetadata :: JSONMeta
- cellAttachments :: Maybe MimeAttachments
- newtype Source = Source {
- unSource :: [Text]
- data CellType a
- = Markdown
- | Heading {
- headingLevel :: Int
- | Raw
- | Code {
- codeExecutionCount :: Maybe Int
- codeOutputs :: [Output a]
- data Output a
- = Stream {
- streamName :: Text
- streamText :: Source
- | DisplayData { }
- | ExecuteResult {
- executeCount :: Int
- executeData :: MimeBundle
- executeMetadata :: JSONMeta
- | Err {
- errName :: Text
- errValue :: Text
- errTraceback :: [Text]
- = Stream {
- type MimeType = Text
- data MimeData
- = BinaryData ByteString
- | TextualData Text
- | JsonData Value
- newtype MimeBundle = MimeBundle {
- unMimeBundle :: Map MimeType MimeData
- newtype MimeAttachments = MimeAttachments (Map Text MimeBundle)
- breakLines :: Text -> [Text]
Documentation
A Jupyter notebook.
Constructors
| Notebook | |
Fields
| |
Instances
| FromJSON (Notebook NbV3) Source # | |||||
Defined in Data.Ipynb Methods parseJSON :: Value -> Parser (Notebook NbV3) parseJSONList :: Value -> Parser [Notebook NbV3] omittedField :: Maybe (Notebook NbV3) | |||||
| FromJSON (Notebook NbV4) Source # | |||||
Defined in Data.Ipynb Methods parseJSON :: Value -> Parser (Notebook NbV4) parseJSONList :: Value -> Parser [Notebook NbV4] omittedField :: Maybe (Notebook NbV4) | |||||
| ToJSON (Notebook NbV3) Source # | |||||
Defined in Data.Ipynb Methods toJSON :: Notebook NbV3 -> Value toEncoding :: Notebook NbV3 -> Encoding toJSONList :: [Notebook NbV3] -> Value toEncodingList :: [Notebook NbV3] -> Encoding | |||||
| ToJSON (Notebook NbV4) Source # | |||||
Defined in Data.Ipynb Methods toJSON :: Notebook NbV4 -> Value toEncoding :: Notebook NbV4 -> Encoding toJSONList :: [Notebook NbV4] -> Value toEncodingList :: [Notebook NbV4] -> Encoding | |||||
| Monoid (Notebook a) Source # | |||||
| Semigroup (Notebook a) Source # | |||||
| Generic (Notebook a) Source # | |||||
Defined in Data.Ipynb Associated Types
| |||||
| Show (Notebook a) Source # | |||||
| Eq (Notebook a) Source # | |||||
| type Rep (Notebook a) Source # | |||||
Defined in Data.Ipynb type Rep (Notebook a) = D1 ('MetaData "Notebook" "Data.Ipynb" "ipynb-0.2-FdjsnrVqnKOCedTA8rJIik" 'False) (C1 ('MetaCons "Notebook" 'PrefixI 'True) (S1 ('MetaSel ('Just "notebookMetadata") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 JSONMeta) :*: (S1 ('MetaSel ('Just "notebookFormat") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Int, Int)) :*: S1 ('MetaSel ('Just "notebookCells") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Cell a])))) | |||||
Indexes Notebook for serialization as nbformat version 3.
Instances
Indexes Notebook for serialization as nbformat version 4.
Instances
Constructors
| JSONMeta (Map Text Value) |
Instances
| FromJSON JSONMeta Source # | |||||
Defined in Data.Ipynb Methods parseJSON :: Value -> Parser JSONMeta parseJSONList :: Value -> Parser [JSONMeta] omittedField :: Maybe JSONMeta | |||||
| ToJSON JSONMeta Source # | |||||
Defined in Data.Ipynb Methods toEncoding :: JSONMeta -> Encoding toJSONList :: [JSONMeta] -> Value toEncodingList :: [JSONMeta] -> Encoding | |||||
| Monoid JSONMeta Source # | |||||
| Semigroup JSONMeta Source # | |||||
| Generic JSONMeta Source # | |||||
Defined in Data.Ipynb Associated Types
| |||||
| Show JSONMeta Source # | |||||
| Eq JSONMeta Source # | |||||
| Ord JSONMeta Source # | |||||
| type Rep JSONMeta Source # | |||||
Defined in Data.Ipynb type Rep JSONMeta = D1 ('MetaData "JSONMeta" "Data.Ipynb" "ipynb-0.2-FdjsnrVqnKOCedTA8rJIik" 'True) (C1 ('MetaCons "JSONMeta" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map Text Value)))) | |||||
A Jupyter notebook cell.
Constructors
| Cell | |
Fields
| |
Instances
| FromJSON (Cell NbV3) Source # | |||||
Defined in Data.Ipynb Methods parseJSON :: Value -> Parser (Cell NbV3) parseJSONList :: Value -> Parser [Cell NbV3] omittedField :: Maybe (Cell NbV3) | |||||
| FromJSON (Cell NbV4) Source # | |||||
Defined in Data.Ipynb Methods parseJSON :: Value -> Parser (Cell NbV4) parseJSONList :: Value -> Parser [Cell NbV4] omittedField :: Maybe (Cell NbV4) | |||||
| ToJSON (Cell NbV3) Source # | |||||
Defined in Data.Ipynb Methods toEncoding :: Cell NbV3 -> Encoding toJSONList :: [Cell NbV3] -> Value toEncodingList :: [Cell NbV3] -> Encoding | |||||
| ToJSON (Cell NbV4) Source # | |||||
Defined in Data.Ipynb Methods toEncoding :: Cell NbV4 -> Encoding toJSONList :: [Cell NbV4] -> Value toEncodingList :: [Cell NbV4] -> Encoding | |||||
| Generic (Cell a) Source # | |||||
Defined in Data.Ipynb Associated Types
| |||||
| Show (Cell a) Source # | |||||
| Eq (Cell a) Source # | |||||
| type Rep (Cell a) Source # | |||||
Defined in Data.Ipynb type Rep (Cell a) = D1 ('MetaData "Cell" "Data.Ipynb" "ipynb-0.2-FdjsnrVqnKOCedTA8rJIik" 'False) (C1 ('MetaCons "Cell" 'PrefixI 'True) ((S1 ('MetaSel ('Just "cellType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CellType a)) :*: S1 ('MetaSel ('Just "cellId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text))) :*: (S1 ('MetaSel ('Just "cellSource") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Source) :*: (S1 ('MetaSel ('Just "cellMetadata") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 JSONMeta) :*: S1 ('MetaSel ('Just "cellAttachments") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe MimeAttachments)))))) | |||||
A Source is a textual content which may be
represented in JSON either as a single string
or as a list of strings (which are concatenated).
Instances
| FromJSON Source Source # | |||||
Defined in Data.Ipynb Methods parseJSON :: Value -> Parser Source parseJSONList :: Value -> Parser [Source] omittedField :: Maybe Source | |||||
| ToJSON Source Source # | |||||
Defined in Data.Ipynb Methods toEncoding :: Source -> Encoding toJSONList :: [Source] -> Value toEncodingList :: [Source] -> Encoding | |||||
| Monoid Source Source # | |||||
| Semigroup Source Source # | |||||
| Generic Source Source # | |||||
Defined in Data.Ipynb Associated Types
| |||||
| Show Source Source # | |||||
| Eq Source Source # | |||||
| type Rep Source Source # | |||||
Defined in Data.Ipynb type Rep Source = D1 ('MetaData "Source" "Data.Ipynb" "ipynb-0.2-FdjsnrVqnKOCedTA8rJIik" 'True) (C1 ('MetaCons "Source" 'PrefixI 'True) (S1 ('MetaSel ('Just "unSource") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Text]))) | |||||
Information about the type of a notebook cell, plus
data specific to that type. note that Heading is
for v3 only; a Heading will be rendered as Markdown
in v4.
Constructors
| Markdown | |
| Heading | |
Fields
| |
| Raw | |
| Code | |
Fields
| |
Instances
| Generic (CellType a) Source # | |||||
Defined in Data.Ipynb Associated Types
| |||||
| Show (CellType a) Source # | |||||
| Eq (CellType a) Source # | |||||
| type Rep (CellType a) Source # | |||||
Defined in Data.Ipynb type Rep (CellType a) = D1 ('MetaData "CellType" "Data.Ipynb" "ipynb-0.2-FdjsnrVqnKOCedTA8rJIik" 'False) ((C1 ('MetaCons "Markdown" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Heading" 'PrefixI 'True) (S1 ('MetaSel ('Just "headingLevel") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))) :+: (C1 ('MetaCons "Raw" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Code" 'PrefixI 'True) (S1 ('MetaSel ('Just "codeExecutionCount") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Int)) :*: S1 ('MetaSel ('Just "codeOutputs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Output a])))) | |||||
Output from a Code cell.
Constructors
| Stream | |
Fields
| |
| DisplayData | |
Fields | |
| ExecuteResult | |
Fields
| |
| Err | |
Fields
| |
Instances
| FromJSON (Output NbV3) Source # | |||||
Defined in Data.Ipynb Methods parseJSON :: Value -> Parser (Output NbV3) parseJSONList :: Value -> Parser [Output NbV3] omittedField :: Maybe (Output NbV3) | |||||
| FromJSON (Output NbV4) Source # | |||||
Defined in Data.Ipynb Methods parseJSON :: Value -> Parser (Output NbV4) parseJSONList :: Value -> Parser [Output NbV4] omittedField :: Maybe (Output NbV4) | |||||
| ToJSON (Output NbV3) Source # | |||||
Defined in Data.Ipynb Methods toJSON :: Output NbV3 -> Value toEncoding :: Output NbV3 -> Encoding toJSONList :: [Output NbV3] -> Value toEncodingList :: [Output NbV3] -> Encoding | |||||
| ToJSON (Output NbV4) Source # | |||||
Defined in Data.Ipynb Methods toJSON :: Output NbV4 -> Value toEncoding :: Output NbV4 -> Encoding toJSONList :: [Output NbV4] -> Value toEncodingList :: [Output NbV4] -> Encoding | |||||
| Generic (Output a) Source # | |||||
Defined in Data.Ipynb Associated Types
| |||||
| Show (Output a) Source # | |||||
| Eq (Output a) Source # | |||||
| type Rep (Output a) Source # | |||||
Defined in Data.Ipynb type Rep (Output a) = D1 ('MetaData "Output" "Data.Ipynb" "ipynb-0.2-FdjsnrVqnKOCedTA8rJIik" 'False) ((C1 ('MetaCons "Stream" 'PrefixI 'True) (S1 ('MetaSel ('Just "streamName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "streamText") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Source)) :+: C1 ('MetaCons "DisplayData" 'PrefixI 'True) (S1 ('MetaSel ('Just "displayData") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 MimeBundle) :*: S1 ('MetaSel ('Just "displayMetadata") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 JSONMeta))) :+: (C1 ('MetaCons "ExecuteResult" 'PrefixI 'True) (S1 ('MetaSel ('Just "executeCount") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: (S1 ('MetaSel ('Just "executeData") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 MimeBundle) :*: S1 ('MetaSel ('Just "executeMetadata") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 JSONMeta))) :+: C1 ('MetaCons "Err" 'PrefixI 'True) (S1 ('MetaSel ('Just "errName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: (S1 ('MetaSel ('Just "errValue") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "errTraceback") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Text]))))) | |||||
Data in an execution result or display data cell.
Constructors
| BinaryData ByteString | |
| TextualData Text | |
| JsonData Value |
Instances
| ToJSON MimeData Source # | |||||
Defined in Data.Ipynb Methods toEncoding :: MimeData -> Encoding toJSONList :: [MimeData] -> Value toEncodingList :: [MimeData] -> Encoding | |||||
| Generic MimeData Source # | |||||
Defined in Data.Ipynb Associated Types
| |||||
| Show MimeData Source # | |||||
| Eq MimeData Source # | |||||
| Ord MimeData Source # | |||||
| type Rep MimeData Source # | |||||
Defined in Data.Ipynb type Rep MimeData = D1 ('MetaData "MimeData" "Data.Ipynb" "ipynb-0.2-FdjsnrVqnKOCedTA8rJIik" 'False) (C1 ('MetaCons "BinaryData" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString)) :+: (C1 ('MetaCons "TextualData" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)) :+: C1 ('MetaCons "JsonData" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Value)))) | |||||
newtype MimeBundle Source #
A MimeBundle wraps a map from mime types to mime data.
Constructors
| MimeBundle | |
Fields
| |
Instances
| FromJSON MimeBundle Source # | |||||
Defined in Data.Ipynb Methods parseJSON :: Value -> Parser MimeBundle parseJSONList :: Value -> Parser [MimeBundle] omittedField :: Maybe MimeBundle | |||||
| ToJSON MimeBundle Source # | |||||
Defined in Data.Ipynb Methods toJSON :: MimeBundle -> Value toEncoding :: MimeBundle -> Encoding toJSONList :: [MimeBundle] -> Value toEncodingList :: [MimeBundle] -> Encoding omitField :: MimeBundle -> Bool | |||||
| Monoid MimeBundle Source # | |||||
Defined in Data.Ipynb Methods mempty :: MimeBundle mappend :: MimeBundle -> MimeBundle -> MimeBundle mconcat :: [MimeBundle] -> MimeBundle | |||||
| Semigroup MimeBundle Source # | |||||
Defined in Data.Ipynb Methods (<>) :: MimeBundle -> MimeBundle -> MimeBundle sconcat :: NonEmpty MimeBundle -> MimeBundle stimes :: Integral b => b -> MimeBundle -> MimeBundle | |||||
| Generic MimeBundle Source # | |||||
Defined in Data.Ipynb Associated Types
| |||||
| Show MimeBundle Source # | |||||
Defined in Data.Ipynb Methods showsPrec :: Int -> MimeBundle -> ShowS show :: MimeBundle -> String showList :: [MimeBundle] -> ShowS | |||||
| Eq MimeBundle Source # | |||||
Defined in Data.Ipynb | |||||
| Ord MimeBundle Source # | |||||
Defined in Data.Ipynb Methods compare :: MimeBundle -> MimeBundle -> Ordering (<) :: MimeBundle -> MimeBundle -> Bool (<=) :: MimeBundle -> MimeBundle -> Bool (>) :: MimeBundle -> MimeBundle -> Bool (>=) :: MimeBundle -> MimeBundle -> Bool max :: MimeBundle -> MimeBundle -> MimeBundle min :: MimeBundle -> MimeBundle -> MimeBundle | |||||
| type Rep MimeBundle Source # | |||||
Defined in Data.Ipynb type Rep MimeBundle = D1 ('MetaData "MimeBundle" "Data.Ipynb" "ipynb-0.2-FdjsnrVqnKOCedTA8rJIik" 'True) (C1 ('MetaCons "MimeBundle" 'PrefixI 'True) (S1 ('MetaSel ('Just "unMimeBundle") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map MimeType MimeData)))) | |||||
newtype MimeAttachments Source #
Constructors
| MimeAttachments (Map Text MimeBundle) |
Instances
| FromJSON MimeAttachments Source # | |||||
Defined in Data.Ipynb Methods parseJSON :: Value -> Parser MimeAttachments parseJSONList :: Value -> Parser [MimeAttachments] omittedField :: Maybe MimeAttachments | |||||
| ToJSON MimeAttachments Source # | |||||
Defined in Data.Ipynb Methods toJSON :: MimeAttachments -> Value toEncoding :: MimeAttachments -> Encoding toJSONList :: [MimeAttachments] -> Value toEncodingList :: [MimeAttachments] -> Encoding omitField :: MimeAttachments -> Bool | |||||
| Monoid MimeAttachments Source # | |||||
Defined in Data.Ipynb Methods mappend :: MimeAttachments -> MimeAttachments -> MimeAttachments mconcat :: [MimeAttachments] -> MimeAttachments | |||||
| Semigroup MimeAttachments Source # | |||||
Defined in Data.Ipynb Methods (<>) :: MimeAttachments -> MimeAttachments -> MimeAttachments sconcat :: NonEmpty MimeAttachments -> MimeAttachments stimes :: Integral b => b -> MimeAttachments -> MimeAttachments | |||||
| Generic MimeAttachments Source # | |||||
Defined in Data.Ipynb Associated Types
Methods from :: MimeAttachments -> Rep MimeAttachments x to :: Rep MimeAttachments x -> MimeAttachments | |||||
| Show MimeAttachments Source # | |||||
Defined in Data.Ipynb Methods showsPrec :: Int -> MimeAttachments -> ShowS show :: MimeAttachments -> String showList :: [MimeAttachments] -> ShowS | |||||
| Eq MimeAttachments Source # | |||||
Defined in Data.Ipynb Methods (==) :: MimeAttachments -> MimeAttachments -> Bool (/=) :: MimeAttachments -> MimeAttachments -> Bool | |||||
| Ord MimeAttachments Source # | |||||
Defined in Data.Ipynb Methods compare :: MimeAttachments -> MimeAttachments -> Ordering (<) :: MimeAttachments -> MimeAttachments -> Bool (<=) :: MimeAttachments -> MimeAttachments -> Bool (>) :: MimeAttachments -> MimeAttachments -> Bool (>=) :: MimeAttachments -> MimeAttachments -> Bool max :: MimeAttachments -> MimeAttachments -> MimeAttachments min :: MimeAttachments -> MimeAttachments -> MimeAttachments | |||||
| type Rep MimeAttachments Source # | |||||
Defined in Data.Ipynb type Rep MimeAttachments = D1 ('MetaData "MimeAttachments" "Data.Ipynb" "ipynb-0.2-FdjsnrVqnKOCedTA8rJIik" 'True) (C1 ('MetaCons "MimeAttachments" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map Text MimeBundle)))) | |||||
breakLines :: Text -> [Text] Source #
Break up a string into a list of strings, each representing one line of the string (including trailing newline if any).