Code Monkey home page Code Monkey logo

python's Introduction

PubNub Python SDK

Build Status PyPI PyPI Docs

This is the official PubNub Python SDK repository.

Note: Python SDK version 5.0 no longer supports Python 2.7, Twisted or Tornado, if you still require support for these please use SDK version 4.8.1

PubNub takes care of the infrastructure and APIs needed for the realtime communication layer of your application. Work on your app's logic and let PubNub handle sending and receiving data across the world in less than 100ms.

Get keys

You will need the publish and subscribe keys to authenticate your app. Get your keys from the Admin Portal.

Configure PubNub

  1. Integrate the Python SDK into your project using pip:

    pip install pubnub
  2. Configure your keys:

    pnconfig = PNConfiguration()
    
    pnconfig.subscribe_key = 'mySubscribeKey'
    pnconfig.publish_key = 'myPublishKey'
    pnconfig.uuid = 'myUniqueUUID'
    pubnub = PubNub(pnconfig)

Add event listeners

class SubscribeHandler(SubscribeCallback):
  def status(self, pubnub, event):
    print("Is there an error? ", event.is_error())
    print("Status value for category: %s" % event.category)
    print("Status value for error_data: %s" % event.error_data)
    print("Status value for error: %s" % event.error)
    print("Status value for status_code: %s" % event.status_code)
    print("Status value for operation: %s" % event.operation)
    print("Status value for tls_enabled: %s" % event.tls_enabled)
    print("Status value for uuid: %s" % event.uuid)
    print("Status value for auth_key: %s" % event.auth_key)
    print("Status value for origin: %s" % event.origin)
    print("Status value for client_request: %s" % event.client_request)
    print("Status value for client_response: %s" % event.client_response)
    print("Status value for original_response: %s" % event.original_response)
    print("Status value for affected_channels: %s" % event.affected_channels)
    print("Status value for affected_groups: %s" % event.affected_groups)

  def presence(self, pubnub, presence):
      pass  # Handle incoming presence data

  def message(self, pubnub, message):
      pass  # Handle incoming messages

  def signal(self, pubnub, signal):
      pass # Handle incoming signals

pubnub.add_listener(SubscribeHandler())

Publish/subscribe

def my_publish_callback(envelope, status):
  if status.is_error():
    ... #handle error here
  else:
    ... #handle result here

pubnub.publish().channel('my_channel').message('Hello world!').pn_async(my_publish_callback)

pubnub.subscribe().channels('my_channel').execute()

Documentation

Support

If you need help or have a general question, contact [email protected].

python's People

Contributors

650elx avatar aaronlevy avatar anovikov1984 avatar blazeroot avatar client-engineering-bot avatar crimsonred avatar dareen avatar davidnub avatar ellepdesk avatar jamesabel avatar kaizenapi avatar marek-lewandowski avatar maxpresman avatar michaljolender avatar parfeon avatar pubnubcraig avatar qsddean avatar qsdstefan avatar qsoftdevelopment avatar seba-aln avatar stephenlb avatar xavrax avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

python's Issues

Channel groups permission to publish and join

I am granting users pubnub tokens on server.
I would like to give user permission to join and publish to all channels in channel group, so that when a new channel is added in a group that user has permissions for, I dont have to generate new token for user.
Is there a way to achieve that?

AsyncioTelemetryManager._start_clean_up_timer creates a new task every second

It looks like its creating a new task every 1s

_start_cleanup doesn't need to be a coroutine since nothing is being awaited. It would be a lot less overhead to use call_later instead.

