[Bioperl-l] Bio::RangeI::union

Aaron J. Mackey amackey at pcbi.upenn.edu
Thu Jun 9 15:39:37 EDT 2005


Or, how about deprecating the Bio::RangeI->union() construct (since  
although we've supplied implementations in interface, we don't need  
to encourage people to use them)?  This is just a weird way to do  
$newrange = Bio::Range->union(@ranges), right? (which saves a whole  
capitalized keystroke!)

-Aaron

On Jun 9, 2005, at 2:45 PM, Chris Mungall wrote:

>
> The pod docs for union() state that this is is valid:
>
>   my $newrange = Bio::RangeI->union(@ranges);
>
> In the subroutine body, this gets called:
>
>   my $self = shift;
>   ...
>   $self->new(...)
>
> Since $self is equal to the string "Bio::RangeI", rather than an  
> object
> implementing this interface, this will result in a call to
>
>   Bio::Root::RootI->new("Bio::RangeI",...)
>
> This works fine in bp1.4, but in recent bioperl revisions this  
> results in
> a warning message that Bio::Root::RootI->new is deprecated, and a
> delegation to Bio::Root::Root, **omitting the name of the class to be
> created**, thus creating a Bio::Root::Root object, which is useless  
> and
> will inevitably break any code calling the union() method.
>
> I think this delegation is completely wrong, and should be removed,  
> and
> the warning message switched to an error; OR it should be  
> undeprecated and
> the original behaviour behaviour restored
>
> If we decide that RootI->new is truly deprecated, then Bio::RangeI  
> should
> have to do some $self examination, and use the correct object
> instantiation method, rather than $self->new. I don't really know  
> what the
> correct object instantiation method is - perhaps just Bio::Range- 
> >new()?
> Or should a factory be used?
>
> Personally, I would prefer it if Bio::RootI->new were undeprecated  
> and the
> original behaviour restored. deprecating would make perfect sense if
> bioperl interfaces really were interfaces, which they are not.
>
> Cheers
> Chris
>
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at portal.open-bio.org
> http://portal.open-bio.org/mailman/listinfo/bioperl-l
>

--
Aaron J. Mackey, Ph.D.
Project Manager, ApiDB Bioinformatics Resource Center
Penn Genomics Institute, University of Pennsylvania
email:  amackey at pcbi.upenn.edu
office: 215-898-1205
fax:    215-746-6697
postal: Penn Genomics Institute
         Goddard Labs 212
         415 S. University Avenue
         Philadelphia, PA  19104-6017



More information about the Bioperl-l mailing list