Skip to main content

Fairy-Stockfish Python wrapper

Project description

Fairy-Stockfish

Overview

Build Status Build Status Build Status PyPI version NPM version

Fairy-Stockfish is a chess variant engine derived from Stockfish designed for the support of fairy chess variants and easy extensibility with more games. It can play various regional, historical, and modern chess variants as well as games with user-defined rules. For compatibility with graphical user interfaces it supports the UCI, UCCI, USI, UCI-cyclone, and CECP/XBoard protocols.

The goal of the project is to create an engine supporting a large variety of chess-like games, equipped with the powerful search of Stockfish. Despite its generality the playing strength is on a very high level in almost all supported variants. Due to its multi-protocol support Fairy-Stockfish works with almost any chess variant GUI.

Installation

You can download the Windows executable or Linux binary from the latest release or compile the program from source. The program comes without a graphical user interface, so you perhaps want to use it together with a compatible GUI, or play against it online at pychess, lishogi, or lichess. Read more about how to use Fairy-Stockfish in the wiki.

If you want to preview the functionality of Fairy-Stockfish before downloading, you can try it out on the Fairy-Stockfish playground in the browser.

Optional NNUE evaluation parameter files to improve playing strength for many variants are in the list of NNUE networks. For the regional variants Xiangqi, Janggi, and Makruk dedicated releases with built-in NNUE networks are available. See the wiki for more details on NNUE.

Contributing

If you like this project, please support its development via patreon or paypal, by contributing CPU time to the framework for testing of code improvements, or by contributing to the code or documentation. An introduction to the code base can be found in the wiki.

Supported games

The games currently supported besides chess are listed below. Fairy-Stockfish can also play user-defined variants loaded via a variant configuration file, see the file src/variants.ini and the wiki.

Regional and historical games

Chess variants

Shogi variants

Related games

Help

See the Fairy-Stockfish Wiki for more info, or if the required information is not available, open an issue or join our discord server.

Bindings

Besides the C++ engine, this project also includes bindings for other programming languages in order to be able to use it as a library for chess variants. They support move, SAN, and FEN generation, as well as checking of game end conditions for all variants supported by Fairy-Stockfish. Since the bindings are using the C++ code, they are very performant compared to libraries directly written in the respective target language.

Python

The python binding pyffish contributed by @gbtami is implemented in pyffish.cpp. It is e.g. used in the backend for the pychess server.

Javascript

The javascript binding ffish.js contributed by @QueensGambit is implemented in ffishjs.cpp. The compilation/binding to javascript is done using emscripten, see the readme.

Ports

WebAssembly

For in-browser use a port of Fairy-Stockfish to WebAssembly is available at npm. It is e.g. used for local analysis on pychess.org. Also see the Fairy-Stockfish WASM demo available at https://fairy-stockfish-nnue-wasm.vercel.app/.

Stockfish

Overview

Build Status Build Status

Stockfish is a free, powerful UCI chess engine derived from Glaurung 2.1. Stockfish is not a complete chess program and requires a UCI-compatible graphical user interface (GUI) (e.g. XBoard with PolyGlot, Scid, Cute Chess, eboard, Arena, Sigma Chess, Shredder, Chess Partner or Fritz) in order to be used comfortably. Read the documentation for your GUI of choice for information about how to use Stockfish with it.

The Stockfish engine features two evaluation functions for chess, the classical evaluation based on handcrafted terms, and the NNUE evaluation based on efficiently updatable neural networks. The classical evaluation runs efficiently on almost all CPU architectures, while the NNUE evaluation benefits from the vector intrinsics available on most CPUs (sse2, avx2, neon, or similar).

Files

This distribution of Stockfish consists of the following files:

  • Readme.md, the file you are currently reading.

  • Copying.txt, a text file containing the GNU General Public License version 3.

  • AUTHORS, a text file with the list of authors for the project

  • src, a subdirectory containing the full source code, including a Makefile that can be used to compile Stockfish on Unix-like systems.

  • a file with the .nnue extension, storing the neural network for the NNUE evaluation. Binary distributions will have this file embedded.

The UCI protocol and available options

The Universal Chess Interface (UCI) is a standard protocol used to communicate with a chess engine, and is the recommended way to do so for typical graphical user interfaces (GUI) or chess tools. Stockfish implements the majority of it options as described in the UCI protocol.