2024-02-18 15:02:28.167 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14888ecb80> - None
2024-02-18 15:02:29.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14a19bdc00> - None
2024-02-18 15:02:30.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14971ff7c0> - None
2024-02-18 15:02:31.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14888edd80> - None
2024-02-18 15:02:32.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1495e1ed40> - None
2024-02-18 15:02:33.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1495d01a80> - None
2024-02-18 15:02:34.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1495e1f700> - None
2024-02-18 15:02:35.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1495c17700> - None
2024-02-18 15:02:36.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1495f57040> - None
2024-02-18 15:02:37.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1495f57040> - None
2024-02-18 15:02:38.165 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14925f71c0> - None
2024-02-18 15:02:39.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14891db880> - None
2024-02-18 15:02:40.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14971674c0> - None
2024-02-18 15:02:41.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14864e1240> - None
2024-02-18 15:02:42.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1485e43640> - None
2024-02-18 15:02:43.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14a1d813c0> - None
2024-02-18 15:02:44.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14864e0940> - None
2024-02-18 15:02:45.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1485e42c80> - None
2024-02-18 15:02:46.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14864e1600> - None
2024-02-18 15:02:47.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14937fd900> - None
2024-02-18 15:02:48.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1495e1ed40> - None
2024-02-18 15:02:49.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14864e07c0> - None
2024-02-18 15:02:50.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14a6b450c0> - None
2024-02-18 15:02:51.512 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a6f04c0> - None
2024-02-18 15:02:52.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14863b65c0> - None
2024-02-18 15:02:53.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f149a3c5e40> - None
2024-02-18 15:02:54.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14937fea40> - None
2024-02-18 15:02:55.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1495c14580> - None
2024-02-18 15:02:56.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f149253c280> - None
2024-02-18 15:02:57.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1496bba200> - None
2024-02-18 15:02:58.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14e80d96c0> - None
2024-02-18 15:02:59.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a839900> - None
2024-02-18 15:03:00.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a829cc0> - None
2024-02-18 15:03:01.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a829e40> - None
2024-02-18 15:03:02.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14a6b6f640> - None
2024-02-18 15:03:03.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1497166380> - None
2024-02-18 15:03:04.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a8287c0> - None
2024-02-18 15:03:05.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14863b5900> - None
2024-02-18 15:03:06.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1497166380> - None
2024-02-18 15:03:07.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a82f400> - None
2024-02-18 15:03:08.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14889bba00> - None
2024-02-18 15:03:09.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a85f640> - None
2024-02-18 15:03:10.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147ee807c0> - None
2024-02-18 15:03:11.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a829fc0> - None
2024-02-18 15:03:12.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14925a7640> - None
2024-02-18 15:03:13.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1488f2d240> - None
2024-02-18 15:03:14.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a82eb00> - None
2024-02-18 15:03:15.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14937d0d00> - None
2024-02-18 15:03:16.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14916a2ec0> - None
2024-02-18 15:03:17.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1488f2d240> - None
2024-02-18 15:03:18.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a82f280> - None
2024-02-18 15:03:19.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a82f280> - None
2024-02-18 15:03:20.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a828040> - None
2024-02-18 15:03:21.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14925a7640> - None
2024-02-18 15:03:22.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14864e07c0> - None
2024-02-18 15:03:23.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147f0596c0> - None
2024-02-18 15:03:24.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14864e01c0> - None
2024-02-18 15:03:25.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14958d96c0> - None
2024-02-18 15:03:26.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a85ff40> - None
2024-02-18 15:03:27.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14a6b6f640> - None
2024-02-18 15:03:28.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a82a5c0> - None
2024-02-18 15:03:29.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a840100> - None
2024-02-18 15:03:30.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147f0719c0> - None
2024-02-18 15:03:31.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a842800> - None
2024-02-18 15:03:32.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a841d80> - None
2024-02-18 15:03:33.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a82f400> - None
2024-02-18 15:03:34.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a848340> - None
2024-02-18 15:03:35.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14888edf00> - None
2024-02-18 15:03:36.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14888edf00> - None
2024-02-18 15:03:37.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a841a80> - None
2024-02-18 15:03:38.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a843d00> - None
2024-02-18 15:03:39.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a84a2c0> - None
2024-02-18 15:03:40.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f148581ab00> - None
2024-02-18 15:03:41.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a84b340> - None
2024-02-18 15:03:42.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14a1d1b880> - None
2024-02-18 15:03:43.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14a1d1b880> - None
2024-02-18 15:03:44.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a841600> - None
2024-02-18 15:03:45.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a841180> - None
2024-02-18 15:03:46.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14937d0700> - None
2024-02-18 15:03:47.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a843e80> - None
2024-02-18 15:03:48.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f148581abc0> - None
2024-02-18 15:03:49.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a84b040> - None
2024-02-18 15:03:50.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a84b040> - None
2024-02-18 15:03:51.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a849fc0> - None
2024-02-18 15:03:52.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14888edf00> - None
2024-02-18 15:03:53.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14e4c219c0> - None
2024-02-18 15:03:54.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a843e80> - None
2024-02-18 15:03:55.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14937d0dc0> - None
2024-02-18 15:03:56.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147f0596c0> - None
2024-02-18 15:03:57.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a841300> - None
2024-02-18 15:03:58.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a82f280> - None
2024-02-18 15:03:59.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a840a00> - None
2024-02-18 15:04:00.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a82f280> - None
2024-02-18 15:04:01.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14888ec100> - None
2024-02-18 15:04:02.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1485e42a40> - None
2024-02-18 15:04:03.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14937d0dc0> - None
2024-02-18 15:04:04.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a840e80> - None
2024-02-18 15:04:05.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1495c14580> - None
2024-02-18 15:04:06.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1485e42c80> - None
2024-02-18 15:04:07.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a840d00> - None
2024-02-18 15:04:08.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a842f80> - None
2024-02-18 15:04:09.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a841480> - None
2024-02-18 15:04:10.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14937d0dc0> - None
2024-02-18 15:04:11.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1485e42c80> - None
2024-02-18 15:04:12.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f148581abc0> - None
2024-02-18 15:04:13.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14888edf00> - None
2024-02-18 15:04:14.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14a1d1b880> - None
2024-02-18 15:04:15.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a843880> - None
2024-02-18 15:04:16.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a843580> - None
2024-02-18 15:04:17.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14e4c219c0> - None
2024-02-18 15:04:18.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147ef97f40> - None
2024-02-18 15:04:19.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a843580> - None
2024-02-18 15:04:20.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14916a2ec0> - None
2024-02-18 15:04:21.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a843580> - None
2024-02-18 15:04:22.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14888edf00> - None
2024-02-18 15:04:23.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147f0596c0> - None
2024-02-18 15:04:24.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a843d00> - None
2024-02-18 15:04:25.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a82eb00> - None
2024-02-18 15:04:26.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a8484c0> - None
2024-02-18 15:04:27.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a828040> - None
2024-02-18 15:04:28.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a82eb00> - None
2024-02-18 15:04:29.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a84b940> - None
2024-02-18 15:04:30.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14916a2ec0> - None
2024-02-18 15:04:31.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14916a2ec0> - None
2024-02-18 15:04:32.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14888ec100> - None
2024-02-18 15:04:33.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a842f80> - None
2024-02-18 15:04:34.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a848340> - None
2024-02-18 15:04:35.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f148581ab00> - None
2024-02-18 15:04:36.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14937d0700> - None
2024-02-18 15:04:37.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a842500> - None
2024-02-18 15:04:38.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a841a80> - None
2024-02-18 15:04:39.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a843b80> - None
2024-02-18 15:04:40.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1495c15a80> - None
2024-02-18 15:04:41.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a84bdc0> - None
2024-02-18 15:04:42.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a841180> - None
2024-02-18 15:04:43.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14937d0700> - None
2024-02-18 15:04:44.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a840580> - None
2024-02-18 15:04:45.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a82f280> - None
2024-02-18 15:04:46.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1485e42c80> - None
2024-02-18 15:04:47.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14916a3940> - None
2024-02-18 15:04:48.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14937d0dc0> - None
2024-02-18 15:04:49.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a841480> - None
2024-02-18 15:04:50.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147f070700> - None
2024-02-18 15:04:51.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a82eb00> - None
2024-02-18 15:04:52.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147f070700> - None
2024-02-18 15:04:53.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14888ec100> - None
2024-02-18 15:04:54.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a842800> - None
2024-02-18 15:04:55.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a843700> - None
2024-02-18 15:04:56.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a849fc0> - None
2024-02-18 15:04:57.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14971671c0> - None
2024-02-18 15:04:58.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1495c15a80> - None
2024-02-18 15:04:59.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a843a00> - None
2024-02-18 15:05:00.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14916a3940> - None
2024-02-18 15:05:01.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a843b80> - None
2024-02-18 15:05:02.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14916a2ec0> - None
2024-02-18 15:05:03.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14916a2ec0> - None
2024-02-18 15:05:04.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a843b80> - None
2024-02-18 15:05:05.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14864e07c0> - None
2024-02-18 15:05:06.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14a1d1b880> - None
2024-02-18 15:05:07.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14937d0dc0> - None
2024-02-18 15:05:08.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a843880> - None
2024-02-18 15:05:09.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a840d00> - None
2024-02-18 15:05:10.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f148581ab00> - None
2024-02-18 15:05:11.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1498421b40> - None
2024-02-18 15:05:12.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14a689fdc0> - None
2024-02-18 15:05:13.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14a689fdc0> - None
2024-02-18 15:05:14.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a842380> - None
2024-02-18 15:05:15.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1495f57040> - None
2024-02-18 15:05:16.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1498421b40> - None
2024-02-18 15:05:17.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14916a2ec0> - None
2024-02-18 15:05:18.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14a689d300> - None
2024-02-18 15:05:19.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14e6f8a2c0> - None
2024-02-18 15:05:20.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147f070700> - None
2024-02-18 15:05:21.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14925a4100> - None
2024-02-18 15:05:22.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1498421b40> - None
2024-02-18 15:05:23.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147efeb100> - None
2024-02-18 15:05:24.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14916a3940> - None
2024-02-18 15:05:25.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1498421b40> - None
2024-02-18 15:05:26.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a848f40> - None
2024-02-18 15:05:27.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14a689e440> - None
2024-02-18 15:05:28.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14a689e440> - None
2024-02-18 15:05:29.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a82f280> - None
2024-02-18 15:05:30.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a82f280> - None
2024-02-18 15:05:31.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147efeb400> - None
2024-02-18 15:05:32.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f148581abc0> - None
2024-02-18 15:05:33.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1485e42c80> - None
2024-02-18 15:05:34.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14a689fdc0> - None
2024-02-18 15:05:35.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14a689e440> - None
2024-02-18 15:05:36.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a84b940> - None
2024-02-18 15:05:37.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14a689e440> - None
2024-02-18 15:05:38.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14925a7580> - None
2024-02-18 15:05:39.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a84a8c0> - None
2024-02-18 15:05:40.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14925a7580> - None
2024-02-18 15:05:41.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a842f80> - None
2024-02-18 15:05:42.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a82f280> - None
2024-02-18 15:05:43.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147d577700> - None
2024-02-18 15:05:44.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147d577700> - None
2024-02-18 15:05:45.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1496bba200> - None
2024-02-18 15:05:46.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14e4c219c0> - None
2024-02-18 15:05:47.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147efeb280> - None
2024-02-18 15:05:48.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14925a7640> - None
2024-02-18 15:05:49.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147d576440> - None
2024-02-18 15:05:50.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147efeb280> - None
2024-02-18 15:05:51.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a8499c0> - None
2024-02-18 15:05:52.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14925a7640> - None
2024-02-18 15:05:53.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147d576440> - None
2024-02-18 15:05:54.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14925a4100> - None
2024-02-18 15:05:55.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14925a4100> - None
2024-02-18 15:05:56.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14925a4100> - None
2024-02-18 15:05:57.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14925a4100> - None
2024-02-18 15:05:58.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147efeb280> - None
2024-02-18 15:05:59.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a8481c0> - None
2024-02-18 15:06:00.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14e6f8a2c0> - None
2024-02-18 15:06:01.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14e6f8a2c0> - None
2024-02-18 15:06:02.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14a689d300> - None
2024-02-18 15:06:03.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147d576440> - None
2024-02-18 15:06:04.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a8493c0> - None
2024-02-18 15:06:05.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147d576440> - None
2024-02-18 15:06:06.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f148581abc0> - None
2024-02-18 15:06:07.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1498421b40> - None
2024-02-18 15:06:08.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1496bba200> - None
2024-02-18 15:06:09.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1495c15a80> - None
2024-02-18 15:06:10.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147d576440> - None
2024-02-18 15:06:11.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14925a7580> - None
2024-02-18 15:06:12.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14a689fdc0> - None
2024-02-18 15:06:13.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1495c15a80> - None
2024-02-18 15:06:14.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147efeb040> - None
2024-02-18 15:06:15.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1495c15a80> - None
2024-02-18 15:06:16.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f149253c280> - None
2024-02-18 15:06:17.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14916a2ec0> - None
2024-02-18 15:06:18.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14937d0dc0> - None
2024-02-18 15:06:19.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14a689fdc0> - None
2024-02-18 15:06:20.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f149253c280> - None
2024-02-18 15:06:21.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1495c15a80> - None
2024-02-18 15:06:22.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14937d0dc0> - None
2024-02-18 15:06:23.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14937d0dc0> - None
2024-02-18 15:06:24.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147efeb280> - None
2024-02-18 15:06:25.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14925a4100> - None
2024-02-18 15:06:26.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a848f40> - None
2024-02-18 15:06:27.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14888edf00> - None
2024-02-18 15:06:28.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147efeb1c0> - None
2024-02-18 15:06:29.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a849b40> - None
2024-02-18 15:06:30.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14a689fdc0> - None
2024-02-18 15:06:31.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a841000> - None
2024-02-18 15:06:32.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1495c15a80> - None
2024-02-18 15:06:33.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1495c15a80> - None
2024-02-18 15:06:34.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a840b80> - None
2024-02-18 15:06:35.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14888edf00> - None
2024-02-18 15:06:36.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14e6f8a2c0> - None
2024-02-18 15:06:37.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a82f280> - None
2024-02-18 15:06:38.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1498421900> - None
2024-02-18 15:06:39.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a82a5c0> - None
2024-02-18 15:06:40.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a843580> - None
2024-02-18 15:06:41.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a86b340> - None
2024-02-18 15:06:42.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a82a5c0> - None
2024-02-18 15:06:43.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a843580> - None
2024-02-18 15:06:44.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14864e07c0> - None
2024-02-18 15:06:45.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a840700> - None
2024-02-18 15:06:46.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a840700> - None
2024-02-18 15:06:47.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1498421900> - None
2024-02-18 15:06:48.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14971671c0> - None
2024-02-18 15:06:49.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a82a5c0> - None
2024-02-18 15:06:50.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a848f40> - None
2024-02-18 15:06:51.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a868f40> - None
2024-02-18 15:06:52.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147efeb280> - None
2024-02-18 15:06:53.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a84ad40> - None
2024-02-18 15:06:54.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f149253c280> - None
2024-02-18 15:06:55.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a84b340> - None
2024-02-18 15:06:56.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a849840> - None
2024-02-18 15:06:57.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14864e07c0> - None
2024-02-18 15:06:58.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147d576440> - None
2024-02-18 15:06:59.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a82f100> - None
2024-02-18 15:07:00.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14916a2ec0> - None
2024-02-18 15:07:01.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a869fc0> - None
2024-02-18 15:07:02.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147efeb280> - None
2024-02-18 15:07:03.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14888edf00> - None
2024-02-18 15:07:04.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a86b7c0> - None
2024-02-18 15:07:05.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14a6d15180> - None
2024-02-18 15:07:06.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a84bac0> - None
2024-02-18 15:07:07.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a84a140> - None
2024-02-18 15:07:08.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a84a140> - None
2024-02-18 15:07:09.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a86abc0> - None
2024-02-18 15:07:10.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14e6f8a2c0> - None
2024-02-18 15:07:11.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a86b340> - None
2024-02-18 15:07:12.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14e6f8a2c0> - None
2024-02-18 15:07:13.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a869fc0> - None
2024-02-18 15:07:14.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a8687c0> - None
2024-02-18 15:07:15.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14889ba500> - None
2024-02-18 15:07:16.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a84a740> - None
2024-02-18 15:07:17.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a84a140> - None
2024-02-18 15:07:18.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14e80d96c0> - None
2024-02-18 15:07:19.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a86b7c0> - None
2024-02-18 15:07:20.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a84a740> - None
2024-02-18 15:07:21.163 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a868c40> - None
2024-02-18 15:07:22.169 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a86ad40> - None
2024-02-18 15:07:23.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a849240> - None
2024-02-18 15:07:24.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a8690c0> - None
2024-02-18 15:07:25.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a840700> - None
2024-02-18 15:07:26.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a83ac80> - None
2024-02-18 15:07:27.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14e6f8a2c0> - None
2024-02-18 15:07:28.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a848c40> - None
2024-02-18 15:07:29.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1488e141c0> - None
2024-02-18 15:07:30.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a84bac0> - None
2024-02-18 15:07:31.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1488e15cc0> - None
2024-02-18 15:07:32.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a8687c0> - None
2024-02-18 15:07:33.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14958d96c0> - None
2024-02-18 15:07:34.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14879cec80> - None
2024-02-18 15:07:35.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a828040> - None
2024-02-18 15:07:36.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147efeb100> - None
2024-02-18 15:07:37.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1497167700> - None
2024-02-18 15:07:38.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a8687c0> - None
2024-02-18 15:07:39.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a84bac0> - None
2024-02-18 15:07:40.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147efeb280> - None
2024-02-18 15:07:41.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1488e14f40> - None
2024-02-18 15:07:42.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f148ff09780> - None
2024-02-18 15:07:43.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1497167940> - None
2024-02-18 15:07:44.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1493897940> - None
2024-02-18 15:07:45.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a86b940> - None
2024-02-18 15:07:46.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1497167940> - None
2024-02-18 15:07:47.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14879ceb00> - None
2024-02-18 15:07:48.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14e6f8a2c0> - None
2024-02-18 15:07:49.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14879cec80> - None
2024-02-18 15:07:50.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1498421b40> - None
2024-02-18 15:07:51.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147efeb280> - None
2024-02-18 15:07:52.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14938974c0> - None
2024-02-18 15:07:53.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a84ad40> - None
2024-02-18 15:07:54.158 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a84bac0> - None
2024-02-18 15:07:55.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14938974c0> - None
2024-02-18 15:07:56.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a83ac80> - None
2024-02-18 15:07:57.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a86b940> - None
2024-02-18 15:07:58.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147f070700> - None
2024-02-18 15:07:59.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a83b280> - None
2024-02-18 15:08:00.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f148ff09540> - None
2024-02-18 15:08:01.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1488e14880> - None
2024-02-18 15:08:02.160 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1493895cc0> - None
2024-02-18 15:08:03.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a83be80> - None
2024-02-18 15:08:04.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f147a8699c0> - None
2024-02-18 15:08:05.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f1495e1f100> - None
2024-02-18 15:08:06.159 WARNING (MainThread) [asyncio.base_events] Create task: <coroutine object AsyncioTelemetryManager._start_clean_up_timer at 0x7f14864e07c0> - None

