-
-
Notifications
You must be signed in to change notification settings - Fork 275
Release 3.4.3 #681
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release 3.4.3 #681
Conversation
Implement `__dir__()` on group nodes to include in the list of autocompletions also those children that are named as valid python identifiers.
This tests autocompletion of group (node) names.
+ Add regular Group-attributes in its dir() test-case.
feat(group): autocomplete valid python-identifiers
+ Docs updated. + Simple test-case. + Not suitable for PY-2 (no `__dir__()` in datamodel). + Symetrical to #624(Groups).
+ See http://bugs.python.org/issue12166 & http://stackoverflow.com/questions/15507848/the-correct-way-to-override-the-dir-method-in-python why not fiddling with __dir__() on PY2. Let's conform to this: http://www.python3statement.org/#sections20-statement
+ Test dir() results for attributes. # See discussion in #265.
feat(attributes): __dir__() autocompletes also valid py-indentifiers
The release notes for 3.3.0 -> 3.4.0 went missing. [ci skip]
+ Add `Group.__getitem__()` change by ankostis.
Define `Group.__getitem__()` method
__item__ is not a standard dunder. Removed.
While trying to build PyTables using icc/icpc, the build would fail with the following error: error: identifier "_mm256_castsi128_si256" is undefined _mm256_loadu2_m128i(const __m128i* const hiaddr, const __m128i* const loaddr) ^ test.c(5): error: expected a type specifier _mm256_loadu2_m128i(const __m128i* const hiaddr, const __m128i* const loaddr) ^ test.c(5): error: expected a type specifier _mm256_loadu2_m128i(const __m128i* const hiaddr, const __m128i* const loaddr) ^ test.c(5): error #141: unnamed prototyped parameters not allowed when body is present _mm256_loadu2_m128i(const __m128i* const hiaddr, const __m128i* const loaddr) ^ test.c(8): error: identifier "loaddr" is undefined _mm256_castsi128_si256(_mm_loadu_si128(loaddr)), _mm_loadu_si128(hiaddr), 1); ^ test.c(8): error: identifier "hiaddr" is undefined _mm256_castsi128_si256(_mm_loadu_si128(loaddr)), _mm_loadu_si128(hiaddr), 1); It was diagnosed that immintrin.h from include directory of icc already defines split load/store intrinsics. Ensuring that section of shuffle-avx2.c is not declared while building with icc/icpc, allows builds to go through.
enable building PyTables with Intel compiler (icc/icpc)
PEP 519 defines a filesystem path protocol, and enhances Python builtin I/O functions to support "path-like" objects. As part of this PEP, the `os` module also gained a `fspath` function, which takes an arbitrary path-like object and returns a string. If the os.fspath function is available, use it to convert `filename` to a string.
Method Node._get_obj_timestamps() returns an object with attributes atime, mtime, ctime and btime from the object's H5O_info_t struct. These times as integer seconds since the UNIX epoch. HDF5 stores timestamps associated with an object by default: access time (atime), modification time (mtime), change time (ctime), and birth time (btime). Of these, only ctime has been implemented as of HDF version 1.8.15.
This property retrieves the "track times" creation property of a dataset using H5Pget_obj_track_times. Retrieval of the property works in a newly created dataset but the property does not seem to survive closing and reopening the file (bug?). So, the property has dubious value. It might be better to just advise users to check whether the ctime for the dataset is 0.
Allow disabling object time tracking when creating Tables, Arrays, CArrays, EArrays, or VLArrays using H5Pset_obj_track_times, via an optional keyword argument "track_times" in constructors, default True for backwards compatibility. Disabling object time tracking makes it at least possible to get bitwise reproducible output files from different runs of the same application. From the HDF5 FAQ: "If you turn off the create/modify/access time tracking for objects created (with the H5Pset_obj_track_times() routine), everything should be bit-for-bit reproducible. Coincidentally, it makes accessing those objects faster and the size of their metadata smaller also. You do lose the ability to know when the object was created/modified/accessed." The user intent to track times / not track times is passed in to the corresponding functions in the C source via the attribute ._want_track_times of the Leaf class, the way filters are. These C functions (H5ARRAYmake, H5TBOmake_table, and H5VLARRAYmake) have a new boolean argument, track_times, before the data pointer argument.
DOC small documentation fixes
Skip the DLL check when running from a frozen app
Avoids warnings in comparisons in Python 3
Fix slicing outside of data samples
|
Cool. There is an outstanding error at AppVeyor: @tomkooij Any hint? |
|
Also, I'd like to update blosc sources to latest release (1.14.3). Should be easy enough. |
|
About the conda error: We (also) test against HDF5 1.10.x, but that is not in conda EDIT: It seems it was just a network error. Restarting that build should fix it. Sadly, I do not have permission to restart the Appveyor build. |
New c-blosc 1.14.3 sources
|
@jsancho-gpl : I have created a TODO list above. :-) I can run the (I can/should probably help with the wheels and conda-forge as well) |
|
Thanks @tomkooij, I don't have a Windows machine so I'll need your help for that. I'm working on the rest of the list. |
Changes from 3.4.2 to 3.4.3 =========================== Improvements ------------ - On interactive python sessions, group/attribute `__dir__()` method autocompletes children that are named as valid python identifiers. :issue:`624` & :issue:`625` thanks to ankostis. - Implement `Group.__getitem__()` to have groups act as python-containers, so code like this works: ``hfile.root['some child']``. :issue:`628` thanks to ankostis. - Enable building with Intel compiler (icc/icpc). Thanks to rohit-jamuar. - PEP 519 support, using new `os.fspath` method. Thanks to mruffalo. - Optional disable recording of ctime (metadata creation time) when creating datasets that makes possible to get bitwise identical output from repeated runs. Thanks to alex-cobb. - Prevent from reading all rows for each coord in a VLArray when indexing using a list . Thanks to igormq. - Internal Blosc version updated to 1.14.3 Bugs fixed ---------- - Fixed division by zero when using `_convert_time64()` with an empty nparr array. :issue:`653`. Thanks to alobbs. - Fixed deprecation warnings with numpy 1.14. Thanks to oleksandr-pavlyk. - Skip DLL check when running from a frozen app. :issue:`675`. Thanks to jwiggins. - Fixed behaviour with slices out of range. :issue:`651`. Thanks to jackdbd.
|
When running heavy test on Linux, I get: Any ideas? |
|
All seems to work fine here |
|
I can't reproduce: I think just ignoring the error is fine. (Or perhaps run that specific test again?) |
|
I've tried with Debian and Ubuntu in two different computers but always with the same result, error with LargeRowSize test. Probably I've something wrong in my tests environment. Maybe some kernel parameter for files size or something like that? |
|
At PyTables/tables/tests/test_tables.py Line 5113 in f647047
With numpy==1.14.2 (my version): But with numpy==1.12.1: It seems a bug in older versions of numpy. |
|
I'm merging this to be able to create wheels. |
|
Thanks @tomkooij, my plan was to build the wheels during yesterday's evening and today, but I couldn't at the end, and the sources package had already been uploaded. |
|
@jsancho-gpl Unfortunately, wheel building was not as easy as "update version". The wheelbuilder used the external C-BLOSC because the pytables internal C-BLOSC enables AVX2 opcodes on travis builds. The wheelbuilder (MacPython/pytables-wheels@abebcb2) now applies the same patch conda-forge uses to disable AVX2 in pytables setup.py and uses the internal C-Blosc. Wheels are being built and uploaded! |
|
Wheels are on pypi! |
release 3.4.3 : maintenance / bugfix release
TODO:
RELEASE-NOTES.txtanddoc/source/release_notes.rstVERSIONto3.4.3(perhaps also in docs?)--heavytest suite on Linux (or Mac)--heavytest suite on Windows.masterv3.4.3MacPython/pytables-wheels)conda-forge/pytables-feedstockAfter release:
develop)