PyBytes = distinct string
func `$`(self: PyBytes): string {.borrow, ...raises: [], tags: [], forbids: [].}
func `+`(o: char; self: PyBytes): PyBytes {....raises: [], tags: [], forbids: [].}
func `+`(o: string; self: PyBytes): PyBytes {....raises: [], tags: [], forbids: [].}
func `+`(self: PyBytes; o: char): PyBytes {....raises: [], tags: [], forbids: [].}
func `+`(self: PyBytes; o: PyBytes): PyBytes {....raises: [], tags: [], forbids: [].}
func `+`(self: PyBytes; o: string): PyBytes {....raises: [], tags: [], forbids: [].}
func `+=`(mself; s: char) {....raises: [], tags: [], forbids: [].}
func `+=`(mself; s: PyBytes) {....raises: [], tags: [], forbids: [].}
func `+=`(mself; s: string) {....raises: [], tags: [], forbids: [].}
func `==`(self: PyBytes; o: PyBytes): bool {.borrow, ...raises: [], tags: [], forbids: [].}
func `@`(self: PyBytes): seq[char] {....raises: [], tags: [], forbids: [].}
EXT.
Python has no concept of seq (though has list)
func `[]`(self: PyBytes; i: HSlice[int, BackwardsIndex]): PyBytes {....raises: [], tags: [], forbids: [].}
func `[]`(self: PyBytes; i: int): int {....raises: [], tags: [], forbids: [].}
func `[]`(self: PyBytes; i: Slice[int]): PyBytes {....raises: [], tags: [], forbids: [].}
func byteLen(self: PyBytes): int {....raises: [], tags: [], forbids: [].}
func bytes(): PyBytes {....raises: [], tags: [], forbids: [].}
func bytes(c: char): PyBytes {....raises: [], tags: [], forbids: [].}
func bytes(nLen: int): PyBytes {....raises: [], tags: [], forbids: [].}
func bytes(s: openArray[char | uint8]): PyBytes
Python has no concept of openArray
func bytes(s: sink string): PyBytes {.inline, ...raises: [], tags: [], forbids: [].}
func bytes(self: PyBytes): PyBytes {....raises: [], tags: [], forbids: [].}
func bytes(x: Iterable[char]): PyBytes
func bytes(x: Iterable[SomeInteger]): PyBytes
func fspath(self: PyBytes): PyBytes {....raises: [], tags: [], forbids: [].}
func getChar(self: PyBytes; i: Natural): char {....raises: [], tags: [], forbids: [].}
func getCharPtr(self: PyBytes; i: Natural | BackwardsIndex): ptr char
func hasChar(a: PyBytes; o: char): bool {....raises: [], tags: [], forbids: [].}
func len(self: PyBytes): int {.borrow, ...raises: [], tags: [], forbids: [].}
proc substr(self: PyBytes; start, last: int): PyBytes {.borrow, ...raises: [], tags: [], forbids: [].}
proc substr(self: PyBytes; start: int): PyBytes {.borrow, ...raises: [], tags: [], forbids: [].}
iterator chars(self: PyBytes): char {....raises: [], tags: [], forbids: [].}
iterator items(self: PyBytes): int {....raises: [], tags: [], forbids: [].}
converter toNimString(self: PyBytes): string {....raises: [], tags: [], forbids: [].}
template `not`(s: PyBytes): bool
"not" for strings, return true if the string is not nil or empty.
template `or`(a, b: PyBytes): PyBytes
template pybytes[T](x: T): PyBytes