Revamp Data Classes utility docs to surface many unknown features
What were you initially searching for in the docs?
Use cases like fetching HTTP Headers from either API Gateway REST & HTTP API, ALB, AppSync in a case insensitive way is covered by get_header_value, but it's nearly hidden in the documentation.
That goes on with S3 unquote plus, multiple SES utilities, encoding/decoding methods, etc.
Is this related to an existing part of the documentation? Please share a link
https://awslabs.github.io/aws-lambda-powertools-python/utilities/data_classes
Describe how we could make it clearer*
- A sub-section for each Dataclass of common scenarios
- A link to API docs for people to know what properties are available beyond most common use cases
- Revamp Dataclass API for each supported dataclass to have examples like we do in Core and some others https://awslabs.github.io/aws-lambda-powertools-python/api/utilities/data_classes/index.html
- New Cookbook section in the docs covering many common paths when dealing with rich Event Sources
If you have a proposed update, please share it here
@heitorlessa - is there any pieces of this you would want me to help look into?
A link to API docs for people to know what properties are available beyond most common use cases
I could provide links to underlying api dates for each of the data classes from the docs?
I agree, we had to go diving in the code to see what methods the DynamoDb Stream Event (and the classes it uses) had.
I may have even missed some that caused me to open a Feature Request here.
@gwlester I'm sorry to hear you had to resort to that, that's not the experience we want to provide.
This is the direct link to the API docs: https://awslabs.github.io/aws-lambda-powertools-python/develop/api/utilities/data_classes/dynamo_db_stream_event.html
After 1.17.0 release this coming week during business hours, I'll drop all else to revamp this doc.
@michaelbrewer for now, a table of all methods along with a description suffice.
I'll recreate this doc from scratch, have each event source with its own sub-page with complete examples, a link to API reference, and revisit constructor docstring example section.
This might take up to two weeks and PRs will link here to help follow its progress
FYI I started from https://awslabs.github.io/aws-lambda-powertools-python/latest/ -- no rush.
BTW, we LOVE this package!!!!
Maybe there is a better way to integrate the docs and the api docs?
I'm gonna give mkdocstrings another try. This would include API docs with native anchors and structure - last time I tried I didn't have enough time to tune settings and docstrings to better fit in the current structure we have.
Giving mkdocstrings a try today, will post the results here later
Update: Bumped into handler bugs in mkdocstrings not recognizing custom sections in numpy docstrings, then got later deprioritized due to bandwidth to focus on bug fixing other areas.