1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- # -*- 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',
- datas=[('blogit/blogit-mir/*', 'blogit-mir')])
- 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 )
- coll = COLLECT(
- exe,
- a.binaries,
- a.zipfiles,
- a.datas,
- name='blogit-dir',
- strip=False,
- upx=True
- )
|