| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
* BUG: properly handle tuple keys in NpZFile.__getitem__
* TST: test tuple rendering specifically.
---------
Co-authored-by: Ross Barnowski <rossbar@berkeley.edu>
|
|
|
|
|
|
|
|
|
|
|
| |
Improves the repr to include information about the arrays contained, e.g.:
>>> npzfile = np.load('arr.npz')
>>> npzfile
NpzFile 'arr.npz' with keys arr_0, arr_1, arr_2, arr_3, arr_4...
closes #23319
Co-authored-by: Ross Barnowski <rossbar@berkeley.edu>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, the following code:
```
import numpy as np
with open('foo.npy', 'wb') as f:
for i in range(np.random.randint(10)):
np.save(f, 1)
with open('foo.npy', 'rb') as f:
while True:
np.load(f)
```
Will raise:
```
ValueError: Cannot load file containing pickled data when allow_pickle=False
```
While there is no pickled data in the file.
|
| |
|
|
|
|
| |
Not new things, but in touched lines...
|
|
|
|
|
|
|
|
| |
In some cases, the replacement is clearly not what is intended,
in those (where setup was called explicitly), I mostly renamed
`setup` to `_setup`.
The `test_ccompile_opt` is a bit confusing, so left it right now
(this will probably fail)
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since Python 3.8, the default start method for multiprocessing has been changed from fork to spawn on macOS
The default start method is still fork on other Unix platforms[1], causing inconsistency on memory sharing model
It will cause a memory-sharing problem for the test test_large_zip on macOS as the memory sharing model between spawn and fork is different
The fix
Change the start method for this test back to fork under this testcase context
In this test case context, the bug that caused default start method changed to spawn for macOS will not be triggered
It is context limited, so this change will not affect default start method other than test_large_zip
All platforms have the same memory sharing model now
After the change, test_large_zip is passed on macOS
https://docs.python.org/3/library/multiprocessing.html#contexts-and-start-methods
Closes gh-22203
|
| |
|
|
|
|
|
|
| |
PyPy has a small bug with error formatting, so these cause it to
crash. Simply skip the tests on old PyPy versions for now.
(Matti fixed the issue long ago, just waiting for a new PyPy release :))
|
|
|
|
|
| |
Also fix style a bit to silence linter (hopefully), removes some
black style, but I am not too opinionated about that :)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This also adds two basic new tests around files/strings containing
the \0 character (prooving that we handle that gracefully).
Also adds tests for:
* the `_` thousands delimiter (should fail, but doesn't for float128
right now)
* Failure modes when the number of rows changes (negative specifically)
Many of these tests came originally from Warren Weckesser and others
were added by Ross Barnowsky:
Co-authored-by: Warren Weckesser <warren.weckesser@gmail.com>
Co-authored-by: Ross Barnowski <rossbar@berkeley.edu>
|
| |
|
| |
|
| |
|
|
|
|
| |
And remove one silly leftover struct member that was unused
|
| |
|
|
|
|
|
|
| |
This also slightly cleans up the empty-line handling: previously
we sometimes just had some extra empty-lines that just effectively
never mattered
|
|
|
|
|
|
|
|
| |
Of course to actually use that many columns you need A LOT of memory
right now. Each field stores at least a UCS4 NUL character, but
the field is padded enough to require 16 bytes.
We always parse a full row, so that requires 20 bytes per field...
(i.e. 32 GiB RAM is not enough to test this :)).
|
| |
|
|
|
|
| |
If a memory error happens, we should at least not crash the interpreter
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Also correct exception message.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Add test for parsing scientific notation.
- Add multiple-char comment test.
- Port over tests for structured dtypes.
- Add tests for exceptions on skiprows/max_rows.
- port over ndmin tests.
- Make structured data reusable, add unpack tests.
- Port over delimiter tests.
- Port over maxrows test w/ various dtypes.
- Port over test of exception msg on parse failure.
- Port over test for converters w/neg indices.
- Port over usecols tests
- Port over unicode tests.
- Port over more converter tests.
- Port over test for large rows.
- Port over test for string-len discovery.
- Port over float conversion accuracy test.
- Port over bool test.
- Add test for implicit float->int conversion.
- Port over complex parsing tests.
- Port over tests for reading from generator.
- Port over object cleanup test.
- Port over bytes incompat test.
- Port over converters tests.
Co-authored-by: Warren Weckesser <warren.weckesser@gmail.com>
Co-authored-by: Sebastian Berg <sebastian@sipsolutions.net>
|
|
|
|
|
|
|
|
| |
This makes it strict that newline characters _within_ a single
line (which is only possible if the user passes in a manual iterator
of strings), is considered weird and rejected.
An example is: `np.loadtxt(['1\n1', "2 2"], dtype=np.int64)`
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
In fromregex, add a check that verifies that the given dtype is
a structured datatype. This avoids confusing error messages that
can occur when the given data type is not structured.
Also tweaked the code in the Examples section.
Closes gh-8891.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* PERF: Speed-up common case of loadtxt()ing non-hex floats.
`python runtests.py --bench bench_io` reports a ~5-10% perf gain.
* TST: Add tests to check fromhex not called unintentionally.
Adds regression tests to check that the logic surrounding when
the default floatconv applies the fromhex conversion does not
change.
Co-authored-by: Ross Barnowski <rossbar@berkeley.edu>
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* ENH: Allow genfromtxt to unpack structured arrays
genfromtxt failed to transpose output when
unpack=True and `dtype` was structured (or None).
This patch resolves the issue by
returning a list of arrays, as in `loadtxt`.
Co-authored-by: Matti Picus <matti.picus@gmail.com>
Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
Co-authored-by: Sebastian Berg <sebastian@sipsolutions.net>
Co-authored-by: Ross Barnowski <rossbar@berkeley.edu>
|
|
|
|
| |
Some more Python 2 cleanup.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since #15893, test_large_zip's actual test is run in a child process,
so when this test raises a MemoryError exception, the exception is
lost and the @requires_memory decorator can't catch it to return
an xfail.
This commit uses a boolean variable in shared memory to flag if
the exception was raised, and in that case, re-raise it in the
parent process.
Fixes #16889
|