Skip to content

Commit

Permalink
Swap sections to original order (#28)
Browse files Browse the repository at this point in the history
  • Loading branch information
radeklat authored Nov 7, 2023
1 parent f782dec commit 8e67c91
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 36 deletions.
11 changes: 10 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,14 @@ Types of changes are:

## [Unreleased]

## [3.1.2] - 2023-11-07

### Fixes

#### Markdown template

- Swap `possible_values` and `examples` sections, so that `examples` are displayed before `possible_values`. This is the original display order from `2.x`.

## [3.1.1] - 2023-11-07

### Fixes
Expand Down Expand Up @@ -175,7 +183,8 @@ Add classifiers to the package.
- Initial release
[Unreleased]: https://github.com/radeklat/settings-doc/compare/3.1.1...HEAD
[Unreleased]: https://github.com/radeklat/settings-doc/compare/3.1.2...HEAD
[3.1.2]: https://github.com/radeklat/settings-doc/compare/3.1.1...3.1.2
[3.1.1]: https://github.com/radeklat/settings-doc/compare/3.1.0...3.1.1
[3.1.0]: https://github.com/radeklat/settings-doc/compare/3.0.1...3.1.0
[3.0.1]: https://github.com/radeklat/settings-doc/compare/3.0.0...3.0.1
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "settings-doc"
version = "3.1.1"
version = "3.1.2"
description = "A command line tool for generating Markdown documentation and .env files from pydantic BaseSettings."
authors = ["Radek Lát <[email protected]>"]
license = "MIT License"
Expand Down
64 changes: 32 additions & 32 deletions src/settings_doc/templates/markdown.jinja
Original file line number Diff line number Diff line change
Expand Up @@ -20,38 +20,6 @@

{{ field.description }}
{% endif %}
{# Possible values #}
{% if field.json_schema_extra and "possible_values" in field.json_schema_extra %}
{% set possible_values = field.json_schema_extra.possible_values %}
{% elif is_typing_literal(field) %}
{% set possible_values = field.annotation.__args__ %}
{% endif %}
{% if possible_values %}

{{ heading(2) }} Possible values

{% if not is_values_with_descriptions(possible_values) %}
{% if possible_values|join("`, `")|length + 2 <= 75 %}
`{{ possible_values|join("`, `") }}`
{% else %}
{% for value in possible_values %}
- `{{ value }}`
{% endfor %}
{% endif %}
{% else %}
{% for value in possible_values %}
{% if value.__class__.__name__ == "tuple" and value|length <= 2 %}
{% if value|length == 2 %}
- `{{ value[0] }}`: {{ value[1] }}
{% else %}
- `{{ value[0] }}`
{% endif %}
{% else %}
- `{{ value }}`
{% endif %}
{% endfor %}
{% endif %}
{% endif %}
{# Example values #}
{% if field.json_schema_extra and "examples" in field.json_schema_extra %}
{# `field.json_schema_extra.examples` has no pre-defined structure, so it is more flexible #}
Expand Down Expand Up @@ -95,4 +63,36 @@
{% endfor %}
{% endif %}
{% endif %}
{# Possible values #}
{% if field.json_schema_extra and "possible_values" in field.json_schema_extra %}
{% set possible_values = field.json_schema_extra.possible_values %}
{% elif is_typing_literal(field) %}
{% set possible_values = field.annotation.__args__ %}
{% endif %}
{% if possible_values %}

{{ heading(2) }} Possible values

{% if not is_values_with_descriptions(possible_values) %}
{% if possible_values|join("`, `")|length + 2 <= 75 %}
`{{ possible_values|join("`, `") }}`
{% else %}
{% for value in possible_values %}
- `{{ value }}`
{% endfor %}
{% endif %}
{% else %}
{% for value in possible_values %}
{% if value.__class__.__name__ == "tuple" and value|length <= 2 %}
{% if value|length == 2 %}
- `{{ value[0] }}`: {{ value[1] }}
{% else %}
- `{{ value[0] }}`
{% endif %}
{% else %}
- `{{ value }}`
{% endif %}
{% endfor %}
{% endif %}
{% endif %}
{% endfor %}
4 changes: 2 additions & 2 deletions tests/unit/test_markdown.py
Original file line number Diff line number Diff line change
Expand Up @@ -123,10 +123,10 @@ def should_generate_possible_values_and_examples(runner: CliRunner, mocker: Mock
expected_string = (
"# `possible_values_and_examples`\n\n"
"**required**\n\n"
"## possible values\n\n"
"- `debug`: debug level\n- `info`: info level\n\n"
"## examples\n\n"
"- `debug`: debug level\n- `info`: info level\n\n"
"## possible values\n\n"
"- `debug`: debug level\n- `info`: info level\n\n"
)
assert expected_string in run_app_with_settings(mocker, runner, ExamplesSettings)

Expand Down

0 comments on commit 8e67c91

Please sign in to comment.