Bottleneck


NameBottleneck JSON
Version 1.6.0 PyPI version JSON
download
home_pagehttps://github.com/pydata/bottleneck
SummaryFast NumPy array functions written in C
upload_time2025-09-08 16:30:38
maintainerChristopher Whelan
docs_urlNone
authorNone
requires_python>=3.10
licenseSimplified BSD
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            Bottleneck is a collection of fast NumPy array functions written in C.

Let's give it a try. Create a NumPy array:

.. code-block:: pycon

    >>> import numpy as np
    >>> a = np.array([1, 2, np.nan, 4, 5])

Find the nanmean:

.. code-block:: pycon

    >>> import bottleneck as bn
    >>> bn.nanmean(a)
    3.0

Moving window mean:

.. code-block:: pycon

    >>> bn.move_mean(a, window=2, min_count=1)
    array([ 1. ,  1.5,  2. ,  4. ,  4.5])

Benchmark
=========

Bottleneck comes with a benchmark suite:

.. code-block:: pycon

    >>> bn.bench()
    Bottleneck performance benchmark
        Bottleneck 1.3.0.dev0+122.gb1615d7; Numpy 1.16.4
        Speed is NumPy time divided by Bottleneck time
        NaN means approx one-fifth NaNs; float64 used

                  no NaN     no NaN      NaN       no NaN      NaN
                   (100,)  (1000,1000)(1000,1000)(1000,1000)(1000,1000)
                   axis=0     axis=0     axis=0     axis=1     axis=1
    nansum         29.7        1.4        1.6        2.0        2.1
    nanmean        99.0        2.0        1.8        3.2        2.5
    nanstd        145.6        1.8        1.8        2.7        2.5
    nanvar        138.4        1.8        1.8        2.8        2.5
    nanmin         27.6        0.5        1.7        0.7        2.4
    nanmax         26.6        0.6        1.6        0.7        2.5
    median        120.6        1.3        4.9        1.1        5.7
    nanmedian     117.8        5.0        5.7        4.8        5.5
    ss             13.2        1.2        1.3        1.5        1.5
    nanargmin      66.8        5.5        4.8        3.5        7.1
    nanargmax      57.6        2.9        5.1        2.5        5.3
    anynan         10.2        0.3       52.3        0.8       41.6
    allnan         15.1      196.0      156.3      135.8      111.2
    rankdata       45.9        1.2        1.2        2.1        2.1
    nanrankdata    50.5        1.4        1.3        2.4        2.3
    partition       3.3        1.1        1.6        1.0        1.5
    argpartition    3.4        1.2        1.5        1.1        1.6
    replace         9.0        1.5        1.5        1.5        1.5
    push         1565.6        5.9        7.0       13.0       10.9
    move_sum     2159.3       31.1       83.6      186.9      182.5
    move_mean    6264.3       66.2      111.9      361.1      246.5
    move_std     8653.6       86.5      163.7      232.0      317.7
    move_var     8856.0       96.3      171.6      267.9      332.9
    move_min     1186.6       13.4       30.9       23.5       45.0
    move_max     1188.0       14.6       29.9       23.5       46.0
    move_argmin  2568.3       33.3       61.0       49.2       86.8
    move_argmax  2475.8       30.9       58.6       45.0       82.8
    move_median  2236.9      153.9      151.4      171.3      166.9
    move_rank     847.1        1.2        1.4        2.3        2.6

You can also run a detailed benchmark for a single function using, for
example, the command:

.. code-block:: pycon

    >>> bn.bench_detailed("move_median", fraction_nan=0.3)

Only arrays with data type (dtype) int32, int64, float32, and float64 are
accelerated. All other dtypes result in calls to slower, unaccelerated
functions. In the rare case of a byte-swapped input array (e.g. a big-endian
array on a little-endian operating system) the function will not be
accelerated regardless of dtype.

Where
=====

===================   ========================================================
 download             https://pypi.python.org/pypi/Bottleneck
 docs                 https://bottleneck.readthedocs.io
 code                 https://github.com/pydata/bottleneck
 mailing list         https://groups.google.com/group/bottle-neck
===================   ========================================================

License
=======

Bottleneck is distributed under a Simplified BSD license. See the LICENSE file
and LICENSES directory for details.

Install
=======

Bottleneck provides binary wheels on PyPI for all the most common platforms.
Binary packages are also available in conda-forge. We recommend installing binaries
with ``pip``, ``uv``, ``conda`` or similar - it's faster and easier than building
from source.

Installing from source
----------------------

Requirements:

======================== ============================================================================
Bottleneck               Python >=3.9; NumPy 1.16.0+
Compile                  gcc, clang, MinGW or MSVC
Unit tests               pytest
Documentation            sphinx, numpydoc
======================== ============================================================================

To install Bottleneck on Linux, Mac OS X, et al.:

.. code-block:: console

    $ pip install .

To install bottleneck on Windows, first install MinGW and add it to your
system path. Then install Bottleneck with the command:

.. code-block:: console

    $ python setup.py install --compiler=mingw32

Unit tests
==========

After you have installed Bottleneck, run the suite of unit tests:

.. code-block:: pycon

  In [1]: import bottleneck as bn

  In [2]: bn.test()
  ============================= test session starts =============================
  platform linux -- Python 3.7.4, pytest-4.3.1, py-1.8.0, pluggy-0.12.0
  hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase('/home/chris/code/bottleneck/.hypothesis/examples')
  rootdir: /home/chris/code/bottleneck, inifile: setup.cfg
  plugins: openfiles-0.3.2, remotedata-0.3.2, doctestplus-0.3.0, mock-1.10.4, forked-1.0.2, cov-2.7.1, hypothesis-4.32.2, xdist-1.26.1, arraydiff-0.3
  collected 190 items
  
  bottleneck/tests/input_modification_test.py ........................... [ 14%]
  ..                                                                      [ 15%]
  bottleneck/tests/list_input_test.py .............................       [ 30%]
  bottleneck/tests/move_test.py .................................         [ 47%]
  bottleneck/tests/nonreduce_axis_test.py ....................            [ 58%]
  bottleneck/tests/nonreduce_test.py ..........                           [ 63%]
  bottleneck/tests/reduce_test.py ....................................... [ 84%]
  ............                                                            [ 90%]
  bottleneck/tests/scalar_input_test.py ..................                [100%]
  
  ========================= 190 passed in 46.42 seconds =========================
  Out[2]: True

