From 9a9c62b3eb155564a650646a9c0916b401ec0e62 Mon Sep 17 00:00:00 2001 From: martonvago Date: Wed, 20 Aug 2025 13:10:26 +0100 Subject: [PATCH 1/4] feat: :sparkles: add field information to README --- src/seedcase_sprout/templates/README.jinja2 | 11 ++++- tests/test_as_readme_text.py | 55 +++++---------------- 2 files changed, 23 insertions(+), 43 deletions(-) diff --git a/src/seedcase_sprout/templates/README.jinja2 b/src/seedcase_sprout/templates/README.jinja2 index 6b7b1cbd5..7fbbec7b6 100644 --- a/src/seedcase_sprout/templates/README.jinja2 +++ b/src/seedcase_sprout/templates/README.jinja2 @@ -14,8 +14,17 @@ {% if properties.resources -%} ## Data Resources {% for resource in properties.resources %} - {{ loop.index }}. **{{ resource.title }}**: {{ resource.description }} +{{ loop.index }}. **{{ resource.title }}**: {{ resource.description }} +{% if resource.schema.fields %} + ### Resource Fields + + | Name | Title | Type | Description | + |------|-------|------|-------------| +{%- for field in resource.schema.fields %} + | {{ field.name | inline_code }} | {{ field.title }} | {{ field.type | inline_code }} | {{ field.description }} | {%- endfor %} +{% endif %} +{%- endfor -%} {% else -%} No resources available. {% endif %} diff --git a/tests/test_as_readme_text.py b/tests/test_as_readme_text.py index 50978aaeb..97beaacac 100644 --- a/tests/test_as_readme_text.py +++ b/tests/test_as_readme_text.py @@ -1,54 +1,25 @@ from pytest import mark from seedcase_sprout import ( - ContributorProperties, - LicenseProperties, PackageProperties, - ResourceProperties, as_readme_text, + example_package_properties, + example_resource_properties_all_types, ) def test_creates_readme(): - """Should be able to create a README for a set of properties.""" - properties = PackageProperties( - name="diabetes-hypertension-study", - title="Diabetes and Hypertension Study", - homepage="www.my-page.com/diabetes-2021", - id="123-abc-123", - description="This is my package.", - version="2.0.0", - created="2024-05-14T05:00:01+00:00", - contributors=[ - ContributorProperties( - title="Jamie Jones", - email="jamie_jones@example.com", - path="example.com/jamie_jones", - roles=["creator"], - ) - ], - resources=[ - ResourceProperties( - title="First Resource", description="This is my first resource." - ), - ResourceProperties( - title="Second Resource", description="This is my second resource." - ), - ], - licenses=[ - LicenseProperties( - name="ODC-BY-1.0", - path="https://opendatacommons.org/licenses/by", - title="Open Data Commons Attribution License 1.0", - ), - LicenseProperties( - name="APL-1.0", - path="https://opensource.org/license/apl1-0-php", - title="Adaptive Public License 1.0", - ), - ], - ) - assert as_readme_text(properties) + """Should create a README with basic information about the properties.""" + properties = example_package_properties() + resource = example_resource_properties_all_types() + assert resource.schema + assert resource.schema.fields + properties.resources = [resource] + + readme = as_readme_text(properties) + + assert str(resource.title) in readme + assert all([str(field.name) in readme for field in resource.schema.fields]) def test_creates_readme_with_empty_values(): From 33092f4dd6bfba8ac7bd8041e02931d9f5ef6089 Mon Sep 17 00:00:00 2001 From: martonvago Date: Wed, 20 Aug 2025 13:26:33 +0100 Subject: [PATCH 2/4] style: :art: make font bold --- src/seedcase_sprout/templates/README.jinja2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/seedcase_sprout/templates/README.jinja2 b/src/seedcase_sprout/templates/README.jinja2 index 7fbbec7b6..2dd75292f 100644 --- a/src/seedcase_sprout/templates/README.jinja2 +++ b/src/seedcase_sprout/templates/README.jinja2 @@ -16,7 +16,7 @@ {% for resource in properties.resources %} {{ loop.index }}. **{{ resource.title }}**: {{ resource.description }} {% if resource.schema.fields %} - ### Resource Fields + **Resource Fields** | Name | Title | Type | Description | |------|-------|------|-------------| From 1bab86c897e2cc7ae28190c2f5daafdfaa9da115 Mon Sep 17 00:00:00 2001 From: martonvago <57952344+martonvago@users.noreply.github.com> Date: Mon, 25 Aug 2025 11:34:10 +0100 Subject: [PATCH 3/4] refactor: :recycle: apply suggestions from code review Co-authored-by: Luke W. Johnston --- src/seedcase_sprout/templates/README.jinja2 | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/seedcase_sprout/templates/README.jinja2 b/src/seedcase_sprout/templates/README.jinja2 index 2dd75292f..e5eacaaf5 100644 --- a/src/seedcase_sprout/templates/README.jinja2 +++ b/src/seedcase_sprout/templates/README.jinja2 @@ -14,14 +14,16 @@ {% if properties.resources -%} ## Data Resources {% for resource in properties.resources %} -{{ loop.index }}. **{{ resource.title }}**: {{ resource.description }} -{% if resource.schema.fields %} - **Resource Fields** +### {{ resource.title }} - | Name | Title | Type | Description | - |------|-------|------|-------------| +{{ resource.description }} +{% if resource.schema.fields %} +| Name | Title | Type | Description | +|------|-------|------|-------------| {%- for field in resource.schema.fields %} - | {{ field.name | inline_code }} | {{ field.title }} | {{ field.type | inline_code }} | {{ field.description }} | +| {{ field.name | inline_code }} | {{ field.title }} | {{ field.type | inline_code }} | {{ field.description }} | + +: Resource fields in {{ resource.title }} and some details about them. {%- endfor %} {% endif %} {%- endfor -%} From eced215e2d043f857d6d67d516f803428bfb9d73 Mon Sep 17 00:00:00 2001 From: martonvago Date: Mon, 25 Aug 2025 11:40:47 +0100 Subject: [PATCH 4/4] fix: :bug: move caption out of loop --- src/seedcase_sprout/templates/README.jinja2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/seedcase_sprout/templates/README.jinja2 b/src/seedcase_sprout/templates/README.jinja2 index e5eacaaf5..fc5d33071 100644 --- a/src/seedcase_sprout/templates/README.jinja2 +++ b/src/seedcase_sprout/templates/README.jinja2 @@ -22,9 +22,9 @@ |------|-------|------|-------------| {%- for field in resource.schema.fields %} | {{ field.name | inline_code }} | {{ field.title }} | {{ field.type | inline_code }} | {{ field.description }} | +{%- endfor %} : Resource fields in {{ resource.title }} and some details about them. -{%- endfor %} {% endif %} {%- endfor -%} {% else -%}