Code Duplication    Length = 28-28 lines in 2 locations

mandos/entries/entries.py 2 locations

@@ 557-584 (lines=28) @@
554
        return cls._run(built, path, to, check, log, quiet, verbose, no_setup)
555
556
557
class EntryTransporterGeneralFunction(Entry[DrugbankGeneralFunctionSearch]):
558
    @classmethod
559
    def run(
560
        cls,
561
        path: Path = CommonArgs.compounds,
562
        key: str = EntryArgs.key("inter.drugbank:pk-fn"),
563
        as_of: Optional[str] = CommonArgs.as_of,
564
        to: Optional[Path] = CommonArgs.to_single,
565
        check: bool = EntryArgs.check,
566
        log: Optional[Path] = CommonArgs.log_path,
567
        quiet: bool = CommonArgs.quiet,
568
        verbose: bool = CommonArgs.verbose,
569
        no_setup: bool = CommonArgs.no_setup,
570
    ) -> Searcher:
571
        """
572
        DrugBank PK-related protein functions.
573
574
        OBJECT: Name of the general function (e.g. "Toxic substance binding")
575
576
        PREDICATE: "<target_type>:<action>" (e.g. metabolized, transported, etc.)
577
        """
578
        target_types = {
579
            DrugbankTargetType.transporter,
580
            DrugbankTargetType.carrier,
581
            DrugbankTargetType.enzyme,
582
        }
583
        built = DrugbankGeneralFunctionSearch(key, Apis.Pubchem, target_types)
584
        return cls._run(built, path, to, check, log, quiet, verbose, no_setup)
585
586
587
class EntryDrugbankDdi(Entry[DrugbankDdiSearch]):
@@ 527-554 (lines=28) @@
524
        return cls._run(built, path, to, check, log, quiet, verbose, no_setup)
525
526
527
class EntryDrugbankTransporter(Entry[DrugbankTargetSearch]):
528
    @classmethod
529
    def run(
530
        cls,
531
        path: Path = CommonArgs.compounds,
532
        key: str = EntryArgs.key("inter.drugbank:pk"),
533
        as_of: Optional[str] = CommonArgs.as_of,
534
        to: Optional[Path] = CommonArgs.to_single,
535
        check: bool = EntryArgs.check,
536
        log: Optional[Path] = CommonArgs.log_path,
537
        quiet: bool = CommonArgs.quiet,
538
        verbose: bool = CommonArgs.verbose,
539
        no_setup: bool = CommonArgs.no_setup,
540
    ) -> Searcher:
541
        """
542
        PK-related proteins from DrugBank.
543
544
        OBJECT: Transporter name (e.g. "Solute carrier family 22 member 11") from DrugBank
545
546
        PREDICATE: "<target_type>:<action>" (e.g. metabolized, transported, etc.)
547
        """
548
        target_types = {
549
            DrugbankTargetType.transporter,
550
            DrugbankTargetType.carrier,
551
            DrugbankTargetType.enzyme,
552
        }
553
        built = DrugbankTargetSearch(key, Apis.Pubchem, target_types)
554
        return cls._run(built, path, to, check, log, quiet, verbose, no_setup)
555
556
557
class EntryTransporterGeneralFunction(Entry[DrugbankGeneralFunctionSearch]):