Normalizers

fontParts.base.normalizers.normalizeFileFormatVersion(value)[source]

Normalizes a font’s file format version.

  • value must be a type-int.

  • Returned value will be a int.

Kerning

fontParts.base.normalizers.normalizeKerningKey(value)[source]

Normalizes kerning key.

  • value must be a tuple or list.

  • value must contain only two members.

  • value items must be String.

  • value items must be at least one character long.

  • Returned value will be a two member tuple of unencoded unicode strings.

fontParts.base.normalizers.normalizeKerningValue(value)[source]

Normalizes kerning value.

  • value must be an Integer/Float.

  • Returned value is the same type as input value.

Groups

fontParts.base.normalizers.normalizeGroupKey(value)[source]

Normalizes group key.

  • value must be a String.

  • value must be least one character long.

  • Returned value will be an unencoded unicode string.

fontParts.base.normalizers.normalizeGroupValue(value)[source]

Normalizes group value.

  • value must be a list.

  • value items must normalize as glyph names with normalizeGlyphName.

  • Returned value will be a tuple of unencoded unicode strings.

Features

fontParts.base.normalizers.normalizeFeatureText(value)[source]

Normalizes feature text.

  • value must be a String.

  • Returned value will be an unencoded unicode string.

Lib

fontParts.base.normalizers.normalizeLibKey(value)[source]

Normalizes lib key.

  • value must be a String.

  • value must be at least one character long.

  • Returned value will be an unencoded unicode string.

fontParts.base.normalizers.normalizeLibValue(value)[source]

Normalizes lib value.

  • value must not be None.

  • Returned value is the same type as the input value.

Layers

fontParts.base.normalizers.normalizeLayerOrder(value, font)[source]

Normalizes layer order.

** value must be a tuple or list. * value items must normalize as layer names with

  • value must contain layers that exist in font.

  • value must not contain duplicate layers.

  • Returned tuple will be unencoded unicode strings for each layer name.

fontParts.base.normalizers.normalizeLayerName(value)[source]

Normalizes layer name.

  • value must be a String.

  • value must be at least one character long.

  • Returned value will be an unencoded unicode string.

Glyphs

fontParts.base.normalizers.normalizeGlyphOrder(value)[source]

Normalizes glyph order.

** value must be a tuple or list. * value items must normalize as glyph names with

  • value must not repeat glyph names.

  • Returned value will be a tuple of unencoded unicode strings.

Identification

fontParts.base.normalizers.normalizeGlyphName(value)[source]

Normalizes glyph name.

  • value must be a String.

  • value must be at least one character long.

  • Returned value will be an unencoded unicode string.

fontParts.base.normalizers.normalizeGlyphUnicodes(value)[source]

Normalizes glyph unicodes.

  • value must be a list.

  • value items must normalize as glyph unicodes with normalizeGlyphUnicode.

  • value must not repeat unicode values.

  • Returned value will be a tuple of ints.

fontParts.base.normalizers.normalizeGlyphUnicode(value)[source]

Normalizes glyph unicode.

  • value must be an int or hex (represented as a string).

  • value must be in a unicode range.

  • Returned value will be an int.

Metrics

fontParts.base.normalizers.normalizeGlyphWidth(value)[source]

Normalizes glyph width.

  • value must be a Integer/Float.

  • Returned value is the same type as the input value.

fontParts.base.normalizers.normalizeGlyphLeftMargin(value)[source]

Normalizes glyph left margin.

  • value must be a Integer/Float or None.

  • Returned value is the same type as the input value.

fontParts.base.normalizers.normalizeGlyphRightMargin(value)[source]

Normalizes glyph right margin.

  • value must be a Integer/Float or None.

  • Returned value is the same type as the input value.

fontParts.base.normalizers.normalizeGlyphHeight(value)[source]

Normalizes glyph height.

  • value must be a Integer/Float.

  • Returned value is the same type as the input value.

fontParts.base.normalizers.normalizeGlyphBottomMargin(value)[source]

Normalizes glyph bottom margin.

  • value must be a Integer/Float or None.

  • Returned value is the same type as the input value.

fontParts.base.normalizers.normalizeGlyphTopMargin(value)[source]

Normalizes glyph top margin.

  • value must be a Integer/Float or None.

  • Returned value is the same type as the input value.

Contours

fontParts.base.normalizers.normalizeContour(value)[source]

Normalizes contour.

  • value must be a instance of BaseContour

  • Returned value is the same type as the input value.

Points

fontParts.base.normalizers.normalizePointType(value)[source]

Normalizes point type.

  • value must be an string.

  • value must be one of the following:

    move

    line

    offcurve

    curve

    qcurve

  • Returned value will be an unencoded unicode string.

fontParts.base.normalizers.normalizePointName(value)[source]

