Skip to content

docs: enhance contributing section with detailed guidelines#2676

Merged
hackdartstorm merged 2 commits intomainfrom
pr-2672
Feb 20, 2026
Merged

docs: enhance contributing section with detailed guidelines#2676
hackdartstorm merged 2 commits intomainfrom
pr-2672

Conversation

@hackdartstorm
Copy link
Owner

Updated the contributing section in README.md with:

  • Contribution types table with skill levels
  • Enhanced quick start guide with testing steps
  • Code style guidelines (naming conventions, PEP 8)
  • Commit message format with examples
  • Code quality tools (Black, Ruff, Bandit)
  • Better organized help resources

This makes the contributing process clearer for all skill levels.

hackdartstorm and others added 2 commits February 19, 2026 21:08
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
@github-actions
Copy link

Code Quality Report

Black Formatting

❌ Some files need formatting

Ruff Linting

❌ Linting issues found:
F403 from art import * used; unable to detect undefined names
--> basics/01_introduction/03_ASCII_art_banner.py:1:1
|
1 | from art import *
| ^^^^^^^^^^^^^^^^^
2 |
3 | # Generate ASCII art for the text "PYTHON"
|

F405 text2art may be undefined, or defined from star imports
--> basics/01_introduction/03_ASCII_art_banner.py:5:16
|
3 | # Generate ASCII art for the text "PYTHON"
4 | # text2art() converts the string into a stylized ASCII banner
5 | ascii_banner = text2art("PYTHON")
| ^^^^^^^^
6 |
7 | # Print the generated ASCII art to the console
|

F401 [*] typing.List imported but unused
--> basics/02_variables_types/10_union_types.py:3:20
|
1 | #Maybe the Program not work but you just see the types like how union used in the program by import typing
2 |
3 | from typing import List, Union, Tuple
| ^^^^
4 | def sum(a:Union[int,str],b:int) -> int:
5 | sum = a+b
|
help: Remove unused import

F401 [*] typing.Tuple imported but unused
--> basics/02_variables_types/10_union_types.py:3:33
|
1 | #Maybe the Program not work but you just see the types like how union used in the program by import typing
2 |
3 | from typing import List, Union, Tuple
| ^^^^^
4 | def sum(a:Union[int,str],b:int) -> int:
5 | sum = a+b
|
help: Remove unused import

E741 Ambiguous variable name: l
--> basics/02_variables_types/12_celsius_fahrenheit.py:6:1
|
4 | f = (c * 9/5) + 32
5 | return f"{f}° Farenheit"
6 | l = []
| ^
7 | count = 0
8 | while True:
|

