src/pylib/builtins/set

Search:
Group by:
Source   Edit  

set and its methods.

set type

set[T] is still for system.set[T], with its restriction of only allowing small ordinal as elements. PySet[T] is used to minic Python's.

Literal

Something like {1,2} shall be rewritten as pyset([1,2]), please note either pyset((1,2)) or pyset({1,2}) doesn't mean the same.

Types

SomeSet[H] = SomePySet[H] or HashSet[H] or OrderedSet[H] or set[H]
Source   Edit  

Procs

proc `&=`[H; S: SomeSet[H]](self: var SomePySet[H]; s: S)
Source   Edit  
proc `-`[H](self, o: PySet[H]): PySet[H]
Source   Edit  
proc `-`[H](self: PyFrozenSet[H]; o: SomePySet[H]): PyFrozenSet[H]
Source   Edit  
proc `-`[H](self: PySet[H]; o: PyFrozenSet[H]): PyFrozenSet[H]
Source   Edit  
proc `-=`[H; S: SomeSet[H]](self: var SomePySet[H]; s: S)
Source   Edit  
proc `<`[H](s: set[H]; self: SomePySet[H]): bool {.error: "When used, Nim compiler(at least 2.0.0-2.1.2) will complain:\n\'Error: unhandled exception: ccgexprs.nim(1994, 9) `setType.kind == tySet`\', \nConsider using `pyset` instead of set literal.".}
Source   Edit  
proc `<`[H](self: SomePySet[H]; s: set[H]): bool {.error: "When used, Nim compiler(at least 2.0.0-2.1.2) will complain:\n\'Error: unhandled exception: ccgexprs.nim(1994, 9) `setType.kind == tySet`\', \nConsider using `pyset` instead of set literal.".}
Source   Edit  
proc `<=`[H](s: set[H]; self: SomePySet[H]): bool {.error: "When used, Nim compiler(at least 2.0.0-2.1.2) will complain:\n\'Error: unhandled exception: ccgexprs.nim(1994, 9) `setType.kind == tySet`\', \nConsider using `pyset` instead of set literal.".}
Source   Edit  
proc `<=`[H](self: SomePySet[H]; s: set[H]): bool {.error: "When used, Nim compiler(at least 2.0.0-2.1.2) will complain:\n\'Error: unhandled exception: ccgexprs.nim(1994, 9) `setType.kind == tySet`\', \nConsider using `pyset` instead of set literal.".}
Source   Edit  
proc `==`[H](s: set[H]; self: SomePySet[H]): bool {.error: "When used, Nim compiler(at least 2.0.0-2.1.2) will complain:\n\'Error: unhandled exception: ccgexprs.nim(1994, 9) `setType.kind == tySet`\', \nConsider using `pyset` instead of set literal.".}
Source   Edit  
proc `==`[H](self: SomePySet[H]; s: set[H]): bool {.error: "When used, Nim compiler(at least 2.0.0-2.1.2) will complain:\n\'Error: unhandled exception: ccgexprs.nim(1994, 9) `setType.kind == tySet`\', \nConsider using `pyset` instead of set literal.".}
Source   Edit  
proc add[H](self: var PySet[H]; x: H)
Source   Edit  
proc difference[H; Self: SomePySet[H]; S: not PySet[H]](self: Self; s: S): Self
Source   Edit  
proc difference[H; Self: SomePySet[H]; S](self: Self; s1: auto; s2: auto;
    x: varargs[S]): Self
Source   Edit  
proc difference[H](self, o: PySet[H]): PySet[H]
Source   Edit  
proc difference[H](self: PyFrozenSet[H]; o: SomePySet[H]): PyFrozenSet[H]
Source   Edit  
proc difference[H](self: PySet[H]; o: PyFrozenSet[H]): PyFrozenSet[H]
Source   Edit  
proc difference_update[H; I: Iterable[H]](self: var SomePySet[H]; i: I)
Source   Edit  
proc `discard`[H](self: var PySet[H]; ele: H)
discard is keyword of Nim, consider use `discard` or pydiscard Source   Edit  
proc frozenset[H](): PyFrozenSet[H]
Source   Edit  
proc frozenset[H](arr: openArray[H]): PyFrozenSet[H]
Source   Edit  
proc frozenset[H](it: Iterable[H]): PyFrozenSet[H]
Source   Edit  
proc frozenset[H](s: HashSet[H]): PyFrozenSet[H]
Source   Edit  
proc frozenset[H](s: SomePySet[H]): PyFrozenSet[H]
Source   Edit  
proc intersection[H; Self: SomePySet[H]; S: not PySet[H]](self: Self; s: S): Self
Source   Edit  
proc intersection[H; Self: SomePySet[H]; S](self: Self; s1: auto; s2: auto;
    x: varargs[S]): Self
