跳转到主要内容

包含一些C和Cython代码的库,用于加快常见操作。这是外部化的,以避免在其他项目中构建二进制轮子的麻烦。

项目描述

https://github.com/wolph/speedups/actions/workflows/build_wheels.yml/badge.svg https://github.com/wolph/speedups/actions/workflows/tox.yml/badge.svg

此库包含一些函数,可在不麻烦构建二进制扩展的情况下加快Python代码中关键部分。这样,您可以保持主要包简单 PEP517 基于的包,同时仍然获得加速。

目前只提供少数几个函数,但计划提供更多。

speedups.hton 中的通用端序转换函数

  • void pack_int16(char *buf, int16_t x)

  • void pack_int32(char *buf, int32_t x)

  • void pack_int64(char *buf, int64_t x)

  • void pack_float(char *buf, float f)

  • void pack_double(char *buf, double f)

  • int16_t unpack_int16(const char *buf)

  • uint16_t unpack_uint16(const char *buf)

  • int32_t unpack_int32(const char *buf)

  • uint32_t unpack_uint32(const char *buf)

  • int64_t unpack_int64(const char *buf)

  • uint64_t unpack_uint64(const char *buf)

  • float unpack_float(const char *buf)

  • double unpack_double(const char *buf)

这些函数用于在本地和网络字节序之间进行转换,并打算在 Cython 代码中使用。示例可以在 speedups.psycopg_array 代码中找到。

对于 psycopg 库,我们有一个二进制 COPY 加载器,可以将 PostgreSQL 数组转换为 numpy ndarray。这可以使用 psycopg 游标上的 copy() 方法使用: https://www.psycopg.org/psycopg3/docs/basic/copy.html

它支持以下 PostgreSQL 类型

  • float4numpy.float32

  • float8numpy.float64

  • smallintnumpy.int16

  • integernumpy.int32

  • bigintnumpy.int64

此外,它支持从 1D 到 N-D 的数组,因此支持 2D 或 3D 数组。

cursor: psycopg.Cursor
psycopg_loaders.NumpyLoader.install(cursor)

query = '''
COPY (
    SELECT array_agg(x)
    FROM generate_series(1, 100000) x
) TO STDOUT WITH BINARY
'''

copy: psycopg.Copy
with cursor.copy(query) as copy:
    copy.set_types(['integer[]'])

    for row in copy.rows():
        print(row)

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分发

speedups-1.4.0.tar.gz (176.7 kB 查看哈希值

上传时间

构建分发

speedups-1.4.0-cp312-cp312-win_amd64.whl (263.9 kB 查看哈希值

上传时间 CPython 3.12 Windows x86-64

speedups-1.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (787.5 kB 查看哈希值

上传时间 CPython 3.12 manylinux: glibc 2.17+ x86-64

speedups-1.4.0-cp312-cp312-macosx_10_9_x86_64.whl (279.4 kB 查看哈希值

上传时间 CPython 3.12 macOS 10.9+ x86-64

speedups-1.4.0-cp311-cp311-win_amd64.whl (263.0 kB 查看哈希值

上传时间 CPython 3.11 Windows x86-64

speedups-1.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (793.8 kB 查看哈希值

上传于 CPython 3.11 manylinux: glibc 2.17+ x86-64

speedups-1.4.0-cp311-cp311-macosx_12_0_x86_64.whl (274.6 kB 查看哈希值)

上传于 CPython 3.11 macOS 12.0+ x86-64

speedups-1.4.0-cp311-cp311-macosx_10_9_x86_64.whl (276.4 kB 查看哈希值)

上传于 CPython 3.11 macOS 10.9+ x86-64

speedups-1.4.0-cp310-cp310-win_amd64.whl (263.0 kB 查看哈希值)

上传于 CPython 3.10 Windows x86-64

speedups-1.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (743.7 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64

speedups-1.4.0-cp310-cp310-macosx_10_9_x86_64.whl (276.8 kB 查看哈希值)

上传于 CPython 3.10 macOS 10.9+ x86-64

speedups-1.4.0-cp39-cp39-win_amd64.whl (263.5 kB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

speedups-1.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (746.0 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

speedups-1.4.0-cp39-cp39-macosx_10_9_x86_64.whl (277.4 kB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ x86-64

speedups-1.4.0-cp38-cp38-win_amd64.whl (263.6 kB 查看哈希值)

上传于 CPython 3.8 Windows x86-64

speedups-1.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (754.2 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ x86-64

speedups-1.4.0-cp38-cp38-macosx_10_9_x86_64.whl (275.7 kB 查看哈希值)

上传时间: CPython 3.8 macOS 10.9+ x86-64

由以下支持