#28911: Django dependency pytz does not recognize Msft time zone within Windows
Subsystem for Linux
-------------------------------------------+--------------------------
               Reporter:  elendiastarman   |          Owner:  (none)
                   Type:  Bug              |         Status:  new
              Component:  Error reporting  |        Version:  1.11
               Severity:  Normal           |       Keywords:  timezone
           Triage Stage:  Unreviewed       |      Has patch:  0
    Needs documentation:  0                |    Needs tests:  0
Patch needs improvement:  0                |  Easy pickings:  1
                  UI/UX:  0                |
-------------------------------------------+--------------------------
 Under Windows Subsystem for Linux (I was using openSUSE), the only
 available time zone is `Msft`, which uses settings that are set on the
 Windows side. This is not a valid time zone in pytz. In the process of
 reporting an error thrown by a bug in my code, Django tried to normalize
 the time zone provided in the project settings by passing it through pytz.
 pytz then complains that the time zone is unknown. Somewhat amusingly,
 this error is also caught by Django and goes through the same code path,
 quickly hitting the recursion limit.

 See below for a significant part of the stack trace. My temporary solution
 was to change

 `return pytz.timezone(settings.TIME_ZONE)`

 to

 `return pytz.timezone(settings.TIME_ZONE if settings.TIME_ZONE in
 pytz.all_timezones else 'UTC')`

 ---

 {{{
 pytz.exceptions.UnknownTimeZoneError: 'Msft'

 During handling of the above exception, another exception occurred:

 Traceback (most recent call last):
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 41, in inner
     response = get_response(request)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/utils/deprecation.py", line 140, in __call__
     response = self.get_response(request)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 43, in inner
     response = response_for_exception(request, exc)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 93, in
 response_for_exception
     response = handle_uncaught_exception(request,
 get_resolver(get_urlconf()), sys.exc_info())
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 139, in
 handle_uncaught_exception
     return debug.technical_500_response(request, *exc_info)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/views/debug.py", line 84, in technical_500_response
     html = reporter.get_traceback_html()
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/views/debug.py", line 328, in get_traceback_html
     return t.render(c)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/template/base.py", line 207, in render
     return self._render(context)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/template/base.py", line 199, in _render
     return self.nodelist.render(context)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/template/base.py", line 990, in render
     bit = node.render_annotated(context)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/template/base.py", line 957, in render_annotated
     return self.render(context)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/template/base.py", line 1040, in render
     output = self.filter_expression.resolve(context)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/template/base.py", line 732, in resolve
     obj = template_localtime(obj, context.use_tz)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/utils/timezone.py", line 195, in template_localtime
     return localtime(value) if should_convert else value
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/utils/timezone.py", line 213, in localtime
     timezone = get_current_timezone()
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/utils/timezone.py", line 97, in get_current_timezone
     return getattr(_active, "value", get_default_timezone())
   File
 "/home/elendiastarman/.virtualenvs/django/lib64/python3.4/functools.py",
 line 472, in wrapper
     result = user_function(*args, **kwds)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/utils/timezone.py", line 79, in get_default_timezone
     return pytz.timezone(settings.TIME_ZONE)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/pytz/__init__.py", line 191, in timezone
     raise UnknownTimeZoneError(zone)
 pytz.exceptions.UnknownTimeZoneError: 'Msft'

 During handling of the above exception, another exception occurred:

 Traceback (most recent call last):
   File "/usr/lib64/python3.4/wsgiref/handlers.py", line 137, in run
     self.result = application(self.environ, self.start_response)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/contrib/staticfiles/handlers.py", line 63, in __call__
     return self.application(environ, start_response)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/core/handlers/wsgi.py", line 157, in __call__
     response = self.get_response(request)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/core/handlers/base.py", line 124, in get_response
     response = self._middleware_chain(request)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 43, in inner
     response = response_for_exception(request, exc)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 93, in
 response_for_exception
     response = handle_uncaught_exception(request,
 get_resolver(get_urlconf()), sys.exc_info())
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/core/handlers/exception.py", line 139, in
 handle_uncaught_exception
     return debug.technical_500_response(request, *exc_info)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/views/debug.py", line 84, in technical_500_response
     html = reporter.get_traceback_html()
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/views/debug.py", line 328, in get_traceback_html
     return t.render(c)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/template/base.py", line 207, in render
     return self._render(context)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/template/base.py", line 199, in _render
     return self.nodelist.render(context)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/template/base.py", line 990, in render
     bit = node.render_annotated(context)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/template/base.py", line 957, in render_annotated
     return self.render(context)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/template/base.py", line 1040, in render
     output = self.filter_expression.resolve(context)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/template/base.py", line 732, in resolve
     obj = template_localtime(obj, context.use_tz)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/utils/timezone.py", line 195, in template_localtime
     return localtime(value) if should_convert else value
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/utils/timezone.py", line 213, in localtime
     timezone = get_current_timezone()
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/utils/timezone.py", line 97, in get_current_timezone
     return getattr(_active, "value", get_default_timezone())
   File
 "/home/elendiastarman/.virtualenvs/django/lib64/python3.4/functools.py",
 line 472, in wrapper
     result = user_function(*args, **kwds)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/django/utils/timezone.py", line 79, in get_default_timezone
     return pytz.timezone(settings.TIME_ZONE)
   File "/home/elendiastarman/.virtualenvs/django/lib/python3.4/site-
 packages/pytz/__init__.py", line 191, in timezone
     raise UnknownTimeZoneError(zone)
 pytz.exceptions.UnknownTimeZoneError: 'Msft'
 }}}

-- 
Ticket URL: <https://code.djangoproject.com/ticket/28911>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/057.2ed389a7c500fbee7eacfbf1dee38360%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to