77import os
88import typing as ty
99from abc import ABC , ABCMeta , abstractmethod
10- from datetime import datetime
10+ from datetime import datetime , timezone
1111from email .utils import parsedate_to_datetime
1212from http .cookies import SimpleCookie
1313from socket import gaierror
@@ -96,9 +96,8 @@ def _url_default(self):
9696 def _url_validate (self , proposal ):
9797 value = proposal ["value" ]
9898 # Ensure value, if present, starts with 'http'
99- if value is not None and len (value ) > 0 :
100- if not str (value ).lower ().startswith ("http" ):
101- raise TraitError ("GatewayClient url must start with 'http': '%r'" % value )
99+ if value is not None and len (value ) > 0 and not str (value ).lower ().startswith ("http" ):
100+ raise TraitError ("GatewayClient url must start with 'http': '%r'" % value )
102101 return value
103102
104103 ws_url = Unicode (
@@ -115,18 +114,16 @@ def _url_validate(self, proposal):
115114 @default ("ws_url" )
116115 def _ws_url_default (self ):
117116 default_value = os .environ .get (self .ws_url_env )
118- if default_value is None :
119- if self .gateway_enabled :
120- default_value = self .url .lower ().replace ("http" , "ws" )
117+ if default_value is None and self .gateway_enabled :
118+ default_value = self .url .lower ().replace ("http" , "ws" )
121119 return default_value
122120
123121 @validate ("ws_url" )
124122 def _ws_url_validate (self , proposal ):
125123 value = proposal ["value" ]
126124 # Ensure value, if present, starts with 'ws'
127- if value is not None and len (value ) > 0 :
128- if not str (value ).lower ().startswith ("ws" ):
129- raise TraitError ("GatewayClient ws_url must start with 'ws': '%r'" % value )
125+ if value is not None and len (value ) > 0 and not str (value ).lower ().startswith ("ws" ):
126+ raise TraitError ("GatewayClient ws_url must start with 'ws': '%r'" % value )
130127 return value
131128
132129 kernels_endpoint_default_value = "/api/kernels"
@@ -599,7 +596,7 @@ def update_cookies(self, cookie: SimpleCookie) -> None:
599596 if not self .accept_cookies :
600597 return
601598
602- store_time = datetime .now ()
599+ store_time = datetime .now (tz = timezone . utc )
603600 for key , item in cookie .items ():
604601 # Convert "expires" arg into "max-age" to facilitate expiration management.
605602 # As "max-age" has precedence, ignore "expires" when "max-age" exists.
@@ -611,7 +608,7 @@ def update_cookies(self, cookie: SimpleCookie) -> None:
611608
612609 def _clear_expired_cookies (self ) -> None :
613610 """Clear expired cookies."""
614- check_time = datetime .now ()
611+ check_time = datetime .now (tz = timezone . utc )
615612 expired_keys = []
616613
617614 for key , (morsel , store_time ) in self ._cookies .items ():
0 commit comments