Source   Edit  
proc intersection[H](self, o: PySet[H]): PySet[H]
Source   Edit  
proc intersection[H](self: PyFrozenSet[H]; o: SomePySet[H]): PyFrozenSet[H]
Source   Edit  
proc intersection[H](self: PySet[H]; o: PyFrozenSet[H]): PyFrozenSet[H]
Source   Edit  
proc intersection_update[H; I: Iterable[H]](self: var SomePySet[H]; i: I)
Source   Edit  
func isdisjoint[H, S](self: SomePySet[H]; s: S): bool
Source   Edit  
proc issubset[H, S](self, o: SomePySet[H]; s: S): bool
Source   Edit  
proc issuperset[H, S](self, o: SomePySet[H]; s: S): bool
Source   Edit  
proc pydiscard[H](self: var PySet[H]; ele: H)
set.discard(ele) Source   Edit  
proc pyset[H](): PySet[H]
Source   Edit  
proc pyset[H](arr: openArray[H]): PySet[H]
Source   Edit  
proc pyset[H](iterable: Iterable[H]): PySet[H]
Source   Edit  
proc pyset[H](s: HashSet[H]): PySet[H]
Source   Edit  
proc pyset[H](s: SomePySet[H]): PySet[H]
Source   Edit  
proc remove[H](self: var PySet[H]; ele: H)
Source   Edit  
proc set[H](): PySet[H]
Source   Edit  
proc set[H](arr: openArray[H]): PySet[H]
Source   Edit  
proc set[H](iterable: Iterable[H]): PySet[H]
Source   Edit  
proc set[H](s: HashSet[H]): PySet[H]
Source   Edit  
proc set[H](s: SomePySet[H]): PySet[H]
Source   Edit  
proc symmetric_difference[H; Self: SomePySet[H]; S: not PySet[H]](self: Self;
    s: S): Self
Source   Edit  
proc symmetric_difference[H; Self: SomePySet[H]; S](self: Self; s1: auto;
    s2: auto; x: varargs[S]): Self
Source   Edit  
proc symmetric_difference[H](self, o: PySet[H]): PySet[H]
Source   Edit  
proc symmetric_difference[H](self: PyFrozenSet[H]; o: SomePySet[H]): PyFrozenSet[
    H]
Source   Edit  
proc symmetric_difference[H](self: PySet[H]; o: PyFrozenSet[H]): PyFrozenSet[H]
Source   Edit  
proc union[H; Self: SomePySet[H]; S: not PySet[H]](self: Self; s: S): Self
Source   Edit  
proc union[H; Self: SomePySet[H]; S](self: Self; s1: auto; s2: auto;
                                     x: varargs[S]): Self
Source   Edit  
proc union[H](self, o: PySet[H]): PySet[H]
Source   Edit  
proc union[H](self: PyFrozenSet[H]; o: SomePySet[H]): PyFrozenSet[H]
Source   Edit  
proc union[H](self: PySet[H]; o: PyFrozenSet[H]): PyFrozenSet[H]
Source   Edit  
proc update[H; I: Iterable[H]](self: var SomePySet[H]; i: I)
Source   Edit  
proc `|=`[H; S: SomeSet[H]](self: var SomePySet[H]; s: S)
Source   Edit  

Macros

macro pysetLit(lit): PySet
To solve: pyset({1,2,3}) is invalid Source   Edit  

Templates

template `&`[H; M: SomePySet[H]; S: SomePySet[H]](self: M; s: S): M | S
Source   Edit  
template `^`[H; M: SomePySet[H]; S: SomePySet[H]](self: M; s: S): M | S
Source   Edit  
template copy[H; S: SomePySet[H]](self): S
Source   Edit  
template `|`[H; M: SomePySet[H]; S: SomePySet[H]](self: M; s: S): M | S
Source   Edit