pyo3/examples/word-count
Martin Larralde 99fdafbb88 Allow setting the module name for a pyclass (#499)
* Add `MODULE` const value to `PyTypeInfo` trait

* Allow setting module name in `pyclass` macro arguments

* Add `$module` argument to `pyobject_native_type` macro in `pyo3::types`

* Set the right module for builtin types in `pyo3::types`

* Add `module` argument to example `word_count.WordCounter` class

* Add `module` argument of `pyclass` macro to guide

* Reformat code using `rustfmt`

* Add tests and entry in CHANGELOG.md for `module` argument in `pyclass`

* Make `$module` parameter in `pyobject_native_type` optional

* Make `pyobject_native_type` declare module as `Some("builtins")` by default
2019-06-03 12:18:44 +09:00
..
src Allow setting the module name for a pyclass (#499) 2019-06-03 12:18:44 +09:00
tests remove meaningless __future__.absolute_import 2018-10-09 23:26:28 +09:00
word_count Remove unrequired encoding header 2019-03-03 18:14:12 +01:00
Cargo.toml Migrate to rust 2018 2019-02-01 14:23:29 +01:00
MANIFEST.in Update word-count to support PEP 517 sdists 2019-04-25 07:06:29 -04:00
pyproject.toml Fix installing in 'venv' and datetime tests on Windows (#472) 2019-05-12 22:20:17 +09:00
README.md Drop support for python2 2019-03-29 12:37:26 +00:00
requirements-dev.txt Fix installing in 'venv' and datetime tests on Windows (#472) 2019-05-12 22:20:17 +09:00
setup.py Update word-count to support PEP 517 sdists 2019-04-25 07:06:29 -04:00
tox.ini Update word-count to support PEP 517 sdists 2019-04-25 07:06:29 -04:00

word-count

Demonstrates searching for a file in plain python, with rust singlethreaded and with rust multithreaded.

Build

python setup.py install

Usage

from word_count import search_py, WordCounter

search_py("path/to/file", "word")
WordCounter("path/to/file").search("word")
WordCounter("path/to/file").search_sequential("word")

Benchmark

Install the depedencies:

pip install -r requirements-dev.txt

There is a benchmark in tests/test_word_count.py:

pytest -v tests

Testing

To test python 3.5, 3.6 and 3.7, install tox globally and run

tox