<commit_before>from base import BaseObject, dynamicProperty

class BaseAnchor(BaseObject):

    def __repr__(self):
        pass

    x = dynamicProperty("x", "The x coordinate of the anchor.")

    def _get_x(self):
        self.raiseNotImplementedError()

    def _set_x(self, value):
        self.raiseNotImplementedError()

    y = dynamicProperty("y", "The y coordinate of the anchor.")

    def _get_y(self):
        self.raiseNotImplementedError()

    def _set_y(self, value):
        self.raiseNotImplementedError()

    position = dynamicProperty("position", "The position (x, y) of the anchor. XXX is this needed?")

    def _get_position(self):
        pass

    def _set_position(self, value):
        pass

    # --------------
    # Identification
    # --------------

    index = dynamicProperty("index", "The index of the anchor within the ordered list of the parent glyphs's anchor. XXX -1 (or None?) if the anchor does not belong to a glyph. I vote None-BK")

    def _get_index(self):
        self.raiseNotImplementedError()

    identifier = dynamicProperty("identifier", "The unique identifier for the anchor.")

    def _get_identifier(self):
        self.raiseNotImplementedError()

    name = dynamicProperty("name", "The name of the anchor.")

    def _get_name(self):
        self.raiseNotImplementedError()

    def _set_name(self):
        self.raiseNotImplementedError()

    mark = dynamicProperty("mark", "The anchor's mark. XXX need to determine the data type")

    def _get_mark(self):
        self.raiseNotImplementedError()

    def _set_mark(self):
        self.raiseNotImplementedError()

    # ---------------
    # Transformations
    # ---------------

    def transform(self, matrix):
        """
        Transform the anchor with the transformation matrix.
        The matrix must be a tuple defining a 2x2 transformation
        plus offset, aka Affine transform.
        """

    def move(self, value):
        """
        Move the anchor by value. Value must
        be a tuple defining x and y values.
        """

    def scale(self, value, center=None):
        """
        Scale the anchor by value. Value must be a
        tuple defining x and y values.

        center defines the (x, y) point at which the
        scale should originate. The default is (0, 0).
        """

    def rotate(self, angle, offset=None):
        """
        Rotate the anchor by angle.

        XXX define angle parameters.
        XXX is anything using offset?
        XXX it should be possible to define the center point for the rotation.
        """

    def skew(self, angle, offset=None):
        """
        Skew the anchor by angle.

        XXX define angle parameters.
        XXX is anything using offset?
        XXX it should be possible to define the center point for the skew.
        """

    # ----
    # Misc
    # ----

    def round(self):
        """
        Round coordinates.
        """

    def copy(self):
        """
        Copy this anchor by duplicating the data into
        a anchor that does not belong to a glyph.
        """
<commit_msg>Change mark to color.<commit_after>from base import BaseObject, dynamicProperty

class BaseAnchor(BaseObject):

    def __repr__(self):
        pass

    x = dynamicProperty("x", "The x coordinate of the anchor.")

    def _get_x(self):
        self.raiseNotImplementedError()

    def _set_x(self, value):
        self.raiseNotImplementedError()

    y = dynamicProperty("y", "The y coordinate of the anchor.")

    def _get_y(self):
        self.raiseNotImplementedError()

    def _set_y(self, value):
        self.raiseNotImplementedError()

    position = dynamicProperty("position", "The position (x, y) of the anchor. XXX is this needed?")

    def _get_position(self):
        pass

    def _set_position(self, value):
        pass

    # --------------
    # Identification
    # --------------

    index = dynamicProperty("index", "The index of the anchor within the ordered list of the parent glyphs's anchor. XXX -1 (or None?) if the anchor does not belong to a glyph. I vote None-BK")

    def _get_index(self):
        self.raiseNotImplementedError()

    identifier = dynamicProperty("identifier", "The unique identifier for the anchor.")

    def _get_identifier(self):
        self.raiseNotImplementedError()

    name = dynamicProperty("name", "The name of the anchor.")

    def _get_name(self):
        self.raiseNotImplementedError()

    def _set_name(self):
        self.raiseNotImplementedError()

    color = dynamicProperty("color", "The anchor's color. XXX need to determine the data type")

    def _get_color(self):
        self.raiseNotImplementedError()

    def _set_color(self):
        self.raiseNotImplementedError()

    # ---------------
    # Transformations
    # ---------------

    def transform(self, matrix):
        """
        Transform the anchor with the transformation matrix.
        The matrix must be a tuple defining a 2x2 transformation
        plus offset, aka Affine transform.
        """

    def move(self, value):
        """
        Move the anchor by value. Value must
        be a tuple defining x and y values.
        """

    def scale(self, value, center=None):
        """
        Scale the anchor by value. Value must be a
        tuple defining x and y values.

        center defines the (x, y) point at which the
        scale should originate. The default is (0, 0).
        """

    def rotate(self, angle, offset=None):
        """
        Rotate the anchor by angle.

        XXX define angle parameters.
        XXX is anything using offset?
        XXX it should be possible to define the center point for the rotation.
        """

    def skew(self, angle, offset=None):
        """
        Skew the anchor by angle.

        XXX define angle parameters.
        XXX is anything using offset?
        XXX it should be possible to define the center point for the skew.
        """

    # ----
    # Misc
    # ----

    def round(self):
        """
        Round coordinates.
        """

    def copy(self):
        """
        Copy this anchor by duplicating the data into
        a anchor that does not belong to a glyph.
        """

{'fraction_non_alphanumeric': 0.10561003054171356, 'fraction_numerical': 0.0016074586079408454, 'mean_word_length': 2.115673510265398, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1200455', 'n_tokens_mistral': 1712, 'n_tokens_neox': 1605, 'n_words': 611}