mplcairo 0.1 release

Dear all,

I am pleased to announce the release of mplcairo 0.1

# Description

mplcairo is a Matplotlib backend based on the well-known cairo library,
supporting output to both raster (including interactively) and vector
formats. In other words, it provides the functionality of Matplotlib's
{,qt5,gtk3,wx,tk,macos}{agg,cairo}, pdf, ps, and svg backends.

Per Matplotlib's standard API, the backend can be selected by calling

    matplotlib.use("module://mplcairo.qt")

or setting your MPLBACKEND environment variable to `module://mplcairo.qt`
for
Qt5, and similarly for other toolkits.

The source tarball, and Py3.6 manylinux and Windows wheels, are available on
PyPI (I am looking for help to generate the OSX wheels).

See the README for more details.

# Why a new backend?

Compared to Matplotlib's builtin Agg and cairo backends, mplcairo presents
the
following features:

- Improved accuracy (e.g., with marker positioning, quad meshes, and text
  kerning).
- Support for a wider variety of font formats, such as otf and pfb, for
vector
  (PDF, PS, SVG) backends (Matplotlib's Agg backend also supports such
fonts).
- Optional support for complex text layout (right-to-left languages, etc.)
  using Raqm. **Note** that Raqm depends on Fribidi, which is licensed
under
  the LGPLv2.1+.
- Support for embedding URLs in PDF (but not SVG) output (requires
  cairo?1.15.4).
- Support for multi-page output both for PDF and PS (Matplotlib only
supports
  multi-page PDF).
- Support for custom blend modes (see `examples/operators.py`).

See the README for more details.

# Changelog from mplcairo 0.1a1 to mplcairo 0.1

- Integration with libraqm now occurs via dlopen() rather than being
selected
  at compile-time.
- Various rendering and performance improvements.
- On Travis, we now run Matplotlib's test suite with mplcairo patching the
  default Agg renderer.

Enjoy,

Antony Lee
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-users/attachments/20180722/8d7b7d05/attachment.html>

Congratulations to Antony for his hard work on this important backend!

As far as I am concerned, the cairo backend is the future of matplotlib.
Test this backend out for yourselves and help us take matplotlib to the
next level in high-quality charting!

Cheers!
Ben Root

···

On Sun, Jul 22, 2018 at 4:52 PM, Antony Lee <anntzer.lee at gmail.com> wrote:

Dear all,

I am pleased to announce the release of mplcairo 0.1

# Description

mplcairo is a Matplotlib backend based on the well-known cairo library,
supporting output to both raster (including interactively) and vector
formats. In other words, it provides the functionality of Matplotlib's
{,qt5,gtk3,wx,tk,macos}{agg,cairo}, pdf, ps, and svg backends.

Per Matplotlib's standard API, the backend can be selected by calling

    matplotlib.use("module://mplcairo.qt")

or setting your MPLBACKEND environment variable to `module://mplcairo.qt`
for
Qt5, and similarly for other toolkits.

The source tarball, and Py3.6 manylinux and Windows wheels, are available
on
PyPI (I am looking for help to generate the OSX wheels).

See the README for more details.

# Why a new backend?

Compared to Matplotlib's builtin Agg and cairo backends, mplcairo presents
the
following features:

- Improved accuracy (e.g., with marker positioning, quad meshes, and text
  kerning).
- Support for a wider variety of font formats, such as otf and pfb, for
vector
  (PDF, PS, SVG) backends (Matplotlib's Agg backend also supports such
fonts).
- Optional support for complex text layout (right-to-left languages, etc.)
  using Raqm. **Note** that Raqm depends on Fribidi, which is licensed
under
  the LGPLv2.1+.
- Support for embedding URLs in PDF (but not SVG) output (requires
  cairo?1.15.4).
- Support for multi-page output both for PDF and PS (Matplotlib only
supports
  multi-page PDF).
- Support for custom blend modes (see `examples/operators.py`).

See the README for more details.

# Changelog from mplcairo 0.1a1 to mplcairo 0.1

- Integration with libraqm now occurs via dlopen() rather than being
selected
  at compile-time.
- Various rendering and performance improvements.
- On Travis, we now run Matplotlib's test suite with mplcairo patching the
  default Agg renderer.

Enjoy,

Antony Lee

_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel at python.org
Matplotlib-devel Info Page

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-users/attachments/20180723/dc181fc0/attachment.html&gt;

Hi,

Can I help with the macOS wheel build?

Cheers,

Matthew

···

