MCPcopy Create free account
hub / github.com/tox-dev/filelock / _init_parameter_model

Function _init_parameter_model

src/filelock/_api.py:474–493  ·  view source on GitHub ↗
(cls: type[BaseFileLock])

Source from the content-addressed store, hash-verified

472
473
474def _init_parameter_model(cls: type[BaseFileLock]) -> _InitParameterModel:
475 # A strong cache would keep dynamically created subclasses alive for the process lifetime.
476 with _fork_transition(), _FORK_STATE.parameter_models_lock:
477 if (model := _INIT_PARAMETER_MODELS.get(cls)) is None:
478 parameters = inspect.signature(cls.__init__).parameters.values()
479 model = _InitParameterModel(
480 accepted_params=frozenset(
481 parameter.name
482 for parameter in parameters
483 if parameter.kind in {inspect.Parameter.POSITIONAL_OR_KEYWORD, inspect.Parameter.KEYWORD_ONLY}
484 ),
485 accepts_kwargs=any(parameter.kind is inspect.Parameter.VAR_KEYWORD for parameter in parameters),
486 default_params={
487 name: parameter
488 for name, parameter in inspect.signature(type(cls).__call__).parameters.items()
489 if parameter.default is not inspect.Parameter.empty
490 },
491 )
492 _INIT_PARAMETER_MODELS[cls] = model
493 return model
494
495
496@dataclass(frozen=True)

Callers 1

_create_instanceMethod · 0.85

Calls 2

_fork_transitionFunction · 0.85
_InitParameterModelClass · 0.85

Tested by

no test coverage detected