FastAPI is mostly uvicorn+starlette. As such, the documentation is spread over multiple places. Also, pydantic parsing of arguments is a pain to work with. Since we don't need powerful performance, we switch to Quart. Quart is preferred over Flask because of its async capabilities, which we need for log streaming in websockets. In progress: execute tutor commands and stream logs.
68 lines
1.8 KiB
Python
68 lines
1.8 KiB
Python
import io
|
|
import os
|
|
|
|
from setuptools import find_packages, setup
|
|
|
|
HERE = os.path.abspath(os.path.dirname(__file__))
|
|
|
|
|
|
def load_readme():
|
|
with io.open(os.path.join(HERE, "README.rst"), "rt", encoding="utf8") as f:
|
|
return f.read()
|
|
|
|
|
|
def load_about():
|
|
about = {}
|
|
with io.open(
|
|
os.path.join(HERE, "tutordash", "__about__.py"),
|
|
"rt",
|
|
encoding="utf-8",
|
|
) as f:
|
|
exec(f.read(), about) # pylint: disable=exec-used
|
|
return about
|
|
|
|
|
|
ABOUT = load_about()
|
|
|
|
|
|
setup(
|
|
name="tutor-dash",
|
|
version=ABOUT["__version__"],
|
|
url="https://github.com/overhangio/tutor-dash",
|
|
project_urls={
|
|
"Code": "https://github.com/overhangio/tutor-dash",
|
|
"Issue tracker": "https://github.com/overhangio/tutor-dash/issues",
|
|
},
|
|
license="AGPLv3",
|
|
author="Edly",
|
|
author_email="regis.behmo@edly.io",
|
|
description="Awesome administration dashboard and plugin marketplace for Tutor",
|
|
long_description=load_readme(),
|
|
long_description_content_type="text/x-rst",
|
|
packages=find_packages(exclude=["tests*"]),
|
|
include_package_data=True,
|
|
python_requires=">=3.9",
|
|
install_requires=[
|
|
"tutor>=18.0.0,<19.0.0",
|
|
"quart",
|
|
"aiofiles"
|
|
],
|
|
extras_require={
|
|
"dev": [
|
|
"tutor[dev]>=18.0.0,<19.0.0",
|
|
]
|
|
},
|
|
entry_points={"tutor.plugin.v1": ["dash = tutordash.plugin"]},
|
|
classifiers=[
|
|
"Development Status :: 3 - Alpha",
|
|
"Intended Audience :: Developers",
|
|
"License :: OSI Approved :: GNU Affero General Public License v3",
|
|
"Operating System :: OS Independent",
|
|
"Programming Language :: Python",
|
|
"Programming Language :: Python :: 3.9",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
],
|
|
)
|