Changelog?

1.21.0-2022-03-07?

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

  • 需要介子0.53+

  • vbl.使用 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日?

  • setup.py:再次將pkgconfig正確安裝到/usr/lib*中。要使基于Fedora的jhbuild工作,需要以下補?。?a class="reference external" >https://bugzilla.gnome.org/show_bug.cgi?內徑=793216

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