Developers can see the default values for UCI options available in Stockfish by typing ./stockfish uci in a terminal, but the majority of users will typically see them and change them via a chess GUI. This is a list of available UCI options in Stockfish:

  • Threads

    The number of CPU threads used for searching a position. For best performance, set this equal to the number of CPU cores available.

  • Hash

    The size of the hash table in MB. It is recommended to set Hash after setting Threads.

  • Clear Hash

    Clear the hash table.

  • Ponder

    Let Stockfish ponder its next move while the opponent is thinking.

  • MultiPV

    Output the N best lines (principal variations, PVs) when searching. Leave at 1 for best performance.

  • Use NNUE

    Toggle between the NNUE and classical evaluation functions. If set to "true", the network parameters must be available to load from file (see also EvalFile), if they are not embedded in the binary.

  • EvalFile

    The name of the file of the NNUE evaluation parameters. Depending on the GUI the filename might have to include the full path to the folder/directory that contains the file. Other locations, such as the directory that contains the binary and the working directory, are also searched.

  • UCI_AnalyseMode

    An option handled by your GUI.

  • UCI_Chess960

    An option handled by your GUI. If true, Stockfish will play Chess960.

  • UCI_ShowWDL

    If enabled, show approximate WDL statistics as part of the engine output. These WDL numbers model expected game outcomes for a given evaluation and game ply for engine self-play at fishtest LTC conditions (60+0.6s per game).

  • UCI_LimitStrength

    Enable weaker play aiming for an Elo rating as set by UCI_Elo. This option overrides Skill Level.

  • UCI_Elo

    If enabled by UCI_LimitStrength, aim for an engine strength of the given Elo. This Elo rating has been calibrated at a time control of 60s+0.6s and anchored to CCRL 40/4.

  • Skill Level

    Lower the Skill Level in order to make Stockfish play weaker (see also UCI_LimitStrength). Internally, MultiPV is enabled, and with a certain probability depending on the Skill Level a weaker move will be played.

  • SyzygyPath

    Path to the folders/directories storing the Syzygy tablebase files. Multiple directories are to be separated by ";" on Windows and by ":" on Unix-based operating systems. Do not use spaces around the ";" or ":".

    Example: C:\tablebases\wdl345;C:\tablebases\wdl6;D:\tablebases\dtz345;D:\tablebases\dtz6

    It is recommended to store .rtbw files on an SSD. There is no loss in storing the .rtbz files on a regular HD. It is recommended to verify all md5 checksums of the downloaded tablebase files (md5sum -c checksum.md5) as corruption will lead to engine crashes.

  • SyzygyProbeDepth

    Minimum remaining search depth for which a position is probed. Set this option to a higher value to probe less aggressively if you experience too much slowdown (in terms of nps) due to tablebase probing.

  • Syzygy50MoveRule

    Disable to let fifty-move rule draws detected by Syzygy tablebase probes count as wins or losses. This is useful for ICCF correspondence games.

  • SyzygyProbeLimit

    Limit Syzygy tablebase probing to positions with at most this many pieces left (including kings and pawns).

  • Move Overhead

    Assume a time delay of x ms due to network and GUI overheads. This is useful to avoid losses on time in those cases.

  • Slow Mover

    Lower values will make Stockfish take less time in games, higher values will make it think longer.

  • nodestime

    Tells the engine to use nodes searched instead of wall time to account for elapsed time. Useful for engine testing.

  • Debug Log File

    Write all communication to and from the engine into a text file.

For developers the following non-standard commands might be of interest, mainly useful for debugging:

  • bench ttSize threads limit fenFile limitType evalType

    Performs a standard benchmark using various options. The signature of a version (standard node count) is obtained using all defaults. bench is currently bench 16 1 13 default depth mixed.

  • compiler

    Give information about the compiler and environment used for building a binary.

  • d

    Display the current position, with ascii art and fen.

  • eval

    Return the evaluation of the current position.

  • export_net [filename]

    Exports the currently loaded network to a file. If the currently loaded network is the embedded network and the filename is not specified then the network is saved to the file matching the name of the embedded network, as defined in evaluate.h. If the currently loaded network is not the embedded network (some net set through the UCI setoption) then the filename parameter is required and the network is saved into that file.

  • flip

    Flips the side to move.

A note on classical evaluation versus NNUE evaluation

