#!/usr/bin/env python # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See LICENSE in the project root # for license information. import os import os.path import subprocess import sys from setuptools import setup, Extension if not os.getenv('SKIP_CYTHON_BUILD'): print('Compiling extension modules (set SKIP_CYTHON_BUILD=1 to omit)') subprocess.check_call( [sys.executable, 'ptvsd/pydevd/setup_cython.py', 'build_ext', '-i']) ROOT = os.path.dirname(os.path.abspath(__file__)) # Add pydevd files as data files for this package. They are not treated # as a package of their own, because we don't actually want to provide # pydevd - just use our own copy internally. def get_pydevd_package_data(): ptvsd_prefix = os.path.join(ROOT, 'ptvsd') pydevd_prefix = os.path.join(ptvsd_prefix, 'pydevd') for root, dirs, files in os.walk(pydevd_prefix): # From the root of pydevd repo, we want only scripts and # subdirectories that constitute the package itself (not helper # scripts, tests etc). But when walking down into those # subdirectories, we want everything below. if os.path.normcase(root) == os.path.normcase(pydevd_prefix): dirs[:] = [d for d in dirs if d.startswith('pydev') or d.startswith('_pydev')] files[:] = [f for f in files if f.endswith('.py') and 'pydev' in f] dirs[:] = [d for d in dirs if d != '__pycache__'] for f in files: yield os.path.join(root[len(ptvsd_prefix) + 1:], f) PACKAGE_DATA = { 'ptvsd': list(get_pydevd_package_data()) + ['ThirdPartyNotices.txt'] } setup( name='ptvsd', version='4.0.0a1', description='Visual Studio remote debugging server for Python', license='MIT', author='Microsoft Corporation', author_email='ptvshelp@microsoft.com', url='https://aka.ms/ptvs', classifiers=[ 'Development Status :: 3 - Alpha', 'Programming Language :: Python', 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 3', 'License :: OSI Approved :: MIT License', ], packages=['ptvsd'], package_data=PACKAGE_DATA, )