Skip to main content

Library for parsing and manipulating PGN format files.

Project description

PyPI version Python 3.6 Language grade: Python Documentation Status Build Status


A pure Python 3 library to simplify parsing and manipulation of PGN (Portable Game Notation) format files, which are often used for serializing games such as chess.


Python version 3.x >= 3.6 and PiP


Install or upgrade with PiP

$ pip install pypgn 

You can also install from source:

git clone
cd pypgn
python install


from import Game
# Importing game from file on disk
chess_game = Game('test.pgn')

# Import game from Lichess

# Print opening ply for white
print(chess_game.ply(1, 'w'))


$ Rated Blitz game
$ 0-1
$ e4

Read the docs



Local setup

Setup a virtual environment with virtualenv

$ virtualenv venv
$ source venv/bin/activate

Install requirements

$ make install

Run unit tests locally with pytest

$ make test

Run flake8 lint with

$ make lint


You can also build and run tests in a Docker container:

$ make docker-build
$ make docker-run


@DaniruKun aka Daniils Petrovs


Mozilla Public License 2.0 see LICENSE for more details.

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

pypgn-0.5.1.tar.gz (10.3 kB view hashes)

Uploaded source

Built Distribution

pypgn-0.5.1-py3-none-any.whl (9.9 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page