Both approaches assign a value to a position that is used in alpha-beta (PVS) search to find the best move. The classical evaluation computes this value as a function of various chess concepts, handcrafted by experts, tested and tuned using fishtest. The NNUE evaluation computes this value with a neural network based on basic inputs (e.g. piece positions only). The network is optimized and trained on the evaluations of millions of positions at moderate search depth.

The NNUE evaluation was first introduced in shogi, and ported to Stockfish afterward. It can be evaluated efficiently on CPUs, and exploits the fact that only parts of the neural network need to be updated after a typical chess move. The nodchip repository provides additional tools to train and develop the NNUE networks. On CPUs supporting modern vector instructions (avx2 and similar), the NNUE evaluation results in much stronger playing strength, even if the nodes per second computed by the engine is somewhat lower (roughly 80% of nps is typical).

Notes:

  1. the NNUE evaluation depends on the Stockfish binary and the network parameter file (see the EvalFile UCI option). Not every parameter file is compatible with a given Stockfish binary, but the default value of the EvalFile UCI option is the name of a network that is guaranteed to be compatible with that binary.

  2. to use the NNUE evaluation, the additional data file with neural network parameters needs to be available. Normally, this file is already embedded in the binary or it can be downloaded. The filename for the default (recommended) net can be found as the default value of the EvalFile UCI option, with the format nn-[SHA256 first 12 digits].nnue (for instance, nn-c157e0a5755b.nnue). This file can be downloaded from

https://tests.stockfishchess.org/api/nn/[filename]

replacing [filename] as needed.

What to expect from the Syzygy tablebases?

If the engine is searching a position that is not in the tablebases (e.g. a position with 8 pieces), it will access the tablebases during the search. If the engine reports a very large score (typically 153.xx), this means it has found a winning line into a tablebase position.

If the engine is given a position to search that is in the tablebases, it will use the tablebases at the beginning of the search to preselect all good moves, i.e. all moves that preserve the win or preserve the draw while taking into account the 50-move rule. It will then perform a search only on those moves. The engine will not move immediately, unless there is only a single good move. The engine likely will not report a mate score, even if the position is known to be won.

It is therefore clear that this behaviour is not identical to what one might be used to with Nalimov tablebases. There are technical reasons for this difference, the main technical reason being that Nalimov tablebases use the DTM metric (distance-to-mate), while the Syzygy tablebases use a variation of the DTZ metric (distance-to-zero, zero meaning any move that resets the 50-move counter). This special metric is one of the reasons that the Syzygy tablebases are more compact than Nalimov tablebases, while still storing all information needed for optimal play and in addition being able to take into account the 50-move rule.

Large Pages

Stockfish supports large pages on Linux and Windows. Large pages make the hash access more efficient, improving the engine speed, especially on large hash sizes. Typical increases are 5..10% in terms of nodes per second, but speed increases up to 30% have been measured. The support is automatic. Stockfish attempts to use large pages when available and will fall back to regular memory allocation when this is not the case.

Support on Linux

Large page support on Linux is obtained by the Linux kernel transparent huge pages functionality. Typically, transparent huge pages are already enabled, and no configuration is needed.

Support on Windows

The use of large pages requires "Lock Pages in Memory" privilege. See Enable the Lock Pages in Memory Option (Windows) on how to enable this privilege, then run RAMMap to double-check that large pages are used. We suggest that you reboot your computer after you have enabled large pages, because long Windows sessions suffer from memory fragmentation, which may prevent Stockfish from getting large pages: a fresh session is better in this regard.

Compiling Stockfish yourself from the sources

Stockfish has support for 32 or 64-bit CPUs, certain hardware instructions, big-endian machines such as Power PC, and other platforms.

On Unix-like systems, it should be easy to compile Stockfish directly from the source code with the included Makefile in the folder src. In general it is recommended to run make help to see a list of make targets with corresponding descriptions.

    cd src
    make help
    make net
    make build ARCH=x86-64-modern

When not using the Makefile to compile (for instance, with Microsoft MSVC) you need to manually set/unset some switches in the compiler command line; see file types.h for a quick reference.

When reporting an issue or a bug, please tell us which Stockfish version and which compiler you used to create your executable. This information can be found by typing the following command in a console:

    ./stockfish compiler

Understanding the code base and participating in the project

Stockfish's improvement over the last decade has been a great community effort. There are a few ways to help contribute to its growth.

