Releases: clojure-finance/datajure
Releases · clojure-finance/datajure
v2.0.5
Bug fixes:
- div0: fix crash on scalar denominator
- apply-group-agg/set: return empty dataset instead of nil on empty input
- melt: return empty dataset instead of nil when measure-cols is empty
- join :asof: :report option now works (was silently ignored)
- xbar-bucket/cut-bucket: replace fragile RoaringBitmap nil detection with idiomatic (nil? (nth rdr idx))
- by->group-fn: plain fn fallback key is now :fn-N instead of misleading :xbar-N; supports :datajure/col metadata for custom key names
v2.0.4
As-of join (:how :asof)
Inspired by q's aj. For each left row, finds the last right row where right-key <= left-key within an exact-match group. All left rows are always preserved.
;; Trade-quote matching
(join trades quotes :on [:sym :time] :how :asof)
;; Asymmetric key names
(join trades quotes :left-on [:sym :trade-time] :right-on [:sym :quote-time] :how :asof)
;; With cardinality validation
(join trades quotes :on [:sym :time] :how :asof :validate :m:1)Changes
- New
datajure.asofnamespace:asof-search,asof-indices,asof-match,build-result datajure.join::how :asofdispatch,:validatechecks right side only- 19 new tests (37 assertions), added to CI
- Fixes nil-at-midpoint bug in binary search
v2.0.3
v2.0.3
New
betweencolumn selector —(dt ds :select (core/between :month-01 :month-12))selects all columns positionally between two endpoints (inclusive, reversed endpoints normalised)betweenre-exported indatajure.concise
237 tests, 761 assertions.
v2.0.2
Fixes
- Add SCM
connectionanddeveloperConnectionfields to pom.xml for cljdoc compatibility - Add
^:no-doctodatajure.nreplto prevent cljdoc analysis failure (nrepl is an optional dev dependency)
No API changes — purely a publishing fix.
Installation
{:deps {com.github.clojure-finance/datajure {:mvn/version "2.0.2"}}}
Datajure v2.0.0
Ground-up rewrite. Not backwards-compatible with v1.
What's new
- Single opinionated syntax layer directly on tech.v3.dataset
dtquery function with six keywords::where,:set,:agg,:by,:within-order,:select,:order-by#dt/ereader tag — vectorized, nil-safe, pre-validated column expressions- Window functions (
win/*): rank, lag, cumsum, delta, ratio, mavg, ema, fills, scan, and more - Row-wise functions (
row/*): sum, mean, min, max, count-nil, any-nil? - Joins with cardinality validation and merge diagnostics
- Wide→long reshaping (
melt) - Unified file I/O dispatching on extension (CSV, TSV, Parquet, Arrow, Excel, Nippy)
- Data utilities: describe, clean-column-names, duplicate-rows, drop-constant-columns, coerce-columns
- Notebook integration: Clerk and Clay/Kindly viewers
- nREPL middleware for
*dt*auto-binding - 209 tests, 693 assertions
Prior work
v1 (multi-backend routing layer over tablecloth/clojask/geni) is preserved in the v1 branch. Credit to YANG Ming-Tian for the original v1 implementation.