tutor-android/pyproject.toml
Abdul-Muqadim-Arbisoft a539ca2693 feat: migrate from pylint/black to ruff (#64)
* feat: migrate from pylint/black to ruff
Linked Epic: overhangio/tutor#1251

Some new rules that have been added are:

I: sort imports
N: check for pep8-naming standards
W292: check for missing extra line at EOF

Some of our lines, particularly in config break the 88 character line length limit. For that, we add a # noqa: E501 to let ruff know to ignore the rule for that line

* test: python package distribution build when running make test
Pushing to pypi would occasionally fail because of breaking distribution build.
We verify the build in the github CI now so that we can mitigate those errors later on.

* fix: install ruff instead of pylint/black as optional dev dependency
2025-09-07 19:44:37 +05:00

83 lines
2.2 KiB
TOML

# https://packaging.python.org/en/latest/tutorials/packaging-projects/
# https://hatch.pypa.io/latest/config/build/
[project]
name = "tutor-android"
license = { text = "AGPL-3.0-only" }
authors = [
{ name = "Edly" },
{ email = "hello@edly.io" }
]
maintainers = [
{ name = "Abdul-Muqadim" },
{ email = "abdul.muqadim@arbisoft.com" }
]
description = "Android mobile app plugin for Tutor"
readme = { file = "README.rst", content-type = "text/x-rst" }
requires-python = ">=3.9"
classifiers = [
"Development Status :: 5 - Production/Stable",
"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",
]
dependencies = [
"tutor>=20.0.0,<21.0.0"
]
# Version will be dynamically loaded from __about__.py
dynamic = ["version"]
[project.optional-dependencies]
dev = [
"tutor[dev]>=20.0.0,<21.0.0",
"ruff",
]
[project.entry-points."tutor.plugin.v1"]
android = "tutorandroid.plugin"
# URLs for documentation and issue tracking
[project.urls]
Homepage = "https://github.com/overhangio/tutor-android"
Documentation = "https://github.com/overhangio/tutor-android"
Code = "https://github.com/overhangio/tutor-android"
Issues = "https://github.com/overhangio/tutor-android/issues"
Community = "https://discuss.openedx.org/tag/tutor"
# Hatch-specific configuration
[tool.hatch.metadata.hooks.custom]
path = ".hatch_build.py"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.sdist]
# Disable strict naming for twine compatibility
strict-naming = false
include = [ "/tutorandroid", '.hatch_build.py' ]
exclude = [ "tests*" ]
[tool.hatch.build.targets.wheel]
packages = ["tutorandroid"]
[tool.ruff]
exclude = ["templates", "docs/_ext"]
[tool.ruff.lint]
# E: pycodestyle errors
# I: isort
# N: pep8-naming
select = ["E", "I", "N"]
# F401: unused-import
# F841: unused-variable
# W292: missing-newline-at-end-of-file
extend-select = ["F401", "F841", "W292"]
[tool.ruff.format]