[6.4.0] Error importing pubnub.pubnub_asyncio

    from pubnub.pubnub_asyncio import PubNubAsyncio
venv/lib/python3.9/site-packages/pubnub/pubnub_asyncio.py:16: in <module>
    from .pubnub_core import PubNubCore
venv/lib/python3.9/site-packages/pubnub/pubnub_core.py:3: in <module>
    from pubnub.endpoints.entities.membership.add_memberships import AddSpaceMembers, AddUserSpaces
E   ModuleNotFoundError: No module named 'pubnub.endpoints.entities'

Started happening after 6.4.0 release. Both Python 3.9 and 3.10.

I wonder if it's because of the lack of __init__.py files in the directories?

Reproduce:

$ pip3 install pubnub==6.4.0
$ python3 -c "import pubnub.pubnub_asyncio"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/paulus/dev/hass/core/venv/lib/python3.9/site-packages/pubnub/pubnub_asyncio.py", line 16, in <module>
    from .pubnub_core import PubNubCore
  File "/Users/paulus/dev/hass/core/venv/lib/python3.9/site-packages/pubnub/pubnub_core.py", line 3, in <module>
    from pubnub.endpoints.entities.membership.add_memberships import AddSpaceMembers, AddUserSpaces
ModuleNotFoundError: No module named 'pubnub.endpoints.entities'

