From 69e11c7978bbb90bd23e9f0a12cf8f8fe6715b33 Mon Sep 17 00:00:00 2001 From: Curtis Vogt Date: Wed, 28 Aug 2024 15:55:17 -0500 Subject: [PATCH] Compat fix for ConstructionBase 1.5.7 (#123) * Compat fix for ConstructionBase 1.5.7 * Set project version to 0.5.20 * Use Julia 1.6 Project.toml ordering * Require ConstructionBase 1.5.7 --- Project.toml | 16 ++++++++-------- ext/LegolasConstructionBaseExt.jl | 11 ++++------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/Project.toml b/Project.toml index aebd497..eda8736 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "Legolas" uuid = "741b9549-f6ed-4911-9fbf-4a1c0c97f0cd" authors = ["Beacon Biosignals, Inc."] -version = "0.5.19" +version = "0.5.20" [deps] Arrow = "69666777-d1a9-59fb-9406-91d4454c9d45" @@ -10,25 +10,22 @@ ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9" Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" UUIDs = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" -[weakdeps] -ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9" - -[extensions] -LegolasConstructionBaseExt = "ConstructionBase" - [compat] Accessors = "0.1" Aqua = "0.8" Arrow = "2.7" ArrowTypes = "2.3" Compat = "3.34, 4" -ConstructionBase = "1.5" +ConstructionBase = "1.5.7" DataFrames = "1" Tables = "1.4" Test = "1" UUIDs = "1" julia = "1.6" +[extensions] +LegolasConstructionBaseExt = "ConstructionBase" + [extras] Accessors = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" @@ -39,3 +36,6 @@ UUIDs = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" [targets] test = ["Accessors", "Aqua", "Compat", "DataFrames", "Test", "UUIDs"] + +[weakdeps] +ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9" diff --git a/ext/LegolasConstructionBaseExt.jl b/ext/LegolasConstructionBaseExt.jl index 4031d7d..687a2bc 100644 --- a/ext/LegolasConstructionBaseExt.jl +++ b/ext/LegolasConstructionBaseExt.jl @@ -12,14 +12,11 @@ using Legolas: AbstractRecord if VERSION < v"1.7" ConstructionBase.getproperties(r::AbstractRecord) = NamedTuple(r) - # This is largely copy-paste from `ConstructionBase.setproperties_object`: - # https://github.com/JuliaObjects/ConstructionBase.jl/blob/cd24e541fd90ab54d2ee12ddd6ccd229be9a5f1e/src/ConstructionBase.jl#L211-L218 + # This is largely copy-paste from `ConstructionBase.setproperties_object` (v1.5.7): + # https://github.com/JuliaObjects/ConstructionBase.jl/blob/71fb5a5198f41f3ef29a53c01940cf7cf6b233eb/src/ConstructionBase.jl#L205-L209 function ConstructionBase.setproperties(r::R, patch::NamedTuple) where {R<:AbstractRecord} - nt = getproperties(r) - nt_new = merge(nt, patch) - ConstructionBase.check_patch_properties_exist(nt_new, nt, r, patch) - args = Tuple(nt_new) # old Julia inference prefers if we wrap in `Tuple` - return constructorof(R)(args...) + ConstructionBase.check_patch_fields_exist(r, patch) + return ConstructionBase.setfields_object(r, patch) end end