If developing in the git repo, simply run ``py.test``

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/pydata/bottleneck",
    "name": "Bottleneck",
    "maintainer": "Christopher Whelan",
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "bottle-neck@googlegroups.com",
    "keywords": null,
    "author": null,
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/14/d8/6d641573e210768816023a64966d66463f2ce9fc9945fa03290c8a18f87c/bottleneck-1.6.0.tar.gz",
    "platform": "OS Independent",
    "description": "Bottleneck is a collection of fast NumPy array functions written in C.\n\nLet's give it a try. Create a NumPy array:\n\n.. code-block:: pycon\n\n    >>> import numpy as np\n    >>> a = np.array([1, 2, np.nan, 4, 5])\n\nFind the nanmean:\n\n.. code-block:: pycon\n\n    >>> import bottleneck as bn\n    >>> bn.nanmean(a)\n    3.0\n\nMoving window mean:\n\n.. code-block:: pycon\n\n    >>> bn.move_mean(a, window=2, min_count=1)\n    array([ 1. ,  1.5,  2. ,  4. ,  4.5])\n\nBenchmark\n=========\n\nBottleneck comes with a benchmark suite:\n\n.. code-block:: pycon\n\n    >>> bn.bench()\n    Bottleneck performance benchmark\n        Bottleneck 1.3.0.dev0+122.gb1615d7; Numpy 1.16.4\n        Speed is NumPy time divided by Bottleneck time\n        NaN means approx one-fifth NaNs; float64 used\n\n                  no NaN     no NaN      NaN       no NaN      NaN\n                   (100,)  (1000,1000)(1000,1000)(1000,1000)(1000,1000)\n                   axis=0     axis=0     axis=0     axis=1     axis=1\n    nansum         29.7        1.4        1.6        2.0        2.1\n    nanmean        99.0        2.0        1.8        3.2        2.5\n    nanstd        145.6        1.8        1.8        2.7        2.5\n    nanvar        138.4        1.8        1.8        2.8        2.5\n    nanmin         27.6        0.5        1.7        0.7        2.4\n    nanmax         26.6        0.6        1.6        0.7        2.5\n    median        120.6        1.3        4.9        1.1        5.7\n    nanmedian     117.8        5.0        5.7        4.8        5.5\n    ss             13.2        1.2        1.3        1.5        1.5\n    nanargmin      66.8        5.5        4.8        3.5        7.1\n    nanargmax      57.6        2.9        5.1        2.5        5.3\n    anynan         10.2        0.3       52.3        0.8       41.6\n    allnan         15.1      196.0      156.3      135.8      111.2\n    rankdata       45.9        1.2        1.2        2.1        2.1\n    nanrankdata    50.5        1.4        1.3        2.4        2.3\n    partition       3.3        1.1        1.6        1.0        1.5\n    argpartition    3.4        1.2        1.5        1.1        1.6\n    replace         9.0        1.5        1.5        1.5        1.5\n    push         1565.6        5.9        7.0       13.0       10.9\n    move_sum     2159.3       31.1       83.6      186.9      182.5\n    move_mean    6264.3       66.2      111.9      361.1      246.5\n    move_std     8653.6       86.5      163.7      232.0      317.7\n    move_var     8856.0       96.3      171.6      267.9      332.9\n    move_min     1186.6       13.4       30.9       23.5       45.0\n    move_max     1188.0       14.6       29.9       23.5       46.0\n    move_argmin  2568.3       33.3       61.0       49.2       86.8\n    move_argmax  2475.8       30.9       58.6       45.0       82.8\n    move_median  2236.9      153.9      151.4      171.3      166.9\n    move_rank     847.1        1.2        1.4        2.3        2.6\n\nYou can also run a detailed benchmark for a single function using, for\nexample, the command:\n\n.. code-block:: pycon\n\n    >>> bn.bench_detailed(\"move_median\", fraction_nan=0.3)\n\nOnly arrays with data type (dtype) int32, int64, float32, and float64 are\naccelerated. All other dtypes result in calls to slower, unaccelerated\nfunctions. In the rare case of a byte-swapped input array (e.g. a big-endian\narray on a little-endian operating system) the function will not be\naccelerated regardless of dtype.\n\nWhere\n=====\n\n===================   ========================================================\n download             https://pypi.python.org/pypi/Bottleneck\n docs                 https://bottleneck.readthedocs.io\n code                 https://github.com/pydata/bottleneck\n mailing list         https://groups.google.com/group/bottle-neck\n===================   ========================================================\n\nLicense\n=======\n\nBottleneck is distributed under a Simplified BSD license. See the LICENSE file\nand LICENSES directory for details.\n\nInstall\n=======\n\nBottleneck provides binary wheels on PyPI for all the most common platforms.\nBinary packages are also available in conda-forge. We recommend installing binaries\nwith ``pip``, ``uv``, ``conda`` or similar - it's faster and easier than building\nfrom source.\n\nInstalling from source\n----------------------\n\nRequirements:\n\n======================== ============================================================================\nBottleneck               Python >=3.9; NumPy 1.16.0+\nCompile                  gcc, clang, MinGW or MSVC\nUnit tests               pytest\nDocumentation            sphinx, numpydoc\n======================== ============================================================================\n\nTo install Bottleneck on Linux, Mac OS X, et al.:\n\n.. code-block:: console\n\n    $ pip install .\n\nTo install bottleneck on Windows, first install MinGW and add it to your\nsystem path. Then install Bottleneck with the command:\n\n.. code-block:: console\n\n    $ python setup.py install --compiler=mingw32\n\nUnit tests\n==========\n\nAfter you have installed Bottleneck, run the suite of unit tests:\n\n.. code-block:: pycon\n\n  In [1]: import bottleneck as bn\n\n  In [2]: bn.test()\n  ============================= test session starts =============================\n  platform linux -- Python 3.7.4, pytest-4.3.1, py-1.8.0, pluggy-0.12.0\n  hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase('/home/chris/code/bottleneck/.hypothesis/examples')\n  rootdir: /home/chris/code/bottleneck, inifile: setup.cfg\n  plugins: openfiles-0.3.2, remotedata-0.3.2, doctestplus-0.3.0, mock-1.10.4, forked-1.0.2, cov-2.7.1, hypothesis-4.32.2, xdist-1.26.1, arraydiff-0.3\n  collected 190 items\n  \n  bottleneck/tests/input_modification_test.py ........................... [ 14%]\n  ..                                                                      [ 15%]\n  bottleneck/tests/list_input_test.py .............................       [ 30%]\n  bottleneck/tests/move_test.py .................................         [ 47%]\n  bottleneck/tests/nonreduce_axis_test.py ....................            [ 58%]\n  bottleneck/tests/nonreduce_test.py ..........                           [ 63%]\n  bottleneck/tests/reduce_test.py ....................................... [ 84%]\n  ............                                                            [ 90%]\n  bottleneck/tests/scalar_input_test.py ..................                [100%]\n  \n  ========================= 190 passed in 46.42 seconds =========================\n  Out[2]: True\n\nIf developing in the git repo, simply run ``py.test``\n",
    "bugtrack_url": null,
    "license": "Simplified BSD",
    "summary": "Fast NumPy array functions written in C",
    "version": "1.6.0",
    "project_urls": {
        "Download": "http://pypi.python.org/pypi/Bottleneck",
        "Homepage": "https://github.com/pydata/bottleneck"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9c38144fb32c9efb196f651ddb30e7c48f6047a86972e5b350f3f10c9a5f6a16",
                "md5": "9c757edc3530240a53c1dc55ecefa241",
                "sha256": "40de6be68218ba32cd15addbf4ad7bbbf0075b5c5c4347c579aeae110a5c9a96"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "9c757edc3530240a53c1dc55ecefa241",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 100393,
            "upload_time": "2025-09-08T16:29:35",
            "upload_time_iso_8601": "2025-09-08T16:29:35.466620Z",
            "url": "https://files.pythonhosted.org/packages/9c/38/144fb32c9efb196f651ddb30e7c48f6047a86972e5b350f3f10c9a5f6a16/bottleneck-1.6.0-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0de3dbbf4b102f4e6aaf49ad3749a6d778f309473a2950c5ce3bb20b94f2ba84",
                "md5": "ba239dcb598a90253a8add3cf23e07ee",
                "sha256": "1ad1882ba8c8da1f404de2610b45b05291e39eec56150270b03b5b25cf2bbb7f"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ba239dcb598a90253a8add3cf23e07ee",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 371509,
            "upload_time": "2025-09-08T16:29:37",
            "upload_time_iso_8601": "2025-09-08T16:29:37.037912Z",
            "url": "https://files.pythonhosted.org/packages/0d/e3/dbbf4b102f4e6aaf49ad3749a6d778f309473a2950c5ce3bb20b94f2ba84/bottleneck-1.6.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "66ea60fcbddee5fdf32923ba33ce2337a4cf12834b69de4f8e07219b5ef7c931",
                "md5": "98e33ea6bb334397d48ebfb037ba0ed7",
                "sha256": "f29b14b0ba5a816df6ab559add415c88ea8cf2146364e55f5f4c24ff7c85e494"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "98e33ea6bb334397d48ebfb037ba0ed7",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 363480,
            "upload_time": "2025-09-08T16:29:38",
            "upload_time_iso_8601": "2025-09-08T16:29:38.311632Z",
            "url": "https://files.pythonhosted.org/packages/66/ea/60fcbddee5fdf32923ba33ce2337a4cf12834b69de4f8e07219b5ef7c931/bottleneck-1.6.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ea9ea25434dcadf083e05b0c71ece2de71fad5521268f905721e06e0a7efc5db",
                "md5": "d893708363ca7789f2d84dfb615f37ef",
                "sha256": "17c227ed361cf9a2ab3751a727620298faca9a1e33dd76711ae80834cf34b254"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp310-cp310-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "d893708363ca7789f2d84dfb615f37ef",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 357120,
            "upload_time": "2025-09-08T16:29:39",
            "upload_time_iso_8601": "2025-09-08T16:29:39.541150Z",
            "url": "https://files.pythonhosted.org/packages/ea/9e/a25434dcadf083e05b0c71ece2de71fad5521268f905721e06e0a7efc5db/bottleneck-1.6.0-cp310-cp310-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8eb999580349c827695dfc094ac672eedba6e1ca244b6e745ff7447c0239d6d8",
                "md5": "2446db94b99ea3188ed0ede02a4af873",
                "sha256": "d278b5633cea38bdae6eaf7df23d54ecb5e4db52f2ebc13fe40c0e738842f2a1"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp310-cp310-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "2446db94b99ea3188ed0ede02a4af873",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 367579,
            "upload_time": "2025-09-08T16:29:40",
            "upload_time_iso_8601": "2025-09-08T16:29:40.695217Z",
            "url": "https://files.pythonhosted.org/packages/8e/b9/99580349c827695dfc094ac672eedba6e1ca244b6e745ff7447c0239d6d8/bottleneck-1.6.0-cp310-cp310-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "95066326994249388ceb2400d07c6a96a50941749d2d9ec80da22a99046e3a38",
                "md5": "0e3d341869e632955590cae2af00aa26",
                "sha256": "26c87c2f6364d82b67eab7218f0346e9c42f336088ca4e19d77dc76eecf272fc"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp310-cp310-win32.whl",
            "has_sig": false,
            "md5_digest": "0e3d341869e632955590cae2af00aa26",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 107838,
            "upload_time": "2025-09-08T16:29:41",
            "upload_time_iso_8601": "2025-09-08T16:29:41.907589Z",
            "url": "https://files.pythonhosted.org/packages/95/06/6326994249388ceb2400d07c6a96a50941749d2d9ec80da22a99046e3a38/bottleneck-1.6.0-cp310-cp310-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2f758f0e8e266ea99ffbc69500a927f0c114a07fe465bfbc59871d6fe22d9ee0",
                "md5": "e9ca81df574369df4cd8a95639f3eabd",
                "sha256": "9d33bcd60a13d0603f5db9d953352a3c098242c46f8f919290fd11c54b42b9e5"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "e9ca81df574369df4cd8a95639f3eabd",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 113364,
            "upload_time": "2025-09-08T16:29:43",
            "upload_time_iso_8601": "2025-09-08T16:29:43.437060Z",
            "url": "https://files.pythonhosted.org/packages/2f/75/8f0e8e266ea99ffbc69500a927f0c114a07fe465bfbc59871d6fe22d9ee0/bottleneck-1.6.0-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "83969d51012d729f97de1e75aad986f3ba50956742a40fc99cbab4c2aa896c1c",
                "md5": "ba24fdb867359a28e003774806d84b29",
                "sha256": "69ef4514782afe39db2497aaea93b1c167ab7ab3bc5e3930500ef9cf11841db7"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "ba24fdb867359a28e003774806d84b29",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 100400,
            "upload_time": "2025-09-08T16:29:44",
            "upload_time_iso_8601": "2025-09-08T16:29:44.464846Z",
            "url": "https://files.pythonhosted.org/packages/83/96/9d51012d729f97de1e75aad986f3ba50956742a40fc99cbab4c2aa896c1c/bottleneck-1.6.0-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "16f44fcbebcbc42376a77e395a6838575950587e5eb82edf47d103f8daa7ba22",
                "md5": "010169d96849c2c79038ff49acde468c",
                "sha256": "727363f99edc6dc83d52ed28224d4cb858c07a01c336c7499c0c2e5dd4fd3e4a"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "has_sig": false,
            "md5_digest": "010169d96849c2c79038ff49acde468c",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 375920,
            "upload_time": "2025-09-08T16:29:45",
            "upload_time_iso_8601": "2025-09-08T16:29:45.520786Z",
            "url": "https://files.pythonhosted.org/packages/16/f4/4fcbebcbc42376a77e395a6838575950587e5eb82edf47d103f8daa7ba22/bottleneck-1.6.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "36137fa8cdc41cbf2dfe0540f98e1e0caf9ffbd681b1a0fc679a91c2698adaf9",
                "md5": "8146d4c4db55f8d32a7d0fa9acbf8fd9",
                "sha256": "847671a9e392220d1dfd2ff2524b4d61ec47b2a36ea78e169d2aa357fd9d933a"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "8146d4c4db55f8d32a7d0fa9acbf8fd9",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 367922,
            "upload_time": "2025-09-08T16:29:46",
            "upload_time_iso_8601": "2025-09-08T16:29:46.743083Z",
            "url": "https://files.pythonhosted.org/packages/36/13/7fa8cdc41cbf2dfe0540f98e1e0caf9ffbd681b1a0fc679a91c2698adaf9/bottleneck-1.6.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "137ddccfa4a2792c1bdc0efdde8267e527727e517df1ff0d4976b84e0268c2f9",
                "md5": "2a7f1d094317b3f5f8580f17fa1e4914",
                "sha256": "daef2603ab7b4ec4f032bb54facf5fa92dacd3a264c2fd9677c9fc22bcb5a245"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp311-cp311-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "2a7f1d094317b3f5f8580f17fa1e4914",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 361379,
            "upload_time": "2025-09-08T16:29:48",
            "upload_time_iso_8601": "2025-09-08T16:29:48.042987Z",
            "url": "https://files.pythonhosted.org/packages/13/7d/dccfa4a2792c1bdc0efdde8267e527727e517df1ff0d4976b84e0268c2f9/bottleneck-1.6.0-cp311-cp311-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "934221c0fad823b71c3a8904cbb847ad45136d25573a2d001a9cff48d3985fab",
                "md5": "8c42de7cde4eb796b7ee617823e1312b",
                "sha256": "fc7f09bda980d967f2e9f1a746eda57479f824f66de0b92b9835c431a8c922d4"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp311-cp311-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8c42de7cde4eb796b7ee617823e1312b",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 371911,
            "upload_time": "2025-09-08T16:29:49",
            "upload_time_iso_8601": "2025-09-08T16:29:49.366492Z",
            "url": "https://files.pythonhosted.org/packages/93/42/21c0fad823b71c3a8904cbb847ad45136d25573a2d001a9cff48d3985fab/bottleneck-1.6.0-cp311-cp311-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3bb0830ff80f8c74577d53034c494639eac7a0ffc70935c01ceadfbe77f590c2",
                "md5": "eb751b2e437f110813655993042b79ef",
                "sha256": "1f78bad13ad190180f73cceb92d22f4101bde3d768f4647030089f704ae7cac7"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp311-cp311-win32.whl",
            "has_sig": false,
            "md5_digest": "eb751b2e437f110813655993042b79ef",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 107831,
            "upload_time": "2025-09-08T16:29:51",
            "upload_time_iso_8601": "2025-09-08T16:29:51.397956Z",
            "url": "https://files.pythonhosted.org/packages/3b/b0/830ff80f8c74577d53034c494639eac7a0ffc70935c01ceadfbe77f590c2/bottleneck-1.6.0-cp311-cp311-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6f4201d4920b0aa51fba503f112c90714547609bbe17b6ecfc1c7ae1da3183df",
                "md5": "50acc2c0dd4c63fba149bc5107f902d4",
                "sha256": "8f2adef59fdb9edf2983fe3a4c07e5d1b677c43e5669f4711da2c3daad8321ad"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "50acc2c0dd4c63fba149bc5107f902d4",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 113358,
            "upload_time": "2025-09-08T16:29:52",
            "upload_time_iso_8601": "2025-09-08T16:29:52.602524Z",
            "url": "https://files.pythonhosted.org/packages/6f/42/01d4920b0aa51fba503f112c90714547609bbe17b6ecfc1c7ae1da3183df/bottleneck-1.6.0-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8d727e3593a2a3dd69ec831a9981a7b1443647acb66a5aec34c1620a5f7f8498",
                "md5": "afdfe217f2065472b6875f3d2d568669",
                "sha256": "3bb16a16a86a655fdbb34df672109a8a227bb5f9c9cf5bb8ae400a639bc52fa3"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "afdfe217f2065472b6875f3d2d568669",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 100515,
            "upload_time": "2025-09-08T16:29:55",
            "upload_time_iso_8601": "2025-09-08T16:29:55.141508Z",
            "url": "https://files.pythonhosted.org/packages/8d/72/7e3593a2a3dd69ec831a9981a7b1443647acb66a5aec34c1620a5f7f8498/bottleneck-1.6.0-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b5d4e7bbea08f4c0f0bab819d38c1a613da5f194fba7b19aae3e2b3a27e78886",
                "md5": "eb3cd463727faf1929dc4c4927ff9b61",
                "sha256": "0fbf5d0787af9aee6cef4db9cdd14975ce24bd02e0cc30155a51411ebe2ff35f"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "has_sig": false,
            "md5_digest": "eb3cd463727faf1929dc4c4927ff9b61",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 377451,
            "upload_time": "2025-09-08T16:29:56",
            "upload_time_iso_8601": "2025-09-08T16:29:56.718296Z",
            "url": "https://files.pythonhosted.org/packages/b5/d4/e7bbea08f4c0f0bab819d38c1a613da5f194fba7b19aae3e2b3a27e78886/bottleneck-1.6.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fe80a6da430e3b1a12fd85f9fe90d3ad8fe9a527ecb046644c37b4b3f4baacfc",
                "md5": "0cf3a78f2e29759fdaa371783778eb3f",
                "sha256": "d08966f4a22384862258940346a72087a6f7cebb19038fbf3a3f6690ee7fd39f"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "0cf3a78f2e29759fdaa371783778eb3f",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 368303,
            "upload_time": "2025-09-08T16:29:57",
            "upload_time_iso_8601": "2025-09-08T16:29:57.834332Z",
            "url": "https://files.pythonhosted.org/packages/fe/80/a6da430e3b1a12fd85f9fe90d3ad8fe9a527ecb046644c37b4b3f4baacfc/bottleneck-1.6.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3011abd30a49f3251f4538430e5f876df96f2b39dabf49e05c5836820d2c31fe",
                "md5": "8275c3eb261a0166b98b05fe3c53a8e2",
                "sha256": "604f0b898b43b7bc631c564630e936a8759d2d952641c8b02f71e31dbcd9deaa"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp312-cp312-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "8275c3eb261a0166b98b05fe3c53a8e2",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 361232,
            "upload_time": "2025-09-08T16:29:59",
            "upload_time_iso_8601": "2025-09-08T16:29:59.104140Z",
            "url": "https://files.pythonhosted.org/packages/30/11/abd30a49f3251f4538430e5f876df96f2b39dabf49e05c5836820d2c31fe/bottleneck-1.6.0-cp312-cp312-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1dac1c0e09d8d92b9951f675bd42463ce76c3c3657b31c5bf53ca1f6dd9eccff",
                "md5": "939e2034e71de899bde2888a3408d8fd",
                "sha256": "d33720bad761e642abc18eda5f188ff2841191c9f63f9d0c052245decc0faeb9"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp312-cp312-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "939e2034e71de899bde2888a3408d8fd",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 373234,
            "upload_time": "2025-09-08T16:30:00",
            "upload_time_iso_8601": "2025-09-08T16:30:00.488010Z",
            "url": "https://files.pythonhosted.org/packages/1d/ac/1c0e09d8d92b9951f675bd42463ce76c3c3657b31c5bf53ca1f6dd9eccff/bottleneck-1.6.0-cp312-cp312-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fbea382c572ae3057ba885d484726bb63629d1f63abedf91c6cd23974eb35a9b",
                "md5": "e2d528998496b4cf25ef44c1bcbc99b3",
                "sha256": "a1e5907ec2714efbe7075d9207b58c22ab6984a59102e4ecd78dced80dab8374"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp312-cp312-win32.whl",
            "has_sig": false,
            "md5_digest": "e2d528998496b4cf25ef44c1bcbc99b3",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 108020,
            "upload_time": "2025-09-08T16:30:01",
            "upload_time_iso_8601": "2025-09-08T16:30:01.773194Z",
            "url": "https://files.pythonhosted.org/packages/fb/ea/382c572ae3057ba885d484726bb63629d1f63abedf91c6cd23974eb35a9b/bottleneck-1.6.0-cp312-cp312-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "48add71da675eef85ac153eef5111ca0caa924548c9591da00939bcabba8de8e",
                "md5": "4ae7c86626bd0c5e5a6ecb14edd30f0b",
                "sha256": "81e3822499f057a917b7d3972ebc631ac63c6bbcc79ad3542a66c4c40634e3a6"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "4ae7c86626bd0c5e5a6ecb14edd30f0b",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 113493,
            "upload_time": "2025-09-08T16:30:02",
            "upload_time_iso_8601": "2025-09-08T16:30:02.872700Z",
            "url": "https://files.pythonhosted.org/packages/48/ad/d71da675eef85ac153eef5111ca0caa924548c9591da00939bcabba8de8e/bottleneck-1.6.0-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "971ae117cd5ff7056126d3291deb29ac8066476e60b852555b95beb3fc9d62a0",
                "md5": "619988a2c1bd08890aa865695a9a9fef",
                "sha256": "d015de414ca016ebe56440bdf5d3d1204085080527a3c51f5b7b7a3e704fe6fd"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp313-cp313-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "619988a2c1bd08890aa865695a9a9fef",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 100521,
            "upload_time": "2025-09-08T16:30:03",
            "upload_time_iso_8601": "2025-09-08T16:30:03.890741Z",
            "url": "https://files.pythonhosted.org/packages/97/1a/e117cd5ff7056126d3291deb29ac8066476e60b852555b95beb3fc9d62a0/bottleneck-1.6.0-cp313-cp313-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bd2205555a9752357e24caa1cd92324d1a7fdde6386aab162fcc451f8f8eedc2",
                "md5": "732a25fbf3e6186d10975d3fc95c4350",
                "sha256": "456757c9525b0b12356f472e38020ed4b76b18375fd76e055f8d33fb62956f5e"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "has_sig": false,
            "md5_digest": "732a25fbf3e6186d10975d3fc95c4350",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 377719,
            "upload_time": "2025-09-08T16:30:05",
            "upload_time_iso_8601": "2025-09-08T16:30:05.135871Z",
            "url": "https://files.pythonhosted.org/packages/bd/22/05555a9752357e24caa1cd92324d1a7fdde6386aab162fcc451f8f8eedc2/bottleneck-1.6.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "11ee76593af47097d9633109bed04dbcf2170707dd84313ca29f436f9234bc51",
                "md5": "d7da84260c485eadc50040022028de5d",
                "sha256": "1c65254d51b6063c55f6272f175e867e2078342ae75f74be29d6612e9627b2c0"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "d7da84260c485eadc50040022028de5d",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 368577,
            "upload_time": "2025-09-08T16:30:06",
            "upload_time_iso_8601": "2025-09-08T16:30:06.387525Z",
            "url": "https://files.pythonhosted.org/packages/11/ee/76593af47097d9633109bed04dbcf2170707dd84313ca29f436f9234bc51/bottleneck-1.6.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f9f74dcacaf637d2b8d89ea746c74159adda43858d47358978880614c3fa4391",
                "md5": "1ca207bf9656a9b8a42d712d7bc931b4",
                "sha256": "a172322895fbb79c6127474f1b0db0866895f0b804a18d5c6b841fea093927fe"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp313-cp313-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "1ca207bf9656a9b8a42d712d7bc931b4",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 361441,
            "upload_time": "2025-09-08T16:30:07",
            "upload_time_iso_8601": "2025-09-08T16:30:07.613986Z",
            "url": "https://files.pythonhosted.org/packages/f9/f7/4dcacaf637d2b8d89ea746c74159adda43858d47358978880614c3fa4391/bottleneck-1.6.0-cp313-cp313-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "053421eb1eb1c42cb7be2872d0647c292fc75768d14e1f0db66bf907b24b2464",
                "md5": "ccc67337095e03cab31d3b0f52daaf92",
                "sha256": "d5e81b642eb0d5a5bf00312598d7ed142d389728b694322a118c26813f3d1fa9"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp313-cp313-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ccc67337095e03cab31d3b0f52daaf92",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 373416,
            "upload_time": "2025-09-08T16:30:08",
            "upload_time_iso_8601": "2025-09-08T16:30:08.899292Z",
            "url": "https://files.pythonhosted.org/packages/05/34/21eb1eb1c42cb7be2872d0647c292fc75768d14e1f0db66bf907b24b2464/bottleneck-1.6.0-cp313-cp313-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c75c8c1260df8ade7cebc2a8af513a27082b5e36aa4a5fb762d56ea6d969d893",
                "md5": "350607954a7ec73a00f9d67b4d7e1ceb",
                "sha256": "547e6715115867c4657c9ae8cc5ddac1fec8fdad66690be3a322a7488721b06b"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp313-cp313t-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "350607954a7ec73a00f9d67b4d7e1ceb",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 101606,
            "upload_time": "2025-09-08T16:30:11",
            "upload_time_iso_8601": "2025-09-08T16:30:11.935654Z",
            "url": "https://files.pythonhosted.org/packages/c7/5c/8c1260df8ade7cebc2a8af513a27082b5e36aa4a5fb762d56ea6d969d893/bottleneck-1.6.0-cp313-cp313t-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ceeaf03e2944e91ee962922c834ed21e5be6d067c8395681f5dc6c67a0a26853",
                "md5": "aad2157ebb02fdeca60d075d9cff15d5",
                "sha256": "5e4a4a6e05b6f014c307969129e10d1a0afd18f3a2c127b085532a4a76677aef"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "has_sig": false,
            "md5_digest": "aad2157ebb02fdeca60d075d9cff15d5",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 391804,
            "upload_time": "2025-09-08T16:30:13",
            "upload_time_iso_8601": "2025-09-08T16:30:13.130306Z",
            "url": "https://files.pythonhosted.org/packages/ce/ea/f03e2944e91ee962922c834ed21e5be6d067c8395681f5dc6c67a0a26853/bottleneck-1.6.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0b582b356b8a81eb97637dccee6cf58237198dd828890e38be9afb4e5e58e38e",
                "md5": "436cdd35540bcd79bda83495cb656d73",
                "sha256": "2baae0d1589b4a520b2f9cf03528c0c8b20717b3f05675e212ec2200cf628f12"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "436cdd35540bcd79bda83495cb656d73",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 383443,
            "upload_time": "2025-09-08T16:30:14",
            "upload_time_iso_8601": "2025-09-08T16:30:14.318461Z",
            "url": "https://files.pythonhosted.org/packages/0b/58/2b356b8a81eb97637dccee6cf58237198dd828890e38be9afb4e5e58e38e/bottleneck-1.6.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5552cf7d09ed3736ad0d50c624787f9b580ae3206494d95cc0f4814b93eef728",
                "md5": "520f97aa121039d92e3fa77b40e235c8",
                "sha256": "2e407139b322f01d8d5b6b2e8091b810f48a25c7fa5c678cfcdc420dfe8aea0a"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp313-cp313t-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "520f97aa121039d92e3fa77b40e235c8",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 375458,
            "upload_time": "2025-09-08T16:30:15",
            "upload_time_iso_8601": "2025-09-08T16:30:15.379423Z",
            "url": "https://files.pythonhosted.org/packages/55/52/cf7d09ed3736ad0d50c624787f9b580ae3206494d95cc0f4814b93eef728/bottleneck-1.6.0-cp313-cp313t-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c4e97c87a34a24e339860064f20fac49f6738e94f1717bc8726b9c47705601d8",
                "md5": "2efab532d011a5c0462bd05e0264bd57",
                "sha256": "1adefb89b92aba6de9c6ea871d99bcd29d519f4fb012cc5197917813b4fc2c7f"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp313-cp313t-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "2efab532d011a5c0462bd05e0264bd57",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 386384,
            "upload_time": "2025-09-08T16:30:17",
            "upload_time_iso_8601": "2025-09-08T16:30:17.012315Z",
            "url": "https://files.pythonhosted.org/packages/c4/e9/7c87a34a24e339860064f20fac49f6738e94f1717bc8726b9c47705601d8/bottleneck-1.6.0-cp313-cp313t-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5957db51855e18a47671801180be748939b4c9422a0544849af1919116346b5f",
                "md5": "ec9b3fc48183d3a61553e4f99858185e",
                "sha256": "64b8690393494074923780f6abdf5f5577d844b9d9689725d1575a936e74e5f0"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp313-cp313t-win32.whl",
            "has_sig": false,
            "md5_digest": "ec9b3fc48183d3a61553e4f99858185e",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 109448,
            "upload_time": "2025-09-08T16:30:18",
            "upload_time_iso_8601": "2025-09-08T16:30:18.076167Z",
            "url": "https://files.pythonhosted.org/packages/59/57/db51855e18a47671801180be748939b4c9422a0544849af1919116346b5f/bottleneck-1.6.0-cp313-cp313t-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bd1e683c090b624f13a5bf88a0be2241dc301e98b2fb72a45812a7ae6e456cc4",
                "md5": "c3e804646e2f629e892fb3f6bf9bec4c",
                "sha256": "cb67247f65dcdf62af947c76c6c8b77d9f0ead442cac0edbaa17850d6da4e48d"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp313-cp313t-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "c3e804646e2f629e892fb3f6bf9bec4c",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 115190,
            "upload_time": "2025-09-08T16:30:19",
            "upload_time_iso_8601": "2025-09-08T16:30:19.106877Z",
            "url": "https://files.pythonhosted.org/packages/bd/1e/683c090b624f13a5bf88a0be2241dc301e98b2fb72a45812a7ae6e456cc4/bottleneck-1.6.0-cp313-cp313t-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "48cb7957ff40367a151139b5f1854616bf92e578f10804d226fbcdecfd73aead",
                "md5": "abdfb5c13d081a21be09e3eb9b59e766",
                "sha256": "543d3a89d22880cd322e44caff859af6c0489657bf9897977d1f5d3d3f77299c"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp313-cp313-win32.whl",
            "has_sig": false,
            "md5_digest": "abdfb5c13d081a21be09e3eb9b59e766",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 108029,
            "upload_time": "2025-09-08T16:30:09",
            "upload_time_iso_8601": "2025-09-08T16:30:09.909784Z",
            "url": "https://files.pythonhosted.org/packages/48/cb/7957ff40367a151139b5f1854616bf92e578f10804d226fbcdecfd73aead/bottleneck-1.6.0-cp313-cp313-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "90a8735df4156fa5595501d5d96a6ee102f49c13d2ce9e2a287ad51806bc3ba0",
                "md5": "b68810a70e971870e1813342b5c4a662",
                "sha256": "48a44307d604ceb81e256903e5d57d3adb96a461b1d3c6a69baa2c67e823bd36"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "b68810a70e971870e1813342b5c4a662",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 113497,
            "upload_time": "2025-09-08T16:30:10",
            "upload_time_iso_8601": "2025-09-08T16:30:10.820725Z",
            "url": "https://files.pythonhosted.org/packages/90/a8/735df4156fa5595501d5d96a6ee102f49c13d2ce9e2a287ad51806bc3ba0/bottleneck-1.6.0-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "77e2eb7c08964a3f3c4719f98795ccd21807ee9dd3071a0f9ad652a5f19196ff",
                "md5": "13deccf1fe30e6bda90084af138d4ae6",
                "sha256": "98f1d789042511a0f042b3bdcd2903e8567e956d3aa3be189cce3746daeb8550"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp314-cp314-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "13deccf1fe30e6bda90084af138d4ae6",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.10",
            "size": 100544,
            "upload_time": "2025-09-08T16:30:20",
            "upload_time_iso_8601": "2025-09-08T16:30:20.220447Z",
            "url": "https://files.pythonhosted.org/packages/77/e2/eb7c08964a3f3c4719f98795ccd21807ee9dd3071a0f9ad652a5f19196ff/bottleneck-1.6.0-cp314-cp314-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "99ecc6f3be848f37689f481797ce7d9807d5f69a199d7fc0e46044f9b708c468",
                "md5": "e0ee6e7fc8a764cc39903b13db60ee79",
                "sha256": "1fad24c99e39ad7623fc2a76d37feb26bd32e4dd170885edf4dbf4bfce2199a3"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e0ee6e7fc8a764cc39903b13db60ee79",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.10",
            "size": 378315,
            "upload_time": "2025-09-08T16:30:21",
            "upload_time_iso_8601": "2025-09-08T16:30:21.409781Z",
            "url": "https://files.pythonhosted.org/packages/99/ec/c6f3be848f37689f481797ce7d9807d5f69a199d7fc0e46044f9b708c468/bottleneck-1.6.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bf8f2d6600836e2ea8f14fcefac592dc83497e5b88d381470c958cb9cdf88706",
                "md5": "8a429a0fe684ec56f5ff41a6c1821d11",
                "sha256": "643e61e50a6f993debc399b495a1609a55b3bd76b057e433e4089505d9f605c7"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "8a429a0fe684ec56f5ff41a6c1821d11",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.10",
            "size": 368978,
            "upload_time": "2025-09-08T16:30:23",
            "upload_time_iso_8601": "2025-09-08T16:30:23.458587Z",
            "url": "https://files.pythonhosted.org/packages/bf/8f/2d6600836e2ea8f14fcefac592dc83497e5b88d381470c958cb9cdf88706/bottleneck-1.6.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9bb5bf72b49f5040212873b985feef5050015645e0a02204b591e1d265fc522a",
                "md5": "6be1e7b420ae7ba406d8f235d0e2df2e",
                "sha256": "fa668efbe4c6b200524ea0ebd537212da9b9801287138016fdf64119d6fcf201"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp314-cp314-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "6be1e7b420ae7ba406d8f235d0e2df2e",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.10",
            "size": 362074,
            "upload_time": "2025-09-08T16:30:24",
            "upload_time_iso_8601": "2025-09-08T16:30:24.710537Z",
            "url": "https://files.pythonhosted.org/packages/9b/b5/bf72b49f5040212873b985feef5050015645e0a02204b591e1d265fc522a/bottleneck-1.6.0-cp314-cp314-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1dc8c4891a0604eb680031390182c6e264247e3a9a8d067d654362245396fadf",
                "md5": "872cd9c3df3b52ee6207d1cc205d6026",
                "sha256": "9f7dd35262e89e28fedd79d45022394b1fa1aceb61d2e747c6d6842e50546daa"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp314-cp314-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "872cd9c3df3b52ee6207d1cc205d6026",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.10",
            "size": 374019,
            "upload_time": "2025-09-08T16:30:26",
            "upload_time_iso_8601": "2025-09-08T16:30:26.438108Z",
            "url": "https://files.pythonhosted.org/packages/1d/c8/c4891a0604eb680031390182c6e264247e3a9a8d067d654362245396fadf/bottleneck-1.6.0-cp314-cp314-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4eed4570b5d8c1c85ce3c54963ebc37472231ed54f0b0d8dbb5dde14303f775f",
                "md5": "dd6b6d1c69e02a60d510b60d3c7c291a",
                "sha256": "53296707a8e195b5dcaa804b714bd222b5e446bd93cd496008122277eb43fa87"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp314-cp314t-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "dd6b6d1c69e02a60d510b60d3c7c291a",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.10",
            "size": 101615,
            "upload_time": "2025-09-08T16:30:29",
            "upload_time_iso_8601": "2025-09-08T16:30:29.556879Z",
            "url": "https://files.pythonhosted.org/packages/4e/ed/4570b5d8c1c85ce3c54963ebc37472231ed54f0b0d8dbb5dde14303f775f/bottleneck-1.6.0-cp314-cp314t-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2d93c148faa07ae91f266be1f3fad1fde95aa2449e12937f3f3df2dd720b86e0",
                "md5": "1bb892056163ae05249fb60ddd07f455",
                "sha256": "d6df19cc48a83efd70f6d6874332aa31c3f5ca06a98b782449064abbd564cf0e"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "has_sig": false,
            "md5_digest": "1bb892056163ae05249fb60ddd07f455",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.10",
            "size": 392411,
            "upload_time": "2025-09-08T16:30:31",
            "upload_time_iso_8601": "2025-09-08T16:30:31.186233Z",
            "url": "https://files.pythonhosted.org/packages/2d/93/c148faa07ae91f266be1f3fad1fde95aa2449e12937f3f3df2dd720b86e0/bottleneck-1.6.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6e1ce6ad221d345a059e7efb2ad1d46a22d9fdae0486faef70555766e1123966",
                "md5": "64ee687bcc65f13677fe22c7578c64f5",
                "sha256": "96bb3a52cb3c0aadfedce3106f93ab940a49c9d35cd4ed612e031f6deb27e80f"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "64ee687bcc65f13677fe22c7578c64f5",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.10",
            "size": 384022,
            "upload_time": "2025-09-08T16:30:32",
            "upload_time_iso_8601": "2025-09-08T16:30:32.364434Z",
            "url": "https://files.pythonhosted.org/packages/6e/1c/e6ad221d345a059e7efb2ad1d46a22d9fdae0486faef70555766e1123966/bottleneck-1.6.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4f405b15c01eb8c59d59bc84c94d01d3d30797c961f10ec190f53c27e05d62ab",
                "md5": "3778d4bc0524b7b3373421dbcddb4a67",
                "sha256": "d1db9e831b69d5595b12e79aeb04cb02873db35576467c8dd26cdc1ee6b74581"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp314-cp314t-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "3778d4bc0524b7b3373421dbcddb4a67",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.10",
            "size": 376004,
            "upload_time": "2025-09-08T16:30:33",
            "upload_time_iso_8601": "2025-09-08T16:30:33.731133Z",
            "url": "https://files.pythonhosted.org/packages/4f/40/5b15c01eb8c59d59bc84c94d01d3d30797c961f10ec190f53c27e05d62ab/bottleneck-1.6.0-cp314-cp314t-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "74f6cb228f5949553a5c01d1d5a3c933f0216d78540d9e0bf8dd4343bb449681",
                "md5": "848db8c9575220ecc5d93e4082f7ab56",
                "sha256": "4dd7ac619570865fcb7a0e8925df418005f076286ad2c702dd0f447231d7a055"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp314-cp314t-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "848db8c9575220ecc5d93e4082f7ab56",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.10",
            "size": 386909,
            "upload_time": "2025-09-08T16:30:34",
            "upload_time_iso_8601": "2025-09-08T16:30:34.973366Z",
            "url": "https://files.pythonhosted.org/packages/74/f6/cb228f5949553a5c01d1d5a3c933f0216d78540d9e0bf8dd4343bb449681/bottleneck-1.6.0-cp314-cp314t-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "099a425065c37a67a9120bf53290371579b83d05bf46f3212cce65d8c01d470a",
                "md5": "1c2acc6981b2980a8596c500a00957e2",
                "sha256": "7fb694165df95d428fe00b98b9ea7d126ef786c4a4b7d43ae2530248396cadcb"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp314-cp314t-win32.whl",
            "has_sig": false,
            "md5_digest": "1c2acc6981b2980a8596c500a00957e2",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.10",
            "size": 111636,
            "upload_time": "2025-09-08T16:30:36",
            "upload_time_iso_8601": "2025-09-08T16:30:36.044358Z",
            "url": "https://files.pythonhosted.org/packages/09/9a/425065c37a67a9120bf53290371579b83d05bf46f3212cce65d8c01d470a/bottleneck-1.6.0-cp314-cp314t-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ad23c41006e42909ec5114a8961818412310aa54646d1eae0495dbff3598a095",
                "md5": "1d4574e5f51f07a55dade4ca11975faa",
                "sha256": "174b80930ce82bd8456c67f1abb28a5975c68db49d254783ce2cb6983b4fea40"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp314-cp314t-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "1d4574e5f51f07a55dade4ca11975faa",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.10",
            "size": 117611,
            "upload_time": "2025-09-08T16:30:37",
            "upload_time_iso_8601": "2025-09-08T16:30:37.055022Z",
            "url": "https://files.pythonhosted.org/packages/ad/23/c41006e42909ec5114a8961818412310aa54646d1eae0495dbff3598a095/bottleneck-1.6.0-cp314-cp314t-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e62ded096f8d1b9147e84914045dd89bc64e3c32eee49b862d1e20d573a9ab0d",
                "md5": "a93d282aaa25372a760748d6f069935d",
                "sha256": "bd90bec3c470b7fdfafc2fbdcd7a1c55a4e57b5cdad88d40eea5bc9bab759bf1"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp314-cp314-win32.whl",
            "has_sig": false,
            "md5_digest": "a93d282aaa25372a760748d6f069935d",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.10",
            "size": 110173,
            "upload_time": "2025-09-08T16:30:27",
            "upload_time_iso_8601": "2025-09-08T16:30:27.521252Z",
            "url": "https://files.pythonhosted.org/packages/e6/2d/ed096f8d1b9147e84914045dd89bc64e3c32eee49b862d1e20d573a9ab0d/bottleneck-1.6.0-cp314-cp314-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "33701414acb6ae378a15063cfb19a0a39d69d1b6baae1120a64d2b069902549b",
                "md5": "722143522de51fe94d9ee1fe827d6ed3",
                "sha256": "b43b6d36a62ffdedc6368cf9a708e4d0a30d98656c2b5f33d88894e1bcfd6857"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0-cp314-cp314-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "722143522de51fe94d9ee1fe827d6ed3",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.10",
            "size": 115899,
            "upload_time": "2025-09-08T16:30:28",
            "upload_time_iso_8601": "2025-09-08T16:30:28.524244Z",
            "url": "https://files.pythonhosted.org/packages/33/70/1414acb6ae378a15063cfb19a0a39d69d1b6baae1120a64d2b069902549b/bottleneck-1.6.0-cp314-cp314-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "14d86d641573e210768816023a64966d66463f2ce9fc9945fa03290c8a18f87c",
                "md5": "f10a6291bd8e4b9dc0a54e8948ea00c5",
                "sha256": "028d46ee4b025ad9ab4d79924113816f825f62b17b87c9e1d0d8ce144a4a0e31"
            },
            "downloads": -1,
            "filename": "bottleneck-1.6.0.tar.gz",
            "has_sig": false,
            "md5_digest": "f10a6291bd8e4b9dc0a54e8948ea00c5",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 104311,
            "upload_time": "2025-09-08T16:30:38",
            "upload_time_iso_8601": "2025-09-08T16:30:38.617432Z",
            "url": "https://files.pythonhosted.org/packages/14/d8/6d641573e210768816023a64966d66463f2ce9fc9945fa03290c8a18f87c/bottleneck-1.6.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-08 16:30:38",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "pydata",
    "github_project": "bottleneck",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "bottleneck"
}
        
Elapsed time: 1.17746s