Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit a241e6e

Browse files
committed
Don't import pytz unless and until it is needed
svn path=/trunk/matplotlib/; revision=8222
1 parent 24e0ed1 commit a241e6e

4 files changed

Lines changed: 22 additions & 13 deletions

File tree

CHANGELOG

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
2010-04-05 Speed up import: import pytz only if and when it is
2+
needed. It is not needed if the rc timezone is UTC. - EF
3+
14
2010-04-03 Added color kwarg to Axes.hist(), based on work by
25
Jeff Klukas. - EF
36

examples/pylab_examples/finance_demo.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/usr/bin/env python
22
from pylab import *
33
from matplotlib.dates import DateFormatter, WeekdayLocator, HourLocator, \
4-
DayLocator, MONDAY, timezone
4+
DayLocator, MONDAY
55
from matplotlib.finance import quotes_historical_yahoo, candlestick,\
66
plot_day_summary, candlestick2
77

lib/matplotlib/config/cutils.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
# Stdlib imports
66
import os
7-
import pytz
87
import sys
98
import tempfile
109
import warnings

lib/matplotlib/dates.py

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -92,23 +92,13 @@
9292
"""
9393
import re, time, math, datetime
9494

95-
import pytz
96-
97-
# compatability for 2008c and older versions
98-
try:
99-
import pytz.zoneinfo
100-
except ImportError:
101-
pytz.zoneinfo = pytz.tzinfo
102-
pytz.zoneinfo.UTC = pytz.UTC
103-
10495
import matplotlib
10596
import numpy as np
10697

10798
import matplotlib.units as units
10899
import matplotlib.cbook as cbook
109100
import matplotlib.ticker as ticker
110101

111-
from pytz import timezone
112102
from dateutil.rrule import rrule, MO, TU, WE, TH, FR, SA, SU, YEARLY, \
113103
MONTHLY, WEEKLY, DAILY, HOURLY, MINUTELY, SECONDLY
114104
from dateutil.relativedelta import relativedelta
@@ -127,11 +117,28 @@
127117
'seconds', 'minutes', 'hours', 'weeks')
128118

129119

120+
# Make a simple UTC instance so we don't always have to import
121+
# pytz. From the python datetime library docs:
122+
123+
class _UTC(datetime.tzinfo):
124+
"""UTC"""
125+
126+
def utcoffset(self, dt):
127+
return datetime.timedelta(0)
128+
129+
def tzname(self, dt):
130+
return "UTC"
131+
132+
def dst(self, dt):
133+
return datetime.timedelta(0)
130134

131-
UTC = pytz.timezone('UTC')
135+
UTC = _UTC()
132136

133137
def _get_rc_timezone():
134138
s = matplotlib.rcParams['timezone']
139+
if s == 'UTC':
140+
return UTC
141+
import pytz
135142
return pytz.timezone(s)
136143

137144

0 commit comments

Comments
 (0)