Skip to content

Remove snowflake from dependencies, documentation and code.#489

Merged
ehclark merged 2 commits into
mainfrom
remove-snowflake-support
Jun 25, 2026
Merged

Remove snowflake from dependencies, documentation and code.#489
ehclark merged 2 commits into
mainfrom
remove-snowflake-support

Conversation

@ehclark

@ehclark ehclark commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Remove Snowflake storage backend

Summary

Removes the Snowflake object-store backend from AnyVar — including the
backend implementation, the snowflake-sqlalchemy dependency, all
Snowflake-specific ORM hooks, tests, and documentation.

The Postgres, DuckDB, and stateless (NoObjectStore) backends are
untouched.

Motivation

The Snowflake backend is no longer needed. Removing it eliminates a
heavy SQLAlchemy dialect dependency, simplifies the ORM layer (which had
dialect-specific with_variant(...) calls and a conditional
__table_args__), and reduces the surface area of the storage
abstraction.

Breaking changes

  • ANYVAR_STORAGE_URI="snowflake://..." is no longer supported.
    create_storage() now raises the same generic
    ValueError("URI scheme snowflake is not implemented") it raises for
    any other unrecognized scheme.
  • The snowflake-sqlalchemy dependency is removed from pyproject.toml.
  • The pytest.mark.snowflake marker is no longer registered.

Changes

Deleted files

  • src/anyvar/storage/snowflake.pySnowflakeObjectStore,
    privatelink dialect monkey-patch, @compiles(Insert, "snowflake")
    PARSE_JSON helper.
  • tests/unit/storage/test_snowflake.py,
    tests/unit/storage/test_snowflake_dyntable.py.
  • docs/source/configuration/snowflake.rst.
  • docs/source/api/api/storage/anyvar.storage.snowflake.rst
    (autosummary stub).

Modified files

  • pyproject.toml — dropped snowflake-sqlalchemy~=1.8.2 and the
    snowflake: pytest marker.
  • src/anyvar/anyvar.py — removed the "snowflake" branch in
    create_storage() and the matching docstring entry.
  • src/anyvar/storage/orm.py
    • Removed SnowflakeVARIANT TypeDecorator.
    • Removed .with_variant(SnowflakeVARIANT, "snowflake") from
      VrsObject.vrs_object, Allele.state, Extension.value (the
      JSON() / JSONB variants remain).
    • Removed dialect-aware VariationMapping.__table_args__; the
      UniqueConstraint it applied only to Snowflake is gone.
    • Removed now-unused imports (json, urlparse, Dialect,
      UniqueConstraint, TypeDecorator,
      snowflake.sqlalchemy.snowdialect, DEFAULT_STORAGE_URI).
  • tests/conftest.pyall_dbs no longer includes "snowflake".
  • docs/source/configuration/index.rst,
    docs/source/configuration/storage.rst,
    docs/source/api/index.rst — removed Snowflake bullets, toctree
    entries, and autosummary entries.

@ehclark ehclark marked this pull request as ready for review June 24, 2026 19:56
@ehclark ehclark requested a review from a team as a code owner June 24, 2026 19:56
@ehclark ehclark requested a review from jennifer-bowser June 24, 2026 19:57
Comment thread pyproject.toml
"anyio",
"bioutils",
"biocommons.seqrepo",
"pyjwt[crypto]",

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.

what's the gist here? was this previously provided by something else and it's needed for the JWT authentication stuff?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

pyjwt was previously a transitive dependency of snowflake. JWT authorization defined in anyvar.restapi.auth requires. So it was added back in.

@jsstevenson jsstevenson self-requested a review June 25, 2026 14:46

@jsstevenson jsstevenson 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.

lgtm

@ehclark ehclark merged commit 6834742 into main Jun 25, 2026
31 of 32 checks passed
@ehclark ehclark deleted the remove-snowflake-support branch June 25, 2026 14:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants