import tiktoken,json,platform,hashlib
from pathlib import Path
texts=['Le chat dort.','Le chat dort dans le jardin.','Électricité, mémoire et souveraineté.','electricity, memory and sovereignty.','AB-7429-XQ','Bonjour !','Bonjour!']
rows=[]
for name in ['cl100k_base','o200k_base']:
 enc=tiktoken.get_encoding(name)
 for s in texts:
  ids=enc.encode(s);assert enc.decode(ids)==s
  rows.append({'encoding':name,'text':s,'characters_python':len(s),'utf8_bytes':len(s.encode()),'tokens':len(ids),'ids':ids,'pieces_bytes_hex':[enc.decode_single_token_bytes(i).hex() for i in ids],'pieces_display':[enc.decode_single_token_bytes(i).decode('utf-8',errors='replace') for i in ids]})
out={'package':'tiktoken','version':tiktoken.__version__,'python':platform.python_version(),'executed_date':'2026-10-19','scope':'Texte brut, aucun appel modèle, aucun message de conversation ajouté','rows':rows}
Path(__file__).with_name('tokenisation-results.json').write_text(json.dumps(out,ensure_ascii=False,indent=2))
print(json.dumps(out,ensure_ascii=False))
