Add ITransientSet and org.flatland/ordered-set
This commit is contained in:
parent
6d4737ce77
commit
59cd6a829a
6 changed files with 28 additions and 7 deletions
|
|
@ -10,6 +10,7 @@ A preview of the next release can be installed from
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
- Fix [#1688](https://github.com/babashka/babashka/issues/1688): use-fixtures should add metadata to `*ns*`
|
- Fix [#1688](https://github.com/babashka/babashka/issues/1688): use-fixtures should add metadata to `*ns*`
|
||||||
|
- Fix [#1692](https://github.com/babashka/babashka/issues/1692): Add support for ITransientSet and org.flatland/ordered-set
|
||||||
|
|
||||||
## 1.3.190 (2024-04-17)
|
## 1.3.190 (2024-04-17)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,14 @@
|
||||||
(ns babashka.impl.ordered
|
(ns babashka.impl.ordered
|
||||||
{:no-doc true}
|
{:no-doc true}
|
||||||
(:require [flatland.ordered.map :as omap]
|
(:require [flatland.ordered.map :as omap]
|
||||||
|
[flatland.ordered.set :as oset]
|
||||||
[sci.core :as sci]))
|
[sci.core :as sci]))
|
||||||
|
|
||||||
(def omap-ns (sci/create-ns 'flatland.ordered.map nil))
|
(def omap-ns (sci/create-ns 'flatland.ordered.map nil))
|
||||||
|
(def oset-ns (sci/create-ns 'flatland.ordered.set nil))
|
||||||
|
|
||||||
(def ordered-map-ns
|
(def ordered-ns
|
||||||
{'ordered-map (sci/copy-var omap/ordered-map omap-ns)})
|
{'ordered-map (sci/copy-var omap/ordered-map omap-ns)})
|
||||||
|
|
||||||
|
(def ordered-set-ns
|
||||||
|
{'ordered-set (sci/copy-var oset/ordered-set oset-ns)})
|
||||||
|
|
|
||||||
|
|
@ -600,6 +600,7 @@
|
||||||
clojure.lang.IRef
|
clojure.lang.IRef
|
||||||
clojure.lang.ISeq
|
clojure.lang.ISeq
|
||||||
clojure.lang.IPersistentVector
|
clojure.lang.IPersistentVector
|
||||||
|
clojure.lang.ITransientSet
|
||||||
clojure.lang.ITransientVector
|
clojure.lang.ITransientVector
|
||||||
clojure.lang.Iterate
|
clojure.lang.Iterate
|
||||||
clojure.lang.LispReader$Resolver
|
clojure.lang.LispReader$Resolver
|
||||||
|
|
|
||||||
|
|
@ -427,7 +427,8 @@ Use bb run --help to show this help output.
|
||||||
'clojure.data.xml.event @(resolve 'babashka.impl.xml/xml-event-namespace)
|
'clojure.data.xml.event @(resolve 'babashka.impl.xml/xml-event-namespace)
|
||||||
'clojure.data.xml.tree @(resolve 'babashka.impl.xml/xml-tree-namespace))
|
'clojure.data.xml.tree @(resolve 'babashka.impl.xml/xml-tree-namespace))
|
||||||
features/yaml? (assoc 'clj-yaml.core @(resolve 'babashka.impl.yaml/yaml-namespace)
|
features/yaml? (assoc 'clj-yaml.core @(resolve 'babashka.impl.yaml/yaml-namespace)
|
||||||
'flatland.ordered.map @(resolve 'babashka.impl.ordered/ordered-map-ns))
|
'flatland.ordered.map @(resolve 'babashka.impl.ordered/ordered-map-ns)
|
||||||
|
'flatland.ordered.set @(resolve 'babashka.impl.ordered/ordered-set-ns))
|
||||||
features/jdbc? (assoc 'next.jdbc @(resolve 'babashka.impl.jdbc/njdbc-namespace)
|
features/jdbc? (assoc 'next.jdbc @(resolve 'babashka.impl.jdbc/njdbc-namespace)
|
||||||
'next.jdbc.sql @(resolve 'babashka.impl.jdbc/next-sql-namespace)
|
'next.jdbc.sql @(resolve 'babashka.impl.jdbc/next-sql-namespace)
|
||||||
'next.jdbc.result-set @(resolve 'babashka.impl.jdbc/result-set-namespace))
|
'next.jdbc.result-set @(resolve 'babashka.impl.jdbc/result-set-namespace))
|
||||||
|
|
@ -487,7 +488,8 @@ Use bb run --help to show this help output.
|
||||||
|
|
||||||
(def edn-readers (cond-> {}
|
(def edn-readers (cond-> {}
|
||||||
features/yaml?
|
features/yaml?
|
||||||
(assoc 'ordered/map @(resolve 'flatland.ordered.map/ordered-map))
|
(assoc 'ordered/map @(resolve 'flatland.ordered.map/ordered-map)
|
||||||
|
'ordered/set @(resolve 'flatland.ordered.set/ordered-set))
|
||||||
features/xml?
|
features/xml?
|
||||||
(assoc 'xml/ns @(resolve 'clojure.data.xml.name/uri-symbol)
|
(assoc 'xml/ns @(resolve 'clojure.data.xml.name/uri-symbol)
|
||||||
'xml/element @(resolve 'clojure.data.xml.node/tagged-element))))
|
'xml/element @(resolve 'clojure.data.xml.node/tagged-element))))
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,8 @@
|
||||||
(do (write {"format" (if (= format :json)
|
(do (write {"format" (if (= format :json)
|
||||||
"json"
|
"json"
|
||||||
"edn")
|
"edn")
|
||||||
"readers" {"ordered/map" "flatland.ordered.map/ordered-map"}
|
"readers" {"ordered/map" "flatland.ordered.map/ordered-map"
|
||||||
|
"ordered/set" "flatland.ordered.set/ordered-set"}
|
||||||
"namespaces"
|
"namespaces"
|
||||||
[{"name" "pod.test-pod"
|
[{"name" "pod.test-pod"
|
||||||
"vars" [{"name" "add-sync"}
|
"vars" [{"name" "add-sync"}
|
||||||
|
|
@ -64,7 +65,8 @@
|
||||||
{"name" "error"}
|
{"name" "error"}
|
||||||
{"name" "print"}
|
{"name" "print"}
|
||||||
{"name" "print-err"}
|
{"name" "print-err"}
|
||||||
{"name" "ordered-map"}]}]
|
{"name" "ordered-map"}
|
||||||
|
{"name" "ordered-set"}]}]
|
||||||
"ops" {"shutdown" {}}})
|
"ops" {"shutdown" {}}})
|
||||||
(recur))
|
(recur))
|
||||||
:invoke (let [var (-> (get message "var")
|
:invoke (let [var (-> (get message "var")
|
||||||
|
|
@ -119,6 +121,11 @@
|
||||||
pod.test-pod/ordered-map
|
pod.test-pod/ordered-map
|
||||||
(write
|
(write
|
||||||
{"value" "#ordered/map([:a 1] [:b 2])"
|
{"value" "#ordered/map([:a 1] [:b 2])"
|
||||||
|
"status" ["done"]
|
||||||
|
"id" id})
|
||||||
|
pod.test-pod/ordered-set
|
||||||
|
(write
|
||||||
|
{"value" "#ordered/set([:a 1 :b 2])"
|
||||||
"status" ["done"]
|
"status" ["done"]
|
||||||
"id" id}))
|
"id" id}))
|
||||||
(recur))
|
(recur))
|
||||||
|
|
@ -159,4 +166,7 @@
|
||||||
(debug "Running reader test")
|
(debug "Running reader test")
|
||||||
(require '[flatland.ordered.map :refer [ordered-map]])
|
(require '[flatland.ordered.map :refer [ordered-map]])
|
||||||
(prn (= ((resolve 'flatland.ordered.map/ordered-map) :a 1 :b 2)
|
(prn (= ((resolve 'flatland.ordered.map/ordered-map) :a 1 :b 2)
|
||||||
((resolve 'pod.test-pod/ordered-map)))))))))
|
((resolve 'pod.test-pod/ordered-map))))
|
||||||
|
(require '[flatland.ordered.set :refer [ordered-set]])
|
||||||
|
(prn (= ((resolve 'flatland.ordered.set/ordered-set) :a 1 :b 2)
|
||||||
|
((resolve 'pod.test-pod/ordered-set)))))))))
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@
|
||||||
[clojure.string :as str]
|
[clojure.string :as str]
|
||||||
[clojure.test :as test :refer [deftest is testing]]
|
[clojure.test :as test :refer [deftest is testing]]
|
||||||
[flatland.ordered.map :refer [ordered-map]]
|
[flatland.ordered.map :refer [ordered-map]]
|
||||||
|
[flatland.ordered.set :refer [ordered-set]]
|
||||||
[sci.core :as sci]))
|
[sci.core :as sci]))
|
||||||
|
|
||||||
(defn bb [input & args]
|
(defn bb [input & args]
|
||||||
|
|
@ -632,7 +633,8 @@
|
||||||
(is (= 2 (bb nil "(set! *data-readers* {'t/tag inc}) #t/tag 1"))))
|
(is (= 2 (bb nil "(set! *data-readers* {'t/tag inc}) #t/tag 1"))))
|
||||||
|
|
||||||
(deftest ordered-test
|
(deftest ordered-test
|
||||||
(is (= (ordered-map :a 1 :b 2) (bb nil "(flatland.ordered.map/ordered-map :a 1 :b 2)"))))
|
(is (= (ordered-map :a 1 :b 2) (bb nil "(flatland.ordered.map/ordered-map :a 1 :b 2)")))
|
||||||
|
(is (= (ordered-set :a 1 :b 2) (bb nil "(flatland.ordered.map/ordered-set :a 1 :b 2)"))))
|
||||||
|
|
||||||
(deftest data-diff-test
|
(deftest data-diff-test
|
||||||
(is (= [[nil 1] [nil 2] [1 nil 2]] (bb nil "(require '[clojure.data :as d]) (d/diff [1 1 2] [1 2 2])"))))
|
(is (= [[nil 1] [nil 2] [1 nil 2]] (bb nil "(require '[clojure.data :as d]) (d/diff [1 1 2] [1 2 2])"))))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue