Python2 bindings for cairo
Go to file
Christoph Reiter 1d2c452ce2 Rename codecov.yml
The alternative name works now
2017-12-06 15:36:12 +01:00
.appveyor appveyor: run coverage.py on msvc jobs (#78) 2017-09-17 09:53:05 +02:00
cairo enums: ensure that enum values passed in match the ones passed back out 2017-11-07 23:01:57 +01:00
docs README: include an example 2017-10-15 20:56:14 +02: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 enums: ensure that enum values passed in match the ones passed back out 2017-11-07 23:01:57 +01:00
.appveyor.yml setup: get rid of setuptools again 2017-09-15 14:28:05 +02:00
.codecov.yml Rename codecov.yml 2017-12-06 15:36:12 +01:00
.gitignore tests: coverage 2017-08-15 21:59:20 +02:00
.travis.yml travis: grrr^2 2017-10-15 22:10:55 +02: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 docs: add a logo 2017-05-11 12:44:43 +02:00
NEWS release 2017-11-08 13:42:16 +01:00
README.rst README: some separators 2017-10-15 21:01:20 +02:00
setup.cfg flake8: skip new error 2017-11-07 15:40:37 +01:00
setup.py setup.py: Show a warning regarding pkgconfig paths when running bdist_wheel. Fixes #83 2017-11-28 11:15:26 +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.3+**. 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.

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.

----

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

.. code:: python

    import cairo

    surface = cairo.SVGSurface("example.svg", 200, 200)
    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()
    surface.finish()

----

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://codecov.io/gh/pygobject/pycairo/branch/master/graph/badge.svg
  :target: https://codecov.io/gh/pygobject/pycairo