protocolbuffers / protocolbuffers/protobuf

Pass key-value pairs into Struct constructor in python

Open
#12,809 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

help wanted
Dominant language
C++
Stars
72k
Forks
16.3k
Avg merge
1d 17h
Merged PRs (30d)
140

Description

What language does this apply to?
python

Describe the problem you are trying to solve.
When we initialise a Struct and want to set key-value pair on the struct, there are two steps:

struct = Struct()
struct.update(key1='value-1', key2=2)

Alternatively, we can also use json_format.ParseDict.

Describe the solution you'd like
Hopefully, we can do the following:

struct = Struct(fields={'key1': 'value-1, 'key2: 2})
# or 
struct = Struct({'key1': 'value-1, 'key2: 2})

Describe alternatives you've considered

Additional context
Add any other context or screenshots about the feature request here.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in python/google/protobuf/internal/well_known_types.py at the Struct implementation linked in the issue, and compare its current construction and update behavior. Implement the requested key-value initialization while preserving the existing update path; done means the documented mapping or keyword forms work as shown.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend-api-design
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.