"""Contains a Directory class to represent real directories"""

from ..base import _BaseFileAndDirectoryInterface


class Directory(_BaseFileAndDirectoryInterface):
    """A class that groups together the (meta)data and behavior of 
    directories"""
    def __init__(self, path):
        """
        Construct the object

        Parameters:
        path -- (str) where the directory is (or will be) located at. An 
                exception is raised if the path refers to a file, and also if an
                empty string is given.

        """        
        
        return
    
    # Special Methods
    def __repr__(self):
        pass

    def __str__(self):
        pass
    
    # Properties
    @property
    def name(self):
        pass
    
    @property
    def path(self):
        pass              
    
    @property
    def exists(self):
        pass
    
    @property
    def created_on(self):
        pass    
    
    @property
    def size(self):
        pass    
    
    @property
    def parent(self):
        pass  
    
    @property
    def owner(self):
        pass  
    
    @property
    def group(self):
        pass   
    
    # Regular Methods
    def get_parent(self):
        pass         
    
    def create(self):
        pass         
    
    def get_permissions(self):
        pass  
    
    def change_permissions(self):
        pass      
    
    def chmod(self):
        pass 
    
    def change_owner(self):
        pass       
    
    def change_group(self):
        pass             
    
    def copy(self):
        pass
    
    def move(self):
        pass
    
    def rename(self):
        pass 
    
    def remove(self):
        pass    
"""Contains a Directory class to represent real directories"""

from ..base import _BaseFileAndDirectoryInterface
from ..exceptions import InvalidDirectoryValueError


class Directory(_BaseFileAndDirectoryInterface):
    """A class that groups together the (meta)data and behavior of 
    directories"""
    def __init__(self, path):
        """
        Construct the object

        Parameters:
        path -- (str) where the directory is (or will be) located at. An 
                exception is raised if the path refers to a file, and also if an
                empty string is given.

        """
        if not path:
            # No point in continuing since the methods of this class assume
            # that a path will be given upon instantiation.
            raise InvalidDirectoryValueError("No directory path was given")        
        
        return
    
    # Special Methods
    def __repr__(self):
        pass

    def __str__(self):
        pass
    
    # Properties
    @property
    def name(self):
        pass
    
    @property
    def path(self):
        pass              
    
    @property
    def exists(self):
        pass
    
    @property
    def created_on(self):
        pass    
    
    @property
    def size(self):
        pass    
    
    @property
    def parent(self):
        pass  
    
    @property
    def owner(self):
        pass  
    
    @property
    def group(self):
        pass   
    
    # Regular Methods
    def get_parent(self):
        pass         
    
    def create(self):
        pass         
    
    def get_permissions(self):
        pass  
    
    def change_permissions(self):
        pass      
    
    def chmod(self):
        pass 
    
    def change_owner(self):
        pass       
    
    def change_group(self):
        pass             
    
    def copy(self):
        pass
    
    def move(self):
        pass
    
    def rename(self):
        pass 
    
    def remove(self):
        pass    
Add custom exception logic to the Directory class
Add custom exception logic to the Directory class

If an empty string was passed to the Directory class, then an exception
needs to be raised as all of its methods assume a value for the path.

  """Contains a Directory class to represent real directories"""
  
  from ..base import _BaseFileAndDirectoryInterface
