%global _empty_manifest_terminate_build 0 Name: python-chess-graph Version: 1.7.5 Release: 1 Summary: A package that can create an interactive multi-level, shaded, piechart visualization of chess games. License: 'MIT' URL: https://github.com/Destaq/chess_graph Source0: https://mirrors.aliyun.com/pypi/web/packages/7d/b1/c26fd79ed79fd3fde63c08a15fbe8cef0c99c8cf6ccf57c2b894a3c030c2/chess-graph-1.7.5.tar.gz BuildArch: noarch %description ![Python application](https://github.com/Destaq/chess_graph/workflows/Python%20application/badge.svg) # The Chess Opening Analyzer

## About A program that will produce a graphical sunburst chart of chess openings from the PGN that is provided to it. You can easily run this with the pip module in one function by simply specifying the path to the PGN database that you would like to have analyzed. This package can customize the multi=level pie chart in many ways. It can shade segments based on win percentage, you can click to zoom in, openings are highlighted, and so much more. It's the perfect learning tool for anyone interested in chess or wishing to improve their opening skills! ### Features - Make graph of games to **any depth** - Upload a **custom database** and see how *your* chart looks like - **Hover** to see metadata such as **game count and percentage of parent** - Easily **find openings** with simple hover tooltip identification - **Click to zoom** in on a slice and expand it, making it easy to magnify any slice of the pie chart - **Downloadable files**: you can download the chart as an interactive HTML, or as a static PNG/JPEG/SVG/WEBP image with just a few clicks - **Win Ratio Shading** means that you will never be in doubt as to what next move is statistically best - **Hide small slices** and prevent them from showing up in the graph! - **Custom branching** to analyze database from **any position** - **Find your player and color** by selecting games from someone based on their color (white or black) and name ### Prerequisites - Runs in Python 3, must have Python 3 installed - Requires Plotly and pgnparser You can install Plotly and pgnparser using PyPi, as long as you are an admin user on your device. To do so, simply type `pip install plotly` and `pip install pgnparser` into your terminal. ### Using via pip install 1. `pip install chess-graph` 2. Open terminal/interpreter. 3. `import chess_graph` 4. `chess_graph.graph(database, depth=5, shade = True, fragmentation_percentage=0.0032, should_defragment=False, custom_branching=False, should_download = False, download_format = 'png', download_name = 'fig1')` - Note that the path to the pgn file (the database) must be relative to the current directory python is running in. For example, if you have the pgn downloaded on your Desktop, you could easily solve this issue by navigating to Desktop within terminal (cd Desktop). From there, you can replace the database argument with the simple filename (assuming it is in Desktop). If this is confusing, just type in the full path. #### A Deeper Look at the Function The `graph()` function takes 11 arguments, and 10 of them are default-set. We'll explore each of them so that you know how to properly use this package to its full potential. - The `database` argument: This argument must *always* be inputted. It is the path to the file. Let's look at two examples. 1. `chess_graph.graph('Users/student/Desktop/pgns/mir_khan.pgn')`. Here, we are running the chess_graph on a pgn from Mir Sultan Khan. We are showing the program what file to read this by providing the full path to the file. 2. In the example above, you can see that the file is in the `pgns` folder in Desktop. So, we can open our terminal, and then type `cd Desktop`, `cd pgns` to go the folder that has this file. Because we are now in that directory, we can type: `chess_graph.graph('mir_khan.pgn')` as it is in the current directory. If you are unsure, stick with the full file path. - The `depth` argument. This is set to 5 by default, and shows the number of rings that the pie chart will have. You can change this by typing `chess_graph.graph(*path to file*, depth = 7)`. Make sure that you type `depth = `, and not just the integer depth. - The `shade` argument. This is set to True by default. It is whether you should shade the segments or not based on W/B win percentage. If you set it to False, (`chess_graph.graph(*path to file*, shade = False)`), then a vividly colored chart will be produced instead. - The `fragmentation_percentage` argument. Set to 0.0032 by default. You can 'defragment' the graph by hiding very small slices. This argument shows how small the slices have to be (relative to the total number of games, e.g. 2 games/100 games total = 2%) to be deleted. In this example, the percentage is 100*0.0032 = 0.32%. Example: `chess_graph.graph(*path to file*, fragmentation_percentage = 0.05)` - 5% or smaller will be deleted. - The `should_defragment` argument. Set to False by default. Setting it to True will allow the graph to hide the slices, keeping it False will show all slices. Even if you change fragmentation_percentage, if this isn't set to True, nothing will change. Example: `chess_graph.graph(*path to file*, fragmentation_percentage = 0.05, should_defragment = True)` - The `custom branching` argument. Set to False by default. You can analyze a database from any position if set to True. Example: `chess_graph.graph(*path to file*, custom_branching = True)`. You will be asked for an input for the custom branching. For the sake of this example, let's say you want to analyze only positions from e4 e5. So, type e4 e5. The graph will then show positions only from e4 e5. - The `should_download` argument. Set to False be default. You can download the figures in five different formats (see more below). Make sure you have the packages installed before downloading. You can set this to True if you would like to download the figure. - The `download_format` argument. Set to the string 'png' by default. Change it to the string of the file type you want the download to be in. `chess_graph.graph(..., download_format = 'jpeg')` - The `download_name` argument. The name of the figure that will be downloaded. Set to be fig1 by default, meaning that files downloaded will be downloaded as fig1.png. See above. - The `color` argument. This is set to both by default. Valid inputs are 'both', 'white', 'w', 'black' and 'b'. If you change the color argument from both, then the program will only read games that are from the color you chose. Note that you need to also change the player name with the `name` argument if you do so. See below. - The `name` argument. This argument will allow the program to pick games from the file it is given, but only games from a certain player. There is an example below: Set the color to 'black' or 'white' to pick only games where the player (the name) played as black or white. (i.e. `chess_graph.graph('pgns/Carlsen.pgn', color = 'white', name = 'Magnus Carlsen')` will pick all the games where Carlsen played as white.) **Remember to include all variations and parts of a player's name! For example, the player Viktor Korchnoi has his last name spelled as Kortschnoj as well. In that case, for the 'name' field, type: Viktor Korchnoi Kortschnoj** ### Downloading Downloading *is* an option, although you need to make sure you have the proper libraries installed. Currently, you can uncomment the download interactive HTML file without anything else to download. If you do so, an HTML file of the graph will be saved to your device, which you can open with your browser. You can also download the file as: SVG, PDF, JPEG, PNG, and WebP. However, if you want to download in *these* formats you need the following installed. `npm install -g electron@1.8.4 orca` `pip install psutil requests` `pip install psutil` ## Examples *All examples are those of Magnus Carlsen's OTB tournament games* ### Simple Pie Chart

