Let's say we have this code:
@strawberry.type(description="A connection to a list of items.")
class VehicleFilmsConnection:
page_info: PageInfo = strawberry.field(
description="Information to aid in pagination."
)
edges: list[VehicleFilmsEdge | None] | None = strawberry.field(
description="A list of edges."
)
total_count: int | None = strawberry.field(
description="""
A count of the total number of objects in this connection, ignoring pagination.
This allows a client to fetch the first five objects by passing "5" as the
argument to "first", then fetch the total count so it could display "5 of 83",
for example.
"""
)
films: list[Film | None] | None = strawberry.field(
description="""
A list of all of the objects returned in the connection. This is a convenience
field provided for quickly exploring the API; rather than querying for
"{ edges { node } }" when no edge data is needed, this field can be be used
instead. Note that when clients like Relay need to fetch the "cursor" field on
the edge to enable efficient pagination, this shortcut cannot be used, and the
full "{ edges { node } }" version should be used instead.
"""
)
We could allow users to actually write this:
@strawberry.type(description="A connection to a list of items.")
class VehicleFilmsConnection:
page_info: PageInfo = strawberry.field(
description="Information to aid in pagination."
)
edges: list[VehicleFilmsEdge | None] | None = strawberry.field(
description="A list of edges."
)
total_count: int | None = strawberry.field(
description="""
A count of the total number of objects in this connection, ignoring pagination.
This allows a client to fetch the first five objects by passing "5" as the
argument to "first", then fetch the total count so it could display "5 of 83",
for example.
"""
)
films: list[Film | None] | None = strawberry.field(
description="""
A list of all of the objects returned in the connection. This is a convenience
field provided for quickly exploring the API; rather than querying for
"{ edges { node } }" when no edge data is needed, this field can be be used
instead. Note that when clients like Relay need to fetch the "cursor" field on
the edge to enable efficient pagination, this shortcut cannot be used, and the
full "{ edges { node } }" version should be used instead.
"""
)
which is quite nicer than what we had before, but it would include the spaces in the outputted schema, but we could run textwrap.dedent
(plus strip to fix this), what do you think?
Pay now to fund the work behind this issue.
Get updates on progress being made.
Maintainer is rewarded once the issue is completed.
You're funding impactful open source efforts
You want to contribute to this effort
You want to get funding like this too