1234567891011121314151617181920212223242526272829303132333435363738 |
- #!/usr/bin/env python3
- # This script is used for validating installed entrypoints. Note that it fails on Python 3.7
- import sys
- from importlib.metadata import PackageNotFoundError, distribution
- EXPECTED_EPS = {'sqlalchemy.dialects:clickhousedb',
- 'sqlalchemy.dialects:clickhousedb.connect'}
- def validate_entrypoints():
- expected_eps = EXPECTED_EPS.copy()
- try:
- dist = distribution('clickhouse-connect')
- except PackageNotFoundError:
- print ('\nClickHouse Connect package not found in this Python installation')
- return -1
- print()
- for entry_point in dist.entry_points:
- name = f'{entry_point.group}:{entry_point.name}'
- print(f' {name}={entry_point.value}')
- try:
- expected_eps.remove(name)
- except KeyError:
- print (f'\nUnexpected entry point {name} found')
- return -1
- if expected_eps:
- print()
- for name in expected_eps:
- print (f'Did not find expected ep {name}')
- return -1
- print ('\nEntrypoints correctly installed')
- return 0
- if __name__ == '__main__':
- sys.exit(validate_entrypoints())
|