This project is the first part of the AirBnB clone (HBnB) project from foundations year for Holberton School students. The main objective of this project is to be an enrichment exerceise to improve and applicate the most concepts of higher-level programing done before and consists to do an specific command line interpreter to manage all of the functions and features of our HBnB.
To do this project we had to learn:
- How to create a Python package
- How to create a command interpreter in Python using the cmd module
- What is Unit testing and how to implement it in a large project
- How to serialize and deserialize a Class
- How to write and read a JSON file
- How to manage datetime
- What is an UUID
- What is *args and how to use it
- What is **kwargs and how to use it
- How to handle named arguments in a function
- How to do a unittest
This command line interpreter can:
- Manage objects: create, update, destroy, etc...
- Retrieve an object from a file, a database etc...
- Do some operations on objects (count, compute stats, etc...)
- Update attributes of an object
At first, you have to clone this repository in your machine using this command:
$ git clone https://github.com/santiagopemo/AirBnB_clone.git
Then, go inside it:
$ cd AirBnB_clone
Finally, you can use the console this way:
$ ./console.py
Interactive mode
$ ./console.py
(hbnb) help
Documented commands (type help <topic>):
========================================
EOF all count create destroy help quit show update
(hbnb)
(hbnb) quit
$
Non interactive mode
$ echo "help" | ./console.py
(hbnb)
Documented commands (type help <topic>):
========================================
EOF all count create destroy help quit show update
(hbnb)
$
Command | Syntax | Output |
---|---|---|
EOF | EOF | Exit interpreter |
all | all [class_name] | Displays every instance |
of class name | ||
count | count [class_name] | Counts the instances of |
specified class | ||
create | create [class_name] | create a new instance with |
specified name | ||
destroy | destroy [class_name] [object_id] | Deletes all attributes of |
class_name.object_id | ||
help | help [option] | Shows the help for |
specified option | ||
quit | quit | Exit interpreter |
show | show [class_name] [object_id] | Displays all attributes |
update | update [class_name] [object_id] | Modifies specified |
[update_key] [update_value] | attribute |
No known bugs