A client to the https://github.com/DXsmiley/rtex API server
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Estelle Poulin 997c8269a7 | 3 months ago | |
---|---|---|
.github/workflows | 1 year ago | |
rtex | 3 months ago | |
.gitignore | 1 year ago | |
LICENSE | 1 year ago | |
README.md | 1 year ago | |
pyproject.toml | 1 year ago | |
requirements.txt | 3 months ago |
README.md
Async Python Client to The RTEX API Server
Installation
pip install rtex
Usage
The API surface of Rtex is spartan so this is basically the whole thing.
import asyncio
from rtex.client import AsyncRtexClient
async def amain():
async with AsyncRtexClient() as rtex:
res = rtex.create_render("\(x^2 + x - 1\)")
if res.status == "success":
with open("equation.png") as output_fd:
await res.save_render(
res.filename,
output_fd
)
def main():
asyncio.run(amain())
if __name__ == "__main__":
main()
No Thoughts, Just Render
async def amain():
async with AsyncRtexClient() as rtex:
buf = await rtex.render_math("e^x + 1")
# `buf` now contains the bytes of the PNG
Do I look like I know what a Jay-Peg is?
async def amain():
async with AsyncRtexClient() as rtex:
# The render methods accept a format parameter.
# Supported values are "png", "jpg" and "pdf"
buf = await rtex.render_math("e^x + 1", format="jpg")
Self-Hoster
Set the environment variable RTEX_API_HOST
or do the following.
async def amain():
async with AsyncRtexClient(api_host="https://myserver.ru") as rtex:
buf = await rtex.render_math("e^x + 1")
I Can Tell By The Pixels
quality
in Rtex speak is an abstract notion of compression for the given
format where 100
is the least compressed and 0
is the most. At the time of
writing the default is 85
.
density
in Rtex speak is how much to sample the rendered PDF when generating
an image. This has no effect on the "pdf"
format. At the time of writing the
default is 200
.
async def amain():
async with AsyncRtexClient(api_host="https://myserver.ru") as rtex:
needs_more_jpeg = await rtex.render_math(
"e^x + 1",
density=50,
quality=1
)