##
18.22.5 Cookie Objects

`Cookie` instances have Python attributes roughly corresponding to the standard cookie-attributes specified in the various cookie standards. The correspondence is not one-to-one, because there are complicated rules for assigning default values, because the `max-age` and `expires` cookie-attributes contain equivalent information, and because RFC 2109 cookies may be 'downgraded' by `cookielib` from version 1 to version 0 (Netscape) cookies.

Assignment to these attributes should not be necessary other than in rare circumstances in a `CookiePolicy` method. The class does not enforce internal consistency, so you should know what you're doing if you do that.

`version`
  Integer or `None`. Netscape cookies have `version` 0. RFC 2965 and RFC 2109 cookies have a `version` cookie-attribute of 1. However, note that `cookielib` may 'downgrade' RFC 2109 cookies to Netscape cookies, in which case `version` is 0.

`name`
  Cookie name (a string).

`value`
  Cookie value (a string), or `None`.

`port`
  String representing a port or a set of ports (eg. '80', or '80,8080'), or `None`.

`path`
  Cookie path (a string, eg. `'/acme/rocket_launchers'`).

`secure`
  True if cookie should only be returned over a secure connection.

`expires`
  Integer expiry date in seconds since epoch, or `None`. See also the `is_expired()` method.

`discard`
  True if this is a session cookie.

`comment`
  String comment from the server explaining the function of this cookie, or `None`.

`comment_url`
  URL linking to a comment from the server explaining the function of this cookie, or `None`.

`rfc2109`
  True if this cookie was received as an RFC 2109 cookie (ie. the cookie arrived in a Set-Cookie: header, and the value of the Version cookie-attribute in that header was 1). This attribute is provided because `cookielib` may 'downgrade' RFC 2109 cookies to Netscape cookies, in which case `version` is 0. New in version 2.5.

`port_specified`
  True if a port or set of ports was explicitly specified by the server (in the Set-Cookie: / Set-Cookie2: header).

`domain_specified`
  True if a domain was explicitly specified by the server.

`domain_initial_dot`
  True if the domain explicitly specified by the server began with a dot (`'.'`).

Cookies may have additional non-standard cookie-attributes. These may be accessed using the following methods:

`has_nonstandard_attr`( | name)

  Return true if cookie has the named cookie-attribute.

`get_nonstandard_attr`( | name, default=`None`)

  If cookie has the named cookie-attribute, return its value. Otherwise, return default.

`set_nonstandard_attr`( | name, value)

  Set the value of the named cookie-attribute.

The `Cookie` class also defines the following method:

`is_expired`( | [now=`None`])

  True if cookie has passed the time at which the server requested it should expire. If now is given (in seconds since the epoch), return whether the cookie has expired at the specified time.