Install this version:
emerge -a =dev-python/tiktoken-0.14.0
If this version is masked, you can unmask it using the autounmask tool or standard emerge options:
autounmask =dev-python/tiktoken-0.14.0
Or alternatively:
emerge --autounmask-write -a =dev-python/tiktoken-0.14.0
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
# No PYPI_VERIFY_REPO: upstream publishes the sdist without a PEP 740
# attestation, so /integrity/.../provenance is a hard 404 and the fetch fails.
# python3_10/python3_11 are _PYTHON_HISTORICAL_IMPLS in this tree
# (_PYTHON_ALL_IMPLS is 3.12..3.15), and pyo3 0.28 supports CPython up to
# 3.14 -- hence 12..14.
PYTHON_COMPAT=( python3_{12..14} )
CRATES="
aho-corasick@1.1.5
bit-set@0.8.0
bit-vec@0.8.0
bstr@1.13.1
fancy-regex@0.17.0
heck@0.5.0
libc@0.2.189
memchr@2.8.3
once_cell@1.21.4
portable-atomic@1.15.0
proc-macro2@1.0.107
pyo3-build-config@0.28.3
pyo3-ffi@0.28.3
pyo3-macros-backend@0.28.3
pyo3-macros@0.28.3
pyo3@0.28.3
quote@1.0.47
regex-automata@0.4.18
regex-syntax@0.8.11
regex@1.13.1
rustc-hash@2.1.3
serde_core@1.0.229
serde_derive@1.0.229
syn@2.0.119
syn@3.0.3
target-lexicon@0.13.5
unicode-ident@1.0.24
"
# Upstream ships no Cargo.lock (it is gitignored), so the list above comes from
# `cargo generate-lockfile` on the sdist's own Cargo.toml, fed to pycargoebuild.
# Regenerate it on every bump: 0.13.0 moved pyo3 0.26 -> 0.28 and fancy-regex
# 0.13 -> 0.17, which alone rewrote 9 entries.
# Highest MSRV among the crates is pyo3's 1.83, but tiktoken itself is
# edition = "2024", which needs >=1.85.
RUST_MIN_VER="1.85.0"
# The pypi eclass derives SRC_URI from ${PN}/${PV}; cargo.eclass only *computes*
# CARGO_CRATE_URIS, so the crate tarballs have to be appended explicitly.
inherit cargo distutils-r1 pypi
DESCRIPTION="Fast BPE tokeniser for use with OpenAI's models"
HOMEPAGE="
https://github.com/openai/tiktoken/
https://pypi.org/project/tiktoken/
"
SRC_URI+="
${CARGO_CRATE_URIS}
"
LICENSE="MIT"
# Dependent crate licenses
LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0"
SLOT="0"
KEYWORDS="~amd64 ~arm64"
# The "blobfile" extra (blobfile>=3) is deliberately not exposed as a USE flag:
# dev-python/blobfile exists in neither ::gentoo nor ::bentoo. It only enables
# reading BPE files from cloud object storage (az://, gs://, s3://); local and
# https:// loading works without it.
RDEPEND="
dev-python/regex[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
"
BDEPEND="
>=dev-python/setuptools-rust-1.5.2[${PYTHON_USEDEP}]
"
QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/tiktoken/_tiktoken.*\\.so"
# Every meaningful test calls tiktoken.get_encoding(), which downloads the BPE
# rank files from openaipublic.blob.core.windows.net at run time. There is no
# offline fixture to point at, so the suite cannot run under the network
# sandbox at all.
PROPERTIES="test_network"
RESTRICT="test"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
# NOTE: must be +=, distutils_enable_tests already appended pytest to BDEPEND.
BDEPEND+="
test? (
dev-python/hypothesis[${PYTHON_USEDEP}]
)
"
src_unpack() {
# cargo_src_unpack vendors every *.crate and `unpack`s everything else in
# ${A} -- the PyPI sdist included -- so it covers both halves on its own.
# NOT pypi_src_unpack: that one is only exported when PYPI_VERIFY_REPO is
# set, and it reads USE=verify-provenance unconditionally, which without
# PYPI_VERIFY_REPO is not in IUSE and dies.
cargo_src_unpack
}
dev-python/regex[] dev-python/requests[]
>=dev-python/setuptools-rust-1.5.2[] test? ( dev-python/hypothesis[] )