Changelog

1.21.0-2022-03-07

  • 需要使用Python3.7+ #pr-250

  • 需要介子0.53+

  • 使用 setup.py 不建议直接构建/安装pycairo。改用介子。

  • setup.py 现在需要安装工具。此前,这是可选的。

  • 完整的API引用现在包含在类型存根中,因此它可以由IDE使用/显示。 #pr-236 #pr-252

1.20.1-2021-06-03

  • 以诗促发展 #pr-232

  • Py:尊重PKG_CONFIG环境变量 #pr-235

  • 将IMPORT_CAROLO设为内联,而不是静态 #pr-224

  • 文档:修复Pattern.set_Filter()文档中的示例 #pr-221

  • Docs:使用较新的狮身人面像修复构建 #pr-222

  • 文档:固定NumPy宽度、高度-示例中的约定 #pr-231

  • DOCS:Rel_Curve_TO的最后一个参数应为dy3,而不是dy4 #pr-230

  • Mypy:修复Mypy 0.800+ #pr-233

  • Mypy:不要通过pytest运行mypy #pr-234

1.20.0-2020年10月5日

  • 需要Python 3.6+ #pr-201

  • 需要cairo 1.15.10+ #pr-204

  • 文档:支持Sphinx 3.0 #pr-207

  • 介子:添加“测试”选项跳过测试 #pr-188

  • 窗:构建控制盘 #pr-197

  • 添加对Python3.9和3.10的支持 #pr-198 #pr-202

  • 示例:添加Jupyter笔记本示例 #pr-181

  • 在传递未在二进制模式下打开的文件对象时提前引发错误 #pr-205

  • 添加pyproject.toml项目文件 #pr-206

1.19.1-2020年2月16日

  • docs: Add moderngl in the integration section. #pr-174 (Einar Forselv)

  • 支持操作系统路径PyPy3>=7.3.0时

