Skip to content

Commit 58700d9

Browse files
committed
Use from import statements
1 parent 0e25331 commit 58700d9

5 files changed

Lines changed: 168 additions & 143 deletions

File tree

src/dependency_injector/containers.pyx

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
11
"""Containers module."""
22

3-
import asyncio
4-
import contextlib
5-
import copy as copy_module
6-
import json
7-
import importlib
8-
import inspect
3+
from asyncio import gather
4+
from contextlib import suppress
5+
from copy import deepcopy as copy_deepcopy
6+
from importlib import import_module
7+
from inspect import getmodule, stack as inspect_stack
8+
from json import load as json_load
99

1010
try:
1111
import yaml
1212
except ImportError:
1313
yaml = None
1414

15-
from . import providers, errors
15+
from . import errors, providers
16+
1617
from .providers cimport __is_future_or_coroutine
17-
from .wiring import wire, unwire
18+
19+
from .wiring import unwire, wire
1820

1921

2022
class WiringConfiguration:
@@ -113,7 +115,7 @@ class DynamicContainer(Container):
113115

114116
copied.provider_type = providers.Provider
115117
copied.overridden = providers.deepcopy(self.overridden, memo)
116-
copied.wiring_config = copy_module.deepcopy(self.wiring_config, memo)
118+
copied.wiring_config = copy_deepcopy(self.wiring_config, memo)
117119
copied.declarative_parent = self.declarative_parent
118120

119121
for name, provider in providers.deepcopy(self.providers, memo).items():
@@ -301,10 +303,10 @@ class DynamicContainer(Container):
301303
from_package = self.wiring_config.from_package
302304
elif self.declarative_parent is not None \
303305
and (self.wiring_config.modules or self.wiring_config.packages):
304-
with contextlib.suppress(Exception):
306+
with suppress(Exception):
305307
from_package = _resolve_package_name_from_cls(self.declarative_parent)
306308
else:
307-
with contextlib.suppress(Exception):
309+
with suppress(Exception):
308310
from_package = _resolve_calling_package_name()
309311

310312
modules = _resolve_string_imports(modules, from_package)
@@ -354,7 +356,7 @@ class DynamicContainer(Container):
354356
futures.append(resource)
355357

356358
if futures:
357-
return asyncio.gather(*futures)
359+
return gather(*futures)
358360

359361
def shutdown_resources(self, resource_type=providers.BaseResource):
360362
"""Shutdown all container resources."""
@@ -382,7 +384,7 @@ class DynamicContainer(Container):
382384
result = resource.shutdown()
383385
if __is_future_or_coroutine(result):
384386
futures.append(result)
385-
await asyncio.gather(*futures)
387+
await gather(*futures)
386388

387389
def _sync_ordered_shutdown(resources):
388390
while any(resource.initialized for resource in resources):
@@ -469,7 +471,7 @@ class DynamicContainer(Container):
469471
def from_json_schema(self, filepath):
470472
"""Build container providers from JSON schema."""
471473
with open(filepath) as file:
472-
schema = json.load(file)
474+
schema = json_load(file)
473475
self.from_schema(schema)
474476

