Commit Graph

396 Commits

Author SHA1 Message Date
Adam
31fd2936c5 Merge pull request #796 from RustPython/dict_iters
Dict iters
2019-04-09 11:11:14 +01:00
Adam
39042e6475 Merge pull request #805 from Ryex/ryex-list.__setitem__
implement  list.__setitem__ with slice and int indexing
2019-04-09 10:24:48 +01:00
Rachel Powers
4c50defa37 extend PyIterable::try_from_object to work with sequences 2019-04-08 13:46:23 -06:00
Adam Kelly
2d127b9834 Use macro to generate full set of views and iterators. 2019-04-08 12:11:59 +01:00
Adam Kelly
5c4755ffd7 Separate iterators for items/keys/values. 2019-04-08 11:08:45 +01:00
Adam Kelly
9c32de954b Add iterator for dictionary keys. 2019-04-08 10:35:09 +01:00
ben
5fd3cf2bcd Implemented keyword only defaults 2019-04-07 07:38:42 +12:00
Adam Kelly
7b2d92f495 Delete DictProtocol. impl ItemProtocol for PyDictRef. 2019-04-06 10:15:29 +01:00
Adam Kelly
f354f4ce02 Move contains_key to PyDictRef. 2019-04-05 16:18:10 +01:00
Adam Kelly
ec94168a15 Remove objdict::get_key_value_pairs. 2019-04-05 16:16:55 +01:00
Adam Kelly
b943f4a4bb Historic real proper dictionary support. 2019-04-05 09:50:31 +01:00
Adam Kelly
7438b0685c Changes suggested by code review. 2019-04-05 09:50:31 +01:00
Adam Kelly
c8eda3733d Eliminate ctx.set_attr. 2019-04-05 09:50:31 +01:00
Adam Kelly
bce4f1e483 Simplify/shrink the dict interface. 2019-04-05 09:39:59 +01:00
coolreader18
a77b3489b7 Merge pull request #764 from RustPython/coolreader18/py_class-proc-macro
Add #[py_class] attribute proc macro
2019-04-01 23:17:38 -05:00
Adrian Wielgosik
c918e9d5d3 Split iterators into separate types 2019-04-01 19:45:14 +02:00
Adrian Wielgosik
bbfca26b27 Move PyIteratorValue to objiter.rs 2019-04-01 19:45:10 +02:00
coolreader18
53b46a7b32 Split some of #[pyclass] off into #[pyimpl] 2019-03-31 17:23:33 -05:00
coolreader18
ff85838556 Add #[py_class] attribute proc macro 2019-03-29 00:16:34 -05:00
Adam Kelly
4a5592d461 Change types inside Scope to PyDictRef. 2019-03-26 15:16:49 +00:00
Joey Hain
8bdc766bed Use name field directly 2019-03-25 19:32:58 -07:00
Joey Hain
6474a4a6ef Remove objtype::get_type_name() 2019-03-25 19:18:07 -07:00
Joey Hain
cc4f3fdb40 Clean up TypeProtocol 2019-03-25 19:18:01 -07:00
Adam Kelly
bbb7162472 Various dictionary changes.
* vm.ctx.new_dict returns a PyDictRef
* Special case for module goes away.
* Instances get a real dictionary.
2019-03-25 16:37:20 +00:00
Adam Kelly
3562b8f59c Store class attributes inside PyClass struct. 2019-03-25 11:21:01 +00:00
Adrian Wielgosik
e39df6daef Basic implementation of T.__subclasses__().
Ideally, the weak list should be updated whenever a type is removed,
and the list shouldn't be a Vec, but this should be good enough for
starters.
2019-03-24 12:49:04 +01:00
Joey
fbd0860f1b Merge pull request #740 from skinny121/into_object_cleanup
Use specific PyRef where possible - code object/type_new_class
2019-03-23 21:28:39 -07:00
Joey
84d47d21cf Rename to just Either 2019-03-23 17:51:12 -07:00
ben
db8e648646 Make PyFunction.code a PyCodeRef, PyGenerator.frame a FrameRef, and
other improvements to increase use of specific ref types.
2019-03-24 13:41:37 +13:00
Joey
3c15d892c5 Avoid some cloning 2019-03-23 15:57:06 -07:00
Joey
e5066da94e Merge remote-tracking branch 'origin/master' into joey/range-getitem-either 2019-03-23 15:50:12 -07:00
Joey
b6f1ecdb4b Fix example 2019-03-23 15:49:31 -07:00
Joey
a5558e0e32 Introduce Either extractor and convert range.__getitem__ 2019-03-23 15:05:12 -07:00
ben
faf1925a25 Remove usages of PyClassRef::from_pyobj 2019-03-24 10:51:52 +13:00
ben
6fa059fd6c Make PyObject.typ a PyClassRef 2019-03-24 10:51:52 +13:00
Joey
2aee2981e3 Remove FromPyObjectRef, replace with downcast 2019-03-23 09:38:03 -07:00
Adam Kelly
441560b691 Delete Attribute Protocol. 2019-03-23 11:29:22 +00:00
Adam Kelly
386f90fa25 Remove PyContext.get_attr. 2019-03-23 11:29:22 +00:00
Adam Kelly
c8bdb249b0 Remove attribute protocol from wasm. 2019-03-23 10:11:39 +00:00
ben
983cb9e886 Fix Never::class signature 2019-03-23 19:35:42 +13:00
ben
ad584df120 Allow context.set_attr to accept PyRef values in addition to PyObjectRef 2019-03-23 19:32:31 +13:00
ben
c1d5ce715f Change isinstance/issubclass to accept PyClassRef instead of PyCObject.
Also changed PyValue::class to return a PyClassRef.
2019-03-23 19:32:31 +13:00
Joey
b7fa08eb36 Merge pull request #722 from RustPython/joey/unboxed-payload-2
Remove Box from PyObject
2019-03-22 20:29:36 -07:00
Joey Hain
c06b1c70df Fix merge issue 2019-03-22 18:05:24 -07:00
Joey Hain
7b4b0979f4 Merge remote-tracking branch 'origin/master' into joey/unboxed-payload-2 2019-03-22 18:04:15 -07:00
Joey Hain
bb161a5a67 Remove Box from PyObject 2019-03-22 18:04:09 -07:00
ben
5c7812734d Use more specific ref type than PyObjectRef in PyContext 2019-03-23 13:00:12 +13:00
coolreader18
a9051ab462 Convert all &mut VirtualMachine to &VirtualMachine 2019-03-22 01:48:14 -05:00
Joey
90db9812e5 Merge pull request #707 from RustPython/joey/proper-pyref-display
Fix the Display impl for PyRef
2019-03-21 09:32:02 -07:00
Adam Kelly
e66b5078a8 Introduce TryIntoRef<T> to make vm.get_attribute more usable. 2019-03-21 10:58:32 +00:00