Skip to main content

Chess GIF Generator for Python

Project description

PyPI Downloads Tests Status

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")
https://github.com/prozn/gifpgn/blob/master/docs/images/all_features.gif?raw=true

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")
https://github.com/prozn/gifpgn/blob/master/docs/images/small_gif.gif?raw=true

Piece and Board Themes

Alpha

Blue

https://github.com/prozn/gifpgn/blob/master/docs/images/alpha.png?raw=true

Cases

Green

https://github.com/prozn/gifpgn/blob/master/docs/images/cases.png?raw=true

Maya

Brown

https://github.com/prozn/gifpgn/blob/master/docs/images/maya.png?raw=true

Regular

Purple

https://github.com/prozn/gifpgn/blob/master/docs/images/regular.png?raw=true

Installing

Install with pip:

pip install gifpgn

Documentation

View on Read The Docs

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gifpgn-1.1.0.tar.gz (389.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gifpgn-1.1.0-py3-none-any.whl (400.6 kB view details)

Uploaded Python 3

File details

Details for the file gifpgn-1.1.0.tar.gz.

File metadata

  • Download URL: gifpgn-1.1.0.tar.gz
  • Upload date:
  • Size: 389.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for gifpgn-1.1.0.tar.gz
Algorithm Hash digest
SHA256 a0ea8ede3b8180b0214170a898b4101b41daae2b4848ce1c1a967a65af94e5d3
MD5 2738a68412b9a5110e21358f495c4d9f
BLAKE2b-256 d3c7a31bbcf5231520a3329fdd41a00bceee1b7d0869561dcf4c9af0bcfd90c2

See more details on using hashes here.

File details

Details for the file gifpgn-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: gifpgn-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 400.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for gifpgn-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0cd7a3496af6e3642919c15c4b25ee2a205a40e99202ca10a0643c2700a59b56
MD5 ed6c93671bcdc2a30dc1ae0380df4a24
BLAKE2b-256 79e7c438e948b8eef9ddba554e124653a69046d7defae79e7981e6534e0a3d5c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page