mirror of
https://github.com/davidhalter/django-stubs.git
synced 2025-12-12 06:51:53 +08:00
* Fix CI
* Fix CI
* Fix CI
* Fix CI
* APply black
* APply black
* Fix mypy
* Fix mypy errors in django-stubs
* Fix format
* Fix plugin
* Do not patch builtins by default
* Fix mypy
* Only run mypy on 3.10 for now
* Only run mypy on 3.10 for now
* WHAT THE HELL
* Enable strict mode in mypy
* Enable strict mode in mypy
* Fix tests
* Fix tests
* Debug
* Debug
* Fix tests
* Fix tests
* Add TYPE_CHECKING debug
* Caching maybe?
* Caching maybe?
* Try explicit `${{ matrix.python-version }}`
* Remove debug
* Fix typing
* Finally
35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
import shutil
|
|
from typing import Optional, Union
|
|
|
|
from git.remote import RemoteProgress
|
|
from git.repo import Repo
|
|
|
|
from scripts.paths import DJANGO_SOURCE_DIRECTORY
|
|
|
|
|
|
class ProgressPrinter(RemoteProgress):
|
|
def line_dropped(self, line: str) -> None:
|
|
print(line)
|
|
|
|
def update(
|
|
self, op_code: int, cur_count: Union[str, float], max_count: Union[str, float, None] = None, message: str = ""
|
|
) -> None:
|
|
print(self._cur_line)
|
|
|
|
|
|
def checkout_django_branch(django_version: str, commit_sha: Optional[str]) -> Repo:
|
|
branch = f"stable/{django_version}.x"
|
|
if DJANGO_SOURCE_DIRECTORY.exists():
|
|
shutil.rmtree(DJANGO_SOURCE_DIRECTORY)
|
|
DJANGO_SOURCE_DIRECTORY.mkdir(exist_ok=True, parents=False)
|
|
repo = Repo.clone_from(
|
|
"https://github.com/django/django.git",
|
|
DJANGO_SOURCE_DIRECTORY,
|
|
progress=ProgressPrinter(), # type: ignore
|
|
branch=branch,
|
|
depth=100,
|
|
)
|
|
if commit_sha and repo.head.commit.hexsha != commit_sha:
|
|
repo.remote("origin").fetch(branch, progress=ProgressPrinter(), depth=100)
|
|
repo.git.checkout(branch)
|