diff --git a/models/__init__.py b/models/__init__.py new file mode 100755 index 00000000000..e69de29bb2d diff --git a/models/base_model.py b/models/base_model.py new file mode 100755 index 00000000000..2e2412ccc5a --- /dev/null +++ b/models/base_model.py @@ -0,0 +1,34 @@ +#!/usr/bin/python3 +""" +Contains class BaseModel +""" + +from datetime import datetime +import uuid + + +class BaseModel: + """The BaseModel class from which future classes will be derived""" + def __init__(self): + """Initialization of the base model""" + self.id = str(uuid.uuid4()) + self.created_at = datetime.now() + self.updated_at = self.created_at + + def __str__(self): + """String representation of the BaseModel class""" + return "[{:s}] ({:s}) {}".format(self.__class__.__name__, self.id, + self.__dict__) + + def save(self): + """updates the attribute 'updated_at' with the current datetime""" + self.updated_at = datetime.now() + + def to_dict(self): + """returns a dictionary containing all keys/values of the instance""" + time = "%Y-%m-%dT%H:%M:%S.%f" + new_dict = self.__dict__.copy() + new_dict["created_at"] = new_dict["created_at"].strftime(time) + new_dict["updated_at"] = new_dict["updated_at"].strftime(time) + new_dict["__class__"] = self.__class__.__name__ + return new_dict diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100755 index 00000000000..e69de29bb2d diff --git a/tests/test_models/__init__.py b/tests/test_models/__init__.py new file mode 100755 index 00000000000..e69de29bb2d diff --git a/tests/test_models/test_base_model.py b/tests/test_models/test_base_model.py new file mode 100755 index 00000000000..e69de29bb2d