Martin Larralde
d482b715de
Fix signatures of PySequenceProtocol
methods
2019-03-31 05:28:52 +02:00
konstin
9a9b519bcb
Mark PyTypeObject as unsafe
2019-03-30 20:25:47 +01:00
ijl
80179be2b0
Merge num3, num_common to num
2019-03-29 12:37:26 +00:00
ijl
fdeef7d67e
Merge string and stringutils
2019-03-29 12:37:26 +00:00
ijl
2bb0d05a30
Drop support for python2
2019-03-29 12:37:26 +00:00
konstin
20481e8324
Whitelist clippy error
2019-03-24 17:33:08 +01:00
konstin
97189a16b9
Try fixing cargo fmt on travis ci
2019-03-24 17:19:15 +01:00
konstin
f75f742c58
Fix CStr usages
2019-03-20 21:48:41 +01:00
Miles Granger
711155d7ad
Update tests & docs with IntoPyDict::into_py_dict(py)
2019-03-20 20:04:00 +01:00
konstin
3e475b052b
Merge pull request #388 from kngwyu/pyany
...
Rename PyObjectRef with PyAny
2019-03-18 11:04:29 +01:00
konstin
09883574e5
Remove cstr macro
2019-03-18 11:01:55 +01:00
konstin
59a9d4fd9f
Merge branch 'master' into pyany
2019-03-18 01:00:26 +01:00
Alexander Niederbühl
5a3466d1d7
Fix compilation for Python 2
2019-03-17 21:06:26 +01:00
Alexander Niederbühl
f79f84a31b
Complete __dict__ support
...
Add `__dict__` slot to tp_getset of type_object. See
https://bugs.python.org/issue16272 for why this is necessary.
2019-03-17 20:31:05 +01:00
Sebastian Köln
7564f76051
fix #398
2019-03-15 15:54:14 +01:00
Alexander Niederbühl
3a6e0a2724
Remove use of INCREF
and cnt
2019-03-10 02:49:51 +01:00
Alexander Niederbühl
f68ae0cfae
Fix flaky tests
...
The tests were flaky because they took references to the empty tuple
which is a singleton. Use a unique object for each test to make them
independent.
2019-03-06 00:12:30 +01:00
kngwyu
f3fe0dfdd5
Move From<PyRef> impl to any.rs
2019-03-04 21:49:43 +09:00
kngwyu
c6a6634d8a
Move PyAny to any.rs
2019-03-04 14:23:40 +09:00
kngwyu
874d8a0835
Rename PyObjectRef with PyAny
2019-03-04 13:50:43 +09:00
konstin
dcce57f4f9
Merge pull request #369 from kngwyu/hide-nativetype
...
Make PyNativeType unsafe
2019-02-26 23:53:12 +01:00
kngwyu
498689423e
Make PyNativeType unsafe
2019-02-25 23:15:13 +09:00
kngwyu
86d239e445
Rename ToPyPointer with AsPyPointer
2019-02-24 16:20:04 +09:00
konstin
d3743fec64
Python 2
2019-02-23 18:42:40 +01:00
konstin
6cd07c369c
Simpler new and clippy fixes
2019-02-23 18:38:00 +01:00
konstin
ad590bd158
Some api improvements
2019-02-23 18:01:22 +01:00
konstin
0cd72ac213
Bump to 0.6.0-alpha.4
2019-02-20 11:30:09 +01:00
konstin
32a15bc4a9
Merge pull request #364 from PyO3/parser_refactoring
...
Big proc macro refactoring
2019-02-19 22:22:23 +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
kngwyu
8d9b4dd153
Introduce PyDictItem
2019-02-18 16:06:37 +09:00
Chris Jones
5a28a1c4f0
Add PyList.reverse()
.
2019-02-17 22:22:46 +00:00
Yuji Kanagawa
b01592e201
Merge pull request #359 from chr1sj0nes/pylist_from_iterator
...
Add support for creating `PyList` from any `IntoIterator` for known s…
2019-02-17 09:50:06 +09:00
Chris Jones
e1ffd6c352
Add support for creating PyList
from any IntoIterator
for known size.
2019-02-16 23:28:03 +00:00
Chris Jones
275e6cb7c8
Add PyList.sort()
.
2019-02-15 23:20:02 +00:00
konstin
6cb098ee12
Replace py.init_[ref|mut] with Py[Ref|Mut]::new
2019-02-13 21:52:21 +01:00
konstin
1a489d2829
Make the init methods use a value instead of a function
2019-02-13 13:59:47 +01:00
konstin
ce659941e8
Cleanup PyTypeObject and PyTypeCreate
2019-02-13 12:32:59 +01:00
konstin
c13f0708a4
Replace IntoPyTuple with IntoPy<Py<PyTuple>>
2019-02-12 22:58:23 +01:00
kngwyu
4a552a88cf
Py::new_ref -> PyRef::new
2019-02-08 23:51:14 +09:00
kngwyu
f95f4e8c14
Fix python2 test
2019-02-08 14:09:49 +09:00
kngwyu
c80134fbcd
Refactor PyRef/PyRefMut based on reviews
2019-02-08 13:58:44 +09:00
kngwyu
1d3dd2c343
Write documents of PyRef/PyRefMut
2019-02-07 15:17:27 +09:00
kngwyu
01fc1405b0
Modify AsPyRef::as_ref to return PyRef
2019-02-07 14:27:13 +09:00
kngwyu
22687c3712
Modify PyIterProtocol to take PyRefMut
2019-02-05 17:27:34 +09:00
kngwyu
76e30b5248
Remove ToPyPointer and so on from pyclass
2019-02-04 00:34:06 +09:00
konstin
56f2257e90
rust 2018 fixes
2019-02-01 16:23:34 +01:00
konstin
c71c116f29
Better trait bounds with PyMethodsProtocol
2019-02-01 16:23:34 +01:00
konstin
ae8a37cd0a
Allow 0..n pymethod blocks without specialization
2019-02-01 16:23:34 +01:00
konstin
829f35af5b
Migrate to rust 2018
2019-02-01 16:23:34 +01:00
konstin
e1154120d1
ffi2 to rust 2018
2019-02-01 16:23:34 +01:00
konstin
0495ee52d3
ffi2 to rust 2018
2019-02-01 15:25:58 +01:00
konstin
936f0153e8
Migrate to rust 2018
2019-02-01 14:23:29 +01:00
konstin
423b5d1099
Merge pull request #327 from StarryInternet/fix-cross-compilation
...
Implement Basic Cross Compile Support
2019-02-01 13:50:39 +01:00
Matt Pelland
80a6318b43
avoid signedness issues when cross compiling
2019-01-30 18:08:03 -05:00
Alexander Niederbühl
df36292523
Add $crate:: prefix in import_exception!
...
Also change doctest to use Rust 2018 macro includes.
2019-01-28 18:25:02 +01:00
Alexander Niederbühl
fbd012601e
Fix kwargs
...
kwargs was broken by a check for the number of given arguments. Only
apply this check if no arbitary number of keyword arguments are allowed
by a "**" parameter of `#[args(...)`.
Closes #318
2019-01-25 00:47:28 +01:00
Joel Höner
262b708de2
Add $crate:: prefix in create_exception!
2019-01-13 22:00:52 +01:00
konstin
5edd263371
rustfmt
2019-01-08 20:18:06 +01:00
konstin
146cb31c59
Merge pull request #317 from PyO3/issue_313
...
Fix #313
2019-01-08 19:39:25 +01:00
konstin
27520cb683
Fix #313
...
Thanks to @sumeet for the patch
2018-12-28 20:41:03 +01:00
konstin
322594128c
Merge pull request #316 from kngwyu/arraylist-fix
...
Fix memory leak in ArrayList
2018-12-28 20:31:26 +01:00
kngwyu
bbfe79fa57
Fix memory leak in ArrayList
2018-12-26 20:18:02 +09:00
kngwyu
419884c6ba
Use Box::into_raw instead of forget vec
2018-12-26 17:49:08 +09:00
ijl
984751a57f
Macro Rust doc
2018-12-21 02:07:43 +00:00
ijl
3452d6544a
ffi3 list macros, matching ffi2
2018-12-20 23:32:35 +00:00
Pavel Potoček
cbe668a0f4
Add (probably) forgotten type parameters to the pyobject_native_type_convert
macro.
...
This is needed for `rust-numpy` to compile.
2018-12-05 10:56:39 +01:00
ijl
b8a6d67e31
PyTryFrom::try_from_mut_unchecked()
2018-12-01 10:27:48 -05:00
ijl
d18ebea1c2
PyTryFrom::try_from_unchecked()
...
This allows casting a PyObjectRef to a specific type of PyObject
with no overhead.
2018-12-01 10:12:27 -05:00
konstin
790a103753
Merge pull request #291 from PyO3/exception_macros
...
Refactor the exception macros
2018-12-01 13:04:06 +01:00
kngwyu
7a83c1dc0f
Revert removing default from impl FromPyObject for &T and &mut T
2018-11-29 22:45:36 +09:00
konstin
9102f2e364
Refactor the exception macros
...
* Renamed `py_exception` to `create_exception`
* The split up of the macros makes it possible to create exception structs with bodies to mimic python exceptions' members
* Used `Once` to fix a (theoretical) race condition with the is_null check
2018-11-27 23:07:15 +01:00
kngwyu
b8f1373bec
Remove default for impl PyTryFrom for &T and &mut T
2018-11-27 14:42:09 +09:00
kngwyu
2539acc1e8
Remove default from ReturnTypeIntoPyResult
2018-11-27 14:31:00 +09:00
kngwyu
119e0abde2
Fix ArrayList::truncate
2018-11-21 16:28:26 +09:00
kngwyu
949097874f
Fix bug in ArrayList::pop_back
2018-11-21 16:00:26 +09:00
kngwyu
63ec65d5ac
Refactor ReleasePool
2018-11-21 16:00:26 +09:00
kngwyu
acbab2b3f0
Use ArrayList::truncate for borrowed pointers
2018-11-21 16:00:26 +09:00
kngwyu
4c38b21e49
Fix ArrayList::push_back
2018-11-21 16:00:26 +09:00
kngwyu
be77846979
Use LinkedList<[T; 256]> in ReleasePool
2018-11-21 16:00:26 +09:00
kngwyu
25a5b74ba6
Use linked list in ReleasePool
2018-11-21 16:00:26 +09:00
konstin
13d4d66fdb
cargo fmt
2018-11-15 21:58:22 +01:00
konstin
d618ca401a
Merge pull request #274 from kngwyu/releasepool-nonnull
...
Use NonNull in ReleasePool and add bench_dict
2018-11-15 20:27:06 +01:00
konstin
f645720fe5
Merge pull request #270 from PyO3/module
...
Treat modules as normal objects
2018-11-15 20:26:46 +01: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
42f84ff881
Add clippy to travis
2018-11-15 15:23:45 +01:00
konstin
3de622cdfd
Better explaination for the cast
2018-11-15 12:10:16 +01:00
konstin
287a168b18
Fix test failure
2018-11-15 12:08:22 +01:00
kngwyu
a73bd06c1f
Replace NonNull::new_unchecked with new().unwrap() in test
2018-11-15 13:40:35 +09:00
konstin
5f175a41cf
Make clippy happy
2018-11-14 16:49:48 +01:00
kngwyu
6d442e5969
Use NonNull in release pool
2018-11-14 15:39:07 +09:00
Yuji Kanagawa
42dbaeb913
Merge pull request #268 from kngwyu/fix-dict-iter
...
Fix PyDictIterator's segfault(for #159 )
2018-11-13 14:29:42 +09:00
kngwyu
1081ba9447
Fix import module name in test_dict_iter
2018-11-13 11:50:13 +09:00
konstin
3614f38154
Remove some transmute
2018-11-12 21:38:20 +01:00
kngwyu
faa5efc5a1
Remove unnecessary Drop for PyDictIterator
2018-11-13 01:00:15 +09:00
kngwyu
3b01b8f6ba
Review fixes
2018-11-13 00:53:06 +09:00
konstin
d1de3338d1
Refactor PyObjectAlloc
2018-11-12 16:45:57 +01:00
kngwyu
34099b33f8
Fix PyDictIterator's segfault(for #159 )
2018-11-13 00:25:54 +09:00
konstin
6cec1c39cc
Update changelog
2018-11-12 15:11:03 +01:00
konstin
aed0466915
s/PyObjectWithToken/PyObjectWithGIL/g
2018-11-12 15:10:53 +01:00
konstin
57afb51604
Remove PyToken completely; Fixes #94
2018-11-12 14:42:21 +01:00
konstin
fb2349b6ec
Remove PyToken usages from tests
2018-11-12 14:41:29 +01:00
konstin
d2ba436d6d
Remove the unnecessary type parameter PyObjectAlloc
2018-11-12 14:37:06 +01:00
konstin
9f45efebaf
Format
2018-11-11 12:25:53 +01:00
konstin
4c0ddbe61e
Merge pull request #263 from kngwyu/fix-240
...
Fix #240
2018-11-11 11:49:31 +01:00
kngwyu
bd6f923f43
Fix #240
2018-11-09 13:11:47 +09:00
ijl
50c6129607
NonNull pointer for Py, PyObject
2018-11-08 15:09:52 +00:00
konstin
52dfc0013c
Add doc example to PyIterator
2018-11-02 22:59:30 +01:00
konstin
9ffb2c617d
Run rustfmt
2018-11-02 22:59:30 +01:00
konstin
569db5fb02
Add test with generator to PyIterator
2018-11-02 22:59:30 +01:00
konstin
264f642f19
Better doc comment for PyObject
2018-10-31 11:58:19 +01:00
konstin
8b27f1e412
Get ready for rust 2018
2018-10-31 11:43:21 +01:00
konstin
dbaa2de061
Small improvements around function calling
2018-10-31 11:38:45 +01:00
kngwyu
625a3f6738
Added a test that call call_method with kwargs
2018-10-31 15:23:18 +09:00
kngwyu
607c23d287
kwargs: Option<PyDict> -> Option<&PyDict>
2018-10-31 15:07:28 +09:00
kngwyu
56b82c2f7d
Temporary hack to compile with latest nightly
2018-10-28 18:16:44 +09:00
konstin
38651a1827
Add tox config for pyo3 itself
2018-10-09 18:49:54 +02:00
konstin
4da9110489
Add tox config for word-count
2018-10-09 18:21:52 +02:00
kngwyu
9ab63f2289
Fix build with --features="num-complex"
2018-10-04 15:47:28 +09:00
konstin
5100676497
Splitted PyTypeCreate of PyTypeObject to remove specialization
2018-10-03 22:12:22 +02:00
konstin
71c584a110
De-specialize ToBorrowedObject
2018-10-03 21:04:49 +02:00
ijl
d0f79fb9fd
PyObjectProtocol::get_type_ptr()
2018-10-03 13:10:41 +00:00
ijl
38c6d942b7
Document UTF-8 FFI assumptions
2018-09-28 22:01:04 +00:00
ijl
851d2207c0
Simplify PyString, PyBytes, PyUnicode
...
PyStringData comments mention wanting to receive interpreter-
specific unicode types. I tried implementing this, but it's
more complex and slower to call libpython to fill a buffer
of u32 or such and convert that in Rust using widestring.
This implementation receives UTF-8 from PyUnicode_AsUTF8AndSize()
in python3 and PyUnicode_AsUTF8String() in python2. PyStringData
is removed as unnecessary.
The data() method on PyString, PyBytes, and PyUnicode is
replaced with as_bytes().
The python2 API changes improve the performance of
extracting unicode strings.
2018-09-28 21:47:44 +00:00
konstin
3a95d163ca
New rustfmt version
...
You might need to upgrade to the latest nightly to get the same results
2018-09-28 23:34:57 +02:00
konstin
8930bd00e0
Fix PyUnicode alias
2018-09-28 23:03:24 +02:00
konstin
0b1906b626
Merge branch 'master' into datetime-fix
2018-09-28 22:47:04 +02:00
kngwyu
f12e299f1c
Remove PyDateTime_*Types
2018-09-28 23:56:57 +09:00
Paul Ganssle
b869f09808
Add documentation to types/datetime.rs
...
This adds some light doc comments to the safe rust bindings.
2018-09-27 09:22:31 -04:00
Paul Ganssle
a528c1e877
Add documentation to the datetime ffi bindings
2018-09-27 09:20:11 -04:00
konstin
ed2739829f
Fix the other part from #231
2018-09-27 01:44:17 +02:00
konstin
78a5053b22
Fix #231
2018-09-27 01:11:31 +02:00
konstin
05874d3f1a
Fix tests
2018-09-27 01:11:31 +02:00
ijl
28bc3cf1e6
PyDict::from_sequence()
2018-09-25 14:19:23 +00:00
ijl
868e28d5ad
Fix segfault on calling unknown method
2018-09-24 02:49:52 +00:00
ijl
6a961298af
PyUnicode_AsUTF8AndSize, PyUnicode_AsUTF8 *const c_char API change
...
Noted in https://docs.python.org/3/c-api/unicode.html
2018-09-21 21:54:51 +00:00
konstin
302c099a76
Big refactoring to shrink the prelude
2018-09-21 23:34:28 +02:00
kngwyu
247da8d341
Implement pow, abs, neg for PyComplex
2018-09-21 14:48:43 +09:00
kngwyu
6b362a4654
Implement convsersion between num_complex::Complex and PyComplex
2018-09-21 14:23:01 +09:00
kngwyu
7ea875fc49
Implement Add/Sub/Mul/Div for &PyComplex
2018-09-21 12:48:42 +09:00
kngwyu
c6d588877b
Intoroduce PyComplex with minimum APIs
2018-09-20 11:52:57 +09:00
konstin
2904291b9e
Better code generation
2018-09-17 19:48:22 +02:00
konstin
10ef6cd111
Fix cfg on PyEval_InitThread to fix #219
2018-09-11 22:38:31 +02:00
konstin
d92e522243
Syn 0.15
2018-09-09 00:20:04 +02:00
konstin
ddc6313e74
#[pyclass]
objects can now be returned from rust functions
2018-09-06 18:04:13 +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
0101dc8136
Two default fn less
2018-08-31 21:11:08 +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
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
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
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
Paul Ganssle
3357fabb35
Remove 'Component' from ComponentAccess Traits
2018-08-21 18:33:32 -04:00
Paul Ganssle
f68d0932f4
Unwrap PyDateTime_CAPI function fields
...
Because the PyDateTime_CAPI is always accessed via a lazy-initialized
static reference, it is not necessary to handle the case where the
functions on the C struct have not been initialized.
2018-08-21 18:33:32 -04:00
Paul Ganssle
bcc27bd522
Change datetime constructors to use Rust Option
...
This makes it cleaner to call PyTime::new and PyDateTime::new from Rust
without needing to retrieve a Python None.
2018-08-21 18:33:32 -04:00
Paul Ganssle
bcc42315ff
Inline parameter typecasts
...
Clippy complains about the one-letter variables, but it's preferable to
do the typecasts in-line anyway.
2018-08-21 18:33:31 -04:00
Paul Ganssle
94bd0d7b6d
Relax constraints on PyDateTimeAPI initialization
...
As noted in the comments, using call_once to initialize the
PyDateTimeAPI singleton is causing deadlocks with the GIL; these
deadlocks can be avoided by falling back on CPython's own locking
behavior.
2018-08-21 18:33:28 -04:00
konstin
771d59b913
Fix another bunch of clippy lints
2018-08-21 23:51:13 +02:00
Paul Ganssle
12c20a75d9
Move datetime interface to exclusively use functions
2018-08-21 14:29:36 -04:00
Paul Ganssle
ee658de1fb
Run rustfmt after datetime changes
...
Most of the datetime related changes were made before pyo3 switched to
using rustfmt, so I ran rustfmt only on the final commit to make it
easier to rewrite history as necessary (for fixups and whatnot).
2018-08-21 14:29:36 -04:00
Paul Ganssle
996c2baec8
Add preliminary Python 2 support to datetime bindings
...
The bounds checking tests are xfail because the datetime "fast path"
constructor didn't do bounds checking until bpo-29100 was resolved in
CPython commit b67f0967386a9c90411, which was merged for Python 3.6.
This functionality should be simple to backport to earlier versions in a
future commit.
BPO issue:
https://bugs.python.org/issue29100
CPython commit:
b67f096738
2018-08-21 14:29:36 -04:00
Paul Ganssle
cd6f7295a1
Add type checking FFI bindings
2018-08-21 14:29:36 -04:00
Paul Ganssle
f701bccbdf
Add PyTime component accessors
2018-08-21 14:29:36 -04:00
Paul Ganssle
ecf3aaafb2
Add PyDateTime component accessors
2018-08-21 14:29:35 -04:00
Paul Ganssle
0b39452276
Add accessors to PyDateTime_Date
2018-08-21 14:29:35 -04:00
Paul Ganssle
08e7e0f55a
Add PyDelta component accessors
...
Adds the PyDateTime_DELTA_GET_{comp} accessors and bindings to them in
the PyDelta object.
2018-08-21 14:29:35 -04:00
Paul Ganssle
f47697e2b5
Refactor pyobject_* macros
...
See 8c26020015
for general change.
2018-08-21 14:29:35 -04:00
Paul Ganssle
f5e0785654
Add time_with_fold
2018-08-21 14:29:35 -04:00
Paul Ganssle
c49bbe4549
Add PyDateTime::from_timestamp
2018-08-21 14:29:34 -04:00
Paul Ganssle
7256bc85b7
Add PyDate::from_timestamp
2018-08-21 14:29:34 -04:00
Paul Ganssle
e8d6a4bcc0
Version qualify PyDateTimeAPI
2018-08-21 14:29:34 -04:00
Paul Ganssle
8d781cb03f
Add datetime.timedelta
2018-08-21 14:29:34 -04:00
Paul Ganssle
f45362943d
Add datetime.time
2018-08-21 14:29:34 -04:00
Paul Ganssle
d7b90c1b3a
Add datetime.datetime and switch to PyResult<Py<T>>
2018-08-21 14:29:34 -04:00
Paul Ganssle
496b879525
Add objects/datetime.rs
2018-08-21 14:29:33 -04:00
Paul Ganssle
2b74cdbd57
Add initial bindings for datetime.h
2018-08-21 14:29:31 -04:00
konstin
82129c70b4
Added an explenation that the GIL can temporarily be released even while holding a GILGuard
2018-08-20 22:56:24 +02:00
konstin
db4a2d9017
Get rid of the pyobject_extract macro
2018-08-20 22:53:43 +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
kngwyu
ff2871f325
Remove unnecessary feature gates from doc tests
2018-08-14 18:29:15 +09:00
konstin
d0ed68414a
Many small improvements
2018-08-04 19:56:59 +02:00
konstin
fe8a719ee1
Rustfmt all the things ✔️
2018-07-30 23:05:10 +02:00
konstin
83db765889
Refactoring
2018-07-30 22:56:25 +02:00
konstin
d9d1650fc4
Fix #197 - Remove tuple to dict conversions
2018-07-30 22:52:36 +02:00
konstin
27633da3b1
Merge pull request #191 from milesgranger/master
...
Python::run should return PyObjectRef result
2018-07-30 17:49:57 +02:00
Miles Granger
a13b79459f
Return PyObjectRef result from Python::run
2018-07-29 22:00:36 +02:00
kngwyu
5e1ce01251
Enable generics parameter in pyobject_native_type!
2018-07-28 14:46:00 +09:00
konstin
2627fa8a08
0.3.2
2018-07-22 21:36:18 +02:00
konstin
ff70f45071
(Hopefully) get travis to build the guide for tags
2018-07-18 23:28:14 +02:00
konstin
3adcac6e61
Replace concat_idents with mashup
2018-07-18 23:17:05 +02:00
konstin
7d4381fc5d
Fixed scoping bug in pyobject_native_type that would break rust-numpy
2018-07-18 14:06:17 +02:00
konstin
d59bebcc38
Upgrade from proc_macro to use_extern_macros
2018-07-18 13:08:05 +02:00
konstin
eb613c64d9
Add repr(transparent) where applicable
2018-07-13 18:10:09 +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
68c14a5707
Merge branch 'master' of https://github.com/PyO3/pyo3
2018-07-03 21:55:43 +02:00
konstin
28d6c9986c
Fix clippy errors
2018-07-03 21:32:16 +02:00
konstin
43eb5fa490
Rename prepare_pyo3_library to init_once
2018-07-03 21:12:57 +02:00
konstin
6645708e4f
Get rid of #[py*] methods
2018-07-03 20:42:02 +02:00
kngwyu
7d7c1ede49
Modify pyobject_native_type to take expr
...
To use deref(*) expression
2018-07-02 16:31:36 +09:00
kngwyu
41f4d1d673
$crate::std to ::std
...
So that we can use these macros in outer crates
2018-07-02 00:06:08 +09:00
kngwyu
70e1879d59
Make python pub
2018-07-02 00:06:01 +09:00
kngwyu
3ec49b586f
Modify pyobject_native_type to take path instead of ident
...
So that we can use this macro outside this crate.
2018-07-01 23:51:56 +09:00
konstin
f9ff7cd465
Ignore test because of a docmatic bug
...
See https://github.com/assert-rs/docmatic/issues/4
2018-06-15 15:59:22 +02:00
konstin
1301394264
Fix c string conversion in python 2
2018-06-15 15:57:59 +02:00
konstin
7a52bf647c
Apply fixes by Philip Molloy
2018-06-14 16:03:05 +02:00
konstin
54b09c704b
Fix -Z minimal-versions
2018-06-06 21:18:42 +02:00
kngwyu
66183d4683
Move common functions and macros from num2&num3 to num_common
2018-06-06 01:31:40 +09:00
kngwyu
0b964b503f
Rename args of _PyLong_FromByteArray/_PyLong_AsByteArray
2018-06-05 23:03:53 +09:00
kngwyu
9ffbae30ab
Add 128bit integer support for python2
2018-06-02 22:10:13 +09:00
kngwyu
a87ddeab21
Add 128bit integer support for python3
2018-06-02 22:08:29 +09:00
kngwyu
4795a35143
impl IntoPyDictPointer for IntoIterator<Item=(K, V)>
...
this commit has 2 purposes:
1. Avoid duplication of implementation(for BTreeMap & HashMap)
2. Enable conversion from Vec<(K, V)> to PyDict
2018-05-30 16:26:23 +09:00
Kevin Phillips
9544adaf1d
Marked from_code on PyModule to only work with Python 3. It could work with Python 2 if you call, for example, Py_CompileStringFlags and pass std::prt::null_mut() as the last argument and when calling PyImport_ExecCodeModuleEx passing mutable pointers for the first and last arguments. I also added a test for this to test_module.rs
2018-05-21 16:03:21 +02:00
Kevin Phillips
1b1121e558
Added a function to PyModule to load a module from a string of Python
2018-05-21 16:03:20 +02:00
konstin
c42b71bc55
Fix python2
2018-05-19 17:42:40 +02:00
konstin
314a4a2b3e
Some more documentation work
2018-05-19 17:27:26 +02:00
konstin
46b9bd6a9f
Merge pull request #155 from PyO3/pyobject_macros
...
Refactor and Export Pyobject_* macros
2018-05-13 14:54:57 +02:00
konstin
5717463daf
Merge pull request #154 from konstin/capybara
...
Relax return types and add functions
2018-05-12 20:43:40 +02:00
Martin Larralde
416a7fd8d3
Export PyUnicode in Python3 as well
2018-05-08 12:54:21 +02:00
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
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
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
cc352dade3
Fix exception
tests failing with Python 2
2018-05-02 13:54:59 +02:00
Martin Larralde
b80b85539b
Remove occurrences of py::methods
and py::class
2018-05-01 23:17:42 +02:00
konstin
0880ac166c
Merge master
2018-05-01 20:41:35 +02:00
konstin
d0c42dfcc1
Fix compilation on nightly
2018-05-01 15:44:38 +02:00