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.8.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") typing_stub_files = [] 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 :: OSI Approved :: Apache Software License", "Operating System :: MacOS", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: C++", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Image Recognition", "Topic :: Software Development", ], ) if __name__ == '__main__': main()