On Sun, Jul 22, 2018 at 9:52 PM, Antony Lee <anntzer.lee at gmail.com> wrote:

Dear all,

I am pleased to announce the release of mplcairo 0.1

# Description

mplcairo is a Matplotlib backend based on the well-known cairo library,
supporting output to both raster (including interactively) and vector
formats. In other words, it provides the functionality of Matplotlib's
{,qt5,gtk3,wx,tk,macos}{agg,cairo}, pdf, ps, and svg backends.

Per Matplotlib's standard API, the backend can be selected by calling

    matplotlib.use("module://mplcairo.qt")

or setting your MPLBACKEND environment variable to `module://mplcairo.qt`
for
Qt5, and similarly for other toolkits.

The source tarball, and Py3.6 manylinux and Windows wheels, are available on
PyPI (I am looking for help to generate the OSX wheels).

See the README for more details.

# Why a new backend?

Compared to Matplotlib's builtin Agg and cairo backends, mplcairo presents
the
following features:

- Improved accuracy (e.g., with marker positioning, quad meshes, and text
  kerning).
- Support for a wider variety of font formats, such as otf and pfb, for
vector
  (PDF, PS, SVG) backends (Matplotlib's Agg backend also supports such
fonts).
- Optional support for complex text layout (right-to-left languages, etc.)
  using Raqm. **Note** that Raqm depends on Fribidi, which is licensed
under
  the LGPLv2.1+.
- Support for embedding URLs in PDF (but not SVG) output (requires
  cairo?1.15.4).
- Support for multi-page output both for PDF and PS (Matplotlib only
supports
  multi-page PDF).
- Support for custom blend modes (see `examples/operators.py`).

See the README for more details.

# Changelog from mplcairo 0.1a1 to mplcairo 0.1

- Integration with libraqm now occurs via dlopen() rather than being
selected
  at compile-time.
- Various rendering and performance improvements.
- On Travis, we now run Matplotlib's test suite with mplcairo patching the
  default Agg renderer.

Enjoy,

Antony Lee

_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel at python.org
Matplotlib-devel Info Page

