39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
#!/usr/bin/env python
|
|
|
|
from pathlib import Path
|
|
import pkg_resources
|
|
import re
|
|
|
|
|
|
def main():
|
|
requirements_dir = Path(__file__).parent / '..' / 'requirements'
|
|
|
|
for requirement_file in requirements_dir.glob('*.txt'):
|
|
print(requirement_file.name)
|
|
with open(str(requirement_file), 'r') as f:
|
|
for req in f:
|
|
# Remove trailing and leading whitespace.
|
|
req = req.strip()
|
|
|
|
if not req:
|
|
# skip empty or white space only lines
|
|
continue
|
|
elif req.startswith('#'):
|
|
continue
|
|
|
|
# Get the name of the package
|
|
req = re.split('<|>|=|!|;', req)[0]
|
|
try:
|
|
# use pkg_resources to reliably get the version at install
|
|
# time by package name. pkg_resources needs the name of the
|
|
# package from pip, and not "import".
|
|
# e.g. req is 'scikit-learn', not 'sklearn'
|
|
version = pkg_resources.get_distribution(req).version
|
|
print(req.rjust(20), version)
|
|
except pkg_resources.DistributionNotFound:
|
|
print(req.rjust(20), 'is not installed')
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|