1.19.0-2020年1月23日

  • 不再支持Python2 #pr-172

  • Add machine-readable license statement #pr-158 (Maxim Ivanov)

  • travis ci:手动设置sysroot以便使用正确的SDK (Stuart Axon

  • 在Windows上支持Python3.8(由于DLL查找更改)

  • 修复docs/types中set_dash()offset参数的错误类型。

1.18.2-2019年10月24日

  • 修复了python3.8的一个小的兼容性问题(修复了测试套件)

1.18.1-2019年4月19日

1.18.0-2018年11月4日

建造:
  • 放弃 python 3.3支持

  • meson 构建需要 meson >=0.47(was>=0.46)

  • 使用GCC8修复各种生成警告

  • meson:在非Windows系统上不要链接到libpython #pr-120

  • meson: Improve support for Visual Studio builds #pr-121 (Chun-wei Fan)

  • setup.py: Support specifying custom --pkgconfigdir #pr-127 (Michał Górny)

修正:
新API:

有些仅在使用较新的cairo版本构建时可用,有关详细信息,请参阅链接的api文档。

1.17.1-2018年7月7日

1.17.0-2018年4月15日

  • cairo.Surface and cairo.Device can now be used as context managers. #103

  • 修复引发cairo错误时的泄漏。

  • 修复映射曲面GCED而不是UNMAPPED时的泄漏。

  • 通过定义 PYCAIRO_NO_IMPORT . #110

  • 实施PEP 561(添加了一个py.typed标记)

1.16.3-2018年2月27日

  • 发货python类型注释存根。它们目前得到了Mypy和Pycharm的支持。 #99 #pr-101

1.16.2-2018年2月10日

  • setup.py:对debian pybuild怪癖的一些修复。 #98

1.16.1-2018年2月6日

1.16.0-2018年2月5日

  • 添加 get_include() 返回编译器的函数包含与pycairo C API接口所需的路径 #92

  • 打包程序注意:默认的头安装路径已更改,但在旧位置安装了一个compat头,以防止任何人硬编码旧路径而不是使用pkg配置时损坏。以防有人想知道为什么现在有两个头文件。

1.15.6-2018年1月30日

  • 实验性Pypy和Pypy3支持 #90

1.15.5-2018年1月29日

  • 使用cairo 1.15.10支持Windows下的Unicode路径+ #pr-87

  • 构建轮子时不包含pkg配置文件 #83

1.15.4-2017年11月8日

修正:
  • 使用(未使用的)大值和负值修复某些枚举会话错误。 #pr-81

测验:

1.15.3-2017年9月17日

修正:
  • setup.py:将pkgconfig文件安装到/usr/share/pkgconfig中,以解决在fedora上构建jhbuild而不是拾取它的问题。

  • 在big endian机器上修复测试。 #75

  • Support building with MSVC #pr-72 (Chun-wei Fan)

测验:
  • 测试基于AppVeyor的MSVC

1.15.2-2017年9月3日

修正:
  • setup.py: Install pkgconfig file to the same library prefix that Python uses. (/usr/lib64 instead of /usr/lib under Fedora for example) #70 #pr-71 (Sander Sweers)

1.15.1-2017年8月19日

修正:
  • 改进了对Python文件系统路径的支持,包括 os.PathLike 。看见 _PathLike 有关详细信息,请参阅。

  • 各种小修复

变化:
测验:
  • 将测试覆盖率从约70%提高到约90%

1.15.0-2017年7月24日

新功能:
变化:

1.14.1-2017年7月24日

修正:

1.14.0-2017年7月12日

一般:
  • 至少需要 Cairo 1.13.1(Ubuntu 14.04中的Snapshop)

测验:
新功能:

1.13.4-2017年7月12日

修正:
  • 修复罕见的车祸 get_data() 在python 3(1.13.3回归)下。

1.13.3-2017年6月1日

修正:
  • 修复图像表面泄漏,以防 get_data() 在python 3下使用。 #41

文档:

1.13.2-2017年5月21日

修正:
  • 修复在某些情况下无法安装pycairo的pip。 #39

测试:
  • 使用msys2和appveyor为Windows添加了连续测试。 #19

1.13.1-2017年5月7日

修正:
  • setup.py安装:修复生成的pkg配置文件,如果 --home--user 指定。 #34

  • Fix a build error on macOS Sierra. #pr-36 (Nicolas P. Rougier)

  • 示例:在.pyc文件存在时修复代码段示例。 #35

文档:

1.13.0-2017年5月3日

新功能:
修正:
  • 固定的签名 ImageSurface python 2的缓冲区接口(int->py-ssize-t)

  • py:确保在python 2中使用“-fno strict aliasing”。

测试:
  • 增加了薄片8和Sphinx的Travis CI测试。 #pr-30#pr-32

  • 测试套件现在有了numpy和pygame集成的可选测试。

1.12.0-2017年4月18日

一般:
  • 要求 Cairo 1.12.0

  • 使用C90并在Travis CI上强制执行。 #5#fdo-22940

常数:
Error
Matrix
  • 将矩阵组件公开为读/写属性。例如 Matrix.xx

  • 修复python 3下乘法运算符的类型检查。 #8#fdo-89162 (劳伦斯·奥利维罗)

Surface
Context
PDFSurface
SVGSurface
XCBSurface
PSSurface
Pattern
RecordingSurface
FontOptions
ScaledFont

1.11.1-2017年4月12日

此版本修复了ABI损坏。我错过了原来的 pycairo master 已经打破了ABI相比,1.10.0。

1.11.0-2017年4月9日

此版本基于pycairo 1.10.0的python 2版本,并且与py2cairo 1.10.0和py3cairo 1.10.0兼容。

一般变更:
  • 要求 Cairo 1.10.2+

  • 切换到语义版本控制

  • 将构建系统切换到distutils/setup.py(xpyb集成可以通过传递启用) --enable-xpyb 安装.py build)

  • 移动到github:https://github.com/pygobject/pycairo

新功能:
错误修复:
  • 修复传递给pycairo的文件对象的read()/write()方法引发异常时的崩溃。

  • 修复在64位窗口上传递给win32surface和win32printingsurface的句柄的可能值截断。 #fdo-57493

2011年10月1日-2001年5月

一般变更:

py2cairo 1.10.0需要cairo 1.10.0(或更高版本)。

新常量:

cairo.FORMAT_RGB16_565

错误修复:
  • context.get_source().get_surface()失败 #fdo-33013

  • 添加对“./waf configure--libdir=xxx”的支持 #fdo-30230

文件变更:
  • 升级到使用sphinx 1.0.7。

  • 在pycairo存档文件中包含HTML文档。

生成更改:
  • 将WAF更新为1.6.3

  • 删除setup.py

其他变更:
  • 改进/简化Unicode文件名支持。

  • 改进/简化Unicode文本支持。

2010年5月20日

一般变更:

pycairo 1.8.10需要cairo 1.8.10(或更高版本)。

新类/类型:
  • win32打印表面

  • xcbsurface-使用xpyb添加xcb支持

错误修复:
其他变更:

测试已更新。

win32printingsurface和xcbsurface的更改意味着pycairo 1.8.10与pycairo 1.8.8不兼容。因此,需要重新编译使用pycairo C API(如pygtk)的模块,才能使用pycairo 1.8.10。

1.8.8-2009年8月26日

一般变更:
  • pycairo 1.8.8需要cairo 1.8.8(或更高版本)。

  • 从cvs移动到git。

  • 添加对WAF构建工具的支持。

更新方法:
  • pdf/ps/svgsurface构造函数现在接受none作为文件名。

1.8.6-2009年6月25日

一般变更:

pycairo 1.8.6需要cairo 1.8.6(或更高版本)

错误修复:
  • imagesurface.create_from_png_read_func fix

  • ToyFontFace类型修复

  • #fdo-19221 :将cairo.matrix“*”运算符还原为其最初的工作方式。

其他变更:

文档已完成。

2009年3月19日

一般变更:

pycairo 1.8.4需要cairo 1.8.4(或更高版本)和python 2.6

错误修复:
  • 20674:为渐变图案添加get/set_extend

新类:

cairo.ToyFontFace

新方法:
Pattern.get_extend
Pattern.set_extend
ToyFontFace.get_family
ToyFontFace.get_slant
ToyFontFace.get_weight
删除的方法:
SurfacePattern.get_extend
SurfacePattern.set_extend
其他变更:

已重新启用具有流函数的曲面的线程。文档更新。

2009年1月15日

pycairo 1.8.0导致一些使用线程的应用程序崩溃。因此,建议对线程应用程序升级到1.8.2。

错误修复:
  • #fdo-19287 :线程支持导致cairo.imagesurface崩溃

新方法:

Context.set_scaled_font

API更改:

矩阵乘法:

old code: matrix3 = matrix1 * matrix2
new equivalent code: matrix3 = matrix1.multiply(matrix2)
matrix3 = matrix1 * matrix2
is now equivalent to matrix3 = matrix2.multiply(matrix1)
which is consistent with standard matrix multiplication.

1.8.0-2008年12月15日

一般变更:

pycairo 1.8.0需要cairo 1.8.0(或更高版本)。添加文档(单独提供)

错误修复:
新方法:
ScaledFont.get_scale_matrix
Surface.mark_dirty_rectangle
Surface.set_fallback_resolution
新常量:
cairo.EXTEND_PAD
cairo.HAS_IMAGE_SURFACE
cairo.HAS_USER_FONT
API更改:
  • surface.mark_dirty:不再接受具有默认值的关键字参数。

  • pycaiopattern-frompattern(c api):有一个新的“base”参数-要修复 #fdo-18947 .

其他变更:

允许未知的cairo模式/表面类型使用pycairo基本模式/表面类型。

2008年8月18日

一般变更:
pycairo 1.6.4需要cairo 1.6.4(或更高版本)。

需要python 2.5(或更高版本)。

错误修复:

#fdo-16112 :fix win32'python setup.py…'build--使用双引号

新方法:
Context.has_current_point
Context.path_extents
ImageSurface.format_stride_for_width
PSSurface.get_eps
PSSurface.set_eps
PSSurface.ps_level_to_string
PSSurface.restrict_to_level
Surface.copy_page
Surface.show_page
新常量:

cairo.ps_level_2,cairo.ps_level_3

其他变更:

test/pygame-test1.py,test/pygame-test2.py:pygame测试

示例/cairo-snippets/snippets/ellipse.py:update so line width is a constant width in device space not user space

2007年12月1日-2013年12月1日

一般变更:

pycairo 1.4.12需要cairo 1.4.12(或更高版本)。需要python 2.4(或更高版本)。

