25
25
26
26
from __future__ import annotations
27
27
28
- from typing import TYPE_CHECKING , Any , Literal , TypedDict
28
+ from typing import TYPE_CHECKING , Any , Generator , Iterator , Literal , TypedDict
29
29
30
30
# Import from pygit2
31
31
from pygit2 import RemoteCallbacks
@@ -340,24 +340,24 @@ class RemoteCollection:
340
340
>>> repo.remotes["origin"]
341
341
"""
342
342
343
- def __init__ (self , repo : BaseRepository ):
343
+ def __init__ (self , repo : BaseRepository ) -> None :
344
344
self ._repo = repo
345
345
346
- def __len__ (self ):
346
+ def __len__ (self ) -> int :
347
347
with utils .new_git_strarray () as names :
348
348
err = C .git_remote_list (names , self ._repo ._repo )
349
349
check_error (err )
350
350
return names .count
351
351
352
- def __iter__ (self ):
352
+ def __iter__ (self ) -> Iterator [ Remote ] :
353
353
cremote = ffi .new ('git_remote **' )
354
354
for name in self ._ffi_names ():
355
355
err = C .git_remote_lookup (cremote , self ._repo ._repo , name )
356
356
check_error (err )
357
357
358
358
yield Remote (self ._repo , cremote [0 ])
359
359
360
- def __getitem__ (self , name ) :
360
+ def __getitem__ (self , name : str | int ) -> Remote :
361
361
if isinstance (name , int ):
362
362
return list (self )[name ]
363
363
@@ -374,12 +374,12 @@ def _ffi_names(self):
374
374
for i in range (names .count ):
375
375
yield names .strings [i ]
376
376
377
- def names (self ):
377
+ def names (self ) -> Generator [ str | None , None , None ] :
378
378
"""An iterator over the names of the available remotes."""
379
379
for name in self ._ffi_names ():
380
380
yield maybe_string (name )
381
381
382
- def create (self , name , url , fetch = None ) -> Remote :
382
+ def create (self , name : str , url : str , fetch : str | None = None ) -> Remote :
383
383
"""Create a new remote with the given name and url. Returns a <Remote>
384
384
object.
385
385
@@ -388,31 +388,31 @@ def create(self, name, url, fetch=None) -> Remote:
388
388
"""
389
389
cremote = ffi .new ('git_remote **' )
390
390
391
- name = to_bytes (name )
392
- url = to_bytes (url )
391
+ name_bytes = to_bytes (name )
392
+ url_bytes = to_bytes (url )
393
393
if fetch :
394
- fetch = to_bytes (fetch )
394
+ fetch_bytes = to_bytes (fetch )
395
395
err = C .git_remote_create_with_fetchspec (
396
- cremote , self ._repo ._repo , name , url , fetch
396
+ cremote , self ._repo ._repo , name_bytes , url_bytes , fetch_bytes
397
397
)
398
398
else :
399
- err = C .git_remote_create (cremote , self ._repo ._repo , name , url )
399
+ err = C .git_remote_create (cremote , self ._repo ._repo , name_bytes , url_bytes )
400
400
401
401
check_error (err )
402
402
403
403
return Remote (self ._repo , cremote [0 ])
404
404
405
- def create_anonymous (self , url ) :
405
+ def create_anonymous (self , url : str ) -> Remote :
406
406
"""Create a new anonymous (in-memory only) remote with the given URL.
407
407
Returns a <Remote> object.
408
408
"""
409
409
cremote = ffi .new ('git_remote **' )
410
- url = to_bytes (url )
411
- err = C .git_remote_create_anonymous (cremote , self ._repo ._repo , url )
410
+ url_bytes = to_bytes (url )
411
+ err = C .git_remote_create_anonymous (cremote , self ._repo ._repo , url_bytes )
412
412
check_error (err )
413
413
return Remote (self ._repo , cremote [0 ])
414
414
415
- def rename (self , name , new_name ) :
415
+ def rename (self , name : str , new_name : str ) -> list [ str ] :
416
416
"""Rename a remote in the configuration. The refspecs in standard
417
417
format will be renamed.
418
418
@@ -433,33 +433,33 @@ def rename(self, name, new_name):
433
433
check_error (err )
434
434
return strarray_to_strings (problems )
435
435
436
- def delete (self , name ) :
436
+ def delete (self , name : str ) -> None :
437
437
"""Remove a remote from the configuration
438
438
439
439
All remote-tracking branches and configuration settings for the remote will be removed.
440
440
"""
441
441
err = C .git_remote_delete (self ._repo ._repo , to_bytes (name ))
442
442
check_error (err )
443
443
444
- def set_url (self , name , url ) :
444
+ def set_url (self , name : str , url : str ) -> None :
445
445
"""Set the URL for a remote"""
446
446
err = C .git_remote_set_url (self ._repo ._repo , to_bytes (name ), to_bytes (url ))
447
447
check_error (err )
448
448
449
- def set_push_url (self , name , url ) :
449
+ def set_push_url (self , name : str , url : str ) -> None :
450
450
"""Set the push-URL for a remote"""
451
451
err = C .git_remote_set_pushurl (self ._repo ._repo , to_bytes (name ), to_bytes (url ))
452
452
check_error (err )
453
453
454
- def add_fetch (self , name , refspec ) :
454
+ def add_fetch (self , name : str , refspec : str ) -> None :
455
455
"""Add a fetch refspec (str) to the remote"""
456
456
457
457
err = C .git_remote_add_fetch (
458
458
self ._repo ._repo , to_bytes (name ), to_bytes (refspec )
459
459
)
460
460
check_error (err )
461
461
462
- def add_push (self , name , refspec ) :
462
+ def add_push (self , name : str , refspec : str ) -> None :
463
463
"""Add a push refspec (str) to the remote"""
464
464
465
465
err = C .git_remote_add_push (self ._repo ._repo , to_bytes (name ), to_bytes (refspec ))
0 commit comments