slackapi / slackapi/python-slack-sdk

Export types for the objects returned from making requests

Open
#1,543 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

auto-triage-skip discussion Version: 3x web-client
Dominant language
Python
Stars
4k
Forks
857
Avg merge
22h 21m
Merged PRs (30d)
16

Description

The export of types of the objects returned when making requests would be incredibly useful. This would significantly enhance the developer experience by:

  • preventing incorrect key accesses
  • and other invalid operations on the type of an object or value inside the object
  • enhancing IDE intellisense
  • integration with linters and static type checkers

I guess you could implement this manually, though it would be amazing if the Slack API did this for you.

Category (place an x in each of the [ ])
  • slack_sdk.web.WebClient (sync/async) (Web API client)
  • slack_sdk.webhook.WebhookClient (sync/async) (Incoming Webhook, response_url sender)
  • slack_sdk.models (UI component builders)
  • slack_sdk.oauth (OAuth Flow Utilities)
  • slack_sdk.socket_mode (Socket Mode client)
  • slack_sdk.audit_logs (Audit Logs API client)
  • slack_sdk.scim (SCIM API client)
  • slack_sdk.rtm (RTM client)
  • slack_sdk.signature (Request Signature Verifier)
Requirements

Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you are agreeing to those rules.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with slack_sdk.web.WebClient, the only selected client area in the issue, and read the linked contributing guidelines before investigating how Web API responses are represented. Define the scope of exported response types and how they would cover sync and async requests; done should provide usable types that support key checking, IDE completion, linters, and static type checkers.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, developer-experience
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.