* Fix mypy for numpy==1.21.6
* Apply CR changes
* Allow Python 3.6 for open source
* Attempt to silence mypy
* Revert to 3.6 in setup.pys
* Fix merge conflict
* Add newline
* Fix Python version assert
* Test Python 3.10 CI
* Try bumping up pybind to 2.10
* Link default python to python 3.10
* Add sudo to changing default python
* Bump python version in setupvars
* Fix exception in test
* Do the same for compatibility
* Apply same CI changes to other pipelines
* Attempt to fix arm and windows CIs
* Fix win py lib version and links?
* Try to fix CI
* Fix win python path
* Update win path
* Test disable PDPD
* Disable TF for testing CI
* Add sudo to rm
* Test linux
* Update requirements
* RM sudo
* Add debug step to CI on ARM
* build py from source on linux
* Remove debug step from ARM
* Fix err
* Fill num_proc
* Fic py installation
* Bump pdpd to 2.3.1
* Bump np vers
* Try to upgrade onnx to 1.12.0
* Revert onnx upgrade, enable frontends
* Build py shared
* Export library
* activate py env
* Bump scipy for py3.10
* Another scipy bump
* Fix Windows path, add nfs helper for mount
* Attempt to fix win_cc
* Batch of changes
* Try to fix ngraph-onnx-lin
* Install lsb-release for docker on ngraph-onnx-lin
* Link lsb_release
* Try bumping Ubuntu to 22.04
* Revert ubuntu change in dockerfile
* Refactor tests for onnx1.12
* Fix ONNX compatibility and numpy warnings
* Refactor tests for onnx1.12
* Fix ONNX compatibility and numpy warnings
* Upgrade ONNX to 1.12 in cpp
* Skip unsupported ops
* Revert "Fix ONNX compatibility and numpy warnings"
This reverts commit cd8a0e6b8e.
* Small changes
* Remove unnecessary changes
* Bump Python version in github workflows
* Fix flake error
* Another flake error
* Even more flake errors
* Xfail more tests
* Fix mypy errors
* Change onnx version in tests
* Bump ONNX in MO
* Fix onnx utils in comp
* Minor changes
* Import pathlib
* Add xfails to compatibility tests
* Skip segfaulting tests
* Fix onnx nametuple
* Fix flake
* Try to fix py3.6 onnx
* Switch to venv in windows
* Fix model importer and reqs
* Add __test__
* Debug print
* Fix flake
* Update linux.yml
* Update windows.yml
* Update linux.yml
* Update windows.yml
* Install python3.10
* Update windows.yml
* Update windows.yml
* Update windows.yml
* Update windows.yml
* Update windows.yml
* Update windows.yml
* Update windows.yml
* Update windows.yml
* Install py embedded
* Fix dir
* Fix curl
* Add complete file
* CP file
* Bump py ver
* Fix missing venv
* Try to install
* Disable venv
* Bump OMZ commit
* checkout omz
* Revert omz
* Bump omz
* Revert pybind bump
* Update .gitmodules
* Change pybind to fork
* change ssize_t to size_t
* Install bz2 for py build
* Bump omz
* Bump pandas requirement version
* Revert omz
* Install missing clang
* Bump omz
* Bump versions on fork
* Bump numpy in model zoo
* Fix clang
* Skip segfaulting pdpd test
* Skip another pdpd test
* Skip pdpd places.cpp
* Bump py ver in setupvars.bat
* Disable paddle tests
* Use int instead of str
* Fix requirements path
* Enable lin-cc
* Fixes in CI
* lin-cc and ngrpah-onnx changes
* Update num_proc
* Update ngraph-onnx
* Minor change
* Fix env var
* Change ubuntu to 20
* Get compiler on ngraph-onnx
* Add sudo to apt-get
* Add SSL
* Download ssl
* Different way of installing ssl
* Minor changes
* install zlib
* Fix env var
* Fix docker building error
* Revert changes
* Modify dockerfile
* Change pychecks python version
* Cleanup
* Add LayerNorm to expanded ONNX functions
* Revert previous commit
* Add LayerNorm to expanded ONNX functions
* Apply clang
* Move LayerNorm tests to skip_segfault
* Unskip pdpd tests
* Enable pdpd tests on linux
* Refactoring
* Remove 3.6 from reqs
* Refactoring
* Minor changes
* Minor changes
* Relax MO reqs
* Bump torch version
* relax pytest
* Specify pytest version
* Fix pytest pip conflict
* Bump pybind11 to v2.10.1 release tag
* Specify separate pytest version for py3.10
* Bump attrs
* Add py dependency
* Refactor versions
* Add venv activation to tf tests
* Fix fdupes
* Bump OMZ submodule
* Remove find and replace
* Change pybind to upstream fork
* Set pybind to proper commit
* Minor changes
* Try to fix scipy
* Updated exclude patterns for nlohmann json
* [PyOV] Fix wheel requirements for new package versions
* Specify CPU plugin versions
* Bump OMZ version
* Fix linter
* Fix linter 2
* Fix linter 3
* Disable linter
Co-authored-by: Mateusz <mateusz.mikolajczyk@intel.com>
Co-authored-by: jiwaszki <jan.iwaszkiewicz@intel.com>
Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
165 lines
4.8 KiB
Python
165 lines
4.8 KiB
Python
# Copyright (C) 2020-2022 Intel Corporation
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
|
|
from shutil import copyfile
|
|
from setuptools import setup, find_packages
|
|
from setuptools.command.install import install
|
|
|
|
UNKNOWN_VERSION = "unknown version"
|
|
here = os.path.abspath(os.path.dirname(__file__))
|
|
prefix = os.path.join("openvino", "tools")
|
|
|
|
with open(os.path.join(here, 'README.md'), 'r') as fh:
|
|
long_description = fh.read()
|
|
|
|
|
|
class InstallCmd(install):
|
|
def run(self):
|
|
install.run(self)
|
|
|
|
if self.root is None and self.record is None:
|
|
# install requires
|
|
self.do_egg_install()
|
|
|
|
version_txt = os.path.join(prefix, "pot", "version.txt")
|
|
if os.path.exists(version_txt):
|
|
copyfile(os.path.join(version_txt),
|
|
os.path.join(self.install_purelib, version_txt))
|
|
|
|
|
|
def generate_pot_version():
|
|
try:
|
|
pot_dir = os.path.normpath(os.path.join(here, prefix))
|
|
branch_name = subprocess.check_output(["git", "rev-parse", "--abbrev-ref", "HEAD"], cwd=pot_dir)
|
|
commit_hash = subprocess.check_output(["git", "rev-parse", "HEAD"], cwd=pot_dir)
|
|
return "custom_{}_{}".format(branch_name.strip().decode(), commit_hash.strip().decode())
|
|
except Exception: # pylint:disable=W0703
|
|
return UNKNOWN_VERSION
|
|
|
|
|
|
def get_version():
|
|
version_txt = os.path.join(here, prefix, "pot", "version.txt")
|
|
if os.path.isfile(version_txt):
|
|
with open(version_txt) as f:
|
|
version = f.readline().replace('\n', '')
|
|
else:
|
|
version = generate_pot_version()
|
|
with open(version_txt, 'w') as f:
|
|
f.write(version + '\n')
|
|
return version
|
|
|
|
|
|
INSTALL_EXTRAS = False
|
|
INSTALL_DEV_EXTRAS = False
|
|
|
|
if '--install-extras' in sys.argv:
|
|
INSTALL_EXTRAS = True
|
|
sys.argv.remove('--install-extras')
|
|
|
|
if '--install-dev-extras' in sys.argv:
|
|
INSTALL_DEV_EXTRAS = True
|
|
sys.argv.remove('--install-dev-extras')
|
|
|
|
INSTALL_REQUIRES = [
|
|
"scipy~=1.7; python_version == '3.7'",
|
|
"scipy>=1.8; python_version >= '3.8'",
|
|
"jstyleson>=0.0.2",
|
|
"numpy>=1.16.6,<=1.23.1",
|
|
"addict>=2.4.0",
|
|
"networkx<2.8.1",
|
|
"tqdm>=4.54.1",
|
|
"texttable>=1.6.3",
|
|
"pandas~=1.3.5",
|
|
"openvino-telemetry>=2022.1.0"
|
|
]
|
|
|
|
ALGO_EXTRAS = []
|
|
|
|
DEV_EXTRAS = [
|
|
"pytest>=5.0,<=7.0.1;python_version<'3.10'",
|
|
"pytest==7.2.0;python_version>='3.10'",
|
|
"py>=1.9.0",
|
|
"openpyxl==2.6.4",
|
|
"pytest-mock==3.1.1"
|
|
]
|
|
|
|
DEPENDENCY_LINKS = []
|
|
|
|
python_version = sys.version_info[:2]
|
|
if python_version[0] < 3:
|
|
print('Only Python >= 3.7 is supported by POT/OV')
|
|
sys.exit(0)
|
|
elif python_version[1] < 7:
|
|
print('Only Python >= 3.7 is supported by POT/OV')
|
|
sys.exit(0)
|
|
|
|
|
|
OS_POSTFIXES = {
|
|
'win32': 'win_amd64',
|
|
'linux': 'linux_x86_64',
|
|
}
|
|
|
|
version_string = "{}{}".format(sys.version_info[0], sys.version_info[1])
|
|
version_string_with_mem_manager = version_string + 'm' if sys.version_info[1] < 8 else version_string
|
|
os_string = None if sys.platform not in OS_POSTFIXES else OS_POSTFIXES[sys.platform]
|
|
|
|
TORCH_VERSION = '1.12.1'
|
|
TORCH_SOURCE_URL_TEMPLATE = 'https://download.pytorch.org/whl/cpu/torch-{tv}%2Bcpu-cp{ver}-cp{' \
|
|
'ver_m}-{os}.whl'
|
|
|
|
torch_source_url = TORCH_SOURCE_URL_TEMPLATE.format(
|
|
tv=TORCH_VERSION,
|
|
ver=version_string,
|
|
ver_m=version_string_with_mem_manager,
|
|
os=os_string,
|
|
)
|
|
|
|
torch_dependency = 'torch @ {}'.format(torch_source_url) \
|
|
if os_string is not None else 'torch=={}'.format(TORCH_VERSION)
|
|
|
|
ALGO_EXTRAS.extend([torch_dependency])
|
|
|
|
if INSTALL_EXTRAS:
|
|
INSTALL_REQUIRES.extend(ALGO_EXTRAS)
|
|
if INSTALL_DEV_EXTRAS:
|
|
INSTALL_REQUIRES.extend(DEV_EXTRAS)
|
|
|
|
DEPENDENCY_LINKS = [torch_source_url]
|
|
|
|
|
|
setup(
|
|
name='pot',
|
|
version=get_version(),
|
|
author='Intel',
|
|
author_email='alexander.kozlov@intel.com',
|
|
description='Post-training Optimization Toolkit',
|
|
long_description=long_description,
|
|
long_description_content_type='text/markdown',
|
|
url='https://software.intel.com/openvino-toolkit',
|
|
packages=find_packages(exclude=["tests", "tests.*",
|
|
"tools", "tools.*"]),
|
|
package_data={'openvino.tools.pot.configs.hardware': ['*.json'],
|
|
'openvino.tools.pot.api.samples': ['*.md', '*/*.md'],
|
|
'openvino.tools.pot.configs.templates': ['*.json']},
|
|
include_package_data=True,
|
|
cmdclass={
|
|
'install': InstallCmd,
|
|
},
|
|
classifiers=[
|
|
'Programming Language :: Python :: 3',
|
|
'License :: OSI Approved :: EULA for the Intel(R) Software Development Products',
|
|
'Operating System :: OS Independent',
|
|
],
|
|
install_requires=INSTALL_REQUIRES,
|
|
dependency_links=DEPENDENCY_LINKS,
|
|
entry_points={
|
|
'console_scripts': [
|
|
'pot=openvino.tools.pot.app.run:main'
|
|
]
|
|
}
|
|
)
|