Python 3.13 is in a bit of a limbo state at the moment, as you can iterate
on the core SDK with it but GCP subpackages (anything that depends on the
google-apitools package, more specifically) do not currently work. I'm
blocked waiting on an update from the team that owns that package. So while
the SDK *technically* can support Python 3.13, we aren't automatically
running workflows or building artifacts for that Python version yet.
Ideally that will be done by the Beam 2.67.0 release branch cut. Once that
is sorted out I'll get the Python Tips page updated.

I'd recommend using a Python version between 3.9 and 3.12 for development
right now for the sake of consistency, although I would not expect anything
you write around MultiMapState to break between Python versions either.

On Thu, Jun 19, 2025 at 10:37 AM XQ Hu via dev <dev@beam.apache.org> wrote:

> https://github.com/apache/beam/issues/34869 is still going to support
> Python 3.13.
>
> On Thu, Jun 19, 2025 at 2:02 AM Rakesh Kumar <rakeshcu...@gmail.com>
> wrote:
>
>> Hi Everyone,
>>
>> Thank you for sharing this information, it's very helpful!
>>
>> On a separate note, I'm currently setting up my environment using the
>> wiki link (https://cwiki.apache.org/confluence/display/BEAM/Python+Tips).
>> I've noticed that it doesn't include information for Python 3.13.
>>
>> Would someone with edit access be able to update the document to include
>> this? It should be a minor edit.
>>
>> Thanks,
>> Rakesh
>>
>> On Tue, Jun 17, 2025 at 8:11 PM Robert Burke <rob...@frantil.com> wrote:
>>
>>> ULR = Universal Local Runner
>>>
>>> Largely meaning it's a Portable Local Runner, using Bean Portability, as
>>> that allows it to be used for any SDK.
>>>
>>> The python one replaced a Java attempt at one which wasn't complete
>>> enough, and wasn't as good as the existing (and current) Java Direct Runner.
>>>
>>> Prism (a Go ULR ;) ) is largely a response to Go direct runner being not
>>> great to begin with, while also being easier to distribute to other SDKs,
>>> by virtue of being a single static binary (Go's specialty).
>>>
>>> The python runner likely won't go away any time soon, but by making all
>>> the SDKs have the same single runner by default, we provide a more
>>> consistent experience across SDKs and their documentation about
>>> capabilities, which has been very inconsistent across local experiences and
>>> testing.
>>>
>>>
>>> On Tue, Jun 17, 2025, 6:55 PM Joey Tran <joey.t...@schrodinger.com>
>>> wrote:
>>>
>>>>
>>>> On Tue, Jun 17, 2025 at 7:52 PM Robert Bradshaw <rober...@waymo.com>
>>>> wrote:
>>>>
>>>>> On Tue, Jun 17, 2025 at 3:57 PM Robert Burke <rob...@frantil.com>
>>>>> wrote:
>>>>> >
>>>>> > +1
>>>>> >
>>>>> > You should be able to use the Prism runner to implement this locally.
>>>>> >
>>>>> > Prism passes the full suite of java MultimapState tests, and will
>>>>> ensure the implementation works on runners like Google Cloud Dataflow.
>>>>> >
>>>>> > I do not recommend spending time implementing multimap state in the
>>>>> python direct runner if it's not already supported.
>>>>>
>>>>> Of course it's already supported in the local Python ULR :)
>>>>>
>>>>>
>>>>> https://github.com/apache/beam/blob/master/sdks/python/apache_beam/runners/portability/fn_api_runner/worker_handlers.py#L974
>>>>>
>>>>> This will, of course, be a much welcome addition to the Python SDK,
>>>>> and +1 to making sure it works on Prism as well.
>>>>>
>>>>
>>>> What's ULR stand for?
>>>>
>>>> Does this mean that when Prism runner becomes fully supported, the
>>>> python worker infrastructure like the worker handlers and won't have any
>>>> further use :'( ? Or are they used for more than just the python
>>>> DirectRunner
>>>>
>>>>
>>>>
>>>>
>>>>>
>>>>> > On Tue, Jun 17, 2025, 10:58 AM Shunping Huang via dev <
>>>>> dev@beam.apache.org> wrote:
>>>>> >>
>>>>> >> +1
>>>>> >> I think it will be great to have that in Python SDK.
>>>>> >>
>>>>> >> On Sun, Jun 15, 2025 at 5:22 PM Rakesh Kumar <rakeshcu...@gmail.com>
>>>>> wrote:
>>>>> >>>
>>>>> >>> Hey Everyone,
>>>>> >>>
>>>>> >>> While updating the stateful processing document [1] I noticed that
>>>>> Java SDK has MultimapState [2] but it is missing from Python SDK. This was
>>>>> introduced as part of this PR:
>>>>> https://github.com/apache/beam/pull/23491
>>>>> >>> If no one has an objection, then I would like to implement this as
>>>>> part of the Python SDK.
>>>>> >>>
>>>>> >>> Thank you,
>>>>> >>> Rakesh
>>>>> >>>
>>>>> >>>
>>>>> >>> 1. https://github.com/apache/beam/pull/35209
>>>>> >>> 2.
>>>>> https://docs.google.com/document/d/1zm16QCxWEWNy4qW1KKoA3DmQBOLrTSPimXiqQkTxokc/edit?tab=t.0#heading=h.f4ova073h88e
>>>>> >>>
>>>>>
>>>>

Reply via email to