Skip to content

Commit

Permalink
fix(ingest): bigquery-beta - Adding python 3.8 fix for memory footpri…
Browse files Browse the repository at this point in the history
  • Loading branch information
treff7es authored and cccs-tom committed Nov 18, 2022
1 parent 7001d50 commit b02c463
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 3 deletions.
5 changes: 2 additions & 3 deletions metadata-ingestion/src/datahub/utilities/memory_footprint.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from collections import deque
from itertools import chain
from sys import getsizeof
from typing import Any, Dict
from typing import Any, Callable


def total_size(o: Any, handlers: Any = {}) -> int:
Expand All @@ -15,8 +15,7 @@ def total_size(o: Any, handlers: Any = {}) -> int:
Based on https://github.com/ActiveState/recipe-577504-compute-mem-footprint/blob/master/recipe.py
"""

def dict_handler(d: Dict) -> chain[Any]:
return chain.from_iterable(d.items())
dict_handler: Callable[[Any], chain[Any]] = lambda d: chain.from_iterable(d.items())

all_handlers = {
tuple: iter,
Expand Down
27 changes: 27 additions & 0 deletions metadata-ingestion/tests/unit/utilities/test_memory_footprint.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
from collections import defaultdict

from datahub.utilities import memory_footprint


def test_total_size_with_empty_dict():
size = memory_footprint.total_size({})
# Only asserting if it is bigger than 0 because the actual sizes differs per python version
assert size > 0


def test_total_size_with_list():
size = memory_footprint.total_size({"1": [1, 2, 3, 4]})
# Only asserting if it is bigger than 0 because the actual sizes differs per python version
assert size > 0


def test_total_size_with_none():
size = memory_footprint.total_size(None)
# Only asserting if it is bigger than 0 because the actual sizes differs per python version
assert size > 0


def test_total_size_with_defaultdict():
size = memory_footprint.total_size(defaultdict)
# Only asserting if it is bigger than 0 because the actual sizes differs per python version
assert size > 0

0 comments on commit b02c463

Please sign in to comment.