3
U                 @   s|  d Z ddlZddlZddlmZ ddlmZ yddlm	Z	 W n  e
k
r\   ddlm	Z	 Y nX dZdZdZd
d Zee	ddZG dd deZeZejeejeejeejeejeiZdd Zdd Zdd Zdd Zddl m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z' yddl(m)Z) W n e
k
r   Y nX ddl*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 ddl1m2Z2m3Z3m4Z4m5Z5 ddl6m7Z7 ddl8m9Z9 ddlT dS ) z
    cairocffi
    ~~~~~~~~~

    CFFI-based cairo bindings for Python. See README for details.

    :copyright: Copyright 2013 by Simon Sapin
    :license: BSD, see LICENSE for details.

    N   )	constants)FileNotFoundError)ffiz0.7.2z1.10.0
   c             G   sv   x^|D ]V}xP|d| gD ]@}y&t jj|}|r@| j|}|r@|S W q tk
rV   Y qX qW qW tddj| dS )z@Try various names for the same library, for different platforms.libz%dlopen() failed to load a library: %sz / N)ctypesutilfind_librarydlopenOSErrorjoin)r   namesnamelib_namepathr    r   R/var/www/html/enquirykeeper_venv/lib/python3.6/site-packages/cairocffi/__init__.pyr      s    

r   cairozcairo-2c                   s    e Zd ZdZ fddZ  ZS )
CairoErrorz*Raised when cairo returns an error status.c                s   t t| j| || _d S )N)superr   __init__status)selfmessager   )	__class__r   r   r   3   s    zCairoError.__init__)__name__
__module____qualname____doc__r   __classcell__r   r   )r   r   r   1   s   r   c             C   sN   | t jkrJtj| t}tjtjd| }d|tjtj	| f }||| dS )zBTake a cairo status code and raise an exception if/as appropriate.Zcairo_status_tzcairo returned %s: %sN)
r   STATUS_SUCCESSSTATUS_TO_EXCEPTIONgetr   r   stringcastr   Zcairo_status_to_string)r   	exceptionZstatus_namer   r   r   r   _check_statusC   s    
r'   c               C   s   t j S )a^  Return the cairo version number as a single integer,
    such as 11208 for ``1.12.8``.
    Major, minor and micro versions are "worth" 10000, 100 and 1 respectively.

    Can be useful as a guard for method not available in older cairo versions::

        if cairo_version() >= 11000:
            surface.set_mime_data('image/jpeg', jpeg_bytes)

    )r   cairo_versionr   r   r   r   r(   M   s    r(   c               C   s   t jtj jdS )z@Return the cairo version number as a string, such as ``1.12.8``.ascii)r   r$   r   cairo_version_stringdecoder   r   r   r   r*   [   s    r*   c               C   s   t jt t jd< dS )u   Install cairocffi so that ``import cairo`` imports it.

    cairoffi’s API is compatible with pycairo as much as possible.

    r   N)sysmodulesr   r   r   r   r   install_as_pycairo`   s    r.   )SurfaceImageSurface
PDFSurface	PSSurface
SVGSurfaceRecordingSurfaceWin32PrintingSurface)
XCBSurface)PatternSolidPatternSurfacePatternGradientLinearGradientRadialGradient)FontFaceToyFontFace
ScaledFontFontOptions)Context)Matrix)*)r   r   r   ):r   r,   ctypes.utilr    r   compatr   Z_ffir   ImportErrorZ	ffi_buildVERSIONversionversion_infor   r   	Exceptionr   ErrorSTATUS_NO_MEMORYMemoryErrorSTATUS_READ_ERRORIOErrorSTATUS_WRITE_ERRORSTATUS_TEMP_FILE_ERRORSTATUS_FILE_NOT_FOUNDr"   r'   r(   r*   r.   Zsurfacesr/   r0   r1   r2   r3   r4   r5   xcbr6   patternsr7   r8   r9   r:   r;   r<   Zfontsr=   r>   r?   r@   contextrA   ZmatrixrB   r   r   r   r   <module>   sD   

$ 