powertools-lambda-python icon indicating copy to clipboard operation
powertools-lambda-python copied to clipboard

Revamp Data Classes utility docs to surface many unknown features

Open heitorlessa opened this issue 3 years ago • 8 comments

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 avatar Mar 17 '21 17:03 heitorlessa

@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?

michaelbrewer avatar Jun 05 '21 06:06 michaelbrewer

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 avatar Jun 05 '21 13:06 gwlester

@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

heitorlessa avatar Jun 05 '21 15:06 heitorlessa

FYI I started from https://awslabs.github.io/aws-lambda-powertools-python/latest/ -- no rush.

BTW, we LOVE this package!!!!

gwlester avatar Jun 05 '21 16:06 gwlester

Maybe there is a better way to integrate the docs and the api docs?

michaelbrewer avatar Jun 06 '21 06:06 michaelbrewer

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.

heitorlessa avatar Jun 14 '21 16:06 heitorlessa

Giving mkdocstrings a try today, will post the results here later

heitorlessa avatar Jul 09 '21 08:07 heitorlessa

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.

heitorlessa avatar Apr 28 '22 06:04 heitorlessa