minos.networks.brokers.dynamic.brokers module

class minos.networks.brokers.dynamic.brokers.DynamicBroker(topic, publisher, **kwargs)[source]

Bases: minos.networks.brokers.handlers.abc.BrokerHandlerSetup

Dynamic Broker class.

__init__(topic, publisher, **kwargs)[source]
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.

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.

async get_many(count, timeout=60, **kwargs)[source]

Get multiple handler entries from the given topics.

Parameters
  • timeout (float) – Maximum time in seconds to wait for messages.

  • count (int) – Number of entries to be collected.

Return type

list[minos.networks.brokers.handlers.entries.BrokerHandlerEntry]

Returns

A list of HandlerEntry instances.

async get_one(*args, **kwargs)[source]

Get one handler entry from the given topics.

Parameters
  • args – Additional positional parameters to be passed to get_many.

  • kwargs – Additional named parameters to be passed to get_many.

Return type

minos.networks.brokers.handlers.entries.BrokerHandlerEntry

Returns

A HandlerEntry instance.

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(*args, reply_topic=None, **kwargs)[source]

Send a BrokerMessage.

Parameters
  • args – Additional positional arguments.

  • reply_topic (None) – This argument is ignored if ignored in favor of self.topic.

  • 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.