Skip to content

Commit

Permalink
get version from distribution
Browse files Browse the repository at this point in the history
  • Loading branch information
Ken Payne committed Dec 7, 2022
1 parent 3b0f9a0 commit 430d5f9
Showing 1 changed file with 24 additions and 4 deletions.
28 changes: 24 additions & 4 deletions tap_snowflake/tap.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
"""Snowflake tap class."""


import collections
from typing import List, Mapping

from singer_sdk import SQLTap
from singer_sdk import typing as th # JSON schema typing helpers
from singer_sdk.helpers._classproperty import classproperty
Expand All @@ -8,6 +12,15 @@
from tap_snowflake.client import SnowflakeStream


# Introduced in python 3.10, added here for compatability
def packages_distributions() -> Mapping[str, List[str]]:
pkg_to_dist = collections.defaultdict(list)
for dist in metadata.distributions():
for pkg in (dist.read_text("top_level.txt") or "").split():
pkg_to_dist[pkg].append(dist.metadata["Name"])
return dict(pkg_to_dist)


class TapSnowflake(SQLTap):
"""Snowflake tap class."""

Expand Down Expand Up @@ -65,10 +78,17 @@ def plugin_version(cls) -> str:
Returns:
The package version number.
"""
try:
version = metadata.version(cls.package_name or cls.name)
except metadata.PackageNotFoundError:
version = "[could not be detected]"
# try to discover distribution version
distribution_map = packages_distributions()
distribution = distribution_map.get(cls.name.replace("-", "_"), [None])[0]
if distribution:
version = metadata.version(distribution)
else:
# try to discover module version
try:
version = metadata.version(cls.name)
except metadata.PackageNotFoundError:
version = "[could not be detected]"
return version


Expand Down

0 comments on commit 430d5f9

Please sign in to comment.