floq.client.containers

This module provides components dependencies structure.

Rather than manually creating class objects we are using dependency-injector framework to declare components dependencies (containers) and let the library do the work for us.

Our structure is declared using following containers:

  • Core container contains core components that are being used by other classes.

  • Managers container provides clients for managing Floq service resources.

  • Simulators container is dedicated for creating Floq service simulators.

  • Client container connects all containers together.

class floq.client.containers.Client(**overriding_providers)

Bases: dependency_injector.containers.DeclarativeContainer

Floq client main container.

core = <dependency_injector.providers.Container()>

Reference to Core container.

managers = <dependency_injector.providers.Container()>

Reference to Managers container

simulators = <dependency_injector.providers.Container()>

Reference to Simulators container

class floq.client.containers.Core(**overriding_providers)

Bases: dependency_injector.containers.DeclarativeContainer

Floq client core components.

ApiClient = <dependency_injector.providers.Singleton(<class 'floq.client.api_client.ApiClient'>)>

floq.client.api_client.ApiClient class provider.

TaskStatusStreamHandler = <dependency_injector.providers.Factory(<class 'floq.client.sse.TaskStatusStreamHandler'>)>

floq.client.sse.TaskStatusStreamHandler class provider.

config = <dependency_injector.providers.Configuration('config')>

Client configuration provider.

class floq.client.containers.Managers(**overriding_providers)

Bases: dependency_injector.containers.DeclarativeContainer

Floq service resources managers.

JobsQueueManager = <dependency_injector.providers.Factory(<class 'floq.client.jobs_queue.JobsQueueManager'>)>

floq.client.jobs_queue.JobsQueueManager class provider.

WorkerManager = <dependency_injector.providers.Factory(<class 'floq.client.worker.WorkerManager'>)>

floq.client.worker.WorkerManager class provider.

core = <dependency_injector.providers.DependenciesContainer()>

Reference to Core container.

class floq.client.containers.Simulators(**overriding_providers)

Bases: dependency_injector.containers.DeclarativeContainer

Floq remote simulators.

CirqSimulator = <dependency_injector.providers.Factory(<class 'floq.client.simulators.cirq.CirqSimulator'>)>

floq.client.simulators.CirqSimulator class provider.

core = <dependency_injector.providers.DependenciesContainer()>

Reference to Core container.

remote_simulators = <dependency_injector.providers.Dict({<JobType.EXPECTATION: 1>: <dependency_injector.providers.Factory(<class 'floq.client.simulators.floq.ExpectationValuesSimulator'>)>, <JobType.SAMPLE: 0>: <dependency_injector.providers.Factory(<class 'floq.client.simulators.floq.SamplesSimulator'>)>})>

Map of remote simulators provider.