Commit Graph

263 Commits

Author SHA1 Message Date
Omer BenAmram f8bf258602 Support rust extensions for PyPy via cpyext (#393)
* wip

* removed stuff

* removed another change

* implemented minimum amouth of ifdefs to make pypy3 hello world to compile

* implemented minimum amount of ifdefs to make pypy3 hello world to compile

* hacking on build.rs

* compiler is happy!

* few todos remain

* extracted build logic to seperate module

* added pypy test

* finally fixed pypy structs

* removed some todos

* test should now be machine independent

* fixed all pypy3 symbols

* added pypy feature

* removed `is_pypy`

* added pypy2 declerations also

* fix for cpython2

* improved libpypy detection

* added all pypy2 macros

* fixed errneous type

* more fixes

* fix python2 string macros

* modsupport symbol

* fix

* fixed and added many symbols

* fixes

* remove dup

* remove mac-specific config

* fix all name mangling macros

* unite imports

* missing symbol

* fix pybool

* implemented another missing symbol

* it works

* fix merge conflict

* uncomment non default features

* cargo.toml

* Cargo fmt

* small merge fixes

* use newer build version

* whoops

* fix build script

* more build hacks

* some random hiccups

* small fixes

* it builds!

* it builds and runs

* revert everything in FFI2

* revert changes to ffi2

* check python3 for pypy

* tiny fix

* revert ffi2 for real

* revert weird formatting changes

* bring back missing feature

* tiny error

* fix py3.7 issue

* add pypy3.5 6.0 to travis

* remove dbg!

* another tiny fix

* removed some useless annotations, and fixed inlines annotations

* removed `pretty_assertions`

* removed pypy feature from cargo.toml

* fix for Py_CompileStringFlags

* tox runs word_count!

* __dict__ changes are not supported for PyPy

* fix 3.7 and copy comment

* fix test script 😳

* transfer ownership of strings to cpython when possible

* remove cstr! macro

* added missing nuls

* as_bytes() -> b’’ string

* symbol removed by mistake

* properly shim pypy date time API, some tests are passing!

* extension_module tests now not crashing! (some still skipped)

* maybe travis has new pypy version?

* small error on windows (build script)

* fix conditional compilation

* try to make tests run on travis..

* invert condition

* added pytest-faulthandler to facilitate debugging

* correctly name dir

* use full paths

* say —yes to conda

* fix

* syntax error

* change PATH

* fixed a terrible bug with PyTypeObjects in PyPy

* fix PyTypeObject defs

* re-enabled tests!

* all tests are passing!

* make the fix ad-hoc for now

* removed build module

* revert changes that cause an additional GC bug

* prevented buggy test from failing pypy

* removed unused comment

* don’t run coverage on pypy

* removed some erroneous symbols from function calls which are actually macros

* restore py37 pyunicode missing def

* use only `link_name` in PyPy specific declarations

* only setup PyPy when testing against PyPy

* annotation that was eaten during merge

* remove change to  comment by mistake + unnecessary changes to cargo.toml

* xfail dates test only on pypy

* changed comment to be a little more helpful

* cleaned up some warnings

* Update src/ffi3/ceval.rs

Co-Authored-By: omerbenamram <omerbenamram@gmail.com>

* @konstin PR notes

* rustfmt

* some documentation

* if configured via env var only, default to cpython

* remove extra unsafe

* refer users to guide for pypy

* Update guide/src/pypy.md

Co-Authored-By: omerbenamram <omerbenamram@gmail.com>

* Update guide/src/pypy.md

Co-Authored-By: omerbenamram <omerbenamram@gmail.com>

* @konstin applied patch

* check that pypy at least build

* search explicitly for libpypy

* added note about some known unsupported features

* use ld_version

* export PYTHON_SYS_EXECUTABLE to `cargo build` test

* inverted if

* always link pypy dynamically

* remove unused imports

* Apply @kngwyu’s suggestion

* fix tox configuration

* try conda virtualenv

* try to simply not install python at all inside pypy environment

* setup pypy before using “python"

* use system_site_packages

* revert change to .travis

* moved cpyext datetime documentation to module level, and revised it.

* Update src/ffi/datetime.rs

Co-Authored-By: omerbenamram <omerbenamram@gmail.com>

* rustfmt

* Update src/ffi/datetime.rs

Co-Authored-By: omerbenamram <omerbenamram@gmail.com>

* kept only notes that are relevant to users.

* invert if

* use bash and not sh
2019-04-23 13:18:42 +02:00
Alexander Niederbühl f1b0288d3c Remove docmatic and several workarounds for the doctests 2019-04-19 22:47:21 +02:00
konstin f5b4713010
Fix pyo3 version in the readme for #430 2019-04-11 13:19:02 +02:00
Owez 00acbc461a
Added capitalization & better wording to README.md
Capitalized words:

* `python` to `Python`
* `rust` to `Rust`
* `windows` to `Windows`
* `linux` to `Linux`
* `macOS` to `MacOS`

Alongside some minor wording changes to allow it to read more fluently.
2019-04-09 10:56:03 +01:00
ijl 2bb0d05a30 Drop support for python2 2019-03-29 12:37:26 +00:00
Miles Granger 711155d7ad Update tests & docs with IntoPyDict::into_py_dict(py) 2019-03-20 20:04:00 +01:00
Alexander Niederbühl 5cc43b8d86 Reactivate coverage on CI
Also exclude tests from coverage report and test py3-derive-backend in
travis.
2019-03-18 01:05:08 +01:00
Alexander Niederbühl 548f3f91cf Replace Pyo3 with PyO3 in README.md 2019-03-13 17:36:16 +01:00
Alexander Niederbühl e2e4733b82 Test examples in user guide with travis
Test could only be activated for Python 3.5 and some tests had to be
ignored, see #381 and #387.
2019-03-09 23:54:28 +01:00
konstin 0cd72ac213 Bump to 0.6.0-alpha.4 2019-02-20 11:30:09 +01:00
konstin d02f7c3aa5 Big proc macro refactoring
* Removed a lot of clutter, unified some code
 * Started using syn::parse::Parse for pyfunction attributes 
 * No more newlines between imports
 * Renamed `#[prop(get, set)]` to `#[pyo3(get, set)]`
 * `#[pyfunction]` now supports the same arguments as `#[pyfn()]`
 * Some macros now emit proper spanned errors instead of panics.
2019-02-18 20:07:56 +01:00
konstin 9e53418aad Less feature(specialization) 2019-02-01 18:09:51 +01:00
konstin 936f0153e8 Migrate to rust 2018 2019-02-01 14:23:29 +01:00
konstin fbe71b27cb Pin nightly in ci 2019-01-30 16:31:37 +01:00
konstin d00be67ad3
Fix #298 2018-12-04 22:50:16 +01:00
Tiago Rodrigues Antao 08e61694b3 upgrade version reference 2018-11-30 08:50:15 -05:00
kngwyu ea6364b98c Add installation notes on Ubuntu18.04 2018-11-26 13:31:49 +09:00
ijl e3d528980d Document orjson lib as user/example 2018-11-23 19:28:36 +00:00
konstin 9c8c5a6063 Rename #[pymodinit] to #[pymodule] 2018-11-15 19:43:29 +01:00
konstin 863ffb161f Add wrap_module macro 2018-11-15 19:43:29 +01:00
konstin 3b63cc9178 v0.5.0-alpha.2 2018-10-29 17:36:06 +01:00
Stefano Probst 21fe12d048
Fix Typo
Fix Typo in README.md
2018-10-29 11:09:29 +01:00
konstin d598cf440b
Update README.md 2018-10-26 11:17:30 +02:00
konstin 4da9110489 Add tox config for word-count 2018-10-09 18:21:52 +02:00
kngwyu 3620aae503 Build rust doc on travis 2018-10-04 16:19:36 +09:00
Maximilian Roos 78207916d0
macos 2018-09-27 19:55:25 -04:00
Maximilian Roos 9806784503
moudle 2018-09-27 19:54:53 -04:00
konstin 302c099a76 Big refactoring to shrink the prelude 2018-09-21 23:34:28 +02:00
konstin 1ea5d209ff
Update version number in readme to fix #221 2018-09-13 19:33:14 +02:00
Michael Sanders a525242b05
Add autopy as example lib 2018-09-07 23:12:36 -07:00
konstin f3c98ca7ba Move setuptools-rust documentation to setuptools-rust 2018-09-06 18:03:15 +02:00
konstin f58549f1d8 Get rid of a bunch of PyTokens 2018-09-02 23:33:45 +02:00
konstin a2af5fe71d Advertise pyo3-pack a bit more 2018-08-30 23:20:04 +02:00
konstin 9b4d6cf51f
Remove docs.rs link for now 2018-08-30 19:22:59 +02:00
konstin 991a8b94d2 More nightly fixes 2018-08-19 20:42:17 +02:00
konstin b12b65cfae Cleanup 2018-08-19 20:06:47 +02:00
konstin d0ed68414a Many small improvements 2018-08-04 19:56:59 +02:00
konstin 83db765889 Refactoring 2018-07-30 22:56:25 +02:00
Sven-Hendrik Haase 59b7e0fc2d
Update pyo3 version umber 2018-07-20 00:39:42 +02:00
konstin d59bebcc38 Upgrade from proc_macro to use_extern_macros 2018-07-18 13:08:05 +02:00
konstin fe931a594f #[pymodinit] now uses the function name as default module name 2018-07-10 00:13:02 +02:00
konstin 4013d40897 Add `py` prefix to the proc macros and move them into the root module
This is important because `proc_macro_path_invoc` isn't going to be stabilized soon.
2018-07-08 23:33:48 +02:00
konstin 9ce5e8cf28
Update README.md
Thanks to @mre in https://github.com/PyO3/pyo3/issues/172#issuecomment-401612673
2018-07-01 17:15:29 +02:00
Peng Guanwen ce4c217527 Fix broken links
This fixes #182
2018-06-14 08:10:39 +00:00
Alex Vig cf5423b5dc Updated README for macs
Made the instructions around generating a Python package more clear
(particularly for macs).

closes #172
2018-06-02 19:01:40 -04:00
konstin 2d57b3bef7 Link to the new guides; Fixes #165 2018-06-01 15:03:04 +02:00
konstin c9db4f0da2 Some cleanup and housekeeping 2018-05-30 15:03:31 +02:00
konstin 314a4a2b3e Some more documentation work 2018-05-19 17:27:26 +02:00
konstin 319afe1f76 Small documentation improvements 2018-05-17 23:59:38 +02:00
konstin d0c42dfcc1 Fix compilation on nightly 2018-05-01 15:44:38 +02:00
Vlad Shcherbina 2aedbffcd0 Fix typos 2018-03-15 14:41:16 +03:00
Vlad-Shcherbina 4f3e5ba357
Remove too strict version requirement for Windows
The special rustc version requirement for Windows was introduced in
f6ed2bbae9 (diff-04c6e90faac2675aa89e2176d2eec7d8R23)

Required versions converged in
0c7293125c (diff-04c6e90faac2675aa89e2176d2eec7d8R19)

And since then it seems they were updated mechanically in sync.
2018-02-10 15:37:34 +03:00
Nikolay Kim 1f6c73e91a add link to crate 2017-11-27 11:51:42 -08:00
Nikolay Kim 3cb57f5579 prepare release 2017-11-27 11:40:03 -08:00
messense e7a7b3d5a0
Remove use of now unneeded 'AsciiExt' trait 2017-11-23 12:08:05 +08:00
dkao1978 eb9050ab90 Add documentation for compiling on MacOS (#89)
* Update README.md

* Update overview.md

* Update lib.rs

* Update README.md

* Add links
2017-10-22 11:17:35 +08:00
serpilliere 68937db201 Update README version (#83) 2017-10-06 09:54:51 -05:00
Matthieu Bizien 8975ce5088 Update README.md to V0.2 (#82) 2017-09-27 05:10:56 -05:00
messense 70c7b4a2a2
Use pyo3 0.2 in docs 2017-08-15 09:30:55 +08:00
Nikolay Kim ac27eb8b6d Update README.md 2017-08-12 10:16:47 -07:00
Nikolay Kim c19a756453 add badges 2017-08-12 10:15:29 -07:00
Nikolay Kim c44e23f4b9 add prelude mod 2017-07-31 10:42:55 -07:00
Nikolay Kim efba0742e8 fix readme 2017-07-26 14:30:01 -07:00
Jean-Marie Comets c5d0860996 Add missing trait in README example (#61) 2017-07-26 20:19:49 +08:00
Nikolay Kim 4b0a8f5019 Update README.md 2017-07-23 16:28:13 -07:00
Nikolay Kim 7b5fc4b655 Update README.md 2017-07-23 16:27:04 -07:00
messense 6bbf3d7595 Add rustc version check in build script (#47)
* Add rustc version check in build script

* Update rustc requirement in README.md
2017-07-18 09:33:27 +08:00
Nikolay Kim 4daac50781 remove associated_consts feature 2017-07-14 03:17:57 -07:00
Nikolay Kim 8eb5dc0667 use associated consts 2017-07-13 16:45:50 -07:00
Nikolay Kim 52ade64bf7 update links 2017-07-13 13:14:47 -07:00
Nikolay Kim 6b093af3d9 update readme 2017-06-29 11:26:25 +06:00
Nikolay Kim 005c36548b add specialization to docs 2017-06-18 09:28:21 -07:00
messense a993d8d7e0 Add module doc string autogen (#39) 2017-06-18 23:00:27 +08:00
messense 32e25c8bf2
Write Python Module chapter for user guide 2017-06-18 13:07:05 +08:00
messense 213f9a6382
Add user guide link to README.md 2017-06-18 10:14:15 +08:00
Nikolay Kim e85db971f9 fix module export functions 2017-06-15 14:20:30 -07:00
Nikolay Kim 1008dafea2 fix doc links 2017-06-15 11:30:06 -07:00
Nikolay Kim d15e85800f push all doc files 2017-06-15 11:20:40 -07:00
Nikolay Kim 51115e70f2 update doc link 2017-06-15 10:48:10 -07:00
Nikolay Kim d9bd485072 macro_use is not requires 2017-06-14 14:42:05 -07:00
Nikolay Kim 706477f139 replace py_fn! macro with pyfn attribute 2017-06-14 14:08:30 -07:00
Nikolay Kim 4d68f7f2a3 fix readme 2017-06-11 23:57:21 -07:00
Nikolay Kim 6204a06cbc update docstring 2017-06-11 23:54:24 -07:00
Nikolay Kim acc00b7738 fix python exptension export 2017-06-11 23:45:06 -07:00
Nikolay Kim b84474155e convert PyGCProtocol 2017-05-30 12:42:07 -07:00
messense 9abc69f5c4
Fix py_module_init! example in README.md 2017-05-25 10:01:23 +08:00
messense f0120749f9
Fix some issues in README.md 2017-05-21 20:37:56 +08:00
Nikolay Kim 266e608dc5 Update README.md 2017-05-18 23:30:36 -07:00
Nikolay Kim 0c7293125c simplify class generation 2017-05-18 23:29:09 -07:00
Nikolay Kim 9eae1523cb Update README.md 2017-05-12 23:34:46 -07:00
Nikolay Kim b2d49c3648 drop py3.4 2017-05-12 23:29:59 -07:00
Nikolay Kim 03a3817878 update readme and travis 2017-05-12 23:01:54 -07:00
Nikolay Kim bf4e36d9d9 update travis config 2017-05-12 22:51:14 -07:00
Nikolay Kim 13ac12a568 update readme 2017-05-12 22:32:04 -07:00
Nikolay Kim 1de56bde71 update readme 2017-05-12 22:30:25 -07:00
Daniel Grunwald 4bbea03301 Add link to setuptools-rust 2017-03-12 12:54:21 +01:00
Jim Turner ca7280fded Fix cpython dependency in README.md 2017-01-30 18:40:58 -05:00
Daniel Grunwald cb4ee822e0 Add Python 3.6 to test matrix. 2017-01-18 21:28:04 +01:00
Matteo Bertini acd36360dc Fix typo: Mac OS `dynlib` -> `dylib`
Closes #73
2016-12-31 11:06:16 +01:00
Daniel Grunwald b7090799b6 Version 0.1.0 2016-12-17 21:41:14 +01:00
Daniel Grunwald f6ed2bbae9 Fix #10: Windows support.
We keep the #[link] attributes in #[cfg_attr(windows)] so that we don't require a nightly Rust build on non-Windows platforms.
This can be simplified once RFC 1717 is available in a stable rust version.

This commit also increases the minimum Rust version to 1.13.
2016-12-17 15:46:52 +01:00
Colin Rofls be884bfe7f added example of implementing a basic python module 2016-10-26 15:55:50 -04:00
Daniel Grunwald 3af6e17841 WIP: big macro refactoring
* Introduce py_argparse_parse_plist!() to allow a more flexible
  param list syntax.
* py_fn!() syntax changed
* Remove py_method!() / py_class_method!() macros.
  These are of limited use when building dynamic types,
  and not useful for py_class!() static types.
2016-03-07 23:22:44 +01:00
Daniel Grunwald 54aa17abf9 Enable testing with Python 3.5 2016-01-22 20:42:34 +01:00
Michael Neumann bab907b0be Correct the example in README.md 2015-12-31 12:43:03 +01:00
Daniel Grunwald a19b186bb4 Fix git URL in readme 2015-11-07 17:19:46 +01:00
Daniel Grunwald e935111c9c Update interpolate_idents to my fork (adjusted for currently Rust nightlies).
Update libc to 0.2.
2015-11-07 17:10:20 +01:00
Daniel Grunwald 44611991c3 Remove 'p lifetime from PyObject (#15)
Since the `Python` token no longer is a part of `PyObject`,
lots of methods now require the token as additional argument.

This [breaking-change] breaks everything!
2015-10-25 17:55:29 +01:00
Daniel Grunwald 2b7d28f7fd Fix build with python 2.7 2015-09-20 19:43:24 +02:00
Daniel Grunwald 072f4d24eb Initial version of `argparse!` 2015-08-02 21:56:03 +02:00
gentoo90 a785ba87a9 Add an example of calling a python function from rust 2015-07-27 21:56:59 +03:00
Daniel Grunwald 888967ab5d Update link to documentation. 2015-04-19 07:50:50 +02:00
Daniel Grunwald 81a8cbb64f Add README.md 2015-04-19 05:29:19 +02:00