Metadata-Version: 2.1
Name: cycls
Version: 0.0.2.14
Summary: Cycls SDK
Author: Mohammed Jamal
Author-email: mj@cycls.com
Requires-Python: >=3.8,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: asyncssh (>=2.14.2,<3.0.0)
Requires-Dist: fastapi (>=0.111.0,<0.112.0)
Requires-Dist: httpx (>=0.27.0,<0.28.0)
Description-Content-Type: text/markdown

</br></br><p align="center"><img src="https://cycls.com/static/assets/favicon.svg" alt="Cycls"></p></br>

<div align="center">
    <a href="https://pypi.org/project/cycls/" target="_blank" rel="noopener noreferrer">
        <img loading="lazy" src="https://img.shields.io/pypi/v/cycls.svg" alt="PyPI" class="img_ev3q" style="display: inline;">
    </a>
    <a href="https://discord.gg/BMnaMatDC7" target="_blank" rel="noopener noreferrer">
        <img loading="lazy" src="https://img.shields.io/discord/1175782747164389466" alt="Discord" class="img_ev3q" style="display: inline;">
    </a>
</div>

</br>

```sh
pip install cycls
```

```py
from cycls import Cycls, Text

cycls = Cycls()

# sync app on https://cycls.com/@spark
@cycls("spark")
def spark_app(x):
    print("history", x.history)
    print("session id", x.id)
    return Text(x.content+" from spark")

# async app on https://cycls.com/@cake
@cycls("cake")
async def cake_app(x):
    print("history", x.history)
    print("session id", x.id)
    return Text(x.content+" from cake")

# publish to https://cycls.com
cycls.push()
```

- `Text` renders markdown
- `Text` is both streaming/bulk based on input


Try it live https://cycls.com/@groq

