mirror of
https://github.com/protocolbuffers/protobuf
synced 2026-08-26 02:23:14 -04:00
There's a test run in test_python.yml that is non-trivial to get working with Python 3.12 due to some refactoring of our Docker images that would be needed. But this change updates everything else to add coverage for Python 3.12. The main changes necessary to get the builds working were to upgrade some Pip packages via requirements.txt, including in a patch to `rules_fuzzing` that I plan to upstream soon. I also had to take an explicit dependency on `setuptools`. I removed tox.ini, since it was outdated and we have not been actively maintaining it. PiperOrigin-RevId: 580548224
79 lines
2.4 KiB
Python
Executable file
79 lines
2.4 KiB
Python
Executable file
#! /usr/bin/env python
|
|
# Protocol Buffers - Google's data interchange format
|
|
# Copyright 2008 Google Inc. All rights reserved.
|
|
#
|
|
# Use of this source code is governed by a BSD-style
|
|
# license that can be found in the LICENSE file or at
|
|
# https://developers.google.com/open-source/licenses/bsd
|
|
#
|
|
# See README for usage instructions.
|
|
|
|
import glob
|
|
import os
|
|
import sys
|
|
import sysconfig
|
|
|
|
from setuptools import setup, Extension, find_packages
|
|
|
|
|
|
def GetVersion():
|
|
"""Reads and returns the version from google/protobuf/__init__.py.
|
|
|
|
Do not import google.protobuf.__init__ directly, because an installed
|
|
protobuf library may be loaded instead.
|
|
|
|
Returns:
|
|
The version.
|
|
"""
|
|
|
|
with open(os.path.join('google', 'protobuf', '__init__.py')) as version_file:
|
|
file_globals = {}
|
|
exec(version_file.read(), file_globals) # pylint:disable=exec-used
|
|
return file_globals["__version__"]
|
|
|
|
|
|
current_dir = os.path.dirname(os.path.abspath(__file__))
|
|
extra_link_args = []
|
|
|
|
if sys.platform.startswith('win'):
|
|
extra_link_args = ['-static']
|
|
|
|
setup(
|
|
name='protobuf',
|
|
version=GetVersion(),
|
|
description='Protocol Buffers',
|
|
download_url='https://github.com/protocolbuffers/protobuf/releases',
|
|
long_description="Protocol Buffers are Google's data interchange format",
|
|
url='https://developers.google.com/protocol-buffers/',
|
|
project_urls={
|
|
'Source': 'https://github.com/protocolbuffers/protobuf',
|
|
},
|
|
maintainer='protobuf@googlegroups.com',
|
|
maintainer_email='protobuf@googlegroups.com',
|
|
license='BSD-3-Clause',
|
|
classifiers=[
|
|
'Programming Language :: Python',
|
|
'Programming Language :: Python :: 3',
|
|
'Programming Language :: Python :: 3.8',
|
|
'Programming Language :: Python :: 3.9',
|
|
'Programming Language :: Python :: 3.10',
|
|
'Programming Language :: Python :: 3.11',
|
|
'Programming Language :: Python :: 3.12',
|
|
],
|
|
namespace_packages=['google'],
|
|
packages=find_packages(),
|
|
install_requires=[],
|
|
ext_modules=[
|
|
Extension(
|
|
'google._upb._message',
|
|
glob.glob('google/protobuf/*.c')
|
|
+ glob.glob('python/*.c')
|
|
+ glob.glob('upb/**/*.c', recursive=True)
|
|
+ glob.glob('utf8_range/*.c'),
|
|
include_dirs=[current_dir, os.path.join(current_dir, 'utf8_range')],
|
|
language='c',
|
|
extra_link_args=extra_link_args,
|
|
)
|
|
],
|
|
python_requires='>=3.8',
|
|
)
|