HeaderParser API¶
- synopsis:
HTTP header parser classes
HeaderParser Class¶
- class parser_header.parser.HeaderParser(data=None, **kwargs)[source]¶
Comprehensive HTTP header parser supporting all standard and custom headers.
- Parameters:
Example:
# From raw data parser = HeaderParser("content-type: application/json") # From kwargs parser = HeaderParser(content_type='application/json', user_agent='MyApp') # Mixed parser = HeaderParser("accept: */*", content_type='json')
Constructor and Factory Methods¶
- HeaderParser.__init__(data=None, **kwargs)[source]¶
Initialize HeaderParser with optional data and/or kwargs.
- classmethod HeaderParser.from_dict(headers)[source]¶
Create HeaderParser from a dictionary.
- Parameters:
headers (dict) – Dictionary of header name-value pairs
- Returns:
New HeaderParser instance
- Return type:
parser = HeaderParser.from_dict({ 'Content-Type': 'application/json', 'Authorization': 'Bearer token' })
- classmethod HeaderParser.from_kwargs(**kwargs)[source]¶
Create HeaderParser from keyword arguments.
- Parameters:
kwargs – Header key-value pairs
- Returns:
New HeaderParser instance
- Return type:
parser = HeaderParser.from_kwargs( content_type='application/json', accept='*/*' )
- classmethod HeaderParser.from_requests_response(response)[source]¶
Create HeaderParser from a requests Response object.
- Parameters:
response – requests Response object
- Returns:
New HeaderParser instance
- Return type:
import requests response = requests.get('https://example.com') parser = HeaderParser.from_requests_response(response)
Parsing Methods¶
Setting Methods¶
- HeaderParser.set(name=None, value=None, **kwargs)[source]¶
Set header(s) with parsing.
- Parameters:
name (str | None) – Header name (optional if using kwargs)
value (Any | None) – Header value (required if name provided)
kwargs – Header key=value pairs
- Returns:
self for chaining
- Return type:
- Raises:
ValueError – If name provided without value
parser.set('Content-Type', 'application/json') parser.set(user_agent='Mozilla', accept='*/*') parser.set('Auth', 'Bearer x', x_request_id='123')
- HeaderParser.set_raw(name=None, value=None, **kwargs)[source]¶
Set header(s) without parsing the value.
- Parameters:
name – Header name
value – Header value (stored as-is)
kwargs – Header key=value pairs
- Returns:
self for chaining
- Return type:
# Value stored as string, not parsed parser.set_raw('cache-control', 'max-age=3600')
- HeaderParser.update(data=None, **kwargs)[source]¶
Update headers from dict and/or kwargs.
- Parameters:
data (dict | None) – Dictionary of headers
kwargs – Additional headers
- Returns:
self for chaining
- Return type:
parser.update({'Accept': '*/*'}, user_agent='Test')
- HeaderParser.remove(*names)[source]¶
Remove headers by name.
- Parameters:
names – Header names to remove
- Returns:
self for chaining
- Return type:
parser.remove('x-custom', 'accept')
Accessing Methods¶
- HeaderParser.get(name, default=None)[source]¶
Get header value by name (case-insensitive).
- Parameters:
name (str) – Header name
default – Default value if not found
- Returns:
Header value or default
parser.get('content-type') # HeaderValue or string parser.get('missing', 'N/A') # 'N/A'
- HeaderParser.__getitem__(name)[source]¶
Get header with bracket notation.
- Parameters:
name – Header name
- Raises:
KeyError – If header not found
parser['content-type']
- HeaderParser.__setitem__(name, value)[source]¶
Set header with bracket notation.
parser['Content-Type'] = 'application/json'
- HeaderParser.__delitem__(name)[source]¶
Delete header with bracket notation.
- Raises:
KeyError – If header not found
del parser['x-custom']
- HeaderParser.__contains__(name)[source]¶
Check if header exists.
- Returns:
True if header exists
- Return type:
'content-type' in parser # True/False
Export Methods¶
- HeaderParser.to_dict(stringify=False)[source]¶
Export headers as dictionary.
- Parameters:
stringify (bool) – If True, convert all values to strings
- Returns:
Dictionary of headers
- Return type:
parser.to_dict() # With parsed values parser.to_dict(stringify=True) # All strings
Properties¶
Utility Methods¶
- HeaderParser.is_cors()[source]¶
Check if request is CORS (has Origin header).
- Returns:
True if CORS request
- Return type:
- HeaderParser.is_ajax()[source]¶
Check if request is AJAX (X-Requested-With: XMLHttpRequest).
- Returns:
True if AJAX request
- Return type:
HeaderValue Class¶
- class parser_header.parser.HeaderValue[source]¶
Dataclass representing a header value with parameters.
Example:
# Created automatically when parsing Content-Type, etc. parser.set('content-type', 'text/html; charset=utf-8') hv = parser.get('content-type') print(hv.value) # 'text/html' print(hv.params) # {'charset': 'utf-8'} print(str(hv)) # 'text/html; charset=utf-8'