From: <jd...@us...> - 2008-08-26 13:24:03
|
Revision: 6051 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6051&view=rev Author: jdh2358 Date: 2008-08-26 13:24:00 +0000 (Tue, 26 Aug 2008) Log Message: ----------- some fixes for exceltools Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/mlab.py trunk/matplotlib/lib/mpl_toolkits/exceltools.py Modified: trunk/matplotlib/lib/matplotlib/mlab.py =================================================================== --- trunk/matplotlib/lib/matplotlib/mlab.py 2008-08-25 22:21:49 UTC (rev 6050) +++ trunk/matplotlib/lib/matplotlib/mlab.py 2008-08-26 13:24:00 UTC (rev 6051) @@ -1818,16 +1818,23 @@ #helpers for loading, saving, manipulating and viewing numpy record arrays + def safe_isnan(x): 'isnan for arbitrary types' + if cbook.is_string_like(x): + return False try: b = np.isnan(x) except NotImplementedError: return False + except TypeError: return False else: return b def safe_isinf(x): 'isnan for arbitrary types' + if cbook.is_string_like(x): + return False try: b = np.isinf(x) except NotImplementedError: return False + except TypeError: return False else: return b def rec_append_field(rec, name, arr, dtype=None): Modified: trunk/matplotlib/lib/mpl_toolkits/exceltools.py =================================================================== --- trunk/matplotlib/lib/mpl_toolkits/exceltools.py 2008-08-25 22:21:49 UTC (rev 6050) +++ trunk/matplotlib/lib/mpl_toolkits/exceltools.py 2008-08-26 13:24:00 UTC (rev 6051) @@ -20,7 +20,7 @@ """ import copy -import numpy as npy +import numpy as np import pyExcelerator as excel import matplotlib.cbook as cbook import matplotlib.mlab as mlab @@ -97,7 +97,7 @@ rownum+=1 - ind = npy.arange(len(r.dtype.names)) + ind = np.arange(len(r.dtype.names)) for row in r: for i in ind: val = row[i] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jd...@us...> - 2008-09-18 13:21:25
|
Revision: 6108 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6108&view=rev Author: jdh2358 Date: 2008-09-18 20:20:55 +0000 (Thu, 18 Sep 2008) Log Message: ----------- adding new pytz Added Paths: ----------- trunk/matplotlib/lib/pytz/ trunk/matplotlib/lib/pytz/__init__.py trunk/matplotlib/lib/pytz/reference.py trunk/matplotlib/lib/pytz/tzfile.py trunk/matplotlib/lib/pytz/tzinfo.py trunk/matplotlib/lib/pytz/zoneinfo/ trunk/matplotlib/lib/pytz/zoneinfo/Africa/ trunk/matplotlib/lib/pytz/zoneinfo/Africa/Abidjan trunk/matplotlib/lib/pytz/zoneinfo/Africa/Accra trunk/matplotlib/lib/pytz/zoneinfo/Africa/Addis_Ababa trunk/matplotlib/lib/pytz/zoneinfo/Africa/Algiers trunk/matplotlib/lib/pytz/zoneinfo/Africa/Asmara trunk/matplotlib/lib/pytz/zoneinfo/Africa/Asmera trunk/matplotlib/lib/pytz/zoneinfo/Africa/Bamako trunk/matplotlib/lib/pytz/zoneinfo/Africa/Bangui trunk/matplotlib/lib/pytz/zoneinfo/Africa/Banjul trunk/matplotlib/lib/pytz/zoneinfo/Africa/Bissau trunk/matplotlib/lib/pytz/zoneinfo/Africa/Blantyre trunk/matplotlib/lib/pytz/zoneinfo/Africa/Brazzaville trunk/matplotlib/lib/pytz/zoneinfo/Africa/Bujumbura trunk/matplotlib/lib/pytz/zoneinfo/Africa/Cairo trunk/matplotlib/lib/pytz/zoneinfo/Africa/Casablanca trunk/matplotlib/lib/pytz/zoneinfo/Africa/Ceuta trunk/matplotlib/lib/pytz/zoneinfo/Africa/Conakry trunk/matplotlib/lib/pytz/zoneinfo/Africa/Dakar trunk/matplotlib/lib/pytz/zoneinfo/Africa/Dar_es_Salaam trunk/matplotlib/lib/pytz/zoneinfo/Africa/Djibouti trunk/matplotlib/lib/pytz/zoneinfo/Africa/Douala trunk/matplotlib/lib/pytz/zoneinfo/Africa/El_Aaiun trunk/matplotlib/lib/pytz/zoneinfo/Africa/Freetown trunk/matplotlib/lib/pytz/zoneinfo/Africa/Gaborone trunk/matplotlib/lib/pytz/zoneinfo/Africa/Harare trunk/matplotlib/lib/pytz/zoneinfo/Africa/Johannesburg trunk/matplotlib/lib/pytz/zoneinfo/Africa/Kampala trunk/matplotlib/lib/pytz/zoneinfo/Africa/Khartoum trunk/matplotlib/lib/pytz/zoneinfo/Africa/Kigali trunk/matplotlib/lib/pytz/zoneinfo/Africa/Kinshasa trunk/matplotlib/lib/pytz/zoneinfo/Africa/Lagos trunk/matplotlib/lib/pytz/zoneinfo/Africa/Libreville trunk/matplotlib/lib/pytz/zoneinfo/Africa/Lome trunk/matplotlib/lib/pytz/zoneinfo/Africa/Luanda trunk/matplotlib/lib/pytz/zoneinfo/Africa/Lubumbashi trunk/matplotlib/lib/pytz/zoneinfo/Africa/Lusaka trunk/matplotlib/lib/pytz/zoneinfo/Africa/Malabo trunk/matplotlib/lib/pytz/zoneinfo/Africa/Maputo trunk/matplotlib/lib/pytz/zoneinfo/Africa/Maseru trunk/matplotlib/lib/pytz/zoneinfo/Africa/Mbabane trunk/matplotlib/lib/pytz/zoneinfo/Africa/Mogadishu trunk/matplotlib/lib/pytz/zoneinfo/Africa/Monrovia trunk/matplotlib/lib/pytz/zoneinfo/Africa/Nairobi trunk/matplotlib/lib/pytz/zoneinfo/Africa/Ndjamena trunk/matplotlib/lib/pytz/zoneinfo/Africa/Niamey trunk/matplotlib/lib/pytz/zoneinfo/Africa/Nouakchott trunk/matplotlib/lib/pytz/zoneinfo/Africa/Ouagadougou trunk/matplotlib/lib/pytz/zoneinfo/Africa/Porto-Novo trunk/matplotlib/lib/pytz/zoneinfo/Africa/Sao_Tome trunk/matplotlib/lib/pytz/zoneinfo/Africa/Timbuktu trunk/matplotlib/lib/pytz/zoneinfo/Africa/Tripoli trunk/matplotlib/lib/pytz/zoneinfo/Africa/Tunis trunk/matplotlib/lib/pytz/zoneinfo/Africa/Windhoek trunk/matplotlib/lib/pytz/zoneinfo/America/ trunk/matplotlib/lib/pytz/zoneinfo/America/Adak trunk/matplotlib/lib/pytz/zoneinfo/America/Anchorage trunk/matplotlib/lib/pytz/zoneinfo/America/Anguilla trunk/matplotlib/lib/pytz/zoneinfo/America/Antigua trunk/matplotlib/lib/pytz/zoneinfo/America/Araguaina trunk/matplotlib/lib/pytz/zoneinfo/America/Argentina/ trunk/matplotlib/lib/pytz/zoneinfo/America/Argentina/Buenos_Aires trunk/matplotlib/lib/pytz/zoneinfo/America/Argentina/Catamarca trunk/matplotlib/lib/pytz/zoneinfo/America/Argentina/ComodRivadavia trunk/matplotlib/lib/pytz/zoneinfo/America/Argentina/Cordoba trunk/matplotlib/lib/pytz/zoneinfo/America/Argentina/Jujuy trunk/matplotlib/lib/pytz/zoneinfo/America/Argentina/La_Rioja trunk/matplotlib/lib/pytz/zoneinfo/America/Argentina/Mendoza trunk/matplotlib/lib/pytz/zoneinfo/America/Argentina/Rio_Gallegos trunk/matplotlib/lib/pytz/zoneinfo/America/Argentina/San_Juan trunk/matplotlib/lib/pytz/zoneinfo/America/Argentina/San_Luis trunk/matplotlib/lib/pytz/zoneinfo/America/Argentina/Tucuman trunk/matplotlib/lib/pytz/zoneinfo/America/Argentina/Ushuaia trunk/matplotlib/lib/pytz/zoneinfo/America/Aruba trunk/matplotlib/lib/pytz/zoneinfo/America/Asuncion trunk/matplotlib/lib/pytz/zoneinfo/America/Atikokan trunk/matplotlib/lib/pytz/zoneinfo/America/Atka trunk/matplotlib/lib/pytz/zoneinfo/America/Bahia trunk/matplotlib/lib/pytz/zoneinfo/America/Barbados trunk/matplotlib/lib/pytz/zoneinfo/America/Belem trunk/matplotlib/lib/pytz/zoneinfo/America/Belize trunk/matplotlib/lib/pytz/zoneinfo/America/Blanc-Sablon trunk/matplotlib/lib/pytz/zoneinfo/America/Boa_Vista trunk/matplotlib/lib/pytz/zoneinfo/America/Bogota trunk/matplotlib/lib/pytz/zoneinfo/America/Boise trunk/matplotlib/lib/pytz/zoneinfo/America/Buenos_Aires trunk/matplotlib/lib/pytz/zoneinfo/America/Cambridge_Bay trunk/matplotlib/lib/pytz/zoneinfo/America/Campo_Grande trunk/matplotlib/lib/pytz/zoneinfo/America/Cancun trunk/matplotlib/lib/pytz/zoneinfo/America/Caracas trunk/matplotlib/lib/pytz/zoneinfo/America/Catamarca trunk/matplotlib/lib/pytz/zoneinfo/America/Cayenne trunk/matplotlib/lib/pytz/zoneinfo/America/Cayman trunk/matplotlib/lib/pytz/zoneinfo/America/Chicago trunk/matplotlib/lib/pytz/zoneinfo/America/Chihuahua trunk/matplotlib/lib/pytz/zoneinfo/America/Coral_Harbour trunk/matplotlib/lib/pytz/zoneinfo/America/Cordoba trunk/matplotlib/lib/pytz/zoneinfo/America/Costa_Rica trunk/matplotlib/lib/pytz/zoneinfo/America/Cuiaba trunk/matplotlib/lib/pytz/zoneinfo/America/Curacao trunk/matplotlib/lib/pytz/zoneinfo/America/Danmarkshavn trunk/matplotlib/lib/pytz/zoneinfo/America/Dawson trunk/matplotlib/lib/pytz/zoneinfo/America/Dawson_Creek trunk/matplotlib/lib/pytz/zoneinfo/America/Denver trunk/matplotlib/lib/pytz/zoneinfo/America/Detroit trunk/matplotlib/lib/pytz/zoneinfo/America/Dominica trunk/matplotlib/lib/pytz/zoneinfo/America/Edmonton trunk/matplotlib/lib/pytz/zoneinfo/America/Eirunepe trunk/matplotlib/lib/pytz/zoneinfo/America/El_Salvador trunk/matplotlib/lib/pytz/zoneinfo/America/Ensenada trunk/matplotlib/lib/pytz/zoneinfo/America/Fort_Wayne trunk/matplotlib/lib/pytz/zoneinfo/America/Fortaleza trunk/matplotlib/lib/pytz/zoneinfo/America/Glace_Bay trunk/matplotlib/lib/pytz/zoneinfo/America/Godthab trunk/matplotlib/lib/pytz/zoneinfo/America/Goose_Bay trunk/matplotlib/lib/pytz/zoneinfo/America/Grand_Turk trunk/matplotlib/lib/pytz/zoneinfo/America/Grenada trunk/matplotlib/lib/pytz/zoneinfo/America/Guadeloupe trunk/matplotlib/lib/pytz/zoneinfo/America/Guatemala trunk/matplotlib/lib/pytz/zoneinfo/America/Guayaquil trunk/matplotlib/lib/pytz/zoneinfo/America/Guyana trunk/matplotlib/lib/pytz/zoneinfo/America/Halifax trunk/matplotlib/lib/pytz/zoneinfo/America/Havana trunk/matplotlib/lib/pytz/zoneinfo/America/Hermosillo trunk/matplotlib/lib/pytz/zoneinfo/America/Indiana/ trunk/matplotlib/lib/pytz/zoneinfo/America/Indiana/Indianapolis trunk/matplotlib/lib/pytz/zoneinfo/America/Indiana/Knox trunk/matplotlib/lib/pytz/zoneinfo/America/Indiana/Marengo trunk/matplotlib/lib/pytz/zoneinfo/America/Indiana/Petersburg trunk/matplotlib/lib/pytz/zoneinfo/America/Indiana/Tell_City trunk/matplotlib/lib/pytz/zoneinfo/America/Indiana/Vevay trunk/matplotlib/lib/pytz/zoneinfo/America/Indiana/Vincennes trunk/matplotlib/lib/pytz/zoneinfo/America/Indiana/Winamac trunk/matplotlib/lib/pytz/zoneinfo/America/Indianapolis trunk/matplotlib/lib/pytz/zoneinfo/America/Inuvik trunk/matplotlib/lib/pytz/zoneinfo/America/Iqaluit trunk/matplotlib/lib/pytz/zoneinfo/America/Jamaica trunk/matplotlib/lib/pytz/zoneinfo/America/Jujuy trunk/matplotlib/lib/pytz/zoneinfo/America/Juneau trunk/matplotlib/lib/pytz/zoneinfo/America/Kentucky/ trunk/matplotlib/lib/pytz/zoneinfo/America/Kentucky/Louisville trunk/matplotlib/lib/pytz/zoneinfo/America/Kentucky/Monticello trunk/matplotlib/lib/pytz/zoneinfo/America/Knox_IN trunk/matplotlib/lib/pytz/zoneinfo/America/La_Paz trunk/matplotlib/lib/pytz/zoneinfo/America/Lima trunk/matplotlib/lib/pytz/zoneinfo/America/Los_Angeles trunk/matplotlib/lib/pytz/zoneinfo/America/Louisville trunk/matplotlib/lib/pytz/zoneinfo/America/Maceio trunk/matplotlib/lib/pytz/zoneinfo/America/Managua trunk/matplotlib/lib/pytz/zoneinfo/America/Manaus trunk/matplotlib/lib/pytz/zoneinfo/America/Marigot trunk/matplotlib/lib/pytz/zoneinfo/America/Martinique trunk/matplotlib/lib/pytz/zoneinfo/America/Mazatlan trunk/matplotlib/lib/pytz/zoneinfo/America/Mendoza trunk/matplotlib/lib/pytz/zoneinfo/America/Menominee trunk/matplotlib/lib/pytz/zoneinfo/America/Merida trunk/matplotlib/lib/pytz/zoneinfo/America/Mexico_City trunk/matplotlib/lib/pytz/zoneinfo/America/Miquelon trunk/matplotlib/lib/pytz/zoneinfo/America/Moncton trunk/matplotlib/lib/pytz/zoneinfo/America/Monterrey trunk/matplotlib/lib/pytz/zoneinfo/America/Montevideo trunk/matplotlib/lib/pytz/zoneinfo/America/Montreal trunk/matplotlib/lib/pytz/zoneinfo/America/Montserrat trunk/matplotlib/lib/pytz/zoneinfo/America/Nassau trunk/matplotlib/lib/pytz/zoneinfo/America/New_York trunk/matplotlib/lib/pytz/zoneinfo/America/Nipigon trunk/matplotlib/lib/pytz/zoneinfo/America/Nome trunk/matplotlib/lib/pytz/zoneinfo/America/Noronha trunk/matplotlib/lib/pytz/zoneinfo/America/North_Dakota/ trunk/matplotlib/lib/pytz/zoneinfo/America/North_Dakota/Center trunk/matplotlib/lib/pytz/zoneinfo/America/North_Dakota/New_Salem trunk/matplotlib/lib/pytz/zoneinfo/America/Panama trunk/matplotlib/lib/pytz/zoneinfo/America/Pangnirtung trunk/matplotlib/lib/pytz/zoneinfo/America/Paramaribo trunk/matplotlib/lib/pytz/zoneinfo/America/Phoenix trunk/matplotlib/lib/pytz/zoneinfo/America/Port-au-Prince trunk/matplotlib/lib/pytz/zoneinfo/America/Port_of_Spain trunk/matplotlib/lib/pytz/zoneinfo/America/Porto_Acre trunk/matplotlib/lib/pytz/zoneinfo/America/Porto_Velho trunk/matplotlib/lib/pytz/zoneinfo/America/Puerto_Rico trunk/matplotlib/lib/pytz/zoneinfo/America/Rainy_River trunk/matplotlib/lib/pytz/zoneinfo/America/Rankin_Inlet trunk/matplotlib/lib/pytz/zoneinfo/America/Recife trunk/matplotlib/lib/pytz/zoneinfo/America/Regina trunk/matplotlib/lib/pytz/zoneinfo/America/Resolute trunk/matplotlib/lib/pytz/zoneinfo/America/Rio_Branco trunk/matplotlib/lib/pytz/zoneinfo/America/Rosario trunk/matplotlib/lib/pytz/zoneinfo/America/Santiago trunk/matplotlib/lib/pytz/zoneinfo/America/Santo_Domingo trunk/matplotlib/lib/pytz/zoneinfo/America/Sao_Paulo trunk/matplotlib/lib/pytz/zoneinfo/America/Scoresbysund trunk/matplotlib/lib/pytz/zoneinfo/America/Shiprock trunk/matplotlib/lib/pytz/zoneinfo/America/St_Barthelemy trunk/matplotlib/lib/pytz/zoneinfo/America/St_Johns trunk/matplotlib/lib/pytz/zoneinfo/America/St_Kitts trunk/matplotlib/lib/pytz/zoneinfo/America/St_Lucia trunk/matplotlib/lib/pytz/zoneinfo/America/St_Thomas trunk/matplotlib/lib/pytz/zoneinfo/America/St_Vincent trunk/matplotlib/lib/pytz/zoneinfo/America/Swift_Current trunk/matplotlib/lib/pytz/zoneinfo/America/Tegucigalpa trunk/matplotlib/lib/pytz/zoneinfo/America/Thule trunk/matplotlib/lib/pytz/zoneinfo/America/Thunder_Bay trunk/matplotlib/lib/pytz/zoneinfo/America/Tijuana trunk/matplotlib/lib/pytz/zoneinfo/America/Toronto trunk/matplotlib/lib/pytz/zoneinfo/America/Tortola trunk/matplotlib/lib/pytz/zoneinfo/America/Vancouver trunk/matplotlib/lib/pytz/zoneinfo/America/Virgin trunk/matplotlib/lib/pytz/zoneinfo/America/Whitehorse trunk/matplotlib/lib/pytz/zoneinfo/America/Winnipeg trunk/matplotlib/lib/pytz/zoneinfo/America/Yakutat trunk/matplotlib/lib/pytz/zoneinfo/America/Yellowknife trunk/matplotlib/lib/pytz/zoneinfo/Antarctica/ trunk/matplotlib/lib/pytz/zoneinfo/Antarctica/Casey trunk/matplotlib/lib/pytz/zoneinfo/Antarctica/Davis trunk/matplotlib/lib/pytz/zoneinfo/Antarctica/DumontDUrville trunk/matplotlib/lib/pytz/zoneinfo/Antarctica/Mawson trunk/matplotlib/lib/pytz/zoneinfo/Antarctica/McMurdo trunk/matplotlib/lib/pytz/zoneinfo/Antarctica/Palmer trunk/matplotlib/lib/pytz/zoneinfo/Antarctica/Rothera trunk/matplotlib/lib/pytz/zoneinfo/Antarctica/South_Pole trunk/matplotlib/lib/pytz/zoneinfo/Antarctica/Syowa trunk/matplotlib/lib/pytz/zoneinfo/Antarctica/Vostok trunk/matplotlib/lib/pytz/zoneinfo/Arctic/ trunk/matplotlib/lib/pytz/zoneinfo/Arctic/Longyearbyen trunk/matplotlib/lib/pytz/zoneinfo/Asia/ trunk/matplotlib/lib/pytz/zoneinfo/Asia/Aden trunk/matplotlib/lib/pytz/zoneinfo/Asia/Almaty trunk/matplotlib/lib/pytz/zoneinfo/Asia/Amman trunk/matplotlib/lib/pytz/zoneinfo/Asia/Anadyr trunk/matplotlib/lib/pytz/zoneinfo/Asia/Aqtau trunk/matplotlib/lib/pytz/zoneinfo/Asia/Aqtobe trunk/matplotlib/lib/pytz/zoneinfo/Asia/Ashgabat trunk/matplotlib/lib/pytz/zoneinfo/Asia/Ashkhabad trunk/matplotlib/lib/pytz/zoneinfo/Asia/Baghdad trunk/matplotlib/lib/pytz/zoneinfo/Asia/Bahrain trunk/matplotlib/lib/pytz/zoneinfo/Asia/Baku trunk/matplotlib/lib/pytz/zoneinfo/Asia/Bangkok trunk/matplotlib/lib/pytz/zoneinfo/Asia/Beirut trunk/matplotlib/lib/pytz/zoneinfo/Asia/Bishkek trunk/matplotlib/lib/pytz/zoneinfo/Asia/Brunei trunk/matplotlib/lib/pytz/zoneinfo/Asia/Calcutta trunk/matplotlib/lib/pytz/zoneinfo/Asia/Choibalsan trunk/matplotlib/lib/pytz/zoneinfo/Asia/Chongqing trunk/matplotlib/lib/pytz/zoneinfo/Asia/Chungking trunk/matplotlib/lib/pytz/zoneinfo/Asia/Colombo trunk/matplotlib/lib/pytz/zoneinfo/Asia/Dacca trunk/matplotlib/lib/pytz/zoneinfo/Asia/Damascus trunk/matplotlib/lib/pytz/zoneinfo/Asia/Dhaka trunk/matplotlib/lib/pytz/zoneinfo/Asia/Dili trunk/matplotlib/lib/pytz/zoneinfo/Asia/Dubai trunk/matplotlib/lib/pytz/zoneinfo/Asia/Dushanbe trunk/matplotlib/lib/pytz/zoneinfo/Asia/Gaza trunk/matplotlib/lib/pytz/zoneinfo/Asia/Harbin trunk/matplotlib/lib/pytz/zoneinfo/Asia/Ho_Chi_Minh trunk/matplotlib/lib/pytz/zoneinfo/Asia/Hong_Kong trunk/matplotlib/lib/pytz/zoneinfo/Asia/Hovd trunk/matplotlib/lib/pytz/zoneinfo/Asia/Irkutsk trunk/matplotlib/lib/pytz/zoneinfo/Asia/Istanbul trunk/matplotlib/lib/pytz/zoneinfo/Asia/Jakarta trunk/matplotlib/lib/pytz/zoneinfo/Asia/Jayapura trunk/matplotlib/lib/pytz/zoneinfo/Asia/Jerusalem trunk/matplotlib/lib/pytz/zoneinfo/Asia/Kabul trunk/matplotlib/lib/pytz/zoneinfo/Asia/Kamchatka trunk/matplotlib/lib/pytz/zoneinfo/Asia/Karachi trunk/matplotlib/lib/pytz/zoneinfo/Asia/Kashgar trunk/matplotlib/lib/pytz/zoneinfo/Asia/Katmandu trunk/matplotlib/lib/pytz/zoneinfo/Asia/Kolkata trunk/matplotlib/lib/pytz/zoneinfo/Asia/Krasnoyarsk trunk/matplotlib/lib/pytz/zoneinfo/Asia/Kuala_Lumpur trunk/matplotlib/lib/pytz/zoneinfo/Asia/Kuching trunk/matplotlib/lib/pytz/zoneinfo/Asia/Kuwait trunk/matplotlib/lib/pytz/zoneinfo/Asia/Macao trunk/matplotlib/lib/pytz/zoneinfo/Asia/Macau trunk/matplotlib/lib/pytz/zoneinfo/Asia/Magadan trunk/matplotlib/lib/pytz/zoneinfo/Asia/Makassar trunk/matplotlib/lib/pytz/zoneinfo/Asia/Manila trunk/matplotlib/lib/pytz/zoneinfo/Asia/Muscat trunk/matplotlib/lib/pytz/zoneinfo/Asia/Nicosia trunk/matplotlib/lib/pytz/zoneinfo/Asia/Novosibirsk trunk/matplotlib/lib/pytz/zoneinfo/Asia/Omsk trunk/matplotlib/lib/pytz/zoneinfo/Asia/Oral trunk/matplotlib/lib/pytz/zoneinfo/Asia/Phnom_Penh trunk/matplotlib/lib/pytz/zoneinfo/Asia/Pontianak trunk/matplotlib/lib/pytz/zoneinfo/Asia/Pyongyang trunk/matplotlib/lib/pytz/zoneinfo/Asia/Qatar trunk/matplotlib/lib/pytz/zoneinfo/Asia/Qyzylorda trunk/matplotlib/lib/pytz/zoneinfo/Asia/Rangoon trunk/matplotlib/lib/pytz/zoneinfo/Asia/Riyadh trunk/matplotlib/lib/pytz/zoneinfo/Asia/Riyadh87 trunk/matplotlib/lib/pytz/zoneinfo/Asia/Riyadh88 trunk/matplotlib/lib/pytz/zoneinfo/Asia/Riyadh89 trunk/matplotlib/lib/pytz/zoneinfo/Asia/Saigon trunk/matplotlib/lib/pytz/zoneinfo/Asia/Sakhalin trunk/matplotlib/lib/pytz/zoneinfo/Asia/Samarkand trunk/matplotlib/lib/pytz/zoneinfo/Asia/Seoul trunk/matplotlib/lib/pytz/zoneinfo/Asia/Shanghai trunk/matplotlib/lib/pytz/zoneinfo/Asia/Singapore trunk/matplotlib/lib/pytz/zoneinfo/Asia/Taipei trunk/matplotlib/lib/pytz/zoneinfo/Asia/Tashkent trunk/matplotlib/lib/pytz/zoneinfo/Asia/Tbilisi trunk/matplotlib/lib/pytz/zoneinfo/Asia/Tehran trunk/matplotlib/lib/pytz/zoneinfo/Asia/Tel_Aviv trunk/matplotlib/lib/pytz/zoneinfo/Asia/Thimbu trunk/matplotlib/lib/pytz/zoneinfo/Asia/Thimphu trunk/matplotlib/lib/pytz/zoneinfo/Asia/Tokyo trunk/matplotlib/lib/pytz/zoneinfo/Asia/Ujung_Pandang trunk/matplotlib/lib/pytz/zoneinfo/Asia/Ulaanbaatar trunk/matplotlib/lib/pytz/zoneinfo/Asia/Ulan_Bator trunk/matplotlib/lib/pytz/zoneinfo/Asia/Urumqi trunk/matplotlib/lib/pytz/zoneinfo/Asia/Vientiane trunk/matplotlib/lib/pytz/zoneinfo/Asia/Vladivostok trunk/matplotlib/lib/pytz/zoneinfo/Asia/Yakutsk trunk/matplotlib/lib/pytz/zoneinfo/Asia/Yekaterinburg trunk/matplotlib/lib/pytz/zoneinfo/Asia/Yerevan trunk/matplotlib/lib/pytz/zoneinfo/Atlantic/ trunk/matplotlib/lib/pytz/zoneinfo/Atlantic/Azores trunk/matplotlib/lib/pytz/zoneinfo/Atlantic/Bermuda trunk/matplotlib/lib/pytz/zoneinfo/Atlantic/Canary trunk/matplotlib/lib/pytz/zoneinfo/Atlantic/Cape_Verde trunk/matplotlib/lib/pytz/zoneinfo/Atlantic/Faeroe trunk/matplotlib/lib/pytz/zoneinfo/Atlantic/Faroe trunk/matplotlib/lib/pytz/zoneinfo/Atlantic/Jan_Mayen trunk/matplotlib/lib/pytz/zoneinfo/Atlantic/Madeira trunk/matplotlib/lib/pytz/zoneinfo/Atlantic/Reykjavik trunk/matplotlib/lib/pytz/zoneinfo/Atlantic/South_Georgia trunk/matplotlib/lib/pytz/zoneinfo/Atlantic/St_Helena trunk/matplotlib/lib/pytz/zoneinfo/Atlantic/Stanley trunk/matplotlib/lib/pytz/zoneinfo/Australia/ trunk/matplotlib/lib/pytz/zoneinfo/Australia/ACT trunk/matplotlib/lib/pytz/zoneinfo/Australia/Adelaide trunk/matplotlib/lib/pytz/zoneinfo/Australia/Brisbane trunk/matplotlib/lib/pytz/zoneinfo/Australia/Broken_Hill trunk/matplotlib/lib/pytz/zoneinfo/Australia/Canberra trunk/matplotlib/lib/pytz/zoneinfo/Australia/Currie trunk/matplotlib/lib/pytz/zoneinfo/Australia/Darwin trunk/matplotlib/lib/pytz/zoneinfo/Australia/Eucla trunk/matplotlib/lib/pytz/zoneinfo/Australia/Hobart trunk/matplotlib/lib/pytz/zoneinfo/Australia/LHI trunk/matplotlib/lib/pytz/zoneinfo/Australia/Lindeman trunk/matplotlib/lib/pytz/zoneinfo/Australia/Lord_Howe trunk/matplotlib/lib/pytz/zoneinfo/Australia/Melbourne trunk/matplotlib/lib/pytz/zoneinfo/Australia/NSW trunk/matplotlib/lib/pytz/zoneinfo/Australia/North trunk/matplotlib/lib/pytz/zoneinfo/Australia/Perth trunk/matplotlib/lib/pytz/zoneinfo/Australia/Queensland trunk/matplotlib/lib/pytz/zoneinfo/Australia/South trunk/matplotlib/lib/pytz/zoneinfo/Australia/Sydney trunk/matplotlib/lib/pytz/zoneinfo/Australia/Tasmania trunk/matplotlib/lib/pytz/zoneinfo/Australia/Victoria trunk/matplotlib/lib/pytz/zoneinfo/Australia/West trunk/matplotlib/lib/pytz/zoneinfo/Australia/Yancowinna trunk/matplotlib/lib/pytz/zoneinfo/Brazil/ trunk/matplotlib/lib/pytz/zoneinfo/Brazil/Acre trunk/matplotlib/lib/pytz/zoneinfo/Brazil/DeNoronha trunk/matplotlib/lib/pytz/zoneinfo/Brazil/East trunk/matplotlib/lib/pytz/zoneinfo/Brazil/West trunk/matplotlib/lib/pytz/zoneinfo/CET trunk/matplotlib/lib/pytz/zoneinfo/CST6CDT trunk/matplotlib/lib/pytz/zoneinfo/Canada/ trunk/matplotlib/lib/pytz/zoneinfo/Canada/Atlantic trunk/matplotlib/lib/pytz/zoneinfo/Canada/Central trunk/matplotlib/lib/pytz/zoneinfo/Canada/East-Saskatchewan trunk/matplotlib/lib/pytz/zoneinfo/Canada/Eastern trunk/matplotlib/lib/pytz/zoneinfo/Canada/Mountain trunk/matplotlib/lib/pytz/zoneinfo/Canada/Newfoundland trunk/matplotlib/lib/pytz/zoneinfo/Canada/Pacific trunk/matplotlib/lib/pytz/zoneinfo/Canada/Saskatchewan trunk/matplotlib/lib/pytz/zoneinfo/Canada/Yukon trunk/matplotlib/lib/pytz/zoneinfo/Chile/ trunk/matplotlib/lib/pytz/zoneinfo/Chile/Continental trunk/matplotlib/lib/pytz/zoneinfo/Chile/EasterIsland trunk/matplotlib/lib/pytz/zoneinfo/Cuba trunk/matplotlib/lib/pytz/zoneinfo/EET trunk/matplotlib/lib/pytz/zoneinfo/EST trunk/matplotlib/lib/pytz/zoneinfo/EST5EDT trunk/matplotlib/lib/pytz/zoneinfo/Egypt trunk/matplotlib/lib/pytz/zoneinfo/Eire trunk/matplotlib/lib/pytz/zoneinfo/Etc/ trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT+0 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT+1 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT+10 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT+11 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT+12 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT+2 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT+3 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT+4 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT+5 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT+6 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT+7 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT+8 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT+9 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT-0 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT-1 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT-10 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT-11 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT-12 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT-13 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT-14 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT-2 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT-3 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT-4 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT-5 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT-6 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT-7 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT-8 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT-9 trunk/matplotlib/lib/pytz/zoneinfo/Etc/GMT0 trunk/matplotlib/lib/pytz/zoneinfo/Etc/Greenwich trunk/matplotlib/lib/pytz/zoneinfo/Etc/UCT trunk/matplotlib/lib/pytz/zoneinfo/Etc/UTC trunk/matplotlib/lib/pytz/zoneinfo/Etc/Universal trunk/matplotlib/lib/pytz/zoneinfo/Etc/Zulu trunk/matplotlib/lib/pytz/zoneinfo/Europe/ trunk/matplotlib/lib/pytz/zoneinfo/Europe/Amsterdam trunk/matplotlib/lib/pytz/zoneinfo/Europe/Andorra trunk/matplotlib/lib/pytz/zoneinfo/Europe/Athens trunk/matplotlib/lib/pytz/zoneinfo/Europe/Belfast trunk/matplotlib/lib/pytz/zoneinfo/Europe/Belgrade trunk/matplotlib/lib/pytz/zoneinfo/Europe/Berlin trunk/matplotlib/lib/pytz/zoneinfo/Europe/Bratislava trunk/matplotlib/lib/pytz/zoneinfo/Europe/Brussels trunk/matplotlib/lib/pytz/zoneinfo/Europe/Bucharest trunk/matplotlib/lib/pytz/zoneinfo/Europe/Budapest trunk/matplotlib/lib/pytz/zoneinfo/Europe/Chisinau trunk/matplotlib/lib/pytz/zoneinfo/Europe/Copenhagen trunk/matplotlib/lib/pytz/zoneinfo/Europe/Dublin trunk/matplotlib/lib/pytz/zoneinfo/Europe/Gibraltar trunk/matplotlib/lib/pytz/zoneinfo/Europe/Guernsey trunk/matplotlib/lib/pytz/zoneinfo/Europe/Helsinki trunk/matplotlib/lib/pytz/zoneinfo/Europe/Isle_of_Man trunk/matplotlib/lib/pytz/zoneinfo/Europe/Istanbul trunk/matplotlib/lib/pytz/zoneinfo/Europe/Jersey trunk/matplotlib/lib/pytz/zoneinfo/Europe/Kaliningrad trunk/matplotlib/lib/pytz/zoneinfo/Europe/Kiev trunk/matplotlib/lib/pytz/zoneinfo/Europe/Lisbon trunk/matplotlib/lib/pytz/zoneinfo/Europe/Ljubljana trunk/matplotlib/lib/pytz/zoneinfo/Europe/London trunk/matplotlib/lib/pytz/zoneinfo/Europe/Luxembourg trunk/matplotlib/lib/pytz/zoneinfo/Europe/Madrid trunk/matplotlib/lib/pytz/zoneinfo/Europe/Malta trunk/matplotlib/lib/pytz/zoneinfo/Europe/Mariehamn trunk/matplotlib/lib/pytz/zoneinfo/Europe/Minsk trunk/matplotlib/lib/pytz/zoneinfo/Europe/Monaco trunk/matplotlib/lib/pytz/zoneinfo/Europe/Moscow trunk/matplotlib/lib/pytz/zoneinfo/Europe/Nicosia trunk/matplotlib/lib/pytz/zoneinfo/Europe/Oslo trunk/matplotlib/lib/pytz/zoneinfo/Europe/Paris trunk/matplotlib/lib/pytz/zoneinfo/Europe/Podgorica trunk/matplotlib/lib/pytz/zoneinfo/Europe/Prague trunk/matplotlib/lib/pytz/zoneinfo/Europe/Riga trunk/matplotlib/lib/pytz/zoneinfo/Europe/Rome trunk/matplotlib/lib/pytz/zoneinfo/Europe/Samara trunk/matplotlib/lib/pytz/zoneinfo/Europe/San_Marino trunk/matplotlib/lib/pytz/zoneinfo/Europe/Sarajevo trunk/matplotlib/lib/pytz/zoneinfo/Europe/Simferopol trunk/matplotlib/lib/pytz/zoneinfo/Europe/Skopje trunk/matplotlib/lib/pytz/zoneinfo/Europe/Sofia trunk/matplotlib/lib/pytz/zoneinfo/Europe/Stockholm trunk/matplotlib/lib/pytz/zoneinfo/Europe/Tallinn trunk/matplotlib/lib/pytz/zoneinfo/Europe/Tirane trunk/matplotlib/lib/pytz/zoneinfo/Europe/Tiraspol trunk/matplotlib/lib/pytz/zoneinfo/Europe/Uzhgorod trunk/matplotlib/lib/pytz/zoneinfo/Europe/Vaduz trunk/matplotlib/lib/pytz/zoneinfo/Europe/Vatican trunk/matplotlib/lib/pytz/zoneinfo/Europe/Vienna trunk/matplotlib/lib/pytz/zoneinfo/Europe/Vilnius trunk/matplotlib/lib/pytz/zoneinfo/Europe/Volgograd trunk/matplotlib/lib/pytz/zoneinfo/Europe/Warsaw trunk/matplotlib/lib/pytz/zoneinfo/Europe/Zagreb trunk/matplotlib/lib/pytz/zoneinfo/Europe/Zaporozhye trunk/matplotlib/lib/pytz/zoneinfo/Europe/Zurich trunk/matplotlib/lib/pytz/zoneinfo/Factory trunk/matplotlib/lib/pytz/zoneinfo/GB trunk/matplotlib/lib/pytz/zoneinfo/GB-Eire trunk/matplotlib/lib/pytz/zoneinfo/GMT trunk/matplotlib/lib/pytz/zoneinfo/GMT+0 trunk/matplotlib/lib/pytz/zoneinfo/GMT-0 trunk/matplotlib/lib/pytz/zoneinfo/GMT0 trunk/matplotlib/lib/pytz/zoneinfo/Greenwich trunk/matplotlib/lib/pytz/zoneinfo/HST trunk/matplotlib/lib/pytz/zoneinfo/Hongkong trunk/matplotlib/lib/pytz/zoneinfo/Iceland trunk/matplotlib/lib/pytz/zoneinfo/Indian/ trunk/matplotlib/lib/pytz/zoneinfo/Indian/Antananarivo trunk/matplotlib/lib/pytz/zoneinfo/Indian/Chagos trunk/matplotlib/lib/pytz/zoneinfo/Indian/Christmas trunk/matplotlib/lib/pytz/zoneinfo/Indian/Cocos trunk/matplotlib/lib/pytz/zoneinfo/Indian/Comoro trunk/matplotlib/lib/pytz/zoneinfo/Indian/Kerguelen trunk/matplotlib/lib/pytz/zoneinfo/Indian/Mahe trunk/matplotlib/lib/pytz/zoneinfo/Indian/Maldives trunk/matplotlib/lib/pytz/zoneinfo/Indian/Mauritius trunk/matplotlib/lib/pytz/zoneinfo/Indian/Mayotte trunk/matplotlib/lib/pytz/zoneinfo/Indian/Reunion trunk/matplotlib/lib/pytz/zoneinfo/Iran trunk/matplotlib/lib/pytz/zoneinfo/Israel trunk/matplotlib/lib/pytz/zoneinfo/Jamaica trunk/matplotlib/lib/pytz/zoneinfo/Japan trunk/matplotlib/lib/pytz/zoneinfo/Kwajalein trunk/matplotlib/lib/pytz/zoneinfo/Libya trunk/matplotlib/lib/pytz/zoneinfo/MET trunk/matplotlib/lib/pytz/zoneinfo/MST trunk/matplotlib/lib/pytz/zoneinfo/MST7MDT trunk/matplotlib/lib/pytz/zoneinfo/Mexico/ trunk/matplotlib/lib/pytz/zoneinfo/Mexico/BajaNorte trunk/matplotlib/lib/pytz/zoneinfo/Mexico/BajaSur trunk/matplotlib/lib/pytz/zoneinfo/Mexico/General trunk/matplotlib/lib/pytz/zoneinfo/Mideast/ trunk/matplotlib/lib/pytz/zoneinfo/Mideast/Riyadh87 trunk/matplotlib/lib/pytz/zoneinfo/Mideast/Riyadh88 trunk/matplotlib/lib/pytz/zoneinfo/Mideast/Riyadh89 trunk/matplotlib/lib/pytz/zoneinfo/NZ trunk/matplotlib/lib/pytz/zoneinfo/NZ-CHAT trunk/matplotlib/lib/pytz/zoneinfo/Navajo trunk/matplotlib/lib/pytz/zoneinfo/PRC trunk/matplotlib/lib/pytz/zoneinfo/PST8PDT trunk/matplotlib/lib/pytz/zoneinfo/Pacific/ trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Apia trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Auckland trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Chatham trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Easter trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Efate trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Enderbury trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Fakaofo trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Fiji trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Funafuti trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Galapagos trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Gambier trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Guadalcanal trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Guam trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Honolulu trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Johnston trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Kiritimati trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Kosrae trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Kwajalein trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Majuro trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Marquesas trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Midway trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Nauru trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Niue trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Norfolk trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Noumea trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Pago_Pago trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Palau trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Pitcairn trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Ponape trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Port_Moresby trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Rarotonga trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Saipan trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Samoa trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Tahiti trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Tarawa trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Tongatapu trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Truk trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Wake trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Wallis trunk/matplotlib/lib/pytz/zoneinfo/Pacific/Yap trunk/matplotlib/lib/pytz/zoneinfo/Poland trunk/matplotlib/lib/pytz/zoneinfo/Portugal trunk/matplotlib/lib/pytz/zoneinfo/ROC trunk/matplotlib/lib/pytz/zoneinfo/ROK trunk/matplotlib/lib/pytz/zoneinfo/Singapore trunk/matplotlib/lib/pytz/zoneinfo/Turkey trunk/matplotlib/lib/pytz/zoneinfo/UCT trunk/matplotlib/lib/pytz/zoneinfo/US/ trunk/matplotlib/lib/pytz/zoneinfo/US/Alaska trunk/matplotlib/lib/pytz/zoneinfo/US/Aleutian trunk/matplotlib/lib/pytz/zoneinfo/US/Arizona trunk/matplotlib/lib/pytz/zoneinfo/US/Central trunk/matplotlib/lib/pytz/zoneinfo/US/East-Indiana trunk/matplotlib/lib/pytz/zoneinfo/US/Eastern trunk/matplotlib/lib/pytz/zoneinfo/US/Hawaii trunk/matplotlib/lib/pytz/zoneinfo/US/Indiana-Starke trunk/matplotlib/lib/pytz/zoneinfo/US/Michigan trunk/matplotlib/lib/pytz/zoneinfo/US/Mountain trunk/matplotlib/lib/pytz/zoneinfo/US/Pacific trunk/matplotlib/lib/pytz/zoneinfo/US/Pacific-New trunk/matplotlib/lib/pytz/zoneinfo/US/Samoa trunk/matplotlib/lib/pytz/zoneinfo/UTC trunk/matplotlib/lib/pytz/zoneinfo/Universal trunk/matplotlib/lib/pytz/zoneinfo/W-SU trunk/matplotlib/lib/pytz/zoneinfo/WET trunk/matplotlib/lib/pytz/zoneinfo/Zulu trunk/matplotlib/lib/pytz/zoneinfo/iso3166.tab trunk/matplotlib/lib/pytz/zoneinfo/localtime trunk/matplotlib/lib/pytz/zoneinfo/posixrules trunk/matplotlib/lib/pytz/zoneinfo/zone.tab Removed Paths: ------------- trunk/matplotlib/lib/pytz_old/ Added: trunk/matplotlib/lib/pytz/__init__.py =================================================================== --- trunk/matplotlib/lib/pytz/__init__.py (rev 0) +++ trunk/matplotlib/lib/pytz/__init__.py 2008-09-18 20:20:55 UTC (rev 6108) @@ -0,0 +1,1405 @@ +''' +datetime.tzinfo timezone definitions generated from the +Olson timezone database: + + ftp://elsie.nci.nih.gov/pub/tz*.tar.gz + +See the datetime section of the Python Library Reference for information +on how to use these modules. +''' + +# The Olson database has historically been updated about 4 times a year +OLSON_VERSION = '2008c' +VERSION = OLSON_VERSION +#VERSION = OLSON_VERSION + '.2' +__version__ = OLSON_VERSION + +OLSEN_VERSION = OLSON_VERSION # Old releases had this misspelling + +__all__ = [ + 'timezone', 'utc', 'country_timezones', + 'AmbiguousTimeError', 'UnknownTimeZoneError', + 'all_timezones', 'all_timezones_set', + 'common_timezones', 'common_timezones_set', + ] + +import sys, datetime, os.path, gettext + +try: + from pkg_resources import resource_stream +except ImportError: + resource_stream = None + +from tzinfo import AmbiguousTimeError, unpickler +from tzfile import build_tzinfo + +# Use 2.3 sets module implementation if set builtin is not available +try: + set +except NameError: + from sets import Set as set + + +def open_resource(name): + """Open a resource from the zoneinfo subdir for reading. + + Uses the pkg_resources module if available. + """ + if resource_stream is not None: + return resource_stream(__name__, 'zoneinfo/' + name) + else: + name_parts = name.lstrip('/').split('/') + for part in name_parts: + if part == os.path.pardir or os.path.sep in part: + raise ValueError('Bad path segment: %r' % part) + filename = os.path.join(os.path.dirname(__file__), + 'zoneinfo', *name_parts) + return open(filename, 'rb') + + +# Enable this when we get some translations? +# We want an i18n API that is useful to programs using Python's gettext +# module, as well as the Zope3 i18n package. Perhaps we should just provide +# the POT file and translations, and leave it up to callers to make use +# of them. +# +# t = gettext.translation( +# 'pytz', os.path.join(os.path.dirname(__file__), 'locales'), +# fallback=True +# ) +# def _(timezone_name): +# """Translate a timezone name using the current locale, returning Unicode""" +# return t.ugettext(timezone_name) + + +class UnknownTimeZoneError(KeyError): + '''Exception raised when pytz is passed an unknown timezone. + + >>> isinstance(UnknownTimeZoneError(), LookupError) + True + + This class is actually a subclass of KeyError to provide backwards + compatibility with code relying on the undocumented behavior of earlier + pytz releases. + + >>> isinstance(UnknownTimeZoneError(), KeyError) + True + ''' + pass + + +_tzinfo_cache = {} + +def timezone(zone): + r''' Return a datetime.tzinfo implementation for the given timezone + + >>> from datetime import datetime, timedelta + >>> utc = timezone('UTC') + >>> eastern = timezone('US/Eastern') + >>> eastern.zone + 'US/Eastern' + >>> timezone(u'US/Eastern') is eastern + True + >>> utc_dt = datetime(2002, 10, 27, 6, 0, 0, tzinfo=utc) + >>> loc_dt = utc_dt.astimezone(eastern) + >>> fmt = '%Y-%m-%d %H:%M:%S %Z (%z)' + >>> loc_dt.strftime(fmt) + '2002-10-27 01:00:00 EST (-0500)' + >>> (loc_dt - timedelta(minutes=10)).strftime(fmt) + '2002-10-27 00:50:00 EST (-0500)' + >>> eastern.normalize(loc_dt - timedelta(minutes=10)).strftime(fmt) + '2002-10-27 01:50:00 EDT (-0400)' + >>> (loc_dt + timedelta(minutes=10)).strftime(fmt) + '2002-10-27 01:10:00 EST (-0500)' + + Raises UnknownTimeZoneError if passed an unknown zone. + + >>> timezone('Asia/Shangri-La') + Traceback (most recent call last): + ... + UnknownTimeZoneError: 'Asia/Shangri-La' + + >>> timezone(u'\N{TRADE MARK SIGN}') + Traceback (most recent call last): + ... + UnknownTimeZoneError: u'\u2122' + ''' + if zone.upper() == 'UTC': + return utc + + try: + zone = zone.encode('US-ASCII') + except UnicodeEncodeError: + # All valid timezones are ASCII + raise UnknownTimeZoneError(zone) + + zone = _unmunge_zone(zone) + if zone not in _tzinfo_cache: + if zone in all_timezones_set: + _tzinfo_cache[zone] = build_tzinfo(zone, open_resource(zone)) + else: + raise UnknownTimeZoneError(zone) + + return _tzinfo_cache[zone] + + +def _unmunge_zone(zone): + """Undo the time zone name munging done by older versions of pytz.""" + return zone.replace('_plus_', '+').replace('_minus_', '-') + + +ZERO = datetime.timedelta(0) +HOUR = datetime.timedelta(hours=1) + + +class UTC(datetime.tzinfo): + """UTC + + Identical to the reference UTC implementation given in Python docs except + that it unpickles using the single module global instance defined beneath + this class declaration. + + Also contains extra attributes and methods to match other pytz tzinfo + instances. + """ + zone = "UTC" + + def utcoffset(self, dt): + return ZERO + + def tzname(self, dt): + return "UTC" + + def dst(self, dt): + return ZERO + + def __reduce__(self): + return _UTC, () + + def localize(self, dt, is_dst=False): + '''Convert naive time to local time''' + if dt.tzinfo is not None: + raise ValueError, 'Not naive datetime (tzinfo is already set)' + return dt.replace(tzinfo=self) + + def normalize(self, dt, is_dst=False): + '''Correct the timezone information on the given datetime''' + if dt.tzinfo is None: + raise ValueError, 'Naive time - no tzinfo set' + return dt.replace(tzinfo=self) + + def __repr__(self): + return "<UTC>" + + def __str__(self): + return "UTC" + + +UTC = utc = UTC() # UTC is a singleton + + +def _UTC(): + """Factory function for utc unpickling. + + Makes sure that unpickling a utc instance always returns the same + module global. + + These examples belong in the UTC class above, but it is obscured; or in + the README.txt, but we are not depending on Python 2.4 so integrating + the README.txt examples with the unit tests is not trivial. + + >>> import datetime, pickle + >>> dt = datetime.datetime(2005, 3, 1, 14, 13, 21, tzinfo=utc) + >>> naive = dt.replace(tzinfo=None) + >>> p = pickle.dumps(dt, 1) + >>> naive_p = pickle.dumps(naive, 1) + >>> len(p), len(naive_p), len(p) - len(naive_p) + (60, 43, 17) + >>> new = pickle.loads(p) + >>> new == dt + True + >>> new is dt + False + >>> new.tzinfo is dt.tzinfo + True + >>> utc is UTC is timezone('UTC') + True + >>> utc is timezone('GMT') + False + """ + return utc +_UTC.__safe_for_unpickling__ = True + + +def _p(*args): + """Factory function for unpickling pytz tzinfo instances. + + Just a wrapper around tzinfo.unpickler to save a few bytes in each pickle + by shortening the path. + """ + return unpickler(*args) +_p.__safe_for_unpickling__ = True + +_country_timezones_cache = {} + +def country_timezones(iso3166_code): + """Return a list of timezones used in a particular country. + + iso3166_code is the two letter code used to identify the country. + + >>> country_timezones('ch') + ['Europe/Zurich'] + >>> country_timezones('CH') + ['Europe/Zurich'] + >>> country_timezones(u'ch') + ['Europe/Zurich'] + >>> country_timezones('XXX') + Traceback (most recent call last): + ... + KeyError: 'XXX' + """ + iso3166_code = iso3166_code.upper() + if not _country_timezones_cache: + zone_tab = open_resource('zone.tab') + for line in zone_tab: + if line.startswith('#'): + continue + code, coordinates, zone = line.split(None, 4)[:3] + try: + _country_timezones_cache[code].append(zone) + except KeyError: + _country_timezones_cache[code] = [zone] + return _country_timezones_cache[iso3166_code] + + +# Time-zone info based solely on fixed offsets + +class _FixedOffset(datetime.tzinfo): + + zone = None # to match the standard pytz API + + def __init__(self, minutes): + if abs(minutes) >= 1440: + raise ValueError("absolute offset is too large", minutes) + self._minutes = minutes + self._offset = datetime.timedelta(minutes=minutes) + + def utcoffset(self, dt): + return self._offset + + def __reduce__(self): + return FixedOffset, (self._minutes, ) + + def dst(self, dt): + return None + + def tzname(self, dt): + return None + + def __repr__(self): + return 'pytz.FixedOffset(%d)' % self._minutes + + def localize(self, dt, is_dst=False): + '''Convert naive time to local time''' + if dt.tzinfo is not None: + raise ValueError, 'Not naive datetime (tzinfo is already set)' + return dt.replace(tzinfo=self) + + def normalize(self, dt, is_dst=False): + '''Correct the timezone information on the given datetime''' + if dt.tzinfo is None: + raise ValueError, 'Naive time - no tzinfo set' + return dt.replace(tzinfo=self) + + +def FixedOffset(offset, _tzinfos = {}): + """return a fixed-offset timezone based off a number of minutes. + + >>> one = FixedOffset(-330) + >>> one + pytz.FixedOffset(-330) + >>> one.utcoffset(datetime.datetime.now()) + datetime.timedelta(-1, 66600) + + >>> two = FixedOffset(1380) + >>> two + pytz.FixedOffset(1380) + >>> two.utcoffset(datetime.datetime.now()) + datetime.timedelta(0, 82800) + + The datetime.timedelta must be between the range of -1 and 1 day, + non-inclusive. + + >>> FixedOffset(1440) + Traceback (most recent call last): + ... + ValueError: ('absolute offset is too large', 1440) + + >>> FixedOffset(-1440) + Traceback (most recent call last): + ... + ValueError: ('absolute offset is too large', -1440) + + An offset of 0 is special-cased to return UTC. + + >>> FixedOffset(0) is UTC + True + + There should always be only one instance of a FixedOffset per timedelta. + This should be true for multiple creation calls. + + >>> FixedOffset(-330) is one + True + >>> FixedOffset(1380) is two + True + + It should also be true for pickling. + + >>> import pickle + >>> pickle.loads(pickle.dumps(one)) is one + True + >>> pickle.loads(pickle.dumps(two)) is two + True + """ + if offset == 0: + return UTC + + info = _tzinfos.get(offset) + if info is None: + # We haven't seen this one before. we need to save it. + + # Use setdefault to avoid a race condition and make sure we have + # only one + info = _tzinfos.setdefault(offset, _FixedOffset(offset)) + + return info + +FixedOffset.__safe_for_unpickling__ = True + + +def _test(): + import doctest, os, sys + sys.path.insert(0, os.pardir) + import pytz + return doctest.testmod(pytz) + +if __name__ == '__main__': + _test() + +common_timezones = \ +['Africa/Abidjan', + 'Africa/Accra', + 'Africa/Addis_Ababa', + 'Africa/Algiers', + 'Africa/Asmara', + 'Africa/Asmera', + 'Africa/Bamako', + 'Africa/Bangui', + 'Africa/Banjul', + 'Africa/Bissau', + 'Africa/Blantyre', + 'Africa/Brazzaville', + 'Africa/Bujumbura', + 'Africa/Cairo', + 'Africa/Casablanca', + 'Africa/Ceuta', + 'Africa/Conakry', + 'Africa/Dakar', + 'Africa/Dar_es_Salaam', + 'Africa/Djibouti', + 'Africa/Douala', + 'Africa/El_Aaiun', + 'Africa/Freetown', + 'Africa/Gaborone', + 'Africa/Harare', + 'Africa/Johannesburg', + 'Africa/Kampala', + 'Africa/Khartoum', + 'Africa/Kigali', + 'Africa/Kinshasa', + 'Africa/Lagos', + 'Africa/Libreville', + 'Africa/Lome', + 'Africa/Luanda', + 'Africa/Lubumbashi', + 'Africa/Lusaka', + 'Africa/Malabo', + 'Africa/Maputo', + 'Africa/Maseru', + 'Africa/Mbabane', + 'Africa/Mogadishu', + 'Africa/Monrovia', + 'Africa/Nairobi', + 'Africa/Ndjamena', + 'Africa/Niamey', + 'Africa/Nouakchott', + 'Africa/Ouagadougou', + 'Africa/Porto-Novo', + 'Africa/Sao_Tome', + 'Africa/Timbuktu', + 'Africa/Tripoli', + 'Africa/Tunis', + 'Africa/Windhoek', + 'America/Adak', + 'America/Anchorage', + 'America/Anguilla', + 'America/Antigua', + 'America/Araguaina', + 'America/Aruba', + 'America/Asuncion', + 'America/Atikokan', + 'America/Atka', + 'America/Bahia', + 'America/Barbados', + 'America/Belem', + 'America/Belize', + 'America/Blanc-Sablon', + 'America/Boa_Vista', + 'America/Bogota', + 'America/Boise', + 'America/Buenos_Aires', + 'America/Cambridge_Bay', + 'America/Campo_Grande', + 'America/Cancun', + 'America/Caracas', + 'America/Catamarca', + 'America/Cayenne', + 'America/Cayman', + 'America/Chicago', + 'America/Chihuahua', + 'America/Coral_Harbour', + 'America/Cordoba', + 'America/Costa_Rica', + 'America/Cuiaba', + 'America/Curacao', + 'America/Danmarkshavn', + 'America/Dawson', + 'America/Dawson_Creek', + 'America/Denver', + 'America/Detroit', + 'America/Dominica', + 'America/Edmonton', + 'America/Eirunepe', + 'America/El_Salvador', + 'America/Ensenada', + 'America/Fort_Wayne', + 'America/Fortaleza', + 'America/Glace_Bay', + 'America/Godthab', + 'America/Goose_Bay', + 'America/Grand_Turk', + 'America/Grenada', + 'America/Guadeloupe', + 'America/Guatemala', + 'America/Guayaquil', + 'America/Guyana', + 'America/Halifax', + 'America/Havana', + 'America/Hermosillo', + 'America/Indianapolis', + 'America/Inuvik', + 'America/Iqaluit', + 'America/Jamaica', + 'America/Jujuy', + 'America/Juneau', + 'America/Knox_IN', + 'America/La_Paz', + 'America/Lima', + 'America/Los_Angeles', + 'America/Louisville', + 'America/Maceio', + 'America/Managua', + 'America/Manaus', + 'America/Marigot', + 'America/Martinique', + 'America/Mazatlan', + 'America/Mendoza', + 'America/Menominee', + 'America/Merida', + 'America/Mexico_City', + 'America/Miquelon', + 'America/Moncton', + 'America/Monterrey', + 'America/Montevideo', + 'America/Montreal', + 'America/Montserrat', + 'America/Nassau', + 'America/New_York', + 'America/Nipigon', + 'America/Nome', + 'America/Noronha', + 'America/Panama', + 'America/Pangnirtung', + 'America/Paramaribo', + 'America/Phoenix', + 'America/Port-au-Prince', + 'America/Port_of_Spain', + 'America/Porto_Acre', + 'America/Porto_Velho', + 'America/Puerto_Rico', + 'America/Rainy_River', + 'America/Rankin_Inlet', + 'America/Recife', + 'America/Regina', + 'America/Resolute', + 'America/Rio_Branco', + 'America/Rosario', + 'America/Santiago', + 'America/Santo_Domingo', + 'America/Sao_Paulo', + 'America/Scoresbysund', + 'America/Shiprock', + 'America/St_Barthelemy', + 'America/St_Johns', + 'America/St_Kitts', + 'America/St_Lucia', + 'America/St_Thomas', + 'America/St_Vincent', + 'America/Swift_Current', + 'America/Tegucigalpa', + 'America/Thule', + 'America/Thunder_Bay', + 'America/Tijuana', + 'America/Toronto', + 'America/Tortola', + 'America/Vancouver', + 'America/Virgin', + 'America/Whitehorse', + 'America/Winnipeg', + 'America/Yakutat', + 'America/Yellowknife', + 'Antarctica/Casey', + 'Antarctica/Davis', + 'Antarctica/DumontDUrville', + 'Antarctica/Mawson', + 'Antarctica/McMurdo', + 'Antarctica/Palmer', + 'Antarctica/Rothera', + 'Antarctica/South_Pole', + 'Antarctica/Syowa', + 'Antarctica/Vostok', + 'Arctic/Longyearbyen', + 'Asia/Aden', + 'Asia/Almaty', + 'Asia/Amman', + 'Asia/Anadyr', + 'Asia/Aqtau', + 'Asia/Aqtobe', + 'Asia/Ashgabat', + 'Asia/Ashkhabad', + 'Asia/Baghdad', + 'Asia/Bahrain', + 'Asia/Baku', + 'Asia/Bangkok', + 'Asia/Beirut', + 'Asia/Bishkek', + 'Asia/Brunei', + 'Asia/Calcutta', + 'Asia/Choibalsan', + 'Asia/Chongqing', + 'Asia/Chungking', + 'Asia/Colombo', + 'Asia/Dacca', + 'Asia/Damascus', + 'Asia/Dhaka', + 'Asia/Dili', + 'Asia/Dubai', + 'Asia/Dushanbe', + 'Asia/Gaza', + 'Asia/Harbin', + 'Asia/Ho_Chi_Minh', + 'Asia/Hong_Kong', + 'Asia/Hovd', + 'Asia/Irkutsk', + 'Asia/Istanbul', + 'Asia/Jakarta', + 'Asia/Jayapura', + 'Asia/Jerusalem', + 'Asia/Kabul', + 'Asia/Kamchatka', + 'Asia/Karachi', + 'Asia/Kashgar', + 'Asia/Katmandu', + 'Asia/Kolkata', + 'Asia/Krasnoyarsk', + 'Asia/Kuala_Lumpur', + 'Asia/Kuching', + 'Asia/Kuwait', + 'Asia/Macao', + 'Asia/Macau', + 'Asia/Magadan', + 'Asia/Makassar', + 'Asia/Manila', + 'Asia/Muscat', + 'Asia/Nicosia', + 'Asia/Novosibirsk', + 'Asia/Omsk', + 'Asia/Oral', + 'Asia/Phnom_Penh', + 'Asia/Pontianak', + 'Asia/Pyongyang', + 'Asia/Qatar', + 'Asia/Qyzylorda', + 'Asia/Rangoon', + 'Asia/Riyadh', + 'Asia/Saigon', + 'Asia/Sakhalin', + 'Asia/Samarkand', + 'Asia/Seoul', + 'Asia/Shanghai', + 'Asia/Singapore', + 'Asia/Taipei', + 'Asia/Tashkent', + 'Asia/Tbilisi', + 'Asia/Tehran', + 'Asia/Tel_Aviv', + 'Asia/Thimbu', + 'Asia/Thimphu', + 'Asia/Tokyo', + 'Asia/Ujung_Pandang', + 'Asia/Ulaanbaatar', + 'Asia/Ulan_Bator', + 'Asia/Urumqi', + 'Asia/Vientiane', + 'Asia/Vladivostok', + 'Asia/Yakutsk', + 'Asia/Yekaterinburg', + 'Asia/Yerevan', + 'Atlantic/Azores', + 'Atlantic/Bermuda', + 'Atlantic/Canary', + 'Atlantic/Cape_Verde', + 'Atlantic/Faeroe', + 'Atlantic/Faroe', + 'Atlantic/Jan_Mayen', + 'Atlantic/Madeira', + 'Atlantic/Reykjavik', + 'Atlantic/South_Georgia', + 'Atlantic/St_Helena', + 'Atlantic/Stanley', + 'Australia/ACT', + 'Australia/Adelaide', + 'Australia/Brisbane', + 'Australia/Broken_Hill', + 'Australia/Canberra', + 'Australia/Currie', + 'Australia/Darwin', + 'Australia/Eucla', + 'Australia/Hobart', + 'Australia/LHI', + 'Australia/Lindeman', + 'Australia/Lord_Howe', + 'Australia/Melbourne', + 'Australia/NSW', + 'Australia/North', + 'Australia/Perth', + 'Australia/Queensland', + 'Australia/South', + 'Australia/Sydney', + 'Australia/Tasmania', + 'Australia/Victoria', + 'Australia/West', + 'Australia/Yancowinna', + 'Brazil/Acre', + 'Brazil/DeNoronha', + 'Brazil/East', + 'Brazil/West', + 'Canada/Atlantic', + 'Canada/Central', + 'Canada/East-Saskatchewan', + 'Canada/Eastern', + 'Canada/Mountain', + 'Canada/Newfoundland', + 'Canada/Pacific', + 'Canada/Saskatchewan', + 'Canada/Yukon', + 'Chile/Continental', + 'Chile/EasterIsland', + 'Europe/Amsterdam', + 'Europe/Andorra', + 'Europe/Athens', + 'Europe/Belfast', + 'Europe/Belgrade', + 'Europe/Berlin', + 'Europe/Bratislava', + 'Europe/Brussels', + 'Europe/Bucharest', + 'Europe/Budapest', + 'Europe/Chisinau', + 'Europe/Copenhagen', + 'Europe/Dublin', + 'Europe/Gibraltar', + 'Europe/Guernsey', + 'Europe/Helsinki', + 'Europe/Isle_of_Man', + 'Europe/Istanbul', + 'Europe/Jersey', + 'Europe/Kaliningrad', + 'Europe/Kiev', + 'Europe/Lisbon', + 'Europe/Ljubljana', + 'Europe/London', + 'Europe/Luxembourg', + 'Europe/Madrid', + 'Europe/Malta', + 'Europe/Mariehamn', + 'Europe/Minsk', + 'Europe/Monaco', + 'Europe/Moscow', + 'Europe/Nicosia', + 'Europe/Oslo', + 'Europe/Paris', + 'Europe/Podgorica', + 'Europe/Prague', + 'Europe/Riga', + 'Europe/Rome', + 'Europe/Samara', + 'Europe/San_Marino', + 'Europe/Sarajevo', + 'Europe/Simferopol', + 'Europe/Skopje', + 'Europe/Sofia', + 'Europe/Stockholm', + 'Europe/Tallinn', + 'Europe/Tirane', + 'Europe/Tiraspol', + 'Europe/Uzhgorod', + 'Europe/Vaduz', + 'Europe/Vatican', + 'Europe/Vienna', + 'Europe/Vilnius', + 'Europe/Volgograd', + 'Europe/Warsaw', + 'Europe/Zagreb', + 'Europe/Zaporozhye', + 'Europe/Zurich', + 'GMT', + 'Indian/Antananarivo', + 'Indian/Chagos', + 'Indian/Christmas', + 'Indian/Cocos', + 'Indian/Comoro', + 'Indian/Kerguelen', + 'Indian/Mahe', + 'Indian/Maldives', + 'Indian/Mauritius', + 'Indian/Mayotte', + 'Indian/Reunion', + 'Mexico/BajaNorte', + 'Mexico/BajaSur', + 'Mexico/General', + 'Pacific/Apia', + 'Pacific/Auckland', + 'Pacific/Chatham', + 'Pacific/Easter', + 'Pacific/Efate', + 'Pacific/Enderbury', + 'Pacific/Fakaofo', + 'Pacific/Fiji', + 'Pacific/Funafuti', + 'Pacific/Galapagos', + 'Pacific/Gambier', + 'Pacific/Guadalcanal', + 'Pacific/Guam', + 'Pacific/Honolulu', + 'Pacific/Johnston', + 'Pacific/Kiritimati', + 'Pacific/Kosrae', + 'Pacific/Kwajalein', + 'Pacific/Majuro', + 'Pacific/Marquesas', + 'Pacific/Midway', + 'Pacific/Nauru', + 'Pacific/Niue', + 'Pacific/Norfolk', + 'Pacific/Noumea', + 'Pacific/Pago_Pago', + 'Pacific/Palau', + 'Pacific/Pitcairn', + 'Pacific/Ponape', + 'Pacific/Port_Moresby', + 'Pacific/Rarotonga', + 'Pacific/Saipan', + 'Pacific/Samoa', + 'Pacific/Tahiti', + 'Pacific/Tarawa', + 'Pacific/Tongatapu', + 'Pacific/Truk', + 'Pacific/Wake', + 'Pacific/Wallis', + 'Pacific/Yap', + 'US/Alaska', + 'US/Aleutian', + 'US/Arizona', + 'US/Central', + 'US/East-Indiana', + 'US/Eastern', + 'US/Hawaii', + 'US/Indiana-Starke', + 'US/Michigan', + 'US/Mountain', + 'US/Pacific', + 'US/Pacific-New', + 'US/Samoa', + 'UTC'] +common_timezones_set = set(common_timezones) + +all_timezones = \ +['Africa/Abidjan', + 'Africa/Accra', + 'Africa/Addis_Ababa', + 'Africa/Algiers', + 'Africa/Asmara', + 'Africa/Asmera', + 'Africa/Bamako', + 'Africa/Bangui', + 'Africa/Banjul', + 'Africa/Bissau', + 'Africa/Blantyre', + 'Africa/Brazzaville', + 'Africa/Bujumbura', + 'Africa/Cairo', + 'Africa/Casablanca', + 'Africa/Ceuta', + 'Africa/Conakry', + 'Africa/Dakar', + 'Africa/Dar_es_Salaam', + 'Africa/Djibouti', + 'Africa/Douala', + 'Africa/El_Aaiun', + 'Africa/Freetown', + 'Africa/Gaborone', + 'Africa/Harare', + 'Africa/Johannesburg', + 'Africa/Kampala', + 'Africa/Khartoum', + 'Africa/Kigali', + 'Africa/Kinshasa', + 'Africa/Lagos', + 'Africa/Libreville', + 'Africa/Lome', + 'Africa/Luanda', + 'Africa/Lubumbashi', + 'Africa/Lusaka', + 'Africa/Malabo', + 'Africa/Maputo', + 'Africa/Maseru', + 'Africa/Mbabane', + 'Africa/Mogadishu', + 'Africa/Monrovia', + 'Africa/Nairobi', + 'Africa/Ndjamena', + 'Africa/Niamey', + 'Africa/Nouakchott', + 'Africa/Ouagadougou', + 'Africa/Porto-Novo', + 'Africa/Sao_Tome', + 'Africa/Timbuktu', + 'Africa/Tripoli', + 'Africa/Tunis', + 'Africa/Windhoek', + 'America/Adak', + 'America/Anchorage', + 'America/Anguilla', + 'America/Antigua', + 'America/Araguaina', + 'America/Argentina/Buenos_Aires', + 'America/Argentina/Catamarca', + 'America/Argentina/ComodRivadavia', + 'America/Argentina/Cordoba', + 'America/Argentina/Jujuy', + 'America/Argentina/La_Rioja', + 'America/Argentina/Mendoza', + 'America/Argentina/Rio_Gallegos', + 'America/Argentina/San_Juan', + 'America/Argentina/San_Luis', + 'America/Argentina/Tucuman', + 'America/Argentina/Ushuaia', + 'America/Aruba', + 'America/Asuncion', + 'America/Atikokan', + 'America/Atka', + 'America/Bahia', + 'America/Barbados', + 'America/Belem', + 'America/Belize', + 'America/Blanc-Sablon', + 'America/Boa_Vista', + 'America/Bogota', + 'America/Boise', + 'America/Buenos_Aires', + 'America/Cambridge_Bay', + 'America/Campo_Grande', + 'America/Cancun', + 'America/Caracas', + 'America/Catamarca', + 'America/Cayenne', + 'America/Cayman', + 'America/Chicago', + 'America/Chihuahua', + 'America/Coral_Harbour', + 'America/Cordoba', + 'America/Costa_Rica', + 'America/Cuiaba', + 'America/Curacao', + 'America/Danmarkshavn', + 'America/Dawson', + 'America/Dawson_Creek', + 'America/Denver', + 'America/Detroit', + 'America/Dominica', + 'America/Edmonton', + 'America/Eirunepe', + 'America/El_Salvador', + 'America/Ensenada', + 'America/Fort_Wayne', + 'America/Fortaleza', + 'America/Glace_Bay', + 'America/Godthab', + 'America/Goose_Bay', + 'America/Grand_Turk', + 'America/Grenada', + 'America/Guadeloupe', + 'America/Guatemala', + 'America/Guayaquil', + 'America/Guyana', + 'America/Halifax', + 'America/Havana', + 'America/Hermosillo', + 'America/Indiana/Indianapolis', + 'America/Indiana/Knox', + 'America/Indiana/Marengo', + 'America/Indiana/Petersburg', + 'America/Indiana/Tell_City', + 'America/Indiana/Vevay', + 'America/Indiana/Vincennes', + 'America/Indiana/Winamac', + 'America/Indianapolis', + 'America/Inuvik', + 'America/Iqaluit', + 'America/Jamaica', + 'America/Jujuy', + 'America/Juneau', + 'America/Kentucky/Louisville', + 'America/Kentucky/Monticello', + 'America/Knox_IN', + 'America/La_Paz', + 'America/Lima', + 'America/Los_Angeles', + 'America/Louisville', + 'America/Maceio', + 'America/Managua', + 'America/Manaus', + 'America/Marigot', + 'America/Martinique', + 'America/Mazatlan', + 'America/Mendoza', + 'America/Menominee', + 'America/Merida', + 'America/Mexico_City', + 'America/Miquelon', + 'America/Moncton', + 'America/Monterrey', + 'America/Montevideo', + 'America/Montreal', + 'America/Montserrat', + 'America/Nassau', + 'America/New_York', + 'America/Nipigon', + 'America/Nome', + 'America/Noronha', + 'America/North_Dakota/Center', + 'America/North_Dakota/New_Salem', + 'America/Panama', + 'America/Pangnirtung', + 'America/Paramaribo', + 'America/Phoenix', + 'America/Port-au-Prince', + 'America/Port_of_Spain', + 'America/Porto_Acre', + 'America/Porto_Velho', + 'America/Puerto_Rico', + 'America/Rainy_River', + 'America/Rankin_Inlet', + 'America/Recife', + 'America/Regina', + 'America/Resolute', + 'America/Rio_Branco', + 'America/Rosario', + 'America/Santiago', + 'America/Santo_Domingo', + 'America/Sao_Paulo', + 'America/Scoresbysund', + 'America/Shiprock', + 'America/St_Barthelemy', + 'America/St_Johns', + 'America/St_Kitts', + 'America/St_Lucia', + 'America/St_Thomas', + 'America/St_Vincent', + 'America/Swift_Current', + 'America/Tegucigalpa', + 'America/Thule', + 'America/Thunder_Bay', + 'America/Tijuana', + 'America/Toronto', + 'America/Tortola', + 'America/Vancouver', + 'America/Virgin', + 'America/Whitehorse', + 'America/Winnipeg', + 'America/Yakutat', + 'America/Yellowknife', + 'Antarctica/Casey', + 'Antarctica/Davis', + 'Antarctica/DumontDUrville', + 'Antarctica/Mawson', + 'Antarctica/McMurdo', + 'Antarctica/Palmer', + 'Antarctica/Rothera', + 'Antarctica/South_Pole', + 'Antarctica/Syowa', + 'Antarctica/Vostok', + 'Arctic/Longyearbyen', + 'Asia/Aden', + 'Asia/Almaty', + 'Asia/Amman', + 'Asia/Anadyr', + 'Asia/Aqtau', + 'Asia/Aqtobe', + 'Asia/Ashgabat', + 'Asia/Ashkhabad', + 'Asia/Baghdad', + 'Asia/Bahrain', + 'Asia/Baku', + 'Asia/Bangkok', + 'Asia/Beirut', + 'Asia/Bishkek', + 'Asia/Brunei', + 'Asia/Calcutta', + 'Asia/Choibalsan', + 'Asia/Chongqing', + 'Asia/Chungking', + 'Asia/Colombo', + 'Asia/Dacca', + 'Asia/Damascus', + 'Asia/Dhaka', + 'Asia/Dili', + 'Asia/Dubai', + 'Asia/Dushanbe', + 'Asia/Gaza', + 'Asia/Harbin', + 'Asia/Ho_Chi_Minh', + 'Asia/Hong_Kong', + 'Asia/Hovd', + 'Asia/Irkutsk', + 'Asia/Istanbul', + 'Asia/Jakarta', + 'Asia/Jayapura', + 'Asia/Jerusalem', + 'Asia/Kabul', + 'Asia/Kamchatka', + 'Asia/Karachi', + 'Asia/Kashgar', + 'Asia/Katmandu', + 'Asia/Kolkata', + 'Asia/Krasnoyarsk', + 'Asia/Kuala_Lumpur', + 'Asia/Kuching', + 'Asia/Kuwait', + 'Asia/Macao', + 'Asia/Macau', + 'Asia/Magadan', + 'Asia/Makassar', + 'Asia/Manila', + 'Asia/Muscat', + 'Asia/Nicosia', + 'Asia/Novosibirsk', + 'Asia/Omsk', + 'Asia/Oral', + 'Asia/Phnom_Penh', + 'Asia/Pontianak', + 'Asia/Pyongyang', + 'Asia/Qatar', + 'Asia/Qyzylorda', + 'Asia/Rangoon', + 'Asia/Riyadh', + 'Asia/Saigon', + 'Asia/Sakhalin', + 'Asia/Samarkand', + 'Asia/Seoul', + 'Asia/Shanghai', + 'Asia/Singapore', + 'Asia/Taipei', + 'Asia/Tashkent', + 'Asia/Tbilisi', + 'Asia/Tehran', + 'Asia/Tel_Aviv', + 'Asia/Thimbu', + 'Asia/Thimphu', + 'Asia/Tokyo', + 'Asia/Ujung_Pandang', + 'Asia/Ulaanbaatar', + 'Asia/Ulan_Bator', + 'Asia/Urumqi', + 'Asia/Vientiane', + 'Asia/Vladivostok', + 'Asia/Yakutsk', + 'Asia/Yekaterinburg', + 'Asia/Yerevan', + 'Atlantic/Azores', + 'Atlantic/Bermuda', + 'Atlantic/Canary', + 'Atlantic/Cape_Verde', + 'Atlantic/Faeroe', + 'Atlantic/Faroe', + 'Atlantic/Jan_Mayen', + 'Atlantic/Madeira', + 'Atlantic/Reykjavik', + 'Atlantic/South_Georgia', + 'Atlantic/St_Helena', + 'Atlantic/Stanley', + 'Australia/ACT', + 'Australia/Adelaide', + 'Australia/Brisbane', + 'Australia/Broken_Hill', + 'Australia/Canberra', + 'Australia/Currie', + 'Australia/Darwin', + 'Australia/Eucla', + 'Australia/Hobart', + 'Australia/LHI', + 'Australia/Lindeman', + 'Australia/Lord_Howe', + 'Australia/Melbourne', + 'Australia/NSW', + 'Australia/North', + 'Australia/Perth', + 'Australia/Queensland', + 'Australia/South', + 'Australia/Sydney', + 'Australia/Tasmania', + 'Australia/Victoria', + 'Australia/West', + 'Australia/Yancowinna', + 'Brazil/Acre', + 'Brazil/DeNoronha', + 'Brazil/East... [truncated message content] |
From: <jd...@us...> - 2008-10-13 18:10:49
|
Revision: 6181 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6181&view=rev Author: jdh2358 Date: 2008-10-13 18:10:39 +0000 (Mon, 13 Oct 2008) Log Message: ----------- updates to formatters Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/mlab.py trunk/matplotlib/lib/mpl_toolkits/exceltools.py Modified: trunk/matplotlib/lib/matplotlib/mlab.py =================================================================== --- trunk/matplotlib/lib/matplotlib/mlab.py 2008-10-11 18:27:35 UTC (rev 6180) +++ trunk/matplotlib/lib/matplotlib/mlab.py 2008-10-13 18:10:39 UTC (rev 6181) @@ -2173,15 +2173,19 @@ # def tostr(self, x): # return '"%r"'%self.toval(x) + + class FormatFormatStr(FormatObj): def __init__(self, fmt): self.fmt = fmt def tostr(self, x): if x is None: return 'None' - return self.fmt%self.toval(x) + return (self.fmt%self.toval(x)).rstrip('.') + + class FormatFloat(FormatFormatStr): def __init__(self, precision=4, scale=1.): FormatFormatStr.__init__(self, '%%1.%df'%precision) @@ -2198,6 +2202,10 @@ class FormatInt(FormatObj): + + def tostr(self, x): + return '%d'%int(x) + def toval(self, x): return int(x) Modified: trunk/matplotlib/lib/mpl_toolkits/exceltools.py =================================================================== --- trunk/matplotlib/lib/mpl_toolkits/exceltools.py 2008-10-11 18:27:35 UTC (rev 6180) +++ trunk/matplotlib/lib/mpl_toolkits/exceltools.py 2008-10-13 18:10:39 UTC (rev 6181) @@ -99,10 +99,11 @@ ind = np.arange(len(r.dtype.names)) for row in r: + #print 'row', for i in ind: val = row[i] format = formats[i] - val = format.toval(val) + if mlab.safe_isnan(val): ws.write(rownum, colnum+i, nanstr) elif mlab.safe_isinf(val): @@ -111,15 +112,14 @@ else: s = '-%s'%infstr ws.write(rownum, colnum+i, s) elif format.xlstyle is None: + val = format.toval(val) ws.write(rownum, colnum+i, val) else: + val = format.toval(val) + #print (i, r.dtype.names[i], val, format.toval(val)), ws.write(rownum, colnum+i, val, format.xlstyle) rownum += 1 if autosave: wb.save(filename) return rownum - - - - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jd...@us...> - 2008-10-13 19:17:09
|
Revision: 6182 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6182&view=rev Author: jdh2358 Date: 2008-10-13 19:16:58 +0000 (Mon, 13 Oct 2008) Log Message: ----------- more fixes to mlab/excel formatters Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/mlab.py trunk/matplotlib/lib/mpl_toolkits/exceltools.py Modified: trunk/matplotlib/lib/matplotlib/mlab.py =================================================================== --- trunk/matplotlib/lib/matplotlib/mlab.py 2008-10-13 18:10:39 UTC (rev 6181) +++ trunk/matplotlib/lib/matplotlib/mlab.py 2008-10-13 19:16:58 UTC (rev 6182) @@ -2181,7 +2181,7 @@ def tostr(self, x): if x is None: return 'None' - return (self.fmt%self.toval(x)).rstrip('.') + return self.fmt%self.toval(x) Modified: trunk/matplotlib/lib/mpl_toolkits/exceltools.py =================================================================== --- trunk/matplotlib/lib/mpl_toolkits/exceltools.py 2008-10-13 18:10:39 UTC (rev 6181) +++ trunk/matplotlib/lib/mpl_toolkits/exceltools.py 2008-10-13 19:16:58 UTC (rev 6182) @@ -41,8 +41,11 @@ xlstyle.num_format_str = '0.%s%%;[RED]-0.%s%%'%(zeros, zeros) format.scale = 1. elif isinstance(format, mlab.FormatFloat): - zeros = ''.join(['0']*format.precision) - xlstyle.num_format_str = '#,##0.%s;[RED]-#,##0.%s'%(zeros, zeros) + if format.precision>0: + zeros = ''.join(['0']*format.precision) + xlstyle.num_format_str = '#,##0.%s;[RED]-#,##0.%s'%(zeros, zeros) + else: + xlstyle.num_format_str = '#,##;[RED]-#,##' elif isinstance(format, mlab.FormatInt): xlstyle.num_format_str = '#,##;[RED]-#,##' else: @@ -99,11 +102,11 @@ ind = np.arange(len(r.dtype.names)) for row in r: - #print 'row', + for i in ind: val = row[i] format = formats[i] - + val = format.toval(val) if mlab.safe_isnan(val): ws.write(rownum, colnum+i, nanstr) elif mlab.safe_isinf(val): @@ -112,11 +115,8 @@ else: s = '-%s'%infstr ws.write(rownum, colnum+i, s) elif format.xlstyle is None: - val = format.toval(val) ws.write(rownum, colnum+i, val) else: - val = format.toval(val) - #print (i, r.dtype.names[i], val, format.toval(val)), ws.write(rownum, colnum+i, val, format.xlstyle) rownum += 1 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jd...@us...> - 2008-11-14 15:33:39
|
Revision: 6403 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=6403&view=rev Author: jdh2358 Date: 2008-11-14 15:33:32 +0000 (Fri, 14 Nov 2008) Log Message: ----------- fixed a vlines/hlines doc bug Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/axes.py trunk/matplotlib/lib/mpl_toolkits/gtktools.py Modified: trunk/matplotlib/lib/matplotlib/axes.py =================================================================== --- trunk/matplotlib/lib/matplotlib/axes.py 2008-11-14 08:15:27 UTC (rev 6402) +++ trunk/matplotlib/lib/matplotlib/axes.py 2008-11-14 15:33:32 UTC (rev 6403) @@ -2961,7 +2961,7 @@ """ call signature:: - hlines(y, xmin, xmax, colors='k', linestyle='solid', **kwargs) + hlines(y, xmin, xmax, colors='k', linestyles='solid', **kwargs) Plot horizontal lines at each *y* from *xmin* to *xmax*. @@ -2984,7 +2984,7 @@ a line collections color argument, either a single color or a ``len(y)`` list of colors - *linestyle*: + *linestyles*: [ 'solid' | 'dashed' | 'dashdot' | 'dotted' ] **Example:** @@ -3044,18 +3044,21 @@ """ call signature:: - vlines(x, ymin, ymax, color='k') + vlines(x, ymin, ymax, color='k', linestyles='solid') Plot vertical lines at each *x* from *ymin* to *ymax*. *ymin* or *ymax* can be scalars or len(*x*) numpy arrays. If they are scalars, then the respective values are constant, else the heights of the lines are determined by *ymin* and *ymax*. - *colors* is a line collections color args, either a single color - or a len(*x*) list of colors + *colors* + a line collections color args, either a single color + or a len(*x*) list of colors - *linestyle* is one of [ 'solid' | 'dashed' | 'dashdot' | 'dotted' ] + *linestyles* + one of [ 'solid' | 'dashed' | 'dashdot' | 'dotted' ] + Returns the :class:`matplotlib.collections.LineCollection` that was added. Modified: trunk/matplotlib/lib/mpl_toolkits/gtktools.py =================================================================== --- trunk/matplotlib/lib/mpl_toolkits/gtktools.py 2008-11-14 08:15:27 UTC (rev 6402) +++ trunk/matplotlib/lib/mpl_toolkits/gtktools.py 2008-11-14 15:33:32 UTC (rev 6403) @@ -359,7 +359,7 @@ * formatd - the list of mlab.FormatObj instances, with gtk attachments * stringd - a dict mapping dtype names to a list of valid strings for the combo drop downs - + * callbacks - a matplotlib.cbook.CallbackRegistry. Connect to the cell_changed with def mycallback(liststore, rownum, colname, oldval, newval): @@ -377,10 +377,10 @@ stringd, if not None, is a dict mapping dtype names to a list of valid strings for a combo drop down editor """ - + if stringd is None: stringd = dict() - + if formatd is None: formatd = mlab.get_formatd(r) @@ -408,7 +408,7 @@ keys = stringd.keys() keys.sort() - + valid = set(r.dtype.names) for ikey, key in enumerate(keys): assert(key in valid) @@ -417,7 +417,7 @@ combostore.append([s]) self.combod[key] = combostore, len(self.headers)+ikey - + gtk.ListStore.__init__(self, *types) for row in r: @@ -426,7 +426,7 @@ if isinstance(formatter, mlab.FormatBool): vals.append(val) else: - vals.append(formatter.tostr(val)) + vals.append(formatter.tostr(val)) if len(stringd): # todo, get correct index here? vals.extend([0]*len(stringd)) @@ -483,12 +483,12 @@ constant, if not None, is a list of dtype names which are not editable """ self.recliststore = recliststore - + gtk.TreeView.__init__(self, recliststore) combostrings = set(recliststore.stringd.keys()) - + if constant is None: constant = [] @@ -509,7 +509,7 @@ renderer.connect("edited", recliststore.position_edited, i) combostore, listind = recliststore.combod[header] renderer.set_property("model", combostore) - renderer.set_property('editable', True) + renderer.set_property('editable', True) else: renderer = gtk.CellRendererText() if header not in constant: @@ -530,7 +530,7 @@ tvcol.add_attribute(renderer, 'text', i) if header in combostrings: combostore, listind = recliststore.combod[header] - tvcol.add_attribute(renderer, 'text-column', listind) + tvcol.add_attribute(renderer, 'text-column', listind) elif coltype == gobject.TYPE_BOOLEAN: tvcol.add_attribute(renderer, 'active', i) @@ -542,7 +542,8 @@ self.connect("button-release-event", self.on_selection_changed) - self.set_grid_lines(gtk.TREE_VIEW_GRID_LINES_BOTH) + #self.set_grid_lines(gtk.TREE_VIEW_GRID_LINES_BOTH) + self.get_selection().set_mode(gtk.SELECTION_BROWSE) self.get_selection().set_select_function(self.on_select) @@ -576,10 +577,10 @@ return liststore, treeview, win else: return liststore, treeview - - + + if __name__=='__main__': import datetime @@ -628,4 +629,4 @@ win2.set_title('with all defaults') gtk.main() - + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lee...@us...> - 2009-04-17 20:20:18
|
Revision: 7049 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7049&view=rev Author: leejjoon Date: 2009-04-17 20:20:07 +0000 (Fri, 17 Apr 2009) Log Message: ----------- removing axes_grid.inset_locator. Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/offsetbox.py Removed Paths: ------------- trunk/matplotlib/lib/mpl_toolkits/axes_grid/inset_locator.py Modified: trunk/matplotlib/lib/matplotlib/offsetbox.py =================================================================== --- trunk/matplotlib/lib/matplotlib/offsetbox.py 2009-04-17 19:35:59 UTC (rev 7048) +++ trunk/matplotlib/lib/matplotlib/offsetbox.py 2009-04-17 20:20:07 UTC (rev 7049) @@ -19,7 +19,7 @@ import matplotlib.artist as martist import matplotlib.text as mtext import numpy as np -from matplotlib.transforms import Bbox, TransformedBbox, BboxTransformTo +from matplotlib.transforms import Bbox, BboxBase, TransformedBbox, BboxTransformTo from matplotlib.font_manager import FontProperties from matplotlib.patches import FancyBboxPatch @@ -897,7 +897,7 @@ """ if bbox is None: self._bbox_to_anchor = None - elif isinstance(bbox, Bbox): + elif isinstance(bbox, BboxBase): self._bbox_to_anchor = bbox else: try: Deleted: trunk/matplotlib/lib/mpl_toolkits/axes_grid/inset_locator.py =================================================================== --- trunk/matplotlib/lib/mpl_toolkits/axes_grid/inset_locator.py 2009-04-17 19:35:59 UTC (rev 7048) +++ trunk/matplotlib/lib/mpl_toolkits/axes_grid/inset_locator.py 2009-04-17 20:20:07 UTC (rev 7049) @@ -1,191 +0,0 @@ -from matplotlib.offsetbox import AnchoredOffsetbox - - -import matplotlib.transforms as mtrans - -class InsetPosition(object): - def __init__(self, parent, lbwh): - self.parent = parent - self.lbwh = lbwh # position of the inset axes in the normalized coordinate of the parent axes - - def __call__(self, ax, renderer): - bbox_parent = self.parent.get_position(original=False) - trans = mtrans.BboxTransformTo(bbox_parent) - bbox_inset = mtrans.Bbox.from_bounds(*self.lbwh) - bb = mtrans.TransformedBbox(bbox_inset, trans) - return bb - - -class AnchoredLocatorBase(AnchoredOffsetbox): - def __init__(self, parent_bbox, offsetbox, loc, **kwargs): - - for k in ["parent_bbox", "child", "pad"]: - if kwargs.has_key(k): - raise ValueError("%s paramter should not be provided" % (k,)) - - kwargs["pad"] = 0. - kwargs["child"] = None - kwargs["parent_bbox"] = parent_bbox - - super(AnchoredLocatorBase, self).__init__(loc, **kwargs) - - - def draw(self, renderer): - raise RuntimeError("No draw method should be called") - - - def __call__(self, ax, renderer): - - fontsize = renderer.points_to_pixels(self.prop.get_size_in_points()) - self._update_offset_func(renderer, fontsize) - - width, height, xdescent, ydescent = self.get_extent(renderer) - - px, py = self.get_offset(width, height, 0, 0) - bbox_canvas = mtrans.Bbox.from_bounds(px, py, width, height) - tr = ax.figure.transFigure.inverted() - bb = mtrans.TransformedBbox(bbox_canvas, tr) - - return bb - - -class AnchoredOffsetBoxLocator(AnchoredLocatorBase): - def __init__(self, parent_bbox, offsetbox, loc, **kwargs): - - for k in ["parent_bbox", "child", "pad"]: - if kwargs.has_key(k): - raise ValueError("%s paramter should not be provided" % (k,)) - - kwargs["pad"] = 0. - kwargs["child"] = offsetbox - kwargs["parent_bbox"] = parent_bbox - - super(AnchoredOffsetBoxLocator, self).__init__(loc, **kwargs) - - - -from mpl_toolkits.axes_grid.axes_divider import Size - -class AnchoredSizeLocator(AnchoredLocatorBase): - def __init__(self, parent_bbox, x_size, y_size, - loc, **kwargs): - - self.axes = None - self.x_size = Size.from_any(x_size) - self.y_size = Size.from_any(y_size) - - super(AnchoredSizeLocator, self).__init__(parent_bbox, None, loc, **kwargs) - - def get_extent(self, renderer): - - x, y, w, h = self._parent_bbox.bounds - - dpi = renderer.points_to_pixels(72.) - - r, a = self.x_size.get_size(renderer) - width = w*r + a*dpi - - r, a = self.y_size.get_size(renderer) - height = h*r + a*dpi - xd, yd = 0, 0 - - fontsize = renderer.points_to_pixels(self.prop.get_size_in_points()) - pad = self.pad * fontsize - - return width+2*pad, height+2*pad, xd+pad, yd+pad - - - def __call__(self, ax, renderer): - - self.axes = ax - return super(AnchoredSizeLocator, self).__call__(ax, renderer) - - -class AnchoredZoomLocator(AnchoredLocatorBase): - def __init__(self, parent_axes, zoom, - loc, **kwargs): - - self.parent_axes = parent_axes - self.zoom = zoom - - super(AnchoredZoomLocator, self).__init__(parent_axes.bbox, None, loc, **kwargs) - - self.axes = None - - - def get_extent(self, renderer): - - bb = mtrans.TransformedBbox(self.axes.viewLim, self.parent_axes.transData) - - x, y, w, h = bb.bounds - - xd, yd = 0, 0 - - fontsize = renderer.points_to_pixels(self.prop.get_size_in_points()) - pad = self.pad * fontsize - - return w*self.zoom+2*pad, h*self.zoom+2*pad, xd+pad, yd+pad - - - def __call__(self, ax, renderer): - - self.axes = ax - return super(AnchoredZoomLocator, self).__call__(ax, renderer) - - -# class AnchoredAxesBoxLocator(AnchoredOffsetBoxLocator): -# def __init__(self, ax, x0, x1, y0, y1, zoom, zoomy=None, -# parent_bbox, width_inch, height_inch, -# loc, **kwargs): - -# self.width_inch = width_inch -# self.height_inch = height_inch - -# super(AnchoredFixedBoxLocator, self).__init__(parent_bbox, None, loc, **kwargs) - -# def get_extent(self, renderer): - -# w =self.width_inch * renderer.points_to_pixels(72.) -# h =self.height_inch * renderer.points_to_pixels(72.) -# xd, yd = 0, 0 - -# fontsize = renderer.points_to_pixels(self.prop.get_size_in_points()) -# pad = self.pad * fontsize - -# return w+2*pad, h+2*pad, xd+pad, yd+pad - - -if __name__ == "__main__": - - import matplotlib.pyplot as plt - - fig = plt.figure(1) - ax = fig.add_subplot(1,2,1) - ax.set_aspect(1.) - - # width : 30% of parent_bbox (ax.bbox) - # height : 1 inch - axes_locator = AnchoredSizeLocator(ax.bbox, "30%", 1, loc=1) - - axins = fig.add_axes([0, 0, 1, 1], label="inset1") - axins.set_axes_locator(axes_locator) - - - - - ax = fig.add_subplot(1,2,2) - ax.set_aspect(1.) - - # inset axes has a data scale of the parent axes multiplied by a zoom factor - axes_locator = AnchoredZoomLocator(ax, zoom=0.5, loc=1) - - axins = fig.add_axes([0, 0, 0.5, 1], label="inset2") - #axins = plt.axes([0, 0, 1, 1]) - axins.set_axes_locator(axes_locator) - - - - - - - #locator = AnchoredBoxLocator(parent_bbox, Fixed(1.), Scaled(0.2), loc=1) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lee...@us...> - 2009-05-05 03:28:01
|
Revision: 7084 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7084&view=rev Author: leejjoon Date: 2009-05-05 03:27:48 +0000 (Tue, 05 May 2009) Log Message: ----------- Better support for tick (tick label) color handling in axes_grid.axisline Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/text.py trunk/matplotlib/lib/mpl_toolkits/axes_grid/axislines.py trunk/matplotlib/lib/mpl_toolkits/axes_grid/inset_locator.py trunk/matplotlib/lib/mpl_toolkits/axes_grid/parasite_axes.py Added Paths: ----------- trunk/matplotlib/lib/mpl_toolkits/axes_grid/ChangeLog Modified: trunk/matplotlib/lib/matplotlib/text.py =================================================================== --- trunk/matplotlib/lib/matplotlib/text.py 2009-05-04 20:14:40 UTC (rev 7083) +++ trunk/matplotlib/lib/matplotlib/text.py 2009-05-05 03:27:48 UTC (rev 7084) @@ -235,7 +235,7 @@ thisx, thisy = 0.0, 0.0 xmin, ymin = 0.0, 0.0 width, height = 0.0, 0.0 - lines = self._text.split('\n') + lines = self.get_text().split('\n') whs = np.zeros((len(lines), 2)) horizLayout = np.zeros((len(lines), 4)) @@ -406,10 +406,10 @@ props = props.copy() # don't want to alter the pad externally pad = props.pop('pad', 4) pad = renderer.points_to_pixels(pad) - if self._text == "": + if self.get_text() == "": self.arrow_patch.set_patchA(None) return - + bbox = self.get_window_extent(renderer) l,b,w,h = bbox.bounds l-=pad/2. @@ -451,7 +451,7 @@ if renderer is not None: self._renderer = renderer if not self.get_visible(): return - if self._text=='': return + if self.get_text()=='': return renderer.open_group('text', self.get_gid()) @@ -472,8 +472,8 @@ self._draw_bbox(renderer, posx, posy) gc = renderer.new_gc() - gc.set_foreground(self._color) - gc.set_alpha(self._alpha) + gc.set_foreground(self.get_color()) + gc.set_alpha(self.get_alpha()) gc.set_url(self._url) if self.get_clip_on(): gc.set_clip_rectangle(self.clipbox) @@ -604,7 +604,7 @@ need to know if the text has changed. """ x, y = self.get_position() - return (x, y, self._text, self._color, + return (x, y, self.get_text(), self._color, self._verticalalignment, self._horizontalalignment, hash(self._fontproperties), self._rotation, self.figure.dpi, id(self._renderer), @@ -650,7 +650,7 @@ if dpi is not None: dpi_orig = self.figure.dpi self.figure.dpi = dpi - if self._text == '': + if self.get_text() == '': tx, ty = self._get_xy_display() return Bbox.from_bounds(tx,ty,0,0) Added: trunk/matplotlib/lib/mpl_toolkits/axes_grid/ChangeLog =================================================================== --- trunk/matplotlib/lib/mpl_toolkits/axes_grid/ChangeLog (rev 0) +++ trunk/matplotlib/lib/mpl_toolkits/axes_grid/ChangeLog 2009-05-05 03:27:48 UTC (rev 7084) @@ -0,0 +1,8 @@ +2009-05-04 Jae-Joon Lee <lee...@gm...> + + * inset_locator.py (inset_axes, zoomed_inset_axes): axes_class support + + * axislines.py : Better support for tick (tick label) color + handling + (Axes.get_children): fix typo + Modified: trunk/matplotlib/lib/mpl_toolkits/axes_grid/axislines.py =================================================================== --- trunk/matplotlib/lib/mpl_toolkits/axes_grid/axislines.py 2009-05-04 20:14:40 UTC (rev 7083) +++ trunk/matplotlib/lib/mpl_toolkits/axes_grid/axislines.py 2009-05-05 03:27:48 UTC (rev 7084) @@ -200,16 +200,18 @@ nth_coord = 1 elif loc in ["bottom", "top"]: nth_coord = 0 + + self.nth_coord = nth_coord + self.axis = [self.axes.xaxis, self.axes.yaxis][self.nth_coord] + + super(AxisLineHelper.Fixed, self).__init__(loc) + if passingthrough_point is None: passingthrough_point = self._default_passthru_pt[loc] if label_direction is None: label_direction = loc - super(AxisLineHelper.Fixed, self).__init__(loc) - self.nth_coord = nth_coord - self.axis = [self.axes.xaxis, self.axes.yaxis][self.nth_coord] - self.passthru_pt = passingthrough_point _verts = np.array([[0., 0.], @@ -456,11 +458,48 @@ def __init__(self, ticksize, **kwargs): self.ticksize = ticksize self.locs_angles = [] + + self._axis = kwargs.pop("axis", None) + if self._axis is not None: + if "color" not in kwargs: + kwargs["color"] = "auto" + if ("mew" not in kwargs) and ("markeredgewidth" not in kwargs): + kwargs["markeredgewidth"] = "auto" + super(Ticks, self).__init__([0.], [0.], **kwargs) - #self.set_color("k") - self.set_mec("k") - self.set_mew(0.5) + + def get_color(self): + if self._color == 'auto': + if self._axis is not None: + ticklines = self._axis.get_ticklines() + if ticklines: + color_from_axis = ticklines[0].get_color() + return color_from_axis + return "k" + + return super(Ticks, self).get_color() + + + def get_markeredgecolor(self): + if self._markeredgecolor == 'auto': + return self.get_color() + else: + return self._markeredgecolor + + def get_markeredgewidth(self): + if self._markeredgewidth == 'auto': + if self._axis is not None: + ticklines = self._axis.get_ticklines() + if ticklines: + width_from_axis = ticklines[0].get_markeredgewidth() + return width_from_axis + return .5 + + else: + return self._markeredgewidth + + def update_locs_angles(self, locs_angles, renderer): self.locs_angles = locs_angles @@ -494,7 +533,7 @@ gc = renderer.new_gc() self._set_gc_clip(gc) gc.set_foreground(self.get_markeredgecolor()) - gc.set_linewidth(self._markeredgewidth) + gc.set_linewidth(self.get_markeredgewidth()) gc.set_alpha(self._alpha) offset = renderer.points_to_pixels(size) @@ -515,16 +554,33 @@ class TickLabels(mtext.Text): - def __init__(self, size, color): + def __init__(self, size, **kwargs): self._locs_labels = [] + self._axis = kwargs.pop("axis", None) + if self._axis is not None: + if "color" not in kwargs: + kwargs["color"] = "auto" + super(TickLabels, self).__init__(x=0., y=0., text="", - color=color, + **kwargs ) def update_locs_labels(self, locs_labels, renderer): self._locs_labels = locs_labels + def get_color(self): + if self._color == 'auto': + if self._axis is not None: + ticklabels = self._axis.get_ticklabels() + if ticklabels: + color_from_axis = ticklabels[0].get_color() + return color_from_axis + return "k" + + return super(TickLabels, self).get_color() + + def draw(self, renderer): if not self.get_visible(): return @@ -549,6 +605,34 @@ #else: # return Bbox.from_bounds(0, 0, 0, 0) + +class AxisLabel(mtext.Text): + def __init__(self, *kl, **kwargs): + self._axis = kwargs.pop("axis", None) + if self._axis is not None: + if "color" not in kwargs: + kwargs["color"] = "auto" + + super(AxisLabel, self).__init__(*kl, **kwargs) + + def get_color(self): + if self._color == 'auto': + if self._axis is not None: + label = self._axis.get_label() + if label: + color_from_axis = label.get_color() + return color_from_axis + return "k" + + return super(AxisLabel, self).get_color() + + def get_text(self): + t = super(AxisLabel, self).get_text() + if t == "__from_axes__": + return self._axis.get_label().get_text() + return self._text + + class AxisGridLineBase(martist.Artist): def __init__(self, *kl, **kw): super(AxisGridLineBase, self).__init__(*kl, **kw) @@ -599,9 +683,9 @@ if self._helper.label_direction in ["left", "right"]: + axis_name = "ytick" + else: axis_name = "xtick" - else: - axis_name = "ytick" if major_tick_size is None: @@ -638,12 +722,13 @@ transform=self._helper.get_tick_transform()+self.offset_transform - self.major_ticks = Ticks(self.major_tick_size, transform=transform) - self.minor_ticks = Ticks(self.minor_tick_size, transform=transform) + self.major_ticks = Ticks(self.major_tick_size, + transform=transform) + self.minor_ticks = Ticks(self.minor_tick_size, + transform=transform) size = rcParams['xtick.labelsize'] - color = rcParams['xtick.color'] fontprops = font_manager.FontProperties(size=size) tvhl = self._helper.get_ticklabel_transform(self.major_tick_pad, @@ -652,10 +737,14 @@ trans=transform) trans, vert, horiz, label_a = tvhl - self.major_ticklabels = TickLabels(size, color) - self.minor_ticklabels = TickLabels(size, color) + color = rcParams['xtick.color'] + self.major_ticklabels = TickLabels(size, color=color) + self.minor_ticklabels = TickLabels(size, color=color) + #self.major_ticklabels = TickLabels(size, axis=self.axis) + #self.minor_ticklabels = TickLabels(size, axis=self.axis) + self.major_ticklabels.set(figure = self.axes.figure, rotation = label_a, transform=trans, @@ -724,10 +813,10 @@ color = rcParams['axes.labelcolor'], ) - self.label = mtext.Text(0, 0, "__from_axes__", - fontproperties=fontprops, - color = rcParams['axes.labelcolor'], - ) + self.label = AxisLabel(0, 0, "", + fontproperties=fontprops, + color = rcParams['axes.labelcolor'], + ) self.label.set_figure(self.axes.figure) #self._set_artist_props(label) @@ -752,15 +841,16 @@ transform=tr2, va=va, ha=ha, rotation=a) - if self.label.get_text() == "__from_axes__": - label_text = self._helper.axis.get_label().get_text() - self.label.set_text(label_text) - self.label.draw(renderer) - self.label.set_text("__from_axes__") - else: - self.label.draw(renderer) +# if self.label.get_text() == "__from_axes__": +# label_text = self.axis.get_label().get_text() +# self.label.set_text(label_text) +# self.label.draw(renderer) +# self.label.set_text("__from_axes__") +# else: + self.label.draw(renderer) + def set_label(self, s): self.label.set_text(s) @@ -857,9 +947,11 @@ if self._helper.label_direction in ["left", "right"]: + axis_name = "ytick" + self.axis = axes.yaxis + else: axis_name = "xtick" - else: - axis_name = "ytick" + self.axis = axes.xaxis if major_tick_size is None: @@ -897,12 +989,15 @@ transform=self._helper.get_tick_transform()+self.offset_transform - self.major_ticks = Ticks(self.major_tick_size, transform=transform) - self.minor_ticks = Ticks(self.minor_tick_size, transform=transform) + self.major_ticks = Ticks(self.major_tick_size, + axis=self.axis, + transform=transform) + self.minor_ticks = Ticks(self.minor_tick_size, + axis=self.axis, + transform=transform) size = rcParams['xtick.labelsize'] - color = rcParams['xtick.color'] fontprops = font_manager.FontProperties(size=size) tvhl = self._helper.get_ticklabel_transform(self.major_tick_pad, @@ -911,10 +1006,14 @@ trans=transform) trans, vert, horiz, label_a = tvhl - self.major_ticklabels = TickLabels(size, color) - self.minor_ticklabels = TickLabels(size, color) + #color = rcParams['xtick.color'] + #self.major_ticklabels = TickLabels(size, color=color) + #self.minor_ticklabels = TickLabels(size, color=color) + self.major_ticklabels = TickLabels(size, axis=self.axis) + self.minor_ticklabels = TickLabels(size, axis=self.axis) + self.major_ticklabels.set(figure = self.axes.figure, rotation = label_a, transform=trans, @@ -1022,10 +1121,12 @@ color = rcParams['axes.labelcolor'], ) - self.label = mtext.Text(0, 0, "__from_axes__", - fontproperties=fontprops, - color = rcParams['axes.labelcolor'], - ) + self.label = AxisLabel(0, 0, "__from_axes__", + color = "auto", #rcParams['axes.labelcolor'], + fontproperties=fontprops, + axis=self.axis, + ) + self.label.set_figure(self.axes.figure) #self._set_artist_props(label) @@ -1050,15 +1151,16 @@ transform=tr2, va=va, ha=ha, rotation=a) - if self.label.get_text() == "__from_axes__": - label_text = self._helper.axis.get_label().get_text() - self.label.set_text(label_text) - self.label.draw(renderer) - self.label.set_text("__from_axes__") - else: - self.label.draw(renderer) +# if self.label.get_text() == "__from_axes__": +# label_text = self._helper.axis.get_label().get_text() +# self.label.set_text(label_text) +# self.label.draw(renderer) +# self.label.set_text("__from_axes__") +# else: + self.label.draw(renderer) + def set_label(self, s): self.label.set_text(s) @@ -1208,7 +1310,7 @@ if self._axisline_on: children = self._axislines.values()+[self.gridlines] else: - cildren = [] + children = [] children.extend(super(Axes, self).get_children()) return children @@ -1253,15 +1355,16 @@ continue if axisline.label.get_visible(): - if axisline.label.get_text() == "__from_axes__": - label_text = axisline._helper.axis.get_label().get_text() - axisline.label.set_text(label_text) - bb.append(axisline.label.get_window_extent(renderer)) - axisline.label.set_text("__from_axes__") - else: - bb.append(axisline.label.get_window_extent(renderer)) +# if axisline.label.get_text() == "__from_axes__": +# label_text = axisline._helper.axis.get_label().get_text() +# axisline.label.set_text(label_text) +# bb.append(axisline.label.get_window_extent(renderer)) +# axisline.label.set_text("__from_axes__") +# else: + bb.append(axisline.label.get_window_extent(renderer)) + if axisline.major_ticklabels.get_visible(): bb.extend(axisline.major_ticklabels.get_window_extents(renderer)) if axisline.minor_ticklabels.get_visible(): Modified: trunk/matplotlib/lib/mpl_toolkits/axes_grid/inset_locator.py =================================================================== --- trunk/matplotlib/lib/mpl_toolkits/axes_grid/inset_locator.py 2009-05-04 20:14:40 UTC (rev 7083) +++ trunk/matplotlib/lib/mpl_toolkits/axes_grid/inset_locator.py 2009-05-05 03:27:48 UTC (rev 7084) @@ -246,9 +246,13 @@ def inset_axes(parent_axes, width, height, loc=1, bbox_to_anchor=None, bbox_transform=None, + axes_class=None, axes_kwargs=None, **kwargs): + if axes_class is None: + axes_class = Axes + if axes_kwargs is None: inset_axes = Axes(parent_axes.figure, parent_axes.get_position()) else: @@ -268,24 +272,24 @@ def zoomed_inset_axes(parent_axes, zoom, loc=1, bbox_to_anchor=None, bbox_transform=None, + axes_class=None, axes_kwargs=None, - connects=None, **kwargs): + if axes_class is None: + axes_class = Axes + if axes_kwargs is None: - inset_axes = Axes(parent_axes.figure, parent_axes.get_position()) + inset_axes = axes_class(parent_axes.figure, parent_axes.get_position()) else: - inset_axes = Axes(parent_axes.figure, parent_axes.get_position(), - **axes_kwargs) + inset_axes = axes_class(parent_axes.figure, parent_axes.get_position(), + **axes_kwargs) axes_locator = AnchoredZoomLocator(parent_axes, zoom=zoom, loc=loc) inset_axes.set_axes_locator(axes_locator) _add_inset_axes(parent_axes, inset_axes) - if connects is not None: - pass - return inset_axes Modified: trunk/matplotlib/lib/mpl_toolkits/axes_grid/parasite_axes.py =================================================================== --- trunk/matplotlib/lib/mpl_toolkits/axes_grid/parasite_axes.py 2009-05-04 20:14:40 UTC (rev 7083) +++ trunk/matplotlib/lib/mpl_toolkits/axes_grid/parasite_axes.py 2009-05-05 03:27:48 UTC (rev 7084) @@ -287,13 +287,21 @@ ax2 = ParasiteAxes(self, sharex=self, frameon=False) self.parasites.append(ax2) + + # for normal axes + self.yaxis.tick_left() + ax2.xaxis.set_visible(False) + ax2.yaxis.tick_right() + ax2.yaxis.set_label_position('right') + + # for axisline axes self._axislines["right"].set_visible(False) - ax2.xaxis.set_visible(False) ax2._axislines["left"].set_visible(False) ax2._axislines["right"].set_visible(True) ax2._axislines["right"].major_ticklabels.set_visible(True) ax2._axislines["right"].label.set_visible(True) - self.yaxis.tick_left() + + return ax2 def twiny(self): @@ -310,11 +318,20 @@ ax2 = ParasiteAxes(self, sharey=self, frameon=False) self.parasites.append(ax2) - ax2.xaxis.set_visible(True) + + # for normal axes + self.xaxis.tick_bottom() ax2.yaxis.set_visible(False) ax2.xaxis.tick_top() ax2.xaxis.set_label_position('top') - self.xaxis.tick_bottom() + + # for axisline axes + self._axislines["top"].set_visible(False) + ax2._axislines["bottom"].set_visible(False) + ax2._axislines["top"].set_visible(True) + ax2._axislines["top"].major_ticklabels.set_visible(True) + ax2._axislines["top"].label.set_visible(True) + return ax2 def twin(self, aux_trans=None): @@ -339,6 +356,16 @@ ) self.parasites.append(ax2) + + # for normal axes + self.yaxis.tick_left() + self.xaxis.tick_bottom() + ax2.yaxis.tick_right() + ax2.yaxis.set_label_position('right') + ax2.xaxis.tick_top() + ax2.xaxis.set_label_position('top') + + # for axisline axes self._axislines["right"].set_visible(False) self._axislines["top"].set_visible(False) ax2._axislines["left"].set_visible(False) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lee...@us...> - 2010-01-29 17:33:40
|
Revision: 8104 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8104&view=rev Author: leejjoon Date: 2010-01-29 17:33:34 +0000 (Fri, 29 Jan 2010) Log Message: ----------- fix axes_grid for offsetbox api change Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/offsetbox.py trunk/matplotlib/lib/mpl_toolkits/axes_grid/inset_locator.py Modified: trunk/matplotlib/lib/matplotlib/offsetbox.py =================================================================== --- trunk/matplotlib/lib/matplotlib/offsetbox.py 2010-01-29 17:33:21 UTC (rev 8103) +++ trunk/matplotlib/lib/matplotlib/offsetbox.py 2010-01-29 17:33:34 UTC (rev 8104) @@ -958,7 +958,7 @@ if fontsize is None: fontsize = renderer.points_to_pixels(self.prop.get_size_in_points()) - def _offset(w, h, xd, yd, fontsize=fontsize, self=self): + def _offset(w, h, xd, yd, renderer, fontsize=fontsize, self=self): bbox = Bbox.from_bounds(0, 0, w, h) borderpad = self.borderpad*fontsize bbox_to_anchor = self.get_bbox_to_anchor() Modified: trunk/matplotlib/lib/mpl_toolkits/axes_grid/inset_locator.py =================================================================== --- trunk/matplotlib/lib/mpl_toolkits/axes_grid/inset_locator.py 2010-01-29 17:33:21 UTC (rev 8103) +++ trunk/matplotlib/lib/mpl_toolkits/axes_grid/inset_locator.py 2010-01-29 17:33:34 UTC (rev 8104) @@ -47,7 +47,7 @@ width, height, xdescent, ydescent = self.get_extent(renderer) - px, py = self.get_offset(width, height, 0, 0) + px, py = self.get_offset(width, height, 0, 0, renderer) bbox_canvas = mtrans.Bbox.from_bounds(px, py, width, height) tr = ax.figure.transFigure.inverted() bb = mtrans.TransformedBbox(bbox_canvas, tr) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lee...@us...> - 2010-06-05 18:31:58
|
Revision: 8382 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8382&view=rev Author: leejjoon Date: 2010-06-05 18:31:52 +0000 (Sat, 05 Jun 2010) Log Message: ----------- mpl_toolkits.axisartist now skips ticklabels of empty string which have caused problem with some TeX installation Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/texmanager.py trunk/matplotlib/lib/mpl_toolkits/axisartist/axis_artist.py Modified: trunk/matplotlib/lib/matplotlib/texmanager.py =================================================================== --- trunk/matplotlib/lib/matplotlib/texmanager.py 2010-06-05 04:19:10 UTC (rev 8381) +++ trunk/matplotlib/lib/matplotlib/texmanager.py 2010-06-05 18:31:52 UTC (rev 8382) @@ -577,6 +577,8 @@ """ return width, heigth and descent of the text. """ + if tex.strip() == '': + return 0, 0, 0 if renderer: dpi_fraction = renderer.points_to_pixels(1.) Modified: trunk/matplotlib/lib/mpl_toolkits/axisartist/axis_artist.py =================================================================== --- trunk/matplotlib/lib/mpl_toolkits/axisartist/axis_artist.py 2010-06-05 04:19:10 UTC (rev 8381) +++ trunk/matplotlib/lib/mpl_toolkits/axisartist/axis_artist.py 2010-06-05 18:31:52 UTC (rev 8382) @@ -769,6 +769,7 @@ #self._set_offset_radius(r) for (x, y), a, l in self._locs_angles_labels: + if not l.strip(): continue self._set_ref_angle(a) #+ add_angle self.set_x(x) self.set_y(y) @@ -811,6 +812,7 @@ """ whd_list = [] for (x, y), a, l in self._locs_angles_labels: + if not l.strip(): continue clean_line, ismath = self.is_math_text(l) whd = renderer.get_text_width_height_descent( clean_line, self._fontproperties, ismath=ismath) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |