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

haonan pushed a commit to branch refactor_python_package
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit d5a9ef3e061d84e36a3e57d106b5772f62e98212
Author: HTHou <[email protected]>
AuthorDate: Thu Aug 31 17:57:13 2023 +0800

    Refactor python package
---
 .github/workflows/client-python.yml             |  3 ++
 .gitignore                                      |  9 +---
 iotdb-client/client-py/.gitignore               |  2 +
 iotdb-client/client-py/pom.xml                  | 62 ++++++++++++++++++++++++-
 iotdb-client/client-py/release.sh               | 18 ++++---
 iotdb-client/client-py/{ => resources}/setup.py |  2 +-
 6 files changed, 79 insertions(+), 17 deletions(-)

diff --git a/.github/workflows/client-python.yml 
b/.github/workflows/client-python.yml
index 2a96963edd9..5a5368e8597 100644
--- a/.github/workflows/client-python.yml
+++ b/.github/workflows/client-python.yml
@@ -48,6 +48,9 @@ jobs:
           docker images
       - name: Install IoTDB python client requirements
         run: pip3 install -r iotdb-client/client-py/requirements_dev.txt
+      - name: Check code style
+        shell: base
+        run: black iotdb-client/client-py/ --check
       - name: Integration test
         shell: bash
         run: |
diff --git a/.gitignore b/.gitignore
index 7eff5899cd5..812db1ac019 100644
--- a/.gitignore
+++ b/.gitignore
@@ -119,14 +119,9 @@ classes/
 Makefile
 **/CMakeFiles/
 
-### cluster test data
-node1/
-node2/
-node3/
-
 # Exclude copied license
-/client-py/LICENSE
-/mlnode/LICENSE
+iotdb-client/client-py/LICENSE
+iotdb-core/mlnode/LICENSE
 
 # ANTLR
 iotdb-core/antlr/gen/
diff --git a/iotdb-client/client-py/.gitignore 
b/iotdb-client/client-py/.gitignore
index 0778bd56f17..c2e6bdffad3 100644
--- a/iotdb-client/client-py/.gitignore
+++ b/iotdb-client/client-py/.gitignore
@@ -3,3 +3,5 @@
 /build/
 /dist/
 /apache_iotdb.egg-info
+/setup.py
+!/resources/setup/py
diff --git a/iotdb-client/client-py/pom.xml b/iotdb-client/client-py/pom.xml
index 74c6309fd53..fbfbc310aee 100644
--- a/iotdb-client/client-py/pom.xml
+++ b/iotdb-client/client-py/pom.xml
@@ -38,11 +38,10 @@
                     <skip>true</skip>
                 </configuration>
             </plugin>
-            <!-- clean thrift folder -->
+            <!-- clean thrift and old build folder -->
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-clean-plugin</artifactId>
-                <version>2.4.1</version>
                 <configuration>
                     <filesets>
                         <fileset>
@@ -52,6 +51,15 @@
                             </includes>
                             <followSymlinks>false</followSymlinks>
                         </fileset>
+                        <fileset>
+                            <directory>apache_iotdb.egg-info</directory>
+                        </fileset>
+                        <fileset>
+                            <directory>build</directory>
+                        </fileset>
+                        <fileset>
+                            <directory>dist</directory>
+                        </fileset>
                         <fileset>
                             <directory>./</directory>
                             <includes>
@@ -114,9 +122,59 @@
                             </resources>
                         </configuration>
                     </execution>
+                    <execution>
+                        <id>copy-setup-file-resources</id>
+                        <!-- here the phase you need -->
+                        <phase>generate-sources</phase>
+                        <goals>
+                            <goal>copy-resources</goal>
+                        </goals>
+                        <configuration>
+                            <encoding>utf-8</encoding>
+                            <outputDirectory>${basedir}/</outputDirectory>
+                            <resources>
+                                <resource>
+                                    
<directory>${basedir}/target/classes</directory>
+                                    <includes>
+                                        <include>setup.py</include>
+                                    </includes>
+                                </resource>
+                            </resources>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>build-helper-maven-plugin</artifactId>
+                <version>3.4.0</version>
+                <executions>
+                    <execution>
+                        <id>write-python-version</id>
+                        <goals>
+                            <goal>regex-property</goal>
+                        </goals>
+                        <phase>generate-resources</phase>
+                        <configuration>
+                            <name>python_version</name>
+                            <regex>-SNAPSHOT</regex>
+                            <value>${project.version}</value>
+                            <replacement>\.dev0</replacement>
+                            <failIfNoMatch>false</failIfNoMatch>
+                        </configuration>
+                    </execution>
                 </executions>
             </plugin>
         </plugins>
+        <resources>
+            <resource>
+                <directory>${basedir}/.resources</directory>
+                <includes>
+                    <include>setup.py</include>
+                </includes>
+                <filtering>true</filtering>
+            </resource>
+        </resources>
     </build>
     <dependencies>
         <dependency>
diff --git a/iotdb-client/client-py/release.sh 
b/iotdb-client/client-py/release.sh
index 2d9ca299795..df8e0adf76e 100755
--- a/iotdb-client/client-py/release.sh
+++ b/iotdb-client/client-py/release.sh
@@ -1,4 +1,4 @@
-#!/usr/bin/env bash
+#!/bin/bash
 #
 #
 # Licensed to the Apache Software Foundation (ASF) under one
@@ -20,21 +20,25 @@
 #
 
 # the python version must be python3.
-python --version
+python3 --version
 
 rm -Rf build
 rm -Rf dist
 rm -Rf iotdb_session.egg_info
 
 # (Re-)build generated code
-(cd ..; mvn clean generate-sources -pl client-py -am)
+(cd ..; mvn clean package -pl client-py -am)
 
 # Run Linting
-flake8
+black .
 
 # Run unit tests
-pytest .
+if [ "$1" == "test" ]; then
+  pytest .
+fi
 
 # See https://packaging.python.org/tutorials/packaging-projects/
-python setup.py sdist bdist_wheel
-twine upload --repository pypi dist/*
\ No newline at end of file
+python3 setup.py sdist bdist_wheel
+if [ "$1" == "release" ]; then
+  twine upload --repository pypi dist/*
+fi
diff --git a/iotdb-client/client-py/setup.py 
b/iotdb-client/client-py/resources/setup.py
similarity index 98%
rename from iotdb-client/client-py/setup.py
rename to iotdb-client/client-py/resources/setup.py
index 364f42e5ae6..3af2705af26 100644
--- a/iotdb-client/client-py/setup.py
+++ b/iotdb-client/client-py/resources/setup.py
@@ -31,7 +31,7 @@ print(long_description)
 
 setuptools.setup(
     name="apache-iotdb",  # Replace with your own username
-    version="1.0.0",
+    version="${python_version}",
     author=" Apache Software Foundation",
     author_email="[email protected]",
     description="Apache IoTDB client API",

Reply via email to