| 46 | self._session_cache = {} |
| 47 | |
| 48 | def create_client( |
| 49 | self, service_name, parsed_region=None, parsed_profile=None, **kwargs |
| 50 | ): |
| 51 | if self._session_cache.get(parsed_profile) is None: |
| 52 | session = self.create_session() |
| 53 | session.set_config_variable('profile', parsed_profile) |
| 54 | self._session_cache[parsed_profile] = session |
| 55 | self._session_cache[parsed_profile].set_config_variable( |
| 56 | 'region', parsed_region |
| 57 | ) |
| 58 | return self._session_cache[parsed_profile].create_client( |
| 59 | service_name, **kwargs |
| 60 | ) |
| 61 | |
| 62 | def create_session(self): |
| 63 | return lazy_call(self._import_name).session |