This is an automated email from the ASF dual-hosted git repository.

chaokunyang pushed a commit to tag v0.10.4
in repository https://gitbox.apache.org/repos/asf/fory.git

commit 6a28e58cd2a93d39ea769568025b7ae033face22
Author: chaokunyang <[email protected]>
AuthorDate: Mon Aug 18 19:47:24 2025 +0800

    update pyfury 0.10.3 readme to avoid use
---
 .github/workflows/release.yaml |  15 ++---
 python/README.md               | 126 ++++++++++++++++++++++++++++++-----------
 python/setup.py                |   1 +
 3 files changed, 98 insertions(+), 44 deletions(-)

diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
index abcc87b30..986b42d65 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/release.yaml
@@ -20,13 +20,12 @@ name: Publish Fury
 on:
   push:
     tags:
-      - "disabled*"
+      - "v*"
 
 jobs:
   release-python:
     name: Publish Fury Python to PyPI
-    runs-on: ubuntu-20.04
-    if: github.repository == 'apache/fury'
+    runs-on: ubuntu-latest
     environment:
       name: pypi
       url: https://pypi.org/project/pyfury
@@ -41,14 +40,6 @@ jobs:
           python-version: ${{ matrix.python-version }}
       - name: Install bazel
         run: ./ci/run_ci.sh install_bazel
-      - name: Update version in setup.py
-        run: |
-          echo "GITHUB_REF: $GITHUB_REF"
-          tag=$(echo $GITHUB_REF | cut -d / -f 3)
-          echo "tag: $tag"
-          version=${tag:1}
-          echo "version $version"
-          ci/deploy.sh bump_py_version $version
       - name: Build a binary wheel
         run: |
           ci/deploy.sh install_pyarrow
@@ -64,4 +55,6 @@ jobs:
         with:
           user: __token__
           password: ${{ secrets.PYPI_API_TOKEN }}
+          skip-existing: true
+          verify-metadata: false
           packages-dir: dist
diff --git a/python/README.md b/python/README.md
index 73704ab10..db6f17547 100644
--- a/python/README.md
+++ b/python/README.md
@@ -1,51 +1,111 @@
 # Apache Fury™ Python
 
-Fury is a blazingly-fast multi-language serialization framework powered by 
just-in-time compilation and zero-copy.
+Apache Fury(incubating) is a blazingly-fast multi-language serialization 
framework powered by just-in-time compilation and zero-copy.
 
-## Build Fury Python
+## Important Announcement
 
