OwlCyberSecurity - MANAGER
Edit File: fontconfig_pattern.cpython-38.pyc
U ��]S � @ s� d Z ddlmZ ddlZddlmZmZmZmZm Z m Z mZ dZe� de �jZe� de �jZdZe� de �jZe� de �jZG d d � d e�Ze� e� j�Zdd� ZdS ) z� A module for parsing and generating `fontconfig patterns`_. .. _fontconfig patterns: https://www.freedesktop.org/software/fontconfig/fontconfig-user.html � )� lru_cacheN)�Literal� ZeroOrMore�Optional�Regex� StringEnd�ParseException�Suppressz\\\-:,z\\([%s])z([%s])z\\=_:,c @ s� e Zd ZdZddddddddddd d ddd dddddddddd�Zdd� Zdd� Zdd� Zdd� Zd d!� Z d"d#� Z d$d%� Zd&d'� Zd(d)� Z d*S )+�FontconfigPatternParserz� A simple pyparsing-based parser for `fontconfig patterns`_. .. _fontconfig patterns: https://www.freedesktop.org/software/fontconfig/fontconfig-user.html )�weight�light)r �book)r �regular)r �normal)r �medium)r �demibold)r �semibold)r �bold)r z extra bold)r �black)r �heavy)�slantr )r �italic)r �oblique)�widthzultra-condensed)r zextra-condensed)r � condensed)r zsemi-condensed)r �expanded)r zextra-expanded)r zultra-expanded)ZthinZ extralightZ ultralightr r r r r r r r Z extraboldr r Zromanr r ZultracondensedZextracondensedr Z semicondensedr Z extraexpandedZ ultraexpandedc C s� t dttf ��| j�}t d��| j�}t d��| j�}t dttf ��| j�}|tt d�| � �| j �}|tt d�| � �| j�}|tt d�� | ttt d��| � |B �| j �}t|�tt d�| � tt d�| � t� }|| _t| _d S )Nz([^%s]|(\\[%s]))*z([0-9]+\.?[0-9]*|\.[0-9]+)z[a-z]+�,�=�-�:)r �family_puncZsetParseAction�_family�_size�_name� value_punc�_valuer r � _families�_point_sizesr � _propertyr r �_parserr ) �self�family�size�name�valueZfamiliesZpoint_sizes�property�pattern� r1 �?/usr/lib/python3/dist-packages/matplotlib/fontconfig_pattern.py�__init__A s� �������������� �� ����� ��������z FontconfigPatternParser.__init__c C sd i }| _ z| j�|� W n4 | jk rN } ztd||f ��W 5 d}~X Y nX d| _ | j�� |S )z� Parse the given fontconfig *pattern* and return a dictionary of key/value pairs useful for initializing a :class:`font_manager.FontProperties` object. z$Could not parse font string: '%s' %sN)�_propertiesr) ZparseStringr � ValueErrorZ resetCache)r* r0 �props�er1 r1 r2 �parseq s � zFontconfigPatternParser.parsec C s t dt|d ��gS �Nz\1r )�family_unescape�str�r* �s�loc�tokensr1 r1 r2 r! � s zFontconfigPatternParser._familyc C s t |d �gS �Nr )�floatr<