From ef66b373851b8dd8daeacb9826d63e107b1ea279 Mon Sep 17 00:00:00 2001 From: Joao Faria Date: Wed, 5 Nov 2025 04:13:13 -0300 Subject: [PATCH] feat: add HTTPMethod enum support to brain_http (#2878) Closes #2877 (cherry picked from commit ff7205c1616df44119ef1a598c95b31977ba8620) --- ChangeLog | 4 ++++ astroid/brain/brain_http.py | 13 ++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index e317c5d3d..fa9e5bcaf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -8,6 +8,10 @@ What's New in astroid 4.1.0? Release date: TBA +* Add ``HTTPMethod`` enum support to brain module for Python 3.11+. + + Closes #4135 + What's New in astroid 4.0.2? ============================ diff --git a/astroid/brain/brain_http.py b/astroid/brain/brain_http.py index e4b6bca63..9802c0f7e 100644 --- a/astroid/brain/brain_http.py +++ b/astroid/brain/brain_http.py @@ -14,10 +14,21 @@ def _http_transform() -> nodes.Module: code = textwrap.dedent( """ - from enum import IntEnum + from enum import IntEnum, StrEnum from collections import namedtuple _HTTPStatus = namedtuple('_HTTPStatus', 'value phrase description') + class HTTPMethod(StrEnum): + GET = "GET" + POST = "POST" + PUT = "PUT" + DELETE = "DELETE" + HEAD = "HEAD" + OPTIONS = "OPTIONS" + PATCH = "PATCH" + TRACE = "TRACE" + CONNECT = "CONNECT" + class HTTPStatus(IntEnum): @property