pytoulbar2


Namepytoulbar2 JSON
Version 0.0.0.3.post1 PyPI version JSON
download
home_pagehttp://miat.inrae.fr/toulbar2
SummaryToulBar2 Python package
upload_time2023-01-26 15:55:36
maintainer
docs_urlNone
authorToulBar2 team
requires_python
licenseMIT
keywords optimization graphical-model
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # toulbar2
## Exact optimization for cost function networks and additive graphical models 

[![Build Status](https://travis-ci.com/toulbar2/toulbar2.svg?branch=master)](https://app.travis-ci.com/github/toulbar2/toulbar2)
[![PyPi version](https://img.shields.io/pypi/v/pytoulbar2.svg)](https://pypi.org/project/pytoulbar2)[![PyPi wheel](https://img.shields.io/pypi/wheel/pytoulbar2.svg)](https://pypi.org/project/pytoulbar2)[![PyPi python versions](https://img.shields.io/pypi/pyversions/pytoulbar2.svg)](https://pypi.org/project/pytoulbar2)

<!-- (_README_1)= -->
## What is toulbar2? 

toulbar2 is an open-source black-box C++ optimizer for cost function
networks and discrete additive graphical models. This also covers Max-SAT, Max-Cut, QUBO (and constrained variants), among others. It can read a variety
of formats. The optimized criteria and feasibility should be provided
factorized in local cost functions on discrete variables. Constraints
are represented as functions that produce costs that exceed a
user-provided primal bound. toulbar2 looks for a non-forbidden assignment 
of all variables that optimizes the sum of all functions (a decision 
NP-complete problem).

toulbar2 won several competitions on deterministic and probabilistic
graphical models:

* Max-CSP 2008 Competition [CPAI08][cpai08] (winner on 2-ARY-EXT and N-ARY-EXT)
* Probabilistic Inference Evaluation [UAI 2008][uai2008] (winner on several MPE tasks, inra entries)
* 2010 UAI APPROXIMATE INFERENCE CHALLENGE [UAI 2010][uai2010] (winner on 1200-second MPE task)
* The Probabilistic Inference Challenge [PIC 2011][pic2011] (second place by ficolofo on 1-hour MAP task)
* UAI 2014 Inference Competition [UAI 2014][uai2014] (winner on all MAP task categories, see Proteus, Robin, and IncTb entries)

[cpai08]: http://www.cril.univ-artois.fr/CPAI08/
[uai2008]: http://graphmod.ics.uci.edu/uai08/Evaluation/Report
[uai2010]: http://www.cs.huji.ac.il/project/UAI10/summary.php
[pic2011]: http://www.cs.huji.ac.il/project/PASCAL/board.php
[uai2014]: http://www.hlt.utdallas.edu/~vgogate/uai14-competition/leaders.html 

toulbar2 is now also able to collaborate with ML code that can learn
an additive graphical model (with constraints) from data (see the
associated
[paper](https://miat.inrae.fr/schiex/Export/Pushing_Data_in_your_CP_model.pdf),
[slides](https://miat.inrae.fr/schiex/Export/Pushing_Data_in_your_CP_model-Slides.pdf)
and [video](https://www.youtube.com/watch?v=IpUr6KIEjMs) where it is
shown how it can learn user preferences or how to play the Sudoku
without knowing the rules). The current CFN learning code is available
on [GitHub](https://github.com/toulbar2/CFN-learn).

<!-- (_README_2)= -->
## Installation from binaries

You can install toulbar2 directly using the package manager in Debian
and Debian derived Linux distributions (Ubuntu, Mint,...):

    sudo apt-get update
    sudo apt-get install toulbar2 toulbar2-doc

For the most recent binary or the Python API, compile from source.

<!-- (_README_3)= -->
## Python interface

An alpha-release Python interface can be tested through pip on Linux and MacOS:

    python3 -m pip install --upgrade pip
    python3 -m pip install pytoulbar2

The first line is only useful for Linux distributions that ship "old" versions of pip.

Commands for compiling the Python API on Linux/MacOS with cmake (Python module in lib/\*/pytb2.cpython\*.so):

    mkdir build
    cd build
    cmake -DPYTB2=ON ..
    make

Move the cpython library and the experimental [pytoulbar2.py](https://github.com/toulbar2/toulbar2/raw/master/pytoulbar2/pytoulbar2.py) python class wrapper in the folder of the python script that does "import pytoulbar2".

<!-- (_README_4)= -->
## Download

Download the latest release from GitHub
(https://github.com/toulbar2/toulbar2) or similarly use tag versions,
e.g.:

    git clone --branch 1.2.0 https://github.com/toulbar2/toulbar2.git

<!-- (_README_5)= -->
## Installation from sources

Compilation requires git, cmake and a C++-11 capable compiler (in C++11 mode). 

Required library:
* libgmp-dev

Recommended libraries (default use):
* libboost-graph-dev
* libboost-iostreams-dev
* libboost-serialization-dev
* zlib1g-dev
* liblzma-dev
* libbz2-dev

Optional libraries:
* libjemalloc-dev
* libopenmpi-dev
* libboost-mpi-dev
* libicuuc
* libicui18n
* libicudata
* libxml2-dev
* libxcsp3parser

On MacOS, run ./misc/script/MacOS-requirements-install.sh to install the recommended libraries.

Commands for compiling toulbar2 on Linux/MacOS with cmake (binary in build/bin/\*/toulbar2):

    mkdir build
    cd build
    cmake ..
    make

Commands for statically compiling toulbar2 on Linux in directory toulbar2/src without cmake:

    bash
    cd src
    echo '#define Toulbar_VERSION "1.2.0"' > ToulbarVersion.hpp
    g++ -o toulbar2 -std=c++17 -O3 -DNDEBUG -static -static-libgcc -static-libstdc++ -DBOOST -DLONGDOUBLE_PROB -DLONGLONG_COST -DWCSPFORMATONLY \
     -I. -I./pils/src tb2*.cpp applis/*.cpp core/*.cpp globals/*.cpp incop/*.cpp pils/src/exe/*.cpp search/*.cpp utils/*.cpp vns/*.cpp ToulbarVersion.cpp \
     -lboost_graph -lboost_iostreams -lboost_serialization -lgmp -lz -lbz2 -llzma

Use OPENMPI flag and MPI compiler for a parallel version of toulbar2:

    bash
    cd src
    echo '#define Toulbar_VERSION "1.2.0"' > ToulbarVersion.hpp
    mpicxx -o toulbar2 -std=c++17 -O3 -DNDEBUG -DBOOST -DLONGDOUBLE_PROB -DLONGLONG_COST -DWCSPFORMATONLY -DOPENMPI \
     -I. -I./pils/src tb2*.cpp applis/*.cpp core/*.cpp globals/*.cpp incop/*.cpp pils/src/exe/*.cpp search/*.cpp utils/*.cpp vns/*.cpp ToulbarVersion.cpp \
     -lboost_graph -lboost_iostreams -lboost_serialization -lboost_mpi -lgmp -lz -lbz2 -llzma

Replace LONGLONG_COST by INT_COST to reduce memory usage by two and reduced cost range (costs must be smaller than 10^8).

Replace WCSPFORMATONLY by XMLFLAG3 and add libxcsp3parser.a from xcsp.org in your current directory for reading XCSP3 files:

    bash
    cd src
    echo '#define Toulbar_VERSION "1.2.0"' > ToulbarVersion.hpp
    mpicxx -o toulbar2 -std=c++17 -O3 -DNDEBUG -DBOOST -DLONGDOUBLE_PROB -DLONGLONG_COST -DXMLFLAG3 -DOPENMPI \
     -I/usr/include/libxml2 -I. -I./pils/src -I./xmlcsp3 tb2*.cpp applis/*.cpp core/*.cpp globals/*.cpp incop/*.cpp pils/src/exe/*.cpp search/*.cpp utils/*.cpp vns/*.cpp ToulbarVersion.cpp \
     -lboost_graph -lboost_iostreams -lboost_serialization -lboost_mpi -lxml2 -licuuc -licui18n -licudata libxcsp3parser.a -lgmp -lz -lbz2 -llzma -lm -lpthread -ldl

Copyright (C) 2006-2022, toulbar2 team.
toulbar2 is currently maintained by Simon de Givry, INRAE - MIAT, Toulouse, France (simon.de-givry@inrae.fr)

            

Raw data

            {
    "_id": null,
    "home_page": "http://miat.inrae.fr/toulbar2",
    "name": "pytoulbar2",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "optimization graphical-model",
    "author": "ToulBar2 team",
    "author_email": "thomas.schiex@inrae.fr",
    "download_url": "",
    "platform": null,
    "description": "# toulbar2\n## Exact optimization for cost function networks and additive graphical models \n\n[![Build Status](https://travis-ci.com/toulbar2/toulbar2.svg?branch=master)](https://app.travis-ci.com/github/toulbar2/toulbar2)\n[![PyPi version](https://img.shields.io/pypi/v/pytoulbar2.svg)](https://pypi.org/project/pytoulbar2)[![PyPi wheel](https://img.shields.io/pypi/wheel/pytoulbar2.svg)](https://pypi.org/project/pytoulbar2)[![PyPi python versions](https://img.shields.io/pypi/pyversions/pytoulbar2.svg)](https://pypi.org/project/pytoulbar2)\n\n<!-- (_README_1)= -->\n## What is toulbar2? \n\ntoulbar2 is an open-source black-box C++ optimizer for cost function\nnetworks and discrete additive graphical models. This also covers Max-SAT, Max-Cut, QUBO (and constrained variants), among others. It can read a variety\nof formats. The optimized criteria and feasibility should be provided\nfactorized in local cost functions on discrete variables. Constraints\nare represented as functions that produce costs that exceed a\nuser-provided primal bound. toulbar2 looks for a non-forbidden assignment \nof all variables that optimizes the sum of all functions (a decision \nNP-complete problem).\n\ntoulbar2 won several competitions on deterministic and probabilistic\ngraphical models:\n\n* Max-CSP 2008 Competition [CPAI08][cpai08] (winner on 2-ARY-EXT and N-ARY-EXT)\n* Probabilistic Inference Evaluation [UAI 2008][uai2008] (winner on several MPE tasks, inra entries)\n* 2010 UAI APPROXIMATE INFERENCE CHALLENGE [UAI 2010][uai2010] (winner on 1200-second MPE task)\n* The Probabilistic Inference Challenge [PIC 2011][pic2011] (second place by ficolofo on 1-hour MAP task)\n* UAI 2014 Inference Competition [UAI 2014][uai2014] (winner on all MAP task categories, see Proteus, Robin, and IncTb entries)\n\n[cpai08]: http://www.cril.univ-artois.fr/CPAI08/\n[uai2008]: http://graphmod.ics.uci.edu/uai08/Evaluation/Report\n[uai2010]: http://www.cs.huji.ac.il/project/UAI10/summary.php\n[pic2011]: http://www.cs.huji.ac.il/project/PASCAL/board.php\n[uai2014]: http://www.hlt.utdallas.edu/~vgogate/uai14-competition/leaders.html \n\ntoulbar2 is now also able to collaborate with ML code that can learn\nan additive graphical model (with constraints) from data (see the\nassociated\n[paper](https://miat.inrae.fr/schiex/Export/Pushing_Data_in_your_CP_model.pdf),\n[slides](https://miat.inrae.fr/schiex/Export/Pushing_Data_in_your_CP_model-Slides.pdf)\nand [video](https://www.youtube.com/watch?v=IpUr6KIEjMs) where it is\nshown how it can learn user preferences or how to play the Sudoku\nwithout knowing the rules). The current CFN learning code is available\non [GitHub](https://github.com/toulbar2/CFN-learn).\n\n<!-- (_README_2)= -->\n## Installation from binaries\n\nYou can install toulbar2 directly using the package manager in Debian\nand Debian derived Linux distributions (Ubuntu, Mint,...):\n\n    sudo apt-get update\n    sudo apt-get install toulbar2 toulbar2-doc\n\nFor the most recent binary or the Python API, compile from source.\n\n<!-- (_README_3)= -->\n## Python interface\n\nAn alpha-release Python interface can be tested through pip on Linux and MacOS:\n\n    python3 -m pip install --upgrade pip\n    python3 -m pip install pytoulbar2\n\nThe first line is only useful for Linux distributions that ship \"old\" versions of pip.\n\nCommands for compiling the Python API on Linux/MacOS with cmake (Python module in lib/\\*/pytb2.cpython\\*.so):\n\n    mkdir build\n    cd build\n    cmake -DPYTB2=ON ..\n    make\n\nMove the cpython library and the experimental [pytoulbar2.py](https://github.com/toulbar2/toulbar2/raw/master/pytoulbar2/pytoulbar2.py) python class wrapper in the folder of the python script that does \"import pytoulbar2\".\n\n<!-- (_README_4)= -->\n## Download\n\nDownload the latest release from GitHub\n(https://github.com/toulbar2/toulbar2) or similarly use tag versions,\ne.g.:\n\n    git clone --branch 1.2.0 https://github.com/toulbar2/toulbar2.git\n\n<!-- (_README_5)= -->\n## Installation from sources\n\nCompilation requires git, cmake and a C++-11 capable compiler (in C++11 mode). \n\nRequired library:\n* libgmp-dev\n\nRecommended libraries (default use):\n* libboost-graph-dev\n* libboost-iostreams-dev\n* libboost-serialization-dev\n* zlib1g-dev\n* liblzma-dev\n* libbz2-dev\n\nOptional libraries:\n* libjemalloc-dev\n* libopenmpi-dev\n* libboost-mpi-dev\n* libicuuc\n* libicui18n\n* libicudata\n* libxml2-dev\n* libxcsp3parser\n\nOn MacOS, run ./misc/script/MacOS-requirements-install.sh to install the recommended libraries.\n\nCommands for compiling toulbar2 on Linux/MacOS with cmake (binary in build/bin/\\*/toulbar2):\n\n    mkdir build\n    cd build\n    cmake ..\n    make\n\nCommands for statically compiling toulbar2 on Linux in directory toulbar2/src without cmake:\n\n    bash\n    cd src\n    echo '#define Toulbar_VERSION \"1.2.0\"' > ToulbarVersion.hpp\n    g++ -o toulbar2 -std=c++17 -O3 -DNDEBUG -static -static-libgcc -static-libstdc++ -DBOOST -DLONGDOUBLE_PROB -DLONGLONG_COST -DWCSPFORMATONLY \\\n     -I. -I./pils/src tb2*.cpp applis/*.cpp core/*.cpp globals/*.cpp incop/*.cpp pils/src/exe/*.cpp search/*.cpp utils/*.cpp vns/*.cpp ToulbarVersion.cpp \\\n     -lboost_graph -lboost_iostreams -lboost_serialization -lgmp -lz -lbz2 -llzma\n\nUse OPENMPI flag and MPI compiler for a parallel version of toulbar2:\n\n    bash\n    cd src\n    echo '#define Toulbar_VERSION \"1.2.0\"' > ToulbarVersion.hpp\n    mpicxx -o toulbar2 -std=c++17 -O3 -DNDEBUG -DBOOST -DLONGDOUBLE_PROB -DLONGLONG_COST -DWCSPFORMATONLY -DOPENMPI \\\n     -I. -I./pils/src tb2*.cpp applis/*.cpp core/*.cpp globals/*.cpp incop/*.cpp pils/src/exe/*.cpp search/*.cpp utils/*.cpp vns/*.cpp ToulbarVersion.cpp \\\n     -lboost_graph -lboost_iostreams -lboost_serialization -lboost_mpi -lgmp -lz -lbz2 -llzma\n\nReplace LONGLONG_COST by INT_COST to reduce memory usage by two and reduced cost range (costs must be smaller than 10^8).\n\nReplace WCSPFORMATONLY by XMLFLAG3 and add libxcsp3parser.a from xcsp.org in your current directory for reading XCSP3 files:\n\n    bash\n    cd src\n    echo '#define Toulbar_VERSION \"1.2.0\"' > ToulbarVersion.hpp\n    mpicxx -o toulbar2 -std=c++17 -O3 -DNDEBUG -DBOOST -DLONGDOUBLE_PROB -DLONGLONG_COST -DXMLFLAG3 -DOPENMPI \\\n     -I/usr/include/libxml2 -I. -I./pils/src -I./xmlcsp3 tb2*.cpp applis/*.cpp core/*.cpp globals/*.cpp incop/*.cpp pils/src/exe/*.cpp search/*.cpp utils/*.cpp vns/*.cpp ToulbarVersion.cpp \\\n     -lboost_graph -lboost_iostreams -lboost_serialization -lboost_mpi -lxml2 -licuuc -licui18n -licudata libxcsp3parser.a -lgmp -lz -lbz2 -llzma -lm -lpthread -ldl\n\nCopyright (C) 2006-2022, toulbar2 team.\ntoulbar2 is currently maintained by Simon de Givry, INRAE - MIAT, Toulouse, France (simon.de-givry@inrae.fr)\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "ToulBar2 Python package",
    "version": "0.0.0.3.post1",
    "split_keywords": [
        "optimization",
        "graphical-model"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8da04479e23676f44769b3263723e5b41718e6ad4ed64134b0bb8b1bb6ac814a",
                "md5": "8631e34b32158ef50733e151cbc19280",
                "sha256": "ebf776c0447b82b4184d70cc8ad482b96f26ed660cac0e40c6b18990bab17a18"
            },
            "downloads": -1,
            "filename": "pytoulbar2-0.0.0.3.post1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8631e34b32158ef50733e151cbc19280",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 12674248,
            "upload_time": "2023-01-26T15:55:36",
            "upload_time_iso_8601": "2023-01-26T15:55:36.605682Z",
            "url": "https://files.pythonhosted.org/packages/8d/a0/4479e23676f44769b3263723e5b41718e6ad4ed64134b0bb8b1bb6ac814a/pytoulbar2-0.0.0.3.post1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d6a6e5b7cc3a43ef1e3a36c10a05e6b22472c8f50c0e967ff68c14c3f791680e",
                "md5": "b71dd5124bc1e6a0032d565bfbb03220",
                "sha256": "89cc6005495d49856c9bf45114b2dd5a202a21da283897ce7e498408ef016d90"
            },
            "downloads": -1,
            "filename": "pytoulbar2-0.0.0.3.post1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b71dd5124bc1e6a0032d565bfbb03220",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 12674002,
            "upload_time": "2023-01-26T15:55:39",
            "upload_time_iso_8601": "2023-01-26T15:55:39.848092Z",
            "url": "https://files.pythonhosted.org/packages/d6/a6/e5b7cc3a43ef1e3a36c10a05e6b22472c8f50c0e967ff68c14c3f791680e/pytoulbar2-0.0.0.3.post1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4f9103da70a8edab57829421b2e84a2b6a51554467fd06082b4f5b5cd100ec6d",
                "md5": "ff7e49cd472e2287bff3bb8c51ec7c95",
                "sha256": "e66bc21d728f301550fe15e0b8b5c39540502a3bbb8c757ae8b32d5c510ee277"
            },
            "downloads": -1,
            "filename": "pytoulbar2-0.0.0.3.post1-cp36-cp36m-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ff7e49cd472e2287bff3bb8c51ec7c95",
            "packagetype": "bdist_wheel",
            "python_version": "cp36",
            "requires_python": null,
            "size": 15118213,
            "upload_time": "2023-01-26T15:56:35",
            "upload_time_iso_8601": "2023-01-26T15:56:35.944669Z",
            "url": "https://files.pythonhosted.org/packages/4f/91/03da70a8edab57829421b2e84a2b6a51554467fd06082b4f5b5cd100ec6d/pytoulbar2-0.0.0.3.post1-cp36-cp36m-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "601a2f7b09cbf0f923b6085e3f7522d139e73c4593ff7fa42db7fa1a5a5aab69",
                "md5": "7b6727d1a22c7c51c79690dce5441e38",
                "sha256": "dbb2658d0aad087e93ff6855beddd388ea006d71d4a10ce69399b4bd1f5b186e"
            },
            "downloads": -1,
            "filename": "pytoulbar2-0.0.0.3.post1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7b6727d1a22c7c51c79690dce5441e38",
            "packagetype": "bdist_wheel",
            "python_version": "cp36",
            "requires_python": null,
            "size": 12681839,
            "upload_time": "2023-01-26T15:55:42",
            "upload_time_iso_8601": "2023-01-26T15:55:42.836625Z",
            "url": "https://files.pythonhosted.org/packages/60/1a/2f7b09cbf0f923b6085e3f7522d139e73c4593ff7fa42db7fa1a5a5aab69/pytoulbar2-0.0.0.3.post1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5d961d5a560248f1608800bfbbbf63960935de6fb793a0405f7d4e971f218abe",
                "md5": "3b1095a9a2447c23ea4ed518352aa7ea",
                "sha256": "94077327a3088fa2ce546503215b0fcac301bff206777fd08b5cd7ab8341d8ae"
            },
            "downloads": -1,
            "filename": "pytoulbar2-0.0.0.3.post1-cp37-cp37m-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3b1095a9a2447c23ea4ed518352aa7ea",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": null,
            "size": 15118246,
            "upload_time": "2023-01-26T15:56:38",
            "upload_time_iso_8601": "2023-01-26T15:56:38.678679Z",
            "url": "https://files.pythonhosted.org/packages/5d/96/1d5a560248f1608800bfbbbf63960935de6fb793a0405f7d4e971f218abe/pytoulbar2-0.0.0.3.post1-cp37-cp37m-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "95cce9d85cb86681df056804170da1cbd67deb1a91bc3cd0db808fae2a91f117",
                "md5": "39772763d4865e242cad74d5a118ac79",
                "sha256": "274574c6360fc70b9b05e08919048f16deb6d0465aa52c009193992d24e125f5"
            },
            "downloads": -1,
            "filename": "pytoulbar2-0.0.0.3.post1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "39772763d4865e242cad74d5a118ac79",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": null,
            "size": 12682284,
            "upload_time": "2023-01-26T15:55:45",
            "upload_time_iso_8601": "2023-01-26T15:55:45.710863Z",
            "url": "https://files.pythonhosted.org/packages/95/cc/e9d85cb86681df056804170da1cbd67deb1a91bc3cd0db808fae2a91f117/pytoulbar2-0.0.0.3.post1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3ab781a1377ec79d77418443749315385eb18862818c8bf770611ea9f9612415",
                "md5": "ffb173847124bac053a488d178ee24d9",
                "sha256": "ee56af4ab34998669f0c784c3d4cb714e13e9f6086858a0172ad68f245701df8"
            },
            "downloads": -1,
            "filename": "pytoulbar2-0.0.0.3.post1-cp38-cp38-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ffb173847124bac053a488d178ee24d9",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 15124160,
            "upload_time": "2023-01-26T15:56:41",
            "upload_time_iso_8601": "2023-01-26T15:56:41.553667Z",
            "url": "https://files.pythonhosted.org/packages/3a/b7/81a1377ec79d77418443749315385eb18862818c8bf770611ea9f9612415/pytoulbar2-0.0.0.3.post1-cp38-cp38-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "39415713b22961998251f82a7242913c96c498a49c787bc149731d227d252c2f",
                "md5": "e57e654d4ab2b99989d2fa7a0f1a9624",
                "sha256": "bfcdcfef52cfc2138440470072ac75a8438a8aa1621a0d4627be9444b880ca34"
            },
            "downloads": -1,
            "filename": "pytoulbar2-0.0.0.3.post1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e57e654d4ab2b99989d2fa7a0f1a9624",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 12673663,
            "upload_time": "2023-01-26T15:55:48",
            "upload_time_iso_8601": "2023-01-26T15:55:48.235212Z",
            "url": "https://files.pythonhosted.org/packages/39/41/5713b22961998251f82a7242913c96c498a49c787bc149731d227d252c2f/pytoulbar2-0.0.0.3.post1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dcc48e6f7230119f6aa0d1cbde335847ee052be8385400b671129648f69b9913",
                "md5": "b9ae365bccc262b7d7e7c2dadce3db78",
                "sha256": "c6061c7e400827dbf1311063465f823759104e1fa40b947fba5a461123bab08a"
            },
            "downloads": -1,
            "filename": "pytoulbar2-0.0.0.3.post1-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b9ae365bccc262b7d7e7c2dadce3db78",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 15124169,
            "upload_time": "2023-01-26T15:56:45",
            "upload_time_iso_8601": "2023-01-26T15:56:45.004704Z",
            "url": "https://files.pythonhosted.org/packages/dc/c4/8e6f7230119f6aa0d1cbde335847ee052be8385400b671129648f69b9913/pytoulbar2-0.0.0.3.post1-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c98338c6013a9988cfd210fd74f79d1b80681a06ee01aecadf563b8fc97932e4",
                "md5": "fb7dc3e270400fd334084708d115a4b5",
                "sha256": "1f50e1b9a13aa8e0dc9cb4724ebb9b35d9f71c8c3dd8a4842bdc2b1e2c9ebd0a"
            },
            "downloads": -1,
            "filename": "pytoulbar2-0.0.0.3.post1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "fb7dc3e270400fd334084708d115a4b5",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 12674614,
            "upload_time": "2023-01-26T15:55:51",
            "upload_time_iso_8601": "2023-01-26T15:55:51.124823Z",
            "url": "https://files.pythonhosted.org/packages/c9/83/38c6013a9988cfd210fd74f79d1b80681a06ee01aecadf563b8fc97932e4/pytoulbar2-0.0.0.3.post1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-01-26 15:55:36",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "lcname": "pytoulbar2"
}
        
Elapsed time: 0.10578s