Metadata-Version: 2.4
Name: jambazid-uv-demo
Version: 0.2.3
Summary: A minimal Python project template built with `uv`.
Author: Jambazid
Author-email: Jambazid <pypi@jambazid.dev>
License-Expression: MIT
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Documentation
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: httpx>=0.28.1,<2
Requires-Dist: pydantic>=2.12,<3
Requires-Dist: typer>=0.20.0,<2
Maintainer: Jambazid
Maintainer-email: Jambazid <pypi@jambazid.dev>
Requires-Python: >=3.11
Project-URL: Repository, https://github.com/jambazid/python-uv-template
Project-URL: Homepage, https://uv-template.python.jambazid.dev
Project-URL: Issues, https://github.com/jambazid/python-uv-template/issues
Description-Content-Type: text/markdown

# Jambazid/demo

Minimal working example of a packaged Python project. Key integrations include:

- Build System ([uv](https://docs.astral.sh/uv/)).
- Test Framework ([PyTest](https://docs.pytest.org/en/7.4.x/)).
- Documentation as Code ([zensical](https://zensical.org/about/)).
- CI/CD ([GitHub Actions](https://docs.github.com/en/actions)).

## Contents

- [jambazid/demo](#jambaziddemo)
    - [Contents](#contents)
    - [Structure](#structure)
    - [Markdown and ReST Support](#markdown-and-rest-support)
    - [Data Models](#data-models)

## Structure

[Documentation](https://uv-demo.python.jambazid.dev) is generated from Python docstrings and takes a structure mirroring
that of the source code (API documentation).

Initial focus could be on high-level (public) APIs intended for direct use by end-users.

Developers can thus grow the documentation organically within a single task-based workflow.
As soon as a new feature/function is added - the developer need only include a docstring
in their commit and it will reflect in the hosted page.

## Markdown and ReST Support

The [`zensical`](https://zensical.org/about/) framework renders Markdown in docstrings to HTML:

- Lists
- Are
- Supported

As are code blocks:

```python
# Example invocation

result: Type = function(param="value", *variadic_args, **variadic_kwargs)
```

## Data Models

The [`pydantic`](https://docs.pydantic.dev/latest/) framework has quickly become the leading
data validation library for Python.

It's not a stretch to say that there's [a whole ecosystem](https://github.com/Kludex/awesome-pydantic) being built around it with everything
from web frameworks to data science toolkits using it as the base for their data models.

From a documentation perspective, if you can describe your data source as a [`pydantic`](https://docs.pydantic.dev/latest/) derived
[data model](https://docs.pydantic.dev/latest/concepts/models/) and then group them accordingly
such links could be fronted as data schemas. Standard representations such as ["JSON Schema"](https://json-schema.org/) can
be generated directly from [`pydantic`](https://docs.pydantic.dev/latest/) models.

This also has [advantages for testing](https://pandera.readthedocs.io/en/stable/data_synthesis_strategies.html#usage-in-unit-tests).
