Skip to content

Commit

Permalink
Dropped support for marshal serialization
Browse files Browse the repository at this point in the history
  • Loading branch information
ankane committed Oct 22, 2024
1 parent c3e1db1 commit ea86eff
Show file tree
Hide file tree
Showing 3 changed files with 1 addition and 99 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
## 0.5.0 (unreleased)

- Dropped support for marshal serialization
- Dropped support for Ruby < 3.1 and Rails < 7

## 0.4.2 (2024-06-24)
Expand Down
55 changes: 0 additions & 55 deletions lib/disco/recommender.rb
Original file line number Diff line number Diff line change
Expand Up @@ -431,61 +431,6 @@ def to_dataset(dataset)
end
end

def marshal_dump
warn "[disco] Marshal serialization is deprecated - use JSON instead"

obj = {
implicit: @implicit,
user_map: @user_map,
item_map: @item_map,
rated: @rated,
global_mean: @global_mean,
user_factors: @user_factors,
item_factors: @item_factors,
factors: @factors,
epochs: @epochs,
verbose: @verbose
}

unless @implicit
obj[:min_rating] = @min_rating
obj[:max_rating] = @max_rating
end

if @top_items
obj[:item_count] = @item_count
obj[:item_sum] = @item_sum
end

obj
end

def marshal_load(obj)
warn "[disco] Marshal serialization is deprecated - use JSON instead"

@implicit = obj[:implicit]
@user_map = obj[:user_map]
@item_map = obj[:item_map]
@rated = obj[:rated]
@global_mean = obj[:global_mean]
@user_factors = obj[:user_factors]
@item_factors = obj[:item_factors]
@factors = obj[:factors]
@epochs = obj[:epochs]
@verbose = obj[:verbose]

unless @implicit
@min_rating = obj[:min_rating]
@max_rating = obj[:max_rating]
end

@top_items = obj.key?(:item_count)
if @top_items
@item_count = obj[:item_count]
@item_sum = obj[:item_sum]
end
end

def json_load(obj)
require "base64"

Expand Down
44 changes: 0 additions & 44 deletions test/recommender_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,6 @@ def test_explicit
recommender = Disco::Recommender.new(factors: 20)
recommender.fit(data)

path = "#{Dir.mktmpdir}/recommender.bin"

assert_deprecated do
dump = Marshal.dump(recommender)
File.binwrite(path, dump)
end

assert_deprecated do
dump = File.binread(path)
recommender = Marshal.load(dump)
end

dump = recommender.to_json
recommender = Disco::Recommender.load_json(dump)

Expand Down Expand Up @@ -53,18 +41,6 @@ def test_implicit
recommender = Disco::Recommender.new(factors: 20)
recommender.fit(data)

path = "#{Dir.mktmpdir}/recommender.bin"

assert_deprecated do
dump = Marshal.dump(recommender)
File.binwrite(path, dump)
end

assert_deprecated do
dump = File.binread(path)
recommender = Marshal.load(dump)
end

dump = recommender.to_json
recommender = Disco::Recommender.load_json(dump)

Expand Down Expand Up @@ -137,12 +113,6 @@ def test_top_items_explicit
top_items = recommender.top_items
assert_equal top_items, recommender.user_recs("unknown")

assert_deprecated do
recommender = Marshal.load(Marshal.dump(recommender))
end
assert_equal top_items, recommender.top_items
assert_equal top_items, recommender.user_recs("unknown")

recommender = Disco::Recommender.load_json(recommender.to_json)
assert_equal top_items, recommender.top_items
assert_equal top_items, recommender.user_recs("unknown")
Expand All @@ -156,12 +126,6 @@ def test_top_items_implicit
top_items = recommender.top_items
assert_equal top_items, recommender.user_recs("unknown")

assert_deprecated do
recommender = Marshal.load(Marshal.dump(recommender))
end
assert_equal top_items, recommender.top_items
assert_equal top_items, recommender.user_recs("unknown")

recommender = Disco::Recommender.load_json(recommender.to_json)
assert_equal top_items, recommender.top_items
assert_equal top_items, recommender.user_recs("unknown")
Expand Down Expand Up @@ -432,12 +396,4 @@ def test_daru
# original data frame not modified
assert_equal ["user_id", "item_id", "rating"], data.vectors.to_a
end

private

def assert_deprecated
assert_output nil, /is deprecated/ do
yield
end
end
end

0 comments on commit ea86eff

Please sign in to comment.