Donating hardware

Improving Stockfish requires a massive amount of testing. You can donate your hardware resources by installing the Fishtest Worker and view the current tests on Fishtest.

Improving the code

If you want to help improve the code, there are several valuable resources:

  • In this wiki, many techniques used in Stockfish are explained with a lot of background information.

  • The section on Stockfish describes many features and techniques used by Stockfish. However, it is generic rather than being focused on Stockfish's precise implementation. Nevertheless, a helpful resource.

  • The latest source can always be found on GitHub. Discussions about Stockfish take place these days mainly in the FishCooking group and on the Stockfish Discord channel. The engine testing is done on Fishtest. If you want to help improve Stockfish, please read this guideline first, where the basics of Stockfish development are explained.

Terms of use

Stockfish is free, and distributed under the GNU General Public License version 3 (GPL v3). Essentially, this means you are free to do almost exactly what you want with the program, including distributing it among your friends, making it available for download from your website, selling it (either by itself or as part of some bigger software package), or using it as the starting point for a software project of your own.

The only real limitation is that whenever you distribute Stockfish in some way, you MUST always include the full source code, or a pointer to where the source code can be found, to generate the exact binary you are distributing. If you make any changes to the source code, these changes must also be made available under the GPL.

For full details, read the copy of the GPL v3 found in the file named Copying.txt.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyffish-0.0.84.tar.gz (321.9 kB view details)

Uploaded Source

Built Distributions

pyffish-0.0.84-cp312-cp312-win_amd64.whl (369.3 kB view details)

Uploaded CPython 3.12 Windows x86-64

pyffish-0.0.84-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

pyffish-0.0.84-cp312-cp312-macosx_11_0_arm64.whl (545.9 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

pyffish-0.0.84-cp312-cp312-macosx_10_14_x86_64.whl (561.8 kB view details)

Uploaded CPython 3.12 macOS 10.14+ x86-64

pyffish-0.0.84-cp311-cp311-win_amd64.whl (369.3 kB view details)

Uploaded CPython 3.11 Windows x86-64

pyffish-0.0.84-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pyffish-0.0.84-cp311-cp311-macosx_11_0_arm64.whl (545.8 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

pyffish-0.0.84-cp311-cp311-macosx_10_14_x86_64.whl (561.7 kB view details)

Uploaded CPython 3.11 macOS 10.14+ x86-64

pyffish-0.0.84-cp310-cp310-win_amd64.whl (369.3 kB view details)

Uploaded CPython 3.10 Windows x86-64

pyffish-0.0.84-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pyffish-0.0.84-cp310-cp310-macosx_11_0_arm64.whl (545.9 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

pyffish-0.0.84-cp310-cp310-macosx_10_14_x86_64.whl (561.7 kB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

pyffish-0.0.84-cp39-cp39-win_amd64.whl (369.2 kB view details)

Uploaded CPython 3.9 Windows x86-64

pyffish-0.0.84-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pyffish-0.0.84-cp39-cp39-macosx_11_0_arm64.whl (545.8 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

pyffish-0.0.84-cp39-cp39-macosx_10_14_x86_64.whl (561.7 kB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

pyffish-0.0.84-cp38-cp38-win_amd64.whl (369.2 kB view details)

Uploaded CPython 3.8 Windows x86-64

pyffish-0.0.84-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

pyffish-0.0.84-cp38-cp38-macosx_11_0_arm64.whl (545.8 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

pyffish-0.0.84-cp38-cp38-macosx_10_14_x86_64.whl (561.7 kB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

File details

Details for the file pyffish-0.0.84.tar.gz.

File metadata

  • Download URL: pyffish-0.0.84.tar.gz
  • Upload date:
  • Size: 321.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.11

File hashes

Hashes for pyffish-0.0.84.tar.gz
Algorithm Hash digest
SHA256 4401c98f9bf1cfdeba0fad0ae4e07912caa0082a4254c29a2ca6b3018b54e310
MD5 c737e151bd9f30968be6cd66018e63ab
BLAKE2b-256 7ade8b478b72734ec268638176b67f930d92bb49e0832c2a9e119bc429a1b7d9

See more details on using hashes here.

File details

Details for the file pyffish-0.0.84-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pyffish-0.0.84-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 369.3 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.11

File hashes

Hashes for pyffish-0.0.84-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f48fc32f8cd8bca3abf806b80c970a059ed5b0248ac720cb5b3e9cf662886d86
MD5 17d6f70333f42e175f21ff454eb7e656
BLAKE2b-256 aefd4aff45b6a5391a8fdf7a560c663132c4735b8668df6dbf736a022a745a51

See more details on using hashes here.

File details

Details for the file pyffish-0.0.84-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyffish-0.0.84-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bffb1f552136eb82902792241c1d44cf89a75c86311887450446a7ddbee8baaa
MD5 d6a51b1e3602a37c1cbd0ef83c2c1520
BLAKE2b-256 d6a10904ebed3fe1cc2b9b9802640c0de96da0eb5faabd64039b3b8e5fec4c1a

See more details on using hashes here.

File details

Details for the file pyffish-0.0.84-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyffish-0.0.84-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cc9f0a1cc747e7c572cb1d182d8c0dc8654926151dbe1aa1d002070829e12a8b
MD5 a47c086d74dd4da27181dadfcb749111
BLAKE2b-256 c2edc92475dfd014ad20cbdd6d9f87dbbaa90d0f4337cf812f5593022a1d6038

See more details on using hashes here.

File details

Details for the file pyffish-0.0.84-cp312-cp312-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for pyffish-0.0.84-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 815d8cbc3a5951fa605d182ebbf01136dce44d991db0f51b36a660535acbcbf7
MD5 e6c91c4f6e4227ba4099cba18867324b
BLAKE2b-256 53566a2134d720b3a20469d40d2212bdb5395a9e9570335585c368b92329d72c

See more details on using hashes here.

File details

Details for the file pyffish-0.0.84-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pyffish-0.0.84-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 369.3 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.11

File hashes

Hashes for pyffish-0.0.84-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2e4214e9a5ef1aebf97d60c53501e79dc0f74848ed4ccb088b2a851a80ed993d
MD5 117191d90d082d6a10c93fb3d2dd70b0
BLAKE2b-256 06df9f8d6bf1022c4af0aca1c156e1c9798de7de5364dd45f7f9b3674a370df2

See more details on using hashes here.

File details

Details for the file pyffish-0.0.84-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyffish-0.0.84-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d12d468d92456c859c9cea0d06bd996b7ce2eb5e57a4b2873fdbab6d32e31894
MD5 29cffda94453c30667021032955b519a
BLAKE2b-256 e3839055c3d317be64e655296e42eb4bd01e0f85050753a0cf04fa57ac32b824

See more details on using hashes here.

File details

Details for the file pyffish-0.0.84-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyffish-0.0.84-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 423d43692abc0ac81f302dd19220b93690993bc7df1830dd42a3ba3e3bf141f0
MD5 a66136081fe54eb5a443b5a7a9f77b97
BLAKE2b-256 327a62691ff1c19903111b865451f3cff549208db194a293b5a5720503996a70

See more details on using hashes here.

File details

Details for the file pyffish-0.0.84-cp311-cp311-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for pyffish-0.0.84-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 7c9fdc34e32ce3f1c252667ca2fe57ef6c53fa73eac7a43f72a1234ea5501d27
MD5 ab171fe9e4291d1f2f2e6bbb5b36c51c
BLAKE2b-256 724500754776adf98ee7994c40594b9f431d3ad05260ae4d2bdc1119334da937

See more details on using hashes here.

File details

Details for the file pyffish-0.0.84-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pyffish-0.0.84-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 369.3 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.11

File hashes

Hashes for pyffish-0.0.84-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a4bb38a98ff550f118c15488ddb0a21c4ab47e128879bda88bbcf41f0b84c165
MD5 2f9a2725e8459af38323eba3f0648a7f
BLAKE2b-256 490f04e51bfd686d382d931d5084d661f04e4cf4c6e213fb4f1bc49ab01e84a9

See more details on using hashes here.

File details

Details for the file pyffish-0.0.84-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyffish-0.0.84-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c0584dd3ca25d53b92d80c17b89547d92edbdeaea35a7fb01b8f33d4f4e0883c
MD5 1b537c6717c7baff43b619ee34b75c8d
BLAKE2b-256 a4023d8dbab6a04222cb90f9a3da1e3488999bd4fd43d8e52ec0cd1343106a5d

See more details on using hashes here.

File details

Details for the file pyffish-0.0.84-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyffish-0.0.84-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2c287acd90bf7afa4dc1a30bd0f45857a823da81d58465d4f7ce910db417c254
MD5 e027c620fbd1e7a33c144427951b7b17
BLAKE2b-256 d31aee730c50c9283c2fdf106a0e4ac566c21f487d35bfe28cc20dcc5076e3fe

See more details on using hashes here.

File details

Details for the file pyffish-0.0.84-cp310-cp310-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for pyffish-0.0.84-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 88d632d361195780c8af7994feee4ba4690cfc043048e23195eb24c2bd4e6e76
MD5 a5a765c4acefef3c64c6bad5d897b2b5
BLAKE2b-256 07e5032068577db34e4371e7d845f6674537dcf4d4dc880048aee13a3d3f7c51

See more details on using hashes here.

File details

Details for the file pyffish-0.0.84-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: pyffish-0.0.84-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 369.2 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.11

File hashes

Hashes for pyffish-0.0.84-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 72eeda52f605f45c5a84d7ce244dffe21db2fa4d2c51b666d27f325c0fa0f063
MD5 e22ef0f68dfa9190a12ee8a27af6ae51
BLAKE2b-256 c535ec69a4466336f9379c539009f8d6c515192b8ec62bf72946308ea32ad505

See more details on using hashes here.

File details

Details for the file pyffish-0.0.84-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyffish-0.0.84-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 12efff9523378f6ba171011c9adeb7101133bd7496765875346afab0dca424c8
MD5 81f20398fd5bc69522179fa43c0d328e
BLAKE2b-256 9466891b6b82c544ec098da041790dd08bc814a4cf4306eeaacd6a9f51b1673c

See more details on using hashes here.

File details

Details for the file pyffish-0.0.84-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyffish-0.0.84-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 08cbcd051d633234275e3af2df05d07519d6bae47761082c7fedc34e0eb7d44c
MD5 3ca26d87bf6df9e5094e35fa1bbc0b2f
BLAKE2b-256 c9e901a2cd16da3cfca4ea70861a86b5dbd4609d16652dc24d9acd6e2fc28681

See more details on using hashes here.

File details

Details for the file pyffish-0.0.84-cp39-cp39-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for pyffish-0.0.84-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 5c925097693b111bb0460a99d9b7b2137ded9f8b0b4e08726c2c95a2cffaed39
MD5 2348f14a4dc2ce7172d140721c683eeb
BLAKE2b-256 eac042c9d45e65531dfabf45777439ec5f1dcdca6fb528f79cdca6b40f4d2be7

See more details on using hashes here.

File details

Details for the file pyffish-0.0.84-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: pyffish-0.0.84-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 369.2 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.11

File hashes

Hashes for pyffish-0.0.84-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 8f249ec809ea5328245f6f8b288cf88a62d0310986448727c33643befee17cd5
MD5 7960827501fea0d270ebc5d32355ab79
BLAKE2b-256 63e85f9153663c19b145a6930a829398bdfdc4984e560a25f3fe0fb0ed1f77eb

See more details on using hashes here.

File details

Details for the file pyffish-0.0.84-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyffish-0.0.84-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2dc4bf2fc1d0fd9fb05ab949d2d45b549ce32bdc73677ec4b351322031fe69b3
MD5 8e28a065e3fa95b2c7c6d0ec5b6c520b
BLAKE2b-256 16417d1f1de359e01266b615df292bfea9488d4bc4633e907747afb8b8071c80

See more details on using hashes here.

File details

Details for the file pyffish-0.0.84-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyffish-0.0.84-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a959acfa87fc60ae33e68a1a08232eaa65adc3d8151419b2fba353cf4568aaad
MD5 d675408fbe1a8417f1441187372c013f
BLAKE2b-256 3be5c54159b01fccb2517613523b7c6e25dd262499b246e0be09befe3bdeb940

See more details on using hashes here.

File details

Details for the file pyffish-0.0.84-cp38-cp38-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for pyffish-0.0.84-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 e6d9fe7ee71278f057598efbb382d015262f9d391eff32a8807c1935d5412a6f
MD5 86c75b1da6217519dc73e1683e122abf
BLAKE2b-256 bf9b9a27ad4e687d1362649e1a325f9abc781e0d575def886c6acfa83493235a

See more details on using hashes here.

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