CookieParser API¶
CookieParser Class¶
- class parser_header.parser.CookieParser(data=None, **kwargs)[source]¶
Parser for HTTP cookies with multiple extraction methods.
- Parameters:
Example:
# From raw data cookies = CookieParser("cookie: session=abc; user=john") # From kwargs cookies = CookieParser(session='abc', user='john') # Mixed cookies = CookieParser("cookie: a=1", b='2', c='3')
Constructor and Factory Methods¶
- CookieParser.__init__(data=None, **kwargs)[source]¶
Initialize CookieParser with optional data and/or kwargs.
- classmethod CookieParser.from_dict(cookies)[source]¶
Create CookieParser from a dictionary.
- Parameters:
cookies (dict[str, str]) – Dictionary of cookie name-value pairs
- Returns:
New CookieParser instance
- Return type:
cookies = CookieParser.from_dict({ 'session': 'abc123', 'user': 'john' })
Parsing Method¶
Setting Methods¶
- CookieParser.set(name=None, value=None, **kwargs)[source]¶
Set cookie(s).
- Parameters:
- Returns:
self for chaining
- Return type:
- Raises:
ValueError – If name provided without value
cookies.set('session', 'abc123') cookies.set(user='john', token='xyz') cookies.set('a', '1', b='2', c='3')
- CookieParser.update(data=None, **kwargs)[source]¶
Update cookies from dict and/or kwargs.
- Parameters:
- Returns:
self for chaining
- Return type:
cookies.update({'a': '1', 'b': '2'}, c='3')
- CookieParser.remove(*names)[source]¶
Remove cookies by name.
- Parameters:
names – Cookie names to remove
- Returns:
self for chaining
- Return type:
cookies.remove('session', 'token')
Accessing Methods¶
- CookieParser.get(name, default=None)[source]¶
Get specific cookie value.
- Parameters:
name (str) – Cookie name (underscores and hyphens interchangeable)
default – Default value if not found
- Returns:
Cookie value or default
- Return type:
str | None
cookies.get('session') # 'abc123' cookies.get('user-id') # Works cookies.get('user_id') # Also works cookies.get('missing', 'N/A') # 'N/A'
- CookieParser.__getitem__(name)[source]¶
Get cookie with bracket notation.
- Parameters:
name – Cookie name
- Raises:
KeyError – If cookie not found
cookies['session'] # 'abc123'
- CookieParser.__setitem__(name, value)[source]¶
Set cookie with bracket notation.
cookies['session'] = 'new_value'
- CookieParser.__delitem__(name)[source]¶
Delete cookie with bracket notation.
- Raises:
KeyError – If cookie not found
del cookies['session']
- CookieParser.__contains__(name)[source]¶
Check if cookie exists.
- Returns:
True if cookie exists
- Return type:
'session' in cookies # True/False
- CookieParser.__iter__()[source]¶
Iterate over cookie names.
for name in cookies: print(f"{name}={cookies[name]}")
Output Methods¶
- CookieParser.to_cookie_header(data=None, **kwargs)[source]¶
Convert cookies to Cookie header format.
- Parameters:
- Returns:
Cookie header string (semicolon-separated)
- Return type:
cookies = CookieParser(session='abc', user='john') cookies.to_cookie_header() # "session=abc; user=john" cookies.to_cookie_header(token='xyz') # "session=abc; user=john; token=xyz"
Method Chaining¶
All mutating methods return self for chaining:
cookies = (
CookieParser()
.set('session', 'abc')
.set(user='john', token='xyz')
.remove('token')
.update({'lang': 'en'})
)
print(cookies.to_cookie_header())
# "session=abc; user=john; lang=en"
Complete Example¶
from parser_header import CookieParser
# Create and manipulate
cookies = CookieParser(session='initial')
cookies.set(user='john')
cookies['token'] = 'xyz123'
cookies.update({'lang': 'en'}, theme='dark')
# Access
print(cookies.get('session')) # 'initial'
print(cookies['user']) # 'john'
print(len(cookies)) # 5
# Check existence
print('token' in cookies) # True
print('missing' in cookies) # False
# Iterate
for name, value in cookies.items():
print(f"{name}={value}")
# Output
print(cookies.to_cookie_header())
# "session=initial; user=john; token=xyz123; lang=en; theme=dark"
print(cookies.to_dict())
# {'session': 'initial', 'user': 'john', 'token': 'xyz123', 'lang': 'en', 'theme': 'dark'}
# Remove and clear
cookies.remove('theme', 'lang')
print(len(cookies)) # 3
cookies.clear()
print(len(cookies)) # 0