New Python library: gean
Posted on 31 May 2020gean
is a minimal IOC container inspired by Spring.
Check it out at github.com/garciat/gean.
Here’s an example from the README file:
from gean import Container, includes
class Michael:
def speak(self):
return 'what'
@includes(Michael)
class WhateverModule:
def whatever(self) -> int:
return 42
def world(self) -> int:
return 100
class Application:
my_dir: str
whatever: 'int'
world: int
m: Michael
def start(self):
print(self.my_dir)
print(self.whatever)
print(self.world)
print(self.m.speak())
@includes(
WhateverModule,
Application,
Michael,
)
class ApplicationModule:
config_dir: str
def another_dir(self) -> str:
return self.config_dir + '/another'
def my_dir(self, another_dir: 'str') -> str:
return another_dir + '/ñe'
def _main():
container = Container()
container.register_instance('/etc/hello/world', name='config_dir')
container.register_module(ApplicationModule)
container.resolve(Application).start()
if __name__ == '__main__':
_main()