gifpgn: Chess GIF Generator for Python
Introduction
Generate a GIF of a chess game from a PGN with optional:
Analysis bar
Analysis chart
Numerical Annotation Glyphs (NAGs)
Move and check arrows
PGN module to add engine evaluations and calculate ACPL
Details on breaking changes in the 1.0.0 release
This release brings new features such as headers with player names, taken pieces and clocks, and Numeric Annotation Glyphs (NAGs).
The module was also restructured for easier usage and extensibility. Code using version 0.2.0 and earlier will not work with version 1.0.0 - minor changes will be required to get back up and running again.
Please see the examples and documentation for details.
Demo
GIF with all features enabled
import chess
import chess.engine
import chess.pgn
import io
from gifpgn import CreateGifFromPGN, PieceTheme, BoardThemes
from gifpgn.utils import PGN
pgn_string = ...
game = chess.pgn.read_game(io.StringIO(pgn_string))
if not PGN(game).has_analysis():
with chess.engine.SimpleEngine.popen_uci("/path/to/stockfish") as engine:
game = PGN(game).add_analysis(engine, chess.engine.Limit(depth=18))
g = CreateGifFromPGN(game)
g.piece_theme = PieceTheme.ALPHA
g.square_colors = BoardThemes.BLUE
g.enable_arrows()
g.add_headers(height=20)
g.add_analysis_bar()
g.add_analysis_graph()
g.enable_nags()
gif = g.generate("test_gif.gif")
Small GIF with no analysis
import chess.pgn
import io
from from gifpgn import CreateGifFromPGN, PieceTheme, BoardThemes
pgn_string = ...
game = chess.pgn.read_game(io.StringIO(pgn_string))
g = CreateGifFromPGN(game)
g.board_size = 240
g.piece_theme = PieceTheme.CASES
g.square_colors = BoardThemes.GREEN
g.generate("test_small_gif.gif")
Piece and Board Themes
Alpha Blue |
|
Cases Green |
|
Maya Brown |
|
Regular Purple |
Installing
Install with pip:
pip install gifpgn
Documentation
Metadata
Release files for gifpgn 1.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| gifpgn-1.2.1.tar.gz | 391.1 kB | Without provenance | Details for gifpgn-1.2.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| gifpgn-1.2.1-py3-none-any.whl | Python 3 | none | any | Details for gifpgn-1.2.1-py3-none-any.whl |
Total release size: 792.7 kB
Release files / gifpgn-1.2.1.tar.gz
| Download URL | gifpgn-1.2.1.tar.gz |
|---|---|
| Size | 391.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f5eff862fffee6fa8c8ce80b5603784f3f245bcf716fc6670a851c1c190b8b26
|
|
BLAKE2b-256 checksum How to use checksums |
97aafb8a6a413d6f59641851e7ece8c271cfc47325d0edd2166697aeb322f862
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / gifpgn-1.2.1-py3-none-any.whl
| Download URL | gifpgn-1.2.1-py3-none-any.whl |
|---|---|
| Size | 401.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c9e802975b9b3987adadfe624d56bf9a772a4361f556d4f826ef03fe46c69df8
|
|
BLAKE2b-256 checksum How to use checksums |
fa455513c6008c97de08ae7279694f0bd9904926197d5e5e98df4b7d907d6015
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for gifpgn 1.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.