Skip to content

Commit 3dc2ab9

Browse files
Merge pull request RustPython#378 from veera83372/tuple-methods
Added __doc__ atrribute for tuple
2 parents 385fb03 + b85cf91 commit 3dc2ab9

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

tests/snippets/tuple.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,5 @@
1919

2020
b = (1,2,3)
2121
assert b.index(2) == 1
22+
23+
assert b.__doc__ == "tuple() -> empty tuple\ntuple(iterable) -> tuple initialized from iterable's items\n\nIf the argument is a tuple, the return value is the same object."

vm/src/obj/objtuple.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,10 @@ pub fn tuple_contains(vm: &mut VirtualMachine, args: PyFuncArgs) -> PyResult {
290290

291291
pub fn init(context: &PyContext) {
292292
let tuple_type = &context.tuple_type;
293+
let tuple_doc = "tuple() -> empty tuple
294+
tuple(iterable) -> tuple initialized from iterable's items
295+
296+
If the argument is a tuple, the return value is the same object.";
293297
context.set_attr(&tuple_type, "__add__", context.new_rustfunc(tuple_add));
294298
context.set_attr(&tuple_type, "__eq__", context.new_rustfunc(tuple_eq));
295299
context.set_attr(
@@ -313,5 +317,10 @@ pub fn init(context: &PyContext) {
313317
context.set_attr(&tuple_type, "__le__", context.new_rustfunc(tuple_le));
314318
context.set_attr(&tuple_type, "__gt__", context.new_rustfunc(tuple_gt));
315319
context.set_attr(&tuple_type, "__ge__", context.new_rustfunc(tuple_ge));
320+
context.set_attr(
321+
&tuple_type,
322+
"__doc__",
323+
context.new_str(tuple_doc.to_string()),
324+
);
316325
context.set_attr(&tuple_type, "index", context.new_rustfunc(tuple_index));
317326
}

0 commit comments

Comments
 (0)