wf-transcriptomes-v202/bin/conda_versions.py
2021-04-29 14:52:21 +01:00

38 lines
1019 B
Python

"""Scrape versions of conda packages."""
from collections import namedtuple
import subprocess
try:
import pandas as pd
except ImportError:
pass
PackageInfo = namedtuple(
'PackageInfo', ('Name', 'Version', 'Build', 'Channel'))
def scrape_data(as_dataframe=False, include=None):
"""Return versions of conda packages in base environment."""
cmd = """
. ~/conda/etc/profile.d/mamba.sh;
micromamba activate;
micromamba list;
"""
proc = subprocess.run(cmd, shell=True, check=True, capture_output=True)
versions = dict()
for line in proc.stdout.splitlines()[3:]:
items = line.decode().strip().split()
if len(items) == 3:
# sometimes channel isn't listed :/
items.append("")
if include is None or items[0] in include:
versions[items[0]] = PackageInfo(*items)
if as_dataframe:
versions = pd.DataFrame.from_records(
list(versions.values()),
columns=PackageInfo._fields)
return versions