错误修复:
  • #fdo-10006 :更新autogen.sh以支持automake>=1.10

  • #fdo-13460 :使用python config获取python includes

其他变更:
  • 允许对cairo.context进行子类化

  • 创建“doc”子目录并启动FAQ文件

2007年3月14日

一般变更:

pycairo 1.4.0需要cairo 1.4.0(或更高版本)。

新方法:
Context.clip_extents
Context.copy_clip_rectangles
Context.get_dash
Context.get_dash_count
Context.get_scaled_font
Context.glyph_extents
Context.glyph_path
Context.show_glyphs
LinearGradient.get_linear_points
RadialGradient.get_radial_circles
SolidPattern.get_rgba
SurfacePattern.get_surface
删除的方法:

imagesurface.create_for_array删除numeric python支持,因为numeric已经被numpy废弃,numpy数据可以使用imagesurface.create_读取。

其他变更:

已删除cairo.gtk模块(Pygtk 2.7.0及更高版本内置了cairo支持)。

2006年11月27日

  • pycairo 1.2.6需要cairo 1.2.6(或更高版本)。

  • mingw32编译器修复程序(cedric gustin)

  • 设置.py改进(Cedric Gustin)

  • imagesurface.get_data()新方法添加了imagesurface.get_data_as_rgba()方法已删除

2006年8月21日

  • pycairo需要cairo 1.2.2(或更高版本)。

  • 已通过执行$python setup.py install将setup.py更新为允许安装

  • examples/cairo-snippets/snippets/gradient-mask.py演示模式掩码的新示例。

  • cairo.svg模块已被删除,原因是:

    1. cairo不包含SVG解析,因此此模块不属于pycairo。

    2. libsvg cairo(底层C库)是未维护的。

2006年7月3日

一般变更:

pycairo已更新为与cairo 1.2.0一起使用。

新方法:
Surface.set_fallback_resolution
Surface_get_content
ImageSurface_get_format
Image_surface_get_stride
删除的方法:
pdfsurface.set_dpi,pssurface.set_dpi,svgssurface.set_dpi
  • 替换为surface.set_fallback_resolution

其他变更:

cairo.format_rgb16_565已添加

2006年5月29日

一般变更:

pycairo已更新为与cairo 1.1.6合作。

新对象:

SVGSurface

新方法:
Context.get_group_target
Context.new_sub_path
Context.pop_group
Context.pop_group_to_source
Context.push_group
Context.push_group_with_content
FontOptions.get_antialias
FontOptions.get_hint_metrics
FontOptions.get_hint_style
FontOptions.get_subpixel_order
FontOptions.set_antialias
FontOptions.set_hint_metrics
FontOptions.set_hint_style
FontOptions.set_subpixel_order
PDFSurface.set_size
PSSurface.dsc_begin_page_setup
PSSurface.dsc_begin_setup
PSSurface.dsc_comment
PSSurface.set_size
ScaledFont.get_font_face
ScaledFont.text_extents
Surface.get_device_offset
XlibSurface.get_depth
更新方法:

pdfsurface()/pssurface()-现在可以像对象一样写入文件(如stringio)。

surface.write_to_png()和imagesurface.create_from_png()现在可以像对象(如stringio)一样写入文件。

选择字体、显示文本、文本范围和文本路径,现在接受Unicode对象。

其他变更:

其他错误修复。

新示例:
examples/cairo_snippets/snippets_svg.py
examples/cairo_snippets/snippets/ellipse.py
examples/cairo_snippets/snippets/group.py
examples/svg/svgconvert.py

2005年10月11日

一般变更:

pycairo已更新为与cairo 1.0.2一起使用。

支持的新cairo函数:

cairo.imagesurface.create_for_data()。

更新功能:

ctx.set_source_rgba(r,g,b,a=1.0)现在支持默认的alpha参数

其他变更:

matrix现在支持python序列协议,所以可以这样做:xx,yx,xy,yy,x0,y0=matrix

2005年8月31日

一般变更:

pycairo已更新为与cairo 1.0.0一起使用。

