Skip to content

Commit

Permalink
resovle circular import in package_manager
Browse files Browse the repository at this point in the history
  • Loading branch information
geritwagner committed Apr 22, 2024
1 parent 43adb95 commit e98022b
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 69 deletions.
3 changes: 1 addition & 2 deletions colrev/package_manager/doc_registry_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,7 @@ def __init__(
) -> None:
self.package_manager = package_manager
self.package_endpoints_json: typing.Dict[str, list] = {
x.name: []
for x in colrev.package_manager.package_manager.PACKAGE_TYPE_OVERVIEW
x.name: [] for x in colrev.package_manager.interfaces.PACKAGE_TYPE_OVERVIEW
}
self.docs_for_index: typing.Dict[str, list] = {}
self.package_status = self._load_package_status_json()
Expand Down
66 changes: 65 additions & 1 deletion colrev/package_manager/interfaces.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@

import zope.interface

import colrev.package_manager.package_settings
import colrev.process.operation
import colrev.record.record
import colrev.settings
from colrev.constants import PackageEndpointType
from colrev.constants import SearchSourceHeuristicStatus

# pylint: disable=too-many-ancestors
Expand Down Expand Up @@ -268,3 +268,67 @@ def update_record_status_matrix( # type: ignore
# pylint: disable=no-method-argument
def get_advice() -> dict: # type: ignore
"""Get advice on how to operate the data package endpoint"""


PACKAGE_TYPE_OVERVIEW = {
PackageEndpointType.review_type: {
"import_name": ReviewTypePackageEndpointInterface,
"custom_class": "CustomReviewType",
"operation_name": "operation",
},
PackageEndpointType.search_source: {
"import_name": SearchSourcePackageEndpointInterface,
"custom_class": "CustomSearchSource",
"operation_name": "source_operation",
},
PackageEndpointType.prep: {
"import_name": PrepPackageEndpointInterface,
"custom_class": "CustomPrep",
"operation_name": "prep_operation",
},
PackageEndpointType.prep_man: {
"import_name": PrepManPackageEndpointInterface,
"custom_class": "CustomPrepMan",
"operation_name": "prep_man_operation",
},
PackageEndpointType.dedupe: {
"import_name": DedupePackageEndpointInterface,
"custom_class": "CustomDedupe",
"operation_name": "dedupe_operation",
},
PackageEndpointType.prescreen: {
"import_name": PrescreenPackageEndpointInterface,
"custom_class": "CustomPrescreen",
"operation_name": "prescreen_operation",
},
PackageEndpointType.pdf_get: {
"import_name": PDFGetPackageEndpointInterface,
"custom_class": "CustomPDFGet",
"operation_name": "pdf_get_operation",
},
PackageEndpointType.pdf_get_man: {
"import_name": PDFGetManPackageEndpointInterface,
"custom_class": "CustomPDFGetMan",
"operation_name": "pdf_get_man_operation",
},
PackageEndpointType.pdf_prep: {
"import_name": PDFPrepPackageEndpointInterface,
"custom_class": "CustomPDFPrep",
"operation_name": "pdf_prep_operation",
},
PackageEndpointType.pdf_prep_man: {
"import_name": PDFPrepManPackageEndpointInterface,
"custom_class": "CustomPDFPrepMan",
"operation_name": "pdf_prep_man_operation",
},
PackageEndpointType.screen: {
"import_name": ScreenPackageEndpointInterface,
"custom_class": "CustomScreen",
"operation_name": "screen_operation",
},
PackageEndpointType.data: {
"import_name": DataPackageEndpointInterface,
"custom_class": "CustomData",
"operation_name": "data_operation",
},
}
71 changes: 6 additions & 65 deletions colrev/package_manager/package_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,69 +27,6 @@
# https://github.com/rstudio/reticulate/blob/
# 9ebca7ecc028549dadb3d51d2184f9850f6f9f9d/DESCRIPTION

PACKAGE_TYPE_OVERVIEW = {
PackageEndpointType.review_type: {
"import_name": colrev.package_manager.interfaces.ReviewTypePackageEndpointInterface,
"custom_class": "CustomReviewType",
"operation_name": "operation",
},
PackageEndpointType.search_source: {
"import_name": colrev.package_manager.interfaces.SearchSourcePackageEndpointInterface,
"custom_class": "CustomSearchSource",
"operation_name": "source_operation",
},
PackageEndpointType.prep: {
"import_name": colrev.package_manager.interfaces.PrepPackageEndpointInterface,
"custom_class": "CustomPrep",
"operation_name": "prep_operation",
},
PackageEndpointType.prep_man: {
"import_name": colrev.package_manager.interfaces.PrepManPackageEndpointInterface,
"custom_class": "CustomPrepMan",
"operation_name": "prep_man_operation",
},
PackageEndpointType.dedupe: {
"import_name": colrev.package_manager.interfaces.DedupePackageEndpointInterface,
"custom_class": "CustomDedupe",
"operation_name": "dedupe_operation",
},
PackageEndpointType.prescreen: {
"import_name": colrev.package_manager.interfaces.PrescreenPackageEndpointInterface,
"custom_class": "CustomPrescreen",
"operation_name": "prescreen_operation",
},
PackageEndpointType.pdf_get: {
"import_name": colrev.package_manager.interfaces.PDFGetPackageEndpointInterface,
"custom_class": "CustomPDFGet",
"operation_name": "pdf_get_operation",
},
PackageEndpointType.pdf_get_man: {
"import_name": colrev.package_manager.interfaces.PDFGetManPackageEndpointInterface,
"custom_class": "CustomPDFGetMan",
"operation_name": "pdf_get_man_operation",
},
PackageEndpointType.pdf_prep: {
"import_name": colrev.package_manager.interfaces.PDFPrepPackageEndpointInterface,
"custom_class": "CustomPDFPrep",
"operation_name": "pdf_prep_operation",
},
PackageEndpointType.pdf_prep_man: {
"import_name": colrev.package_manager.interfaces.PDFPrepManPackageEndpointInterface,
"custom_class": "CustomPDFPrepMan",
"operation_name": "pdf_prep_man_operation",
},
PackageEndpointType.screen: {
"import_name": colrev.package_manager.interfaces.ScreenPackageEndpointInterface,
"custom_class": "CustomScreen",
"operation_name": "screen_operation",
},
PackageEndpointType.data: {
"import_name": colrev.package_manager.interfaces.DataPackageEndpointInterface,
"custom_class": "CustomData",
"operation_name": "data_operation",
},
}

# pylint: disable=too-few-public-methods


Expand Down Expand Up @@ -193,7 +130,9 @@ def _build_packages_dict(
# avoid changes in the config
selected_packages = deepcopy(selected_packages)

custom_classes = PACKAGE_TYPE_OVERVIEW[package_type]
custom_classes = colrev.package_manager.interfaces.PACKAGE_TYPE_OVERVIEW[
package_type
]

packages_dict: typing.Dict = {}
for selected_package in selected_packages:
Expand Down Expand Up @@ -284,7 +223,9 @@ def load_packages(
ignore_not_available=ignore_not_available,
)

package_details = PACKAGE_TYPE_OVERVIEW[package_type]
package_details = colrev.package_manager.interfaces.PACKAGE_TYPE_OVERVIEW[
package_type
]
endpoint_class = package_details["import_name"] # type: ignore
to_remove = []
for package_identifier, package_class in packages_dict.items():
Expand Down
1 change: 0 additions & 1 deletion colrev/package_manager/package_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
from dataclasses_jsonschema import JsonSchemaMixin

import colrev.exceptions as colrev_exceptions
import colrev.package_manager.interfaces
import colrev.process.operation
import colrev.record.record
import colrev.settings
Expand Down

0 comments on commit e98022b

Please sign in to comment.