Commit Graph

1025 Commits

Author SHA1 Message Date
konstin d445d60e0a Export PyUnicode to fix #141 2018-05-08 10:42:17 +02:00
konstin cb5bae2c90 Export pyobejct_* macros
This is required for interaction with other native python extensions, e.g. numpy

Fixes #153
2018-05-07 23:47:23 +02:00
konstin 8c26020015 Refactor pyobject_* macros 2018-05-07 23:45:24 +02:00
konstin da3e9a90ed Add missing closing bracket 2018-05-05 16:14:26 +02:00
konstin 5dd7ae6ce4 Merge branch 'master' into capybara 2018-05-05 15:51:01 +02:00
konstin 858a124374 Merge master 2018-05-05 15:50:04 +02:00
konstin afcc87e82c Feature gate try_from
This was discovered https://github.com/PyO3/pyo3/issues/5#issuecomment-386579894
2018-05-05 14:43:37 +02:00
konstin 0b511e8684 Small warning fixes 2018-05-05 14:26:59 +02:00
konstin 8783d61c02
Merge pull request #139 from konstin/codegen_crate
Move codegen into its own crate
2018-05-05 14:21:42 +02:00
konstin 5a26fa4953 Fix redirect on github pages 2018-05-05 14:19:50 +02:00
Martin Larralde 3b6a87c8c2
Fix wrong repository name in `.travis.yml` 2018-05-04 18:34:05 +02:00
Martin Larralde 70bdf5e93c
Tidy up Travis-CI (#152)
* Use Travis-CI build matrix to setup environment
* Setup Travis cache 
* Use `sccache` to cache compiled artifacts
* Use `setup.sh` script to setup Travis-CI
* Add more tests to `ci/travis` to lighten `.travis.yml`
* Use `script` deployment to run `kcov` in Travis-CI
* Export `RUSTC_WRAPPER` in the Travis configuration directly
* Fix wrong Python `3.7` version in Travis configuration
* Fix `ci/travis/cover.sh`
* Prevent Travis-CI from cleaning build artifacts
* Recompile `kcov` only when needed in Travis-CI
* Collect coverage in parallel
* Add github-pages deployment script
2018-05-04 18:20:28 +02:00
konstin 9dc76610b9
Merge pull request #150 from konstin/test_class
Split up test_class into multiple files
2018-05-02 21:06:03 +02:00
konstin 3e8a36b297 Split up test_class into multiple files 2018-05-02 20:56:11 +02:00
konstin 57048bc5fc Merge branch 'master' into capybara 2018-05-02 19:32:56 +02:00
konstin 15204bab56 Better way to add functions to modules 2018-05-02 19:26:54 +02:00
Martin Larralde 7f49673fae
Merge pull request #149 from althonos/master
Fix `exception` tests failing with Python 2
2018-05-02 16:02:39 +02:00
Martin Larralde cc352dade3 Fix `exception` tests failing with Python 2 2018-05-02 13:54:59 +02:00
Martin Larralde b64977fa8b
Merge pull request #142 from althonos/doctests
Add tests for the guide book using `docmatic`
2018-05-02 10:43:03 +02:00
Martin Larralde b80b85539b Remove occurrences of `py::methods` and `py::class` 2018-05-01 23:17:42 +02:00
Martin Larralde 3554248615 Bump `docmatic` test dependency to `0.1.2` 2018-05-01 23:01:29 +02:00
Martin Larralde 80b3ce7801 Use new `docmatic` API 2018-05-01 22:59:49 +02:00
Martin Larralde 57de066a6b Use `docmatic` with additional arguments 2018-05-01 22:59:49 +02:00
Martin Larralde 87e3f5d600 Make `guide_path` immutable in `test_doc` 2018-05-01 22:59:49 +02:00
Martin Larralde 4dccd556b7 Fix `conversions.md` stubs to work with Py2 as well 2018-05-01 22:59:49 +02:00
Martin Larralde 0963a6052c Add stubs to `conversions.md` to allow more tests to run 2018-05-01 22:59:49 +02:00
Martin Larralde f12af1653d Fix guide documentation to pass doctests 2018-05-01 22:59:49 +02:00
Martin Larralde aed4af9a1e Add documentation tests for `guide/exception.md` 2018-05-01 22:59:49 +02:00
Martin Larralde 79491db60a Add documentation tests for `guide/overview.md` 2018-05-01 22:59:49 +02:00
Martin Larralde 2a618698cf Add `docmatic` to test dependencies 2018-05-01 22:59:49 +02:00
konstin 0880ac166c Merge master 2018-05-01 20:41:35 +02:00
konstin 2fcac85003 Add version in Cargo.toml
Following https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-path-dependencies, we need a version for path dependencies
2018-05-01 20:25:20 +02:00
konstin cb6c287f1f Expect the pyo3 crate to be in scope for the codegen
This allows using generated code from crates that do not directly depend on pyo3.

E.g.:

```rust
extern crate my_pyo3_wrapper;

use my_pyo3_wrapper::pyo3;

#[py::modinit(rust2py)]
fn init_mod(py: Python, m: &PyModule) -> PyResult<()> {
    // ...
    Ok(())
}
2018-05-01 20:24:34 +02:00
konstin 29fdc05b60 Move the codegen into its own crate
This makes the code generatioin reusable from third party crates.
2018-05-01 20:24:32 +02:00
konstin 5a8f5034d6 Fix make test
This is a follow-up to #147
2018-05-01 20:15:43 +02:00
konstin e3b74498c8
Merge pull request #146 from konstin/modules_and_functions
Add test for module
2018-05-01 19:26:47 +02:00
konstin 4735c2c516
Merge pull request #147 from konstin/proc_macro_path_invoc
Fix compilation on nightly
2018-05-01 18:59:43 +02:00
konstin d0c42dfcc1 Fix compilation on nightly 2018-05-01 15:44:38 +02:00
konstin 2ee1102ef2 Add test for module 2018-04-30 23:32:25 +02:00
konstin 6113428746 Allow defining functions outside of the module declarations
This commit consists of
 * a proc macro to convert rust functions into python functions (`#[function]`),
 * a macro to register a function in a module (`add_function_to_module!`)
 * Documenting both the old and the new way in the book
2018-04-30 23:17:09 +02:00
konstin 7f68835877 Add unit test for module 2018-04-30 22:38:48 +02:00
konstin 1c276105e5 Generate better code
This reduces the size of the generated code and elinates at least two of the Err => Err antipatterns
2018-04-12 23:20:35 +02:00
konstin 1c0eac2690 Minor changes 2018-04-09 00:00:20 +02:00
konstin ccbc73a385 Fix compilation on older nightlies 2018-04-08 00:43:49 +02:00
konstin 45bb09b3e8 Relax return type requirements
Allows returning essentially arbitrary types by wrapping them into a PyResult. This is done with a conversion trait that specializes for PyResult.
2018-04-06 17:22:09 +02:00
konstin ced4eb532c Expect the pyo3 crate to be in scope for the codegen
This allows using generated code from crates that do not directly depend on pyo3.

E.g.:

```rust
extern crate my_pyo3_wrapper;

use my_pyo3_wrapper::pyo3;

#[py::modinit(rust2py)]
fn init_mod(py: Python, m: &PyModule) -> PyResult<()> {
    // ...
    Ok(())
}
2018-04-05 13:39:07 +02:00
konstin e570c6b9b9 Move the codegen into its own crate
This makes the code generatioin reusable from third party crates.
2018-04-05 13:39:07 +02:00
Nikolay Kim 14ab12b89f move doc generation to asfter script section 2018-04-03 10:32:10 -07:00
Nikolay Kim cab682d855 use rust bin dir instead 2018-04-03 10:15:57 -07:00
Nikolay Kim 6b665e9a82 create cargo dir 2018-04-03 10:15:04 -07:00