Skip to content

Add Python Framework and ProxyServer & ProxyClient - #1259

Merged
Yicong-Huang merged 25 commits into
masterfrom
yicong-add-python
Jul 23, 2021
Merged

Add Python Framework and ProxyServer & ProxyClient#1259
Yicong-Huang merged 25 commits into
masterfrom
yicong-add-python

Conversation

@Yicong-Huang

@Yicong-Huang Yicong-Huang commented Jul 22, 2021

Copy link
Copy Markdown
Contributor

This PR adds some python related files:

  1. add python proxy layer (ProxyServer & ProxyClient), based on PyArrow Flight server and client.
  2. add python's generated code for protobuf (with betterproto), and its generator script core/scripts/python-proto-gen.sh.
  3. add dependency file requirements.txt.
  4. add python tests with pytest.
  5. add GitHub Action for python related tests.

@Yicong-Huang
Yicong-Huang requested a review from zuozhiw July 22, 2021 02:48
@Yicong-Huang Yicong-Huang self-assigned this Jul 22, 2021
@Yicong-Huang Yicong-Huang changed the title Add Python Add Python Framework and ProxyServer & ProxyClient Jul 22, 2021
Comment thread core/amber/src/main/python/core/proxy/proxy_server.py Outdated
Comment thread core/amber/src/main/python/core/proxy/proxy_server.py Outdated

@zuozhiw zuozhiw left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks very good, left two minor comments.

@Yicong-Huang
Yicong-Huang merged commit b441f0b into master Jul 23, 2021
@Yicong-Huang
Yicong-Huang deleted the yicong-add-python branch July 23, 2021 07:22
@Yicong-Huang Yicong-Huang linked an issue Aug 2, 2021 that may be closed by this pull request
yangzhang75 pushed a commit to yangzhang75/texera that referenced this pull request Jun 22, 2026
This PR adds some python related files:

1. add python proxy layer (`ProxyServer` & `ProxyClient`), based on PyArrow Flight server and client.
2. add python's generated code for protobuf (with betterproto), and its generator script `core/scripts/python-proto-gen.sh`.
3. add dependency file `requirements.txt`.
4. add python tests with `pytest`.
5. add GitHub Action for python related tests.
Yicong-Huang added a commit to Yicong-Huang/texera that referenced this pull request Jul 17, 2026
…#6110)

### What changes were proposed in this PR?

Audits the explicit transitive pins in `amber/requirements.txt` and
removes the two that serve no purpose. Verified with the pip dependency
graph (`Required-by`) and a full `pip install --dry-run --report`
resolution:

| Pin | Verdict | Why |
| --- | --- | --- |
| `python-dateutil==2.8.2` | **Drop** | Required by six installed
packages (pandas, botocore, betterproto, pg8000, aiobotocore,
strictyaml) — always installed regardless. A `pip freeze` leftover from
the original requirements.txt (apache#1259); every dependent declares `>=2.8`,
so the pin only held us on a 2021 release. Resolves to 2.9.0.post0 |
| `aiobotocore==3.7.0` | **Drop** | Hard dependency of s3fs; its version
is already uniquely constrained by the `botocore==1.42.90` pin
(aiobotocore's per-release botocore window is very narrow). Removing it
eliminates a manual pairing hazard when bumping the boto3/botocore pins.
Still resolves to 3.7.0 |
| `s3fs`, `SQLAlchemy`, `pg8000` | Keep | Empty `Required-by` —
pyiceberg only pulls them via extras, so dropping them would actually
uninstall them (Iceberg S3 FileIO / SqlCatalog would break at runtime).
pg8000 deliberately replaces LGPL psycopg2 (apache#3299) |
| `setuptools==80.10.2` | Keep | Guards `fs`'s `pkg_resources` import
against newer setuptools removing it (apache#4199); `fs` declares setuptools
with no version bound |

`amber/LICENSE-binary-python` updates `python-dateutil` to the resolved
2.9.0.post0 (it stays installed transitively, so the
`check_binary_deps.py` gate still requires the claim); aiobotocore
already claims 3.7.0, which is unchanged by the resolution.

### Any related issues, documentation, discussions?

Closes apache#6108. Follow-up to apache#6101 / apache#6103.

### How was this PR tested?

- `pip install --dry-run --ignore-installed --report` without the pins:
resolution unchanged except python-dateutil → 2.9.0.post0;
aiobotocore/botocore/boto3 stay at their current versions.
- Upgraded the local venv to the resolved versions and ran the existing
pyamber suite (`pytest -m "not integration"`) — passes.
- CI's pyamber leg re-resolves from scratch and `check_binary_deps.py`
verifies the LICENSE-binary-python claims.

### Was this PR authored or co-authored using generative AI tooling?

Generated-by: Claude Code (claude-fable-5)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Signed-off-by: Yicong Huang <17627829+Yicong-Huang@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Pass control messages to Python UDF operator in Amber

2 participants