Skip to content

Conversation

@al-chris
Copy link

@al-chris al-chris commented Dec 9, 2025

Fixes

Summary

  • Added a type stub exposing the Client initializer and domain properties: twilio/rest/__init__.pyi.
  • Included a follow-up runtime fix that adds return type hints to to_dict() methods and safer policy handling in the Knowledge module.

Commits included

  • 914845712 feat: add initial typings for Twilio REST client
  • e70d11fac fix: add type hints and improve policy handling in to_dict methods

Files changed

  • A new stub: twilio/rest/__init__.pyi
  • Modified runtime module: twilio/rest/knowledge/v1/knowledge/__init__.py (type hints and policy handling in multiple to_dict methods)

Why

  • The .pyi stub improves IDE/autocomplete and prepares the codebase for static typing.
  • The runtime changes ensure to_dict() is correctly typed and avoid attribute errors when policy objects do not implement to_dict().

Patch summary for knowledge module (selected excerpt)

Commit: e70d11f
Message: fix: add type hints and improve policy handling in to_dict methods

Diff excerpt:

--- a/twilio/rest/knowledge/v1/knowledge/init.py
+++ b/twilio/rest/knowledge/v1/knowledge/init.py
@@

  •    def to_dict(self):
    
  •    def to_dict(self) -> Dict[str, Any]:
           return {
               "description": self.description,
               "knowledge_source_details": self.knowledge_source_details,
               "name": self.name,
    
  •            "policy": self.policy.to_dict() if self.policy is not None else None,
    
  •            "policy": self.policy.to_dict() if (self.policy is not None and hasattr(self.policy, "to_dict")) else None,
               "type": self.type,
               "embedding_model": self.embedding_model,
           }
    

(Repeated in multiple classes: KnowledgeInstance, KnowledgeContext, KnowledgeList — each to_dict now has a -> Dict[str, Any] return annotation and safer policy handling.)

How to test

  • Run type checks and tests locally:
pip install -e .[dev]
mypy twilio --follow-imports=silent
pytest -q

Notes

  • The .pyi file is annotation-only and doesn't change runtime behavior.
  • The knowledge module changes are small, well-scoped runtime fixes; they should be safe but please run unit tests and smoke test features that use policy objects.

Suggested branch/commit

  • Branch: add/stubs/twilio-rest-client
  • Commit messages already present in history: 914845712, e70d11fac

Requesting review from

  • @maintainers or module owners familiar with twilio.rest and knowledge modules

Checklist

  • I acknowledge that all my contributions will be made under the project's license
  • I have made a material change to the repo (functionality, testing, spelling, grammar)
  • I have read the Contribution Guidelines and my PR follows them
  • I have titled the PR appropriately
  • I have updated my branch with the main branch
  • I have added tests that prove my fix is effective or that my feature works
  • I have added the necessary documentation about the functionality in the appropriate .md file
  • I have added inline documentation to the code I modified

If you have questions, please file a support ticket, or create a GitHub Issue in this repository.

@al-chris al-chris changed the title Add typed stub for twilio.rest.Client + to_dict type hints fix chore: Add typed stub for twilio.rest.Client + to_dict type hints fix Dec 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant