/lib/galaxy/util/none_like.py

https://bitbucket.org/cistrome/cistrome-harvard/ · Python · 33 lines · 27 code · 2 blank · 4 comment · 1 complexity · a5576b46be8cdf652ee8a63c8b5b3fea MD5 · raw file

  1. """
  2. Objects with No values
  3. """
  4. from galaxy.datatypes.metadata import MetadataCollection
  5. from galaxy.datatypes.registry import Registry
  6. class RecursiveNone:
  7. def __str__( self ):
  8. return "None"
  9. def __repr__( self ):
  10. return str( self )
  11. def __getattr__( self, name ):
  12. value = RecursiveNone()
  13. setattr( self, name, value )
  14. return value
  15. def __nonzero__( self ):
  16. return False
  17. class NoneDataset( RecursiveNone ):
  18. def __init__( self, datatypes_registry = None, ext = 'data', dbkey = '?' ):
  19. self.ext = self.extension = ext
  20. self.dbkey = dbkey
  21. if datatypes_registry is None:
  22. # Default Value Required for unit tests
  23. datatypes_registry = Registry()
  24. datatypes_registry.load_datatypes()
  25. self.datatype = datatypes_registry.get_datatype_by_extension( ext )
  26. self._metadata = None
  27. self.metadata = MetadataCollection( self )
  28. def __getattr__( self, name ):
  29. return "None"
  30. def missing_meta( self ):
  31. return False