Skip to main content

Repackage python-flint to include arb and flint as shared libraries

Project description

flint-py

This is a repackaged version of python-flint by Fredrik Johansson. The original package requires that the user first installs Flint and Arb, which in turn require gmp and mpfr to be installed as well. This sometimes is problematic because not every distribution has suitable packages of these libraries.

The alternative is to prebuilt different versions of the required libraries and to ship them with the python package. This repository achieves exactly that goal by leveraging PEP 513 and the manylinux project.

So, if you were planning to depend on python-flint and build the required dependencies by hand, you could try flint-py instead and see if it just works.

How to build wheels?

For the future maintainers of flint-py, here is a rough outline of the wheel build procedure:

  1. Select the desired versions of the mpir, mpfr, flint and arb libraries in the ext directory. Note that mpir, mpfr and flint are submodules, so you could check out any commit or tag that you might like. As for the mpfr library, please download a release and manually commit it into git here.

  2. Build the docker image and run it as a container:

    cd flint-py
    docker build --tag flint-py
    docker run flint-py:latest
    
  3. Find out the id of the container and copy the wheels out of it:

    docker container ls -a #find the correct id
    docker cp <container_id>:/flint-py/wheelhouse ./wheelhouse
    
  4. At this point, the ./wheelhouse directory on your local filesystem should contain the wheels you need, e.g.

    ls ./wheelhouse
    flint_py-0.3.4-cp27-cp27mu-manylinux1_x86_64.whl  flint_py-0.3.4-cp35-cp35m-manylinux1_x86_64.whl
    flint_py-0.3.4-cp27-cp27m-manylinux1_x86_64.whl   flint_py-0.3.4-cp36-cp36m-manylinux1_x86_64.whl
    flint_py-0.3.4-cp34-cp34m-manylinux1_x86_64.whl   flint_py-0.3.4-cp37-cp37m-manylinux1_x86_64.whl
    
  5. Upload the wheels to pypi:

    twine upload ./wheelhouse/*
    

Common pitfalls

  1. If you are trying to debug the compilation of C libraries under ext, please keep in mind that when you switch to docker builds, your build artifacts from the local filesystem will be copied into the image. This could break the docker build in unexpected ways. To avoid that, you could either carefully remove the artifacts before running docker or you could conduct local builds in a copy of the project.

  2. Cython extensions are not automatically rebuilt, which causes some problems for Python2.7. Currently, the build_wheels.sh script removes the extension artifacts each time before cython is asked to rebuild them in docker.

  3. If you are running Arch Linux and your docker container seems to crash with error code 139 for any command that you run, enable vsyscall=emulate for your kernel. See https://wiki.archlinux.org/index.php/Docker#Installation

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

flint_py-0.3.7-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (22.3 MB view details)

Uploaded PyPy manylinux: glibc 2.12+ x86-64

flint_py-0.3.7-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (21.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.12+ x86-64

flint_py-0.3.7-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (21.9 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

flint_py-0.3.7-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (22.1 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

flint_py-0.3.7-cp38-cp38-manylinux2010_x86_64.whl (22.2 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

flint_py-0.3.7-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (21.6 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

flint_py-0.3.7-cp37-cp37m-manylinux2010_x86_64.whl (21.6 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

flint_py-0.3.7-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (21.6 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64

flint_py-0.3.7-cp36-cp36m-manylinux2010_x86_64.whl (21.7 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64

flint_py-0.3.7-cp35-cp35m-manylinux2010_x86_64.whl (21.6 MB view details)

Uploaded CPython 3.5m manylinux: glibc 2.12+ x86-64

flint_py-0.3.7-cp34-cp34m-manylinux2010_x86_64.whl (21.7 MB view details)

Uploaded CPython 3.4m manylinux: glibc 2.12+ x86-64

flint_py-0.3.7-cp27-cp27mu-manylinux2010_x86_64.whl (21.3 MB view details)

Uploaded CPython 2.7mu manylinux: glibc 2.12+ x86-64

flint_py-0.3.7-cp27-cp27m-manylinux2010_x86_64.whl (21.3 MB view details)

Uploaded CPython 2.7m manylinux: glibc 2.12+ x86-64

File details

Details for the file flint_py-0.3.7-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for flint_py-0.3.7-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 7ddb5eafd7f6778d85bd8f9247545a6188e3a16969026c0055db187dc91b6503
MD5 80d3a41604c1bdf14fed117ad500645e
BLAKE2b-256 1a69cd3f39037fdfabf4e32b61caed23c6f7641ffaa59249bbc16cc7acae5129

See more details on using hashes here.

File details

Details for the file flint_py-0.3.7-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for flint_py-0.3.7-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 b20d1fc387aa8c3a36f75ede2af2e8b67c0d9ff38b9217ea8b46cf604e90b55a
MD5 2c8c810edd94302f78048dbba449b45b
BLAKE2b-256 d3f4f4dfdc3b37b1fc6343f6eaa3a1d631547d21d6736ed10cd7fb270a3939a2

See more details on using hashes here.

File details

Details for the file flint_py-0.3.7-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for flint_py-0.3.7-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 e9bcf807d4382a7d19b1144d8813c337326fe23cfed0d18d153f34f83a9057b3
MD5 4b52e5251d23130aa0dba4510d618785
BLAKE2b-256 4d03d94462502d249ee445c3f3dec300b8e61d7f17fb4ef08b44fa7234a0c6d8

See more details on using hashes here.

File details

Details for the file flint_py-0.3.7-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for flint_py-0.3.7-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 aeb7700e05958a9b04c4bfb654682d509e55aabc43695340af1a6c67394f4a8b
MD5 39d38390e89951e1ff500207de79fcc3
BLAKE2b-256 743679c81c8763cdee87c1be6cf32e0e363fc980f928058f80c46a2cf86fa688

See more details on using hashes here.

File details

Details for the file flint_py-0.3.7-cp38-cp38-manylinux2010_x86_64.whl.

File metadata

  • Download URL: flint_py-0.3.7-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 22.2 MB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.0 CPython/3.8.0

File hashes

Hashes for flint_py-0.3.7-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 8d6fdfd158d00674eea846a4cde07b4ec56d6f9b6b2cddf8056b636125c2184f
MD5 02dd3d9b84f69e92bc4d618cd889bedf
BLAKE2b-256 311d7968535af0c509079beed675b2f6bc2c3aea7c94c01878fbe08d818cbaee

See more details on using hashes here.

File details

Details for the file flint_py-0.3.7-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for flint_py-0.3.7-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 384a2ceab0106cd69751ba62483c1f109b067ea251bf84a9f3ba7d7c2741b1b0
MD5 310d9158fdc47688125270308f1f202a
BLAKE2b-256 3aa9db9f1f25493fdfcd1c2aa96d703b6f2dd879756e51b334842d0ccf1f5f36

See more details on using hashes here.

File details

Details for the file flint_py-0.3.7-cp37-cp37m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: flint_py-0.3.7-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 21.6 MB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.0 CPython/3.8.0

File hashes

Hashes for flint_py-0.3.7-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 b9837f01f39215ac8751b2bfe1e55f26002860ffdf79e731933fd7a58e97b4ff
MD5 b07189bff7885d79bf49eeb586b8274d
BLAKE2b-256 e0733fd183326f40bd7ded058c585d56d19800b2a192ebca2abfe06abe0c5f42

See more details on using hashes here.

File details

Details for the file flint_py-0.3.7-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for flint_py-0.3.7-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 5680d8f5cb4c03535bdadf1d67a6a22077904365fe16097a97c8b2c5a21d3b68
MD5 bbcfe88c51317e3c42c8cb372dc19424
BLAKE2b-256 d930ff5faf03714cea609b6c2dea98c8d3120069b78192df718b52168103e63e

See more details on using hashes here.

File details

Details for the file flint_py-0.3.7-cp36-cp36m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: flint_py-0.3.7-cp36-cp36m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 21.7 MB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.0 CPython/3.8.0

File hashes

Hashes for flint_py-0.3.7-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 abd3b02b1b28ef543d657be16400ea8e5bd79aa95c4a9db72b13a84fe35bb72e
MD5 4c09790ad98a6d08a0e40e1cb4ce84c5
BLAKE2b-256 3115ae9be2c70cf62a80d3d35b008820b69477e24752ada239c006f780ae077e

See more details on using hashes here.

File details

Details for the file flint_py-0.3.7-cp35-cp35m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: flint_py-0.3.7-cp35-cp35m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 21.6 MB
  • Tags: CPython 3.5m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.0 CPython/3.8.0

File hashes

Hashes for flint_py-0.3.7-cp35-cp35m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 bae672b46e32ed897f25dc6498fea9ed82d5f5b62b3690120eda7dc84986e805
MD5 96e8c3502be7414ffeeaa8d9f142768b
BLAKE2b-256 e6cef04bcc8b09083454f825e2d03e0464caa45cc7ed46df55df94551a43e2a0

See more details on using hashes here.

File details

Details for the file flint_py-0.3.7-cp34-cp34m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: flint_py-0.3.7-cp34-cp34m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 21.7 MB
  • Tags: CPython 3.4m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.0 CPython/3.8.0

File hashes

Hashes for flint_py-0.3.7-cp34-cp34m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 f867ea5b8e0163be72a9c0bca8b51fe24ca668aaf01b5ad30575fcb9f27c1987
MD5 988a7ef6de0a98256ac64eeea066d7bf
BLAKE2b-256 8153a3e3883c9c0731c6a3cf774354b473f3db72193b785703ad65c924b4352a

See more details on using hashes here.

File details

Details for the file flint_py-0.3.7-cp27-cp27mu-manylinux2010_x86_64.whl.

File metadata

  • Download URL: flint_py-0.3.7-cp27-cp27mu-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 21.3 MB
  • Tags: CPython 2.7mu, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.0 CPython/3.8.0

File hashes

Hashes for flint_py-0.3.7-cp27-cp27mu-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 285eebb4a76f897fea28868ee5a865d9c80a04f9490162d5a9d81b6f7bc975fd
MD5 c9cced7881628a7fbdfa95f1df499d2e
BLAKE2b-256 a90a890257bf869d34e922b1e8adc79bd3ddd3fc5309336cfc023d2a68957c56

See more details on using hashes here.

File details

Details for the file flint_py-0.3.7-cp27-cp27m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: flint_py-0.3.7-cp27-cp27m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 21.3 MB
  • Tags: CPython 2.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.0 CPython/3.8.0

File hashes

Hashes for flint_py-0.3.7-cp27-cp27m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 fdf867e0d47e201175cc25afe339241c56906ec642d2ff373a0958b9cb005b7f
MD5 501e7fa34c17164b7bba4ad780588e3d
BLAKE2b-256 048ccb45aa44708beebf1a843340c8d4a283c6ce3c96c6a1575d23e32c65662a

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