token-utils
Installation: pip install token-utils.
The purpose of token-utils is to simplify manipulations of tokens normally obtaind from Python's tokenize module. One of token-utils' features is that, unlike Python's version, the following is always guaranteed:
from token_utils import tokenize, untokenize
source = "Arbitrary Python code here"
assert source == untokenize(tokenize(source))
To get an idea of the simplicity of using token-utils, consider this example from Python's standard library which substitute Decimals for floats in a string of statements:
from tokenize import tokenize, untokenize, NUMBER, STRING, NAME, OP
from io import BytesIO
def decistmt(s):
result = []
g = tokenize(BytesIO(s.encode('utf-8')).readline) # tokenize the string
for toknum, tokval, _, _, _ in g:
if toknum == NUMBER and '.' in tokval: # replace NUMBER tokens
result.extend([
(NAME, 'Decimal'),
(OP, '('),
(STRING, repr(tokval)),
(OP, ')')
])
else:
result.append((toknum, tokval))
return untokenize(result).decode('utf-8')
Here's how you could achieve the same result with token-utils:
from token_utils import tokenize, untokenize
def decistmt(source):
tokens = tokenize(source)
for token in tokens:
if token.is_float():
token.string = f"Decimal('{token.string}')"
return untokenize(tokens)
See the documentation for more information.
Release files for token-utils 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| token_utils-0.2.2.tar.gz | 9.4 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| token_utils-0.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.4 MB
Release files / token_utils-0.2.2.tar.gz
| Download URL | token_utils-0.2.2.tar.gz |
|---|---|
| Size | 9.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3adeb3000776228baf26daad56f63a323aa053d7fc541d9afdc0a75f47dc8459
|
|
BLAKE2b-256 checksum How to use checksums |
335a5e601850f2bc471a7a9492a5cdc4e783e2b3e182de1d5001222331fc3a04
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.13
|
Release files / token_utils-0.2.2-py3-none-any.whl
| Download URL | token_utils-0.2.2-py3-none-any.whl |
|---|---|
| Size | 15.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
06b7d2c1124edd10be0d33729f7996de8bf4b38dcebe41797c30af03cf0aaa3f
|
|
BLAKE2b-256 checksum How to use checksums |
53d7892058c13470a4c80b6ed54d0a35ccf30ece41518ed995b57055622cc132
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.13
|