Python2 bindings for cairo
Go to file
Christoph Reiter 5b3b6590e8
Merge pull request #317 from lazka/drop-python37
Drop Python 3.7 support
2023-04-22 12:08:17 +02:00
.ci Update to new static cairo build on Windows 2022-11-30 23:06:29 +01:00
.github/workflows Drop Python 3.7 support 2023-04-22 11:57:37 +02:00
cairo Add PDFSurface.set_custom_metadata() 2022-11-20 19:40:00 +01:00
docs Update some dev dependencies 2023-04-22 11:57:37 +02:00
examples Update main pycairo GTK examples to GTK4 2022-12-22 22:34:25 -05:00
tests Merge pull request #301 from lazka/newer-meson 2022-11-29 07:54:01 +01:00
.codecov.yml Rename codecov.yml 2017-12-06 15:36:12 +01:00
.gitignore Update bundled cairo for Windows wheels 2022-09-17 20:14:11 +05:30
.readthedocs.yaml readthedocs only supports Python 3.8 2021-07-20 19:16:53 +02:00
COPYING Add machine-readable license statement 2019-11-11 13:14:32 +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 Add a basic pyproject.toml 2020-10-04 11:22:36 +02:00
NEWS NEWS: add a note re meson being preferred. 2022-11-29 06:52:25 +01:00
PKG-INFO.in CI: add Python 3.9 2020-09-11 11:21:13 +02:00
README.rst Drop Python 3.7 support 2023-04-22 11:57:37 +02:00
meson.build Drop Python 3.7 support 2023-04-22 11:57:37 +02:00
meson_options.txt meson: add 'tests' option to skip tests 2020-06-03 18:26:39 +01:00
pyproject.toml Update some dev dependencies 2023-04-22 11:57:37 +02:00
setup.cfg docs: start using autodoc on the typing stubs 2021-07-20 19:01:46 +02:00
setup.py Drop Python 3.7 support 2023-04-22 11:57:37 +02: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://raw.githubusercontent.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.15.10** and works
with **Python 3.8+** and **PyPy3**. Pycairo, including this documentation, is
licensed under the `LGPL-2.1-only OR MPL-1.1 <https://spdx.org/ids-how>`__.

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://raw.githubusercontent.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.
* Fully typed and documented API.

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