Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,12 @@
* (Python) Removed `google-perftools` from the SDK container images. Users who wish to use `--profiler_agent=tcmalloc` should install google-perftools APT package in their custom container images separately ([#39323](https://github.com/apache/beam/issues/39323)).
* [IcebergIO] Reading a `timestamptz` column will now return a `Timestamp.MICROS` Beam logical type to preserve
microseconds (the old Beam `Schema.FieldType#DATETIME` primitive type truncates past milliseconds). This may break
existing streaming read pipelines. It also breaks Python reads when a `timestamptz` column is present. Use pipeline
option `--updateCompatibilityVersion=2.75.0` (or any older version) to keep the old behavior ([#39344](https://github.com/apache/beam/issues/39344)).
the following use cases when a `timestamptz` column is present:
* Existing streaming read pipelines.
* Managed Iceberg batch reads when upgraded from an older SDK.
* Python reads.

Use pipeline option `--updateCompatibilityVersion=2.75.0` (or any older version) to keep the old behavior ([#39344](https://github.com/apache/beam/issues/39344)).
* `DoFn.process` returning a `str`, `bytes`, or `dict` (instead of an iterable wrapping one) now raises a `TypeError` rather than silently iterating per-character/byte/key (Python) ([#18712](https://github.com/apache/beam/issues/18712)).
* (Java) Added `DRAINING` and `DRAINED` states to `PipelineResult`, including runner state mappings and Dataflow update handling ([#39020](https://github.com/apache/beam/issues/39020)).
* (Python) Typehints of dataclass fields are honored during type inferences. To restore the behavior of fallback-to-any,
Expand Down
14 changes: 3 additions & 11 deletions sdks/python/container/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,6 @@ RUN \

rm -rf /var/lib/apt/lists/* && \

pip install --upgrade pip setuptools wheel && \

# Install required packages for Beam Python SDK and common dependencies used by users.
# use --no-deps to ensure the list includes all transitive dependencies.
# use --prefer-binary to avoid compiling wheels from source when prebuilt wheels exist.
Expand Down Expand Up @@ -92,18 +90,12 @@ RUN \
if [ "${py_version}" = "3.10" ] || [ "${py_version}" = "3.11" ]; then \
pip install upgrade_ensurepip; \
python3 -m upgrade_ensurepip; \
else \
python3 /tmp/upgrade_bundled_pip.py; \
fi; \
# setuptools is not bundled with ensurepip in Python 3.12+
if [ "${py_version}" = "3.10" ] || [ "${py_version}" = "3.11" ]; then \
find /usr/local/lib/python${py_version}/ensurepip/_bundled/setuptools-* -type f ! -name $(basename $(ls -v /usr/local/lib/python${py_version}/ensurepip/_bundled/setuptools-*-py3-none-any.whl | tail -n 1)) -delete; \
fi; \
find /usr/local/lib/python${py_version}/ensurepip/_bundled/pip-* -type f ! -name $(basename $(ls -v /usr/local/lib/python${py_version}/ensurepip/_bundled/pip-*-py3-none-any.whl | tail -n 1)) -delete; \
if [ "${py_version}" = "3.10" ] || [ "${py_version}" = "3.11" ]; then \
pip uninstall upgrade_ensurepip -y; \
else \
python3 /tmp/upgrade_bundled_pip.py; \
fi; \
python3 -m ensurepip;
find /usr/local/lib/python${py_version}/ensurepip/_bundled/pip-* -type f ! -name $(basename $(ls -v /usr/local/lib/python${py_version}/ensurepip/_bundled/pip-*-py3-none-any.whl | tail -n 1)) -delete;

ENTRYPOINT ["/opt/apache/beam/boot"]

Expand Down
Loading