diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml index 79c9cdca29..ccade88910 100644 --- a/.github/workflows/linters.yml +++ b/.github/workflows/linters.yml @@ -18,7 +18,7 @@ jobs: fail-fast: false matrix: include: - - {name: Linux313, python: '3.13.7', os: ubuntu-latest} + - {name: Linux314, python: '3.14.0', os: ubuntu-latest} steps: - name: Check out repository uses: actions/checkout@v2 diff --git a/build-a-blog-from-scratch-django/django-blog/blog/admin.py b/build-a-blog-from-scratch-django/django-blog/blog/admin.py index 18a68deed8..3e66e4250e 100644 --- a/build-a-blog-from-scratch-django/django-blog/blog/admin.py +++ b/build-a-blog-from-scratch-django/django-blog/blog/admin.py @@ -1,6 +1,5 @@ -from django.contrib import admin - from blog.models import Category, Comment, Post +from django.contrib import admin class CategoryAdmin(admin.ModelAdmin): diff --git a/build-a-blog-from-scratch-django/django-blog/blog/views.py b/build-a-blog-from-scratch-django/django-blog/blog/views.py index e1f51f4bbc..def8370f98 100644 --- a/build-a-blog-from-scratch-django/django-blog/blog/views.py +++ b/build-a-blog-from-scratch-django/django-blog/blog/views.py @@ -1,8 +1,7 @@ -from django.http import HttpResponseRedirect -from django.shortcuts import render - from blog.forms import CommentForm from blog.models import Comment, Post +from django.http import HttpResponseRedirect +from django.shortcuts import render def blog_index(request): diff --git a/celery-async-tasks/source_code_final/feedback/forms.py b/celery-async-tasks/source_code_final/feedback/forms.py index 96807e71a9..8ada298c8a 100644 --- a/celery-async-tasks/source_code_final/feedback/forms.py +++ b/celery-async-tasks/source_code_final/feedback/forms.py @@ -1,5 +1,4 @@ from django import forms - from feedback.tasks import send_feedback_email_task diff --git a/celery-async-tasks/source_code_final/feedback/urls.py b/celery-async-tasks/source_code_final/feedback/urls.py index ba6b6bd510..79f9bfa0c6 100644 --- a/celery-async-tasks/source_code_final/feedback/urls.py +++ b/celery-async-tasks/source_code_final/feedback/urls.py @@ -1,5 +1,4 @@ from django.urls import path - from feedback.views import FeedbackFormView, SuccessView app_name = "feedback" diff --git a/celery-async-tasks/source_code_final/feedback/views.py b/celery-async-tasks/source_code_final/feedback/views.py index 6578905f92..a5a302d582 100644 --- a/celery-async-tasks/source_code_final/feedback/views.py +++ b/celery-async-tasks/source_code_final/feedback/views.py @@ -1,6 +1,5 @@ from django.views.generic.base import TemplateView from django.views.generic.edit import FormView - from feedback.forms import FeedbackForm diff --git a/celery-async-tasks/source_code_initial/feedback/urls.py b/celery-async-tasks/source_code_initial/feedback/urls.py index ba6b6bd510..79f9bfa0c6 100644 --- a/celery-async-tasks/source_code_initial/feedback/urls.py +++ b/celery-async-tasks/source_code_initial/feedback/urls.py @@ -1,5 +1,4 @@ from django.urls import path - from feedback.views import FeedbackFormView, SuccessView app_name = "feedback" diff --git a/celery-async-tasks/source_code_initial/feedback/views.py b/celery-async-tasks/source_code_initial/feedback/views.py index 6578905f92..a5a302d582 100644 --- a/celery-async-tasks/source_code_initial/feedback/views.py +++ b/celery-async-tasks/source_code_initial/feedback/views.py @@ -1,6 +1,5 @@ from django.views.generic.base import TemplateView from django.views.generic.edit import FormView - from feedback.forms import FeedbackForm diff --git a/code-image-generator/source_code_final/app.py b/code-image-generator/source_code_final/app.py index 36d11910fd..2a32d4b5c6 100644 --- a/code-image-generator/source_code_final/app.py +++ b/code-image-generator/source_code_final/app.py @@ -1,13 +1,6 @@ import base64 -from flask import ( - Flask, - redirect, - render_template, - request, - session, - url_for, -) +from flask import Flask, redirect, render_template, request, session, url_for from pygments import highlight from pygments.formatters import HtmlFormatter from pygments.lexers import Python3Lexer diff --git a/code-image-generator/source_code_step_02/app.py b/code-image-generator/source_code_step_02/app.py index 4bd78ecdf6..afc0d80306 100644 --- a/code-image-generator/source_code_step_02/app.py +++ b/code-image-generator/source_code_step_02/app.py @@ -1,11 +1,4 @@ -from flask import ( - Flask, - redirect, - render_template, - request, - session, - url_for, -) +from flask import Flask, redirect, render_template, request, session, url_for app = Flask(__name__) app.secret_key = ( diff --git a/code-image-generator/source_code_step_03/app.py b/code-image-generator/source_code_step_03/app.py index 36f73621b9..4247d98ed9 100644 --- a/code-image-generator/source_code_step_03/app.py +++ b/code-image-generator/source_code_step_03/app.py @@ -1,11 +1,4 @@ -from flask import ( - Flask, - redirect, - render_template, - request, - session, - url_for, -) +from flask import Flask, redirect, render_template, request, session, url_for from pygments import highlight from pygments.formatters import HtmlFormatter from pygments.lexers import Python3Lexer diff --git a/code-image-generator/source_code_step_04/app.py b/code-image-generator/source_code_step_04/app.py index 8dafeb0c8c..1793782316 100644 --- a/code-image-generator/source_code_step_04/app.py +++ b/code-image-generator/source_code_step_04/app.py @@ -1,13 +1,6 @@ import base64 -from flask import ( - Flask, - redirect, - render_template, - request, - session, - url_for, -) +from flask import Flask, redirect, render_template, request, session, url_for from pygments import highlight from pygments.formatters import HtmlFormatter from pygments.lexers import Python3Lexer diff --git a/crud-operations/crud_fastapi.py b/crud-operations/crud_fastapi.py index 42ddcbd97c..be092fecde 100644 --- a/crud-operations/crud_fastapi.py +++ b/crud-operations/crud_fastapi.py @@ -1,5 +1,6 @@ -from crud_sql_alchemy import Bird, init_db +from crud_sql_alchemy import Bird from crud_sql_alchemy import Session as SessionLocal +from crud_sql_alchemy import init_db from pydantic import BaseModel, ConfigDict from sqlalchemy import select from sqlalchemy.orm import Session diff --git a/django-flashcards-app/source_code_final/cards/views.py b/django-flashcards-app/source_code_final/cards/views.py index 94ab3270ec..93b9396417 100644 --- a/django-flashcards-app/source_code_final/cards/views.py +++ b/django-flashcards-app/source_code_final/cards/views.py @@ -2,11 +2,7 @@ from django.shortcuts import get_object_or_404, redirect from django.urls import reverse_lazy -from django.views.generic import ( - CreateView, - ListView, - UpdateView, -) +from django.views.generic import CreateView, ListView, UpdateView from .forms import CardCheckForm from .models import Card diff --git a/django-flashcards-app/source_code_step_3/cards/views.py b/django-flashcards-app/source_code_step_3/cards/views.py index f4c4df119e..1a8e6e01b9 100644 --- a/django-flashcards-app/source_code_step_3/cards/views.py +++ b/django-flashcards-app/source_code_step_3/cards/views.py @@ -1,6 +1,4 @@ -from django.views.generic import ( - ListView, -) +from django.views.generic import ListView from .models import Card diff --git a/django-flashcards-app/source_code_step_4/cards/views.py b/django-flashcards-app/source_code_step_4/cards/views.py index 730cd33bf6..8ba84078ba 100644 --- a/django-flashcards-app/source_code_step_4/cards/views.py +++ b/django-flashcards-app/source_code_step_4/cards/views.py @@ -1,9 +1,5 @@ from django.urls import reverse_lazy -from django.views.generic import ( - CreateView, - ListView, - UpdateView, -) +from django.views.generic import CreateView, ListView, UpdateView from .models import Card diff --git a/django-flashcards-app/source_code_step_5/cards/views.py b/django-flashcards-app/source_code_step_5/cards/views.py index 730cd33bf6..8ba84078ba 100644 --- a/django-flashcards-app/source_code_step_5/cards/views.py +++ b/django-flashcards-app/source_code_step_5/cards/views.py @@ -1,9 +1,5 @@ from django.urls import reverse_lazy -from django.views.generic import ( - CreateView, - ListView, - UpdateView, -) +from django.views.generic import CreateView, ListView, UpdateView from .models import Card diff --git a/django-flashcards-app/source_code_step_6/cards/views.py b/django-flashcards-app/source_code_step_6/cards/views.py index 94ab3270ec..93b9396417 100644 --- a/django-flashcards-app/source_code_step_6/cards/views.py +++ b/django-flashcards-app/source_code_step_6/cards/views.py @@ -2,11 +2,7 @@ from django.shortcuts import get_object_or_404, redirect from django.urls import reverse_lazy -from django.views.generic import ( - CreateView, - ListView, - UpdateView, -) +from django.views.generic import CreateView, ListView, UpdateView from .forms import CardCheckForm from .models import Card diff --git a/django-markdown/dmd_app/templatetags/dmd_extras.py b/django-markdown/dmd_app/templatetags/dmd_extras.py index 0c716ddceb..c3b67d1f30 100644 --- a/django-markdown/dmd_app/templatetags/dmd_extras.py +++ b/django-markdown/dmd_app/templatetags/dmd_extras.py @@ -2,7 +2,6 @@ from django import template from django.template.defaultfilters import stringfilter from django.utils.safestring import mark_safe - from dmd_app.markdown_extensions import SlugFieldExtension register = template.Library() diff --git a/django-pagination/terms/views.py b/django-pagination/terms/views.py index 60f74389c6..6822e31430 100644 --- a/django-pagination/terms/views.py +++ b/django-pagination/terms/views.py @@ -2,7 +2,6 @@ from django.http import JsonResponse from django.shortcuts import render from django.views.generic import ListView - from terms.models import Keyword diff --git a/django-todo-list/source_code_final/todo_app/admin.py b/django-todo-list/source_code_final/todo_app/admin.py index 42d6ba06c3..75f0d14b50 100644 --- a/django-todo-list/source_code_final/todo_app/admin.py +++ b/django-todo-list/source_code_final/todo_app/admin.py @@ -1,7 +1,6 @@ # todo_list/todo_app/admin.py from django.contrib import admin - from todo_app.models import ToDoItem, ToDoList admin.site.register(ToDoItem) diff --git a/django-todo-list/source_code_final/todo_app/migrations/0001_initial.py b/django-todo-list/source_code_final/todo_app/migrations/0001_initial.py index a7b94d7586..d28bc8ed8f 100644 --- a/django-todo-list/source_code_final/todo_app/migrations/0001_initial.py +++ b/django-todo-list/source_code_final/todo_app/migrations/0001_initial.py @@ -1,9 +1,8 @@ # Generated by Django 3.2.9 on 2021-12-19 19:49 import django.db.models.deletion -from django.db import migrations, models - import todo_app.models +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/django-todo-list/source_code_final/todo_app/urls.py b/django-todo-list/source_code_final/todo_app/urls.py index 87eb9dae4e..6e250fa473 100644 --- a/django-todo-list/source_code_final/todo_app/urls.py +++ b/django-todo-list/source_code_final/todo_app/urls.py @@ -1,6 +1,5 @@ # todo_list/todo_app/urls.py from django.urls import path - from todo_app import views urlpatterns = [ diff --git a/django-todo-list/source_code_final/todo_app/views.py b/django-todo-list/source_code_final/todo_app/views.py index 832c56065b..fd86d6f403 100644 --- a/django-todo-list/source_code_final/todo_app/views.py +++ b/django-todo-list/source_code_final/todo_app/views.py @@ -1,11 +1,6 @@ # todo_list/todo_app/views.py from django.urls import reverse, reverse_lazy -from django.views.generic import ( - CreateView, - DeleteView, - ListView, - UpdateView, -) +from django.views.generic import CreateView, DeleteView, ListView, UpdateView from .models import ToDoItem, ToDoList diff --git a/django-todo-list/source_code_step_3/todo_app/migrations/0001_initial.py b/django-todo-list/source_code_step_3/todo_app/migrations/0001_initial.py index 6306d20f7e..b04d15c8d9 100644 --- a/django-todo-list/source_code_step_3/todo_app/migrations/0001_initial.py +++ b/django-todo-list/source_code_step_3/todo_app/migrations/0001_initial.py @@ -1,9 +1,8 @@ # Generated by Django 3.2.9 on 2021-12-31 15:31 import django.db.models.deletion -from django.db import migrations, models - import todo_app.models +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/django-todo-list/source_code_step_4/todo_app/admin.py b/django-todo-list/source_code_step_4/todo_app/admin.py index 42d6ba06c3..75f0d14b50 100644 --- a/django-todo-list/source_code_step_4/todo_app/admin.py +++ b/django-todo-list/source_code_step_4/todo_app/admin.py @@ -1,7 +1,6 @@ # todo_list/todo_app/admin.py from django.contrib import admin - from todo_app.models import ToDoItem, ToDoList admin.site.register(ToDoItem) diff --git a/django-todo-list/source_code_step_4/todo_app/migrations/0001_initial.py b/django-todo-list/source_code_step_4/todo_app/migrations/0001_initial.py index a7b94d7586..d28bc8ed8f 100644 --- a/django-todo-list/source_code_step_4/todo_app/migrations/0001_initial.py +++ b/django-todo-list/source_code_step_4/todo_app/migrations/0001_initial.py @@ -1,9 +1,8 @@ # Generated by Django 3.2.9 on 2021-12-19 19:49 import django.db.models.deletion -from django.db import migrations, models - import todo_app.models +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/django-todo-list/source_code_step_5/todo_app/admin.py b/django-todo-list/source_code_step_5/todo_app/admin.py index 42d6ba06c3..75f0d14b50 100644 --- a/django-todo-list/source_code_step_5/todo_app/admin.py +++ b/django-todo-list/source_code_step_5/todo_app/admin.py @@ -1,7 +1,6 @@ # todo_list/todo_app/admin.py from django.contrib import admin - from todo_app.models import ToDoItem, ToDoList admin.site.register(ToDoItem) diff --git a/django-todo-list/source_code_step_5/todo_app/migrations/0001_initial.py b/django-todo-list/source_code_step_5/todo_app/migrations/0001_initial.py index a7b94d7586..d28bc8ed8f 100644 --- a/django-todo-list/source_code_step_5/todo_app/migrations/0001_initial.py +++ b/django-todo-list/source_code_step_5/todo_app/migrations/0001_initial.py @@ -1,9 +1,8 @@ # Generated by Django 3.2.9 on 2021-12-19 19:49 import django.db.models.deletion -from django.db import migrations, models - import todo_app.models +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/django-todo-list/source_code_step_5/todo_app/urls.py b/django-todo-list/source_code_step_5/todo_app/urls.py index 2e631c036d..29d6f70467 100644 --- a/django-todo-list/source_code_step_5/todo_app/urls.py +++ b/django-todo-list/source_code_step_5/todo_app/urls.py @@ -1,6 +1,5 @@ # todo_list/todo_app/urls.py from django.urls import path - from todo_app import views urlpatterns = [ diff --git a/django-todo-list/source_code_step_6/todo_app/admin.py b/django-todo-list/source_code_step_6/todo_app/admin.py index 42d6ba06c3..75f0d14b50 100644 --- a/django-todo-list/source_code_step_6/todo_app/admin.py +++ b/django-todo-list/source_code_step_6/todo_app/admin.py @@ -1,7 +1,6 @@ # todo_list/todo_app/admin.py from django.contrib import admin - from todo_app.models import ToDoItem, ToDoList admin.site.register(ToDoItem) diff --git a/django-todo-list/source_code_step_6/todo_app/migrations/0001_initial.py b/django-todo-list/source_code_step_6/todo_app/migrations/0001_initial.py index a7b94d7586..d28bc8ed8f 100644 --- a/django-todo-list/source_code_step_6/todo_app/migrations/0001_initial.py +++ b/django-todo-list/source_code_step_6/todo_app/migrations/0001_initial.py @@ -1,9 +1,8 @@ # Generated by Django 3.2.9 on 2021-12-19 19:49 import django.db.models.deletion -from django.db import migrations, models - import todo_app.models +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/django-todo-list/source_code_step_6/todo_app/urls.py b/django-todo-list/source_code_step_6/todo_app/urls.py index 1d6c6ba646..a50a9365ce 100644 --- a/django-todo-list/source_code_step_6/todo_app/urls.py +++ b/django-todo-list/source_code_step_6/todo_app/urls.py @@ -1,6 +1,5 @@ # todo_list/todo_app/urls.py from django.urls import path - from todo_app import views urlpatterns = [ diff --git a/django-todo-list/source_code_step_6/todo_app/views.py b/django-todo-list/source_code_step_6/todo_app/views.py index 26da97d4c5..3dd6297982 100644 --- a/django-todo-list/source_code_step_6/todo_app/views.py +++ b/django-todo-list/source_code_step_6/todo_app/views.py @@ -1,10 +1,6 @@ # todo_list/todo_app/views.py from django.urls import reverse -from django.views.generic import ( - CreateView, - ListView, - UpdateView, -) +from django.views.generic import CreateView, ListView, UpdateView from .models import ToDoItem, ToDoList diff --git a/django-todo-list/source_code_step_7/todo_app/admin.py b/django-todo-list/source_code_step_7/todo_app/admin.py index 42d6ba06c3..75f0d14b50 100644 --- a/django-todo-list/source_code_step_7/todo_app/admin.py +++ b/django-todo-list/source_code_step_7/todo_app/admin.py @@ -1,7 +1,6 @@ # todo_list/todo_app/admin.py from django.contrib import admin - from todo_app.models import ToDoItem, ToDoList admin.site.register(ToDoItem) diff --git a/django-todo-list/source_code_step_7/todo_app/migrations/0001_initial.py b/django-todo-list/source_code_step_7/todo_app/migrations/0001_initial.py index a7b94d7586..d28bc8ed8f 100644 --- a/django-todo-list/source_code_step_7/todo_app/migrations/0001_initial.py +++ b/django-todo-list/source_code_step_7/todo_app/migrations/0001_initial.py @@ -1,9 +1,8 @@ # Generated by Django 3.2.9 on 2021-12-19 19:49 import django.db.models.deletion -from django.db import migrations, models - import todo_app.models +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/django-todo-list/source_code_step_7/todo_app/urls.py b/django-todo-list/source_code_step_7/todo_app/urls.py index 87eb9dae4e..6e250fa473 100644 --- a/django-todo-list/source_code_step_7/todo_app/urls.py +++ b/django-todo-list/source_code_step_7/todo_app/urls.py @@ -1,6 +1,5 @@ # todo_list/todo_app/urls.py from django.urls import path - from todo_app import views urlpatterns = [ diff --git a/django-todo-list/source_code_step_7/todo_app/views.py b/django-todo-list/source_code_step_7/todo_app/views.py index 832c56065b..fd86d6f403 100644 --- a/django-todo-list/source_code_step_7/todo_app/views.py +++ b/django-todo-list/source_code_step_7/todo_app/views.py @@ -1,11 +1,6 @@ # todo_list/todo_app/views.py from django.urls import reverse, reverse_lazy -from django.views.generic import ( - CreateView, - DeleteView, - ListView, - UpdateView, -) +from django.views.generic import CreateView, DeleteView, ListView, UpdateView from .models import ToDoItem, ToDoList diff --git a/django-view-auth/Blog/core/admin.py b/django-view-auth/Blog/core/admin.py index 7b1112ea58..7ad45590a8 100644 --- a/django-view-auth/Blog/core/admin.py +++ b/django-view-auth/Blog/core/admin.py @@ -1,6 +1,5 @@ -from django.contrib import admin - from core.models import Blog +from django.contrib import admin @admin.register(Blog) diff --git a/django-view-auth/Blog/core/views.py b/django-view-auth/Blog/core/views.py index c9e3e042f2..1ad2b19534 100644 --- a/django-view-auth/Blog/core/views.py +++ b/django-view-auth/Blog/core/views.py @@ -1,10 +1,9 @@ +from core.models import Blog from django.contrib import messages from django.contrib.auth.decorators import login_required, user_passes_test from django.http import HttpResponse from django.shortcuts import get_object_or_404, render -from core.models import Blog - def listing(request): data = { diff --git a/django-vue-graphql/source_code_final/back_end/blog/admin.py b/django-vue-graphql/source_code_final/back_end/blog/admin.py index 733d711c87..7b16d9a26c 100644 --- a/django-vue-graphql/source_code_final/back_end/blog/admin.py +++ b/django-vue-graphql/source_code_final/back_end/blog/admin.py @@ -1,6 +1,5 @@ -from django.contrib import admin - from blog.models import Post, Profile, Tag +from django.contrib import admin @admin.register(Profile) diff --git a/django-vue-graphql/source_code_final/back_end/blog/schema.py b/django-vue-graphql/source_code_final/back_end/blog/schema.py index 2b1fdee406..a4875c5d67 100644 --- a/django-vue-graphql/source_code_final/back_end/blog/schema.py +++ b/django-vue-graphql/source_code_final/back_end/blog/schema.py @@ -1,9 +1,8 @@ import graphene +from blog import models from django.contrib.auth import get_user_model from graphene_django import DjangoObjectType -from blog import models - class UserType(DjangoObjectType): class Meta: diff --git a/django-vue-graphql/source_code_step_2/back_end/blog/admin.py b/django-vue-graphql/source_code_step_2/back_end/blog/admin.py index 733d711c87..7b16d9a26c 100644 --- a/django-vue-graphql/source_code_step_2/back_end/blog/admin.py +++ b/django-vue-graphql/source_code_step_2/back_end/blog/admin.py @@ -1,6 +1,5 @@ -from django.contrib import admin - from blog.models import Post, Profile, Tag +from django.contrib import admin @admin.register(Profile) diff --git a/django-vue-graphql/source_code_step_3/back_end/blog/admin.py b/django-vue-graphql/source_code_step_3/back_end/blog/admin.py index 733d711c87..7b16d9a26c 100644 --- a/django-vue-graphql/source_code_step_3/back_end/blog/admin.py +++ b/django-vue-graphql/source_code_step_3/back_end/blog/admin.py @@ -1,6 +1,5 @@ -from django.contrib import admin - from blog.models import Post, Profile, Tag +from django.contrib import admin @admin.register(Profile) diff --git a/django-vue-graphql/source_code_step_3/back_end/blog/schema.py b/django-vue-graphql/source_code_step_3/back_end/blog/schema.py index 2b1fdee406..a4875c5d67 100644 --- a/django-vue-graphql/source_code_step_3/back_end/blog/schema.py +++ b/django-vue-graphql/source_code_step_3/back_end/blog/schema.py @@ -1,9 +1,8 @@ import graphene +from blog import models from django.contrib.auth import get_user_model from graphene_django import DjangoObjectType -from blog import models - class UserType(DjangoObjectType): class Meta: diff --git a/django-vue-graphql/source_code_step_4/back_end/blog/admin.py b/django-vue-graphql/source_code_step_4/back_end/blog/admin.py index 733d711c87..7b16d9a26c 100644 --- a/django-vue-graphql/source_code_step_4/back_end/blog/admin.py +++ b/django-vue-graphql/source_code_step_4/back_end/blog/admin.py @@ -1,6 +1,5 @@ -from django.contrib import admin - from blog.models import Post, Profile, Tag +from django.contrib import admin @admin.register(Profile) diff --git a/django-vue-graphql/source_code_step_4/back_end/blog/schema.py b/django-vue-graphql/source_code_step_4/back_end/blog/schema.py index 2b1fdee406..a4875c5d67 100644 --- a/django-vue-graphql/source_code_step_4/back_end/blog/schema.py +++ b/django-vue-graphql/source_code_step_4/back_end/blog/schema.py @@ -1,9 +1,8 @@ import graphene +from blog import models from django.contrib.auth import get_user_model from graphene_django import DjangoObjectType -from blog import models - class UserType(DjangoObjectType): class Meta: diff --git a/django-vue-graphql/source_code_step_5/back_end/blog/admin.py b/django-vue-graphql/source_code_step_5/back_end/blog/admin.py index 733d711c87..7b16d9a26c 100644 --- a/django-vue-graphql/source_code_step_5/back_end/blog/admin.py +++ b/django-vue-graphql/source_code_step_5/back_end/blog/admin.py @@ -1,6 +1,5 @@ -from django.contrib import admin - from blog.models import Post, Profile, Tag +from django.contrib import admin @admin.register(Profile) diff --git a/django-vue-graphql/source_code_step_5/back_end/blog/schema.py b/django-vue-graphql/source_code_step_5/back_end/blog/schema.py index 2b1fdee406..a4875c5d67 100644 --- a/django-vue-graphql/source_code_step_5/back_end/blog/schema.py +++ b/django-vue-graphql/source_code_step_5/back_end/blog/schema.py @@ -1,9 +1,8 @@ import graphene +from blog import models from django.contrib.auth import get_user_model from graphene_django import DjangoObjectType -from blog import models - class UserType(DjangoObjectType): class Meta: diff --git a/django-vue-graphql/source_code_step_6/back_end/blog/admin.py b/django-vue-graphql/source_code_step_6/back_end/blog/admin.py index 733d711c87..7b16d9a26c 100644 --- a/django-vue-graphql/source_code_step_6/back_end/blog/admin.py +++ b/django-vue-graphql/source_code_step_6/back_end/blog/admin.py @@ -1,6 +1,5 @@ -from django.contrib import admin - from blog.models import Post, Profile, Tag +from django.contrib import admin @admin.register(Profile) diff --git a/django-vue-graphql/source_code_step_6/back_end/blog/schema.py b/django-vue-graphql/source_code_step_6/back_end/blog/schema.py index 2b1fdee406..a4875c5d67 100644 --- a/django-vue-graphql/source_code_step_6/back_end/blog/schema.py +++ b/django-vue-graphql/source_code_step_6/back_end/blog/schema.py @@ -1,9 +1,8 @@ import graphene +from blog import models from django.contrib.auth import get_user_model from graphene_django import DjangoObjectType -from blog import models - class UserType(DjangoObjectType): class Meta: diff --git a/django-vue-graphql/source_code_step_7/back_end/blog/admin.py b/django-vue-graphql/source_code_step_7/back_end/blog/admin.py index 733d711c87..7b16d9a26c 100644 --- a/django-vue-graphql/source_code_step_7/back_end/blog/admin.py +++ b/django-vue-graphql/source_code_step_7/back_end/blog/admin.py @@ -1,6 +1,5 @@ -from django.contrib import admin - from blog.models import Post, Profile, Tag +from django.contrib import admin @admin.register(Profile) diff --git a/django-vue-graphql/source_code_step_7/back_end/blog/schema.py b/django-vue-graphql/source_code_step_7/back_end/blog/schema.py index 2b1fdee406..a4875c5d67 100644 --- a/django-vue-graphql/source_code_step_7/back_end/blog/schema.py +++ b/django-vue-graphql/source_code_step_7/back_end/blog/schema.py @@ -1,9 +1,8 @@ import graphene +from blog import models from django.contrib.auth import get_user_model from graphene_django import DjangoObjectType -from blog import models - class UserType(DjangoObjectType): class Meta: diff --git a/django-vue-graphql/source_code_step_8/back_end/blog/admin.py b/django-vue-graphql/source_code_step_8/back_end/blog/admin.py index 733d711c87..7b16d9a26c 100644 --- a/django-vue-graphql/source_code_step_8/back_end/blog/admin.py +++ b/django-vue-graphql/source_code_step_8/back_end/blog/admin.py @@ -1,6 +1,5 @@ -from django.contrib import admin - from blog.models import Post, Profile, Tag +from django.contrib import admin @admin.register(Profile) diff --git a/django-vue-graphql/source_code_step_8/back_end/blog/schema.py b/django-vue-graphql/source_code_step_8/back_end/blog/schema.py index 2b1fdee406..a4875c5d67 100644 --- a/django-vue-graphql/source_code_step_8/back_end/blog/schema.py +++ b/django-vue-graphql/source_code_step_8/back_end/blog/schema.py @@ -1,9 +1,8 @@ import graphene +from blog import models from django.contrib.auth import get_user_model from graphene_django import DjangoObjectType -from blog import models - class UserType(DjangoObjectType): class Meta: diff --git a/fastapi-python-web-apis/README.md b/fastapi-python-web-apis/README.md new file mode 100644 index 0000000000..9a66b1ba53 --- /dev/null +++ b/fastapi-python-web-apis/README.md @@ -0,0 +1,15 @@ +# A Close Look at a FastAPI Example Application + +This repository contains the code snippets from the tutorial [A Close Look at a FastAPI Example Application](https://realpython.com/fastapi-python-web-apis/). + +## Installation + +The recommended way to install FastAPI is with the `[standard]` extra dependencies. This ensures you get all the tools you need for developing an API, without having to hunt down additional packages later: + +```console +$ python -m pip install "fastapi[standard]" +``` + +The quotes around `"fastapi[standard]"` ensure the command works correctly across different [terminals](https://realpython.com/terminal-commands/) and operating systems. With the command above, you install several useful packages, including the [FastAPI CLI](https://fastapi.tiangolo.com/fastapi-cli/) and [uvicorn](https://www.uvicorn.org/), an ASGI server for running your application. + +You can also use the `requirements.txt` file in this folder and run `python -m pip install -r requirements.txt` to install the standard dependencies of FastAPI. diff --git a/fastapi-python-web-apis/main.py b/fastapi-python-web-apis/main.py new file mode 100644 index 0000000000..a2df370b53 --- /dev/null +++ b/fastapi-python-web-apis/main.py @@ -0,0 +1,173 @@ +import random +from typing import Annotated + +from fastapi import FastAPI, HTTPException, Query +from fastapi.middleware.cors import CORSMiddleware +from pydantic import BaseModel, Field + +tags_metadata = [ + { + "name": "Random Playground", + "description": "Generate random numbers", + }, + { + "name": "Random Items Management", + "description": "Create, shuffle, read, update and delete items", + }, +] + +app = FastAPI( + title="Randomizer API", + description="Shuffle lists, pick random items, generate random numbers.", + version="1.0.0", + openapi_tags=tags_metadata, +) + +app.add_middleware( + CORSMiddleware, + allow_origins=["http://localhost:3000", "https://example.com"], + allow_credentials=True, + allow_methods=["GET", "POST", "PUT", "DELETE"], + allow_headers=["*"], +) + +items_db = [] + + +class Item(BaseModel): + name: str = Field( + min_length=1, max_length=100, description="The item name" + ) + + +class ItemResponse(BaseModel): + message: str + item: str + + +class ItemListResponse(BaseModel): + original_order: list[str] + randomized_order: list[str] + count: int + + +class ItemUpdateResponse(BaseModel): + message: str + old_item: str + new_item: str + + +class ItemDeleteResponse(BaseModel): + message: str + deleted_item: str + remaining_items_count: int + + +@app.get("/", tags=["Random Playground"]) +def home(): + return {"message": "Welcome to the Randomizer API"} + + +@app.get("/random/{max_value}", tags=["Random Playground"]) +def get_random_number(max_value: int): + return {"max": max_value, "random_number": random.randint(1, max_value)} + + +@app.get("/random-between", tags=["Random Playground"]) +def get_random_number_between( + min_value: Annotated[ + int, + Query( + title="Minimum Value", + description="The minimum random number", + ge=1, + le=1000, + ), + ] = 1, + max_value: Annotated[ + int, + Query( + title="Maximum Value", + description="The maximum random number", + ge=1, + le=1000, + ), + ] = 99, +): + if min_value > max_value: + raise HTTPException( + status_code=400, detail="min_value can't be greater than max_value" + ) + + return { + "min": min_value, + "max": max_value, + "random_number": random.randint(min_value, max_value), + } + + +@app.post( + "/items", response_model=ItemResponse, tags=["Random Items Management"] +) +def add_item(item: Item): + if item.name in items_db: + raise HTTPException(status_code=400, detail="Item already exists") + + items_db.append(item.name) + return ItemResponse(message="Item added successfully", item=item.name) + + +@app.get( + "/items", response_model=ItemListResponse, tags=["Random Items Management"] +) +def get_randomized_items(): + randomized = items_db.copy() + random.shuffle(randomized) + + return ItemListResponse( + original_order=items_db, + randomized_order=randomized, + count=len(items_db), + ) + + +@app.put( + "/items/{update_item_name}", + response_model=ItemUpdateResponse, + tags=["Random Items Management"], +) +def update_item(update_item_name: str, item: Item): + if update_item_name not in items_db: + raise HTTPException(status_code=404, detail="Item not found") + + if item.name in items_db: + raise HTTPException( + status_code=409, detail="An item with that name already exists" + ) + + index = items_db.index(update_item_name) + items_db[index] = item.name + + return ItemUpdateResponse( + message="Item updated successfully", + old_item=update_item_name, + new_item=item.name, + ) + + +@app.delete( + "/items/{item}", + response_model=ItemDeleteResponse, + tags=["Random Items Management"], +) +def delete_item(item: str): + if item not in items_db: + raise HTTPException(status_code=404, detail="Item not found") + + items_db.remove(item) + + return ItemDeleteResponse( + message="Item deleted successfully", + deleted_item=item, + remaining_items_count=len(items_db), + ) diff --git a/fastapi-python-web-apis/requirements.txt b/fastapi-python-web-apis/requirements.txt new file mode 100644 index 0000000000..18bb9c3a92 --- /dev/null +++ b/fastapi-python-web-apis/requirements.txt @@ -0,0 +1,39 @@ +annotated-types==0.7.0 +anyio==4.11.0 +certifi==2025.10.5 +click==8.3.0 +dnspython==2.8.0 +email-validator==2.3.0 +fastapi==0.119.0 +fastapi-cli==0.0.13 +fastapi-cloud-cli==0.3.1 +h11==0.16.0 +httpcore==1.0.9 +httptools==0.7.1 +httpx==0.28.1 +idna==3.11 +Jinja2==3.1.6 +markdown-it-py==4.0.0 +MarkupSafe==3.0.3 +mdurl==0.1.2 +pydantic==2.12.3 +pydantic_core==2.41.4 +Pygments==2.19.2 +python-dotenv==1.1.1 +python-multipart==0.0.20 +PyYAML==6.0.3 +rich==14.2.0 +rich-toolkit==0.15.1 +rignore==0.7.1 +sentry-sdk==2.42.0 +shellingham==1.5.4 +sniffio==1.3.1 +starlette==0.48.0 +typer==0.19.2 +typing-inspection==0.4.2 +typing_extensions==4.15.0 +urllib3==2.5.0 +uvicorn==0.38.0 +uvloop==0.22.1 +watchfiles==1.1.1 +websockets==15.0.1 diff --git a/fastapi-url-shortener/source_code_final/shortener_app/main.py b/fastapi-url-shortener/source_code_final/shortener_app/main.py index 65bcad7f55..84fa1ea688 100644 --- a/fastapi-url-shortener/source_code_final/shortener_app/main.py +++ b/fastapi-url-shortener/source_code_final/shortener_app/main.py @@ -1,9 +1,9 @@ import validators -from fastapi.responses import RedirectResponse from sqlalchemy.orm import Session from starlette.datastructures import URL from fastapi import Depends, FastAPI, HTTPException, Request +from fastapi.responses import RedirectResponse from . import crud, models, schemas from .config import get_settings diff --git a/fastapi-url-shortener/source_code_step_2/shortener_app/main.py b/fastapi-url-shortener/source_code_step_2/shortener_app/main.py index 922bab4652..5f68a9cea2 100644 --- a/fastapi-url-shortener/source_code_step_2/shortener_app/main.py +++ b/fastapi-url-shortener/source_code_step_2/shortener_app/main.py @@ -1,10 +1,10 @@ import secrets import validators -from fastapi.responses import RedirectResponse from sqlalchemy.orm import Session from fastapi import Depends, FastAPI, HTTPException, Request +from fastapi.responses import RedirectResponse from . import models, schemas from .database import SessionLocal, engine diff --git a/fastapi-url-shortener/source_code_step_3/shortener_app/main.py b/fastapi-url-shortener/source_code_step_3/shortener_app/main.py index 13fe20a246..85d9e74cbb 100644 --- a/fastapi-url-shortener/source_code_step_3/shortener_app/main.py +++ b/fastapi-url-shortener/source_code_step_3/shortener_app/main.py @@ -1,8 +1,8 @@ import validators -from fastapi.responses import RedirectResponse from sqlalchemy.orm import Session from fastapi import Depends, FastAPI, HTTPException, Request +from fastapi.responses import RedirectResponse from . import crud, models, schemas from .database import SessionLocal, engine diff --git a/flask-database/board/__init__.py b/flask-database/board/__init__.py index db21ae316d..3d76ef3f0a 100644 --- a/flask-database/board/__init__.py +++ b/flask-database/board/__init__.py @@ -1,10 +1,9 @@ import os +from board import database, pages, posts from dotenv import load_dotenv from flask import Flask -from board import database, pages, posts - load_dotenv() diff --git a/flask-database/board/posts.py b/flask-database/board/posts.py index e090cefac7..5b7dfa4383 100644 --- a/flask-database/board/posts.py +++ b/flask-database/board/posts.py @@ -1,12 +1,5 @@ -from flask import ( - Blueprint, - redirect, - render_template, - request, - url_for, -) - from board.database import get_db +from flask import Blueprint, redirect, render_template, request, url_for bp = Blueprint("posts", __name__) diff --git a/flask-logging/board/__init__.py b/flask-logging/board/__init__.py index 0e1adf00d6..31aedf9278 100644 --- a/flask-logging/board/__init__.py +++ b/flask-logging/board/__init__.py @@ -1,15 +1,9 @@ import os +from board import database, errors, pages, posts from dotenv import load_dotenv from flask import Flask -from board import ( - database, - errors, - pages, - posts, -) - load_dotenv() diff --git a/flask-logging/board/posts.py b/flask-logging/board/posts.py index 40c0c756c3..b8afe49dda 100644 --- a/flask-logging/board/posts.py +++ b/flask-logging/board/posts.py @@ -1,3 +1,4 @@ +from board.database import get_db from flask import ( Blueprint, current_app, @@ -8,8 +9,6 @@ url_for, ) -from board.database import get_db - bp = Blueprint("posts", __name__) diff --git a/flask-project/board/__init__.py b/flask-project/board/__init__.py index f58a5cf330..c6a2fb2ed8 100644 --- a/flask-project/board/__init__.py +++ b/flask-project/board/__init__.py @@ -1,6 +1,5 @@ -from flask import Flask - from board import pages +from flask import Flask def create_app(): diff --git a/intro-to-bokeh/code-snippets/bokeh-template.py b/intro-to-bokeh/code-snippets/bokeh-template.py index cb5aa9b3f9..35391023f1 100644 --- a/intro-to-bokeh/code-snippets/bokeh-template.py +++ b/intro-to-bokeh/code-snippets/bokeh-template.py @@ -4,16 +4,17 @@ visualization using Bokeh. """ +import numpy as np # noqa + # Data handling import pandas as pd # noqa -import numpy as np # noqa # Bokeh libraries from bokeh.io import output_file, output_notebook -from bokeh.plotting import figure, show +from bokeh.layouts import column, gridplot, row # noqa from bokeh.models import ColumnDataSource # noqa -from bokeh.layouts import row, column, gridplot # noqa -from bokeh.models.widgets import Tabs, Panel # noqa +from bokeh.models.widgets import Panel, Tabs # noqa +from bokeh.plotting import figure, show # Prepare the data diff --git a/nlp-sentiment-analysis/sentiment_analyzer.py b/nlp-sentiment-analysis/sentiment_analyzer.py index c29c58beb9..986679b747 100644 --- a/nlp-sentiment-analysis/sentiment_analyzer.py +++ b/nlp-sentiment-analysis/sentiment_analyzer.py @@ -2,9 +2,9 @@ import random import pandas as pd -from spacy.util import compounding, minibatch import spacy +from spacy.util import compounding, minibatch TEST_REVIEW = """ Transcendently beautiful in moments outside the office, it seems almost diff --git a/pyproject.toml b/pyproject.toml index 73a3b776ad..5844cb3150 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [tool.ruff] -target-version = "py313" +target-version = "py314" line-length = 79 exclude = [ ".devcontainers", @@ -8,5 +8,9 @@ exclude = [ ] [tool.ruff.lint] -select = ["E", "F", "I", "RUF100"] -ignore = ["E501"] +select = ["E", "F", "RUF100"] +ignore = ["E501", "I"] + +[tool.ruff.lint.isort] +force-sort-within-sections = true + diff --git a/python-311/dead_imghdr.py b/python-311/dead_imghdr.py index 1f0b06a5f4..72d0b52e19 100644 --- a/python-311/dead_imghdr.py +++ b/python-311/dead_imghdr.py @@ -1,4 +1,5 @@ import imghdr + import magic print(imghdr.what("python-311.jpg")) diff --git a/python-313/free-threading-jit/benchmarks/pyfeatures.py b/python-313/free-threading-jit/benchmarks/pyfeatures.py index c685e0d8e4..995680f84d 100644 --- a/python-313/free-threading-jit/benchmarks/pyfeatures.py +++ b/python-313/free-threading-jit/benchmarks/pyfeatures.py @@ -1,8 +1,9 @@ -import _testinternalcapi import abc import sys import sysconfig +import _testinternalcapi + class Feature(abc.ABC): def __init__(self, name: str) -> None: diff --git a/python-313/free-threading-jit/benchmarks/uops.py b/python-313/free-threading-jit/benchmarks/uops.py index 37539aadca..4df65c94b9 100644 --- a/python-313/free-threading-jit/benchmarks/uops.py +++ b/python-313/free-threading-jit/benchmarks/uops.py @@ -1,6 +1,6 @@ -import _opcode import dis +import _opcode from pyinfo import print_details diff --git a/python-annotations/linked_list.py b/python-annotations/linked_list.py index 4438ec1e8f..3c39180257 100644 --- a/python-annotations/linked_list.py +++ b/python-annotations/linked_list.py @@ -4,10 +4,10 @@ @dataclass class LinkedList: - head: Node # noqa + head: Node @dataclass class Node: value: Any - next: Optional[Node] = None # noqa + next: Optional[Node] = None diff --git a/python-contact-book/source_code_step_1/rpcontacts/views.py b/python-contact-book/source_code_step_1/rpcontacts/views.py index 37d02e966b..9b43fcd4b3 100644 --- a/python-contact-book/source_code_step_1/rpcontacts/views.py +++ b/python-contact-book/source_code_step_1/rpcontacts/views.py @@ -2,11 +2,7 @@ """This module provides views to manage the contacts table.""" -from PyQt5.QtWidgets import ( - QHBoxLayout, - QMainWindow, - QWidget, -) +from PyQt5.QtWidgets import QHBoxLayout, QMainWindow, QWidget class Window(QMainWindow): diff --git a/python-guitar-synthesizer/source_code_final/src/digitar/burst.py b/python-guitar-synthesizer/source_code_final/src/digitar/burst.py index 253fd8b8f5..5b3f80f964 100644 --- a/python-guitar-synthesizer/source_code_final/src/digitar/burst.py +++ b/python-guitar-synthesizer/source_code_final/src/digitar/burst.py @@ -2,7 +2,6 @@ from typing import Protocol import numpy as np - from digitar.temporal import Hertz diff --git a/python-guitar-synthesizer/source_code_final/src/digitar/synthesis.py b/python-guitar-synthesizer/source_code_final/src/digitar/synthesis.py index 230c980d9a..9d556a65b5 100644 --- a/python-guitar-synthesizer/source_code_final/src/digitar/synthesis.py +++ b/python-guitar-synthesizer/source_code_final/src/digitar/synthesis.py @@ -4,7 +4,6 @@ from typing import Iterator, Sequence import numpy as np - from digitar.burst import BurstGenerator, WhiteNoise from digitar.chord import Chord from digitar.instrument import PluckedStringInstrument diff --git a/python-guitar-synthesizer/source_code_final/src/digitar/track.py b/python-guitar-synthesizer/source_code_final/src/digitar/track.py index 1cb977e311..7fa6087545 100644 --- a/python-guitar-synthesizer/source_code_final/src/digitar/track.py +++ b/python-guitar-synthesizer/source_code_final/src/digitar/track.py @@ -1,5 +1,4 @@ import numpy as np - from digitar.temporal import Hertz, Time diff --git a/python-guitar-synthesizer/source_code_final/src/tablature/player.py b/python-guitar-synthesizer/source_code_final/src/tablature/player.py index 41bab06042..a94b44312d 100644 --- a/python-guitar-synthesizer/source_code_final/src/tablature/player.py +++ b/python-guitar-synthesizer/source_code_final/src/tablature/player.py @@ -14,7 +14,6 @@ from digitar.temporal import MeasuredTimeline, Time from digitar.track import AudioTrack from pedalboard.io import AudioFile - from tablature import models SAMPLING_RATE = 44100 diff --git a/python-guitar-synthesizer/source_code_step_2/src/digitar/burst.py b/python-guitar-synthesizer/source_code_step_2/src/digitar/burst.py index 3b2aad909b..6c0f60806f 100644 --- a/python-guitar-synthesizer/source_code_step_2/src/digitar/burst.py +++ b/python-guitar-synthesizer/source_code_step_2/src/digitar/burst.py @@ -1,7 +1,6 @@ from typing import Protocol import numpy as np - from digitar.temporal import Hertz diff --git a/python-guitar-synthesizer/source_code_step_2/src/digitar/synthesis.py b/python-guitar-synthesizer/source_code_step_2/src/digitar/synthesis.py index 1c2659393a..383db74371 100644 --- a/python-guitar-synthesizer/source_code_step_2/src/digitar/synthesis.py +++ b/python-guitar-synthesizer/source_code_step_2/src/digitar/synthesis.py @@ -3,7 +3,6 @@ from typing import Iterator import numpy as np - from digitar.burst import BurstGenerator, WhiteNoise from digitar.processing import normalize, remove_dc from digitar.temporal import Hertz, Time diff --git a/python-guitar-synthesizer/source_code_step_3/src/digitar/burst.py b/python-guitar-synthesizer/source_code_step_3/src/digitar/burst.py index 3b2aad909b..6c0f60806f 100644 --- a/python-guitar-synthesizer/source_code_step_3/src/digitar/burst.py +++ b/python-guitar-synthesizer/source_code_step_3/src/digitar/burst.py @@ -1,7 +1,6 @@ from typing import Protocol import numpy as np - from digitar.temporal import Hertz diff --git a/python-guitar-synthesizer/source_code_step_3/src/digitar/synthesis.py b/python-guitar-synthesizer/source_code_step_3/src/digitar/synthesis.py index 93c7c6ba15..3d2dc90b88 100644 --- a/python-guitar-synthesizer/source_code_step_3/src/digitar/synthesis.py +++ b/python-guitar-synthesizer/source_code_step_3/src/digitar/synthesis.py @@ -3,7 +3,6 @@ from typing import Iterator, Sequence import numpy as np - from digitar.burst import BurstGenerator, WhiteNoise from digitar.processing import normalize, remove_dc from digitar.temporal import Hertz, Time diff --git a/python-guitar-synthesizer/source_code_step_4/src/digitar/burst.py b/python-guitar-synthesizer/source_code_step_4/src/digitar/burst.py index 3b2aad909b..6c0f60806f 100644 --- a/python-guitar-synthesizer/source_code_step_4/src/digitar/burst.py +++ b/python-guitar-synthesizer/source_code_step_4/src/digitar/burst.py @@ -1,7 +1,6 @@ from typing import Protocol import numpy as np - from digitar.temporal import Hertz diff --git a/python-guitar-synthesizer/source_code_step_4/src/digitar/synthesis.py b/python-guitar-synthesizer/source_code_step_4/src/digitar/synthesis.py index b8537f8304..402418caee 100644 --- a/python-guitar-synthesizer/source_code_step_4/src/digitar/synthesis.py +++ b/python-guitar-synthesizer/source_code_step_4/src/digitar/synthesis.py @@ -4,7 +4,6 @@ from typing import Iterator, Sequence import numpy as np - from digitar.burst import BurstGenerator, WhiteNoise from digitar.chord import Chord from digitar.instrument import PluckedStringInstrument diff --git a/python-guitar-synthesizer/source_code_step_5/src/digitar/burst.py b/python-guitar-synthesizer/source_code_step_5/src/digitar/burst.py index 3b2aad909b..6c0f60806f 100644 --- a/python-guitar-synthesizer/source_code_step_5/src/digitar/burst.py +++ b/python-guitar-synthesizer/source_code_step_5/src/digitar/burst.py @@ -1,7 +1,6 @@ from typing import Protocol import numpy as np - from digitar.temporal import Hertz diff --git a/python-guitar-synthesizer/source_code_step_5/src/digitar/synthesis.py b/python-guitar-synthesizer/source_code_step_5/src/digitar/synthesis.py index b8537f8304..402418caee 100644 --- a/python-guitar-synthesizer/source_code_step_5/src/digitar/synthesis.py +++ b/python-guitar-synthesizer/source_code_step_5/src/digitar/synthesis.py @@ -4,7 +4,6 @@ from typing import Iterator, Sequence import numpy as np - from digitar.burst import BurstGenerator, WhiteNoise from digitar.chord import Chord from digitar.instrument import PluckedStringInstrument diff --git a/python-guitar-synthesizer/source_code_step_5/src/digitar/track.py b/python-guitar-synthesizer/source_code_step_5/src/digitar/track.py index 1cb977e311..7fa6087545 100644 --- a/python-guitar-synthesizer/source_code_step_5/src/digitar/track.py +++ b/python-guitar-synthesizer/source_code_step_5/src/digitar/track.py @@ -1,5 +1,4 @@ import numpy as np - from digitar.temporal import Hertz, Time diff --git a/python-guitar-synthesizer/source_code_step_6/src/digitar/burst.py b/python-guitar-synthesizer/source_code_step_6/src/digitar/burst.py index 3b2aad909b..6c0f60806f 100644 --- a/python-guitar-synthesizer/source_code_step_6/src/digitar/burst.py +++ b/python-guitar-synthesizer/source_code_step_6/src/digitar/burst.py @@ -1,7 +1,6 @@ from typing import Protocol import numpy as np - from digitar.temporal import Hertz diff --git a/python-guitar-synthesizer/source_code_step_6/src/digitar/synthesis.py b/python-guitar-synthesizer/source_code_step_6/src/digitar/synthesis.py index b8537f8304..402418caee 100644 --- a/python-guitar-synthesizer/source_code_step_6/src/digitar/synthesis.py +++ b/python-guitar-synthesizer/source_code_step_6/src/digitar/synthesis.py @@ -4,7 +4,6 @@ from typing import Iterator, Sequence import numpy as np - from digitar.burst import BurstGenerator, WhiteNoise from digitar.chord import Chord from digitar.instrument import PluckedStringInstrument diff --git a/python-guitar-synthesizer/source_code_step_6/src/digitar/track.py b/python-guitar-synthesizer/source_code_step_6/src/digitar/track.py index 1cb977e311..7fa6087545 100644 --- a/python-guitar-synthesizer/source_code_step_6/src/digitar/track.py +++ b/python-guitar-synthesizer/source_code_step_6/src/digitar/track.py @@ -1,5 +1,4 @@ import numpy as np - from digitar.temporal import Hertz, Time diff --git a/python-guitar-synthesizer/source_code_step_7/src/digitar/burst.py b/python-guitar-synthesizer/source_code_step_7/src/digitar/burst.py index 3b2aad909b..6c0f60806f 100644 --- a/python-guitar-synthesizer/source_code_step_7/src/digitar/burst.py +++ b/python-guitar-synthesizer/source_code_step_7/src/digitar/burst.py @@ -1,7 +1,6 @@ from typing import Protocol import numpy as np - from digitar.temporal import Hertz diff --git a/python-guitar-synthesizer/source_code_step_7/src/digitar/synthesis.py b/python-guitar-synthesizer/source_code_step_7/src/digitar/synthesis.py index b8537f8304..402418caee 100644 --- a/python-guitar-synthesizer/source_code_step_7/src/digitar/synthesis.py +++ b/python-guitar-synthesizer/source_code_step_7/src/digitar/synthesis.py @@ -4,7 +4,6 @@ from typing import Iterator, Sequence import numpy as np - from digitar.burst import BurstGenerator, WhiteNoise from digitar.chord import Chord from digitar.instrument import PluckedStringInstrument diff --git a/python-guitar-synthesizer/source_code_step_7/src/digitar/track.py b/python-guitar-synthesizer/source_code_step_7/src/digitar/track.py index 1cb977e311..7fa6087545 100644 --- a/python-guitar-synthesizer/source_code_step_7/src/digitar/track.py +++ b/python-guitar-synthesizer/source_code_step_7/src/digitar/track.py @@ -1,5 +1,4 @@ import numpy as np - from digitar.temporal import Hertz, Time diff --git a/python-guitar-synthesizer/source_code_step_7/src/tablature/player.py b/python-guitar-synthesizer/source_code_step_7/src/tablature/player.py index 41bab06042..a94b44312d 100644 --- a/python-guitar-synthesizer/source_code_step_7/src/tablature/player.py +++ b/python-guitar-synthesizer/source_code_step_7/src/tablature/player.py @@ -14,7 +14,6 @@ from digitar.temporal import MeasuredTimeline, Time from digitar.track import AudioTrack from pedalboard.io import AudioFile - from tablature import models SAMPLING_RATE = 44100 diff --git a/python-maze-solver/source_code_final/src/maze_solver/graphs/converter.py b/python-maze-solver/source_code_final/src/maze_solver/graphs/converter.py index 32822d4908..e2193a8360 100644 --- a/python-maze-solver/source_code_final/src/maze_solver/graphs/converter.py +++ b/python-maze-solver/source_code_final/src/maze_solver/graphs/converter.py @@ -2,7 +2,6 @@ from typing import NamedTuple, TypeAlias import networkx as nx - from maze_solver.models.border import Border from maze_solver.models.maze import Maze from maze_solver.models.role import Role diff --git a/python-maze-solver/source_code_final/src/maze_solver/graphs/solver.py b/python-maze-solver/source_code_final/src/maze_solver/graphs/solver.py index 6af63f0dff..b2afbb8a1b 100644 --- a/python-maze-solver/source_code_final/src/maze_solver/graphs/solver.py +++ b/python-maze-solver/source_code_final/src/maze_solver/graphs/solver.py @@ -1,5 +1,4 @@ import networkx as nx - from maze_solver.graphs.converter import make_graph from maze_solver.models.maze import Maze from maze_solver.models.solution import Solution diff --git a/python-microservices-with-grpc/marketplace/recommendations_pb2.py b/python-microservices-with-grpc/marketplace/recommendations_pb2.py index aa32349cdf..3e6a993c51 100644 --- a/python-microservices-with-grpc/marketplace/recommendations_pb2.py +++ b/python-microservices-with-grpc/marketplace/recommendations_pb2.py @@ -3,11 +3,11 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: recommendations.proto -from google.protobuf.internal import enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message from google.protobuf import reflection as _reflection from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import enum_type_wrapper # @@protoc_insertion_point(imports) diff --git a/python-microservices-with-grpc/marketplace/recommendations_pb2_grpc.py b/python-microservices-with-grpc/marketplace/recommendations_pb2_grpc.py index aacce64836..f7b5d0a624 100644 --- a/python-microservices-with-grpc/marketplace/recommendations_pb2_grpc.py +++ b/python-microservices-with-grpc/marketplace/recommendations_pb2_grpc.py @@ -1,7 +1,6 @@ # flake8: noqa # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! import grpc - import recommendations_pb2 as recommendations__pb2 diff --git a/python-microservices-with-grpc/recommendations/recommendations_pb2.py b/python-microservices-with-grpc/recommendations/recommendations_pb2.py index aa32349cdf..3e6a993c51 100644 --- a/python-microservices-with-grpc/recommendations/recommendations_pb2.py +++ b/python-microservices-with-grpc/recommendations/recommendations_pb2.py @@ -3,11 +3,11 @@ # Generated by the protocol buffer compiler. DO NOT EDIT! # source: recommendations.proto -from google.protobuf.internal import enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message from google.protobuf import reflection as _reflection from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import enum_type_wrapper # @@protoc_insertion_point(imports) diff --git a/python-microservices-with-grpc/recommendations/recommendations_pb2_grpc.py b/python-microservices-with-grpc/recommendations/recommendations_pb2_grpc.py index aacce64836..f7b5d0a624 100644 --- a/python-microservices-with-grpc/recommendations/recommendations_pb2_grpc.py +++ b/python-microservices-with-grpc/recommendations/recommendations_pb2_grpc.py @@ -1,7 +1,6 @@ # flake8: noqa # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! import grpc - import recommendations_pb2 as recommendations__pb2 diff --git a/python-selenium/src/bandcamp/app/player.py b/python-selenium/src/bandcamp/app/player.py index f5cebe6ea2..e965e47054 100644 --- a/python-selenium/src/bandcamp/app/player.py +++ b/python-selenium/src/bandcamp/app/player.py @@ -1,8 +1,7 @@ +from bandcamp.web.pages import DiscoverPage from selenium.webdriver import Firefox from selenium.webdriver.firefox.options import Options -from bandcamp.web.pages import DiscoverPage - BANDCAMP_DISCOVER_URL = "https://bandcamp.com/discover/" diff --git a/python-selenium/src/bandcamp/web/elements.py b/python-selenium/src/bandcamp/web/elements.py index a1a43275da..7de9155b3f 100644 --- a/python-selenium/src/bandcamp/web/elements.py +++ b/python-selenium/src/bandcamp/web/elements.py @@ -1,11 +1,10 @@ +from bandcamp.web.base import Track, WebComponent +from bandcamp.web.locators import TrackListLocator, TrackLocator from selenium.common.exceptions import NoSuchElementException from selenium.webdriver.remote.webdriver import WebDriver from selenium.webdriver.remote.webelement import WebElement from selenium.webdriver.support import expected_conditions as EC -from bandcamp.web.base import Track, WebComponent -from bandcamp.web.locators import TrackListLocator, TrackLocator - class TrackListElement(WebComponent): """Model the track list on Bandcamp's Discover page.""" diff --git a/python-selenium/src/bandcamp/web/pages.py b/python-selenium/src/bandcamp/web/pages.py index f3a258dac2..6137b787f2 100644 --- a/python-selenium/src/bandcamp/web/pages.py +++ b/python-selenium/src/bandcamp/web/pages.py @@ -1,9 +1,8 @@ -from selenium.common.exceptions import NoSuchElementException -from selenium.webdriver.remote.webdriver import WebDriver - from bandcamp.web.base import WebPage from bandcamp.web.elements import TrackListElement from bandcamp.web.locators import DiscoverPageLocator +from selenium.common.exceptions import NoSuchElementException +from selenium.webdriver.remote.webdriver import WebDriver class DiscoverPage(WebPage): diff --git a/python-sqlite-sqlalchemy/project/build_data/build_author_book_publisher_sqlite.py b/python-sqlite-sqlalchemy/project/build_data/build_author_book_publisher_sqlite.py index b18d3d94b5..49a1f92735 100644 --- a/python-sqlite-sqlalchemy/project/build_data/build_author_book_publisher_sqlite.py +++ b/python-sqlite-sqlalchemy/project/build_data/build_author_book_publisher_sqlite.py @@ -7,11 +7,10 @@ import os from importlib import resources +from project.modules.models import Author, Base, Book, Publisher from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker -from project.modules.models import Author, Base, Book, Publisher - def get_author_book_publisher_data(filepath): """ diff --git a/python-sqlite-sqlalchemy/project/examples/example_3/app/customers/routes.py b/python-sqlite-sqlalchemy/project/examples/example_3/app/customers/routes.py index 69003ae969..3fb2c4ea0f 100644 --- a/python-sqlite-sqlalchemy/project/examples/example_3/app/customers/routes.py +++ b/python-sqlite-sqlalchemy/project/examples/example_3/app/customers/routes.py @@ -1,8 +1,7 @@ -from flask import Blueprint, render_template -from sqlalchemy import desc, func - from app import db from app.models import Customer, Invoice +from flask import Blueprint, render_template +from sqlalchemy import desc, func # Setup the Blueprint customers_bp = Blueprint( diff --git a/python-sqlite-sqlalchemy/project/examples/example_3/app/employees/routes.py b/python-sqlite-sqlalchemy/project/examples/example_3/app/employees/routes.py index 13ee4c494f..964e61e74f 100644 --- a/python-sqlite-sqlalchemy/project/examples/example_3/app/employees/routes.py +++ b/python-sqlite-sqlalchemy/project/examples/example_3/app/employees/routes.py @@ -1,7 +1,6 @@ -from flask import Blueprint, render_template - from app import db from app.models import Employee +from flask import Blueprint, render_template # Setup the Blueprint employees_bp = Blueprint( diff --git a/python-sqlite-sqlalchemy/project/examples/example_3/app/invoices/routes.py b/python-sqlite-sqlalchemy/project/examples/example_3/app/invoices/routes.py index ddb0e4f0a8..3f66e2d778 100644 --- a/python-sqlite-sqlalchemy/project/examples/example_3/app/invoices/routes.py +++ b/python-sqlite-sqlalchemy/project/examples/example_3/app/invoices/routes.py @@ -1,7 +1,6 @@ -from flask import Blueprint, render_template - from app import db from app.models import Invoice +from flask import Blueprint, render_template # Setup the Blueprint invoices_bp = Blueprint( diff --git a/python-sqlite-sqlalchemy/project/examples/example_3/app/models.py b/python-sqlite-sqlalchemy/project/examples/example_3/app/models.py index adeca83b61..68c7967c41 100644 --- a/python-sqlite-sqlalchemy/project/examples/example_3/app/models.py +++ b/python-sqlite-sqlalchemy/project/examples/example_3/app/models.py @@ -1,8 +1,7 @@ # coding: utf-8 -from sqlalchemy.ext.hybrid import hybrid_property - from app import db +from sqlalchemy.ext.hybrid import hybrid_property class Artist(db.Model): diff --git a/python-sqlite-sqlalchemy/project/examples/example_3/app/playlists/routes.py b/python-sqlite-sqlalchemy/project/examples/example_3/app/playlists/routes.py index 4395e3625d..564455cbbc 100644 --- a/python-sqlite-sqlalchemy/project/examples/example_3/app/playlists/routes.py +++ b/python-sqlite-sqlalchemy/project/examples/example_3/app/playlists/routes.py @@ -1,7 +1,6 @@ -from flask import Blueprint, render_template - from app import db from app.models import Playlist +from flask import Blueprint, render_template # Setup the Blueprint playlists_bp = Blueprint( diff --git a/python-yaml/formatter/server.py b/python-yaml/formatter/server.py index b123716e2a..35cd3fb492 100644 --- a/python-yaml/formatter/server.py +++ b/python-yaml/formatter/server.py @@ -9,11 +9,11 @@ from typing import Optional import yaml -from fastapi.responses import HTMLResponse, JSONResponse -from fastapi.staticfiles import StaticFiles from pydantic import BaseModel from fastapi import FastAPI +from fastapi.responses import HTMLResponse, JSONResponse +from fastapi.staticfiles import StaticFiles TEST_DATA = { "person": { diff --git a/python313-preview-gil-jit/benchmarks/pyfeatures.py b/python313-preview-gil-jit/benchmarks/pyfeatures.py index c685e0d8e4..995680f84d 100644 --- a/python313-preview-gil-jit/benchmarks/pyfeatures.py +++ b/python313-preview-gil-jit/benchmarks/pyfeatures.py @@ -1,8 +1,9 @@ -import _testinternalcapi import abc import sys import sysconfig +import _testinternalcapi + class Feature(abc.ABC): def __init__(self, name: str) -> None: diff --git a/python313-preview-gil-jit/benchmarks/uops.py b/python313-preview-gil-jit/benchmarks/uops.py index 37539aadca..4df65c94b9 100644 --- a/python313-preview-gil-jit/benchmarks/uops.py +++ b/python313-preview-gil-jit/benchmarks/uops.py @@ -1,6 +1,6 @@ -import _opcode import dis +import _opcode from pyinfo import print_details diff --git a/requirements.txt b/requirements.txt index a2fd190def..59e562b965 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1 @@ -ruff==0.13.3 +ruff==0.14.1 diff --git a/rp-portfolio/pages/urls.py b/rp-portfolio/pages/urls.py index f3d3c3f3ac..56268a2247 100644 --- a/rp-portfolio/pages/urls.py +++ b/rp-portfolio/pages/urls.py @@ -1,5 +1,4 @@ from django.urls import path - from pages import views urlpatterns = [ diff --git a/rp-portfolio/projects/admin.py b/rp-portfolio/projects/admin.py index 00bf114fc7..0afa67bf68 100644 --- a/rp-portfolio/projects/admin.py +++ b/rp-portfolio/projects/admin.py @@ -1,5 +1,4 @@ from django.contrib import admin - from projects.models import Project diff --git a/rp-portfolio/projects/urls.py b/rp-portfolio/projects/urls.py index 387535f165..3bce1cbefb 100644 --- a/rp-portfolio/projects/urls.py +++ b/rp-portfolio/projects/urls.py @@ -1,5 +1,4 @@ from django.urls import path - from projects import views urlpatterns = [ diff --git a/rp-portfolio/projects/views.py b/rp-portfolio/projects/views.py index 7bd8cae49c..eb05a040b7 100644 --- a/rp-portfolio/projects/views.py +++ b/rp-portfolio/projects/views.py @@ -1,5 +1,4 @@ from django.shortcuts import render - from projects.models import Project diff --git a/spacy/examples.py b/spacy/examples.py index 1be70e873d..1a884121ba 100644 --- a/spacy/examples.py +++ b/spacy/examples.py @@ -3,12 +3,12 @@ from collections import Counter import textacy -from spacy.language import Language -from spacy.matcher import Matcher -from spacy.tokenizer import Tokenizer import spacy from spacy import displacy +from spacy.language import Language +from spacy.matcher import Matcher +from spacy.tokenizer import Tokenizer nlp = spacy.load("en_core_web_sm") diff --git a/torchaudio/speech.py b/torchaudio/speech.py index 68f403b292..106f89ba81 100644 --- a/torchaudio/speech.py +++ b/torchaudio/speech.py @@ -14,12 +14,12 @@ def replace(obj, **kwargs): from torch import Tensor, clamp, randn_like from torch.nn import functional as F from torch.utils.data import Dataset -from torchaudio.datasets import SPEECHCOMMANDS -from torchaudio.datasets.speechcommands import FOLDER_IN_ARCHIVE from tqdm import tqdm import torchaudio from torchaudio import functional as AF +from torchaudio.datasets import SPEECHCOMMANDS +from torchaudio.datasets.speechcommands import FOLDER_IN_ARCHIVE class SpeechSample(NamedTuple): diff --git a/typer-cli-python/source_code_final/rptodo/cli.py b/typer-cli-python/source_code_final/rptodo/cli.py index 9d97f4c38e..8fbf11a6b0 100644 --- a/typer-cli-python/source_code_final/rptodo/cli.py +++ b/typer-cli-python/source_code_final/rptodo/cli.py @@ -4,7 +4,6 @@ from typing import List, Optional import typer - from rptodo import ERRORS, __app_name__, __version__, config, database, rptodo app = typer.Typer() diff --git a/typer-cli-python/source_code_final/rptodo/config.py b/typer-cli-python/source_code_final/rptodo/config.py index 22d8a30467..f2df96a714 100644 --- a/typer-cli-python/source_code_final/rptodo/config.py +++ b/typer-cli-python/source_code_final/rptodo/config.py @@ -4,7 +4,6 @@ from pathlib import Path import typer - from rptodo import DB_WRITE_ERROR, DIR_ERROR, FILE_ERROR, SUCCESS, __app_name__ CONFIG_DIR_PATH = Path(typer.get_app_dir(__app_name__)) diff --git a/typer-cli-python/source_code_step_2/rptodo/cli.py b/typer-cli-python/source_code_step_2/rptodo/cli.py index f8918a0c05..19e49bee54 100644 --- a/typer-cli-python/source_code_step_2/rptodo/cli.py +++ b/typer-cli-python/source_code_step_2/rptodo/cli.py @@ -3,7 +3,6 @@ from typing import Optional import typer - from rptodo import __app_name__, __version__ app = typer.Typer() diff --git a/typer-cli-python/source_code_step_3/rptodo/cli.py b/typer-cli-python/source_code_step_3/rptodo/cli.py index 62a529d50e..0a427cb5d8 100644 --- a/typer-cli-python/source_code_step_3/rptodo/cli.py +++ b/typer-cli-python/source_code_step_3/rptodo/cli.py @@ -4,7 +4,6 @@ from typing import Optional import typer - from rptodo import ERRORS, __app_name__, __version__, config, database app = typer.Typer() diff --git a/typer-cli-python/source_code_step_3/rptodo/config.py b/typer-cli-python/source_code_step_3/rptodo/config.py index 22d8a30467..f2df96a714 100644 --- a/typer-cli-python/source_code_step_3/rptodo/config.py +++ b/typer-cli-python/source_code_step_3/rptodo/config.py @@ -4,7 +4,6 @@ from pathlib import Path import typer - from rptodo import DB_WRITE_ERROR, DIR_ERROR, FILE_ERROR, SUCCESS, __app_name__ CONFIG_DIR_PATH = Path(typer.get_app_dir(__app_name__)) diff --git a/typer-cli-python/source_code_step_4/rptodo/cli.py b/typer-cli-python/source_code_step_4/rptodo/cli.py index 62a529d50e..0a427cb5d8 100644 --- a/typer-cli-python/source_code_step_4/rptodo/cli.py +++ b/typer-cli-python/source_code_step_4/rptodo/cli.py @@ -4,7 +4,6 @@ from typing import Optional import typer - from rptodo import ERRORS, __app_name__, __version__, config, database app = typer.Typer() diff --git a/typer-cli-python/source_code_step_4/rptodo/config.py b/typer-cli-python/source_code_step_4/rptodo/config.py index 22d8a30467..f2df96a714 100644 --- a/typer-cli-python/source_code_step_4/rptodo/config.py +++ b/typer-cli-python/source_code_step_4/rptodo/config.py @@ -4,7 +4,6 @@ from pathlib import Path import typer - from rptodo import DB_WRITE_ERROR, DIR_ERROR, FILE_ERROR, SUCCESS, __app_name__ CONFIG_DIR_PATH = Path(typer.get_app_dir(__app_name__)) diff --git a/typer-cli-python/source_code_step_5/rptodo/cli.py b/typer-cli-python/source_code_step_5/rptodo/cli.py index 981f50f628..1463a0ad70 100644 --- a/typer-cli-python/source_code_step_5/rptodo/cli.py +++ b/typer-cli-python/source_code_step_5/rptodo/cli.py @@ -4,7 +4,6 @@ from typing import List, Optional import typer - from rptodo import ERRORS, __app_name__, __version__, config, database, rptodo app = typer.Typer() diff --git a/typer-cli-python/source_code_step_5/rptodo/config.py b/typer-cli-python/source_code_step_5/rptodo/config.py index 22d8a30467..f2df96a714 100644 --- a/typer-cli-python/source_code_step_5/rptodo/config.py +++ b/typer-cli-python/source_code_step_5/rptodo/config.py @@ -4,7 +4,6 @@ from pathlib import Path import typer - from rptodo import DB_WRITE_ERROR, DIR_ERROR, FILE_ERROR, SUCCESS, __app_name__ CONFIG_DIR_PATH = Path(typer.get_app_dir(__app_name__)) diff --git a/typer-cli-python/source_code_step_6/rptodo/cli.py b/typer-cli-python/source_code_step_6/rptodo/cli.py index dc292623c3..9afb9e3ad9 100644 --- a/typer-cli-python/source_code_step_6/rptodo/cli.py +++ b/typer-cli-python/source_code_step_6/rptodo/cli.py @@ -4,7 +4,6 @@ from typing import List, Optional import typer - from rptodo import ERRORS, __app_name__, __version__, config, database, rptodo app = typer.Typer() diff --git a/typer-cli-python/source_code_step_6/rptodo/config.py b/typer-cli-python/source_code_step_6/rptodo/config.py index 22d8a30467..f2df96a714 100644 --- a/typer-cli-python/source_code_step_6/rptodo/config.py +++ b/typer-cli-python/source_code_step_6/rptodo/config.py @@ -4,7 +4,6 @@ from pathlib import Path import typer - from rptodo import DB_WRITE_ERROR, DIR_ERROR, FILE_ERROR, SUCCESS, __app_name__ CONFIG_DIR_PATH = Path(typer.get_app_dir(__app_name__)) diff --git a/typer-cli-python/source_code_step_7/rptodo/cli.py b/typer-cli-python/source_code_step_7/rptodo/cli.py index 9d97f4c38e..8fbf11a6b0 100644 --- a/typer-cli-python/source_code_step_7/rptodo/cli.py +++ b/typer-cli-python/source_code_step_7/rptodo/cli.py @@ -4,7 +4,6 @@ from typing import List, Optional import typer - from rptodo import ERRORS, __app_name__, __version__, config, database, rptodo app = typer.Typer() diff --git a/typer-cli-python/source_code_step_7/rptodo/config.py b/typer-cli-python/source_code_step_7/rptodo/config.py index 22d8a30467..f2df96a714 100644 --- a/typer-cli-python/source_code_step_7/rptodo/config.py +++ b/typer-cli-python/source_code_step_7/rptodo/config.py @@ -4,7 +4,6 @@ from pathlib import Path import typer - from rptodo import DB_WRITE_ERROR, DIR_ERROR, FILE_ERROR, SUCCESS, __app_name__ CONFIG_DIR_PATH = Path(typer.get_app_dir(__app_name__)) diff --git a/web-scraping-with-scrapy-and-mongodb/books/books/spiders/book.py b/web-scraping-with-scrapy-and-mongodb/books/books/spiders/book.py index 4d670eb071..a184375532 100644 --- a/web-scraping-with-scrapy-and-mongodb/books/books/spiders/book.py +++ b/web-scraping-with-scrapy-and-mongodb/books/books/spiders/book.py @@ -1,5 +1,4 @@ import scrapy - from books.items import BooksItem diff --git a/wordcount/tests/realpython/view.py b/wordcount/tests/realpython/view.py index 3f35b717ba..785bf7bd18 100644 --- a/wordcount/tests/realpython/view.py +++ b/wordcount/tests/realpython/view.py @@ -4,8 +4,9 @@ from rich.console import Console, Group from rich.markdown import Markdown from rich.panel import Panel -from rich.progress import BarColumn, TextColumn +from rich.progress import BarColumn from rich.progress import Progress as ProgressBar +from rich.progress import TextColumn from rich.table import Table from rich.tree import Tree