Metadata-Version: 2.1
Name: snok
Version: 0.0.0
Summary: 🚀 A simple, modern, full-stack toolkit for Python 🐍
Author-email: Anthony Corletti <anthcor+snok@gmail.com>
License: MIT
Project-URL: Home, https://github.com/anthonycorletti/snok
Project-URL: Documentation, https://snok.corletti.xyz
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: black (>=21.10)
Requires-Dist: coverage (>=6.1.1)
Requires-Dist: fastapi (>=0.97.0)
Requires-Dist: gunicorn (>=20.1.0)
Requires-Dist: invoke (>=2.0.0)
Requires-Dist: mypy (>=0.910)
Requires-Dist: packaging (>=21.0)
Requires-Dist: pre-commit (>=2.17.0)
Requires-Dist: pydantic (>=1.8.2)
Requires-Dist: pytest-cov (>=3.0.0)
Requires-Dist: pytest-xdist (>=3.3.1)
Requires-Dist: pytest (>=6.2.5)
Requires-Dist: rich (>=10.12.0)
Requires-Dist: ruff (>=0.0.98)
Requires-Dist: setuptools (>=67.8.0)
Requires-Dist: toml (>=0.10.2)
Requires-Dist: typer (>=0.7.0)
Requires-Dist: types-toml (>=0.1.0)
Requires-Dist: uvicorn (>=0.15.0)
Requires-Dist: wheel (>=0.36)
Provides-Extra: dev
Requires-Dist: mdx-include (>=1.4.2) ; extra == 'dev'
Requires-Dist: mkdocs (>=1.4.2) ; extra == 'dev'
Requires-Dist: mkdocs-material (>=9.1.5) ; extra == 'dev'

<p align="center">
  <a href="https://snok.corletti.xyz"><img src="https://github.com/anthonycorletti/snok/blob/main/docs/img/logo.png?raw=true" alt="Snok"></a>
</p>
<p align="center">
    <em>🚀 A simple, modern, full-stack toolkit for Python 🐍</em>
</p>
<p align="center">
<a href="https://github.com/anthonycorletti/snok/actions?query=workflow%3Atest" target="_blank">
    <img src="https://github.com/anthonycorletti/snok/workflows/test/badge.svg" alt="Test">
</a>
<a href="https://github.com/anthonycorletti/snok/actions?query=workflow%3Apublish" target="_blank">
    <img src="https://github.com/anthonycorletti/snok/workflows/publish/badge.svg" alt="publish">
</a>
<a href="https://codecov.io/gh/anthonycorletti/snok" target="_blank">
    <img src="https://img.shields.io/codecov/c/github/anthonycorletti/snok?color=%2334D058" alt="Coverage">
</a>
<a href="https://pypi.org/project/snok/" target="_blank">
    <img alt="PyPI" src="https://img.shields.io/pypi/v/snok?color=blue">
</a>
</p>

---

**Documentation**: <a href="https://snok.corletti.xyz" target="_blank">https://snok.corletti.xyz</a>

**Source Code**: <a href="https://github.com/anthonycorletti/snok" target="_blank">https://github.com/anthonycorletti/snok</a>

---

Snok is a simple, modern, full-stack toolkit for Python.

## 🙋 Why?

Snok is a toolkit for Python that focuses on making it simple and easy to build modern, full-stack applications, across web and AI frameworks.

Snok is designed to leverage the best tools and packages that exist in the Python ecosystem in simple and easy to use workflows that accelerate development.

## 🎉 Featuring

- Package generation
- Task management with `invoke`
- Packaging with `setuptools`
- Linting with `ruff` and `black`
- Type checking with `mypy`
- Testing with `pytest`

## 🤩 Coming Soon

- Web application generation with `fastapi` and `htmx`
- Database integration with `pydantic` and `sqlmodel`
- Production ready deployment stacks with `nix`, `docker`, `skaffold` and `kustomize`
- AI framework integrations with `pytorch` and `langchain`

Check out the latest [issues](https://github.com/anthonycorletti/snok/issues) and [pull requests](https://github.com/anthonycorletti/snok/pulls) to see what's coming soon!

## 📝 Requirements

- Python 3.11+
- `pip`

## ⚙️ Installation

After you've created your Python 3.11+ virtual environment, install Snok with:

```sh
pip install snok
```

## 🐍 Getting Started

Create a new package with:

```sh
snok new mypackage && cd mypackage
```

Snok uses `invoke` to manage tasks, like installing dependencies, running tests, and more.

```sh
inv --list
```

To install dependencies:

```sh
inv add fastapi
```

To uninstall dependencies:

```sh
inv remove fastapi
```

## 🫶 How can I help?

- [⭐️ Star snok on GitHub! ⭐️](https://github.com/anthonycorletti/snok)
- Open an [issue](https://github.com/anthonycorletti/snok/issues/new/choose) if you have a question, comment, feature request, or bug report.
- Open a [pull request](https://github.com/anthonycorletti/snok/compare) on GitHub. Contributions are encouraged and welcome!

## 📲 Contact

Reach out on [Twitter](https://twitter.com/anthonycorletti) if you'd like to get in touch!

&nbsp;
