hledger/hledger-lib
Simon Michael b1f3880c3d lib: drop the file format auto-detection feature
For a long time hledger has auto-detected the file format when it's
not known, eg when reading from a file with unusual extension (like
.dat or .txt), or from standard input (-f-), or when using the include
directive (which currently ignores file extensions).

Auto-detecting has been done by trying all readers until one succeeds.
This could guess wrong in some cases, but it was so rare that it has
been working fine.

Recently, more conveniences have been added to timedot format,
increasing its overlap with journal format, which makes this kind of
auto-detection unreliable.

Auto-detection and auto-detection failures are (probably) still pretty
rare in practice. But when it does happen it's confusing, giving
misleading errors or false successes (eg printing timedot entries
instead of a journal error).

For predictability and to minimise confusion, hledger no longer tries
to guess; when there's no file extension or reader prefix, it assumes
journal format. To specify one of the other formats, you must use a
standard file extension (.timeclock, .timedot, .csv, .ssv, .tsv), or a
reader prefix (-f csv:foo.txt, -f timedot:-).

For now, the include directive still tries to autodetect
(journal/timeclock/timedot), and this can't be overridden; it will be
fixed later.

Experimental; testing and feedback welcome.
2020-03-01 14:06:29 -08:00
..
Hledger lib: drop the file format auto-detection feature 2020-03-01 14:06:29 -08:00
other/ledger-parse lib: restrict imports, avoiding GHCI clashes 2016-11-20 10:27:16 -08:00
test ;test: consistent singular naming for test suites and files 2019-11-29 06:35:29 -08:00
Text cli:Fixed NoLine column rendering after previous commit 2020-02-29 12:56:35 -08:00
.ghci tools: .ghci for each package, sets shorter prompt 2016-04-15 16:06:45 -07:00
.version ;bump to dev version; bump man page dates 2020-01-05 09:04:50 -08:00
CHANGES.md ;doc: changelogs: update from 1.16.2, cleanups 2020-01-14 11:19:05 -08:00
defs.m4 ;doc: regen all manuals, bumping month 2020-02-08 11:20:25 -08:00
hledger_csv.5 ;doc: regen help/manuals 2020-02-22 11:40:41 -08:00
hledger_csv.info ;doc: regen help/manuals 2020-02-22 11:40:41 -08:00
hledger_csv.m4.md ;csv: cleanups, drop match operator for now 2020-02-26 11:52:47 -08:00
hledger_csv.txt ;doc: regen all manuals, bumping month 2020-02-08 11:20:25 -08:00
hledger_journal.5 ;doc: regen help/manuals 2020-02-22 11:40:41 -08:00
hledger_journal.info ;doc: regen help/manuals 2020-02-22 11:40:41 -08:00
hledger_journal.m4.md ;doc:journal: edits (#1187) 2020-02-11 10:38:08 -08:00
hledger_journal.txt ;doc: regen help/manuals 2020-02-22 11:40:41 -08:00
hledger_timeclock.5 ;doc: regen all manuals, bumping month 2020-02-08 11:20:25 -08:00
hledger_timeclock.info ;doc: regen manuals 2020-01-25 17:10:34 -08:00
hledger_timeclock.m4.md ;doc: drop redundant version message from web manuals 2020-01-25 19:33:12 -08:00
hledger_timeclock.txt ;doc: regen all manuals, bumping month 2020-02-08 11:20:25 -08:00
hledger_timedot.5 ;doc: regen help/manuals 2020-02-22 11:40:41 -08:00
hledger_timedot.info ;doc: regen help/manuals 2020-02-22 11:40:41 -08:00
hledger_timedot.m4.md timedot: allow a note after the date, use as transaction descriptions 2020-03-01 14:06:29 -08:00
hledger_timedot.txt ;doc: regen all manuals, bumping month 2020-02-08 11:20:25 -08:00
hledger-lib.cabal ;allow base 4.14/GHC 8.10 2020-01-26 08:12:25 -08:00
Hledger.hs rename easytests_* to tests_* 2018-09-06 13:13:26 -07:00
LICENSE split off hledger-lib package, containing core types & utils 2010-03-22 01:44:59 +00:00
package.yaml ;allow base 4.14/GHC 8.10 2020-01-26 08:12:25 -08:00
README doc: ensure all five main packages have a README 2016-04-12 11:13:01 -07:00
Setup.hs Revert "remove Setup.hs files again, fixing a yesod devel warning" 2014-05-24 13:39:09 -07:00

A reusable library containing hledger's core functionality.
This is used by most hledger* packages for common data parsing,
command line option handling, reporting etc.