Python2 bindings for cairo
Go to file
Christoph Reiter a54e7dbcd4 tests: fix a pytest deprecation warning
https://docs.pytest.org/en/latest/deprecations.html#raises-warns-exec
2019-02-13 17:02:47 +01:00
.appveyor ci: move vs2017 jobs from appveyor to azure 2018-11-20 17:04:03 +01:00
.azure-pipelines ci: move vs2017 jobs from appveyor to azure 2018-11-20 17:04:03 +01:00
cairo meson: use new copy arg for configure_file and require meson 0.47 2018-11-04 11:00:27 +01:00
docs getting_started: add Python devel packages to install commands 2019-01-27 10:17:31 +01:00
examples examples/snippets: fix error in case .pyc files of snippets are present. Fixes #35 2017-05-04 16:07:24 +02:00
tests tests: fix a pytest deprecation warning 2019-02-13 17:02:47 +01:00
.appveyor.yml ci: move vs2017 jobs from appveyor to azure 2018-11-20 17:04:03 +01:00
.codecov.yml Rename codecov.yml 2017-12-06 15:36:12 +01:00
.gitignore update .gitignore 2018-04-15 12:14:59 +02:00
.travis.yml ci: don't fail on codecov errors, it's flaky atm 2018-11-07 20:55:40 +01:00
COPYING Import pycairo-0.1.4 2017-04-06 15:42:36 +02:00
COPYING-LGPL-2.1 Import pycairo-0.1.4 2017-04-06 15:42:36 +02:00
COPYING-MPL-1.1 Import pycairo-0.1.4 2017-04-06 15:42:36 +02:00
MANIFEST.in meson: install an .egg-info file 2018-06-24 15:00:07 +02:00
NEWS release 2018-11-04 11:52:06 +01:00
PKG-INFO.in build: drop Python 3.3 support 2018-11-04 11:18:47 +01:00
README.rst docs: add some instructions for building/installing pycairo. See #136 2018-11-27 16:46:42 +01:00
azure-pipelines.yml ci: move vs2017 jobs from appveyor to azure 2018-11-20 17:04:03 +01:00
meson.build meson: install .egg-info to platlib 2019-01-27 10:24:48 +01:00
meson_options.txt meson support. Fixes #114 2018-06-23 21:31:31 +02:00
setup.cfg travis-ci: add Python 3.7, drop 3.3 2018-07-07 16:33:50 +02:00
setup.py version bump 2018-11-04 11:55:34 +01:00

README.rst

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

.. image:: https://cdn.rawgit.com/pygobject/pycairo/master/docs/images/pycairo.svg
   :align: center
   :width: 370px

|

Pycairo is a Python module providing bindings for the `cairo graphics library
<https://cairographics.org/>`__. It depends on **cairo >= 1.13.1** and
works with **Python 2.7+** as well as **Python 3.4+**. Pycairo, including this
documentation, is licensed under the **LGPLv2.1** as well as the **MPLv1.1**.

The Pycairo bindings are designed to match the cairo C API as closely as
possible, and to deviate only in cases which are clearly better implemented in
a more Pythonic way.

.. code:: shell

    pip install pycairo

Installing Pycairo requires cairo including its headers. For more info see
"`Getting Started
<https://pycairo.readthedocs.io/en/latest/getting_started.html>`__".

----

.. image:: https://cdn.rawgit.com/pygobject/pycairo/master/docs/images/example.svg
   :align: right
   :width: 200px

.. code:: python

    import cairo

    with cairo.SVGSurface("example.svg", 200, 200) as surface:
        context = cairo.Context(surface)
        x, y, x1, y1 = 0.1, 0.5, 0.4, 0.9
        x2, y2, x3, y3 = 0.6, 0.1, 0.9, 0.5
        context.scale(200, 200)
        context.set_line_width(0.04)
        context.move_to(x, y)
        context.curve_to(x1, y1, x2, y2, x3, y3)
        context.stroke()
        context.set_source_rgba(1, 0.2, 0.2, 0.6)
        context.set_line_width(0.02)
        context.move_to(x, y)
        context.line_to(x1, y1)
        context.move_to(x2, y2)
        context.line_to(x3, y3)
        context.stroke()

----

Features of the Pycairo bindings:

* Provides an object oriented interface to cairo.
* Queries the error status of objects and translates them to exceptions.
* Provides a C API that can be used by other Python extensions.

If Pycairo is not what you need, have a look at `cairocffi
<https://cairocffi.readthedocs.io>`__, which is an API compatible package
using `cffi <https://cffi.readthedocs.io/>`__ or `Qahirah
<https://github.com/ldo/qahirah>`__, which is using `ctypes
<https://docs.python.org/3/library/ctypes.html>`__ and provides a more
"pythonic" API with less focus on matching the cairo C API.

For more information visit https://pycairo.readthedocs.io

.. image:: https://travis-ci.org/pygobject/pycairo.svg?branch=master
    :target: https://travis-ci.org/pygobject/pycairo

.. image:: https://ci.appveyor.com/api/projects/status/9hurdbb19lg2i9xm/branch/master?svg=true
    :target: https://ci.appveyor.com/project/lazka/pycairo/branch/master

.. image:: https://dev.azure.com/pygobject/pycairo/_apis/build/status/pygobject.pycairo
  :target: https://dev.azure.com/pygobject/pycairo/_build/latest?definitionId=1

.. image:: https://codecov.io/gh/pygobject/pycairo/branch/master/graph/badge.svg
  :target: https://codecov.io/gh/pygobject/pycairo