This works and prints no error:

$ pip3 install pubnub==6.3.0
$ python3 -c "import pubnub.pubnub_asyncio"

`Docs` clarity and improvements

The problem

Currently, the way sdk docs here and the start guide here are structured in a way that the code samples just shows the bare minimum use case which might be okay in many situations when developer is familiar with sdk. But for someone trying python sdk for the first time, I think there is a crucial part of code samples missing which is the import statements above the code.

For Example

pnconfig = PNConfiguration()
pnconfig.publish_key = "myPublishKey"
pnconfig.subscribe_key = "mySubscribeKey"
pnconfig.uuid = "myUniqueUUID"

pubnub = PubNub(pnconfig)

this is a code sample copied using the copy icon from getting started guide
image

For someone setting PubNub for the first time, it's very difficult to figure out the imports for PNConfiguration & PubNub.
For this example searching for a little while get me to the later section where I was able to find the imports for this specific case mentioned above. That pretty much all I got.

When I got to the Access Manager Docs here. I came across this example here

channels = [
    Channel.id("channel-a").read(),
    Channel.id("channel-b").read().write(),
    Channel.id("channel-c").read().write(),
    Channel.id("channel-d").read().write()
]
groups = [
    Group.id("channel-group-b").read()
]
uuids = [
    UUID.id("uuid-c").get(),
    UUID.id("uuid-d").get().update()
]
envelope = pubnub.grant_token()
    .channels(channels)
    .groups(groups)
    .ttl(15)
    .uuids(uuids)
    .authorized_uuid("my-authorized-uuid")
    .sync()

