1# Copyright 2017 The Abseil Authors. 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15"""Abseil setup configuration.""" 16 17import os 18import sys 19 20# pylint: disable=g-import-not-at-top 21try: 22 import setuptools 23except ImportError: 24 from ez_setup import use_setuptools 25 use_setuptools() 26 import setuptools 27# pylint: enable=g-import-not-at-top 28 29if sys.version_info < (3, 7): 30 raise RuntimeError('Python version 3.7+ is required.') 31 32setuptools_version = tuple( 33 int(x) for x in setuptools.__version__.split('.')[:2]) 34 35additional_kwargs = {} 36if setuptools_version >= (24, 2): 37 # `python_requires` was added in 24.2, see 38 # https://packaging.python.org/guides/distributing-packages-using-setuptools/#python-requires 39 additional_kwargs['python_requires'] = '>=3.7' 40 41_README_PATH = os.path.join( 42 os.path.dirname(os.path.realpath(__file__)), 'README.md') 43with open(_README_PATH, 'rb') as fp: 44 LONG_DESCRIPTION = fp.read().decode('utf-8') 45 46setuptools.setup( 47 name='absl-py', 48 version='2.1.0', 49 description=( 50 'Abseil Python Common Libraries, ' 51 'see https://github.com/abseil/abseil-py.' 52 ), 53 long_description=LONG_DESCRIPTION, 54 long_description_content_type='text/markdown', 55 author='The Abseil Authors', 56 url='https://github.com/abseil/abseil-py', 57 packages=setuptools.find_packages( 58 exclude=[ 59 '*.tests', 60 '*.tests.*', 61 'tests.*', 62 'tests', 63 ] 64 ), 65 include_package_data=True, 66 license='Apache 2.0', 67 classifiers=[ 68 'Programming Language :: Python', 69 'Programming Language :: Python :: 3', 70 'Programming Language :: Python :: 3.7', 71 'Programming Language :: Python :: 3.8', 72 'Programming Language :: Python :: 3.9', 73 'Programming Language :: Python :: 3.10', 74 'Programming Language :: Python :: 3.11', 75 'Programming Language :: Python :: 3.12', 76 'Intended Audience :: Developers', 77 'Topic :: Software Development :: Libraries :: Python Modules', 78 'License :: OSI Approved :: Apache Software License', 79 'Operating System :: OS Independent', 80 ], 81 **additional_kwargs, 82) 83