Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions README.adoc
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
= Eclipse uProtocol Python Library
:toc:

[IMPORTANT,caption="ATTENTION: "]
====
The uProtocol core specification is continually evolving, including major and breaking changes to various aspects of the API and core services.
In contrast to that, the Python uProtocol language library is currently *UNMAINTAINED*. The code in this repository will likely not work together with other, more up-to-date uProtocol language bindings.

Please consider using the Rust uProtocol libraries, as these are by far the most advanced and best maintained uProtocol repositories.
Should you be capable and willing to pick up up-python maintainance, we would love to welcome you in our weekly developer call! (https://eclipsesdv.org/get-involved/ - uProtocol call each Thursday afternoon (UTC))
====

== Overview

This library implements the https://github.com/eclipse-uprotocol/uprotocol-spec/blob/main/languages.adoc[uProtocol Language Specific Library Requirements] for Python defined in https://github.com/eclipse-uprotocol/uprotocol-spec/tree/main[uProtocol Specifications]. The library is organized into packages that are described in <<sdk-packages>> below and organized by the layers of the protocol.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,21 @@
import unittest
from unittest.mock import AsyncMock, MagicMock

from uprotocol.core.usubscription.v3.usubscription_pb2 import (
FetchSubscribersResponse,
FetchSubscriptionsRequest,
FetchSubscriptionsResponse,
SubscriptionResponse,
SubscriptionStatus,
UnsubscribeResponse,
Update,
)
from uprotocol.v1 import uattributes_pb2
from uprotocol.v1.ucode_pb2 import UCode
from uprotocol.v1.umessage_pb2 import UMessage
from uprotocol.v1.uri_pb2 import UUri
from uprotocol.v1.ustatus_pb2 import UStatus

from tests.test_communication.mock_utransport import MockUTransport
from uprotocol.client.usubscription.v3.inmemoryusubcriptionclient import (
InMemoryUSubscriptionClient,
Expand All @@ -29,24 +44,10 @@
from uprotocol.communication.simplenotifier import SimpleNotifier
from uprotocol.communication.upayload import UPayload
from uprotocol.communication.ustatuserror import UStatusError
from uprotocol.core.usubscription.v3.usubscription_pb2 import (
FetchSubscribersResponse,
FetchSubscriptionsRequest,
FetchSubscriptionsResponse,
SubscriptionResponse,
SubscriptionStatus,
UnsubscribeResponse,
Update,
)
from uprotocol.transport.builder.umessagebuilder import UMessageBuilder
from uprotocol.transport.ulistener import UListener
from uprotocol.transport.utransport import UTransport
from uprotocol.uri.serializer.uriserializer import UriSerializer
from uprotocol.v1 import uattributes_pb2
from uprotocol.v1.ucode_pb2 import UCode
from uprotocol.v1.umessage_pb2 import UMessage
from uprotocol.v1.uri_pb2 import UUri
from uprotocol.v1.ustatus_pb2 import UStatus


class MyListener(UListener):
Expand Down
11 changes: 6 additions & 5 deletions tests/test_communication/mock_utransport.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,24 +17,25 @@
from concurrent.futures import ThreadPoolExecutor
from typing import List

from uprotocol.communication.upayload import UPayload
from uprotocol.core.usubscription.v3.usubscription_pb2 import (
SubscriptionRequest,
SubscriptionResponse,
SubscriptionStatus,
UnsubscribeResponse,
)
from uprotocol.transport.builder.umessagebuilder import UMessageBuilder
from uprotocol.transport.ulistener import UListener
from uprotocol.transport.utransport import UTransport
from uprotocol.transport.validator.uattributesvalidator import UAttributesValidator
from uprotocol.v1.uattributes_pb2 import (
UMessageType,
)
from uprotocol.v1.ucode_pb2 import UCode
from uprotocol.v1.umessage_pb2 import UMessage
from uprotocol.v1.uri_pb2 import UUri
from uprotocol.v1.ustatus_pb2 import UStatus

from uprotocol.communication.upayload import UPayload
from uprotocol.transport.builder.umessagebuilder import UMessageBuilder
from uprotocol.transport.ulistener import UListener
from uprotocol.transport.utransport import UTransport
from uprotocol.transport.validator.uattributesvalidator import UAttributesValidator
from uprotocol.validation.validationresult import ValidationResult


Expand Down
3 changes: 2 additions & 1 deletion tests/test_communication/test_calloptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,13 @@

import unittest

from uprotocol.communication.calloptions import CallOptions
from uprotocol.v1.uattributes_pb2 import (
UPriority,
)
from uprotocol.v1.uri_pb2 import UUri

from uprotocol.communication.calloptions import CallOptions


class TestCallOptions(unittest.TestCase):
def test_build_null_call_options(self):
Expand Down
9 changes: 5 additions & 4 deletions tests/test_communication/test_inmemoryrpcclient.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@

import unittest

from uprotocol.v1.uattributes_pb2 import UPriority
from uprotocol.v1.ucode_pb2 import UCode
from uprotocol.v1.uri_pb2 import UUri
from uprotocol.v1.ustatus_pb2 import UStatus

from tests.test_communication.mock_utransport import (
CommStatusTransport,
CommStatusUCodeOKTransport,
Expand All @@ -25,10 +30,6 @@
from uprotocol.communication.upayload import UPayload
from uprotocol.communication.ustatuserror import UStatusError
from uprotocol.transport.utransport import UTransport
from uprotocol.v1.uattributes_pb2 import UPriority
from uprotocol.v1.ucode_pb2 import UCode
from uprotocol.v1.uri_pb2 import UUri
from uprotocol.v1.ustatus_pb2 import UStatus


class TestInMemoryRpcClient(unittest.IsolatedAsyncioTestCase):
Expand Down
9 changes: 5 additions & 4 deletions tests/test_communication/test_inmemoryrpcserver.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,11 @@
from typing import Dict
from unittest.mock import AsyncMock, MagicMock

from uprotocol.v1.ucode_pb2 import UCode
from uprotocol.v1.umessage_pb2 import UMessage
from uprotocol.v1.uri_pb2 import UUri
from uprotocol.v1.ustatus_pb2 import UStatus

from tests.test_communication.mock_utransport import EchoUTransport
from uprotocol.communication.calloptions import CallOptions
from uprotocol.communication.inmemoryrpcclient import InMemoryRpcClient
Expand All @@ -28,10 +33,6 @@
from uprotocol.transport.ulistener import UListener
from uprotocol.transport.utransport import UTransport
from uprotocol.uri.serializer.uriserializer import UriSerializer
from uprotocol.v1.ucode_pb2 import UCode
from uprotocol.v1.umessage_pb2 import UMessage
from uprotocol.v1.uri_pb2 import UUri
from uprotocol.v1.ustatus_pb2 import UStatus


class TestInMemoryRpcServer(unittest.IsolatedAsyncioTestCase):
Expand Down
5 changes: 3 additions & 2 deletions tests/test_communication/test_publisher.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,12 @@

import unittest

from tests.test_communication.mock_utransport import MockUTransport
from uprotocol.communication.uclient import UClient
from uprotocol.v1.ucode_pb2 import UCode
from uprotocol.v1.uri_pb2 import UUri

from tests.test_communication.mock_utransport import MockUTransport
from uprotocol.communication.uclient import UClient


class TestPublisher(unittest.IsolatedAsyncioTestCase):
async def test_send_publish(self):
Expand Down
7 changes: 4 additions & 3 deletions tests/test_communication/test_rpcmapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,15 @@

import unittest

from uprotocol.v1.ucode_pb2 import UCode
from uprotocol.v1.uri_pb2 import UUri
from uprotocol.v1.ustatus_pb2 import UStatus

from tests.test_communication.mock_utransport import MockUTransport
from uprotocol.communication.inmemoryrpcclient import InMemoryRpcClient
from uprotocol.communication.rpcmapper import RpcMapper
from uprotocol.communication.upayload import UPayload
from uprotocol.communication.ustatuserror import UStatusError
from uprotocol.v1.ucode_pb2 import UCode
from uprotocol.v1.uri_pb2 import UUri
from uprotocol.v1.ustatus_pb2 import UStatus


class TestRpcMapper(unittest.IsolatedAsyncioTestCase):
Expand Down
3 changes: 2 additions & 1 deletion tests/test_communication/test_rpcresult.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,11 @@

import unittest

from uprotocol.communication.rpcresult import RpcResult
from uprotocol.v1.ucode_pb2 import UCode
from uprotocol.v1.ustatus_pb2 import UStatus

from uprotocol.communication.rpcresult import RpcResult


class TestRpcResult(unittest.TestCase):
def test_is_success_on_success(self):
Expand Down
9 changes: 5 additions & 4 deletions tests/test_communication/test_simplenotifier.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,16 @@
import unittest
from unittest.mock import MagicMock

from uprotocol.v1.ucode_pb2 import UCode
from uprotocol.v1.umessage_pb2 import UMessage
from uprotocol.v1.uri_pb2 import UUri
from uprotocol.v1.ustatus_pb2 import UStatus

from uprotocol.communication.calloptions import CallOptions
from uprotocol.communication.simplenotifier import SimpleNotifier
from uprotocol.communication.upayload import UPayload
from uprotocol.transport.ulistener import UListener
from uprotocol.transport.utransport import UTransport
from uprotocol.v1.ucode_pb2 import UCode
from uprotocol.v1.umessage_pb2 import UMessage
from uprotocol.v1.uri_pb2 import UUri
from uprotocol.v1.ustatus_pb2 import UStatus


class TestSimpleNotifier(unittest.IsolatedAsyncioTestCase):
Expand Down
7 changes: 4 additions & 3 deletions tests/test_communication/test_simplepublisher.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,14 @@
import unittest
from unittest.mock import MagicMock

from uprotocol.communication.simplepublisher import SimplePublisher
from uprotocol.communication.upayload import UPayload
from uprotocol.transport.utransport import UTransport
from uprotocol.v1.ucode_pb2 import UCode
from uprotocol.v1.uri_pb2 import UUri
from uprotocol.v1.ustatus_pb2 import UStatus

from uprotocol.communication.simplepublisher import SimplePublisher
from uprotocol.communication.upayload import UPayload
from uprotocol.transport.utransport import UTransport


class TestSimplePublisher(unittest.IsolatedAsyncioTestCase):
def setUp(self):
Expand Down
9 changes: 5 additions & 4 deletions tests/test_communication/test_uclient.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,18 @@
import unittest
from unittest.mock import MagicMock, create_autospec

from uprotocol.v1.ucode_pb2 import UCode
from uprotocol.v1.umessage_pb2 import UMessage
from uprotocol.v1.uri_pb2 import UUri
from uprotocol.v1.ustatus_pb2 import UStatus

from tests.test_communication.mock_utransport import EchoUTransport, MockUTransport, TimeoutUTransport
from uprotocol.communication.calloptions import CallOptions
from uprotocol.communication.requesthandler import RequestHandler
from uprotocol.communication.uclient import UClient
from uprotocol.communication.upayload import UPayload
from uprotocol.communication.ustatuserror import UStatusError
from uprotocol.transport.ulistener import UListener
from uprotocol.v1.ucode_pb2 import UCode
from uprotocol.v1.umessage_pb2 import UMessage
from uprotocol.v1.uri_pb2 import UUri
from uprotocol.v1.ustatus_pb2 import UStatus


class MyListener(UListener):
Expand Down
4 changes: 2 additions & 2 deletions tests/test_communication/test_upayload.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@
import unittest

from google.protobuf import message

from uprotocol.communication.upayload import UPayload
from uprotocol.v1.uattributes_pb2 import (
UPayloadFormat,
)
from uprotocol.v1.umessage_pb2 import UMessage
from uprotocol.v1.uri_pb2 import UUri

from uprotocol.communication.upayload import UPayload


class TestUPayload(unittest.TestCase):
def test_is_empty_with_null_upayload(self):
Expand Down
3 changes: 2 additions & 1 deletion tests/test_communication/test_ustatuserror.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,11 @@

import unittest

from uprotocol.communication.ustatuserror import UStatusError
from uprotocol.v1.ucode_pb2 import UCode
from uprotocol.v1.ustatus_pb2 import UStatus

from uprotocol.communication.ustatuserror import UStatusError


class TestUStatusError(unittest.TestCase):
def test_ustatus_exception_constructor(self):
Expand Down
8 changes: 4 additions & 4 deletions tests/test_transport/test_builder/test_umessagebuilder.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,6 @@
import unittest

from google.protobuf.any_pb2 import Any

from uprotocol.communication.upayload import UPayload
from uprotocol.transport.builder.umessagebuilder import UMessageBuilder
from uprotocol.uuid.factory.uuidfactory import Factories
from uprotocol.v1.uattributes_pb2 import (
UAttributes,
UMessageType,
Expand All @@ -29,6 +25,10 @@
from uprotocol.v1.umessage_pb2 import UMessage
from uprotocol.v1.uri_pb2 import UUri

from uprotocol.communication.upayload import UPayload
from uprotocol.transport.builder.umessagebuilder import UMessageBuilder
from uprotocol.uuid.factory.uuidfactory import Factories


def build_source():
return UUri(ue_id=2, ue_version_major=1, resource_id=0)
Expand Down
5 changes: 3 additions & 2 deletions tests/test_transport/test_utransport.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,14 @@

import unittest

from uprotocol.transport.ulistener import UListener
from uprotocol.transport.utransport import UTransport
from uprotocol.v1.ucode_pb2 import UCode
from uprotocol.v1.umessage_pb2 import UMessage
from uprotocol.v1.uri_pb2 import UUri
from uprotocol.v1.ustatus_pb2 import UStatus

from uprotocol.transport.ulistener import UListener
from uprotocol.transport.utransport import UTransport


class MyListener(UListener):
async def on_receive(self, message):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,13 @@
import time
import unittest

from uprotocol.transport.builder.umessagebuilder import UMessageBuilder
from uprotocol.transport.validator.uattributesvalidator import UAttributesValidator, Validators
from uprotocol.v1.uattributes_pb2 import UAttributes, UMessageType, UPriority
from uprotocol.v1.uri_pb2 import UUri
from uprotocol.v1.uuid_pb2 import UUID

from uprotocol.transport.builder.umessagebuilder import UMessageBuilder
from uprotocol.transport.validator.uattributesvalidator import UAttributesValidator, Validators


def build_default_uuri():
return UUri(ue_id=1, ue_version_major=1, resource_id=0)
Expand Down
1 change: 1 addition & 0 deletions tests/test_uri/test_factory/test_uri_factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import unittest

from uprotocol.core.usubscription.v3 import usubscription_pb2

from uprotocol.uri.factory.uri_factory import UriFactory


Expand Down
3 changes: 2 additions & 1 deletion tests/test_uri/test_serializer/test_uriserializer.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,10 @@

import unittest

from uprotocol.v1.uri_pb2 import UUri

from uprotocol.uri.serializer.uriserializer import UriSerializer
from uprotocol.uri.validator.urivalidator import UriValidator
from uprotocol.v1.uri_pb2 import UUri


class TestUriSerializer(unittest.IsolatedAsyncioTestCase):
Expand Down
3 changes: 2 additions & 1 deletion tests/test_uri/test_validator/test_urivalidator.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,10 @@

import unittest

from uprotocol.v1.uri_pb2 import UUri

from uprotocol.uri.serializer.uriserializer import UriSerializer
from uprotocol.uri.validator.urivalidator import UriValidator
from uprotocol.v1.uri_pb2 import UUri


class TestUriValidator(unittest.IsolatedAsyncioTestCase):
Expand Down
3 changes: 2 additions & 1 deletion tests/test_uuid/test_factory/test_uuidfactory.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,11 @@
import unittest
from datetime import datetime, timedelta, timezone

from uprotocol.v1.uuid_pb2 import UUID

from uprotocol.uuid.factory.uuidfactory import Factories
from uprotocol.uuid.factory.uuidutils import UUIDUtils, Version
from uprotocol.uuid.serializer.uuidserializer import UuidSerializer
from uprotocol.v1.uuid_pb2 import UUID


class TestUUIDFactory(unittest.IsolatedAsyncioTestCase):
Expand Down
Loading
Loading