In this case, there is no way for a new to pubnub dev to figure out import statements for Channel, Group, etc type.

The solution proposals

1- SDK docs improvements

One straight solution would be to improve the current SDK docs so that they include import statements at least where necessary like the above-mentioned Access Manager docs case.
But this might increase the lengths of docs pages which should arguably be short and concise.

2- Use inline docs

Another simpler solution would be to use something like pydocs3 which can be used to create html or other supported types to generate automatic documentation for each class and save it in the docs folder in the codebase.
Then actions can be used to automatically compile and deploy those to something like readthedocs or some alternative. This will solve the problem by introducing search in these docs and developers can quickly see the supported methods and figure out imports for anything in the official SDK docs.

Thanks

Pagination error

I would like to get all the channel members.
I call pubnub.get_channel_members().channel(channel_id).page(page).sync() .
I get the following error:
image
It happens due to PNPage class having getter for hash method:
image

The same issue is present everywhere, where pagination is applied with .page(page).

3.5.0-beta has no sync subscribe option?

I want to give my customers a simple recipe to get them started in python.

pip install pubnub gives them 3.5.0-beta

from Pubnub import Pubnub doesn't work, although commonly shown in examples and older code.

>>> from Pubnub import PubnubBase
>>> from Pubnub import PubnubCore

Both work, but which should be used? No idea and can't tell from those names. However, PubnubCore is broken.

>>> PubnubCore('ddd','dd')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/Pubnub.py", line 1160, in __init__
    UUID=uuid
TypeError: __init__() got an unexpected keyword argument 'UUID'

However, PubnubBase seems incomplete and doesn't have subscribe_sync which is what I'd like to use for simple examples.

Add Tornado and Twisted versions to pip

From what I can tell, if you pip install pubnub you can only access the blocking version of this library. Can you either:

  1. Release these variations to pip (pubnub-tornado, pubnub-twisted)
  2. Refactor so you can use these async methods (or sync method) from the same library

auth_key as argument to publish

I have many channels each with different auth keys. Changing a member variable on the Pubnub object to be able to publish to each channel will create concurrency problems. It should be an argument instead.

Regressions in 3.3.3 - 3.3.5 - can't publish messages without secret key

  1. Unable to publish messages without a secret key.

With this call:
pubnub = Pubnub(
publish_key, # PUBLISH KEY
subscribe_key, # SUBSCRIBE KEY
None, # SECRET KEY
True # SSL ON
)

pubnub.publish({
'channel': "channel",
'message': {
'text': "We've subscribed!"
}
})

I get this exception:
Traceback (most recent call last):
File "sub_tester.py", line 49, in
'text': "We've subscribed!"
File "/usr/local/lib/python2.7/site-packages/Pubnub.py", line 244, in publish
message = self.encrypt(args['message'])
File "/usr/local/lib/python2.7/site-packages/Pubnub.py", line 177, in encrypt
encryptItem = pc.encrypt(self.cipher_key, item ).rstrip()
File "/usr/local/lib/python2.7/site-packages/Pubnub.py", line 76, in encrypt
secret = self.getSecret(key)
File "/usr/local/lib/python2.7/site-packages/Pubnub.py", line 65, in getSecret
return hashlib.sha256(key).hexdigest()
TypeError: must be string or buffer, not bool

Which works perfectly in 3.3.2 and below, which doesn't assume that all messages are encrypted.

3.3.4 released on PyPI must specify its requirement.

pycrypto should be specified as requirements in setup.py.

  Running setup.py egg_info for package pubnub
    Traceback (most recent call last):
      File "<string>", line 16, in <module>
      File "/Users/yoloseem/.virtualenvs/sstest/build/pubnub/setup.py", line 3, in <module>
        import Pubnub
      File "Pubnub.py", line 13, in <module>
        from Crypto.Cipher import AES
    ImportError: No module named Crypto.Cipher
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

  File "<string>", line 16, in <module>

  File "/Users/yoloseem/.virtualenvs/sstest/build/pubnub/setup.py", line 3, in <module>

    import Pubnub

  File "Pubnub.py", line 13, in <module>

    from Crypto.Cipher import AES

ImportError: No module named Crypto.Cipher

self.publish() requires self.subscribe_key?

I was trying to use the minimum keys necessary to publish and subscribe, but it looks as though self.publish() requires the self.subscribe_key. I poked around in the docs, but didn't find much about whether this is intended behavior, so wanted to ask: is it a bug or a feature that subscribe_key is required to publish()?

if self.secret_key :
        signature = hashlib.md5('/'.join([
            self.publish_key,
            self.subscribe_key,  # <-- Line 98 of Pubnub.py
            self.secret_key,
            channel,
            message
        ])).hexdigest()

