Commit Graph

1035 Commits

Author SHA1 Message Date
konstin 2904291b9e Better code generation 2018-09-17 19:48:22 +02:00
konstin 0372360811 Add test for #219 2018-09-17 19:47:23 +02:00
konstin f8adb456b8
Merge pull request #222 from ijl/pymodinit2
Fix pymodinit for python2
2018-09-15 01:19:52 +02:00
ijl 5ef95f9d07 Fix pymodinit for python2
error[E0425]: cannot find function `PyEval_InitThreads_if_with_thread` in module `pyo3::ffi`

25 | #[pymodinit]
   | ^^^^^^^^^^^^ not found in `pyo3::ffi`
2018-09-13 22:22:37 +00:00
konstin 0bd5d9d4c3
Update issue_template.md 2018-09-13 19:34:06 +02:00
konstin 1ea5d209ff
Update version number in readme to fix #221 2018-09-13 19:33:14 +02:00
konstin 10ef6cd111 Fix cfg on PyEval_InitThread to fix #219 2018-09-11 22:38:31 +02:00
konstin 9405ffa3b9 Add section about linking in the guide 2018-09-09 18:49:03 +02:00
konstin d638a51971 A bit more debug info on failed build scripts 2018-09-09 18:14:14 +02:00
konstin d92e522243 Syn 0.15 2018-09-09 00:20:04 +02:00
konstin 3724095048
Merge pull request #216 from msanders/patch-1
Add autopy as example lib
2018-09-08 21:39:46 +02:00
Michael Sanders a525242b05
Add autopy as example lib 2018-09-07 23:12:36 -07:00
konstin ddc6313e74 `#[pyclass]` objects can now be returned from rust functions 2018-09-06 18:04:13 +02:00
konstin f3c98ca7ba Move setuptools-rust documentation to setuptools-rust 2018-09-06 18:03:15 +02:00
konstin 4c1ff24b2b Fix raw identifiers 2018-09-03 20:50:18 +02:00
konstin e6569ae61e Remove ::pyo3::argparse::get_kwargs for from_borrowed_ptr_or_opt 2018-09-03 20:50:02 +02:00
konstin 29c882577c Get rid of another default fn 2018-09-03 01:02:39 +02:00
konstin f58549f1d8 Get rid of a bunch of PyTokens 2018-09-02 23:33:45 +02:00
konstin a5ab5661a2 Upgrade to syn 0.15-rc 2018-09-02 23:13:35 +02:00
konstin 0101dc8136 Two default fn less 2018-08-31 21:11:08 +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 aa8be251d3 Fix python 2 2018-08-29 22:47:02 +02:00
konstin 8de0574aad Clippy stuff 2018-08-26 21:35:53 +02:00
konstin 7293cdbc6f Remove dead impl 2018-08-26 19:14:55 +02:00
konstin 3b8adeb484 Rewrite sq_ass_item generation to avoid specialization 2018-08-26 19:09:34 +02:00
konstin 4847d56325 Less java-esque naming 2018-08-26 18:48:57 +02:00
konstin 6d9ee7fc38 Rewrite the set attr / del attr function to avoid specialization 2018-08-26 18:40:50 +02:00
konstin 7c0379b13a Remove many specialization uses
From over a hundret "default fn" uses down to 17
2018-08-25 20:48:17 +02:00
konstin 33e72a2b03
Merge pull request #209 from joar/fix/escape-square-brackets
Escape square brackets when they're not references
2018-08-24 19:55:11 +02:00
Joar Wandborg 47bbe8cc1e
Use backticks instead of single quotes
The backticks properly monospace the Python expressions in the rendered
docs, and also escape square brackets inside so that rustdoc isn't
trying to parse them as references.
2018-08-24 19:15:48 +02:00
Joar Wandborg b5e5bcf223
Escape square brackets in references. 2018-08-24 19:01:14 +02:00
konstin 3e7d5280ca
Merge pull request #200 from pganssle/datetime
Initial datetime bindings
2018-08-22 18:00:05 +02:00
konstin 0b6d47d177
Merge pull request #205 from pganssle/fix_race_conditions
Fix race conditions
2018-08-22 17:07:29 +02:00
Paul Ganssle 6202e2641b
Fix race condition in test_seq_set_item_refcnt
This test previously relied on a stable reference count for None, which
is not likely to be true in multi-threaded code. This creates an object
specifically for the test to avoid race conditions.
2018-08-21 20:32:12 -04:00
Paul Ganssle c3986a7244
Fix race condition in test_borrowed*
This fixes a race condition in test_borrowed and test_borrowed_nested
by making the object under test different in each thread.
2018-08-21 20:20:24 -04:00
konstin c3bcabc50d Revert workspace separation
Apparently setuptools-rust didn't like that
2018-08-22 00:38:49 +02:00
Paul Ganssle 265a6802d7
Enable extension-module 2018-08-21 18:33:34 -04:00
Paul Ganssle c69634e0fd
Remove use_extern_macros, which is now stable 2018-08-21 18:33:34 -04:00
Paul Ganssle c7a967c340
Silence type complexity warnings in ffi 2018-08-21 18:33:33 -04:00
Paul Ganssle a09ffad32a
Add convnience function to unwrap Option<&PyObject> 2018-08-21 18:33:33 -04:00
konstin 7053c897aa
Get rid of #[inline(always)] and replace it with #[inline]
I've just seen that this had been hidden from clippy through the ffi module reordering, but fixing this on master would cause merge conflicts, so I'm fixing this here directly
2018-08-21 18:33:33 -04:00
Paul Ganssle a05a78f7e0
Use smallest types for Py{Date}{Time} constructors
Because it's unlikely that anything other than the `year` parameter will
change in the C Python API, the rest can be restricted to their logical
ranges, which improves the compile-time error checking.
2018-08-21 18:33:33 -04:00
Paul Ganssle 5d5689f95b
Switch Py{Date}{Time} constructor parameters to i32
While the valid ranges for the constructor parameters is the same when
expressed as either u32 or i32, since the Python API uses i32 in their
public interface, we won't have to make any changes to the signatures if
the Python behavior changes (e.g. supporting negative years) without
their API changing.
2018-08-21 18:33:33 -04:00
Paul Ganssle 113de1bcd3
Drop setup_requires from rustapi_module
The PEP 518 way to do this is with pyproject.toml. tox doesn't support
PEP 518 yet, but we get around that by using pip install -e . as part of
the tox build until PEP 518 support arrives in tox.
2018-08-21 18:33:33 -04:00
Paul Ganssle 078bea4345
Move rustapi_module into examples
This is really a test module, but the Rust convention is to put
something like this under examples/, and when it lands, we can take
advantage of "Project-based Examples for Cargo Projects" - RFC link
at https://github.com/rust-lang/rfcs/pull/2517
2018-08-21 18:33:33 -04:00
Paul Ganssle b66ab7fabc
Move cache population logic into PyDateTime_IMPORT
This more closely mimics the CPython API, since the import logic
populates the global, it should also populate the cache.

This also allows users to eagerly initialize the Python C API if
preferred (for example, doing so before populating a bunch of threads,
or before making performance measurements that will be thrown off by a
lazy import).
2018-08-21 18:33:32 -04:00
Paul Ganssle 26c5397618
Implement Debug for PyObject in Python 2
For whatever reason I cannot build rustapi_module without this, and
rather than figure out the core problem, I figured that, for symmetry,
it makes sense to just implement Debug for PyObject.
2018-08-21 18:33:32 -04:00
Paul Ganssle cf3b1d2cc3
Remove leading __ from private cache objects
These were basically cargo culted from lazy_static's implementation, but
they are not idiomatic or necessary to indicate that these are private
variables.
2018-08-21 18:33:32 -04:00
Paul Ganssle a271ba9ed9
Use unified implementation for ffi::datetime
In the future we can make ffi::object, ffi::pycapsule, etc as
crate-public, but importing the specific symbols is a light touch way to
do this.
2018-08-21 18:33:32 -04:00