# COMP0233 - Day 7 (24th November 2022) :::info ## :tada: Welcome to the seventh day! 📦🐍💄 ### Today Today we will look at - How to choose libraries (and install them) - How to create command line interfaces for your scripts - How to create a package :package: ::: :::warning :warning::fist:🪧 There's **a UCU strike** today.🪧:fist::warning: Read [this information collected by UCL's UCU members for students about this strike](https://docs.google.com/document/d/13w0T5cv-WY4HsLNLpHg5-bph73GSwtxFDKMPdbaECUI/edit?usp=sharing) to know more about it. There won't be a class session today, but people in the teaching time may choose to work today. They may be available in zoom to answer questions. ::: ### Review from last week - :books: Documentation - :mag::hourglass_flowing_sand: finding problems in history - :mag::bug: finding bugs with a debugger #### What was discussed during the week :newspaper: - You've told us about [your favourite :package: managers](https://moodle.ucl.ac.uk/mod/forum/view.php?f=182693)! - Did you know what's also known as the [:cheese_wedge: shop](https://en.wikipedia.org/wiki/Cheese_Shop_sketch)? ([video](https://youtu.be/Hz1JWzyvv8A), [script](https://montycasinos.com/montypython/scripts/cheese.php.html)) #### Discussion forum - favorite package manager ### Groups :handshake: :::warning :question: :package: From two libraries that seems to do the same and both have all the features you need, how do you choose which one to use? ::: Discuss it within your teams and [select three characteristics to post **as a team** in the word cloud](https://www.menti.com/almuuvpn7twf). ### Exercise: Creating a command line interface :::info In your own teams, work together to generate a command line interface following the steps in RSE-classwork issues: [:hash::four::zero:](https://github.com/UCL-COMP0233-22-23/RSE-Classwork/issues/40):heavy_minus_sign:[:hash::four::two:](https://github.com/UCL-COMP0233-22-23/RSE-Classwork/issues/42) ```bash python average_squares.py 1 2 3 --weights 0.1 0.4 0.5 ``` ::: ### Exercise: Creating a package :::info In your teams, help Charlene to make her script into a library. Follow the instructions in RSE-classwork issues: [:hash::four::three:](https://github.com/UCL-COMP0233-22-23/RSE-Classwork/issues/43):heavy_minus_sign:[:hash::four::seven:](https://github.com/UCL-COMP0233-22-23/RSE-Classwork/issues/47) ::: ##### Links - [packaging notes](https://nbviewer.jupyter.org/github/UCL/rsd-engineeringcourse/blob/master/ch04packaging/03Packaging.ipynb) - [Sphinx and documentation](https://nbviewer.jupyter.org/github/UCL/rsd-engineeringcourse/blob/master/ch04packaging/04documentation.ipynb) - [Coding conventions](https://github.com/UCL/rsd-engineeringcourse/blob/master/ch05construction/02conventions.ipynb) ### Next week - Project management # Questions :::info Feel free to add any question below. Remember the syntax: ``` - Example question - [name=student_a] Example answer - [name=TA_1] Example answer ``` ::: - Q: - [name=...] - Q: - [name=...] ###### tags: `COMP0233` `teaching` `class`