Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DO NOT MERGE] Server side snowpark #1538

Draft
wants to merge 30 commits into
base: main
Choose a base branch
from

Conversation

sfc-gh-lspiegelberg
Copy link
Contributor

DO NOT MERGE.

this branch helps us compare snowpark server side changes vs. current main/HEAD

sfc-gh-azwiegincew and others added 4 commits May 3, 2024 15:17
…: table(), filter() (#1468)

A very basic initial attempt at serializing the AST.

I'm trying to maintain a parallel codebase for phases 0 and 1 for now,
since it would be a shame to do this work twice. Once we complete and
ship phase 0, we'll be able to drastically simplify the phase 1 client.

Unlike what I mentioned before, this implementation doesn't flush
dependencies of eagerly evaluated expressions. Instead, any client-side
value is appended to the pending batch. This is simpler to implement and
will likely work well, although we may need to do some dependency
analysis on the server to ensure we don't issue unnecessary queries.
Updates our server branch with recent snowpark changes.
sfc-gh-oplaton and others added 16 commits May 14, 2024 08:38
<!---
Please answer these questions before creating your pull request. Thanks!
--->

1. Which Jira issue is this PR addressing? Make sure that there is an
accompanying issue to your PR.

   <!---
   In this section, please add a Snowflake Jira issue number.
   
Note that if a corresponding GitHub issue exists, you should still
include
   the Snowflake Jira issue number. For example, for GitHub issue
#1400, you should
   add "SNOW-1335071" here.
    --->

   Fixes SNOW-0

2. Fill out the following pre-review checklist:

- [ ] I am adding a new automated test(s) to verify correctness of my
new code
   - [ ] I am adding new logging messages
   - [ ] I am adding a new telemetry message
   - [ ] I am adding new credentials
   - [x] I am adding a new dependency

3. Please describe how your code solves the related issue.

Update `ast_pb2.py` (already present in the repository).
Add the `setuptools` dependencies required for development.
Include the module path for `ast_pb2.py` in the manifest, so that the
file makes it into the Snowpark wheel.
Run `update-from-devvm.sh` from within `src/snowflake/snowpark/_internal/proto/` with a running local devvm to update the proto file on the thin client.
@github-actions github-actions bot added the local testing Local Testing issues/PRs label Jun 5, 2024
sfc-gh-azwiegincew and others added 8 commits June 10, 2024 11:33
….py (#1766)

Modifies `setup.py` to use the latest HEAD of https://github.com/snowflakedb/snowflake-connector-python/tree/server-side-snowpark which includes connector changes (most notable adding the `_dataframe_ast` field for phase 0).

To update your local dev environment run
```
pip uninstall snowflake-connector-python -y
python -m pip install --no-cache -e ".[development,pandas]"
```
Running the pip command should show `git clone` in the logs.
…frameAST field. (#1794)

Vendors snowflake vcrpy from https://github.com/Snowflake-Labs/snowflake-vcrpy (could not get install working, therefore vendoring it) with custom Snowflake changes to track requests in vendored urllib3 within the snowflake python connector.

Adds decorator `check_ast_encode_invoked` (applied with `autouse=True` to all tests) which checks that every query send contains `dataframeAst` property for phase 0, and errors out together with traceback information whenever tests need to be fixed / APIs are missing that need to be encoded within the AST.
… with Python 3.8 (#1796)

Remove temporarily Modin tests as Modin is incompatible with Python 3.8.
Exclude protobuf file in precommit (flake8), as protobuf does not adhere to good coding standards and a protobuf update will consequently fail precommit.
…ad of sbt (#1811)

Convenience script `update-unparser.sh` uses sbt build currently. With introduction of the bazel scala targets dependencies (i.e., IR changes) switch to using them to create an updates unparser.sh as IR/protobuf updates will be reflected.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
DO-NOT-MERGE local testing Local Testing issues/PRs
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants