"""simple docstring"""






def   a_						(					lowerCamelCase       ):
				UpperCAmelCase__             =							generate_pascal_triangle(lowerCamelCase       )
				for row_idx in range(lowerCamelCase       ):
								# Print left spaces
								for _ in range(num_rows - row_idx - 1       ):
												print(end=' '       )
								# Print row values
								for col_idx in range(row_idx + 1       ):
												if col_idx != row_idx:
																print(triangle[row_idx][col_idx]					,			end=' '       )
												else:
																print(triangle[row_idx][col_idx]					,			end=''       )
								print()



def   a_						(					lowerCamelCase       ):

				if not isinstance(lowerCamelCase					,			lowerCamelCase       ):
								raise TypeError('The input value of \'num_rows\' should be \'int\''       )

				if num_rows == 0:
								return []
				elif num_rows < 0:
								raise ValueError(
								    'The input value of \'num_rows\' should be greater than or equal to 0'       )

				UpperCAmelCase__             =							[]
				for current_row_idx in range(lowerCamelCase       ):
								UpperCAmelCase__             =							populate_current_row(lowerCamelCase					,			lowerCamelCase       )
								triangle.append(lowerCamelCase       )
				return triangle



def   a_						(					lowerCamelCase					,			lowerCamelCase       ):
				UpperCAmelCase__             =							[-1] * (current_row_idx + 1)
				# first and last elements of current row are equal to 1
				UpperCAmelCase__      ,	UpperCAmelCase__             =							1, 1
				for current_col_idx in range(1					,			lowerCamelCase       ):
								calculate_current_element(
								    lowerCamelCase					,			lowerCamelCase					,			lowerCamelCase					,			lowerCamelCase       )
				return current_row



def   a_						(					lowerCamelCase					,			lowerCamelCase					,			lowerCamelCase					,			lowerCamelCase					,			):
				UpperCAmelCase__             =							triangle[current_row_idx - 1][current_col_idx - 1]
				UpperCAmelCase__             =							triangle[current_row_idx - 1][current_col_idx]
				UpperCAmelCase__             =							above_to_left_elt + above_to_right_elt



def   a_						(					lowerCamelCase       ):

				if not isinstance(lowerCamelCase					,			lowerCamelCase       ):
								raise TypeError('The input value of \'num_rows\' should be \'int\''       )

				if num_rows == 0:
								return []
				elif num_rows < 0:
								raise ValueError(
								    'The input value of \'num_rows\' should be greater than or equal to 0'       )

				UpperCAmelCase__             =							[[1]]

				for row_index in range(1					,			lowerCamelCase       ):
								UpperCAmelCase__             =							[0] + result[-1] + [0]
								UpperCAmelCase__             =							row_index + 1
								# Calculate the number of distinct elements in a row
								UpperCAmelCase__             =							sum(divmod(lowerCamelCase					,			2       )       )
								UpperCAmelCase__             =							[
								    temp_row[i - 1] + temp_row[i] for i in range(1					,			distinct_elements + 1       )
								]
								UpperCAmelCase__             =							row_first_half[: (row_index + 1) // 2]
								row_second_half.reverse()
								UpperCAmelCase__             =							row_first_half + row_second_half
								result.append(lowerCamelCase       )

				return result



def   a_						(					):
				from collections.abc import Callable
				from timeit import timeit

				def benchmark_a_function(lowerCamelCase					,			lowerCamelCase       ) -> None:
								UpperCAmelCase__             =							f'''{func.__name__}({value})'''
								UpperCAmelCase__             =							timeit(f'''__main__.{call}'''					,			setup='import __main__'       )
								# print(f"{call:38} = {func(value)} -- {timing:.4f} seconds")
								print(f'''{call:38} -- {timing:.4f} seconds'''       )

				for value in range(1_5       ):  # (1, 7, 14):
								for func in (generate_pascal_triangle, generate_pascal_triangle_optimized):
												benchmark_a_function(lowerCamelCase					,			lowerCamelCase       )
								print()


if __name__ == "__main__":
						import doctest

						doctest.testmod()
						benchmark()




"""simple docstring"""






from PIL import Image



def   a_						(					lowerCamelCase					,			lowerCamelCase       ):
				UpperCAmelCase__             =							(2_5_9 * (level + 2_5_5)) / (2_5_5 * (2_5_9 - level))

				def contrast(lowerCamelCase       ) -> int:
								return int(1_2_8 + factor * (c - 1_2_8)       )

				return img.point(lowerCamelCase       )


if __name__ == "__main__":
						# Load image
						with Image.open('image_data/lena.jpg') as img:
												# Change contrast to 170
												lowerCAmelCase__  :  Any						     =	change_contrast(img, 170)
												cont_img.save('image_data/lena_high_contrast.png', format='png')



