minos.networks.brokers.publishers.publishers module

class minos.networks.brokers.publishers.publishers.BrokerPublisher(host, port, database, user, password, *args, **kwargs)[source]

Bases: minos.networks.brokers.publishers.abc.BrokerPublisherSetup

Broker Publisher class.

__init__(host, port, database, user, password, *args, **kwargs)
property already_destroyed: bool

Already Destroy getter.

Return type

bool

Returns

A boolean value.

property already_setup: bool

Already Setup getter.

Return type

bool

Returns

A boolean value.

cursor(*args, **kwargs)

Get a new cursor.

Parameters
  • args – Additional positional arguments.

  • kwargs – Additional named arguments.

Return type

typing.AsyncContextManager[aiopg.connection.Cursor]

Returns

A Cursor wrapped into an asynchronous context manager.

async destroy()

Destroy miscellaneous repository things.

Return type

None

Returns

This method does not return anything.

async enqueue(topic, strategy, raw)[source]

Send a sequence of bytes to the given topic.

Parameters
Return type

int

Returns

The identifier of the message in the queue.

classmethod from_config(config=None, **kwargs)

Build a new instance from config.

Parameters
  • config (typing.Union[minos.common.configuration.config.MinosConfig, pathlib.Path, None]) – Config instance. If None is provided, default config is chosen.

  • kwargs – Additional named arguments.

Return type

~S

Returns

A instance of the called class.

locked_cursor(key, *args, **kwargs)

Get a new locked cursor.

Parameters
  • key (collections.abc.Hashable) – The key to be used for locking.

  • args – Additional positional arguments.

  • kwargs – Additional named arguments.

Return type

typing.AsyncContextManager[aiopg.connection.Cursor]

Returns

A Cursor wrapped into an asynchronous context manager.

property pool: minos.common.database.pools.PostgreSqlPool

Get the connections pool.

Return type

minos.common.database.pools.PostgreSqlPool

Returns

A Pool object.

async send(data, topic, *, identifier=None, reply_topic=None, user=None, status=BrokerMessageStatus.SUCCESS, strategy=BrokerMessageStrategy.UNICAST, headers=None, **kwargs)[source]

Send a BrokerMessage.

Parameters
  • data (typing.Any) – The data to be send.

  • topic (str) – Topic in which the message will be published.

  • identifier (typing.Optional[uuid.UUID]) – The identifier of the message.

  • reply_topic (typing.Optional[str]) – An optional topic name to wait for a response.

  • user (typing.Optional[uuid.UUID]) – The user identifier that send the message.

  • status (minos.networks.brokers.messages.BrokerMessageStatus) – The status code of the message.

  • strategy (minos.networks.brokers.messages.BrokerMessageStrategy) – The publishing strategy.

  • headers (typing.Optional[dict[str, str]]) – A mapping of string values identified by a string key.

  • kwargs – Additional named arguments.

Return type

uuid.UUID

Returns

The UUID identifier of the message.

async setup()

Setup miscellaneous repository things.

Return type

None

Returns

This method does not return anything.

async submit_query(operation, parameters=None, *, timeout=None, lock=None, **kwargs)

Submit a SQL query.

Parameters
  • operation (typing.Any) – Query to be executed.

  • parameters (typing.Optional[typing.Any]) – Parameters to be projected into the query.

  • timeout (typing.Optional[float]) – An optional timeout.

  • lock (typing.Optional[typing.Any]) – Optional key to perform the query with locking. If not set, the query is performed without any lock.

  • kwargs – Additional named arguments.

Return type

None

Returns

This method does not return anything.

async submit_query_and_fetchone(*args, **kwargs)

Submit a SQL query and gets the first response.

Parameters
  • args – Additional positional arguments.

  • kwargs – Additional named arguments.

Return type

tuple

Returns

This method does not return anything.

async submit_query_and_iter(operation, parameters=None, *, timeout=None, lock=None, streaming_mode=False, **kwargs)

Submit a SQL query and return an asynchronous iterator.

Parameters
  • operation (typing.Any) – Query to be executed.

  • parameters (typing.Optional[typing.Any]) – Parameters to be projected into the query.

  • timeout (typing.Optional[float]) – An optional timeout.

  • lock (typing.Optional[int]) – Optional key to perform the query with locking. If not set, the query is performed without any lock.

  • streaming_mode (bool) – If True the data fetching is performed in streaming mode, that is iterating over the cursor and yielding once a time (requires an opening connection to do that). Otherwise, all the data is fetched and keep in memory before yielding it.

  • kwargs – Additional named arguments.

Return type

typing.AsyncIterator[tuple]

Returns

This method does not return anything.