blob: 10cd12bb92271a789c82674e5f9616da878dc22b [file] [edit]
import os
import re
from distutils.core import setup
def _version_from_changelog():
"""Derives the PyPI package version from the top entry of CHANGELOG.
The CHANGELOG uses entries like 'vX.Y - YYYY-MM-DD:' for released versions
(and 'Unreleased:' at the top while a release is in flight). The first
matching 'vX.Y' line is mapped to the PyPI version '0.X.Y' — keeping the
package in the 0.x series while encoding the Perfetto release in the
minor/patch components.
"""
changelog = os.path.join(
os.path.dirname(os.path.abspath(__file__)), os.pardir, 'CHANGELOG')
with open(changelog) as f:
for line in f:
m = re.match(r'^v(\d+)[.](\d+)\s', line)
if m:
return '0.%s.%s' % (m.group(1), m.group(2))
raise RuntimeError('No vX.Y entry found in %s' % changelog)
setup(
name='perfetto',
packages=[
'perfetto',
'perfetto.batch_trace_processor',
'perfetto.common',
'perfetto.protos.perfetto.trace',
'perfetto.trace_builder',
'perfetto.trace_processor',
'perfetto.trace_uri_resolver',
],
package_data={
'perfetto.trace_processor': ['*.descriptor'],
},
include_package_data=True,
version=_version_from_changelog(),
license='apache-2.0',
description='Python APIs and bindings for Perfetto (perfetto.dev)',
author='Perfetto',
author_email='perfetto-pypi@google.com',
url='https://perfetto.dev/',
download_url='https://github.com/google/perfetto/archive/bb5f4f019e2a1b5bc6e4c8203f05890d96467cf7.zip',
keywords=['trace processor', 'tracing', 'perfetto'],
install_requires=[
'protobuf',
],
extras_require={
'numpy': ['numpy'],
'pandas': ['pandas'],
'polars': ['polars'],
},
classifiers=[
'Development Status :: 3 - Alpha',
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
],
)