beeware/batavia

support for kwargs splat operator

hstoebel opened this issue · 3 comments

If I enter this expression into the test bed:

        coord = {'latitude': '37.24N', 'longitude': '-115.81W'}
        print('Coordinates: {latitude}, {longitude}'.format(**coord))

and then have the format method console.log the kwargs passed in, I get:

 PyObject {
   data_keys:
    [ 'mask',
      { __hash__: [Function: __hash__], __eq__: [Function: __eq__] },
      { __hash__: [Function: __hash__], __eq__: [Function: __eq__] },
      { __hash__: [Function: __hash__], __eq__: [Function: __eq__] },
      { __hash__: [Function: __hash__], __eq__: [Function: __eq__] },
      'data_keys',
      'data_values',
      'size' ],
   data_values:
    [ 7,
      ,
      ,
      ,
      ,
      [ [Object],
        [Object],
        [Object],
        [Object],
        [Object],
        'latitude',
        'longitude',
        [Object] ],
      [ , , , , , '37.24N', '115.81W',  ],
      2 ],
   size: 4,
   mask: 7 }

It looks like the dict isn't structured as expected. If I pass the keys longitude and latitude in as explicit keyword arguments, they are parsed as expected. It looks like the splat operator is the issue, but I could be wrong.

can you tell me the steps to reproduce this issue?

Hi @Souldiv This issue is several months old and may have been addressed by now. @freakboy3742 does Batavia support this now?

@jstoebel It does, but only in a branch that hasn't landed yet. I'm trying to nail down the last couple of issues with that patch, but once I have, the whole function calling and dispatch code will be a lot cleaner.