Releases: iris-hep/func_adl
Don't add a null-length MetaData to stream
Minor bug fix
What's Changed
- Do not add an empty MetaData call by @gordonwatts in #126
Full Changelog: 3.2.5...3.2.6
3.2.5 - Retain original instance of ObjectStream
Allow object stream operations to retain original subclass (#122) The new ServiceX Client needs to be able to pass state related to its subclass of ObjectStream from each func_adl statement on to the next. This change makes use of a deep copy of the target object and returns that from the func_adl verbs (Select, SelectMany, Where) that way at the end of the select we still have access to the original instance.
Support for new ServiceXClient
Maintain the identity of the object stream subclass and don't downcast to ObjectStream
Bug Fix: Do not alter python run-time types
This fixes a bug discovered by Haoran and Callum - if you ask for two different typed collections one after the other, the type propagation system gets very confused because I was accidentally modifying a Python runtime type. This fixes that.
What's Changed
- Do not alter runtime types by @gordonwatts in #120
Full Changelog: 3.2.3...3.2.4
Do not alter python runtime types at... runtime
Testing the fix for runtime type alterations.
Full Changelog: 3.2.2...3.2.4b1
Use function names as clues for parsing
This is a bug-fix release to address a regression. The following should have parsed correctly but was failing with a "multiple-lambdas on one line" error:
ds.Where(lambda e: e.met > 10).Select(lambda e: e.met)
What's Changed
- Use Function Names as Clues Parsing Lambda's by @gordonwatts in #116
Full Changelog: 3.2.2...3.2.3
Update package metadata
Release
There is something very broken about the last release, trying again.
Lambda Parsing Bug Fix
The engine that finds lambda's for translation in source code has received a major upgrade/change. It now uses the builtin python tokenize
module.
- This makes it much more robust when dealing with comments, new lines, and other oddities.
- More safely checks are built in to catch mistakes in matching
lambda
expressions to the intended code.
There is one regression - which is caused because this code is more rigorous in how it treats the source code: Using the python \
continuation character means that the line is really treated as a single line. This was not the case with the previous version of the parser. This may cause some expressions that work now to fail upon upgrade. You can just change the argument name, use (
and )
around the whole expression to get rid of the continuation characters, etc. to get your code quickly working again. You'll get an exception if this happens suggesting one of these two approaches if your code is affected.
What's Changed
- Spelling update and flake8 control by @gordonwatts in #112
- Use builtin Python tokenizer to find lambdas by @gordonwatts in #114
Full Changelog: 3.1.2...3.2
Lambda Parsing Upgrade
Moving to a new tokenizer (the builtin one!!) for finding where lambda
' expressions are!
What's Changed
- Spelling update and flake8 control by @gordonwatts in #112
Full Changelog: 3.1.2...3.2b1