Skip to content
This repository was archived by the owner on Feb 23, 2026. It is now read-only.
This repository was archived by the owner on Feb 23, 2026. It is now read-only.

Invalid type for user_id field returned by TransferConfig.to_dict #240

Closed

Description

@mik-laj

user_id field is deprecated but it still causes us problems. TransferConfig.to_dict creates a dictionary that has the wrong type of this field. This type of this field should be one of: int, long, but this field has type str. This is especially problematic because to_dict method set this field to default value - "0", so I need to convert this field to the correct type on my side.

It would be great if TransferConfig.to_dict returned the correct representation for this object

Environment details

  • OS type and version:
  • Python version: Python 3.6.12
  • pip version: pip 20.2.4
  • google-cloud-bigquery-datatransfer version: google-cloud-bigquery-datatransfer==3.0.0

Steps to reproduce

  1. Run code example

Code example

from google.cloud.bigquery_datatransfer_v1.types import TransferConfig

a = TransferConfig(user_id=123)
b = TransferConfig.to_dict(a)
c = TransferConfig(**b)

Workaround:

from google.cloud.bigquery_datatransfer_v1.types import TransferConfig

a = TransferConfig(user_id=123)
b = TransferConfig.to_dict(a)
# HACK: TransferConfig.to_dict returns invalid representation
b['user_id'] = int(b['user_id'])
c = TransferConfig(**b)

Stack trace

Traceback (most recent call last):
  File "/files/bigquery_dts.py", line 7, in <module>
    c = TransferConfig(**b)
  File "/usr/local/lib/python3.6/site-packages/proto/message.py", line 466, in __init__
    self.__dict__["_pb"] = self._meta.pb(**params)
TypeError: '123' has type str, but expected one of: int, long

Making sure to follow these steps will guarantee the quickest resolution possible.

Thanks!

Activity

  1. changed the title [-]Invalid type for user_id field after TransferConfig was converted to dictionary.[/-] [+]Invalid type for user_id field returned by TransferConfig.to_dict[/+] on Dec 28, 2020
  2. tswast commented on Jul 15, 2021

    @tswast

    Moved this to proto-plus as it is responsible for converting to/from dictionaries. I agree that the round-trip should work.

    Workaround may be to use to_json and from_json, as that round-trip should work.

    Perhaps a from_dict method would actually be useful for going from parsed JSON representation? #152

  3. removed their assignment
    on Jul 15, 2021
  4. added
    P2A nice-to-fix bug
    type: bugError or flaw in code with unintended results or allowing sub-optimal usage patterns.
    and removed
    🚨This issue needs some love.
    triage meI really want to be triaged.
    on Sep 13, 2021
  5. software-dov commented on Oct 26, 2021

    @software-dov
    Contributor

    This is an unexpected surfacing of the issue fixed by #267
    Closing as the fix is now in main

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

P2A nice-to-fix bugtype: bugError or flaw in code with unintended results or allowing sub-optimal usage patterns.

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions