diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..c99f76a --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,77 @@ +[build-system] +requires = [ + "setuptools", + "wheel", + "setuptools-scm[toml]" +] +build-backend = "setuptools.build_meta" + +[project] +name = "tiararodney.sekft" +description = "Fine-tune small open models to operate a POSIX shell (sek)" +authors = [ + { name = "Tiara Rodney", email = "tiara.rodney@byteb4rb1e.me" } +] +readme = "README.md" +classifiers = [ + "Development Status :: 3 - Alpha", + "Intended Audience :: Developers", + "Intended Audience :: Science/Research", + "Natural Language :: English", + "Operating System :: POSIX :: Linux", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Scientific/Engineering :: Artificial Intelligence", + "Topic :: System :: Shells", + "Typing :: Typed", +] +dependencies = [ + "tiararodney.posix-sdc", +] +dynamic = ["version"] +requires-python = ">=3.9" + +[project.optional-dependencies] +gpu = [ + "torch", + "transformers", + "peft", + "datasets", + "accelerate", + "bitsandbytes", + "tensorboard", +] + +[project.scripts] +sekft-train = "tiararodney.sekft.sft:main" +sekft-eval = "tiararodney.sekft.eval:main" +sekft-resident = "tiararodney.sekft.resident:main" + +[project.urls] +Git = "https://git.code.tiararodney.com/tiararodney/sekft" + +[tool.setuptools.packages.find] +where = ["src"] +namespaces = true + +[tool.pytest.ini_options] +pythonpath = ["src", "../posix-sdc/src"] +testpaths = ["tests"] +markers = [ + "pytest: integration tests runnable without external services", + "gpu: requires torch and a GPU", + "docker: requires Docker and the sekft-dash image", +] + +[tool.mypy] +strict = true + +[tool.autopep8] +max_line_length = 80 +aggressive = 3 +recursive = true + +[tool.setuptools_scm] diff --git a/src/tiararodney/sekft/__init__.py b/src/tiararodney/sekft/__init__.py new file mode 100644 index 0000000..0cb60f3 --- /dev/null +++ b/src/tiararodney/sekft/__init__.py @@ -0,0 +1,5 @@ +"""sekft: fine-tune small open models to operate a POSIX shell (sek). + +Consumes the posix-sdc dataset; the trainer, behavioural evaluator, and the +resident-base harness live here. +"""