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

PyPGN

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.

Prerequisites

Python version 3.x > 3.6 and Pip

Install

Install or upgrade with PiP

$ pip install pypgn 

You can also install from source:

git clone https://github.com/DaniruKun/pypgn.git
cd pypgn
python setup.py install

Examples

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

# Import game from Lichess
chess_game.pgn('dGm3ND39')

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

Output:

$ Rated Blitz game
$ 0-1
$ e4

Contributing

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

Docker

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

$ make docker-build
$ make docker-run

Authors

@DaniruKun aka Daniils Petrovs

License

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.0.tar.gz (10.3 kB view hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

Supported by

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