"""config - set GMT defaults globally or locally."""frompygmt.clibimportSession
[docs]classconfig:# pylint: disable=invalid-name""" Set GMT defaults globally or locally. Change GMT defaults globally:: pygmt.config(PARAMETER=value) Change GMT defaults locally by using it as a context manager:: with pygmt.config(PARAMETER=value): ... Full GMT defaults list at :gmt-docs:`gmt.conf.html` """def__init__(self,**kwargs):# Save values so that we can revert to their initial valuesself.old_defaults={}self.special_params={"FONT":["FONT_ANNOT_PRIMARY","FONT_ANNOT_SECONDARY","FONT_HEADING","FONT_LABEL","FONT_TAG","FONT_TITLE",],"FONT_ANNOT":["FONT_ANNOT_PRIMARY","FONT_ANNOT_SECONDARY"],"FORMAT_TIME_MAP":["FORMAT_TIME_PRIMARY_MAP","FORMAT_TIME_SECONDARY_MAP"],"MAP_ANNOT_OFFSET":["MAP_ANNOT_OFFSET_PRIMARY","MAP_ANNOT_OFFSET_SECONDARY",],"MAP_GRID_CROSS_SIZE":["MAP_GRID_CROSS_SIZE_PRIMARY","MAP_GRID_CROSS_SIZE_SECONDARY",],"MAP_GRID_PEN":["MAP_GRID_PEN_PRIMARY","MAP_GRID_PEN_SECONDARY"],"MAP_TICK_LENGTH":["MAP_TICK_LENGTH_PRIMARY","MAP_TICK_LENGTH_SECONDARY"],"MAP_TICK_PEN":["MAP_TICK_PEN_PRIMARY","MAP_TICK_PEN_SECONDARY"],}withSession()aslib:forkeyinkwargs:ifkeyinself.special_params:forkinself.special_params[key]:self.old_defaults[k]=lib.get_default(k)else:self.old_defaults[key]=lib.get_default(key)# call gmt set to change GMT defaultsarg_str=" ".join(["{}={}".format(key,value)forkey,valueinkwargs.items()])withSession()aslib:lib.call_module("set",arg_str)def__enter__(self):returnselfdef__exit__(self,exc_type,exc_value,traceback):# revert to initial valuesarg_str=" ".join(["{}={}".format(key,value)forkey,valueinself.old_defaults.items()])withSession()aslib:lib.call_module("set",arg_str)