Versioning / branching / Pypi

This repo is simply a mess.

  • what branches are we supposed to be using?
  • version numbers are inconsistent between code, readme and tag names
  • Pypi is pointing to a beta version. A working stable version would be better so I could at least code around missing stuff

Subscribe causes hang on program exit

When I subscribe to any channel and spend about >= 0.5s before calling unsubscribe_all() and stop, the program hangs at the end, requiring a keyboard interrupt to terminate. hanging_threads reports that Thread-Subscribe-0 is hung waiting for some request, but I'm not sure how to figure out what request it's waiting on (sorry, not very good with python).

Below is a small test demonstrating the problem, but in fact examples/native_threads/check.py also hangs. I'm running this on macOS Monterey 12.4 with Python 3.9.13, PubNub package 7.0.1 installed from pip.

publish_key = '...'
subscribe_key = '...'

from hanging_threads import start_monitoring
monitoring_thread = start_monitoring (seconds_frozen=5, test_interval=100)

import pubnub
from pubnub.pubnub import PNConfiguration, PubNub, SubscribeCallback
from pubnub.utils import PNStatusCategory

pnconfig = PNConfiguration()
pnconfig.publish_key = publish_key
pnconfig.subscribe_key = subscribe_key
pnconfig.uuid = 'some-uuid'
pubnub = PubNub (pnconfig)

pubnub.subscribe ().channels ('test-channel').execute ()

import time
time.sleep (0.5) # The length of sleep matters, apparently.
print ('done sleeping')

pubnub.unsubscribe_all ()
print ('unsubscribed')

pubnub.stop ()
print ('pubnub stopped')

# hangs here

Support Python 3

This is critical for us; as long as Pubnub doesn't support Python 3, we can't use it :(

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.