Yes please!
The issue is essentially that mplcairo depends on a very recent libc++.
For local builds on machines with recent enough tooling (e.g. from
homebrew), that's fine, including on OSX (
Travis CI - Test and Deploy with Confidence shows that mplcairo
does work on Travis); the problem is how to ship the new libc++ with the
wheels. On Linux, gcc has -static-libgcc -static-libstdc++ which are
basically there exactly for that purpose (
https://github.com/anntzer/mplcairo/blob/master/setup.py#L37), but it's
unclear to me how to achieve the same on OSX. Alternatively, if
recent-enough OSXes already ship a recent-enough libc++, perhaps we could
start with wheels that just target these versions of OSX (not optimal, but
better than nothing)?
Looking forward to your insights,
Antony

···

On Mon, Jul 23, 2018 at 8:52 PM, Matthew Brett <matthew.brett at gmail.com> wrote:

Hi,

Can I help with the macOS wheel build?

Cheers,

Matthew

On Sun, Jul 22, 2018 at 9:52 PM, Antony Lee <anntzer.lee at gmail.com> wrote:
> Dear all,
>
> I am pleased to announce the release of mplcairo 0.1
>
> # Description
>
> mplcairo is a Matplotlib backend based on the well-known cairo library,
> supporting output to both raster (including interactively) and vector
> formats. In other words, it provides the functionality of Matplotlib's
> {,qt5,gtk3,wx,tk,macos}{agg,cairo}, pdf, ps, and svg backends.
>
> Per Matplotlib's standard API, the backend can be selected by calling
>
> matplotlib.use("module://mplcairo.qt")
>
> or setting your MPLBACKEND environment variable to `module://mplcairo.qt`
> for
> Qt5, and similarly for other toolkits.
>
> The source tarball, and Py3.6 manylinux and Windows wheels, are
available on
> PyPI (I am looking for help to generate the OSX wheels).
>
> See the README for more details.
>
> # Why a new backend?
>
> Compared to Matplotlib's builtin Agg and cairo backends, mplcairo
presents
> the
> following features:
>
> - Improved accuracy (e.g., with marker positioning, quad meshes, and text
> kerning).
> - Support for a wider variety of font formats, such as otf and pfb, for
> vector
> (PDF, PS, SVG) backends (Matplotlib's Agg backend also supports such
> fonts).
> - Optional support for complex text layout (right-to-left languages,
etc.)
> using Raqm. **Note** that Raqm depends on Fribidi, which is licensed
> under
> the LGPLv2.1+.
> - Support for embedding URLs in PDF (but not SVG) output (requires
> cairo?1.15.4).
> - Support for multi-page output both for PDF and PS (Matplotlib only
> supports
> multi-page PDF).
> - Support for custom blend modes (see `examples/operators.py`).
>
> See the README for more details.
>
> # Changelog from mplcairo 0.1a1 to mplcairo 0.1
>
> - Integration with libraqm now occurs via dlopen() rather than being
> selected
> at compile-time.
> - Various rendering and performance improvements.
> - On Travis, we now run Matplotlib's test suite with mplcairo patching
the
> default Agg renderer.
>
> Enjoy,
>
> Antony Lee
>
> _______________________________________________
> Matplotlib-devel mailing list
> Matplotlib-devel at python.org
> Matplotlib-devel Info Page
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-devel/attachments/20180723/899e955d/attachment-0001.html&gt;

Hi,

What version has a late enough libc? It's not problem at at to
depend on 10.9, for example.

Cheers,

Matthew

···

On Mon, Jul 23, 2018 at 8:51 PM, Antony Lee <anntzer.lee at gmail.com> wrote:

Yes please!
The issue is essentially that mplcairo depends on a very recent libc++. For
local builds on machines with recent enough tooling (e.g. from homebrew),
that's fine, including on OSX
(Travis CI - Test and Deploy with Confidence shows that mplcairo
does work on Travis); the problem is how to ship the new libc++ with the
wheels. On Linux, gcc has -static-libgcc -static-libstdc++ which are
basically there exactly for that purpose
(https://github.com/anntzer/mplcairo/blob/master/setup.py#L37), but it's
unclear to me how to achieve the same on OSX. Alternatively, if
recent-enough OSXes already ship a recent-enough libc++, perhaps we could
start with wheels that just target these versions of OSX (not optimal, but
better than nothing)?
Looking forward to your insights,
Antony

On Mon, Jul 23, 2018 at 8:52 PM, Matthew Brett <matthew.brett at gmail.com> > wrote:

Hi,

Can I help with the macOS wheel build?

Cheers,

Matthew

On Sun, Jul 22, 2018 at 9:52 PM, Antony Lee <anntzer.lee at gmail.com> wrote:
> Dear all,
>
> I am pleased to announce the release of mplcairo 0.1
>
> # Description
>
> mplcairo is a Matplotlib backend based on the well-known cairo library,
> supporting output to both raster (including interactively) and vector
> formats. In other words, it provides the functionality of Matplotlib's
> {,qt5,gtk3,wx,tk,macos}{agg,cairo}, pdf, ps, and svg backends.
>
> Per Matplotlib's standard API, the backend can be selected by calling
>
> matplotlib.use("module://mplcairo.qt")
>
> or setting your MPLBACKEND environment variable to
> `module://mplcairo.qt`
> for
> Qt5, and similarly for other toolkits.
>
> The source tarball, and Py3.6 manylinux and Windows wheels, are
> available on
> PyPI (I am looking for help to generate the OSX wheels).
>
> See the README for more details.
>
> # Why a new backend?
>
> Compared to Matplotlib's builtin Agg and cairo backends, mplcairo
> presents
> the
> following features:
>
> - Improved accuracy (e.g., with marker positioning, quad meshes, and
> text
> kerning).
> - Support for a wider variety of font formats, such as otf and pfb, for
> vector
> (PDF, PS, SVG) backends (Matplotlib's Agg backend also supports such
> fonts).
> - Optional support for complex text layout (right-to-left languages,
> etc.)
> using Raqm. **Note** that Raqm depends on Fribidi, which is licensed
> under
> the LGPLv2.1+.
> - Support for embedding URLs in PDF (but not SVG) output (requires
> cairo?1.15.4).
> - Support for multi-page output both for PDF and PS (Matplotlib only
> supports
> multi-page PDF).
> - Support for custom blend modes (see `examples/operators.py`).
>
> See the README for more details.
>
> # Changelog from mplcairo 0.1a1 to mplcairo 0.1
>
> - Integration with libraqm now occurs via dlopen() rather than being
> selected
> at compile-time.
> - Various rendering and performance improvements.
> - On Travis, we now run Matplotlib's test suite with mplcairo patching
> the
> default Agg renderer.
>
> Enjoy,
>
> Antony Lee
>
> _______________________________________________
> Matplotlib-devel mailing list
> Matplotlib-devel at python.org
> Matplotlib-devel Info Page
>

That's not totally clear to me (I don't actually have an OSX machine
available, although I do get ssh access to a not-so-recent one), but by
"very recent", I mean something that supports C++17 (e.g. std::variant), so
that can't be older than 10.13 (and it's not even certain that that would
work).
(Perhaps looking into static linking is better indeed :-))
Antony

···

On Mon, Jul 23, 2018 at 9:58 PM, Matthew Brett <matthew.brett at gmail.com> wrote:

Hi,

What version has a late enough libc? It's not problem at at to
depend on 10.9, for example.

Cheers,

Matthew

On Mon, Jul 23, 2018 at 8:51 PM, Antony Lee <anntzer.lee at gmail.com> wrote:
> Yes please!
> The issue is essentially that mplcairo depends on a very recent libc++.
For
> local builds on machines with recent enough tooling (e.g. from homebrew),
> that's fine, including on OSX
> (Travis CI - Test and Deploy with Confidence shows that
mplcairo
> does work on Travis); the problem is how to ship the new libc++ with the
> wheels. On Linux, gcc has -static-libgcc -static-libstdc++ which are
> basically there exactly for that purpose
> (https://github.com/anntzer/mplcairo/blob/master/setup.py#L37), but it's
> unclear to me how to achieve the same on OSX. Alternatively, if
> recent-enough OSXes already ship a recent-enough libc++, perhaps we could
> start with wheels that just target these versions of OSX (not optimal,
but
> better than nothing)?
> Looking forward to your insights,
> Antony
>
> On Mon, Jul 23, 2018 at 8:52 PM, Matthew Brett <matthew.brett at gmail.com> > > wrote:
>>
>> Hi,
>>
>> Can I help with the macOS wheel build?
>>
>> Cheers,
>>
>> Matthew
>>
>> On Sun, Jul 22, 2018 at 9:52 PM, Antony Lee <anntzer.lee at gmail.com> > wrote:
>> > Dear all,
>> >
>> > I am pleased to announce the release of mplcairo 0.1
>> >
>> > # Description
>> >
>> > mplcairo is a Matplotlib backend based on the well-known cairo
library,
>> > supporting output to both raster (including interactively) and vector
>> > formats. In other words, it provides the functionality of
Matplotlib's
>> > {,qt5,gtk3,wx,tk,macos}{agg,cairo}, pdf, ps, and svg backends.
>> >
>> > Per Matplotlib's standard API, the backend can be selected by calling
>> >
>> > matplotlib.use("module://mplcairo.qt")
>> >
>> > or setting your MPLBACKEND environment variable to
>> > `module://mplcairo.qt`
>> > for
>> > Qt5, and similarly for other toolkits.
>> >
>> > The source tarball, and Py3.6 manylinux and Windows wheels, are
>> > available on
>> > PyPI (I am looking for help to generate the OSX wheels).
>> >
>> > See the README for more details.
>> >
>> > # Why a new backend?
>> >
>> > Compared to Matplotlib's builtin Agg and cairo backends, mplcairo
>> > presents
>> > the
>> > following features:
>> >
>> > - Improved accuracy (e.g., with marker positioning, quad meshes, and
>> > text
>> > kerning).
>> > - Support for a wider variety of font formats, such as otf and pfb,
for
>> > vector
>> > (PDF, PS, SVG) backends (Matplotlib's Agg backend also supports such
>> > fonts).
>> > - Optional support for complex text layout (right-to-left languages,
>> > etc.)
>> > using Raqm. **Note** that Raqm depends on Fribidi, which is
licensed
>> > under
>> > the LGPLv2.1+.
>> > - Support for embedding URLs in PDF (but not SVG) output (requires
>> > cairo?1.15.4).
>> > - Support for multi-page output both for PDF and PS (Matplotlib only
>> > supports
>> > multi-page PDF).
>> > - Support for custom blend modes (see `examples/operators.py`).
>> >
>> > See the README for more details.
>> >
>> > # Changelog from mplcairo 0.1a1 to mplcairo 0.1
>> >
>> > - Integration with libraqm now occurs via dlopen() rather than being
>> > selected
>> > at compile-time.
>> > - Various rendering and performance improvements.
>> > - On Travis, we now run Matplotlib's test suite with mplcairo patching
>> > the
>> > default Agg renderer.
>> >
>> > Enjoy,
>> >
>> > Antony Lee
>> >
>> > _______________________________________________
>> > Matplotlib-devel mailing list
>> > Matplotlib-devel at python.org
>> > Matplotlib-devel Info Page
>> >
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-devel/attachments/20180723/32a59cbf/attachment.html&gt;