Lambda Layer用のawswrangler (AWS SDK for pandas)に含まれるPythonモジュールとバージョンを確認する
データアナリティクス事業本部のueharaです。
今回は、Lambda Layer用のawswrangler (AWS SDK for pandas)に含まれるPythonモジュールとバージョンを確認してみたいと思います。
はじめに
awswranglerはpipでインストールすると容量が大きいため、githubのreleaseページでLambda Layersに登録するためのzipファイルが公開されています。
このzipファイルには勿論pandasやnumpyも含まれており、一般的なETL処理であれば本zipに含まれているモジュールで必要十分かと思います。
ただ、「どのようなモジュールが含まれているのか?」「バージョンは何か?」と気になる方も多いかと思いますので、今回はその確認方法をご紹介します。
確認方法
上記でDLしたzipファイルを解凍すると python
というフォルダが出てくると思います。
そのフォルダに対して、以下のスクリプトを実行します。
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モジュールとバージョンを確認してみました。
参考になりましたら幸いです。