### Hover Functionality | Show Percentage of Parent + Game Count

### Click to Zoom

## Extra Info I based this chart loosely off of a post that I read on ebemunk's blog - you can find the link here: https://blog.ebemunk.com/a-visual-look-at-2-million-chess-games/. However, that project was written in Java and it didn't have everything that I wanted, such as showing all the games, zooming in, etc. %package -n python3-chess-graph Summary: A package that can create an interactive multi-level, shaded, piechart visualization of chess games. Provides: python-chess-graph BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-chess-graph ![Python application](https://github.com/Destaq/chess_graph/workflows/Python%20application/badge.svg) # The Chess Opening Analyzer

## About A program that will produce a graphical sunburst chart of chess openings from the PGN that is provided to it. You can easily run this with the pip module in one function by simply specifying the path to the PGN database that you would like to have analyzed. This package can customize the multi=level pie chart in many ways. It can shade segments based on win percentage, you can click to zoom in, openings are highlighted, and so much more. It's the perfect learning tool for anyone interested in chess or wishing to improve their opening skills! ### Features - Make graph of games to **any depth** - Upload a **custom database** and see how *your* chart looks like - **Hover** to see metadata such as **game count and percentage of parent** - Easily **find openings** with simple hover tooltip identification - **Click to zoom** in on a slice and expand it, making it easy to magnify any slice of the pie chart - **Downloadable files**: you can download the chart as an interactive HTML, or as a static PNG/JPEG/SVG/WEBP image with just a few clicks - **Win Ratio Shading** means that you will never be in doubt as to what next move is statistically best - **Hide small slices** and prevent them from showing up in the graph! - **Custom branching** to analyze database from **any position** - **Find your player and color** by selecting games from someone based on their color (white or black) and name ### Prerequisites - Runs in Python 3, must have Python 3 installed - Requires Plotly and pgnparser You can install Plotly and pgnparser using PyPi, as long as you are an admin user on your device. To do so, simply type `pip install plotly` and `pip install pgnparser` into your terminal. ### Using via pip install 1. `pip install chess-graph` 2. Open terminal/interpreter. 3. `import chess_graph` 4. `chess_graph.graph(database, depth=5, shade = True, fragmentation_percentage=0.0032, should_defragment=False, custom_branching=False, should_download = False, download_format = 'png', download_name = 'fig1')` - Note that the path to the pgn file (the database) must be relative to the current directory python is running in. For example, if you have the pgn downloaded on your Desktop, you could easily solve this issue by navigating to Desktop within terminal (cd Desktop). From there, you can replace the database argument with the simple filename (assuming it is in Desktop). If this is confusing, just type in the full path. #### A Deeper Look at the Function The `graph()` function takes 11 arguments, and 10 of them are default-set. We'll explore each of them so that you know how to properly use this package to its full potential. - The `database` argument: This argument must *always* be inputted. It is the path to the file. Let's look at two examples. 1. `chess_graph.graph('Users/student/Desktop/pgns/mir_khan.pgn')`. Here, we are running the chess_graph on a pgn from Mir Sultan Khan. We are showing the program what file to read this by providing the full path to the file. 2. In the example above, you can see that the file is in the `pgns` folder in Desktop. So, we can open our terminal, and then type `cd Desktop`, `cd pgns` to go the folder that has this file. Because we are now in that directory, we can type: `chess_graph.graph('mir_khan.pgn')` as it is in the current directory. If you are unsure, stick with the full file path. - The `depth` argument. This is set to 5 by default, and shows the number of rings that the pie chart will have. You can change this by typing `chess_graph.graph(*path to file*, depth = 7)`. Make sure that you type `depth = `, and not just the integer depth. - The `shade` argument. This is set to True by default. It is whether you should shade the segments or not based on W/B win percentage. If you set it to False, (`chess_graph.graph(*path to file*, shade = False)`), then a vividly colored chart will be produced instead. - The `fragmentation_percentage` argument. Set to 0.0032 by default. You can 'defragment' the graph by hiding very small slices. This argument shows how small the slices have to be (relative to the total number of games, e.g. 2 games/100 games total = 2%) to be deleted. In this example, the percentage is 100*0.0032 = 0.32%. Example: `chess_graph.graph(*path to file*, fragmentation_percentage = 0.05)` - 5% or smaller will be deleted. - The `should_defragment` argument. Set to False by default. Setting it to True will allow the graph to hide the slices, keeping it False will show all slices. Even if you change fragmentation_percentage, if this isn't set to True, nothing will change. Example: `chess_graph.graph(*path to file*, fragmentation_percentage = 0.05, should_defragment = True)` - The `custom branching` argument. Set to False by default. You can analyze a database from any position if set to True. Example: `chess_graph.graph(*path to file*, custom_branching = True)`. You will be asked for an input for the custom branching. For the sake of this example, let's say you want to analyze only positions from e4 e5. So, type e4 e5. The graph will then show positions only from e4 e5. - The `should_download` argument. Set to False be default. You can download the figures in five different formats (see more below). Make sure you have the packages installed before downloading. You can set this to True if you would like to download the figure. - The `download_format` argument. Set to the string 'png' by default. Change it to the string of the file type you want the download to be in. `chess_graph.graph(..., download_format = 'jpeg')` - The `download_name` argument. The name of the figure that will be downloaded. Set to be fig1 by default, meaning that files downloaded will be downloaded as fig1.png. See above. - The `color` argument. This is set to both by default. Valid inputs are 'both', 'white', 'w', 'black' and 'b'. If you change the color argument from both, then the program will only read games that are from the color you chose. Note that you need to also change the player name with the `name` argument if you do so. See below. - The `name` argument. This argument will allow the program to pick games from the file it is given, but only games from a certain player. There is an example below: Set the color to 'black' or 'white' to pick only games where the player (the name) played as black or white. (i.e. `chess_graph.graph('pgns/Carlsen.pgn', color = 'white', name = 'Magnus Carlsen')` will pick all the games where Carlsen played as white.) **Remember to include all variations and parts of a player's name! For example, the player Viktor Korchnoi has his last name spelled as Kortschnoj as well. In that case, for the 'name' field, type: Viktor Korchnoi Kortschnoj** ### Downloading Downloading *is* an option, although you need to make sure you have the proper libraries installed. Currently, you can uncomment the download interactive HTML file without anything else to download. If you do so, an HTML file of the graph will be saved to your device, which you can open with your browser. You can also download the file as: SVG, PDF, JPEG, PNG, and WebP. However, if you want to download in *these* formats you need the following installed. `npm install -g electron@1.8.4 orca` `pip install psutil requests` `pip install psutil` ## Examples *All examples are those of Magnus Carlsen's OTB tournament games* ### Simple Pie Chart