F541 [] f-string without any placeholders
--> basics/03_control_flow/09_pattern_hollow_square.py:11:15
|
9 | for row in range(1, size + 1):
10 | if(row == 1 or row == size):
11 | print(f"
" * size, end="")
| ^^^^
12 | else:
13 | print(f"*", end="")
|
help: Remove extraneous f prefix

F541 [] f-string without any placeholders
--> basics/03_control_flow/09_pattern_hollow_square.py:13:15
|
11 | print(f"
" * size, end="")
12 | else:
13 | print(f"", end="")
| ^^^^
14 | print(f" " * (size - 2), end="")
15 | print(f"
", end="")
|
help: Remove extraneous f prefix

F541 [] f-string without any placeholders
--> basics/03_control_flow/09_pattern_hollow_square.py:14:15
|
12 | else:
13 | print(f"
", end="")
14 | print(f" " * (size - 2), end="")
| ^^^^
15 | print(f"*", end="")
16 | print("")
|
help: Remove extraneous f prefix

F541 [] f-string without any placeholders
--> basics/03_control_flow/09_pattern_hollow_square.py:15:15
|
13 | print(f"
", end="")
14 | print(f" " * (size - 2), end="")
15 | print(f"*", end="")
| ^^^^
16 | print("")
|
help: Remove extraneous f prefix

F541 [*] f-string without any placeholders
--> basics/03_control_flow/10_if_else_challenges.py:29:21
|
29 | marks_input = input(f"Enter Your Mathematics Marks \nSocial Studies Marks And\nScience Marks : ")
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
30 | maths_marks = marks_input.split(" ").pop(0)
31 | social_science_marks = marks_input.split(" ").pop(1)
|
help: Remove extraneous f prefix

F541 [*] f-string without any placeholders
--> basics/03_control_flow/10_if_else_challenges.py:33:7
|
31 | social_science_marks = marks_input.split(" ").pop(1)
32 | science_marks = marks_input.split(" ").pop(2)
33 | print(f"Your Report")
| ^^^^^^^^^^^^^^
34 | total_marks = int(maths_marks) + int(social_science_marks) + int(science_marks)
35 | if(total_marks > 120):
|
help: Remove extraneous f prefix

F541 [] f-string without any placeholders
--> basics/04_functions/04_print_pattern.py:22:15
|
20 | def pattern_iterative(total_rows):
21 | for row in range(1, total_rows + 1):
22 | print(f"
" * ((total_rows + 1) - row))
| ^^^^
23 |
24 | total_rows = int(input("Enter the 'n' : "))
|
help: Remove extraneous f prefix

F541 [*] f-string without any placeholders
--> basics/06_strings/09_join_challenge.py:7:19
|
6 | multiplication_table = [str(7 * multiplier) for multiplier in range(1, 11)]
7 | vertical_string = f"\n".join(multiplication_table)
| ^^^^^
8 | print(vertical_string)
|
help: Remove extraneous f prefix

F541 [*] f-string without any placeholders
--> basics/08_oop/03_class_constructor.py:10:15
|
8 | self.health = health
9 | self.attack = attack
10 | print(f"\n\tLoading ...")
| ^^^^^^^^^^^^^^^^^^
11 | print(f"Strength is : {strength}\nHealth is : {health}\nAttack is : {attack}")
|
help: Remove extraneous f prefix

F541 [*] f-string without any placeholders
--> basics/08_oop/06_class_booking.py:21:19
|
19 | self.booked = True
20 | self.seats -= 1
21 | print(f"\nTicket Booked Successfully!")
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
22 | print(f"Train No : {self.train_number}")
23 | print(f"From {self.departure} to {self.destination}")
|
help: Remove extraneous f prefix

F541 [*] f-string without any placeholders
--> basics/08_oop/11_inheritance_vector.py:14:19
|
12 | return self._value
13 | else:
14 | print(f"------> None Value! "Your Value Must be greater than 0"")
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
help: Remove extraneous f prefix

F541 [*] f-string without any placeholders
--> basics/08_oop/11_inheritance_vector.py:21:19
|
19 | def value(self, new_value):
20 | if new_value <= 0:
21 | print(f"------> Value Must be greater than 0 ")
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
22 | else:
23 | self._value = new_value
|
help: Remove extraneous f prefix

F541 [*] f-string without any placeholders
--> basics/08_oop/12_inheritance_super.py:6:15
|
4 | def init(self):
5 | super().init() #Call My Father (: (super().init() is used in a child class to call the constructor of its parent class …
6 | print(f"LivingThings Constructor Called ! ")
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
7 |
8 | @classmethod #--->The @classmethod decorator is used to work with class variables (class values) using the class (cls) instead of i…
|
help: Remove extraneous f prefix

E731 Do not assign a lambda expression, use a def
--> basics/10_advanced/01_lambda.py:16:1
|
15 | # After
16 | sum_function = lambda first_num, second_num: first_num + second_num
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
17 | print(sum_function(1, 10))
|
help: Rewrite sum_function as a def

E731 Do not assign a lambda expression, use a def
--> basics/10_advanced/01_lambda.py:19:1
|
17 | print(sum_function(1, 10))
18 |
19 | square_function = lambda number: number * number
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
20 | print(square_function(9))
|
help: Rewrite square_function as a def

E731 Do not assign a lambda expression, use a def
--> basics/10_advanced/02_map_filter_reduce.py:10:1
|
9 | # Example of Map
10 | square_function = lambda number: number * number
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11 | squared_result = map(square_function, numbers_list)
12 | print(list(squared_result))
|
help: Rewrite square_function as a def

E731 Do not assign a lambda expression, use a def
--> basics/10_advanced/02_map_filter_reduce.py:24:1
|
23 | # Example of Reduce
24 | multiply_function = lambda num1, num2: num1 * num2
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
25 | print(reduce(multiply_function, numbers_list))
|
help: Rewrite multiply_function as a def

F401 [*] module.add imported but unused
--> basics/10_advanced/05_module_import.py:1:20
|
1 | from module import add
| ^^^
|
help: Remove unused import: module.add

E731 Do not assign a lambda expression, use a def
--> basics/10_advanced/functional_map_filter_reduce.py:10:1
|
9 | # Example of Map
10 | square_function = lambda number: number * number
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11 | squared_result = map(square_function, numbers_list)
12 | print(list(squared_result))
|
help: Rewrite square_function as a def

E731 Do not assign a lambda expression, use a def
--> basics/10_advanced/functional_map_filter_reduce.py:24:1
|
23 | # Example of Reduce
24 | multiply_function = lambda num1, num2: num1 * num2
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
25 | print(reduce(multiply_function, numbers_list))
|
help: Rewrite multiply_function as a def

E731 Do not assign a lambda expression, use a def
--> basics/10_advanced/lambda_functions.py:16:1
|
15 | # After
16 | sum_function = lambda first_num, second_num: first_num + second_num
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
17 | print(sum_function(1, 10))
|
help: Rewrite sum_function as a def

E731 Do not assign a lambda expression, use a def
--> basics/10_advanced/lambda_functions.py:19:1
|
17 | print(sum_function(1, 10))
18 |
19 | square_function = lambda number: number * number
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
20 | print(square_function(9))
|
help: Rewrite square_function as a def

F401 [*] module.add_numbers imported but unused
--> basics/10_advanced/module_import_example.py:1:20
|
1 | from module import add_numbers
| ^^^^^^^^^^^
|
help: Remove unused import: module.add_numbers

F841 Local variable choices_full is assigned to but never used
--> basics/11_projects/03_rock_paper_scissors.py:12:5
|
10 | """Get validated user input for rock/paper/scissors."""
11 | valid_choices = ["R", "P", "S"]
12 | choices_full = {"R": "Rock", "P": "Paper", "S": "Scissor"}
| ^^^^^^^^^^^^
13 |
14 | while True:
|
help: Remove assignment to unused variable choices_full

F541 [*] f-string without any placeholders
--> basics/11_projects/03_rock_paper_scissors.py:20:19
|
18 | return user_input
19 | else:
20 | print(f"❌ Invalid choice! Please choose R, P, or S.")
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
21 | print(f" You chose: '{user_input}'")
|
help: Remove extraneous f prefix

invalid-syntax: missing closing quote in string literal
--> llm_fundamentals/WEIGHT-LOADING/supplementary.py:15:60
|
14 | # Tokenize the entire text
15 | token_ids = tokenizer.encode(txt, allowed_special={"
| ^
|

invalid-syntax: unexpected EOF while parsing
--> llm_fundamentals/WEIGHT-LOADING/supplementary.py:17:1
|
15 | token_ids = tokenizer.encode(txt, allowed_special={"
16 |
| ^
|

F401 [*] importlib.metadata.version imported but unused
--> llm_fundamentals/architecture/01_transformer_architecture.py:5:32
|
3 | import torch
4 | import tiktoken
5 | from importlib.metadata import version
| ^^^^^^^
6 |
7 | GPT_CONFIG_500M = {
|
help: Remove unused import: importlib.metadata.version

E703 [*] Statement ends with an unnecessary semicolon
--> llm_fundamentals/architecture/01_transformer_architecture.py:92:13
|
90 | return idx
91 |
92 | model.eval();
| ^
|
help: Remove unnecessary semicolon

invalid-syntax: Simple statements must be separated by newlines or semicolons
--> llm_fundamentals/architecture/main.py:47:381
|
45 | …
46 | …
47 | …nd to use a mix of English and their mother tongue, creating "Hinglish" or other blends, and sentences may be longer and more descrip…
| ^^^^^^^^
48 | …Conversations usually begin with courteous openings and end with respectful closings, showing value for harmony and mutual respect. I…
|

invalid-syntax: Simple statements must be separated by newlines or semicolons
--> llm_fundamentals/architecture/main.py:47:389
|
45 | …
46 | …
47 | …glish" or other blends, and sentences may be longer and more descriptive. Respect is shown through words like ji, sir, and madam, and by using softer language instead of direct refusal. Storytelling, examples, and cultural references are common, and people may repeat points for clarity and emphasis. Overall, Indian style communication feels friendly, indirect, and relationship-focused rather than blunt and purely task-oriented."
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
48 | …respectful closings, showing value for harmony and mutual respect. Indian English speakers may explain things at length, giving background and context before coming to the main point, and they often avoid saying a direct "no," preferring softer expressions like "we will try" or "let us see." This style reflects India's cultural emphasis on respect, patience, and maintaining good relationships while communicating."
|

invalid-syntax: Simple statements must be separated by newlines or semicolons
--> llm_fundamentals/architecture/main.py:48:180
|
47 | …s much as the information itself. Conversations often start with polite greetings and small talk, like asking about family, health, a…
48 | …w it is said. Speakers often use formal-sounding phrases like "kindly," "please do the needful," and "as per my understanding," which…
| ^^^^^^
49 | …
50 | …
|

invalid-syntax: Expected ,, found name
--> llm_fundamentals/architecture/main.py:48:190
|
47 | …the information itself. Conversations often start with polite greetings and small talk, like asking about family, health, and work, b…
48 | …id. Speakers often use formal-sounding phrases like "kindly," "please do the needful," and "as per my understanding," which may sound…
| ^^^^^^
49 | …
50 | …
|

invalid-syntax: Expected ,, found name
--> llm_fundamentals/architecture/main.py:48:197
|
47 | …nformation itself. Conversations often start with polite greetings and small talk, like asking about family, health, and work, becaus…
48 | …peakers often use formal-sounding phrases like "kindly," "please do the needful," and "as per my understanding," which may sound old-…
| ^^
49 | …
50 | …
|

invalid-syntax: Expected ,, found name
--> llm_fundamentals/architecture/main.py:48:200
|
47 | …rmation itself. Conversations often start with polite greetings and small talk, like asking about family, health, and work, because i…
48 | …kers often use formal-sounding phrases like "kindly," "please do the needful," and "as per my understanding," which may sound old-fas…
| ^^^
49 | …
50 | …
|

invalid-syntax: Expected ,, found name
--> llm_fundamentals/architecture/main.py:48:204
|
47 | …n itself. Conversations often start with polite greetings and small talk, like asking about family, health, and work, because in Indi…
48 | …ften use formal-sounding phrases like "kindly," "please do the needful," and "as per my understanding," which may sound old-fashioned…
| ^^^^^^^
49 | …
50 | …
|

invalid-syntax: Expected a statement
--> llm_fundamentals/architecture/main.py:48:219
|
47 | …versations often start with polite greetings and small talk, like asking about family, health, and work, because in India personal co…
48 | …al-sounding phrases like "kindly," "please do the needful," and "as per my understanding," which may sound old-fashioned in other cou…
| ^^
49 | …
50 | …
|

invalid-syntax: Simple statements must be separated by newlines or semicolons
--> llm_fundamentals/architecture/main.py:48:226
|
47 | …ons often start with polite greetings and small talk, like asking about family, health, and work, because in India personal connectio…
48 | …ding phrases like "kindly," "please do the needful," and "as per my understanding," which may sound old-fashioned in other countries …
| ^^
49 | …
50 | …
|

invalid-syntax: Simple statements must be separated by newlines or semicolons
--> llm_fundamentals/architecture/main.py:48:229
|
47 | …n start with polite greetings and small talk, like asking about family, health, and work, because in India personal connection comes …
48 | …ases like "kindly," "please do the needful," and "as per my understanding," which may sound old-fashioned in other countries but are …
| ^^^^^^^^^^^^^
49 | …
50 | …
|

invalid-syntax: Expected ,, found name
--> llm_fundamentals/architecture/main.py:48:606
|
47 | …e instead of direct refusal. Storytelling, examples, and cultural references are common, and people may repeat points for clarity and…
48 | … coming to the main point, and they often avoid saying a direct "no," preferring softer expressions like "we will try" or "let us see…
| ^^
49 | …
50 | …
|

invalid-syntax: Expected ,, found name
--> llm_fundamentals/architecture/main.py:48:647
|
47 | …, examples, and cultural references are common, and people may repeat points for clarity and emphasis. Overall, Indian style communic…
48 | … avoid saying a direct "no," preferring softer expressions like "we will try" or "let us see." This style reflects India's cultural e…
| ^^
49 | …
50 | …
|

invalid-syntax: Expected ,, found name
--> llm_fundamentals/architecture/main.py:48:650
|
47 | …amples, and cultural references are common, and people may repeat points for clarity and emphasis. Overall, Indian style communicatio…
48 | …id saying a direct "no," preferring softer expressions like "we will try" or "let us see." This style reflects India's cultural empha…
| ^^^^
49 | …
50 | …
|

invalid-syntax: Compound statements are not allowed on the same line as simple statements
--> llm_fundamentals/architecture/main.py:48:655
|
47 | …es, and cultural references are common, and people may repeat points for clarity and emphasis. Overall, Indian style communication fe…
48 | …aying a direct "no," preferring softer expressions like "we will try" or "let us see." This style reflects India's cultural emphasis …
| ^^^
49 | …
50 | …
|

invalid-syntax: Expected :, found string
--> llm_fundamentals/architecture/main.py:48:658
|
47 | …nd cultural references are common, and people may repeat points for clarity and emphasis. Overall, Indian style communication feels f…
48 | … a direct "no," preferring softer expressions like "we will try" or "let us see." This style reflects India's cultural emphasis on re…
| ^^^^^^
49 | …
50 | …
|

invalid-syntax: Simple statements must be separated by newlines or semicolons
--> llm_fundamentals/architecture/main.py:48:664
|
47 | …ultural references are common, and people may repeat points for clarity and emphasis. Overall, Indian style communication feels frien…
48 | …irect "no," preferring softer expressions like "we will try" or "let us see." This style reflects India's cultural emphasis on respec…
| ^^^
49 | …
50 | …
|

invalid-syntax: Simple statements must be separated by newlines or semicolons
--> llm_fundamentals/architecture/main.py:48:668
|
47 | …ral references are common, and people may repeat points for clarity and emphasis. Overall, Indian style communication feels friendly,…
48 | …t "no," preferring softer expressions like "we will try" or "let us see." This style reflects India's cultural emphasis on respect, p…
| ^^
49 | …
50 | …
|

invalid-syntax: Simple statements must be separated by newlines or semicolons
--> llm_fundamentals/architecture/main.py:48:671
|
47 | … references are common, and people may repeat points for clarity and emphasis. Overall, Indian style communication feels friendly, in…
48 | …no," preferring softer expressions like "we will try" or "let us see." This style reflects India's cultural emphasis on respect, pati…
| ^^^
49 | …
50 | …
|

invalid-syntax: Expected an identifier
--> llm_fundamentals/architecture/main.py:48:675
|
47 | … and emphasis. Overall, Indian style communication feels friendly, indirect, and relationship-focused rather than blunt and purely task-…
48 | … see." This style reflects India's cultural emphasis on respect, patience, and maintaining good relationships while communicating."
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
49 | …
50 | …
|

invalid-syntax: Expected except or finally after try block
--> llm_fundamentals/architecture/main.py:50:1
|
48 | txt2 = "Indian English communication style is polite, detailed, and focusing not only on what is said but also on how it is said. Spea…
49 |
50 | batch_list.append(torch.tensor(tokenizer.encode(txt1)))
| ^^^^^^^^^^
51 | batch_list.append(torch.tensor(tokenizer.encode(txt2)))
52 | batch_tensor = torch.stack(batch_list, dim=0)
|

E703 Statement ends with an unnecessary semicolon
--> llm_fundamentals/architecture/main.py:92:13
|
90 | return idx
91 |
92 | model.eval();
| ^
|
help: Remove unnecessary semicolon

F401 [*] importlib imported but unused
--> llm_fundamentals/data/BytePair_Tokenization.py:1:8
|
1 | import importlib
| ^^^^^^^^^
2 | import tiktoken
|
help: Remove unused import: importlib

E402 Module level import not at top of file
--> llm_fundamentals/fine_tuning/01_fine_tuning.py:34:1
|
33 | print(format_input(test_data[0]))
34 | from litgpt import LLM
| ^^^^^^^^^^^^^^^^^^^^^^
35 |
36 | llm = LLM.load("Qwen/Qwen3-1.7B")
|

E402 Module level import not at top of file
--> llm_fundamentals/fine_tuning/01_fine_tuning.py:37:1
|
36 | llm = LLM.load("Qwen/Qwen3-1.7B")
37 | from tqdm import tqdm
| ^^^^^^^^^^^^^^^^^^^^^
38 |
39 | for i in tqdm(range(len(test_data))):
|

E703 Statement ends with an unnecessary semicolon
--> llm_fundamentals/pre_training/01_pretraining.py:27:13
|
25 | torch.manual_seed(123)
26 | model = GPTModel(GPT_CONFIG_500M)
27 | model.eval(); # Disable dropout during inference
| ^
|
help: Remove unnecessary semicolon

invalid-syntax: missing closing quote in string literal
--> llm_fundamentals/pre_training/01_pretraining.py:31:55
|
30 | def text_to_token_ids(text, tokenizer):
31 | encoded = tokenizer.encode(text, allowed_special={'
| ^
|

invalid-syntax: unexpected EOF while parsing
--> llm_fundamentals/pre_training/01_pretraining.py:32:1
|
30 | def text_to_token_ids(text, tokenizer):
31 | encoded = tokenizer.encode(text, allowed_special={'
| ^
|

E703 [*] Statement ends with an unnecessary semicolon
--> llm_fundamentals/weight_loading/01_weight_loading.py:47:11
|
46 | gpt = GPTModel(NEW_CONFIG)
47 | gpt.eval();
| ^
48 | def assign(left, right):
49 | if left.shape != right.shape:
|
help: Remove unnecessary semicolon

E703 [*] Statement ends with an unnecessary semicolon
--> llm_fundamentals/weight_loading/01_weight_loading.py:118:15
|
117 | device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
118 | gpt.to(device);
| ^
119 |
120 | tokenizer = tiktoken.get_encoding("gpt2")
|
help: Remove unnecessary semicolon

F811 [*] Redefinition of unused np from line 1
--> llm_fundamentals/weight_loading/03_gpt_download.py:8:17
|
6 | # import requests
7 | import json
8 | import numpy as np
| ^^ np redefined here
9 | import tensorflow as tf
10 | from tqdm import tqdm
|
::: llm_fundamentals/weight_loading/03_gpt_download.py:1:17
|
1 | import numpy as np
| -- previous definition of np here
2 | import tensorflow as tf
3 | import os
|
help: Remove definition: np

F811 [*] Redefinition of unused tf from line 2
--> llm_fundamentals/weight_loading/03_gpt_download.py:9:22
|
7 | import json
8 | import numpy as np
9 | import tensorflow as tf
| ^^ tf redefined here
10 | from tqdm import tqdm
|
::: llm_fundamentals/weight_loading/03_gpt_download.py:2:22
|
1 | import numpy as np
2 | import tensorflow as tf
| -- previous definition of tf here
3 | import os
4 | import urllib.request
|
help: Remove definition: tf

F541 [*] f-string without any placeholders
--> rest_api/main.py:169:11
|
167 | # Use environment variable for debug mode (default to False for production)
168 | debug_mode = os.environ.get("FLASK_DEBUG", "False").lower() == "true"
169 | print(f"\n🚀 Starting Travel Destinations API")
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
170 | print(f"📍 Server: http://127.0.0.1:5000")
171 | print(f"📖 Docs: http://127.0.0.1:5000/destinations")
|
help: Remove extraneous f prefix

F541 [*] f-string without any placeholders
--> rest_api/main.py:170:11
|
168 | debug_mode = os.environ.get("FLASK_DEBUG", "False").lower() == "true"
169 | print(f"\n🚀 Starting Travel Destinations API")
170 | print(f"📍 Server: http://127.0.0.1:5000")
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
171 | print(f"📖 Docs: http://127.0.0.1:5000/destinations")
172 | print(f"🔧 Debug mode: {debug_mode}")
|
help: Remove extraneous f prefix

F541 [*] f-string without any placeholders
--> rest_api/main.py:171:11
|
169 | print(f"\n🚀 Starting Travel Destinations API")
170 | print(f"📍 Server: http://127.0.0.1:5000")
171 | print(f"📖 Docs: http://127.0.0.1:5000/destinations")
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
172 | print(f"🔧 Debug mode: {debug_mode}")
173 | print(f"\n⚠️ Set FLASK_DEBUG=true to enable debug mode\n")
|
help: Remove extraneous f prefix

F541 [*] f-string without any placeholders
--> rest_api/main.py:173:11
|
171 | print(f"📖 Docs: http://127.0.0.1:5000/destinations")
172 | print(f"🔧 Debug mode: {debug_mode}")
173 | print(f"\n⚠️ Set FLASK_DEBUG=true to enable debug mode\n")
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
174 | app.run(debug=debug_mode)
|
help: Remove extraneous f prefix

Found 69 errors.
[*] 29 fixable with the --fix option (9 hidden fixes can be enabled with the --unsafe-fixes option).

@hackdartstorm hackdartstorm merged commit bce4c37 into main Feb 20, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant