def get_user_loc(self, master_or_instance):
user_loc = self.default_user_loc<EOL>if self.tag != "<STR_LIT>":<EOL><INDENT>user_loc = self.get_design_loc(master_or_instance)<EOL><DEDENT>if self.user_loc_key is not None and hasattr(<EOL>master_or_instance, self.user_loc_key<EOL>):<EOL><INDENT>user_loc_str = getattr(master_or_instance, self.user_loc_key)<EOL>new_user_loc = user_loc_string_to_value(self.tag, user_loc_str)<EOL>if new_user_loc is not None:<EOL><INDENT>user_loc = new_user_loc<EOL><DEDENT><DEDENT>if self.user_loc_param is not None:<EOL><INDENT>class_ = master_or_instance.customParameters[self.user_loc_param]<EOL>if class_ is not None:<EOL><INDENT>user_loc = class_to_value(self.tag, class_)<EOL><DEDENT><DEDENT>loc_param = master_or_instance.customParameters["<STR_LIT>"]<EOL>try:<EOL><INDENT>for location in loc_param:<EOL><INDENT>if location.get("<STR_LIT>") == self.name:<EOL><INDENT>user_loc = int(location["<STR_LIT>"])<EOL><DEDENT><DEDENT><DEDENT>except (TypeError, KeyError):<EOL><INDENT>pass<EOL><DEDENT>return user_loc<EOL>
Get the user location of a Glyphs master or instance.
        Masters in Glyphs can have a user location in the "Axis Location"
        custom parameter.

        The user location is what the user sees on the slider in his
        variable-font-enabled UI. For weight it is a value between 0 and 1000,
        400 being Regular and 700 Bold.

        For width it's a percentage of extension with respect to the normal
        width, 100 being normal, 200 Ultra-expanded = twice as wide.
        It may or may not match the design location.