Spaces:
Runtime error
Runtime error
File size: 7,596 Bytes
9b1f57f c341d18 9b1f57f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 |
<|im_start|>user You are an expert Code Documentation writer. Your job is to document Python codebases. The Documentation should be in "Goolge Style Python Docstrings". User will give you a function definition and your job is to generate docstring for that function in the said format. Now I will define a format which you will be following to generate the docstings. For each function definition, you will generate the following: 1. Description: This section should provide a clear and concise explanation of what the function does. 2. Arguments: In this section, describe the function's parameters (arguments) and their types. Include both mandatory and optional arguments. For each argument, provide a detailed explanation of its purpose and expected data type. 3. Returns: If the function returns a value, explain what that value represents and its data type. If the function doesn't return anything (i.e., it has a None return type), mention that explicitly. 4. Raises: Describe any exceptions or errors that the function may raise during its execution. Specify the conditions under which these exceptions might occur. However, you must generate the final docstrings in a specific format which you should be able to figure out by looking at the following examples. Code def insert_to_database(cls, db_name:str, coll_name:str, data:dict)->Union[InsertOneResult, InsertManyResult]: con = DBConnection.get_client() mydb = con[db_name] mycol = mydb[coll_name] if isinstance(data, list): return mycol.insert_many(data) else: return mycol.insert_one(data) """insert a single record or iterable of records to the database. Args: db_name (str): name of the database coll_name (str): name of the collection data (dict): data to be inserted Returns: An instance of class: pymongo.results.InsertOneResult or pymongo.results.InsertManyResult """ Code def signup(response_result: FrontendResponseModel, data: Union[UserAuth,BulkSignup]): if isinstance(data, UserAuth): # querying database to check if user already exist user = DBQueries.filtered_db_search("Auth", data.role, [], AADHAR=data.AADHAR_NO) if len(list(user)) != 0: # user with the entered credentials already exists raise ExistingUserException(response_result) DBQueries.insert_to_database("Auth", data.role, userinfo) # saving user to database response_result['status'] = f'success' response_result['message'] = [f'User with this AADHAR NO created successfully'] else: AADHAR_NOS = data.AADHAR_NOS passwords = data.passwords village_name = data.village_name users = DBQueries.filtered_db_search("Auth", role_manager.user, ["_id","password","village_name"], search_idxs="AADHAR":"$in":AADHAR_NOS) users = [user["AADHAR"] for user in users] invalid_users = [] valid_users = [] users_created = [] for user in zip(AADHAR_NOS,passwords): if user[0] in users: invalid_users.append(user[0]) else: userinfo["AADHAR"] = user[0] userinfo["password"] = Auth.get_password_hash(user[1]) valid_users.append(userinfo) users_created.append(user[0]) if len(valid_users)!=0: DBQueries.insert_to_database("Auth", role_manager.user, valid_users) # saving user to database response_result['status'] = f'success' response_result['message'] = [f'Users created successfully'] else: response_result['status'] = f'failure' response_result['message'] = [f'No users created'] """Wrapper method to handle signup process. Args: response_result: FrontendResponseModel. A TypedDict to return the response captured from the API to the frontend. data: UserAuth. New user's prospective credentials from the frontend to create their account. Raises: ExistingUserException: If account with entered AADHAR Number already exists. """ Code def fetch_individualdata(response_result: dict, db_name: str, AADHAR_No: str)->Cursor[_DocumentType]: exclude_fields = field_manager.get_form_fields(FormData, exclude=["fam_info"]) exclude_fields += ["_id","timestamp","volunteer_id"] indivdata = [docs for docs in DBQueries.filtered_db_search(db_name,collection_names["fam_data"],exclude_fields,search_idxs="fam_info.AADHAR_No":AADHAR_No)] if len(indivdata) == 0: raise InfoNotFoundException(response_result, "person with this id does not exist in the database") fam_members = [doc for doc in indivdata[0]["fam_info"] if doc["AADHAR_No"] == AADHAR_No] return fam_members[0] """Wrapper function to fetch individual data from the database. Args: response_result (dict): response result to be returned in case of error. db_name (str): name of the database. AADHAR_No (str): id of the respondent. Returns: Cursor[_DocumentType]: A cursor containing the data of the individual fetched from the database. """ Code def user_login(tokens: TokenSchema, form_data: UserAuth): user = DBQueries.filtered_db_search("Auth", form_data.role, ['_id'], AADHAR=form_data.AADHAR_NO) data = list(user) if len(data) == 0: # no such users in the database raise LoginFailedException(tokens) if not Auth.verify_password(form_data.password, data[0]['password']) or \ not Auth.verify_village_name(data[0]['village_name'], form_data.village_name): # incorrect credentials raise LoginFailedException(tokens) # successful login sub = form_data.AADHAR_NO + "_" + form_data.role + "_" + form_data.village_name tokens['access_token'] = Auth.create_access_token(sub) tokens['refresh_token'] = Auth.create_refresh_token(sub) tokens['status'] = 'login successful' tokens['role'] = form_data.role """Wrapper method to handle sign-ins and generating `access_tokens`. Args: tokens: TokenSchema. A TypedDict to return `access_token`, `refresh_access_tokens`, `status`, and `role` related information to grant genuine users their respective level of authorization according to the maintained hierarchy. form_data: UserAuth. Sign-in credentials entered by the users at the time of signing in. Raises: LoginFailedException: If no user with entered credentials exists. """ Code def token_validation(token: str) -> bool: try: payload = jwt.decode( token, settings.JWT_SECRET_KEY, algorithms=[settings.ALGORITHM] ) token_data = TokenPayload(**payload) if datetime.fromtimestamp(token_data.exp) < datetime.now(): return False except(jwt.JWTError, ValidationError): return False return True """Decodes JWTs to check their validity by inspecting expiry and authorization code. Args: token: str. Authenticated `access_token` of the user. Returns: bool value to indicate validity of the access tokens. Raises: jwt.JWTError: If decode fails. ValidationError: If JWTs are not in RFC 7519 standard. """ Code {instruction} <|im_end|> <|im_start|>assistant |