支持的新cairo函数:
cairo.cairo_版本()
cairo.cairo_version_string()。
pssurface.set_dpi()。
模式现在在类层次结构中实现,新的构造函数是:
cairo.solidpattern(r,g,b,a=1.0)
cairo.surfacepattern(表面)
cairo.lineargradient(X0、Y0、X1、Y1)
cairo.radialgradient(cx0,cy0,radius0,cx1,cy1,radius1)
更新功能:

surface.write_to_png()现在接受文件对象和文件名

更新的示例:

GTK示例现在可以与pygtk>=2.7.0一起使用,而不需要cairo.gtk模块

错误修复:

修复“初始值设定项元素不是常量”编译器警告

0.9.0-2005年8月10日

一般变更:

pycairo已更新为与cairo 0.9.0一起使用。

支持的新cairo函数:
cairo_get_antialias
cairo_set_antialias
cairo_surface_mark_dirty_rectangle
cairo_surface_flush
错误修复:
  • 双缓冲现在可用于cairo.gtk模块

0.6.0-2005年8月1日

此版本有许多更改,将pycairo更新为新的cairo api。这里的更改列表不重复,请参阅cairo/news文件以获取所有这些API更改的完整详细信息。

与底层cairo函数名不同的pycairo方法名已被更改,以使pycairo更接近cairo,从而使cairo文档能够用于编写pycairo程序。注释已更新,以列出C API和pycairo API之间的差异。

context.copy_path()已经实现,它返回一个支持迭代器协议的路径实例。

现在需要python 2.3。

新示例:

examples/warpedtext.py:显示路径迭代器的用法

examples/cairo_snippets/:显示许多“cairo demo/cairo snippets”示例

示例/gtk/png_view.py:使用cairo.imagesurface.create_from_png()的示例

一般变更:

pycairo已更新为与cairo 0.6.0一起使用,包括使用cairo的新错误处理方案。

新功能:

cairo.content_color、cairo.alpha、cairo.color_alpha已添加用于处理曲面。

已添加新类cairo.fontoptions。

cairo.imagesurface.create_from_png()现在接受文件名字符串或文件对象

已为cairo_get_font_options、cairo set_font_options和cairo surface_get_font_options添加了新的包装函数。

0.5.1-2005年6月22日

新功能:
  • 新类别cairo.win32surface(niki spahiev)

  • cairo.has_win32_surface,cairo.has_p_surface等被定义为允许访问cairo features.h中的值。

修正:
  • 修复cairo_mask、cairo_mask_surface和cairo_stroke_preserve包装

  • 根据GTK+2.7(Gustavo Carneiro)正确编译

  • 其他小修复,包括GCC4.0警告的修复

0.4.0-2005年3月10日

新的 Cairo 绑定:
cairo_font_extents
删除的绑定:
cairo_font_set_transform
cairo_font_current_transform
新示例:

gtk/hangman.py

其他:

更改了版本编号以直接对应 Cairo 版本pycairo。因此,例如,pycairo版本0.4.0表示已经用cairo 0.4.0开发和测试的pycairo版本。

2005年1月14日

pycairo许可证已经更改,现在它在lgpl和mpl下具有双重许可,与cairo本身相同。有关详细信息,请参阅复制文件以及copying-lgpl-2.1和copying-mpl-1.1。

新的 Cairo 绑定:
cairo_pdf_surface_create
cairo_set_target_pdf
新的libsvg cairo绑定:
svg_cairo_parse
svg_cairo_parse_buffer
svg_cairo_render
svg_cairo_get_size
其他:
  • 添加了——没有pygtk配置选项。

  • 已将pycairo api _new()函数重命名为_wrap(),以允许_new()执行

  • 用于python __new__ 功能。

  • 新示例:svg2png.py和svview.py。

0.1.3-2004年11月24日

在最近的服务器崩溃之后,我们放弃了所有未签名的快照。这让我们没有了 pycairo 的快照。

另外,源存储库中没有标记,所以我无法重新创建0.1.2快照,所以这里有一个新的0.1.3快照。

如果我把版本号弄错了或者在这次发布中遗漏了一些重要的内容,我很抱歉,我不是一个通常要进行pycairo维护的人。

新绑定:
current_path
current_path_flat
current_font_extents
变化:

填充范围、笔划范围:删除不必要的参数,并从方法更改为属性。

其他:

添加了两个新示例:context-subclass.py和warpedtext.py