requires
requires
⚓︎
requires
~ dependency utils
Classes⚓︎
requires.Requirement(_import: str, _from: Optional[str] = None, _as: Optional[str] = None, pip: Optional[Union[str, bool]] = None, conda: Optional[Union[str, bool]] = None, conda_forge: Optional[Union[str, bool]] = None, details: Optional[Union[str, List[str]]] = None, lazy: bool = True)
dataclass
⚓︎
Functions⚓︎
requires.Requirement.import_requirement() -> Any
⚓︎
Import and return the requirement
Source code in libs/requires/src/requires/core.py
199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 |
|
requires.RequirementAttributeError
⚓︎
Bases: AttributeError
Requirement attribute error
requires.RequirementDict
⚓︎
Bases: TypedDict
Requirement dict
requires.RequirementError
⚓︎
Bases: ModuleNotFoundError
Exception for requires
requires.RequirementProxy(req: Requirement)
⚓︎
Source code in libs/requires/src/requires/core.py
358 359 360 |
|
Functions⚓︎
requires.RequirementProxy.__bool__() -> bool
⚓︎
Prevent the proxy from being used in boolean contexts
Source code in libs/requires/src/requires/core.py
387 388 389 |
|
requires.RequirementProxy.__call__(*args: Any, **kwargs: Any) -> Any
⚓︎
Raise the error when the proxy is called as a function
Source code in libs/requires/src/requires/core.py
362 363 364 |
|
requires.RequirementProxy.__getattr__(item: str) -> Any
⚓︎
Raise the error when any attribute is accessed
Source code in libs/requires/src/requires/core.py
366 367 368 |
|
requires.RequirementProxy.__getitem__(key: Any) -> Any
⚓︎
Raise the error when attempting to access items (e.g., proxy[key])
Source code in libs/requires/src/requires/core.py
376 377 378 |
|
requires.RequirementProxy.__setattr__(key: str, value: Any) -> None
⚓︎
Prevent the proxy from being used in attribute assignment
Source code in libs/requires/src/requires/core.py
380 381 382 383 384 385 |
|
requires.RequirementWarning
⚓︎
Bases: UserWarning
Warning for requires
requires.RequirementsMeta(requirements: Set[Requirement] = set())
dataclass
⚓︎
Functions⚓︎
requires.RequirementsMeta.preflight_check(*, warn: bool = False, on_missing: Optional[Callable[[Set[Requirement]], None]]) -> Set[Requirement]
⚓︎
Check if requirements are met
Parameters:
Name | Type | Description | Default |
---|---|---|---|
warn
|
bool
|
If True, issues warnings for missing requirements. |
False
|
on_missing
|
Optional[Callable[[Set[Requirement]], None]]
|
Callback to do something on missing requirements. |
required |
Returns:
Type | Description |
---|---|
Set[Requirement]
|
Set[Requirement]: A set of missing requirements |
Source code in libs/requires/src/requires/core.py
323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 |
|
Functions⚓︎
requires.preflight_check(*, warn: bool = False, on_missing: Optional[Callable[[Set[Requirement]], None]] = None) -> RequirementsMeta
⚓︎
Scan and check calling module scope for objs/fns wrapped with requirements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
warn
|
bool
|
If True, issues warnings for missing requirements. |
False
|
on_missing
|
Optional[Callable[[Set[Requirement]], None]]
|
Callback to do something on missing requirements. |
None
|
Returns:
Name | Type | Description |
---|---|---|
RequirementsMeta |
RequirementsMeta
|
A RequirementsMeta instance with the requirements found during the check. |
Source code in libs/requires/src/requires/core.py
576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 |
|
requires.requires(*requirements: Union[str, TRequirementDict, Requirement], _import: Optional[str] = None, _as: Optional[str] = None, _from: Optional[str] = None, pip: Optional[Union[str, bool]] = None, conda: Optional[Union[str, bool]] = None, conda_forge: Optional[Union[str, bool]] = None, details: Optional[str] = None, lazy: Optional[bool] = None) -> Callable[[Callable[P, R]], Callable[P, R]]
⚓︎
Decorator to specify the packages a function or class requires
The decorator will not do anything unless a NameError is thrown. If a
NameError is thrown then the required package is likely not installed and
a RequirementError
will be thrown with instructions on how to install
the required packages.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*requirements
|
Union[str, TRequirementDict, Requirement]
|
Any number of required package names as strings |
()
|
_import
|
'str'
|
|
None
|
_as
|
'str'
|
|
None
|
_from
|
'str'
|
|
None
|
pip
|
Optional[Union[str, bool]]
|
pip install name |
None
|
conda
|
Optional[Union[str, bool]]
|
conda install name |
None
|
conda_forge
|
Optional[Union[str, bool]]
|
conda-forge install name |
None
|
details
|
str
|
details to be displayed in the error message |
None
|
lazy
|
bool
|
If True, the requirement is loaded lazily |
None
|
Returns:
Type | Description |
---|---|
Callable[[Callable[P, R]], Callable[P, R]]
|
Function wrapped such that in the event of a |
Callable[[Callable[P, R]], Callable[P, R]]
|
error is raised. |
Raises:
Type | Description |
---|---|
ValueError
|
If requirements or kwargs are given |
Source code in libs/requires/src/requires/core.py
475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 |
|
requires.requires_python(version: str) -> None
⚓︎
Decorator to specify the python version a function or class requires
Source code in libs/requires/src/requires/core.py
596 597 598 |
|
requires.scope_requirements(debug: bool = False) -> RequirementsMeta
⚓︎
Scan and check calling module scope for objs/fns wrapped with requirements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
debug
|
bool
|
If True, log debug info. |
False
|
Returns:
Name | Type | Description |
---|---|---|
RequirementsMeta |
RequirementsMeta
|
A RequirementsMeta instance with the requirements found during the check. |
Source code in libs/requires/src/requires/core.py
547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 |
|
Modules⚓︎
requires.__about__
⚓︎
Package metadata/info
requires.__main__
⚓︎
pkg entry ~ python -m requires
Functions⚓︎
requires.__main__.main() -> None
⚓︎
Print package metadata
Source code in libs/requires/src/requires/__main__.py
11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
requires.core
⚓︎
Core for requires
Classes⚓︎
requires.core.Requirement(_import: str, _from: Optional[str] = None, _as: Optional[str] = None, pip: Optional[Union[str, bool]] = None, conda: Optional[Union[str, bool]] = None, conda_forge: Optional[Union[str, bool]] = None, details: Optional[Union[str, List[str]]] = None, lazy: bool = True)
dataclass
⚓︎
requires.core.Requirement.import_requirement() -> Any
⚓︎Import and return the requirement
Source code in libs/requires/src/requires/core.py
199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 |
|
requires.core.RequirementAttributeError
⚓︎
Bases: AttributeError
Requirement attribute error
requires.core.RequirementDict
⚓︎
Bases: TypedDict
Requirement dict
requires.core.RequirementError
⚓︎
Bases: ModuleNotFoundError
Exception for requires
requires.core.RequirementProxy(req: Requirement)
⚓︎
Source code in libs/requires/src/requires/core.py
358 359 360 |
|
requires.core.RequirementProxy.__bool__() -> bool
⚓︎Prevent the proxy from being used in boolean contexts
Source code in libs/requires/src/requires/core.py
387 388 389 |
|
requires.core.RequirementProxy.__call__(*args: Any, **kwargs: Any) -> Any
⚓︎Raise the error when the proxy is called as a function
Source code in libs/requires/src/requires/core.py
362 363 364 |
|
requires.core.RequirementProxy.__getattr__(item: str) -> Any
⚓︎Raise the error when any attribute is accessed
Source code in libs/requires/src/requires/core.py
366 367 368 |
|
requires.core.RequirementProxy.__getitem__(key: Any) -> Any
⚓︎Raise the error when attempting to access items (e.g., proxy[key])
Source code in libs/requires/src/requires/core.py
376 377 378 |
|
requires.core.RequirementProxy.__setattr__(key: str, value: Any) -> None
⚓︎Prevent the proxy from being used in attribute assignment
Source code in libs/requires/src/requires/core.py
380 381 382 383 384 385 |
|
requires.core.RequirementWarning
⚓︎
Bases: UserWarning
Warning for requires
requires.core.RequirementsError
⚓︎
Bases: ModuleNotFoundError
Exception for multiple requirements
requires.core.RequirementsMeta(requirements: Set[Requirement] = set())
dataclass
⚓︎
requires.core.RequirementsMeta.preflight_check(*, warn: bool = False, on_missing: Optional[Callable[[Set[Requirement]], None]]) -> Set[Requirement]
⚓︎Check if requirements are met
Parameters:
Name | Type | Description | Default |
---|---|---|---|
warn
|
bool
|
If True, issues warnings for missing requirements. |
False
|
on_missing
|
Optional[Callable[[Set[Requirement]], None]]
|
Callback to do something on missing requirements. |
required |
Returns:
Type | Description |
---|---|
Set[Requirement]
|
Set[Requirement]: A set of missing requirements |
Source code in libs/requires/src/requires/core.py
323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 |
|
Functions⚓︎
requires.core.parse_name_error(ne: NameError) -> List[str]
⚓︎
Return a list of the missing items specified in a NameError
Parameters:
Name | Type | Description | Default |
---|---|---|---|
ne
|
NameError
|
NameError object |
required |
Returns:
Name | Type | Description |
---|---|---|
str |
List[str]
|
name of the missing thing/pkg/module/function |
Examples:
>>> args = ("name 'path' is not defined",)
>>> ne = NameError(*args)
>>> parse_name_error(ne)
['path']
Source code in libs/requires/src/requires/core.py
392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 |
|
requires.core.preflight_check(*, warn: bool = False, on_missing: Optional[Callable[[Set[Requirement]], None]] = None) -> RequirementsMeta
⚓︎
Scan and check calling module scope for objs/fns wrapped with requirements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
warn
|
bool
|
If True, issues warnings for missing requirements. |
False
|
on_missing
|
Optional[Callable[[Set[Requirement]], None]]
|
Callback to do something on missing requirements. |
None
|
Returns:
Name | Type | Description |
---|---|---|
RequirementsMeta |
RequirementsMeta
|
A RequirementsMeta instance with the requirements found during the check. |
Source code in libs/requires/src/requires/core.py
576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 |
|
requires.core.requires(*requirements: Union[str, TRequirementDict, Requirement], _import: Optional[str] = None, _as: Optional[str] = None, _from: Optional[str] = None, pip: Optional[Union[str, bool]] = None, conda: Optional[Union[str, bool]] = None, conda_forge: Optional[Union[str, bool]] = None, details: Optional[str] = None, lazy: Optional[bool] = None) -> Callable[[Callable[P, R]], Callable[P, R]]
⚓︎
Decorator to specify the packages a function or class requires
The decorator will not do anything unless a NameError is thrown. If a
NameError is thrown then the required package is likely not installed and
a RequirementError
will be thrown with instructions on how to install
the required packages.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
*requirements
|
Union[str, TRequirementDict, Requirement]
|
Any number of required package names as strings |
()
|
_import
|
'str'
|
|
None
|
_as
|
'str'
|
|
None
|
_from
|
'str'
|
|
None
|
pip
|
Optional[Union[str, bool]]
|
pip install name |
None
|
conda
|
Optional[Union[str, bool]]
|
conda install name |
None
|
conda_forge
|
Optional[Union[str, bool]]
|
conda-forge install name |
None
|
details
|
str
|
details to be displayed in the error message |
None
|
lazy
|
bool
|
If True, the requirement is loaded lazily |
None
|
Returns:
Type | Description |
---|---|
Callable[[Callable[P, R]], Callable[P, R]]
|
Function wrapped such that in the event of a |
Callable[[Callable[P, R]], Callable[P, R]]
|
error is raised. |
Raises:
Type | Description |
---|---|
ValueError
|
If requirements or kwargs are given |
Source code in libs/requires/src/requires/core.py
475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 |
|
requires.core.requires_python(version: str) -> None
⚓︎
Decorator to specify the python version a function or class requires
Source code in libs/requires/src/requires/core.py
596 597 598 |
|
requires.core.scope_requirements(debug: bool = False) -> RequirementsMeta
⚓︎
Scan and check calling module scope for objs/fns wrapped with requirements.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
debug
|
bool
|
If True, log debug info. |
False
|
Returns:
Name | Type | Description |
---|---|---|
RequirementsMeta |
RequirementsMeta
|
A RequirementsMeta instance with the requirements found during the check. |
Source code in libs/requires/src/requires/core.py
547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 |
|