Skip to content

Commit 9b0adc0

Browse files
Add files needed for licensing and versioning (#4)
* Initial commit Signed-off-by: teodordelibasic-db <[email protected]> * Update README and fix LICENSE formatting Signed-off-by: teodordelibasic-db <[email protected]> --------- Signed-off-by: teodordelibasic-db <[email protected]>
1 parent e9be746 commit 9b0adc0

File tree

7 files changed

+165
-12
lines changed

7 files changed

+165
-12
lines changed

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Version changelog
2+
3+
## Release v0.1.0
4+
5+
Initial release of the Databricks Zerobus Ingest SDK for Python.
6+
7+
### API Changes
8+
9+
- Added `ZerobusSdk` class for creating ingestion streams
10+
- Added `ZerobusStream` class for managing stateful gRPC streams
11+
- Added `RecordAcknowledgment` for blocking until record acknowledgment
12+
- Added asynchronous versions: `zerobus.sdk.aio.ZerobusSdk` and `zerobus.sdk.aio.ZerobusStream`
13+
- Added `TableProperties` for configuring table schema and name
14+
- Added `StreamConfigurationOptions` for stream behavior configuration
15+
- Added `ZerobusException` and `NonRetriableException` for error handling
16+
- Added `StreamState` enum for tracking stream lifecycle
17+
- Support for Python 3.9, 3.10, 3.11, 3.12, and 3.13

LICENSE

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
Databricks License
2+
Copyright (2022) Databricks, Inc.
3+
4+
Definitions.
5+
6+
Agreement: The agreement between Databricks, Inc., and you governing
7+
the use of the Databricks Services, as that term is defined in
8+
the Master Cloud Services Agreement (MCSA) located at
9+
www.databricks.com/legal/mcsa.
10+
11+
Licensed Materials: The source code, object code, data, and/or other
12+
works to which this license applies.
13+
14+
Scope of Use. You may not use the Licensed Materials except in
15+
connection with your use of the Databricks Services pursuant to
16+
the Agreement. Your use of the Licensed Materials must comply at all
17+
times with any restrictions applicable to the Databricks Services,
18+
generally, and must be used in accordance with any applicable
19+
documentation. You may view, use, copy, modify, publish, and/or
20+
distribute the Licensed Materials solely for the purposes of using
21+
the Licensed Materials within or connecting to the Databricks Services.
22+
If you do not agree to these terms, you may not view, use, copy,
23+
modify, publish, and/or distribute the Licensed Materials.
24+
25+
Redistribution. You may redistribute and sublicense the Licensed
26+
Materials so long as all use is in compliance with these terms.
27+
In addition:
28+
29+
- You must give any other recipients a copy of this License;
30+
- You must cause any modified files to carry prominent notices
31+
stating that you changed the files;
32+
- You must retain, in any derivative works that you distribute,
33+
all copyright, patent, trademark, and attribution notices,
34+
excluding those notices that do not pertain to any part of
35+
the derivative works; and
36+
- If a "NOTICE" text file is provided as part of its
37+
distribution, then any derivative works that you distribute
38+
must include a readable copy of the attribution notices
39+
contained within such NOTICE file, excluding those notices
40+
that do not pertain to any part of the derivative works.
41+
42+
You may add your own copyright statement to your modifications and may
43+
provide additional license terms and conditions for use, reproduction,
44+
or distribution of your modifications, or for any such derivative works
45+
as a whole, provided your use, reproduction, and distribution of
46+
the Licensed Materials otherwise complies with the conditions stated
47+
in this License.
48+
49+
Termination. This license terminates automatically upon your breach of
50+
these terms or upon the termination of your Agreement. Additionally,
51+
Databricks may terminate this license at any time on notice. Upon
52+
termination, you must permanently delete the Licensed Materials and
53+
all copies thereof.
54+
55+
DISCLAIMER; LIMITATION OF LIABILITY.
56+
57+
THE LICENSED MATERIALS ARE PROVIDED “AS-IS” AND WITH ALL FAULTS.
58+
DATABRICKS, ON BEHALF OF ITSELF AND ITS LICENSORS, SPECIFICALLY
59+
DISCLAIMS ALL WARRANTIES RELATING TO THE LICENSED MATERIALS, EXPRESS
60+
AND IMPLIED, INCLUDING, WITHOUT LIMITATION, IMPLIED WARRANTIES,
61+
CONDITIONS AND OTHER TERMS OF MERCHANTABILITY, SATISFACTORY QUALITY OR
62+
FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. DATABRICKS AND
63+
ITS LICENSORS TOTAL AGGREGATE LIABILITY RELATING TO OR ARISING OUT OF
64+
YOUR USE OF OR DATABRICKS’ PROVISIONING OF THE LICENSED MATERIALS SHALL
65+
BE LIMITED TO ONE THOUSAND ($1,000) DOLLARS. IN NO EVENT SHALL
66+
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
67+
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
68+
ARISING FROM, OUT OF OR IN CONNECTION WITH THE LICENSED MATERIALS OR
69+
THE USE OR OTHER DEALINGS IN THE LICENSED MATERIALS.

MANIFEST.in

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
include README.md
2+
include LICENSE
3+
include NOTICE
4+
include CHANGELOG.md
5+
include DCO
6+
include Makefile
7+
include SECURITY.md
8+
include CONTRIBUTING.md
9+
include pyproject.toml
10+
11+
recursive-exclude examples *
12+
recursive-exclude tests *

NEXT_CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# NEXT CHANGELOG
2+
3+
## Release v0.2.0
4+
5+
### New Features and Improvements
6+
7+
### Bug Fixes
8+
9+
### Documentation
10+
11+
### Internal Changes
12+
13+
### API Changes

NOTICE

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
Copyright (2025) Databricks, Inc.
2+
3+
This Software includes software developed at Databricks (https://www.databricks.com/) and its use is subject to the included LICENSE file.
4+
5+
---
6+
7+
This Software includes the following open source components:
8+
9+
## Apache License 2.0
10+
11+
### requests
12+
Copyright 2019 Kenneth Reitz
13+
https://github.com/psf/requests
14+
License: https://github.com/psf/requests/blob/main/LICENSE
15+
16+
### grpcio
17+
Copyright 2014 gRPC authors
18+
https://github.com/grpc/grpc
19+
License: https://github.com/grpc/grpc/blob/master/LICENSE
20+
21+
## BSD 3-Clause License
22+
23+
### protobuf
24+
Copyright 2008 Google Inc.
25+
https://github.com/protocolbuffers/protobuf
26+
License: https://github.com/protocolbuffers/protobuf/blob/main/LICENSE

README.md

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
11
# Databricks Zerobus Ingest SDK for Python
22

3-
[![Python](https://img.shields.io/badge/python-3.9+-blue)](https://www.python.org/)
3+
[![PyPI - Downloads](https://img.shields.io/pypi/dw/databricks-zerobus-ingest-sdk)](https://pypistats.org/packages/databricks-zerobus-ingest-sdk)
4+
[![PyPI - License](https://img.shields.io/pypi/l/databricks-zerobus-ingest-sdk)](https://github.com/databricks/zerobus-sdk-py/blob/main/LICENSE)
5+
![PyPI](https://img.shields.io/pypi/v/databricks-zerobus-ingest-sdk)
46

5-
The Databricks Zerobus Ingest SDK for Python provides a high-performance client for ingesting data directly into Databricks Delta tables using the Zerobus streaming protocol.
7+
[Public Preview](https://docs.databricks.com/release-notes/release-types.html): This SDK is supported for production use cases and is available to all customers. Databricks is actively working on stabilizing the Zerobus Ingest SDK for Python. Minor version updates may include backwards-incompatible changes.
8+
9+
We are keen to hear feedback from you on this SDK. Please [file issues](https://github.com/databricks/zerobus-sdk-py/issues), and we will address them.
10+
11+
The Databricks Zerobus Ingest SDK for Python provides a high-performance client for ingesting data directly into Databricks Delta tables using the Zerobus streaming protocol. | See also the [SDK for Rust](https://github.com/databricks/zerobus-sdk-rs) | See also the [SDK for Java](https://github.com/databricks/zerobus-sdk-java)
612

713
## Table of Contents
814

15+
- [Disclaimer](#disclaimer)
916
- [Features](#features)
1017
- [Requirements](#requirements)
1118
- [Quick Start User Guide](#quick-start-user-guide)
@@ -21,7 +28,6 @@ The Databricks Zerobus Ingest SDK for Python provides a high-performance client
2128
- [Error Handling](#error-handling)
2229
- [API Reference](#api-reference)
2330
- [Best Practices](#best-practices)
24-
- [Disclaimer](#disclaimer)
2531

2632
## Features
2733

@@ -108,8 +114,18 @@ GRANT SELECT, MODIFY ON TABLE <catalog_name>.default.air_quality TO `<service-pr
108114

109115
### Installation
110116

117+
#### From PyPI
118+
119+
Install the latest stable version using pip:
120+
121+
```bash
122+
pip install databricks-zerobus-ingest
123+
```
124+
111125
#### From Source
112126

127+
Clone the repository and install from source:
128+
113129
```bash
114130
git clone https://github.com/databricks/zerobus-sdk-py.git
115131
cd zerobus-sdk-py
@@ -748,9 +764,3 @@ NonRetriableException(message: str, cause: Exception = None)
748764
5. **Monitoring**: Use `ack_callback` to track ingestion progress
749765
6. **Choose the right API**: Use sync API for low-volume, async API for high-volume ingestion
750766
7. **Token refresh**: Tokens are automatically refreshed on stream creation and recovery
751-
752-
## Disclaimer
753-
754-
[Public Preview](https://docs.databricks.com/release-notes/release-types.html): This SDK is supported for production use cases and is available to all customers. Databricks is actively working on stabilizing the Zerobus Ingest SDK for Python. Minor version updates may include backwards-incompatible changes.
755-
756-
We are keen to hear feedback from you on this SDK. Please [file issues](https://github.com/databricks/zerobus-sdk-py/issues), and we will address them.

pyproject.toml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
[build-system]
2-
requires = ["setuptools>=61.0.0", "wheel"]
2+
requires = ["setuptools>=77", "wheel"]
33
build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "databricks-zerobus-ingest-sdk"
7-
version = "0.1.0"
7+
dynamic = ["version"]
88
description = "Databricks Zerobus Ingest SDK for Python"
9+
readme = "README.md"
910
requires-python = ">=3.9"
1011
keywords = ["zerobus", "databricks", "sdk"]
12+
license = "LicenseRef-Proprietary"
13+
license-files = ["LICENSE"]
1114
classifiers = [
12-
"Development Status :: 4 - Beta",
15+
"Development Status :: 5 - Production/Stable",
1316
"Intended Audience :: Developers",
1417
"Intended Audience :: Science/Research",
1518
"Intended Audience :: System Administrators",
@@ -44,6 +47,9 @@ dev = [
4447
"pytest-asyncio",
4548
]
4649

50+
[tool.setuptools.dynamic]
51+
version = {attr = "zerobus.__version__"}
52+
4753
[tool.setuptools.packages.find]
4854
include = ["zerobus", "zerobus.*"]
4955

0 commit comments

Comments
 (0)