import os import setuptools SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) def collect_module_typing_stub_files(root_module_path): stub_files = [] for module_path, _, files in os.walk(root_module_path): stub_files.extend( map(lambda p: os.path.join(module_path, p), filter(lambda f: f.endswith(".pyi"), files)) ) return stub_files def main(): os.chdir(SCRIPT_DIR) package_name = 'opencv' package_version = os.environ.get('OPENCV_VERSION', '4.7.0') # TODO long_description = 'Open Source Computer Vision Library Python bindings' # TODO root_module_path = os.path.join(SCRIPT_DIR, "cv2") py_typed_path = os.path.join(root_module_path, "py.typed") if os.path.isfile(py_typed_path): typing_stub_files = collect_module_typing_stub_files(root_module_path) if len(typing_stub_files) > 0: typing_stub_files.append(py_typed_path) setuptools.setup( name=package_name, version=package_version, url='https://github.com/opencv/opencv', license='Apache 2.0', description='OpenCV python bindings', long_description=long_description, long_description_content_type="text/markdown", packages=setuptools.find_packages(), package_data={ "cv2": typing_stub_files }, maintainer="OpenCV Team", install_requires="numpy", classifiers=[ 'Development Status :: 5 - Production/Stable', 'Environment :: Console', 'Intended Audience :: Developers', 'Intended Audience :: Education', 'Intended Audience :: Information Technology', 'Intended Audience :: Science/Research', 'License :: Apache 2.0 License', 'Operating System :: MacOS', 'Operating System :: Microsoft :: Windows', 'Operating System :: POSIX', 'Operating System :: Unix', 'Programming Language :: Python', 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: C++', 'Programming Language :: Python :: Implementation :: CPython', 'Topic :: Scientific/Engineering', 'Topic :: Scientific/Engineering :: Image Recognition', 'Topic :: Software Development', 'Topic :: Software Development :: Libraries', ], ) if __name__ == '__main__': main()