Skip to content

Releases: iris-hep/func_adl

Lambda Parsing Bug Fix

02 Feb 13:34
694e69a
Compare
Choose a tag to compare

Found a black inspired reformat that tickled a bug in the func_adl parser. Updated.

What's Changed

Full Changelog: 3.1.1...3.1.2

Lambda Parsing Upgrade

11 Nov 09:09
b76eed7
Compare
Choose a tag to compare

Correctly parse a lambda formatting that black will often impose:

    my_obj().do_it(
        lambda e: e.Jets("AntiKt4EMTopoJets").do_it(
            lambda j: j.Jets("AntiKt4EMTopoJets").do_it(
                lambda j1: j1.pt() / 1000.0
            )
        )
    )

Lambda Parsing Upgrade

30 Oct 00:10
30a7601
Compare
Choose a tag to compare

This point release is focused on correctly parsing lambda's - increasing the range of styles of code we can correctly detect inside a Select, SelectMany and Where statement.

For example, the following two statements now work (and didn't properly work before):

    my_obj().Select(lambda x: x
                   + 1
                   + 2
                   + 20
                   )

and

    my_obj().do_it(lambda event: event + 1
                   ).do_it(lambda event: event)

Since this is using heuristics, likely there are cases we've missed. Please do not hesitate to submit a bug report (or PR).

What's Changed

Full Changelog: 3.0...3.1

AST Parsing and Python 3.11

27 Oct 04:22
30a7601
Compare
Choose a tag to compare
Pre-release

What's Changed

Full Changelog: 3.0...3.1b1

Types & Metadata

02 Apr 21:35
b6416ea
Compare
Choose a tag to compare

This is a major release. Old queries against old backends should work without any changes. However, you'll need a new backend to take advantage of most of the new features.

Features marked with a ** require the new backend.

New Features in the language

  • C++ Code injection can be done via a decorator
  • List comprehension and Generator expressions are now supported, automatically turned into func_adl statements. This is particularly helpful when doing 2-object matching.
  • Local and global variables are properly captured in lambda's.

New Features in the infrastructure

  • Support for Query Metadata. This metadata is sent to the backend without being touched **
  • Support for in-query Metadata. This metadata is not sent to the backend, but can be extracted from the query. The in-query metadata can be overridden by setting a value more than once. **
  • A Fully typed ObjectStream is supported via Generics. Various editors that type-follow will be able to correctly predict methods, etc., that are available. You'll need a complete object model for this to work (see the func_adl_servicex_xaodr21 package) **
  • Python 10 is supported.

The PR's

Full Changelog: 2.3...3.0

Fix multi-line ast parsing regression

18 Mar 12:06
3d3b554
Compare
Choose a tag to compare
Pre-release
Regression (untested) for lambdas continuing accross lines (#98)

* Fix up multi-line function parsing

Add better ast parsing

14 Mar 23:55
f9e173d
Compare
Choose a tag to compare
Pre-release
  • More robust in finding and parsing source code in methods
  • Ability to provide the finder hints

Allow IfExpr to see Any as a float

14 Mar 00:57
Compare
Choose a tag to compare
Pre-release

Minor bug when any's get used in IfExpr. I get the feeling for untyped stuff, we'll be finding a lot of things like this.

Production Running

14 Mar 00:38
e655f69
Compare
Choose a tag to compare
Production Running Pre-release
Pre-release

Can run the complete notebook that demos xaod_usage

  • Do not require clients to install the func-adl.ast package.
  • Fix bug in how QMetaData updates items in its dict (overriden items were ignored!)
  • Add a warning if there is a lambda that isn't scanned for type forwarding
  • Fix bug where function names were being captured during lambda resolution
  • Move to a single package rather than two (no more .ast). This is certianly a breaking change!

Bug Fixes

08 Mar 04:40
Compare
Choose a tag to compare
Bug Fixes Pre-release
Pre-release
  • incorrect __init__ file - made meta data clearing for the unreleased version of func_adl_servicex fail.
  • QMetaData was not dealing with updated items properly.