@@ -1890,44 +1890,32 @@ def axisinfo(self, unit, axis):
18901890 default_limits = (datemin , datemax ))
18911891
18921892
1893- class _rcParam_helper :
1893+ class _SwitchableDateConverter :
18941894 """
1895- This helper class is so that we can set the converter for dates
1896- via the validator for the rcParams `date.converter` and
1897- `date.interval_multiples`. Never instatiated .
1895+ Helper converter-like object that generates and dispatches to
1896+ temporary ConciseDateConverter or DateConverter instances based on
1897+ :rc: `date.converter` and :rc:`date.interval_multiples` .
18981898 """
18991899
1900- conv_st = 'auto'
1901- int_mult = True
1902-
1903- @classmethod
1904- def set_converter (cls , s ):
1905- """Called by validator for rcParams date.converter"""
1906- if s not in ['concise' , 'auto' ]:
1907- raise ValueError ('Converter must be one of "concise" or "auto"' )
1908- cls .conv_st = s
1909- cls .register_converters ()
1910-
1911- @classmethod
1912- def set_int_mult (cls , b ):
1913- """Called by validator for rcParams date.interval_multiples"""
1914- cls .int_mult = b
1915- cls .register_converters ()
1916-
1917- @classmethod
1918- def register_converters (cls ):
1919- """
1920- Helper to register the date converters when rcParams `date.converter`
1921- and `date.interval_multiples` are changed. Called by the helpers
1922- above.
1923- """
1924- if cls .conv_st == 'concise' :
1925- converter = ConciseDateConverter
1926- else :
1927- converter = DateConverter
1900+ @staticmethod
1901+ def _get_converter ():
1902+ converter_cls = {
1903+ "concise" : ConciseDateConverter , "auto" : DateConverter }[
1904+ mpl .rcParams ["date.converter" ]]
1905+ interval_multiples = mpl .rcParams ["date.interval_multiples" ]
1906+ return converter_cls (interval_multiples = interval_multiples )
1907+
1908+ def axisinfo (self , * args , ** kwargs ):
1909+ return self ._get_converter ().axisinfo (* args , ** kwargs )
1910+
1911+ def default_units (self , * args , ** kwargs ):
1912+ return self ._get_converter ().default_units (* args , ** kwargs )
1913+
1914+ def convert (self , * args , ** kwargs ):
1915+ return self ._get_converter ().convert (* args , ** kwargs )
1916+
19281917
1929- interval_multiples = cls .int_mult
1930- convert = converter (interval_multiples = interval_multiples )
1931- units .registry [np .datetime64 ] = convert
1932- units .registry [datetime .date ] = convert
1933- units .registry [datetime .datetime ] = convert
1918+ units .registry [np .datetime64 ] = \
1919+ units .registry [datetime .date ] = \
1920+ units .registry [datetime .datetime ] = \
1921+ _SwitchableDateConverter ()
0 commit comments