Source API

HeaderParser

class parser_header.HeaderParser(data=None, **kwargs)[source]

Bases: object

Comprehensive HTTP header parser supporting all standard and custom headers.

Initialize HeaderParser.

Parameters:
  • data (Optional[InputType]) – Raw header string/bytes

  • **kwargs (Any) – Header key-value pairs to set directly Underscores in keys are converted to hyphens e.g., HeaderParser(content_type=”application/json”, user_agent=”Mozilla”)

SPECIAL_HEADERS = {'accept', 'authorization', 'cache-control', 'content-disposition', 'content-type', 'cookie', 'proxy-authenticate', 'set-cookie', 'www-authenticate'}
BOOLEAN_HEADERS = {'dnt', 'sec-gpc', 'upgrade-insecure-requests'}
SEC_CH_UA_PATTERN = re.compile('"([^"]+)";v="([^"]+)"')
__init__(data=None, **kwargs)[source]

Initialize HeaderParser.

Parameters:
  • data (str | bytes | None) – Raw header string/bytes

  • **kwargs (Any) – Header key-value pairs to set directly Underscores in keys are converted to hyphens e.g., HeaderParser(content_type=”application/json”, user_agent=”Mozilla”)

parse(data=None, **kwargs)[source]

Parse raw HTTP headers into structured dictionary.

Parameters:
  • data (str | bytes | None) – Raw header string/bytes

  • **kwargs (Any) – Additional headers as key=value pairs Underscores in keys are converted to hyphens

Returns:

Dict with parsed headers

Return type:

Dict[str, Any]

set(name=None, value=None, **kwargs)[source]

Set header(s).

Parameters:
  • name (str | None) – Header name (optional if using kwargs)

  • value (Any | None) – Header value (required if name is provided)

  • **kwargs (Any) – Header key=value pairs Underscores in keys are converted to hyphens

Returns:

self for chaining

Return type:

HeaderParser

Examples

parser.set(‘Content-Type’, ‘application/json’) parser.set(content_type=’application/json’, user_agent=’Mozilla’) parser.set(‘X-Custom’, ‘value’, accept=’/’)

set_raw(name=None, value=None, **kwargs)[source]

Set header(s) without parsing the value.

Parameters:
  • name (str | None) – Header name

  • value (Any | None) – Header value (stored as-is)

  • **kwargs (Any) – Header key=value pairs

Returns:

self for chaining

Return type:

HeaderParser

remove(*names)[source]

Remove header(s) by name.

clear()[source]

Clear all headers.

update(data=None, **kwargs)[source]

Update headers from dict and/or kwargs.

Parameters:
  • data (Dict[str, Any] | None) – Dictionary of headers

  • **kwargs (Any) – Additional headers

Returns:

self for chaining

Return type:

HeaderParser

get(name, default=None)[source]

Get header value by name (case-insensitive).

__setitem__(name, value)[source]

Set header with bracket notation.

__delitem__(name)[source]

Delete header with bracket notation.

keys()[source]
values()[source]
items()[source]
to_dict(stringify=False)[source]

Get all headers as dictionary.

Parameters:

stringify (bool) – If True, convert all values to strings

to_raw()[source]

Convert parsed headers back to raw format.

to_requests_headers()[source]

Convert to format suitable for requests library.

property cookies: CookieParser

Access cookie parser.

Get specific cookie value.

Set cookie(s).

Parameters:
  • name (str | None) – Cookie name

  • value (str | None) – Cookie value

  • **kwargs (str) – Cookie key=value pairs

Returns:

self for chaining

Return type:

HeaderParser

get_cookies_as_header()[source]

Get all cookies formatted as Cookie header value.

get_cookies_as_dict()[source]

Get all cookies as dictionary.

property content_type: str | None

Get Content-Type value.

property content_length: int | None

Get Content-Length as integer.

property user_agent: str | None

Get User-Agent value.

property origin: str | None

Get Origin value.

property referer: str | None

Get Referer value.

is_ajax()[source]

Check if request is AJAX/XHR.

is_cors()[source]

Check if request is CORS.

get_sec_fetch_metadata()[source]

Get all Sec-Fetch-* headers.

get_client_hints()[source]

Get all Client Hints (Sec-CH-*) headers.

classmethod from_dict(headers)[source]

Create HeaderParser from dictionary.

classmethod from_kwargs(**kwargs)[source]

Create HeaderParser from keyword arguments.

classmethod from_requests_response(response)[source]

Create HeaderParser from requests Response object.

CookieParser

class parser_header.CookieParser(data=None, **kwargs)[source]

Bases: object

Parser for HTTP cookies with multiple extraction methods.

Initialize CookieParser.

Parameters:
  • data (Optional[InputType]) – Raw header string/bytes containing cookie entries

  • **kwargs (str) – Cookie key-value pairs to set directly e.g., CookieParser(session=”abc”, user=”john”)

__init__(data=None, **kwargs)[source]

Initialize CookieParser.

Parameters:
  • data (str | bytes | None) – Raw header string/bytes containing cookie entries

  • **kwargs (str) – Cookie key-value pairs to set directly e.g., CookieParser(session=”abc”, user=”john”)

parse(data=None, **kwargs)[source]

Parse cookies from raw header data and/or kwargs.

Parameters:
  • data (str | bytes | None) – Raw header string/bytes containing cookie entries

  • **kwargs (str) – Additional cookies as key=value pairs

Returns:

Dict of cookie name-value pairs

Return type:

Dict[str, str]

set(name=None, value=None, **kwargs)[source]

Set cookie(s).

Parameters:
  • name (str | None) – Cookie name (optional if using kwargs)

  • value (str | None) – Cookie value (required if name is provided)

  • **kwargs (str) – Cookie key=value pairs Underscores in keys are converted to hyphens

Returns:

self for chaining

Return type:

CookieParser

Examples

cookies.set(‘session’, ‘abc123’) cookies.set(session=’abc’, user=’john’) cookies.set(‘token’, ‘xyz’, refresh_token=’123’)

remove(*names)[source]

Remove cookie(s) by name.

clear()[source]

Clear all cookies.

update(data=None, **kwargs)[source]

Update cookies from dict and/or kwargs.

Parameters:
  • data (Dict[str, str] | None) – Dictionary of cookies

  • **kwargs (str) – Additional cookies

Returns:

self for chaining

Return type:

CookieParser

Convert parsed cookies to Cookie header format.

Parameters:
  • data (str | bytes | None) – Optional new data to parse first

  • **kwargs (str) – Additional cookies to include

Returns:

Cookie header string (name=value; name2=value2)

Return type:

str

to_dict(data=None, **kwargs)[source]

Get cookies as dictionary.

Parameters:
  • data (str | bytes | None) – Optional new data to parse first

  • **kwargs (str) – Additional cookies to include

Returns:

Dict of cookie name-value pairs

Return type:

Dict[str, str]

get(name, default=None)[source]

Get a specific cookie value.

__getitem__(name)[source]

Get cookie by name with bracket notation.

__setitem__(name, value)[source]

Set cookie with bracket notation.

__delitem__(name)[source]

Delete cookie with bracket notation.

keys()[source]
values()[source]
items()[source]
classmethod from_dict(cookies)[source]

Create CookieParser from dictionary.

classmethod from_kwargs(**kwargs)[source]

Create CookieParser from keyword arguments.

HeaderValue

class parser_header.HeaderValue(value, params=<factory>)[source]

Bases: object

Represents a parsed header value with optional parameters.

value: str
params: Dict[str, str]
__init__(value, params=<factory>)

Exceptions

class parser_header.exceptions.ParserError[source]

Bases: Exception

Base exception for parser errors.

class parser_header.exceptions.InvalidHeaderError[source]

Bases: ParserError

Raised when header format is invalid.

class parser_header.exceptions.InvalidCookieError[source]

Bases: ParserError

Raised when cookie format is invalid.

class parser_header.exceptions.EncodingError[source]

Bases: ParserError

Raised when encoding/decoding fails.