# SPDX-License-Identifier: MIT
# Independently authored Python 3.9 str.encode / bytes observations.
text = 'café λ 🌍\0'
payload = text.encode()
print(payload, len(text), len(payload), isinstance(payload, bytes), payload == text)
print(text.encode('utf-8') == payload)
print(text.encode(encoding='UTF - 8', errors='strict') == payload)
print(text.encode('cp65001') == payload, text.encode('utf8_ucs2') == payload)
print(''.encode(), 'ASCII'.encode(), '\x7f\x80\u07ff\u0800\ud7ff\ue000\uffff\U00010000\U0010ffff'.encode())

def encode(value):
    return value.encode()

def make(value):
    def encoded():
        return value.encode()
    return encoded

snapshot = encode(text)
text += '!'
print(snapshot == payload, encode(text).endswith(b'!'))
print(make('λ')())
words = ['one', 'two', 'three']
print(' / '.join(words).encode())
print(payload[5:7], list('λ'.encode()), sum('λ'.encode()))

calls = 0
def next_text():
    global calls
    calls += 1
    return 'λ'

print(next_text().encode(), calls)
