Skip to content

Commit 42f4487

Browse files
authored
Introduced pyproject.toml and moved static metadata from setup.py (confluentinc#1592)
Introduced pyproject.toml and moved static metadata from setup.py
1 parent e17f6e2 commit 42f4487

37 files changed

+149
-169
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
v2.6.1 is a maintenance release with the following fixes and enhancements:
66

7+
- Migrated build system from `setup.py` to `pyproject.toml` in accordance with `PEP 517` and `PEP 518`, improving project configuration, build system requirements management, and compatibility with modern Python packaging tools like `pip` and `build`.
78
- Added an example for OAUTH OIDC producer with support for confluent cloud (#1769, @sarwarbhuiyan)
89

910
confluent-kafka-python is based on librdkafka v2.6.1, see the

DEVELOPER.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,19 @@ This document provides information useful to developers working on confluent-kaf
55

66
## Build
77

8-
$ python setup.py build
8+
$ python -m build
99

1010
If librdkafka is installed in a non-standard location provide the include and library directories with:
1111

12-
$ C_INCLUDE_PATH=/path/to/include LIBRARY_PATH=/path/to/lib python setup.py ...
12+
$ C_INCLUDE_PATH=/path/to/include LIBRARY_PATH=/path/to/lib python -m build
1313

1414
**Note**: On Windows the variables for Visual Studio are named INCLUDE and LIB
1515

1616
## Generate Documentation
1717

18-
Install sphinx and sphinx_rtd_theme packages:
18+
Install docs dependencies:
1919

20-
$ pip install sphinx sphinx_rtd_theme
20+
$ pip install .[docs]
2121

2222
Build HTML docs:
2323

LICENSE.txt renamed to LICENSE

File renamed without changes.

MANIFEST.in

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
include README.md
2-
include LICENSE.txt
3-
include test-requirements.txt
42
include src/confluent_kafka/src/*.[ch]
3+
prune tests
4+
prune docs

Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ all:
55

66

77
clean:
8-
python setup.py clean
8+
pip cache purge
9+
rm -rf dist
910
make -C docs clean
1011

1112
.PHONY: docs

docs/conf.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,6 @@
1313
# serve to show the default.
1414

1515
import sphinx_rtd_theme
16-
import sys
17-
import os
18-
from glob import glob
19-
20-
# If extensions (or modules to document with autodoc) are in another directory,
21-
# add these directories to sys.path here. If the directory is relative to the
22-
# documentation root, use os.path.abspath to make it absolute, like shown here.
23-
sys.path[:0] = [os.path.abspath(x) for x in glob('../build/lib.*')]
2416

2517
# -- General configuration ------------------------------------------------
2618

examples/README.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ To setup a venv with the latest release version of confluent-kafka and dependenc
3030
```
3131
$ python3 -m venv venv_examples
3232
$ source venv_examples/bin/activate
33-
$ cd examples
34-
$ pip install -r requirements.txt
33+
$ pip install confluent_kafka
34+
$ pip install -r requirements/requirements-examples.txt
3535
```
3636

3737
To setup a venv that uses the current source tree version of confluent_kafka, you
@@ -42,9 +42,7 @@ need to have a C compiler and librdkafka installed
4242
```
4343
$ python3 -m venv venv_examples
4444
$ source venv_examples/bin/activate
45-
$ python setup.py develop
46-
$ cd examples
47-
$ pip install -r requirements.txt
45+
$ pip install .[examples]
4846
```
4947

5048
When you're finished with the venv:

examples/docker/Dockerfile.alpine

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,10 @@ RUN \
7373
mkdir -p /usr/src/confluent-kafka-python && \
7474
cd /usr/src/confluent-kafka-python && \
7575
rm -rf build && \
76-
python3 setup.py clean -a && \
77-
python3 setup.py build && \
78-
python3 setup.py install && \
76+
rm -rf dist && \
77+
python3 -m pip install build \
78+
python3 -m build && \
79+
python3 -m pip install dist/confluent_kafka*whl && \
7980
cd / && \
8081
rm -rf /usr/src/confluent-kafka-python
8182

pyproject.toml

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
[build-system]
2+
requires = [ "setuptools>=62", "wheel"]
3+
build-backend = "setuptools.build_meta"
4+
5+
[project]
6+
name = "confluent-kafka"
7+
version = "2.6.0.post1.dev1"
8+
description = "Confluent's Python client for Apache Kafka"
9+
classifiers = [
10+
"Development Status :: 5 - Production/Stable",
11+
"Intended Audience :: Developers",
12+
"License :: OSI Approved :: Apache Software License",
13+
"Programming Language :: Python",
14+
"Programming Language :: Python :: 3",
15+
"Topic :: Software Development :: Libraries :: Python Modules"]
16+
readme = "README.md"
17+
license = { file = "LICENSE" }
18+
requires-python = ">=3.7"
19+
dynamic = ["dependencies", "optional-dependencies"]
20+
21+
[[project.authors]]
22+
name = "Confluent Inc."
23+
email = "support@confluent.io"
24+
25+
[project.urls]
26+
Homepage = "https://github.com/confluentinc/confluent-kafka-python"
27+
28+
[tool.setuptools]
29+
include-package-data = false
30+
31+
[tool.setuptools.dynamic]
32+
dependencies = {file = ["requirements/requirements.txt"]}
33+
optional-dependencies.schemaregistry = { file = ["requirements/requirements-schemaregistry.txt"] }
34+
optional-dependencies.avro = { file = ["requirements/requirements-avro.txt", "requirements/requirements-schemaregistry.txt"] }
35+
optional-dependencies.json = { file = ["requirements/requirements-json.txt", "requirements/requirements-schemaregistry.txt"] }
36+
optional-dependencies.protobuf = { file = ["requirements/requirements-protobuf.txt", "requirements/requirements-schemaregistry.txt"] }
37+
optional-dependencies.dev = { file = [
38+
"requirements/requirements-docs.txt",
39+
"requirements/requirements-examples.txt",
40+
"requirements/requirements-tests.txt",
41+
"requirements/requirements-schemaregistry.txt",
42+
"requirements/requirements-avro.txt",
43+
"requirements/requirements-json.txt",
44+
"requirements/requirements-protobuf.txt"] }
45+
optional-dependencies.docs = { file = [
46+
"requirements/requirements-docs.txt",
47+
"requirements/requirements-schemaregistry.txt",
48+
"requirements/requirements-avro.txt",
49+
"requirements/requirements-json.txt",
50+
"requirements/requirements-protobuf.txt"] }
51+
optional-dependencies.tests = { file = [
52+
"requirements/requirements-tests.txt",
53+
"requirements/requirements-schemaregistry.txt",
54+
"requirements/requirements-avro.txt",
55+
"requirements/requirements-json.txt",
56+
"requirements/requirements-protobuf.txt"] }
57+
optional-dependencies.examples = { file = ["requirements/requirements-examples.txt"] }
58+
optional-dependencies.soaktest = { file = ["requirements/requirements-soaktest.txt"] }
59+
optional-dependencies.all = { file = [
60+
"requirements/requirements-soaktest.txt",
61+
"requirements/requirements-docs.txt",
62+
"requirements/requirements-examples.txt",
63+
"requirements/requirements-tests.txt",
64+
"requirements/requirements-schemaregistry.txt",
65+
"requirements/requirements-avro.txt",
66+
"requirements/requirements-json.txt",
67+
"requirements/requirements-protobuf.txt"] }

requirements/requirements-all.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
-r requirements.txt
2+
-r requirements-schemaregistry.txt
3+
-r requirements-avro.txt
4+
-r requirements-protobuf.txt
5+
-r requirements-json.txt
6+
-r requirements-examples.txt
7+
-r requirements-tests.txt
8+
-r requirements-docs.txt
9+
-r requirements-soaktest.txt

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy