






import numpy as np
from PIL import Image







def      snake_case		(							UpperCAmelCase	:       np.ndarray,						UpperCAmelCase	:       int,						UpperCAmelCase	:       int   ):
				A	 =      np.array(UpperCAmelCase   )
				if arr.shape[0] != arr.shape[1]:
								raise ValueError('The input array is not a square matrix'   )
				A	 =      0
				A	 =      0
				A	 =      0
				A	 =      0

				# compute the shape of the output matrix
				A	 =      (arr.shape[0] - size) // stride + 1
				# initialize the output matrix with zeros of shape maxpool_shape
				A	 =      np.zeros((maxpool_shape, maxpool_shape)   )

				while i < arr.shape[0]:
								if i + size > arr.shape[0]:
												# if the end of the matrix is reached, break
												break
								while j < arr.shape[1]:
												# if the end of the matrix is reached, break
												if j + size > arr.shape[1]:
																break
												# compute the maximum of the pooling matrix
												A	 =      np.max(arr[i : i + size, j : j + size]   )
												# shift the pooling matrix by stride of column pixels
												j += stride
												mat_j += 1

								# shift the pooling matrix by stride of row pixels
								i += stride
								mat_i += 1

								# reset the column index to 0
								A	 =      0
								A	 =      0

				return updated_arr







def      snake_case		(							UpperCAmelCase	:       np.ndarray,						UpperCAmelCase	:       int,						UpperCAmelCase	:       int   ):
				A	 =      np.array(UpperCAmelCase   )
				if arr.shape[0] != arr.shape[1]:
								raise ValueError('The input array is not a square matrix'   )
				A	 =      0
				A	 =      0
				A	 =      0
				A	 =      0

				# compute the shape of the output matrix
				A	 =      (arr.shape[0] - size) // stride + 1
				# initialize the output matrix with zeros of shape avgpool_shape
				A	 =      np.zeros((avgpool_shape, avgpool_shape)   )

				while i < arr.shape[0]:
								# if the end of the matrix is reached, break
								if i + size > arr.shape[0]:
												break
								while j < arr.shape[1]:
												# if the end of the matrix is reached, break
												if j + size > arr.shape[1]:
																break
												# compute the average of the pooling matrix
												A	 =      int(np.average(arr[i : i + size, j : j + size]   )   )
												# shift the pooling matrix by stride of column pixels
												j += stride
												mat_j += 1

								# shift the pooling matrix by stride of row pixels
								i += stride
								mat_i += 1
								# reset the column index to 0
								A	 =      0
								A	 =      0

				return updated_arr


# Main Function
if __name__ == "__main__":
					from doctest import testmod

					testmod(name='avgpooling', verbose=True)

					# Loading the image
					lowerCAmelCase_           = Image.open('path_to_image')

					# Converting the image to numpy array and maxpooling, displaying the result
					# Ensure that the image is a square matrix

					Image.fromarray(maxpooling(np.array(image), size=3, stride=2)).show()

					# Converting the image to numpy array and averagepooling, displaying the result
					# Ensure that the image is a square matrix

					Image.fromarray(avgpooling(np.array(image), size=3, stride=2)).show()













from __future__ import annotations

from collections.abc import Generator

import requests
from bsa import BeautifulSoup

lowerCAmelCase_           = 'https://www.indeed.co.in/jobs?q=mobile+app+development&l='







def      snake_case		(							UpperCAmelCase	:       str = "mumbai"   ):
				A	 =      BeautifulSoup(requests.get(url + location   ).content,						'html.parser'   )
				# This attribute finds out all the specifics listed in a job
				for job in soup.find_all('div',						attrs={'data-tn-component': 'organicJob'}   ):
								A	 =      job.find('a',						attrs={'data-tn-element': 'jobTitle'}   ).text.strip()
								A	 =      job.find('span',						{'class': 'company'}   ).text.strip()
								yield job_title, company_name


if __name__ == "__main__":
					for i, job in enumerate(fetch_jobs('Bangalore'), 1):
										print(f'''Job {i:>2} is {job[0]} at {job[1]}''')





