Skip to content

Releases: clojure-finance/datajure

v2.0.5

15 Mar 06:22

Choose a tag to compare

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

15 Mar 05:46

Choose a tag to compare

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.asof namespace: asof-search, asof-indices, asof-match, build-result
  • datajure.join: :how :asof dispatch, :validate checks right side only
  • 19 new tests (37 assertions), added to CI
  • Fixes nil-at-midpoint bug in binary search

v2.0.3

15 Mar 05:03

Choose a tag to compare

v2.0.3

New

  • between column selector — (dt ds :select (core/between :month-01 :month-12)) selects all columns positionally between two endpoints (inclusive, reversed endpoints normalised)
  • between re-exported in datajure.concise

237 tests, 761 assertions.

v2.0.2

07 Mar 09:43

Choose a tag to compare

Fixes

  • Add SCM connection and developerConnection fields to pom.xml for cljdoc compatibility
  • Add ^:no-doc to datajure.nrepl to 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

04 Mar 00:23

Choose a tag to compare

Ground-up rewrite. Not backwards-compatible with v1.

What's new

  • Single opinionated syntax layer directly on tech.v3.dataset
  • dt query function with six keywords: :where, :set, :agg, :by, :within-order, :select, :order-by
  • #dt/e reader 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.

v1.1.0

14 Jan 12:44
74da812

Choose a tag to compare

  • Add Datajure REPL

v1.0.1

04 Nov 07:06
b3cb0b8

Choose a tag to compare

  • No substantial updates
  • In order to modify the repo address on Clojars, a new version number is required

v1.0.0

30 Oct 10:18
0c6e9c2

Choose a tag to compare

Merge pull request #29 from skylee03/main

Include group name in `project.clj`