You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by mm...@apache.org on 2018/03/13 16:22:38 UTC
[incubator-pulsar] branch master updated: Moved Python Api to a
functions module inside pulsar client python module (#1375)
This is an automated email from the ASF dual-hosted git repository.
mmerli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-pulsar.git
The following commit(s) were added to refs/heads/master by this push:
new 9333202 Moved Python Api to a functions module inside pulsar client python module (#1375)
9333202 is described below
commit 933320223fc281642bdaff3e9b2aa7314c5754b4
Author: Sanjeev Kulkarni <sa...@gmail.com>
AuthorDate: Tue Mar 13 09:22:35 2018 -0700
Moved Python Api to a functions module inside pulsar client python module (#1375)
---
.../api-python => pulsar-client-cpp/python/functions}/__init__.py | 2 +-
.../api-python => pulsar-client-cpp/python/functions}/context.py | 0
.../python/functions/function.py | 6 +++---
.../api-python => pulsar-client-cpp/python/functions}/serde.py | 0
pulsar-client-cpp/python/pulsar.py | 3 +++
pulsar-functions/instance/src/main/python/contextimpl.py | 4 ++--
pulsar-functions/instance/src/main/python/python_instance_main.py | 2 +-
pulsar-functions/instance/src/main/python/util.py | 2 +-
pulsar-functions/python-examples/exclamation.py | 4 ++--
pulsar-functions/python-examples/logfunction.py | 4 ++--
pulsar-functions/python-examples/thumbnailer.py | 4 ++--
pulsar-functions/runtime/pom.xml | 3 +--
12 files changed, 18 insertions(+), 16 deletions(-)
diff --git a/pulsar-functions/api-python/__init__.py b/pulsar-client-cpp/python/functions/__init__.py
similarity index 96%
rename from pulsar-functions/api-python/__init__.py
rename to pulsar-client-cpp/python/functions/__init__.py
index d70b15f..b14a932 100644
--- a/pulsar-functions/api-python/__init__.py
+++ b/pulsar-client-cpp/python/functions/__init__.py
@@ -18,4 +18,4 @@
# under the License.
#
-# -*- encoding: utf-8 -*-
\ No newline at end of file
+# -*- encoding: utf-8 -*-
diff --git a/pulsar-functions/api-python/context.py b/pulsar-client-cpp/python/functions/context.py
similarity index 100%
rename from pulsar-functions/api-python/context.py
rename to pulsar-client-cpp/python/functions/context.py
diff --git a/pulsar-functions/api-python/pulsar_function.py b/pulsar-client-cpp/python/functions/function.py
similarity index 93%
rename from pulsar-functions/api-python/pulsar_function.py
rename to pulsar-client-cpp/python/functions/function.py
index 1226dd4..dde92b8 100644
--- a/pulsar-functions/api-python/pulsar_function.py
+++ b/pulsar-client-cpp/python/functions/function.py
@@ -37,15 +37,15 @@
# specific language governing permissions and limitations
# under the License.
#
-"""pulsar_function.py: This is the core interface of the function api.
+"""function.py: This is the core interface of the function api.
# The process method is called for every message of the input topic of the
# function. The incoming input bytes are deserialized using the serde.
# The process function can optionally emit an output
"""
from abc import abstractmethod
-class PulsarFunction(object):
- """Interface for Heron Metric"""
+class Function(object):
+ """Interface for Pulsar Function"""
@abstractmethod
def process(self, input, context):
"""Process input message"""
diff --git a/pulsar-functions/api-python/serde.py b/pulsar-client-cpp/python/functions/serde.py
similarity index 100%
rename from pulsar-functions/api-python/serde.py
rename to pulsar-client-cpp/python/functions/serde.py
diff --git a/pulsar-client-cpp/python/pulsar.py b/pulsar-client-cpp/python/pulsar.py
index a4c6c87..b6e5faf 100644
--- a/pulsar-client-cpp/python/pulsar.py
+++ b/pulsar-client-cpp/python/pulsar.py
@@ -103,6 +103,9 @@ import _pulsar
from _pulsar import Result, CompressionType, ConsumerType, PartitionsRoutingMode # noqa: F401
+from functions.function import Function
+from functions.context import Context
+from functions.serde import SerDe, IdentitySerDe, PickleSerDe
class MessageId:
"""
diff --git a/pulsar-functions/instance/src/main/python/contextimpl.py b/pulsar-functions/instance/src/main/python/contextimpl.py
index b021421..6a3a5da 100644
--- a/pulsar-functions/instance/src/main/python/contextimpl.py
+++ b/pulsar-functions/instance/src/main/python/contextimpl.py
@@ -26,7 +26,7 @@
import time
import os
-from pulsarfunction import context
+import pulsar
import util
import InstanceCommunication_pb2
@@ -46,7 +46,7 @@ class AccumulatedMetricDatum(object):
if value < self.min:
self.min = value
-class ContextImpl(context.Context):
+class ContextImpl(pulsar.Context):
def __init__(self, instance_config, logger, pulsar_client, user_code, consumers):
self.instance_config = instance_config
self.log = logger
diff --git a/pulsar-functions/instance/src/main/python/python_instance_main.py b/pulsar-functions/instance/src/main/python/python_instance_main.py
index 4fe1641..0bf02b0 100644
--- a/pulsar-functions/instance/src/main/python/python_instance_main.py
+++ b/pulsar-functions/instance/src/main/python/python_instance_main.py
@@ -51,7 +51,7 @@ def main():
signal.signal(signal.SIGHUP, atexit_function)
signal.signal(signal.SIGINT, atexit_function)
- parser = argparse.ArgumentParser(description='Heron Python Instance')
+ parser = argparse.ArgumentParser(description='Pulsar Functions Python Instance')
parser.add_argument('--function_classname', required=True, help='Function Class Name')
parser.add_argument('--py', required=True, help='Full Path of Function Code File')
parser.add_argument('--name', required=True, help='Function Name')
diff --git a/pulsar-functions/instance/src/main/python/util.py b/pulsar-functions/instance/src/main/python/util.py
index efa238d..643cbac 100644
--- a/pulsar-functions/instance/src/main/python/util.py
+++ b/pulsar-functions/instance/src/main/python/util.py
@@ -29,7 +29,7 @@ import sys
import log
Log = log.Log
-PULSARFUNCTIONAPIROOT = 'pulsarfunction'
+PULSARFUNCTIONAPIROOT = 'functions'
def import_class(from_path, full_class_name):
kclass = import_class_from_path(from_path, full_class_name)
diff --git a/pulsar-functions/python-examples/exclamation.py b/pulsar-functions/python-examples/exclamation.py
index d67ede9..d8a14f7 100755
--- a/pulsar-functions/python-examples/exclamation.py
+++ b/pulsar-functions/python-examples/exclamation.py
@@ -19,9 +19,9 @@
#
-from pulsarfunction import pulsar_function
+from pulsar import Function
-class Exclamation(pulsar_function.PulsarFunction):
+class Exclamation(Function):
def __init__(self):
pass
diff --git a/pulsar-functions/python-examples/logfunction.py b/pulsar-functions/python-examples/logfunction.py
index 4c59124..504cdc5 100755
--- a/pulsar-functions/python-examples/logfunction.py
+++ b/pulsar-functions/python-examples/logfunction.py
@@ -19,9 +19,9 @@
#
-from pulsarfunction import pulsar_function
+from pulsar import Function
-class LogFunction(pulsar_function.PulsarFunction):
+class LogFunction(Function):
def __init__(self):
pass
diff --git a/pulsar-functions/python-examples/thumbnailer.py b/pulsar-functions/python-examples/thumbnailer.py
index f5124ca..3448aac 100755
--- a/pulsar-functions/python-examples/thumbnailer.py
+++ b/pulsar-functions/python-examples/thumbnailer.py
@@ -18,10 +18,10 @@
# under the License.
#
-from pulsarfunction import pulsar_function
+from pulsar import Function
from PIL import Image
-class Thumbnailer(pulsar_function.PulsarFunction):
+class Thumbnailer(Function):
def process(self, input, context):
im = Image.frombytes(input)
diff --git a/pulsar-functions/runtime/pom.xml b/pulsar-functions/runtime/pom.xml
index b671182..4b2f16f 100644
--- a/pulsar-functions/runtime/pom.xml
+++ b/pulsar-functions/runtime/pom.xml
@@ -70,9 +70,8 @@
<tasks>
<echo>building python instance</echo>
<mkdir dir="${basedir}/target/python-instance"/>
- <mkdir dir="${basedir}/target/python-instance/pulsarfunction"/>
<copydir src="${basedir}/../instance/src/main/python" dest="${basedir}/target/python-instance"/>
- <copydir src="${basedir}/../api-python" dest="${basedir}/target/python-instance/pulsarfunction"/>
+ <copydir src="${basedir}/../../pulsar-client-cpp/python" dest="${basedir}/target/python-instance"/>
</tasks>
</configuration>
</execution>
--
To stop receiving notification emails like this one, please contact
mmerli@apache.org.