Python/Cython Murmurhash3 Binding.

yammh3的Python项目详细描述


又一个杂音3绑定

https://img.shields.io/pypi/v/yammh3.svghttps://img.shields.io/travis/rolando/yammh3.svgDocumentation Status

python/cython杂音3绑定。

功能

  • 提供高级python api。
  • 提供低水平的cython绑定。
  • Python2和3支持。

示例

下面是python中的一个示例:

fromyammh3importhash64key=b"yammh3!"# hash* functions return a signed integer by default.print("signed 64 bits hash is %s"%hash64(key))# -> -1339990020854215562print("unsigned 64 bits hash is %s"%hash64(key,signed=False))# -> 17106754052855336054L

在cython中,首先我们需要用代码编写一个.pyx文件:

# file: yammh3_example.pyx# mhash* functions are only available via cimport.fromyammh3._yammh3cimportmhash64,mhash64sfromyammh3._yammh3cimportint64_t,uint64_t,uint32_tdefprint_hashes(byteskey):cdefuint64_th1cdefint64_th2cdefuint32_tn=len(key)cdefchar *c_key=<char*>keywithnogil:# releasing the GIL!h1=mhash64(c_key,n)h2=mhash64s(c_key,n)print("unsigned 64 bits hash is %d"%h1)print("signed 64 bits hash is %d"%h2)

我们需要将其编译为一个模块,通常使用设置脚本:

# file: setup.pyfromsetuptoolsimportsetupfromsetuptools.extensionimportExtensionfromCython.Buildimportcythonizeimportyammh3# already installedsetup(name='yammh3-example',ext_modules=cythonize([Extension('*',['*.pyx'],include_dirs=[yammh3.get_include()]),]))

然后我们将模块构建到位:

$ python setup.py build_ext --inplace
Running build_ext
building 'yammh3_example' extension
... [snip] ...
copying build/lib.macosx-10.5-x86_64-2.7/yammh3_example.so ->

现在我们可以运行代码了:

$ python -c 'import yammh3_example; yammh3_example.print_hashes(b"yammh3!")'
unsigned 64 bits hash is 17106754052855336054
signed 64 bits hash is -1339990020854215562

学分

杂音3最初是由Austin Appleby创建的。

这个包是用Cookiecutteraudreyr/cookiecutter-pypackage项目模板创建的。

历史记录

0.1.1(2016-06-23)

  • 第一个可用版本:)

0.1.0(2016-06-17)

  • pypi上的第一个版本。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
由于测试失败,java testcontainers maven构建失败   java实现jacobi算法实现laplace方程   java中的多线程:如何在不等待所有线程使用ExecutorService完成任务的情况下终止所有线程的执行?   java Hello World不在Android Studio 3中工作   ubuntu Tomcat7的Java版本不正确   java Javafx内存泄漏   对于手动实现的Spring数据存储库方法,我应该使用Java8默认方法吗?   googleappengine中的java添加过滤查询   html当使用JSOUP库在Java中读取标签时,如何保留标签(如<br>、<ul>、<li>、<p>等)的含义?   编码为什么jasper生成的报告在Java中不显示西里尔语(保加利亚语)?   java有没有办法隐藏当前位置和jdk动作?   java找出编译原型文件的版本   有没有办法在运行时更改java方法的访问修饰符?   语法字符串。。。Java中的参数   java数组元素在添加其他元素时会相互覆盖   eclipse中的java GWT项目   java如何为spring rest模板请求将动态json属性名映射到jackson   java无法在Windows 10上找到特定的JDK   在xml字符串和java字符串之间提取正则表达式子字符串