123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- # -*- mode: python -*-
- block_cipher = None
- def Entrypoint(dist, group, name, **kwargs):
- import pkg_resources
- # get toplevel packages of distribution from metadata
- def get_toplevel(dist):
- distribution = pkg_resources.get_distribution(dist)
- if distribution.has_metadata('top_level.txt'):
- return list(distribution.get_metadata('top_level.txt').split())
- else:
- return []
- kwargs.setdefault('hiddenimports', [])
- packages = []
- for distribution in kwargs['hiddenimports']:
- packages += get_toplevel(distribution)
- kwargs.setdefault('pathex', [])
- # get the entry point
- ep = pkg_resources.get_entry_info(dist, group, name)
- # insert path of the egg at the verify front of the search path
- kwargs['pathex'] = [ep.dist.location] + kwargs['pathex']
- # script name must not be a valid module name to avoid name clashes on import
- script_path = os.path.join(workpath, name + 'launcher')
- print("creating script for entry point", dist, group, name)
- with open(script_path, 'w') as fh:
- print("import", ep.module_name, file=fh)
- print("%s.%s()" % (ep.module_name, '.'.join(ep.attrs)), file=fh)
- for package in packages:
- print("import", package, file=fh)
- return Analysis(
- [script_path] + kwargs.get('scripts', []),
- **kwargs
- )
- a = Entrypoint('blogit', 'console_scripts', 'blogit')
- pyz = PYZ(a.pure, a.zipped_data,
- cipher=block_cipher)
- exe = EXE(pyz,
- a.scripts,
- a.binaries,
- a.zipfiles,
- a.datas,
- [],
- name='blogit',
- debug=False,
- bootloader_ignore_signals=False,
- strip=False,
- upx=True,
- runtime_tmpdir=None,
- console=True )
|