diff --git a/hledger-lib/Hledger/Data/Types.hs b/hledger-lib/Hledger/Data/Types.hs index 12b39a2c5..109c6af3c 100644 --- a/hledger-lib/Hledger/Data/Types.hs +++ b/hledger-lib/Hledger/Data/Types.hs @@ -332,6 +332,8 @@ data Reader = Reader { -- or error message. ,rParser :: Maybe FilePath -> Bool -> FilePath -> Text -> ExceptT String IO Journal + -- Experimental readers are never tried automatically. + ,rExperimental :: Bool } instance Show Reader where show r = rFormat r ++ " reader" diff --git a/hledger-lib/Hledger/Read.hs b/hledger-lib/Hledger/Read.hs index 60400d6bd..5a2588d5a 100644 --- a/hledger-lib/Hledger/Read.hs +++ b/hledger-lib/Hledger/Read.hs @@ -214,7 +214,8 @@ tests_readJournal' = [ readJournal :: Maybe StorageFormat -> Maybe FilePath -> Bool -> Maybe FilePath -> Text -> IO (Either String Journal) readJournal mformat mrulesfile assrt mfile txt = let - rs = maybe readers (:[]) $ findReader mformat mfile + stablereaders = filter (not.rExperimental) readers + rs = maybe stablereaders (:[]) $ findReader mformat mfile in tryReaders rs mrulesfile assrt mfile txt diff --git a/hledger-lib/Hledger/Read/CsvReader.hs b/hledger-lib/Hledger/Read/CsvReader.hs index 20e0e9abc..a774fe47e 100644 --- a/hledger-lib/Hledger/Read/CsvReader.hs +++ b/hledger-lib/Hledger/Read/CsvReader.hs @@ -68,6 +68,7 @@ reader = Reader {rFormat = "csv" ,rExtensions = ["csv"] ,rParser = parse + ,rExperimental = False } -- | Parse and post-process a "Journal" from CSV data, or give an error. diff --git a/hledger-lib/Hledger/Read/JournalReader.hs b/hledger-lib/Hledger/Read/JournalReader.hs index bb63f54eb..19755012e 100644 --- a/hledger-lib/Hledger/Read/JournalReader.hs +++ b/hledger-lib/Hledger/Read/JournalReader.hs @@ -110,6 +110,7 @@ reader = Reader {rFormat = "journal" ,rExtensions = ["journal", "j", "hledger", "ledger"] ,rParser = parse + ,rExperimental = False } -- | Parse and post-process a "Journal" from hledger's journal file diff --git a/hledger-lib/Hledger/Read/LedgerReader.hs b/hledger-lib/Hledger/Read/LedgerReader.hs index 9b3e502dc..c5498a598 100644 --- a/hledger-lib/Hledger/Read/LedgerReader.hs +++ b/hledger-lib/Hledger/Read/LedgerReader.hs @@ -46,6 +46,7 @@ reader = Reader {rFormat = "ledger" ,rExtensions = [] ,rParser = parse + ,rExperimental = True } -- | Generate an action that parses and post-processes a "Journal" from a diff --git a/hledger-lib/Hledger/Read/TimeclockReader.hs b/hledger-lib/Hledger/Read/TimeclockReader.hs index 33ac8fe5b..2854491f5 100644 --- a/hledger-lib/Hledger/Read/TimeclockReader.hs +++ b/hledger-lib/Hledger/Read/TimeclockReader.hs @@ -73,6 +73,7 @@ reader = Reader {rFormat = "timeclock" ,rExtensions = ["timeclock"] ,rParser = parse + ,rExperimental = False } -- | Parse and post-process a "Journal" from timeclock.el's timeclock diff --git a/hledger-lib/Hledger/Read/TimedotReader.hs b/hledger-lib/Hledger/Read/TimedotReader.hs index b23f4847f..6fcb0873f 100644 --- a/hledger-lib/Hledger/Read/TimedotReader.hs +++ b/hledger-lib/Hledger/Read/TimedotReader.hs @@ -58,6 +58,7 @@ reader = Reader {rFormat = "timedot" ,rExtensions = ["timedot"] ,rParser = parse + ,rExperimental = False } -- | Parse and post-process a "Journal" from the timedot format, or give an error.