### Hover Functionality | Show Percentage of Parent + Game Count

### Click to Zoom

## Extra Info I based this chart loosely off of a post that I read on ebemunk's blog - you can find the link here: https://blog.ebemunk.com/a-visual-look-at-2-million-chess-games/. However, that project was written in Java and it didn't have everything that I wanted, such as showing all the games, zooming in, etc. %package help Summary: Development documents and examples for chess-graph Provides: python3-chess-graph-doc %description help ![Python application](https://github.com/Destaq/chess_graph/workflows/Python%20application/badge.svg) # The Chess Opening Analyzer

## About A program that will produce a graphical sunburst chart of chess openings from the PGN that is provided to it. You can easily run this with the pip module in one function by simply specifying the path to the PGN database that you would like to have analyzed. This package can customize the multi=level pie chart in many ways. It can shade segments based on win percentage, you can click to zoom in, openings are highlighted, and so much more. It's the perfect learning tool for anyone interested in chess or wishing to improve their opening skills! ### Features - Make graph of games to **any depth** - Upload a **custom database** and see how *your* chart looks like - **Hover** to see metadata such as **game count and percentage of parent** - Easily **find openings** with simple hover tooltip identification - **Click to zoom** in on a slice and expand it, making it easy to magnify any slice of the pie chart - **Downloadable files**: you can download the chart as an interactive HTML, or as a static PNG/JPEG/SVG/WEBP image with just a few clicks - **Win Ratio Shading** means that you will never be in doubt as to what next move is statistically best - **Hide small slices** and prevent them from showing up in the graph! - **Custom branching** to analyze database from **any position** - **Find your player and color** by selecting games from someone based on their color (white or black) and name ### Prerequisites - Runs in Python 3, must have Python 3 installed - Requires Plotly and pgnparser You can install Plotly and pgnparser using PyPi, as long as you are an admin user on your device. To do so, simply type `pip install plotly` and `pip install pgnparser` into your terminal. ### Using via pip install 1. `pip install chess-graph` 2. Open terminal/interpreter. 3. `import chess_graph` 4. `chess_graph.graph(database, depth=5, shade = True, fragmentation_percentage=0.0032, should_defragment=False, custom_branching=False, should_download = False, download_format = 'png', download_name = 'fig1')` - Note that the path to the pgn file (the database) must be relative to the current directory python is running in. For example, if you have the pgn downloaded on your Desktop, you could easily solve this issue by navigating to Desktop within terminal (cd Desktop). From there, you can replace the database argument with the simple filename (assuming it is in Desktop). If this is confusing, just type in the full path. #### A Deeper Look at the Function The `graph()` function takes 11 arguments, and 10 of them are default-set. We'll explore each of them so that you know how to properly use this package to its full potential. - The `database` argument: This argument must *always* be inputted. It is the path to the file. Let's look at two examples. 1. `chess_graph.graph('Users/student/Desktop/pgns/mir_khan.pgn')`. Here, we are running the chess_graph on a pgn from Mir Sultan Khan. We are showing the program what file to read this by providing the full path to the file. 2. In the example above, you can see that the file is in the `pgns` folder in Desktop. So, we can open our terminal, and then type `cd Desktop`, `cd pgns` to go the folder that has this file. Because we are now in that directory, we can type: `chess_graph.graph('mir_khan.pgn')` as it is in the current directory. If you are unsure, stick with the full file path. - The `depth` argument. This is set to 5 by default, and shows the number of rings that the pie chart will have. You can change this by typing `chess_graph.graph(*path to file*, depth = 7)`. Make sure that you type `depth = `, and not just the integer depth. - The `shade` argument. This is set to True by default. It is whether you should shade the segments or not based on W/B win percentage. If you set it to False, (`chess_graph.graph(*path to file*, shade = False)`), then a vividly colored chart will be produced instead. - The `fragmentation_percentage` argument. Set to 0.0032 by default. You can 'defragment' the graph by hiding very small slices. This argument shows how small the slices have to be (relative to the total number of games, e.g. 2 games/100 games total = 2%) to be deleted. In this example, the percentage is 100*0.0032 = 0.32%. Example: `chess_graph.graph(*path to file*, fragmentation_percentage = 0.05)` - 5% or smaller will be deleted. - The `should_defragment` argument. Set to False by default. Setting it to True will allow the graph to hide the slices, keeping it False will show all slices. Even if you change fragmentation_percentage, if this isn't set to True, nothing will change. Example: `chess_graph.graph(*path to file*, fragmentation_percentage = 0.05, should_defragment = True)` - The `custom branching` argument. Set to False by default. You can analyze a database from any position if set to True. Example: `chess_graph.graph(*path to file*, custom_branching = True)`. You will be asked for an input for the custom branching. For the sake of this example, let's say you want to analyze only positions from e4 e5. So, type e4 e5. The graph will then show positions only from e4 e5. - The `should_download` argument. Set to False be default. You can download the figures in five different formats (see more below). Make sure you have the packages installed before downloading. You can set this to True if you would like to download the figure. - The `download_format` argument. Set to the string 'png' by default. Change it to the string of the file type you want the download to be in. `chess_graph.graph(..., download_format = 'jpeg')` - The `download_name` argument. The name of the figure that will be downloaded. Set to be fig1 by default, meaning that files downloaded will be downloaded as fig1.png. See above. - The `color` argument. This is set to both by default. Valid inputs are 'both', 'white', 'w', 'black' and 'b'. If you change the color argument from both, then the program will only read games that are from the color you chose. Note that you need to also change the player name with the `name` argument if you do so. See below. - The `name` argument. This argument will allow the program to pick games from the file it is given, but only games from a certain player. There is an example below: Set the color to 'black' or 'white' to pick only games where the player (the name) played as black or white. (i.e. `chess_graph.graph('pgns/Carlsen.pgn', color = 'white', name = 'Magnus Carlsen')` will pick all the games where Carlsen played as white.) **Remember to include all variations and parts of a player's name! For example, the player Viktor Korchnoi has his last name spelled as Kortschnoj as well. In that case, for the 'name' field, type: Viktor Korchnoi Kortschnoj** ### Downloading Downloading *is* an option, although you need to make sure you have the proper libraries installed. Currently, you can uncomment the download interactive HTML file without anything else to download. If you do so, an HTML file of the graph will be saved to your device, which you can open with your browser. You can also download the file as: SVG, PDF, JPEG, PNG, and WebP. However, if you want to download in *these* formats you need the following installed. `npm install -g electron@1.8.4 orca` `pip install psutil requests` `pip install psutil` ## Examples *All examples are those of Magnus Carlsen's OTB tournament games* ### Simple Pie Chart

### Hover Functionality | Show Percentage of Parent + Game Count

### Click to Zoom

## Extra Info I based this chart loosely off of a post that I read on ebemunk's blog - you can find the link here: https://blog.ebemunk.com/a-visual-look-at-2-million-chess-games/. However, that project was written in Java and it didn't have everything that I wanted, such as showing all the games, zooming in, etc. %prep %autosetup -n chess-graph-1.7.5 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-chess-graph -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Tue Jun 20 2023 Python_Bot - 1.7.5-1 - Package Spec generated