Damien George
9b7a8ee8f1
py: Fix mult by negative number of tuple, list, str, bytes.
Multiplication of a tuple, list, str or bytes now yields an empty
sequence (instead of crashing). Addresses issue #799
Also added ability to mult bytes on LHS by integer.
10 years ago
Damien George
bb91f1195a
py: Improve range: add len, subscr, proper print.
Can now index ranges with integers and slices, and reverse ranges
(although reversing is not very efficient).
Not sure how useful this stuff is, but gets us closer to having all of
Python's builtins.
10 years ago
Damien George
4c03b3a899
py: Implement builtin reversed() function.
reversed function now implemented, and works for tuple, list, str, bytes
and user objects with __len__ and __getitem__.
Renamed mp_builtin_len to mp_obj_len to make it publically available (eg
for reversed).
10 years ago
Paul Sokolovsky
9749b2fb0d
objstr: Make sure that bytes are indexed as bytes, not as unicode.
Fixes #795 .
10 years ago
Paul Sokolovsky
5f930337bc
objarray: Implement equality testing between arrays and other buffers.
10 years ago
Damien George
539681fffd
tests: Rename test scripts, changing - to _ for consistency.
From now on, all new tests must use underscore.
Addresses issue #727 .
10 years ago
Damien George
0182385ab0
py: Automatically ake __new__ a staticmethod.
Addresses issue #622 .
10 years ago
Paul Sokolovsky
7a2f166949
modstruct: Fix alignment handling issues.
Also, factor out mp_binary_get_int() function.
11 years ago
Paul Sokolovsky
2ec38a17d4
objstr: Be 8-bit clean even for repr().
This will allow roughly the same behavior as Python3 for non-ASCII strings,
for example, print("<phrase in non-Latin script>".split()) will print list
of words, not weird hex dump (like Python2 behaves). (Of course, that it
will print list of words, if there're "words" in that phrase at all, separated
by ASCII-compatible whitespace; that surely won't apply to every human
language in existence).
11 years ago
Paul Sokolovsky
f4bf065dac
tests: Add testcases for "complicated" args to generator functions.
11 years ago
Damien George
58cbb4d661
py: Implement __contains__ special method.
11 years ago
Paul Sokolovsky
195de3247b
objtype: Fix passing of class param to inherited classmethods.
This is getting more and more tangled, but that's old news.
11 years ago
Damien George
9e951498b2
tests: Add more tests for default keyword-only args.
11 years ago
Damien George
c06427c019
tests: Fix default arg test.
11 years ago
Paul Sokolovsky
b4efac14cd
py: Make sure getattr() works with non-interned strings (by interning them).
11 years ago
Damien George
f0778a7ccb
py: Implement default keyword only args.
Should finish addressing issue #524 .
11 years ago
Dave Hylands
b69f9fa31f
Fix str.modulo when precision is specified.
11 years ago
Chris Angelico
daf973ae00
Change comments (mainly URLs) to no longer specifically say Python 3.3
11 years ago
Paul Sokolovsky
75ce9256b2
objstr: Implement "%(key)s" % {} formatting for strings and dicts.
Also, make sure that args to "*" format specifiers are bounds-checked
properly and don't lead for segfaults in case of mismatch.
11 years ago
Damien George
bcb6ca4d5e
py: Implement full behaviour of dict.update(), and dict().
Add keyword args to dict.update(), and ability to take a dictionary as
argument.
dict() class constructor can now use dict.update() directly.
This patch loses fast path for dict(other_dict), but is that really
needed? Any anyway, this idiom will now re-hash the dictionary, so is
arguably more memory efficient.
Addresses issue #647 .
11 years ago
Damien George
5b5562c1d1
py: Fix stack underflow with optimised for loop.
11 years ago
Damien George
049a01d148
tests: Add another test for break-from-for-loop.
11 years ago
Kim Bauters
a3f4b83018
add methods isspace(), isalpha(), isdigit(), isupper() and islower() to str
11 years ago
Paul Sokolovsky
ccd0e0afcd
tests: Add test for break in for.
For #635 / 25c84643b6
.
11 years ago
Paul Sokolovsky
8827682b35
objstr: *strip(): If nothing is stripped, don't create dup string.
11 years ago
Paul Sokolovsky
bcdffe53c6
objstr: *strip(): Fix handling of one-char subject strings.
11 years ago
Damien George
f55cf10101
py: Implement bignum '&' with negatives on lhs and rhs.
Needs proper coverage testing. Doesn't implement -ve & -ve.
Addresses issue #611 .
11 years ago
Paul Sokolovsky
d07bf029b7
tests: Add small testcase for 3-arg slices.
11 years ago
Paul Sokolovsky
5fd5af98d0
objlist: Implement support for arbitrary (3-arg) slices.
11 years ago
Paul Sokolovsky
2705f4c782
objlist: Implement growing slice assignment.
This means that complete slice operations are supported for lists (but not
for bytearray's and array.array's).
11 years ago
Paul Sokolovsky
d098c6bf85
objstr: Implement .endswith().
11 years ago
Paul Sokolovsky
806ea1f6ca
py: Initial attempts to actually allow implementing __new__ in Python.
Caveat is that __new__ should recurse to base class __new__, and ultimately,
object.__new__ is what handles instance allocation.
11 years ago
Paul Sokolovsky
a8408a8abe
objtype: super: Fall back to "object" lookup as last resort.
Also, define object.__init__() (semantically empty, purely CPython compat
measure). Addresses #520 .
11 years ago
Paul Sokolovsky
66ab571cca
tests: Update subclass-native2.py for __new__/__init__ refactor.
Now case of subclassing tuple works, and list is broken, see comments.
11 years ago
Paul Sokolovsky
c18ef2a9dd
objstr: startswith(): Accept optional "start" arg.
11 years ago
Paul Sokolovsky
70328e419a
py: Implement more complete bytes comparison handling.
11 years ago
Paul Sokolovsky
ad3baec12f
sequence: Fix yet another case of improper sequence comparison.
This time, in mp_seq_cmp_bytes(). How many more cases are still lurking?
11 years ago
Paul Sokolovsky
2a27365854
objstr.c: Partial implementation of .rsplit().
sep=None is TODO.
11 years ago
Paul Sokolovsky
7074f25768
tests/int-long.py: Try to expose issue with recent "&" optimization.
11 years ago
Damien George
561e425903
py: Fix bug in mpz_and function.
Addresses issue #610 .
11 years ago
Paul Sokolovsky
df94b717b4
modstruct: Implement count specifier for strings (e.g. "100s").
Infra for counts of other types is there, need last mile to be implemented.
11 years ago
Antonin ENFRUN
1b901c320b
tests: create result file for test/basics/memoryerror.py .
On Mac OS "python3 test/basics/memoryerror.py" never runs out of memory, the process is frozen by the os before.
11 years ago
Paul Sokolovsky
5ebd5f0f19
objstr: Slice indexing: support bytes properly.
11 years ago
Paul Sokolovsky
bfb8819c0c
objstr: Make .split() support bytes.
11 years ago
Paul Sokolovsky
5e5d69b35e
objstr: Make .join() support bytes.
11 years ago
Paul Sokolovsky
ff30666c69
py: Add basic implementation of hasattr() function.
11 years ago
Damien George
1d34e32431
py: frozenset() creates an empty frozenset.
11 years ago
Paul Sokolovsky
eea0118654
py: Give up and make mp_obj_str_get_data() deal with bytes too.
This is not fully correct re: error handling, because we should check that
that types are used consistently (only str's or only bytes), but magically
makes lot of functions support bytes.
11 years ago
Paul Sokolovsky
b2d4fc06fc
objstr: Make *strip() accept bytes.
11 years ago
Paul Sokolovsky
ce6c10172b
tests: Really fix import.
11 years ago