
Security News
npm Adopts OIDC for Trusted Publishing in CI/CD Workflows
npm now supports Trusted Publishing with OIDC, enabling secure package publishing directly from CI/CD workflows without relying on long-lived tokens.
A dependency injection container inspired by Inversify for Python.
This library supports hierarchical containers, various binding types (toSelf, to, constant, dynamic), and scopes (singleton and transient).
from inversify import Container, injectable, inject_params
class Token:
def __init__(self, name):
self.name = name
def __hash__(self):
return hash(self.name)
def __eq__(self, other):
return isinstance(other, Token) and self.name == other.name
# Tokens for bindings
LOGGER_TOKEN = Token("LOGGER")
USER_SERVICE_TOKEN = Token("USER_SERVICE")
@injectable
class Logger:
def __init__(self):
self.name = "Parent Logger"
def log(self, message: str):
print(f"[{self.name}]: {message}")
@injectable
class CustomLogger:
def __init__(self):
self.name = "Child Logger"
def log(self, message: str):
print(f"[{self.name}]: {message}")
@injectable
class UserService:
@inject_params({'logger': LOGGER_TOKEN})
def __init__(self, logger):
self.logger = logger
def process(self):
self.logger.log("Processing in UserService")
# Create parent container and bind tokens
parent_container = Container()
parent_container.bind(LOGGER_TOKEN).to(Logger).inSingletonScope()
parent_container.bind(USER_SERVICE_TOKEN).to(UserService).inTransientScope()
# Create child container and override the LOGGER_TOKEN binding
child_container = parent_container.create_child()
child_container.bind(LOGGER_TOKEN).to(CustomLogger).inSingletonScope()
# Get services from parent and child containers
parent_service = parent_container.get(USER_SERVICE_TOKEN)
child_service = child_container.get(USER_SERVICE_TOKEN)
parent_service.process() # Uses Parent Logger
child_service.process() # Uses Child Logger
FAQs
Dependency Injection Container inspired by Inversify for Python
We found that pynversify demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
npm now supports Trusted Publishing with OIDC, enabling secure package publishing directly from CI/CD workflows without relying on long-lived tokens.
Research
/Security News
A RubyGems malware campaign used 60 malicious packages posing as automation tools to steal credentials from social media and marketing tool users.
Security News
The CNA Scorecard ranks CVE issuers by data completeness, revealing major gaps in patch info and software identifiers across thousands of vulnerabilities.