done
This commit is contained in:
		
							
								
								
									
										44
									
								
								lib/python3.11/site-packages/babel/localtime/_fallback.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								lib/python3.11/site-packages/babel/localtime/_fallback.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,44 @@
 | 
			
		||||
"""
 | 
			
		||||
    babel.localtime._fallback
 | 
			
		||||
    ~~~~~~~~~~~~~~~~~~~~~~~~~
 | 
			
		||||
 | 
			
		||||
    Emulated fallback local timezone when all else fails.
 | 
			
		||||
 | 
			
		||||
    :copyright: (c) 2013-2025 by the Babel Team.
 | 
			
		||||
    :license: BSD, see LICENSE for more details.
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
import datetime
 | 
			
		||||
import time
 | 
			
		||||
 | 
			
		||||
STDOFFSET = datetime.timedelta(seconds=-time.timezone)
 | 
			
		||||
DSTOFFSET = datetime.timedelta(seconds=-time.altzone) if time.daylight else STDOFFSET
 | 
			
		||||
 | 
			
		||||
DSTDIFF = DSTOFFSET - STDOFFSET
 | 
			
		||||
ZERO = datetime.timedelta(0)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class _FallbackLocalTimezone(datetime.tzinfo):
 | 
			
		||||
 | 
			
		||||
    def utcoffset(self, dt: datetime.datetime) -> datetime.timedelta:
 | 
			
		||||
        if self._isdst(dt):
 | 
			
		||||
            return DSTOFFSET
 | 
			
		||||
        else:
 | 
			
		||||
            return STDOFFSET
 | 
			
		||||
 | 
			
		||||
    def dst(self, dt: datetime.datetime) -> datetime.timedelta:
 | 
			
		||||
        if self._isdst(dt):
 | 
			
		||||
            return DSTDIFF
 | 
			
		||||
        else:
 | 
			
		||||
            return ZERO
 | 
			
		||||
 | 
			
		||||
    def tzname(self, dt: datetime.datetime) -> str:
 | 
			
		||||
        return time.tzname[self._isdst(dt)]
 | 
			
		||||
 | 
			
		||||
    def _isdst(self, dt: datetime.datetime) -> bool:
 | 
			
		||||
        tt = (dt.year, dt.month, dt.day,
 | 
			
		||||
              dt.hour, dt.minute, dt.second,
 | 
			
		||||
              dt.weekday(), 0, -1)
 | 
			
		||||
        stamp = time.mktime(tt)
 | 
			
		||||
        tt = time.localtime(stamp)
 | 
			
		||||
        return tt.tm_isdst > 0
 | 
			
		||||
		Reference in New Issue
	
	Block a user