Trent Houliston
a3603e6df0
Simplify redundant code, conform to style suggestions, improve logic
2016-09-28 01:01:44 +10:00
Trent Houliston
253e41ccad
Relax constraints on testing to ensure they work in all cases.
2016-09-28 00:59:21 +10:00
Wenzel Jakob
b0c4444687
format_descr constexpr tweak for MSVC by @jagerman ( fixes #416 )
2016-09-27 11:23:59 +02:00
Wenzel Jakob
0a014e9135
Merge pull request #425 from dean0x7d/accessors
...
Make the accessor interface more complete
2016-09-26 20:35:24 +02:00
Dean Moldovan
2bab5793f7
Later assignments to accessors should not overwrite the original field
...
`auto var = l[0]` has a strange quirk: `var` is actually an accessor and
not an object, so any later assignment of `var = ...` would modify l[0]
instead of `var`. This is surprising compared to the non-auto assignment
`py::object var = l[0]; var = ...`.
By overloading `operator=` on lvalue/rvalue, the expected behavior is
restored even for `auto` variables.
2016-09-23 02:00:01 +02:00
Dean Moldovan
ea763a57a8
Extend tuple and list accessor interface
2016-09-23 02:00:01 +02:00
Dean Moldovan
242b146a51
Extend attribute and item accessor interface using object_api
2016-09-23 02:00:01 +02:00
Dean Moldovan
865e43034b
Make attr and item accessors throw on error instead of returning nullptr
...
This also adds the `hasattr` and `getattr` functions which are needed
with the new attribute behavior. The new functions behave exactly like
their Python counterparts.
Similarly `object` gets a `contains` method which calls `__contains__`,
i.e. it's the same as the `in` keyword in Python.
2016-09-23 01:40:22 +02:00
Dean Moldovan
37e22e436e
Move common object functions into object_api mixin
2016-09-23 01:38:35 +02:00
Wenzel Jakob
2d9220f09d
Merge pull request #423 from drufat/a
...
Use consistent indentation and typenames in numpy vectorize.
2016-09-22 23:57:49 +02:00
Dzhelil Rufat
c250ee5146
Use more consistent indentation and typenames names.
2016-09-22 14:51:41 -07:00
Wenzel Jakob
1ee4128cfe
Merge pull request #420 from jagerman/doc-typos
...
Fix minor documentation spelling mistakes
2016-09-21 19:41:30 +02:00
Jason Rhinelander
20ef62656f
Fix minor documentation spelling mistakes
2016-09-21 13:39:02 -04:00
Wenzel Jakob
d4285a6dda
..one more typo
2016-09-21 19:30:23 +02:00
Wenzel Jakob
514371ebec
typo fixes (spotted by @TheGhostHuCodes)
2016-09-21 19:29:19 +02:00
Wenzel Jakob
bc622dc936
Merge pull request #418 from dean0x7d/fix-missing-test
...
Fix missing smart_ptr test
2016-09-20 12:31:46 +02:00
Dean Moldovan
568ec6b35a
Fix missing smart_ptr test
2016-09-20 11:52:25 +02:00
Wenzel Jakob
d922dffec4
Merge pull request #410 from wjakob/mi
...
WIP: Multiple inheritance support
2016-09-19 18:55:05 +02:00
Wenzel Jakob
e72a676b72
More verbose error messages when PyType_Ready fails
2016-09-19 13:45:34 +02:00
Wenzel Jakob
c1fc27e2b5
use detail::enable_if_t everywhere
2016-09-19 13:45:34 +02:00
Wenzel Jakob
8e5dceb6a6
Multiple inheritance support
2016-09-19 13:45:31 +02:00
Wenzel Jakob
bad589a477
deprecated py::base<>, added a macro for improved readability
2016-09-19 13:43:47 +02:00
Wenzel Jakob
e99ebaedcf
nicer error message for invalid function arguments
2016-09-19 13:43:43 +02:00
Wenzel Jakob
7962f30d70
set possible build types in cmake build system
2016-09-17 12:58:18 +02:00
Jason Rhinelander
b3794f1087
Added py::register_exception for simple case ( #296 )
...
The custom exception handling added in PR #273 is robust, but is overly
complex for declaring the most common simple C++ -> Python exception
mapping that needs only to copy `what()`. This add a simpler
`py::register_exception<CppExp>(module, "PyExp");` function that greatly
simplifies the common basic case of translation of a simple CppException
into a simple PythonException, while not removing the more advanced
capabilities of defining custom exception handlers.
2016-09-16 08:04:15 +02:00
Trent Houliston
ad3bb9bbab
Include the cmath header for std::lround.
...
Fix spaces before parens for style guide.
2016-09-14 19:27:53 +10:00
Trent Houliston
2f597687e7
Changed non system clocks to be time deltas
...
Allowed durations and non system clocks to be set from floats.
2016-09-13 20:40:28 +10:00
Trent Houliston
207d0da31c
Move the python datetime header into the chrono header
2016-09-13 19:58:05 +10:00
Trent Houliston
0ee97dd6d0
Only import PyDateTime if we have to
2016-09-13 19:58:05 +10:00
Trent Houliston
8fe2fa7eba
Increase the amount of time to execute the functions to 50ms
2016-09-13 19:58:05 +10:00
Trent Houliston
352149e892
Refactor the chrono cast functions into chrono.h.
...
Add unit tests and documentation for the chrono cast.
2016-09-13 19:58:05 +10:00
Trent Houliston
6ddfd1e090
Add in casts for c++11s chrono classes to pythons datetime
2016-09-13 19:41:48 +10:00
Wenzel Jakob
29b5064e9c
Merge pull request #411 from jagerman/debug-build-and-fix
...
Debug build and fix
2016-09-13 09:27:09 +09:00
Jason Rhinelander
4a4fb396e7
Fix build under debug mode
...
Take load_type by nested type_caster template arguments instead of by
full type_caster type.
2016-09-12 16:21:40 -04:00
Jason Rhinelander
5b4968df3a
Make the gcc6/python 3.5 build use debug mode
2016-09-12 16:04:31 -04:00
Wenzel Jakob
591a9999c2
Merge pull request #409 from jagerman/dynamic-cast-test
...
Added a test to detect invalid RTTI caching
2016-09-12 08:17:52 +09:00
Jason Rhinelander
0e489777ff
Added a test to detect invalid RTTI caching
...
The current inheritance testing isn't sufficient to detect a cache
failure; the test added here breaks PR #390 , which caches the
run-time-determined return type the first time a function is called,
then reuses that cached type even though the run-time type could be
different for a future call.
2016-09-11 18:41:28 -04:00
Wenzel Jakob
f22683806e
Merge pull request #400 from jagerman/add-ref-virtual-macros
...
Add a way to deal with copied value references
2016-09-12 06:32:39 +09:00
Jason Rhinelander
3e4fe6c0a8
Store a static type_caster rather than the basic type
2016-09-11 12:17:41 -04:00
Jason Rhinelander
f3f53e2b03
Removed unused/unwanted public ref_cast
2016-09-11 11:36:33 -04:00
Wenzel Jakob
b2eda9ac7c
Merge pull request #408 from dean0x7d/exc-destructors
...
Fix Python C API calls in desctuctors triggered by error_already_set
2016-09-11 21:33:33 +09:00
Wenzel Jakob
e3c297f03e
Merge pull request #407 from wjakob/fix_iterator
...
parameterize iterators by return value policy (fixes #388 )
2016-09-11 20:02:32 +09:00
Jason Rhinelander
7dfb932e70
Update OVERLOAD macros to support ref/ptr return type overloads
...
This adds a static local variable (in dead code unless actually needed)
in the overload code that is used for storage if the overload is for
some convert-by-value type (such as numeric values or std::string).
This has limitations (as written up in the advanced doc), but is better
than simply not being able to overload reference or pointer methods.
2016-09-11 01:21:53 -04:00
Jason Rhinelander
116d37c9ba
Use 'override' rather than 'virtual' for overrides
...
Minor change that makes this example more compliant with the C++ Core
Guidelines.
2016-09-11 01:16:19 -04:00
Jason Rhinelander
6eca083e4c
Fix doc typo
...
"trampoline" is doubled in the first sentence.
2016-09-11 01:16:19 -04:00
Wenzel Jakob
f217c04195
Merge pull request #402 from aldanor/feature/numpy-c-api
...
Add array methods via C API
2016-09-11 08:34:04 +09:00
Ivan Smirnov
aca6bcaea5
Add tests for array data access /index methods
2016-09-10 16:42:17 +01:00
Ivan Smirnov
f2a0ad5855
array: add direct data access and indexing methods
2016-09-10 16:24:00 +01:00
Ivan Smirnov
91b3d681ad
Expose some dtype/array attributes via NumPy C API
2016-09-10 16:24:00 +01:00
Dean Moldovan
f69071ca4b
Make it easier to add new binding of builtin Python exceptions
2016-09-10 16:14:36 +02:00