Skip to main content

Parser for converting python docstrings to .astro files for the Astro static site generator.

Project description

Yapper

Yapper converts Python docstrings to astro files for use by the Astro static site generator.

It uses griffe to parse python modules and extracts numpy style docstrings.

It is up to the user to maintain consistency between types specified in signatures and docstrings. Differences betweten the two can be preferable where docstrings represent simplified forms of typing information than might otherwise be necessary for function signatures.

Docstrings and parameter descriptions will be passed through as a raw markdown wrapped in the Astro <Markdown is:raw></Markdown> elements.

Class and function elements are wrapped with html with css classes that can be styled from Astro.

See the cityseer.benchmarkurbanism.com documentation site and associated docs repo for a working example.

Conversion of markdown formatting, code blocks, admonitions, etc., is all handled downstream by Astro. Styling is likewise handled downstream via css targeting the associated element classes.

Configuration

Configuration is provided in pyproject.toml file placed in the current directory, else a --config parameter can be provided with a relative or absolute filepath to a toml config file.

yapper --config ./custom_config.toml

The toml file must include a [tool.yapper] section, with keys corresponding to the default configuration options:

[tool.yapper]
package_root_relative_path = './'
intro_template = """
---\n
import { Markdown } from 'astro/components';\n
---\n
"""
outro_template = ""
module_map = [
  { module = "test.mock_file", astro = "./tests/mock_default.astro" },
]

If you want to wrap the .astro output in a particular layout, then set the intro_template and outro_template accordingly, for example, the following will import the PageLayout layout and will wrap the generated content accordingly:

[tool.yapper]
package_root_relative_path = './'
intro_template = """
---\n
import { Markdown } from 'astro/components';\n
import PageLayout from '../layouts/PageLayout.astro'\n
---\n
\n
<PageLayout>
"""
outro_template = """
</PageLayout>\n
"""
module_map = [
  { module = "test.mock_file", py = "./tests/mock_file.py", astro = "./tests/mock_default.astro" },
]

The module_map is mandatory and specifies the names of the python modules to be processed via the module key and an astro key corresponding to the output file:

Development

yapper uses a pyproject.toml file to specify project dependencies and scripts related to project development and publishing.

See pyproject.toml for available scripts.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yapper-0.4.0.tar.gz (15.1 kB view details)

Uploaded Source

Built Distribution

yapper-0.4.0-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file yapper-0.4.0.tar.gz.

File metadata

  • Download URL: yapper-0.4.0.tar.gz
  • Upload date:
  • Size: 15.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for yapper-0.4.0.tar.gz
Algorithm Hash digest
SHA256 e915c5df9049f6c98d84575fdf2b4b04a816f5e9998ca3badec42af50e173b74
MD5 35ed136dfd5de2885be77fdf2c823593
BLAKE2b-256 87a8d36fc62b45b0d6d4acc1aa215930bbc903472ed73eea154f94f1159b7a4c

See more details on using hashes here.

File details

Details for the file yapper-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: yapper-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 10.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for yapper-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 99bac569553fe7378fbba51cee98a327a296dc6008a300daacf4a2db5bac8899
MD5 4c28ce10648f0da6555695342d63dcb9
BLAKE2b-256 d3fc240a086a515823659b43a2b6fc4e986e791018f7fedde27299817ef26dd3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page