What you'll learn
Implement DevOps culture and practices in the AWS Cloud
Adopt and enforce Continuous Integration and Continuous
Delivery best practices on AWS
Explore deployment strategies for serverless applications
Python Coding January 16, 2024 aws, Coursera No comments
Implement DevOps culture and practices in the AWS Cloud
Adopt and enforce Continuous Integration and Continuous
Delivery best practices on AWS
Explore deployment strategies for serverless applications
Python Coding January 15, 2024 Books, Python No comments
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
What is a software architecture? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Why is it called “clean”? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Why “architectures”? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Why Python? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
About the book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Prerequisites and structure of the book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Typographic conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Why this book comes for free . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Submitting issues or patches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
About the author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Changes in the second edition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Chapter 01 A day in the life of a clean system . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
The data flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Advantages of a layered architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Chapter 02 Components of a clean architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Chapter 03 A basic example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Chapter 04 Add a web application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Flask setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Test and create an HTTP endpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
WSGI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Chapter 05 Error management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Request and responses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Basic structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Requests and responses in a use case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Request validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Responses and failures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Error management in a use case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Integrating external systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Chapter 06 Integration with a real external system postgres . . . . . . . . . . . . . . . . . . . 89
Decoupling with interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
A repository based on PostgreSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Label integration tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Create SQLAlchemy classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Orchestration management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Database fixtures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Integration tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Chapter 07 Integration with a real external system mongodb . . . . . . . . . . . . . . . . . . 114
Fixtures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Docker Compose configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Application configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Integration tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
The MongoDB repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Chapter 08 Run a production ready system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Build a web stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Connect to a production-ready database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Changelog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Colophon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Python Coding January 15, 2024 Coursera, Python No comments
Properly identify various data types and understand the different uses for each
Create data visualizations and numerical summaries with Python
Communicate statistical ideas clearly and concisely to a broad audience
Identify appropriate analytic techniques for probability and non-probability samples
Python Coding January 15, 2024 Coursera, SQL No comments
Learn about the basic syntax of the SQL language, as well as database design with multiple tables, foreign keys, and the JOIN operation.
Learn to model many-to-many relationships like those needed to represent users, roles, and courses.
Python Coding January 15, 2024 Coursera, Data Science No comments
Learn in-demand skills from university and industry experts
Master a subject or tool with hands-on projects
Develop a deep understanding of key concepts
Earn a career certificate from University of Michigan
Python Coding January 15, 2024 Coursera, Python No comments
Create and interpret data visualizations using the Python programming language and associated packages & libraries
Apply and interpret inferential procedures when analyzing real data
Apply statistical modeling techniques to data (ie. linear and logistic regression, linear models, multilevel models, Bayesian inference techniques)
Understand importance of connecting research questions to data analysis methods.
Python Coding January 15, 2024 Coursera, UX Research No comments
Understand the basics of UX design and UX research
Use appropriate UX research approaches to inform design decisions
Design a complete product, taking it from an initial concept to an interactive prototype
Python Coding January 14, 2024 Python No comments
import turtle
Python Coding January 14, 2024 Python Coding Challenge No comments
a. A global function can call a class method as well as an instance method.
Answer
True
b. In Python a function, class, method and module are treated as objects.
Answer
True
c. Given an object, it is possible to determine its type and address.
Answer
True
d. It is possible to delete attributes of an object during execution of the
program.
Answer
True
e. Arithmetic operators, Comparison operators and Compound assignment
operators can be overloaded in Python.
Answer
True
f. The + operator has been overloaded in the classes str, list and int.
Answer
False
Python Coding January 13, 2024 Python No comments
import random
Python Coding January 13, 2024 Python No comments
Python Coding January 13, 2024 Books No comments
Python Coding January 13, 2024 Python Coding Challenge No comments
Python Coding January 13, 2024 Python No comments
Level 1: Basic Function
Level 2: Function with Parameters
Level 3: Return Values
Level 4: Default Parameters
Level 5: Docstrings
Level 6: Variable Scope
Level 7: Recursion
Level 8: Lambda Functions
Level 9: Function Decorators
Level 10: Advanced Functions
Python Coding January 12, 2024 Python Coding Challenge No comments
1. Which value is used to represent the first index of
list?
(a) 1 (b) 0
(c) −1 (d) a
Ans. (b) To access the list’s elements, index number is used. The
index number should be an integer. Index of 0 refers to first
element, 1 refers to second element and so on.
2. Choose the output of following Python code.
1= list ()
print ( 1)
(a) [] (b) ()
(c) [,] (d) Empty
Ans. (a) Empty list can be created in Python using []. To create
empty list, list () is also used.
3. Suppose list
1= [10, 20, 30, 40, 50, 60, 70]
print( 1[−3])
(a) 30 (b) 50
(c) 40 (d) Error
Ans. (b) The index of −1 refers to the last element, −2 refers to the
second last element and so on. Hence, −3 refers to third last
element, i.e. 50.
4. Choose the output from following code.
list1 = [‘A’, ‘R’, ‘I’,‘H’,‘A’,‘N’,‘T’]
print (list1 [7])
(a) T (b) N
(c) A (d) Error
Ans. (d) In the given code, we are trying to access 8th element
from the list which does not exist as we are having total 7
elements for which the last index is 6. So, Python will give
an IndexError.
5. Which function is used to insert an element at
specified position in the list?
(a) extend () (b) append ()
(c) insert () (d) add ()
Ans. (c) insert () function is used to insert an element at specified
position in the list. This method takes two arguments : one
for index number and second for element value.
Syntax list_name.insert(index, element)
6. Choose the correct option for the following.
l1 = [2, 5, 7]
l = l1+ 5
print (l)
(a) [7, 10, 12]
(b) [2, 5, 7, 5]
(c) [5, 2, 5, 7]
(d) TypeError
Ans. (d) + operator cannot add list with other type as number or
string because this operator is used only with list types.
So, it will give TypeError as it can only concatenate list (not
“int”) to list.
7. What is the output of following code?
l1 = [3, 2, 6]
l = l1 * 2
print (l)
(a) [3, 2, 6, 3, 2, 6]
(b) [6, 4, 12]
(c) [3, 4, 12]
(d) TypeError
Ans. (a) * operator can repeat the elements of the list.
Syntax list = list1 * digit
8. Which of the following is true regarding lists in
Python?
(a) Lists are immutable.
(b) Size of the lists must be specified before its initialisation.
(c) Elements of lists are stored in contiguous memory
location.
(d) size(list1) command is used to find the size of lists.
Ans. (c) Elements of lists are stored in contiguous memory
location, so it is true regarding lists in Python.
9. Suppose list1 is [56, 89, 75, 65, 99], what is the
output of list1 [− 2]?
(a) Error (b) 75
(c) 99 (d) 65
Ans. (d) −1 corresponds to the last index in the list, −2 represents
the second last element and so on.
So, the output for list1 [− 2] is 65 because 65 is second last
element of list1.
10. Identify the output of following code.
List1=[1, 2, 3, 7, 9]
L=List1.pop(9)
print(L)
(a) Syntax error (b) 9
(c) [1, 2, 3, 7] (d) None of these
Ans. (a) In pop(9), parentheses put index number instead of
element. In the given list, maximum index number is 4, then
9 is out of index range.
11. Suppose list1 is [2445,133,12454,123], what is the
output of max(list1)?
(a) 2445 (b) 133
(c) 12454 (d)123
Ans. (c) max() returns the maximum element in the list. From
given options, 12454 is the element with maximum value.
12. To add a new element to a list, which command will
we use?
(a) list1.add(8)
(b) list1.append(8)
(c) list1.addLast(8)
(d) list1.addEnd(8)
Ans. (b) We use the function append() to add an element to the list.
13. What will be the output of the following Python
code?
list1=[9, 5, 3, 5, 4]
list1[1:2]=[7,8]
print(list1)
(a) [9,5, 3, 7, 8] (b) [9, 7, 8, 3, 5, 4]
(c) [9,[ 7, 8], 3, 5,4] (d) Error
Ans. (b) In the piece of code, slice assignment has been
implemented. The sliced list is replaced by the assigned
elements in the list.
14. Consider the declaration a=[2, 3, ‘Hello’, 23.0].
Which of the following represents the data type of
‘a’?
(a) String (b) Tuple
(c) Dictionary (d) List
Ans. (d) List contains a sequence of heterogeneous elements
which store integer, string as well as object. It can created to
put elements separated by comma (,) in square brackets [].
15. Identify the output of the following Python
statement.
x=[[1, 2, 3, 4], [5, 6, 7, 8]]
y=x [0] [2]
print(y)
(a) 3 (b) 4
(c) 6 (d) 7
Ans. (a) x is a list, which has two sub-lists in it. Elements of first
list will be represented by [0] [i] and elements of second list
will be represented by [1] [i].
16. Which method will empty the entire list?
(a) pop() (b) clear()
(c) sort() (d) remove()
Ans. (b) clear() method is used to remove all the items of a list.
This method will empty the entire list.
Syntax
list_name.clear()
17. Which of the following allows us to sort the list
elements in descending order?
(a) reverse = True
(b) reverse = False
(c) sort (descending)
(d) sort. descending
Ans. (a) sort() is used to sort the given list in ascending order. The
sort() has an argument called reverse = True. This allows us
to sort the list elements in descending order.
18. Identify the correct output.
>>>l1 = [34, 65, 23, 98]
>>>l1. insert(2, 55)
>>>l1
(a) [34, 65, 23, 55] (b) [34, 55, 65, 23, 98]
(c) [34, 65, 55, 98] (d) [34, 65, 55, 23, 98]
Ans. (d) insert() is used to insert an element at specified position
in the list. This method takes two arguments : one for index
number and second for element value.
Syntax
list_name.insert(index, element)
19. Find the output from the following code.
list1=[2, 5, 4, 7, 7, 7, 8, 90]
del list1[2 : 4]
print(list1)
(a) [2, 5, 7, 7, 8, 90] (b) [5, 7, 7, 7, 8, 90]
(c) [2, 5, 4, 8, 90] (d) Error
Ans. (a) del keyword is used to delete the elements from the list.
20. Slice operation is performed on lists with the use of
(a) semicolon (b) comma
(c) colon (d) hash
Ans. (c) In Python list, there are multiple ways to print the whole
list with all the elements, but to print a specific range of
elements from the list, we use slice operation. Slice
operation is performed on lists with the use of colon (:).
Python Coding January 12, 2024 Python No comments
Python Coding January 12, 2024 Python Coding Challenge No comments
What is the output of following Python code?
a =[[0, 1, 2], [3, 4, 5, 6]]
b =a[1] [2]
print (b)
Let's break down your code step by step:
a = [[0, 1, 2], [3, 4, 5, 6]]
Here, you have defined a list a that contains two sub-lists. The first sub-list is [0, 1, 2], and the second sub-list is [3, 4, 5, 6]. So, a is a list of lists.
b = a[1][2]
This line of code is accessing elements in the nested list. Let's break it down:
a[1] accesses the second sub-list in a. In Python, indexing starts from 0, so a[1] refers to [3, 4, 5, 6].
[2] then accesses the third element in this sub-list. Again, indexing starts from 0, so a[1][2] refers to the element at index 2 in the sub-list [3, 4, 5, 6].
As a result, b is assigned the value 5, which is the third element in the second sub-list.
print(b)
Finally, the print(b) statement outputs the value of b, which is 5, to the console.
So, when you run this code, the output will be:
5
This is because b contains the value at index [1][2] in the nested list a, which is 5.
Python Coding January 12, 2024 Python Coding Challenge No comments
def fun(num):
if num > 10:
return num - 10
return fun(fun(num + 11))
print(fun(5))
Python Coding January 11, 2024 Python Coding Challenge No comments
return (a, b, c)
return a + b + c
return a, b, c
All three of the provided return statements are valid in Python, but they have different implications:
return (a, b, c): This returns a single tuple containing the values of a, b, and c. For example, if a = 1, b = 2, and c = 3, the function would return the tuple (1, 2, 3).
return a + b + c: This returns the sum of a, b, and c. If a = 1, b = 2, and c = 3, the function would return the value 6.
return a, b, c: This returns a tuple containing the values of a, b, and c. This is a more concise way of expressing the first option. For the same example values, it would return the tuple (1, 2, 3).
Choose the one that fits your specific use case and the desired return value format in your function.
Python Coding January 11, 2024 Python Coding Challenge No comments
The code you provided is attempting to generate a Fibonacci sequence and append the values to the list lst. However, it seems like there's a small mistake in your code. The range in the list comprehension should go up to 4, not 5, to generate the Fibonacci sequence up to the 4th element. Here's the corrected code:
lst = [0, 1]
[lst.append(lst[k - 1] + lst[k - 2]) for k in range(2, 5)]
print(lst)
After running this code, lst will be:
[0, 1, 1, 2, 3]
This list represents the Fibonacci sequence up to the 4th element. The initial list [0, 1] is extended by three more elements generated by adding the last two elements of the list to get the next one.
Python Coding January 11, 2024 Python Coding Challenge No comments
You can use list comprehension to generate a list of integer coordinates for all points in the first quadrant from (1, 1) to (5, 5). Here's an example in Python:
print(coordinates)
This code will produce a list of tuples where each tuple represents a coordinate in the first quadrant, ranging from (1, 1) to (5, 5). The range(1, 6) is used to include values from 1 to 5 (inclusive) for both x and y.
After running this code, coordinates will contain the following list:
[(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (4, 1), (4, 2), (4, 3), (4, 4), (4, 5), (5, 1), (5, 2), (5, 3), (5, 4), (5, 5)]
Python Coding January 10, 2024 Python Coding Challenge No comments
x = 15
y = 10
result = x if x < y else y
print(result)
Python Coding January 09, 2024 Books No comments
Delve into the realm of generative AI and large language models (LLMs) while exploring modern deep learning techniques, including LSTMs, GRUs, RNNs with new chapters included in this 50% new edition overhaul
Purchase of the print or Kindle book includes a free eBook in PDF format.
The ability to use algorithms to solve real-world problems is a must-have skill for any developer or programmer. This book will help you not only to develop the skills to select and use an algorithm to tackle problems in the real world but also to understand how it works.
You'll start with an introduction to algorithms and discover various algorithm design techniques, before exploring how to implement different types of algorithms, with the help of practical examples. As you advance, you'll learn about linear programming, page ranking, and graphs, and will then work with machine learning algorithms to understand the math and logic behind them.
Case studies will show you how to apply these algorithms optimally before you focus on deep learning algorithms and learn about different types of deep learning models along with their practical use.
You will also learn about modern sequential models and their variants, algorithms, methodologies, and architectures that are used to implement Large Language Models (LLMs) such as ChatGPT.
Finally, you'll become well versed in techniques that enable parallel processing, giving you the ability to use these algorithms for compute-intensive tasks.
By the end of this programming book, you'll have become adept at solving real-world computational problems by using a wide range of algorithms.
This computer science book is for programmers or developers who want to understand the use of algorithms for problem-solving and writing efficient code.
Whether you are a beginner looking to learn the most used algorithms concisely or an experienced programmer looking to explore cutting-edge algorithms in data science, machine learning, and cryptography, you'll find this book useful.
Python programming experience is a must, knowledge of data science will be helpful but not necessary.
Python Coding January 09, 2024 Python Coding Challenge No comments
a. A function can belong to a module and the module can belong to a
package.
Answer
True
b. A package can contain one or more modules in it.
Answer
True
c. Nested packages are allowed.
Answer
True
d. Contents of sys.path variable cannot be modified.
Answer
False
e. In the statement import a.b.c, c cannot be a function.
Answer
True
f. It is a good idea to use * to import all the functions/classes defined in a
module.
Answer
True
Python Coding January 09, 2024 Coursera, SQL No comments
How to use the PostgreSQL database effectively
Explore database design principles
Dive into database architecture and deployment strategies
Compare and contrast SQL and NoSQL database design approaches and acquire skills applicable to data mining and application development
Python Coding January 09, 2024 Coursera, Data Strucures, Python No comments
Explain the principles of data structures & how they are used
Create programs that are able to read and write data from files
Store data as key/value pairs using Python dictionaries
Accomplish multi-step tasks like sorting or looping using tuples
Free Books Python Programming for Beginnershttps://t.co/uzyTwE2B9O
— Python Coding (@clcoding) September 11, 2023
Top 10 Python Data Science book
— Python Coding (@clcoding) July 9, 2023
🧵:
Top 4 free Mathematics course for Data Science ! pic.twitter.com/s5qYPLm2lY
— Python Coding (@clcoding) April 26, 2024
Web Development using Python
— Python Coding (@clcoding) December 2, 2023
🧵: