Skip to main content

A small Python package showcasing speed differences between NumPy's Python and C APIs.

Project description

PyPI PyPI - Wheel PyPI - Python Version GitHub Workflow Status

We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil [1].

numpy-api-bench is a small Python package comparing speed differences between NumPy’s Python and C APIs that also serves as an example project for writing C extension modules that make use of the NumPy C API [2].

Installation

From source

Linux, Mac, and Windows binary wheels have been built from source on Github Actions runners using the excellent cibuildwheel tool, which eases the process of building binary wheels from compiled code for different platforms. cibuildwheel especially helps with building manylinux wheels.

To build locally, you will need numpy>=1.19 and the latest setuptools [3] installed. Your C compiler should be appropriate for your platform, ex. GCC for Linux, MSVC for Windows, but let setuptools do the work.

First, use git clone or download + unzip to get the repo source code and install the requirements with [4]

pip3 install -r install_requires.txt

After you cd into the repository root, you can build the C extensions in-place and install the package files with

make inplace && pip3 install .

If you don’t have or don’t wish to use make, you may instead use

python3 setup.py build_ext --inplace && pip3 install .

From PyPI

64-bit Python 3.6-3.9 binary wheels for Windows, MacOS, manylinux1, and manylinux2010 can be installed from PyPI, with 32-bit wheels for Windows (x86) and Linux (i686) also available. Install with

pip3 install numpy-api-bench

Package contents

The numpy-api-bench package contains a pure Python module and several C extension modules. The pure Python module is npapibench.pyimpl, containing one function that centers and scales to unit variance a numpy.ndarray that is implemented with only one line of numpy-enabled Python code. It is the “benchmark” for the C extension module npapibench.cimpl, which implements a near-identical function by using the NumPy C API. The other C extension modules are part of the npapibench.functimer subpackage, which provides a callable API for timing the execution of a function with optional arguments in a timeit-like fashion [5].

On installation, setuptools will also create an entry point titled npapibench to access the benchmarking code. Just typing the name of the entry point in the terminal should produce the timeit-like output

numpy.ndarray shape (40, 5, 10, 10, 20, 5), size 2000000
pyimpl.stdscale -- 10 loops, best of 5: 31.9 msec per loop
 cimpl.stdscale -- 50 loops, best of 5: 13.6 msec per loop

For usage details, try npapibench --help.

Unit tests

Testing internal functions

The unit testing requirements for a C extension module are rather unique. Although one is writing C code, the resulting shared object built by setuptools is loaded by the Python interpreter, so it easier to test Python-accessible functions by using Python unit testing tools. However, it is likely that the C extension module, which by convention is a single file with all members static except the module initialization function, may contain some internal functions that cannot be accessed directly from Python. So far, there does not seem to be a widely accepted approach to unit testing code in Python C extensions, especially these internal C functions.

For this project, in separate C extension modules, I wrote Python wrappers for the internal functions I wanted to test, providing a C API for other extension modules by using the header file and PyCapsule method described in the official tutorial on writing Python C extensions. Then, I wrote unit tests in Python using the pytest API and simply invoked pytest to collect and run all unit tests, as it produces far better unit test output compared to most C unit testing frameworks and is aware of Python objects. If there were any segmentation faults or need to more closely debug, I would just then invoke gdb on the Python interpreter running pytest [6] with

gdb --args python3 -m pytest

Together, pytest and gdb allowed me to hammer out a significant number of bugs.

For users

To run the unit tests in the package, pytest>=6.0.1 must be installed. If installing the wheel from PyPI, you can install pytest as an optional dependency alongside the package code with

pip3 install numpy-api-bench[tests]

The unit tests are located in npapibench.tests and npapibench.functimer.tests and can be run with

pytest --pyargs npapibench.tests && pytest --pyargs npapibench.functimer.tests

Other desired flags can be passed to pytest before the --pyargs flag.

If building from source, follow the steps in From source but replace the final pip3 install . with

pip3 install .[tests]

The unit tests can be run after cding to the repository root by simply calling pytest.

Project details


Download files

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

Source Distribution

numpy-api-bench-0.1.0.tar.gz (34.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

numpy_api_bench-0.1.0-cp39-cp39-win_amd64.whl (49.4 kB view details)

Uploaded CPython 3.9Windows x86-64

numpy_api_bench-0.1.0-cp39-cp39-win32.whl (46.8 kB view details)

Uploaded CPython 3.9Windows x86

numpy_api_bench-0.1.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl (82.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.5+ x86-64

numpy_api_bench-0.1.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (107.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ x86-64manylinux: glibc 2.5+ x86-64

numpy_api_bench-0.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl (80.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.5+ i686

numpy_api_bench-0.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (103.9 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ i686manylinux: glibc 2.5+ i686

numpy_api_bench-0.1.0-cp39-cp39-macosx_10_9_x86_64.whl (36.3 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

numpy_api_bench-0.1.0-cp38-cp38-win_amd64.whl (49.3 kB view details)

Uploaded CPython 3.8Windows x86-64

numpy_api_bench-0.1.0-cp38-cp38-win32.whl (46.8 kB view details)

Uploaded CPython 3.8Windows x86

numpy_api_bench-0.1.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl (85.8 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.5+ x86-64

numpy_api_bench-0.1.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (111.2 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64manylinux: glibc 2.5+ x86-64

numpy_api_bench-0.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl (82.8 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.5+ i686

numpy_api_bench-0.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (107.6 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ i686manylinux: glibc 2.5+ i686

numpy_api_bench-0.1.0-cp38-cp38-macosx_10_9_x86_64.whl (36.3 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

numpy_api_bench-0.1.0-cp37-cp37m-win_amd64.whl (49.0 kB view details)

Uploaded CPython 3.7mWindows x86-64

numpy_api_bench-0.1.0-cp37-cp37m-win32.whl (46.2 kB view details)

Uploaded CPython 3.7mWindows x86

numpy_api_bench-0.1.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl (81.8 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.5+ x86-64

numpy_api_bench-0.1.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (109.9 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ x86-64manylinux: glibc 2.5+ x86-64

numpy_api_bench-0.1.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl (79.0 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.5+ i686

numpy_api_bench-0.1.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (106.5 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ i686manylinux: glibc 2.5+ i686

numpy_api_bench-0.1.0-cp37-cp37m-macosx_10_9_x86_64.whl (36.1 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

numpy_api_bench-0.1.0-cp36-cp36m-win_amd64.whl (49.0 kB view details)

Uploaded CPython 3.6mWindows x86-64

numpy_api_bench-0.1.0-cp36-cp36m-win32.whl (46.2 kB view details)

Uploaded CPython 3.6mWindows x86

numpy_api_bench-0.1.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl (81.8 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.5+ x86-64

numpy_api_bench-0.1.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (106.1 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.12+ x86-64manylinux: glibc 2.5+ x86-64

numpy_api_bench-0.1.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl (78.9 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.5+ i686

numpy_api_bench-0.1.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl (102.8 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.12+ i686manylinux: glibc 2.5+ i686

numpy_api_bench-0.1.0-cp36-cp36m-macosx_10_9_x86_64.whl (36.1 kB view details)

Uploaded CPython 3.6mmacOS 10.9+ x86-64

File details

Details for the file numpy-api-bench-0.1.0.tar.gz.

File metadata

  • Download URL: numpy-api-bench-0.1.0.tar.gz
  • Upload date:
  • Size: 34.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.11

File hashes

Hashes for numpy-api-bench-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d49c2f77619423b449d2c3d084577f6e0fa694d306352b432fb1c63124ac4a10
MD5 a14190139bba846cfa77b4ad6bda493e
BLAKE2b-256 df65184391a08412f42c9132d886dd812150dba96e99db149534ef4a3e51ec60

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: numpy_api_bench-0.1.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 49.4 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.11

File hashes

Hashes for numpy_api_bench-0.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 b7ccb0c6bfc70c67434093d7aae38a693a0a01499c5b704155e971656fd1e3bb
MD5 ce979bae2e7089004ee326aaef1a50b9
BLAKE2b-256 bbb25622380567f71f09402ef65afca4a39c6118dcc2a1ddc99a78f380217bf2

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp39-cp39-win32.whl.

File metadata

  • Download URL: numpy_api_bench-0.1.0-cp39-cp39-win32.whl
  • Upload date:
  • Size: 46.8 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.11

File hashes

Hashes for numpy_api_bench-0.1.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 4e746578a80e41e150ec185c3babd7034ea6a38735eaea7ae4ee8deab0d6c8ef
MD5 89065548b1c7cc3aa4f39fe089479caf
BLAKE2b-256 ec1ca8472d66c175a4335bc911cb3879f21f40a6523042181f6742301efce483

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for numpy_api_bench-0.1.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 802810b747c2df92e570e1b7a0c2d9e2099be4e818b88b773835c5937086de2a
MD5 860d0a06e0d9ce00e7b6ee9c9138d7c8
BLAKE2b-256 8b799c402f54a88edbb3a784e702f127615200ba91dab3f931b9e16068a9f4f4

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for numpy_api_bench-0.1.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 f24b75f31fe23d6c07dd2dfb4c73e4d2321c3343f2b71071622e867646ba6ba9
MD5 98109d2028e57df2fd50951d9b4339cc
BLAKE2b-256 05fd63383ea7b982d23748fc5b062bbb8c1c32ca9e83a335f11238bf418bb713

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for numpy_api_bench-0.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 dc83d59f37d63b3840719611f89152272633a7d5e546bfc096d661de95b8c9ae
MD5 57dcad68a8b2f1cc103879c2f3a527d8
BLAKE2b-256 3dfe0f1f0890516d7d085e0978f9d01dbc3fcd20d5b73fca7bb294777d83f230

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for numpy_api_bench-0.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 0d95a30f984e88cebba8c3323990d474ed5a5e6e658ec4ee0ef283612a9481d3
MD5 c22d7769a728e4b6a77db0f1738a4e53
BLAKE2b-256 58bbabce0645be687b780f4f045b30db0af1adc375fdcc86169924be160f0bcc

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: numpy_api_bench-0.1.0-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 36.3 kB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.11

File hashes

Hashes for numpy_api_bench-0.1.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 758766bd9b8a4cc1b59b4cf5e291c3d70747f8dd8a0f22f69ee55b85f64632c5
MD5 8ea47f324f475c2dfba4ce67ee8477d6
BLAKE2b-256 1b0ac199dfae416d7750cef97903bd194d3463dc386e8b61a824ee152ef5c3a0

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: numpy_api_bench-0.1.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 49.3 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.11

File hashes

Hashes for numpy_api_bench-0.1.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 447b81d0175c81128104f72e19f08e8b885aecb8470b15d15b22b24ea63fbdc0
MD5 078f2014d30d2d9c0d892ed8b24dee3d
BLAKE2b-256 345326f3aab59dabee91ca2687a678bdf263b50f2e93bbabaafd2dbaaed5d639

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp38-cp38-win32.whl.

File metadata

  • Download URL: numpy_api_bench-0.1.0-cp38-cp38-win32.whl
  • Upload date:
  • Size: 46.8 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.11

File hashes

Hashes for numpy_api_bench-0.1.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 319eced3f0f596cec178ef648a6a46a47eee3d6a40b56c259fb4b206a6a128b4
MD5 6611f9866e4d5d2e13bad5f3b323da4c
BLAKE2b-256 0617056f8e114507e236ab4c751473d374765df2b3f8441042f0dae9e54fd63a

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for numpy_api_bench-0.1.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 49f94cf68f0ae74a33a4ea13dfe51ef8ae06c3fd3d869e826fa62d2114a57c50
MD5 591e6261957213998286f0a0aa1a8aa2
BLAKE2b-256 2504d53816a501b69f40fb358ef2b225f61d573a2d71d42db5d982453dfbc2ef

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for numpy_api_bench-0.1.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 d895371ebf2a2f462df56e7be194a53679ee9c360310afd3e0601b75b1e6c846
MD5 baa3a0e83171e427b002c9ad846b1f6f
BLAKE2b-256 dccdb708e2d2458e0cd49fba6ccd8f7e2a4fab0622b1b99d65e2cb9c6e756b39

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for numpy_api_bench-0.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 cacbab3991850b8bb10d5188e7141e46f8b766b6f48cfda50390dd1afc61e16b
MD5 00d9a09bc6339ea84a77d80cf4e301ff
BLAKE2b-256 86757dec1c33fed42079c756df7dca692e5e636abcce86ac9937335153ea12e9

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for numpy_api_bench-0.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 7863dc43eb56a227f768edfc83e5d5a2daa683f58953b664a2c873e77b9f546d
MD5 043404de0aaefd750475f1ab5cc23ed1
BLAKE2b-256 9126d59ec0801b2170b12cedb4f161f655b8545f5591b5e3696e72217e4e4a78

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: numpy_api_bench-0.1.0-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 36.3 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.11

File hashes

Hashes for numpy_api_bench-0.1.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 15e0b59b85859ea9d232447b7eaaf671caea478fb56517893725677b08ecb875
MD5 5cd58016f9a6d1cbb44d9bc9063aece3
BLAKE2b-256 970bb1dbf3646ade8f0f03c293768e4fcbc79bf47c83e8859b2262b52eb5fcd4

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: numpy_api_bench-0.1.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 49.0 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.11

File hashes

Hashes for numpy_api_bench-0.1.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 d157e452b7938e4117fbcea246522a07581009df2ee955bcfd6d4b18e5afb0fc
MD5 a15001a6180d2f39ce5e2f5929afa268
BLAKE2b-256 16685be10e932cad30fb8f65efb407a9cd389e4bbe5e18144f436db40f38ea7f

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp37-cp37m-win32.whl.

File metadata

  • Download URL: numpy_api_bench-0.1.0-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 46.2 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.11

File hashes

Hashes for numpy_api_bench-0.1.0-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 30e94300b8b87e2b278104c6c44c425dd3e2d719a3713f1606b4098fcd9bd48b
MD5 0b3575caa5d1b726f62b2a30bd77f212
BLAKE2b-256 cc08f07c679ea80e52d15bf3714914a55714db26c051d9fb0bc4ed0cb6811b02

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for numpy_api_bench-0.1.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 4f954369b970e4db981670a9308554e1f4d04e4f57afed019eaab71352b99759
MD5 be710983ea3cc0a8488aa8fb645b1e47
BLAKE2b-256 06ac122432be0633eb3ca91e620f2c58c08b6da60745d960a977dc1573c79c6f

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for numpy_api_bench-0.1.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 3c1bf0c37b688452b1d30f0c4667d0656b1732b3a5d4a5d095de9f9d4eca7cbf
MD5 804cae1b5e1da5f29a6f736eb90ce615
BLAKE2b-256 b5054b99b7862976c84c0d83060ed3b504358e76c21529cc98d65d9c516ff6ce

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for numpy_api_bench-0.1.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 71ce3891e00c5670db1ddc3fcb386cc1dde2cd9b9e48b10143c91390bcd2f189
MD5 09cbc22bf12bec8fd9a8919c00e8426a
BLAKE2b-256 ca69421fcb97209bc286caa97cf8938fc92ed1ba4e7bc2b4a541e0cdaa78cb00

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for numpy_api_bench-0.1.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 c9caddd7a5efc0edf07f0740537c594e991eea808c6cddb3416c93435c9913d6
MD5 249439bdaf27628348c5b293b2014af5
BLAKE2b-256 c3c79ad8c1daa642925b37c5840531001a0ab142a7c525ae90087316f1c68ebf

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: numpy_api_bench-0.1.0-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 36.1 kB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.11

File hashes

Hashes for numpy_api_bench-0.1.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 94975c4f9d2c9cdde99cee31c59ca2b76bf6a22a51d7ecfb3c47eb0ef3bf341b
MD5 65704ff942f0d6103c4dc044dfefc1f4
BLAKE2b-256 609ac0e6ad60c230f1372e0c5199b656dbf7435560ec38b01a25baffe53bae57

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: numpy_api_bench-0.1.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 49.0 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.11

File hashes

Hashes for numpy_api_bench-0.1.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 66f3bc0c360d4afd9cbd60261e118da360fdf3a95db9ef9666911f932e7f59f2
MD5 7414eb3e085e20961d72090a2f418a85
BLAKE2b-256 6f4fa7d496a4f4d5e4150979008e64904f7203d1f8648667edab1da7823bd1c8

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp36-cp36m-win32.whl.

File metadata

  • Download URL: numpy_api_bench-0.1.0-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 46.2 kB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.11

File hashes

Hashes for numpy_api_bench-0.1.0-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 1a613f604818993606427e679d24a31871c49b54ae0906f968ca758b7263662e
MD5 5aacbb978af115288221b4efc854bb5c
BLAKE2b-256 fd59c6c1648dd6df2126c0f11135fac0f0d6f3bd42922e903ba540ba4ebc5f4c

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for numpy_api_bench-0.1.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 b5d49e73ae3bececb147bc316e2039241ab190705410c7d866b39e3d97b42fce
MD5 5bb8722f9f578f6558dc2247f77136ac
BLAKE2b-256 ca04e475f0959f6bfcaafa086bc67220f8524cc54d1c1c573865d02371163fbc

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for numpy_api_bench-0.1.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 0cadc6e7d570f81e4d2d6db9d6c918f5f488506a1d5d6b3021f273e21138a1a5
MD5 3de142827fcc424d345b7ccac136343a
BLAKE2b-256 9917c610ea689315ee719d13e9fb78f2b7b233d5615d4abb0486a410a805568e

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for numpy_api_bench-0.1.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 89d209dd61579aa00355baefb6fae031683b94cb0323c107df4359c39ee30b57
MD5 a925eb2d686b2be62fe55954066c45de
BLAKE2b-256 480f5db0a6380f13f99aabbc68e728de7b123a1857b329039f7ca97cdaecf8b2

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for numpy_api_bench-0.1.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 f22f0a4db18940c3fff8a979cb1eec832935a97cc946003ee6473236c722c399
MD5 ff9f171416374820a1e54337077f19ed
BLAKE2b-256 c61e1352da80a70e40946fc89054818db2d8ef710282a71bd0e1b80301fe178f

See more details on using hashes here.

File details

Details for the file numpy_api_bench-0.1.0-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: numpy_api_bench-0.1.0-cp36-cp36m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 36.1 kB
  • Tags: CPython 3.6m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.11

File hashes

Hashes for numpy_api_bench-0.1.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 52c808a8db4bff2fe57c521b73e0a526cf746cd06aeaae4fe6fc8d27551e82ab
MD5 854beb55a982d7e642bdb8c53bcb68f6
BLAKE2b-256 3548ff71fc063665f4c8cf5ba201dfcf4e8db7a7c0fd4ec762ac780f7d579874

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page