|
27 | 27 | import time
|
28 | 28 | import re
|
29 | 29 | import types
|
| 30 | +from typing import Protocol |
30 | 31 | import zipfile
|
31 | 32 | import zipimport
|
32 | 33 | import warnings
|
@@ -529,54 +530,54 @@ def get_entry_info(dist, group, name):
|
529 | 530 | return get_distribution(dist).get_entry_info(group, name)
|
530 | 531 |
|
531 | 532 |
|
532 |
| -class IMetadataProvider: |
533 |
| - def has_metadata(name): |
| 533 | +class IMetadataProvider(Protocol): |
| 534 | + def has_metadata(self, name): |
534 | 535 | """Does the package's distribution contain the named metadata?"""
|
535 | 536 |
|
536 |
| - def get_metadata(name): |
| 537 | + def get_metadata(self, name): |
537 | 538 | """The named metadata resource as a string"""
|
538 | 539 |
|
539 |
| - def get_metadata_lines(name): |
| 540 | + def get_metadata_lines(self, name): |
540 | 541 | """Yield named metadata resource as list of non-blank non-comment lines
|
541 | 542 |
|
542 | 543 | Leading and trailing whitespace is stripped from each line, and lines
|
543 | 544 | with ``#`` as the first non-blank character are omitted."""
|
544 | 545 |
|
545 |
| - def metadata_isdir(name): |
| 546 | + def metadata_isdir(self, name): |
546 | 547 | """Is the named metadata a directory? (like ``os.path.isdir()``)"""
|
547 | 548 |
|
548 |
| - def metadata_listdir(name): |
| 549 | + def metadata_listdir(self, name): |
549 | 550 | """List of metadata names in the directory (like ``os.listdir()``)"""
|
550 | 551 |
|
551 |
| - def run_script(script_name, namespace): |
| 552 | + def run_script(self, script_name, namespace): |
552 | 553 | """Execute the named script in the supplied namespace dictionary"""
|
553 | 554 |
|
554 | 555 |
|
555 |
| -class IResourceProvider(IMetadataProvider): |
| 556 | +class IResourceProvider(IMetadataProvider, Protocol): |
556 | 557 | """An object that provides access to package resources"""
|
557 | 558 |
|
558 |
| - def get_resource_filename(manager, resource_name): |
| 559 | + def get_resource_filename(self, manager, resource_name): |
559 | 560 | """Return a true filesystem path for `resource_name`
|
560 | 561 |
|
561 | 562 | `manager` must be an ``IResourceManager``"""
|
562 | 563 |
|
563 |
| - def get_resource_stream(manager, resource_name): |
| 564 | + def get_resource_stream(self, manager, resource_name): |
564 | 565 | """Return a readable file-like object for `resource_name`
|
565 | 566 |
|
566 | 567 | `manager` must be an ``IResourceManager``"""
|
567 | 568 |
|
568 |
| - def get_resource_string(manager, resource_name): |
| 569 | + def get_resource_string(self, manager, resource_name): |
569 | 570 | """Return a string containing the contents of `resource_name`
|
570 | 571 |
|
571 | 572 | `manager` must be an ``IResourceManager``"""
|
572 | 573 |
|
573 |
| - def has_resource(resource_name): |
| 574 | + def has_resource(self, resource_name): |
574 | 575 | """Does the package contain the named resource?"""
|
575 | 576 |
|
576 |
| - def resource_isdir(resource_name): |
| 577 | + def resource_isdir(self, resource_name): |
577 | 578 | """Is the named resource a directory? (like ``os.path.isdir()``)"""
|
578 | 579 |
|
579 |
| - def resource_listdir(resource_name): |
| 580 | + def resource_listdir(self, resource_name): |
580 | 581 | """List of resource names in the directory (like ``os.listdir()``)"""
|
581 | 582 |
|
582 | 583 |
|
|
0 commit comments