You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
(1) Niklas, why do you want to rename the flipped argument name of chess.svg.board() to orientation? 🤔 If you think of renaming it, you can do it right now. Make it as a 1.x breaking change. Everyone have not upgraded to 1.x yet, so the opportunity is basically right now. Version 1.0.2 can introduce this. The changelog should explain this and people will adapt. And there's only one simple name to change, not a hassle at all.
(2) Do you want to remove parse_san() abstract method of the BaseVisitor() abstract base class altogether, or just remove return board.parse_san(san) and make it pass instead?
Here's an idea of a breaking change: since the introduction of passing a dictionary as the colors argument to chess.svg.board(), we can now remove the style argument in there. Thoughts?
I'm looking at what is needed to create an interface/engine for a 5x5 board. Am i correct in assuming this would be a major, breaking change in this module? Looking at the constants like SQUARES, FILE_NAMES, RANK_NAMES, and also the various variants, this is not easily changed in the current situation, right?
The reason i'm asking is that i saw the mini chess app which uses a 5x5 board. I was hoping to play it on my computer in some way. Having looked at a YouTube video where someone coded a chess engine+interface from the ground up, i was inspired but also realized that there are many projects out there, and i was hoping to re-use / contribute whenever possible.
Edit:
I've toyed around a bit in https://github.com/khink/flexboard-chess. In many ways, python-chess is very mature and flexible. I would love to be able to use it for this. Main thing would be to store the dimensions somewhere.
(I've kind of gone around python-chess's solution by creating a Square class that is not a simple int, but has an is_last_of_rank attribute. That should be done differently, by storing nr_of_ranks and nr_of_files on the Board, i think.)
Apart from that and the constants mentioned above, the 8x8 is also internalized in methods like _set_board_fen (c in ["1", "2", "3", "4", "5", "6", "7", "8"], this range could be as long as the board is wide). But all that is do-able to change, i think.
Hi, I tried mini chess a while back and it's definitely fun. For this particular library I would consider it out of scope, with so many places using bitboards with 64 squares it would complicate everything significantly.
The Arrow class could be moved from the svg.py file to the pgn.py file (the pgn.py file would not need to import anything from svg, it would make more sense) and it could be split into Arrow and Circle classes, as using the Arrow class for both arrows and circles is a bit weird. It would allow users to easily only get the arrows or the circles.
Parsing arrows and circles with different regexes seems to be more natural, as on lichess
Activity
PedanticHacker commentedon Sep 29, 2020
(1) Niklas, why do you want to rename the
flippedargument name ofchess.svg.board()toorientation? 🤔 If you think of renaming it, you can do it right now. Make it as a 1.x breaking change. Everyone have not upgraded to 1.x yet, so the opportunity is basically right now. Version 1.0.2 can introduce this. The changelog should explain this and people will adapt. And there's only one simple name to change, not a hassle at all.(2) Do you want to remove
parse_san()abstract method of theBaseVisitor()abstract base class altogether, or just removereturn board.parse_san(san)and make itpassinstead?PedanticHacker commentedon Sep 29, 2020
Here's an idea of a breaking change: since the introduction of passing a dictionary as the
colorsargument tochess.svg.board(), we can now remove thestyleargument in there. Thoughts?Add deprecation notices (#659)
niklasf commentedon Sep 29, 2020
Good point about
style. And no, I will not sneak breaking changes into minor releases. This is just a list of things to consider in the future.niklasf commentedon Oct 21, 2020
chess.engine.PovWdlbc forTuple[int, int, int].PedanticHacker commentedon Oct 31, 2020
flippedandstyleparameters ofchess.svg.board().niklasf commentedon Nov 5, 2020
Distinguish PGN root and child nodes for typing.(possible with bc)khink commentedon Nov 30, 2021
Not sure if i should post here, but here goes:
I'm looking at what is needed to create an interface/engine for a 5x5 board. Am i correct in assuming this would be a major, breaking change in this module? Looking at the constants like SQUARES, FILE_NAMES, RANK_NAMES, and also the various variants, this is not easily changed in the current situation, right?
The reason i'm asking is that i saw the mini chess app which uses a 5x5 board. I was hoping to play it on my computer in some way. Having looked at a YouTube video where someone coded a chess engine+interface from the ground up, i was inspired but also realized that there are many projects out there, and i was hoping to re-use / contribute whenever possible.
Edit:
I've toyed around a bit in https://github.com/khink/flexboard-chess. In many ways, python-chess is very mature and flexible. I would love to be able to use it for this. Main thing would be to store the dimensions somewhere.
(I've kind of gone around python-chess's solution by creating a
Squareclass that is not a simpleint, but has anis_last_of_rankattribute. That should be done differently, by storingnr_of_ranksandnr_of_fileson the Board, i think.)Apart from that and the constants mentioned above, the 8x8 is also internalized in methods like
_set_board_fen(c in ["1", "2", "3", "4", "5", "6", "7", "8"], this range could be as long as the board is wide). But all that is do-able to change, i think.niklasf commentedon Dec 6, 2021
Hi, I tried mini chess a while back and it's definitely fun. For this particular library I would consider it out of scope, with so many places using bitboards with 64 squares it would complicate everything significantly.
niklasf commentedon Feb 1, 2022
Status.IMPOSSIBLE_MATERIAL, merging the various individual reasons but also more pedantically counting promoted pieces.niklasf commentedon Mar 18, 2022
niklasf commentedon Jan 7, 2023
Remove(not possible, see 12c6211)max_fdsfrom Syzygy. File descriptors can be closed after creating memory maps.niklasf commentedon Jul 27, 2023
Remove chess.svg.board(..., flipped), use orientation (#659)
Remove deprecated chess.pgn.BaseVisitor.parse_san() (#659)
Remove deprecated chess.engine.Wdl tuple behavior (#659)
leszekhanusz commentedon Nov 26, 2025
The Arrow class could be moved from the
svg.pyfile to thepgn.pyfile (the pgn.py file would not need to import anything from svg, it would make more sense) and it could be split intoArrowandCircleclasses, as using theArrowclass for both arrows and circles is a bit weird. It would allow users to easily only get the arrows or the circles.Parsing arrows and circles with different regexes seems to be more natural, as on lichess