Normalizes point name.

  • value must be a String.

  • value must be at least one character long.

  • Returned value will be an unencoded unicode string.

Segments

fontParts.base.normalizers.normalizeSegmentType(value)[source]

Normalizes segment type.

  • value must be a String.

  • value must be one of the following:

move

line

curve

qcurve

  • Returned value will be an unencoded unicode string.

BPoints

fontParts.base.normalizers.normalizeBPointType(value)[source]

Normalizes bPoint type.

  • value must be an string.

  • value must be one of the following:

    corner

    curve

  • Returned value will be an unencoded unicode string.

Components

Anchors

fontParts.base.normalizers.normalizeAnchorName(value)[source]

Normalizes anchor name.

  • value must be a String or None.

  • value must be at least one character long if String.

  • Returned value will be an unencoded unicode string or None.

Note

fontParts.base.normalizers.normalizeGlyphNote(value)[source]

Normalizes Glyph Note.

  • value must be a String.

  • Returned value is an unencoded unicode string

Guidelines

fontParts.base.normalizers.normalizeGuidelineName(value)[source]

Normalizes guideline name.

  • value must be a String.

  • value must be at least one character long.

  • Returned value will be an unencoded unicode string.

Generic

Positions

fontParts.base.normalizers.normalizeX(value)[source]

Normalizes x coordinate.

  • value must be an Integer/Float.

  • Returned value is the same type as the input value.

fontParts.base.normalizers.normalizeY(value)[source]

Normalizes y coordinate.

  • value must be an Integer/Float.

  • Returned value is the same type as the input value.

fontParts.base.normalizers.normalizeCoordinateTuple(value)[source]

Normalizes coordinate tuple.

  • value must be a tuple or list.

  • value must have exactly two items.

  • value items must be an Integer/Float.

  • Returned value is a tuple of two values of the same type as the input values.

fontParts.base.normalizers.normalizeBoundingBox(value)[source]

Normalizes bounding box.

  • value must be an tuple or list.

  • value must have exactly four items.

  • value items must be Integer/Float.

  • xMin and yMin must be less than or equal to the corresponding xMax, yMax.

  • Returned value will be a tuple of four float.

Identification

fontParts.base.normalizers.normalizeIndex(value)[source]

Normalizes index.

  • value must be an int or None.

  • Returned value is the same type as the input value.

fontParts.base.normalizers.normalizeIdentifier(value)[source]

Normalizes identifier.

  • value must be an String or None.

  • value must not be longer than 100 characters.

  • value must not contain a character out the range of 0x20 - 0x7E.

  • Returned value is an unencoded unicode string.

fontParts.base.normalizers.normalizeColor(value)[source]

Normalizes Color.

  • value must be an tuple or list.

  • value must have exactly four items.

  • value color components must be between 0 and 1.

  • Returned value is a tuple containing four float values.

Interpolation

fontParts.base.normalizers.normalizeInterpolationFactor(value)[source]

Normalizes interpolation factor.

  • value must be an Integer/Float, tuple or list.

  • If value is a tuple or list, it must have exactly two items. These items must be instances of Integer/Float.

  • Returned value is a tuple of two float.

Transformations

fontParts.base.normalizers.normalizeTransformationMatrix(value)[source]

Normalizes transformation matrix.

  • value must be an tuple or list.

  • value must have exactly six items. Each of these items must be an instance of Integer/Float.

  • Returned value is a tuple of six float.

fontParts.base.normalizers.normalizeTransformationOffset(value)[source]

Normalizes transformation offset.

  • value must be an tuple.

  • value must have exactly two items. Each item must be an instance of Integer/Float.

  • Returned value is a tuple of two float.

fontParts.base.normalizers.normalizeTransformationSkewAngle(value)[source]

Normalizes transformation skew angle.

  • value must be an Integer/Float, tuple or list.

  • If value is a tuple or list, it must have exactly two items. These items must be instances of Integer/Float.

  • value items must be between -360 and 360.

  • If the value is negative, it is normalized by adding it to 360

  • Returned value is a tuple of two float between 0 and 360.

fontParts.base.normalizers.normalizeTransformationScale(value)[source]

Normalizes transformation scale.

  • value must be an Integer/Float, tuple or list.

  • If value is a tuple or list, it must have exactly two items. These items must be instances of Integer/Float.

  • Returned value is a tuple of two floats.

Files

fontParts.base.normalizers.normalizeFilePath(value)[source]

Normalizes file path.

  • value must be a String.

  • Returned value is an unencoded unicode string

Standard

fontParts.base.normalizers.normalizeBoolean(value)[source]

Normalizes a boolean.

  • value must be an int with value of 0 or 1, or a bool.

  • Returned value will be a boolean.