From 9ec2eef57993226e206c15d00285aceacee7b197 Mon Sep 17 00:00:00 2001 From: Aviv Palivoda Date: Fri, 8 Feb 2019 18:33:04 +0200 Subject: [PATCH] Add set.{issubset,issuperset} --- tests/snippets/set.py | 8 ++++++++ vm/src/obj/objset.rs | 2 ++ 2 files changed, 10 insertions(+) diff --git a/tests/snippets/set.py b/tests/snippets/set.py index c078908f7..8b31c7c23 100644 --- a/tests/snippets/set.py +++ b/tests/snippets/set.py @@ -5,6 +5,10 @@ assert set([1,2,3]) >= set([1,2]) assert set([1,2]) >= set([1,2]) assert not set([1,3]) >= set([1,2]) +assert set([1,2,3]).issuperset(set([1,2])) +assert set([1,2]).issuperset(set([1,2])) +assert not set([1,3]).issuperset(set([1,2])) + assert set([1,2,3]) > set([1,2]) assert not set([1,2]) > set([1,2]) assert not set([1,3]) > set([1,2]) @@ -13,6 +17,10 @@ assert set([1,2]) <= set([1,2,3]) assert set([1,2]) <= set([1,2]) assert not set([1,3]) <= set([1,2]) +assert set([1,2]).issubset(set([1,2,3])) +assert set([1,2]).issubset(set([1,2])) +assert not set([1,3]).issubset(set([1,2])) + assert set([1,2]) < set([1,2,3]) assert not set([1,2]) < set([1,2]) assert not set([1,3]) < set([1,2]) diff --git a/vm/src/obj/objset.rs b/vm/src/obj/objset.rs index e2399776e..dfb46b4c2 100644 --- a/vm/src/obj/objset.rs +++ b/vm/src/obj/objset.rs @@ -215,6 +215,8 @@ pub fn init(context: &PyContext) { context.set_attr(&set_type, "__gt__", context.new_rustfunc(set_gt)); context.set_attr(&set_type, "__le__", context.new_rustfunc(set_le)); context.set_attr(&set_type, "__lt__", context.new_rustfunc(set_lt)); + context.set_attr(&set_type, "issubset", context.new_rustfunc(set_le)); + context.set_attr(&set_type, "issuperset", context.new_rustfunc(set_ge)); context.set_attr(&set_type, "__doc__", context.new_str(set_doc.to_string())); context.set_attr(&set_type, "add", context.new_rustfunc(set_add));