

from itertools import zip_longest

import requests
from bsa import BeautifulSoup
from pandas import DataFrame






def        UpperCamelCase_(							_snake_case   :  str = "laptop"	):




			"""simple docstring"""






			__a        =F'https://www.amazon.in/laptop/s?k={product}'
			__a        ={
			    'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36\n        (KHTML, like Gecko)Chrome/44.0.2403.157 Safari/537.36',
			    'Accept-Language': 'en-US, en;q=0.5',
			}
			__a        =BeautifulSoup(requests.get(_snake_case       ,     headers=_snake_case	).text	)
			# Initialize a Pandas dataframe with the column titles
			__a        =DataFrame(
			    columns=[
			        'Product Title',
			        'Product Link',
			        'Current Price of the product',
			        'Product Rating',
			        'MRP of the product',
			        'Discount',
			    ]	)
			# Loop through each entry and store them in the dataframe
			for item, _ in zip_longest(
			    soup.find_all(
			        'div'       ,     attrs={'class': 's-result-item', 'data-component-type': 's-search-result'}       ,     )       ,     soup.find_all('div'       ,     attrs={'class': 'a-row a-size-base a-color-base'}	)       ,     ):
						try:
									__a        =item.ha.text
									__a        ='https://www.amazon.in/' + item.ha.a['href']
									__a        =item.find('span'       ,     attrs={'class': 'a-offscreen'}	).text
									try:
												__a        =item.find('span'       ,     attrs={'class': 'a-icon-alt'}	).text
									except AttributeError:
												__a        ='Not available'
									try:
												__a        =(
												    '₹'
												    + item.find(
												        'span'       ,     attrs={'class': 'a-price a-text-price'}	).text.split('₹'	)[1]
												)
									except AttributeError:
												__a        =''
									try:
												__a        =float(
												    (
												        (
												            float(product_mrp.strip('₹'	).replace(','       ,     ''	)	)
												            - float(product_price.strip('₹'	).replace(','       ,     ''	)	)
												        )
												        / float(product_mrp.strip('₹'	).replace(','       ,     ''	)	)
												    )
												    * 100	)
									except ValueError:
												__a        =float('nan'	)
						except AttributeError:
									pass
						__a        =[
						    product_title,
						    product_link,
						    product_price,
						    product_rating,
						    product_mrp,
						    discount,
						]
			__a        =' '
			__a        =' '
			data_frame.index += 1
			return data_frame


if __name__ == "__main__":
						_lowerCAmelCase					:			Dict  				=			"headphones"
						get_amazon_product_data(product).to_csv(f'''Amazon Product Data for {product}.csv''')









import argparse

import torch

from transformers import OpenAIGPTConfig, OpenAIGPTModel, load_tf_weights_in_openai_gpt
from transformers.utils import CONFIG_NAME, WEIGHTS_NAME, logging


logging.set_verbosity_info()






def        UpperCamelCase_(							_snake_case   :  Dict       ,     _snake_case   :  Optional[int]       ,     _snake_case   :  str	):




			"""simple docstring"""






			if openai_config_file == "":
						__a        =OpenAIGPTConfig()
			else:
						__a        =OpenAIGPTConfig.from_json_file(_snake_case	)
			__a        =OpenAIGPTModel(_snake_case	)

			# Load weights from numpy
			load_tf_weights_in_openai_gpt(_snake_case       ,     _snake_case       ,     _snake_case	)

			# Save pytorch-model
			__a        =pytorch_dump_folder_path + '/' + WEIGHTS_NAME
			__a        =pytorch_dump_folder_path + '/' + CONFIG_NAME
			print(F'Save PyTorch model to {pytorch_weights_dump_path}'	)
			torch.save(model.state_dict()       ,     _snake_case	)
			print(F'Save configuration file to {pytorch_config_dump_path}'	)
			with open(_snake_case       ,     'w'       ,     encoding='utf-8'	) as f:
						f.write(config.to_json_string()	)


if __name__ == "__main__":
						_lowerCAmelCase					:			Tuple  				=			argparse.ArgumentParser()
						# Required parameters
						parser.add_argument(
						    "--openai_checkpoint_folder_path",
						    default=None,
						    type=str,
						    required=True,
						    help="Path to the TensorFlow checkpoint path.",
						)
						parser.add_argument(
						    "--pytorch_dump_folder_path", default=None, type=str, required=True, help="Path to the output PyTorch model."
						)
						parser.add_argument(
						    "--openai_config_file",
						    default="",
						    type=str,
						    help=(
						        "An optional config json file corresponding to the pre-trained OpenAI model. \n"
						        "This specifies the model architecture."
						    ),
						)
						_lowerCAmelCase					:			int  				=			parser.parse_args()
						convert_openai_checkpoint_to_pytorch(
						    args.openai_checkpoint_folder_path, args.openai_config_file, args.pytorch_dump_folder_path
						)






