Metadata-Version: 2.4
Name: Interfluxer
Version: 0.1.0a0
Summary: Easy, simple, scalable and modular: a Python API wrapper for Fluxer.
Home-page: https://github.com/LordOfPolls/Interfluxer
Author: LordOfPolls
Author-email: dev@lordofpolls.com
Project-URL: Fluxer, https://fluxer.gg/4plfWFhS
Project-URL: Documentation, https://LordOfPolls.github.io/Interfluxer/
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: AsyncIO
Classifier: Framework :: aiohttp
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Documentation
Classifier: Typing :: Typed
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aiohttp
Requires-Dist: attrs>=22.1
Requires-Dist: audioop-lts; python_version >= "3.13"
Requires-Dist: croniter
Requires-Dist: discord-typings>=0.9.0
Requires-Dist: emoji
Requires-Dist: tomli
Provides-Extra: voice
Requires-Dist: PyNaCl<1.6,>=1.5.0; extra == "voice"
Requires-Dist: cryptography>=46.0.3; extra == "voice"
Provides-Extra: speedup
Requires-Dist: aiodns; extra == "speedup"
Requires-Dist: orjson; extra == "speedup"
Requires-Dist: Brotli; extra == "speedup"
Requires-Dist: faust-cchardet; extra == "speedup"
Requires-Dist: uvloop; sys_platform != "win32" and extra == "speedup"
Provides-Extra: sentry
Requires-Dist: sentry-sdk; extra == "sentry"
Provides-Extra: jurigged
Requires-Dist: jurigged; extra == "jurigged"
Provides-Extra: console
Requires-Dist: aioconsole>=0.6.0; extra == "console"
Provides-Extra: all
Requires-Dist: PyNaCl<1.6,>=1.5.0; extra == "all"
Requires-Dist: cryptography>=46.0.3; extra == "all"
Requires-Dist: aiodns; extra == "all"
Requires-Dist: orjson; extra == "all"
Requires-Dist: Brotli; extra == "all"
Requires-Dist: faust-cchardet; extra == "all"
Requires-Dist: uvloop; sys_platform != "win32" and extra == "all"
Requires-Dist: sentry-sdk; extra == "all"
Requires-Dist: jurigged; extra == "all"
Requires-Dist: aioconsole>=0.6.0; extra == "all"
Provides-Extra: docs
Requires-Dist: PyNaCl<1.6,>=1.5.0; extra == "docs"
Requires-Dist: cryptography>=46.0.3; extra == "docs"
Requires-Dist: aiodns; extra == "docs"
Requires-Dist: orjson; extra == "docs"
Requires-Dist: Brotli; extra == "docs"
Requires-Dist: faust-cchardet; extra == "docs"
Requires-Dist: uvloop; sys_platform != "win32" and extra == "docs"
Requires-Dist: sentry-sdk; extra == "docs"
Requires-Dist: jurigged; extra == "docs"
Requires-Dist: aioconsole>=0.6.0; extra == "docs"
Requires-Dist: mkdocs-autorefs; extra == "docs"
Requires-Dist: mkdocs-awesome-pages-plugin; extra == "docs"
Requires-Dist: mkdocs-material; extra == "docs"
Requires-Dist: mkdocstrings-python; extra == "docs"
Requires-Dist: mkdocs-minify-plugin; extra == "docs"
Requires-Dist: mkdocs-git-committers-plugin-2; extra == "docs"
Requires-Dist: mkdocs-git-revision-date-localized-plugin; extra == "docs"
Requires-Dist: griffe==0.25; extra == "docs"
Provides-Extra: tests
Requires-Dist: pytest; extra == "tests"
Requires-Dist: pytest-asyncio; extra == "tests"
Requires-Dist: pytest-cov; extra == "tests"
Requires-Dist: python-dotenv; extra == "tests"
Requires-Dist: typeguard; extra == "tests"
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-asyncio; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: python-dotenv; extra == "dev"
Requires-Dist: typeguard; extra == "dev"
Requires-Dist: PyNaCl<1.6,>=1.5.0; extra == "dev"
Requires-Dist: cryptography>=46.0.3; extra == "dev"
Requires-Dist: aiodns; extra == "dev"
Requires-Dist: orjson; extra == "dev"
Requires-Dist: Brotli; extra == "dev"
Requires-Dist: faust-cchardet; extra == "dev"
Requires-Dist: uvloop; sys_platform != "win32" and extra == "dev"
Requires-Dist: sentry-sdk; extra == "dev"
Requires-Dist: jurigged; extra == "dev"
Requires-Dist: aioconsole>=0.6.0; extra == "dev"
Requires-Dist: mkdocs-autorefs; extra == "dev"
Requires-Dist: mkdocs-awesome-pages-plugin; extra == "dev"
Requires-Dist: mkdocs-material; extra == "dev"
Requires-Dist: mkdocstrings-python; extra == "dev"
Requires-Dist: mkdocs-minify-plugin; extra == "dev"
Requires-Dist: mkdocs-git-committers-plugin-2; extra == "dev"
Requires-Dist: mkdocs-git-revision-date-localized-plugin; extra == "dev"
Requires-Dist: griffe==0.25; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license-file
Dynamic: project-url
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

<div align="center">

   # Interfluxer
   <br>

    [Fluxer Server](https://fluxer.gg/4plfWFhS)

</div>

## A Feature-rich Fluxer Bot Framework for Python

A highly extensible, easy to use, and feature complete framework for Fluxer.

This project started from the `interactions.py` codebase and was reworked to target Fluxer’s API and ecosystem, with anything Discord-specific removed.
It is the culmination of years of experience with bot development.
This framework has been built from the ground up with community feedback and suggestions in mind.
Our framework provides a modern and intuitive set of language bindings for easy interaction with Fluxer.

## Key Features
Interfluxer offers a wide range of features for building Python-powered Fluxer bots and web applications alike:
- ✅ Dynamic cache with TTL support
- ✅ Modern and Pythonic API for easy interaction with Fluxer
- ✅ Proper rate-limit handling
- ✅ Feature parity with most other Fluxer API wrappers

In addition to core functionality, `Interfluxer` provides a range of optional extensions, allowing you to further customize your bot and add new features with ease.

## Extensibility

So the base library doesn't do what you want? No problem! With builtin extensions, you are able to extend the functionality of the library. And if none of those pique your interest, there are a myriad of other extension libraries available.

Just type `bot.load_extension("extension")`

<details>
    <summary>Extensions</summary>

  ### Debug Extension

  A fully featured debug and utilities suite to help you get your bots made

  ### Jurigged

  A hot reloading extension allowing you to automagically update your bot without reboots

  ### Sentry

  Integrates Sentry.io error tracking into your bot with a single line

  ### Console

  Adds `aiomonitor` support with enables cli commands over a web interface

</details>

## Where do I start?

Getting started with `Interfluxer` is easy! Simply install it via `pip` and start building your Fluxer application in Python:

```python
import Interfluxer

bot = Interfluxer.Client()


@Interfluxer.listen()
async def on_startup():
    print("Bot is ready!")


bot.start("token")
```

With `Interfluxer`, you can quickly and easily build complex Fluxer applications with Python.
