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.

Files for pypgn, version 0.5.1
Filename, size File type Python version Upload date Hashes
Filename, size pypgn-0.5.1-py3-none-any.whl (9.9 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size pypgn-0.5.1.tar.gz (10.3 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page