Damien George
f5172af1c4
py/builtinhelp: Implement help('modules') to list available modules.
...
This is how CPython does it, and it's very useful to help users discover
the available modules for a given port, especially built-in and frozen
modules. The function does not list modules that are in the filesystem
because this would require a fair bit of work to do correctly, and is very
port specific (depending on the filesystem).
2017-01-22 12:12:54 +11:00
Damien George
9de91914fb
py: Move weak-link map to objmodule.c, and expose module maps as public.
2017-01-22 11:59:29 +11:00
Damien George
9f04dfb568
py: Add builtin help function to core, with default help msg.
...
This builtin is configured using MICROPY_PY_BUILTINS_HELP, and is disabled
by default.
2017-01-22 11:56:16 +11:00
Paul Sokolovsky
e6ab43e2c0
py/objint_longlong: Add stub for mp_obj_int_from_bytes_impl().
...
To be implemented later.
2017-01-21 20:15:05 +03:00
Paul Sokolovsky
bec7bfb29d
py/objint: from_bytes(): Implement "byteorder" param and arbitrary precision.
...
If result guaranteedly fits in a small int, it is handled in objint.c.
Otherwise, it is delegated to mp_obj_int_from_bytes_impl(), which should
be implemented by individual objint_*.c, similar to
mp_obj_int_to_bytes_impl().
2017-01-21 20:14:18 +03:00
Paul Sokolovsky
1b42f5251f
py/mpz: Implement mpz_set_from_bytes() as a foundation for int.from_bytes().
2017-01-21 20:07:50 +03:00
Damien George
e873243aa3
py/objint_mpz: Refactor switch-statement to remove unreachable default.
2017-01-19 23:35:45 +11:00
Damien George
94a587a750
py/formatfloat: Remove unreachable code.
...
The if-block that this unreachable code is in has a condition "f>=5" so
"fp_isless1(f)" will always fail.
2017-01-19 23:32:16 +11:00
Paul Sokolovsky
af90461931
py/binary: mp_binary_get_size: Raise error on unsupported typecodes.
...
Previouly, we had errors checked in callers, which led to duplicate code
or missing checks in some places.
2017-01-17 22:53:06 +03:00
Damien George
d7150b09d7
py/runtime: Refactor default case of switch to remove assert(0).
2017-01-17 17:03:56 +11:00
Damien George
5bea080737
py/objexcept: Replace if-cond and assert(0) with simple assert.
2017-01-17 17:03:16 +11:00
Damien George
f51f22dd42
py/emitnative: Remove assert(0)'s or replace with mp_not_implemented.
2017-01-17 17:02:21 +11:00
Damien George
86e942309a
py/parse: Refactor code to remove assert(0)'s.
...
This helps to improve code coverage. Note that most of the changes in
this patch are just de-denting the cases of the switch statements.
2017-01-17 17:00:55 +11:00
Damien George
239f920299
py/objgenerator: Don't raise RuntimeError if GeneratorExit ignored.
...
In this case it's allowed to be ignored.
2017-01-17 00:16:56 +11:00
Damien George
681994638b
py/objgenerator: When throwing an object, don't make an exc instance.
...
Arguments to throw() for generators don't need to be exceptions.
2017-01-17 00:14:14 +11:00
Damien George
aeb2655073
py/runtime: Fix handling of throw() when resuming generator.
...
If GeneratorExit is injected as a throw-value then that should lead to
the close() method being called, if it exists. If close() does not exist
then throw() should not be called, and this patch fixes this.
2017-01-17 00:10:49 +11:00
Damien George
40863fce6f
py/runtime: Refactor assert(0) to improve coverage.
2017-01-17 00:09:56 +11:00
Damien George
d23834bc96
py/builtinimport: Remove unreachable code and change obj-import comment.
2017-01-16 16:41:43 +11:00
Damien George
63e291de70
py/builtinimport: Raise ValueError for bad relative import, per CPython.
2017-01-16 16:21:04 +11:00
Damien George
b528e9a428
py/builtinimport: Fix bug when importing names from frozen packages.
...
The commit d9047d3c8a introduced a bug
whereby "from a.b import c" stopped working for frozen packages. This is
because the path was not properly truncated and became "a//b". Such a
path resolves correctly for a "real" filesystem, but not for a search in
the list of frozen modules.
2017-01-08 20:17:23 +11:00
Damien George
343b4189b0
py/mkrules.mk: Add MPY_CROSS_FLAGS option to pass flags to mpy-cross.
...
So that ports can pass their own custom options to mpy-cross.
2017-01-05 15:51:36 +11:00
Damien George
3f9c45efd1
py/asmarm: Fix assembler's PASS_EMIT constant name.
2017-01-03 15:40:50 +11:00
Damien George
afc5063539
py/unicode: Comment-out unused function unichar_isprint.
2016-12-28 17:50:10 +11:00
Damien George
ea6a958393
py/objint: Simplify mp_int_format_size and remove unreachable code.
...
One never needs to format integers with a base larger than 16 (but code
can be easily extended beyond this value if needed in the future).
2016-12-28 12:46:20 +11:00
Damien George
44bf8e1f2b
py/mpprint: Add assertion for, and comment about, valid base values.
2016-12-28 12:45:33 +11:00