зеркало из https://github.com/Azure/pykusto.git
93 строки
3.2 KiB
Python
93 строки
3.2 KiB
Python
import os
|
|
import sys
|
|
|
|
from setuptools import setup, find_packages
|
|
from setuptools.command.install import install
|
|
|
|
assert sys.version_info[0] == 3
|
|
__version__ = None
|
|
with open(os.path.join('.', 'pykusto', '__init__.py')) as f:
|
|
for line in f:
|
|
if line.startswith('__version__'):
|
|
delim = '"' if '"' in line else "'"
|
|
__version__ = line.split(delim)[1]
|
|
assert __version__ is not None, 'Unable to determine version'
|
|
|
|
core_requires = [
|
|
'redo==2.0.4',
|
|
]
|
|
|
|
non_pyspark_requires = [
|
|
# Not required in PySpark, because authentication is handled differently there.
|
|
# Release notes: https://github.com/Azure/azure-kusto-python/releases
|
|
'azure-kusto-data==3.1.0', # Earlier versions not supported because of: https://github.com/Azure/azure-kusto-python/issues/312
|
|
]
|
|
|
|
# Not required in PySpark because it is already installed there.
|
|
# pandas release notes: https://pandas.pydata.org/docs/whatsnew/index.html
|
|
# Tests use DataFrame constructor options introduced in 0.25.0
|
|
if sys.version_info[1] <= 6:
|
|
# pandas support for Python 3.6 was dropped starting from version 1.2.0
|
|
non_pyspark_requires.append('pandas>=0.25.0,<1.2.0')
|
|
# In numpy the support was dropped in 1.20.0, and also the transitive dependency in pandas is not correctly restricted
|
|
non_pyspark_requires.append('numpy<1.20.0')
|
|
else:
|
|
non_pyspark_requires.append('pandas>=0.25.0,<=1.2.4')
|
|
|
|
|
|
# Allows installing with '--pyspark' to avoid unneeded dependencies.
|
|
# Usage:
|
|
# pip install pykusto --global-option pyspark
|
|
# OR
|
|
# python setup.py install --pyspark
|
|
class CustomInstall(install):
|
|
user_options = install.user_options + [('pyspark', None, None)]
|
|
|
|
def initialize_options(self):
|
|
super().initialize_options()
|
|
# noinspection PyAttributeOutsideInit
|
|
self.pyspark = None
|
|
|
|
def run(self):
|
|
if self.pyspark:
|
|
# noinspection PyUnresolvedReferences
|
|
self.distribution.install_requires = core_requires
|
|
super().run()
|
|
|
|
|
|
setup(
|
|
name='pykusto',
|
|
version=__version__,
|
|
packages=find_packages(exclude=['test']),
|
|
url='https://github.com/Azure/pykusto',
|
|
license='MIT License',
|
|
author='Microsoft Corporation',
|
|
author_email='yomost@microsoft.com',
|
|
description='Advanced python SDK for Azure Data Explorer',
|
|
long_description=open("README.md", "r").read(),
|
|
long_description_content_type="text/markdown",
|
|
keywords="kusto azure-data-explorer client library query",
|
|
cmdclass={'install': CustomInstall},
|
|
install_requires=core_requires + non_pyspark_requires,
|
|
extras_require={
|
|
'test': [
|
|
'pytest',
|
|
'pytest-cov',
|
|
'flake8',
|
|
'typeguard',
|
|
],
|
|
},
|
|
classifiers=[
|
|
"Development Status :: 3 - Alpha",
|
|
"Intended Audience :: Developers",
|
|
"Topic :: Software Development",
|
|
"License :: OSI Approved :: MIT License",
|
|
# Make sure this list matches the tested versions in runtests.yml
|
|
"Programming Language :: Python :: 3.6",
|
|
"Programming Language :: Python :: 3.7",
|
|
"Programming Language :: Python :: 3.8",
|
|
"Programming Language :: Python :: 3.9",
|
|
"License :: OSI Approved :: MIT License",
|
|
],
|
|
)
|