475477
def resolve_provider_name(self, provider):
@@ -735,7 +737,7 @@ class DeclarativeContainer(Container, metaclass=DeclarativeContainerMetaClass):
735737
"""
736738
container = cls.instance_type()
737739
container.provider_type = cls.provider_type
738-
container.wiring_config = copy_module.deepcopy(cls.wiring_config)
740+
container.wiring_config = copy_deepcopy(cls.wiring_config)
739741
container.declarative_parent = cls
740742

741743
copied_providers = providers.deepcopy({ **cls.providers, **{"@@self@@": cls.__self__}})
@@ -924,18 +926,18 @@ cpdef bint _any_relative_string_imports_in(object modules):
924926

925927
cpdef list _resolve_string_imports(object modules, object from_package):
926928
return [
927-
importlib.import_module(module, from_package) if isinstance(module, str) else module
929+
import_module(module, from_package) if isinstance(module, str) else module
928930
for module in modules
929931
]
930932

931933

932934
cpdef object _resolve_calling_package_name():
933-
stack = inspect.stack()
935+
stack = inspect_stack()
934936
pre_last_frame = stack[0]
935-
module = inspect.getmodule(pre_last_frame[0])
937+
module = getmodule(pre_last_frame[0])
936938
return module.__package__
937939

938940

939941
cpdef object _resolve_package_name_from_cls(cls):
940-
module = importlib.import_module(cls.__module__)
942+
module = import_module(cls.__module__)
941943
return module.__package__

src/dependency_injector/providers.pxd

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"""Providers module."""
22

3-
import asyncio
4-
import functools
3+
from asyncio import Future, ensure_future, gather
4+
from functools import partial
55

66
cimport cython
77

@@ -487,18 +487,18 @@ cdef inline object __provide_keyword_args(
487487

488488

489489
cdef inline object __combine_future_injections(object injections, list future_injections):
490-
future_result = asyncio.Future()
490+
future_result = Future()
491491

492-
injections_ready = asyncio.gather(*[value for _, value in future_injections])
492+
injections_ready = gather(*[value for _, value in future_injections])
493493
injections_ready.add_done_callback(
494-
functools.partial(
494+
partial(
495495
__async_prepare_args_kwargs_callback,
496496
future_result,
497497
injections,
498498
future_injections,
499499
),
500500
)
501-
asyncio.ensure_future(injections_ready)
501+
ensure_future(injections_ready)
502502

503503
return future_result
504504

@@ -541,16 +541,16 @@ cdef inline object __provide_attributes(tuple attributes, int attributes_len):
541541

542542

543543
cdef inline object __async_inject_attributes(future_instance, future_attributes):
544-
future_result = asyncio.Future()
544+
future_result = Future()
545545

546-
attributes_ready = asyncio.gather(future_instance, future_attributes)
546+
attributes_ready = gather(future_instance, future_attributes)
547547
attributes_ready.add_done_callback(
548-
functools.partial(
548+
partial(
549549
__async_inject_attributes_callback,
550550
future_result,
551551
),
552552
)
553-
asyncio.ensure_future(attributes_ready)
553+
ensure_future(attributes_ready)
554554

555555
return future_result
556556

@@ -605,17 +605,17 @@ cdef inline object __call(
605605
future_args = args if is_future_args else __future_result(args)
606606
future_kwargs = kwargs if is_future_kwargs else __future_result(kwargs)
607607

608-
future_result = asyncio.Future()
608+
future_result = Future()
609609

610-
args_kwargs_ready = asyncio.gather(future_args, future_kwargs)
610+
args_kwargs_ready = gather(future_args, future_kwargs)
611611
args_kwargs_ready.add_done_callback(
612-
functools.partial(
612+
partial(
613613
__async_call_callback,
614614
future_result,
615615
call,
616616
),
617617
)
618-
asyncio.ensure_future(args_kwargs_ready)
618+
ensure_future(args_kwargs_ready)
619619

620620
return future_result
621621

@@ -630,8 +630,8 @@ cdef inline void __async_call_callback(object future_result, object call, object
630630
future_result.set_exception(exception)
631631
else:
632632
if __is_future_or_coroutine(result):
633-
result = asyncio.ensure_future(result)
634-
result.add_done_callback(functools.partial(__async_result_callback, future_result))
633+
result = ensure_future(result)
634+
result.add_done_callback(partial(__async_result_callback, future_result))
635635
return
636636
future_result.set_result(result)
637637

@@ -712,7 +712,7 @@ cdef inline bint __iscoroutine(object obj):
712712

713713

714714
cdef inline object __future_result(object instance):
715-
future_result = asyncio.Future()
715+
future_result = Future()
716716
future_result.set_result(instance)
717717
return future_result
718718

0 commit comments

Comments
 (0)