It sounds like you are trying to defer loading of namespaces in order to save time when they are unnecessary? That's probably going to end up a losing battle.
On Fri, Sep 6, 2019 at 5:47 AM Bhagwat, Aditya <aditya.bhag...@mpi-bn.mpg.de> wrote: > > Thank you Michael, > > Appreciate your time for helping me fill the gaps in my understanding of the > S4 flow :-). > > It all started when I defined (in my multicrispr package) the S4 coercer : > methods::setAs( "BSgenome", > > "GRanges", > function(from) as(GenomeInfoDb::seqinfo(from), "GRanges") > > When building, I noticed the message > in method for 'coerce' with signature '"BSgenome","GRanges"': no definition > for class "BSgenome" > > So, I added > BSgenome <- methods::getClassDef('BSgenome', package = 'BSgenome') > > That loads all these dependencies. > From your answer, I understand that there is currently no alternative to > loading all these dependencies. > I guess because these dependencies are needed to provide for all required S4 > methods for the BSgenome class, am I right? > > Is there a way to define a methods::setAs without loading the class > definition? > > Aditya > > > > > ________________________________________ > From: Michael Lawrence [lawrence.mich...@gene.com] > Sent: Friday, September 06, 2019 1:09 PM > To: Bhagwat, Aditya > Cc: bioc-devel@r-project.org > Subject: Re: [Bioc-devel] Import BSgenome class without attaching > BiocGenerics (and others)? > > The way to keep a "clean namespace" is to selectively import symbols > into your namespace, not to import _nothing_ into your namespace. > Otherwise, your code will fill with namespace qualifications that > distract from what is more important to communicate: the intent of the > code. And no, there's no way to define method signatures using > anything other than simple class names. > > It would be interesting to explore alternative ways of specifying > method signatures. One way would be if every package exported a "class > reference" (class name with package attribute, at least) for each of > its classes. Those could be treated like any other exported object, > and referenced via namespace qualification. It would require major > changes to the methods package but that should probably happen anyway > to support disambiguation when two packages define a class of the same > name. It would be nice to get away from the exportClasses() and > importClasses() stuff. File that under the "rainy year" category. > > Michael > > On Fri, Sep 6, 2019 at 3:39 AM Bhagwat, Aditya > <aditya.bhag...@mpi-bn.mpg.de> wrote: > > > > Dear Bioc devel, > > > > Is it possible to import the BSgenome class without attaching BiocGenerics > > (to keep a clean namespace during the development of > > multicrispr<https://gitlab.gwdg.de/loosolab/software/multicrispr>). > > > > BSgenome <- methods::getClassDef('BSgenome', package = 'BSgenome') > > > > (Posted earlier on BioC support<https://support.bioconductor.org/p/124442/> > > and redirected here following Martin's suggestion) > > > > Thankyou :-) > > > > Aditya > > > > [[alternative HTML version deleted]] > > > > _______________________________________________ > > Bioc-devel@r-project.org mailing list > > https://stat.ethz.ch/mailman/listinfo/bioc-devel > > > > -- > Michael Lawrence > Scientist, Bioinformatics and Computational Biology > Genentech, A Member of the Roche Group > Office +1 (650) 225-7760 > micha...@gene.com > > Join Genentech on LinkedIn | Twitter | Facebook | Instagram | YouTube -- Michael Lawrence Scientist, Bioinformatics and Computational Biology Genentech, A Member of the Roche Group Office +1 (650) 225-7760 micha...@gene.com Join Genentech on LinkedIn | Twitter | Facebook | Instagram | YouTube _______________________________________________ Bioc-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/bioc-devel