deps.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from typing import TYPE_CHECKING
  2. if TYPE_CHECKING:
  3. from render import Render
  4. try:
  5. from .deps_elastic import ElasticSearchContainer, ElasticConfig
  6. from .deps_mariadb import MariadbContainer, MariadbConfig
  7. from .deps_meilisearch import MeilisearchContainer, MeiliConfig
  8. from .deps_mongodb import MongoDBContainer, MongoDBConfig
  9. from .deps_perms import PermsContainer
  10. from .deps_postgres import PostgresContainer, PostgresConfig
  11. from .deps_redis import RedisContainer, RedisConfig
  12. except ImportError:
  13. from deps_elastic import ElasticSearchContainer, ElasticConfig
  14. from deps_mariadb import MariadbContainer, MariadbConfig
  15. from deps_meilisearch import MeilisearchContainer, MeiliConfig
  16. from deps_mongodb import MongoDBContainer, MongoDBConfig
  17. from deps_perms import PermsContainer
  18. from deps_postgres import PostgresContainer, PostgresConfig
  19. from deps_redis import RedisContainer, RedisConfig
  20. class Deps:
  21. def __init__(self, render_instance: "Render"):
  22. self._render_instance = render_instance
  23. def perms(self, name: str):
  24. return PermsContainer(self._render_instance, name)
  25. def postgres(self, name: str, image: str, config: PostgresConfig, perms_instance: PermsContainer):
  26. return PostgresContainer(self._render_instance, name, image, config, perms_instance)
  27. def redis(self, name: str, image: str, config: RedisConfig, perms_instance: PermsContainer):
  28. return RedisContainer(self._render_instance, name, image, config, perms_instance)
  29. def mariadb(self, name: str, image: str, config: MariadbConfig, perms_instance: PermsContainer):
  30. return MariadbContainer(self._render_instance, name, image, config, perms_instance)
  31. def mongodb(self, name: str, image: str, config: MongoDBConfig, perms_instance: PermsContainer):
  32. return MongoDBContainer(self._render_instance, name, image, config, perms_instance)
  33. def meilisearch(self, name: str, image: str, config: MeiliConfig, perms_instance: PermsContainer):
  34. return MeilisearchContainer(self._render_instance, name, image, config, perms_instance)
  35. def elasticsearch(self, name: str, image: str, config: ElasticConfig, perms_instance: PermsContainer):
  36. return ElasticSearchContainer(self._render_instance, name, image, config, perms_instance)