+ from ..exceptions import InvalidDirectoryValueError
  
  
  class Directory(_BaseFileAndDirectoryInterface):
      """A class that groups together the (meta)data and behavior of 
      directories"""
      def __init__(self, path):
          """
          Construct the object
  
          Parameters:
          path -- (str) where the directory is (or will be) located at. An 
                  exception is raised if the path refers to a file, and also if an
                  empty string is given.
  
-         """        
+         """
+         if not path:
+             # No point in continuing since the methods of this class assume
+             # that a path will be given upon instantiation.
+             raise InvalidDirectoryValueError("No directory path was given")        
          
          return
      
      # Special Methods
      def __repr__(self):
          pass
  
      def __str__(self):
          pass
      
      # Properties
      @property
      def name(self):
          pass
      
      @property
      def path(self):
          pass              
      
      @property
      def exists(self):
          pass
      
      @property
      def created_on(self):
          pass    
      
      @property
      def size(self):
          pass    
      
      @property
      def parent(self):
          pass  
      
      @property
      def owner(self):
          pass  
      
      @property
      def group(self):
          pass   
      
      # Regular Methods
      def get_parent(self):
          pass         
      
      def create(self):
          pass         
      
      def get_permissions(self):
          pass  
      
      def change_permissions(self):
          pass      
      
      def chmod(self):
          pass 
      
      def change_owner(self):
          pass       
      
      def change_group(self):
          pass             
      
      def copy(self):
          pass
      
      def move(self):
          pass
      
      def rename(self):
          pass 
      
      def remove(self):
          pass    
Add custom exception logic to the Directory class
## Code Before:
"""Contains a Directory class to represent real directories"""

from ..base import _BaseFileAndDirectoryInterface


class Directory(_BaseFileAndDirectoryInterface):
    """A class that groups together the (meta)data and behavior of 
    directories"""
    def __init__(self, path):
        """
        Construct the object

        Parameters:
        path -- (str) where the directory is (or will be) located at. An 
                exception is raised if the path refers to a file, and also if an
                empty string is given.

        """        
        
        return
    
    # Special Methods
    def __repr__(self):
        pass

    def __str__(self):
        pass
    
    # Properties
    @property
    def name(self):
        pass
    
    @property
    def path(self):
        pass              
    
    @property
    def exists(self):
        pass
    
    @property
    def created_on(self):
        pass    
    
    @property
    def size(self):
        pass    
    
    @property
    def parent(self):
        pass  
    
    @property
    def owner(self):
        pass  
    
    @property
    def group(self):
        pass   
    
    # Regular Methods
    def get_parent(self):
        pass         
    
    def create(self):
        pass         
    
    def get_permissions(self):
        pass  
    
    def change_permissions(self):
        pass      
    
    def chmod(self):
        pass 
    
    def change_owner(self):
        pass       
    
    def change_group(self):
        pass             
    
    def copy(self):
        pass
    
    def move(self):
        pass
    
    def rename(self):
        pass 
    
    def remove(self):
        pass    
## Instruction:
Add custom exception logic to the Directory class
## Code After:
"""Contains a Directory class to represent real directories"""

from ..base import _BaseFileAndDirectoryInterface
from ..exceptions import InvalidDirectoryValueError


class Directory(_BaseFileAndDirectoryInterface):
    """A class that groups together the (meta)data and behavior of 
    directories"""
    def __init__(self, path):
        """
        Construct the object

        Parameters:
        path -- (str) where the directory is (or will be) located at. An 
                exception is raised if the path refers to a file, and also if an
                empty string is given.

        """
        if not path:
            # No point in continuing since the methods of this class assume
            # that a path will be given upon instantiation.
            raise InvalidDirectoryValueError("No directory path was given")        
        
        return
    
    # Special Methods
    def __repr__(self):
        pass

    def __str__(self):
        pass
    
    # Properties
    @property
    def name(self):
        pass
    
    @property
    def path(self):
        pass              
    
    @property
    def exists(self):
        pass
    
    @property
    def created_on(self):
        pass    
    
    @property
    def size(self):
        pass    
    
    @property
    def parent(self):
        pass  
    
    @property
    def owner(self):
        pass  
    
    @property
    def group(self):
        pass   
    
    # Regular Methods
    def get_parent(self):
        pass         
    
    def create(self):
        pass         
    
    def get_permissions(self):
        pass  
    
    def change_permissions(self):
        pass      
    
    def chmod(self):
        pass 
    
    def change_owner(self):
        pass       
    
    def change_group(self):
        pass             
    
    def copy(self):
        pass
    
    def move(self):
        pass
    
    def rename(self):
        pass 
    
    def remove(self):
        pass    