Lambda Layer用のawswrangler (AWS SDK for pandas)に含まれるPythonモジュールとバージョンを確認する

2023.09.29

データアナリティクス事業本部のueharaです。

今回は、Lambda Layer用のawswrangler (AWS SDK for pandas)に含まれるPythonモジュールとバージョンを確認してみたいと思います。

はじめに

awswranglerはpipでインストールすると容量が大きいため、githubのreleaseページでLambda Layersに登録するためのzipファイルが公開されています。

このzipファイルには勿論pandasやnumpyも含まれており、一般的なETL処理であれば本zipに含まれているモジュールで必要十分かと思います。

ただ、「どのようなモジュールが含まれているのか?」「バージョンは何か?」と気になる方も多いかと思いますので、今回はその確認方法をご紹介します。

確認方法

上記でDLしたzipファイルを解凍すると python というフォルダが出てくると思います。

そのフォルダに対して、以下のスクリプトを実行します。

confirm_meta.py

import os

# 解凍して出力されたpythonフォルダのパスを指定
TARGET_PATH = "./python"


def find_metadata(dir_path):
    for root, dirs, files in os.walk(dir_path):
        if 'METADATA' in files:
            yield os.path.join(root, 'METADATA')


def parse_metadata(file_path):
    with open(file_path, 'r') as f:
        lines = f.readlines()
    for line in lines:
        if line.startswith('Name: '):
            name = line.split(': ')[1].strip()
        if line.startswith('Version: '):
            version = line.split(': ')[1].strip()
    return name, version


data = []
for metadata_file in find_metadata(TARGET_PATH):
    name, version = parse_metadata(metadata_file)
    data.append((name, version))


data.sort()

# Markdown table形式で出力
print("| module_name | version |")
print("| ---- | ---- |")
for name, version in data:
    print(f"| {name} | {version} |")

確認結果

awswrangler-layer-3.4.0-py3.9.zip について確認したところ、結果は以下の通りでした。

module_name version
PyMySQL 1.1.0
aenum 3.1.15
aiohttp 3.8.5
aiosignal 1.3.1
asn1crypto 1.5.1
async-timeout 4.0.3
attrs 23.1.0
awswrangler 3.4.0
beautifulsoup4 4.12.2
certifi 2023.7.22
charset-normalizer 3.2.0
decorator 5.1.1
et-xmlfile 1.1.0
frozenlist 1.4.0
gremlinpython 3.7.0
idna 3.4
isodate 0.6.1
jmespath 1.0.1
jsonpath-ng 1.5.3
lxml 4.9.3
multidict 6.0.4
nest-asyncio 1.5.7
numpy 1.25.2
openpyxl 3.1.2
opensearch-py 2.3.1
packaging 23.1
pandas 2.1.0
pg8000 1.30.1
ply 3.11
pyarrow 12.0.0
python-dateutil 2.8.2
pytz 2023.3.post1
redshift-connector 2.0.913
requests 2.31.0
requests-aws4auth 1.2.3
s3transfer 0.6.2
scramp 1.4.4
setuptools 68.2.0
six 1.16.0
soupsieve 2.5
typing_extensions 4.7.1
tzdata 2023.3
urllib3 1.26.16
yarl 1.9.2

最後に

今回は、Lambda Layer用のawswrangler (AWS SDK for pandas)に含まれるPythonモジュールとバージョンを確認してみました。

参考になりましたら幸いです。