-```bash
-cd python
-pip install pyarrow==14.0.0 Cython wheel numpy pytest
-pip install -v -e .
-```
+Starting from v0.11.0, Apache Fury has been renamed to [Apache 
Fory](https://github.com/apache/fory). Please use 
[pyfory](https://pypi.org/project/pyfory/) for the latest version.
+
+For versions before 0.11, continue using "fury" in package names, imports, and 
dependencies. Refer to the [Fury 
Docs](https://fory.apache.org/docs/0.10/docs/introduction/) for usage 
instructions in older versions.
 
-### Environment Requirements
+For more details about the renaming, please visit 
https://fory.apache.org/blog/fury_renamed_to_fory
 
-- python 3.6+
+## Install Pyfury
 
-## Testing
+For version 0.11 and later:
 
-```bash
-cd python
-pytest -v -s .
+```
+pip install pyfory
 ```
 
-## Code Style
+For versions before 0.11:
 
-```bash
-cd python
-# install dependencies fro styling
-pip install black==22.1.0 flake8==3.9.1 flake8-quotes flake8-bugbear 
click==8.0.2
-# flake8 pyfury: prompts for code to be formatted, but not formatted
-flake8 pyfury
-# black pyfury: format python code
-black pyfury
+```
+pip install pyfury
 ```
 
-## Debug
+## Getting Started
 
-```bash
-cd python
-python setup.py develop
+### Object graph serialization
+
+```python
+from dataclasses import dataclass
+import pyfory
+
+class Foo:
+    name: str:
+    age: int
+pyfory.register(Foo)
+bytes = pyfory.serialize(Foo("Shawn", 30))  # Ultra-fast encoding
+restored = pyfory.deserialize(bytes)  # Instant decoding
 ```
 
-- Use `cython --cplus -a  pyfury/_serialization.pyx` to produce an annotated 
HTML file of the source code. Then you can
-  analyze interaction between Python objects and Python's C API.
-- Read more: 
<https://cython.readthedocs.io/en/latest/src/userguide/debugging.html>
+### Row format zero-copy serialization
+
+```java
+public class Bar {
+  String f1;
+  List<Long> f2;
+}
+
+public class Foo {
+  int f1;
+  List<Integer> f2;
+  Map<String, Integer> f3;
+  List<Bar> f4;
+}
+
+RowEncoder<Foo> encoder = Encoders.bean(Foo.class);
+Foo foo = new Foo();
+foo.f1 = 10;
+foo.f2 = IntStream.range(0, 1000000).boxed().collect(Collectors.toList());
+foo.f3 = IntStream.range(0, 1000000).boxed().collect(Collectors.toMap(i -> 
"k"+i, i->i));
+List<Bar> bars = new ArrayList<>(1000000);
+for (int i = 0; i < 1000000; i++) {
+  Bar bar = new Bar();
+  bar.f1 = "s"+i;
+  bar.f2 = LongStream.range(0, 10).boxed().collect(Collectors.toList());
+  bars.add(bar);
+}
+foo.f4 = bars;
+// Can be zero-copy read by python
+BinaryRow binaryRow = encoder.toRow(foo);
+// can be data from python
+Foo newFoo = encoder.fromRow(binaryRow);
+// zero-copy read List<Integer> f2
+BinaryArray binaryArray2 = binaryRow.getArray(1);
+// zero-copy read List<Bar> f4
+BinaryArray binaryArray4 = binaryRow.getArray(3);
+// zero-copy read 11th element of `readList<Bar> f4`
+BinaryRow barStruct = binaryArray4.getStruct(10);
+
+// zero-copy read 6th of f2 of 11th element of `readList<Bar> f4`
+barStruct.getArray(1).getInt64(5);
+RowEncoder<Bar> barEncoder = Encoders.bean(Bar.class);
+// deserialize part of data.
+Bar newBar = barEncoder.fromRow(barStruct);
+Bar newBar2 = barEncoder.fromRow(binaryArray4.getStruct(20));
+```
+
+### Python
+
+```python
+@dataclass
+class Bar:
+    f1: str
+    f2: List[pa.int64]
+@dataclass
+class Foo:
+    f1: pa.int32
+    f2: List[pa.int32]
+    f3: Dict[str, pa.int32]
+    f4: List[Bar]
 
-```bash
-FURY_DEBUG=true python setup.py build_ext --inplace
-# For linux
-cygdb build
+encoder = pyfury.encoder(Foo)
+foo = Foo(f1=10, f2=list(range(1000_000)),
+         f3={f"k{i}": i for i in range(1000_000)},
+         f4=[Bar(f1=f"s{i}", f2=list(range(10))) for i in range(1000_000)])
+binary: bytes = encoder.to_row(foo).to_bytes()
+foo_row = pyfury.RowData(encoder.schema, binary)
+print(foo_row.f2[100000], foo_row.f4[100000].f1, foo_row.f4[200000].f2[5])
 ```
diff --git a/python/setup.py b/python/setup.py
index de19d85ad..20f6b46f0 100644
--- a/python/setup.py
+++ b/python/setup.py
@@ -51,5 +51,6 @@ class BinaryDistribution(Distribution):
 
 if __name__ == "__main__":
     setup(
+        name="pyfury",
         distclass=BinaryDistribution,
     )


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to