Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 4bedb05

Browse filesBrowse files
authored
Merge pull request #2015 from Andrej730/main
Use property decorator to support typing
2 parents 6d09bb6 + 94151aa commit 4bedb05
Copy full SHA for 4bedb05

File tree

2 files changed

+45
-36
lines changed
Filter options

2 files changed

+45
-36
lines changed

‎git/refs/symbolic.py

Copy file name to clipboardExpand all lines: git/refs/symbolic.py
+24-17Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
if TYPE_CHECKING:
4040
from git.config import GitConfigParser
4141
from git.objects.commit import Actor
42-
from git.refs import Head, TagReference, RemoteReference, Reference
4342
from git.refs.log import RefLogEntry
4443
from git.repo import Repo
4544

@@ -387,17 +386,23 @@ def set_object(
387386
# set the commit on our reference
388387
return self._get_reference().set_object(object, logmsg)
389388

390-
commit = property(
391-
_get_commit,
392-
set_commit, # type: ignore[arg-type]
393-
doc="Query or set commits directly",
394-
)
389+
@property
390+
def commit(self) -> "Commit":
391+
"""Query or set commits directly"""
392+
return self._get_commit()
393+
394+
@commit.setter
395+
def commit(self, commit: Union[Commit, "SymbolicReference", str]) -> "SymbolicReference":
396+
return self.set_commit(commit)
397+
398+
@property
399+
def object(self) -> AnyGitObject:
400+
"""Return the object our ref currently refers to"""
401+
return self._get_object()
395402

396-
object = property(
397-
_get_object,
398-
set_object, # type: ignore[arg-type]
399-
doc="Return the object our ref currently refers to",
400-
)
403+
@object.setter
404+
def object(self, object: Union[AnyGitObject, "SymbolicReference", str]) -> "SymbolicReference":
405+
return self.set_object(object)
401406

402407
def _get_reference(self) -> "SymbolicReference":
403408
"""
@@ -496,12 +501,14 @@ def set_reference(
496501
return self
497502

498503
# Aliased reference
499-
reference: Union["Head", "TagReference", "RemoteReference", "Reference"]
500-
reference = property( # type: ignore[assignment]
501-
_get_reference,
502-
set_reference, # type: ignore[arg-type]
503-
doc="Returns the Reference we point to",
504-
)
504+
@property
505+
def reference(self) -> "SymbolicReference":
506+
return self._get_reference()
507+
508+
@reference.setter
509+
def reference(self, ref: Union[AnyGitObject, "SymbolicReference", str]) -> "SymbolicReference":
510+
return self.set_reference(ref)
511+
505512
ref = reference
506513

507514
def is_valid(self) -> bool:

‎git/repo/base.py

Copy file name to clipboardExpand all lines: git/repo/base.py
+21-19Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -354,21 +354,19 @@ def __ne__(self, rhs: object) -> bool:
354354
def __hash__(self) -> int:
355355
return hash(self.git_dir)
356356

357-
# Description property
358-
def _get_description(self) -> str:
357+
@property
358+
def description(self) -> str:
359+
"""The project's description"""
359360
filename = osp.join(self.git_dir, "description")
360361
with open(filename, "rb") as fp:
361362
return fp.read().rstrip().decode(defenc)
362363

363-
def _set_description(self, descr: str) -> None:
364+
@description.setter
365+
def description(self, descr: str) -> None:
364366
filename = osp.join(self.git_dir, "description")
365367
with open(filename, "wb") as fp:
366368
fp.write((descr + "\n").encode(defenc))
367369

368-
description = property(_get_description, _set_description, doc="the project's description")
369-
del _get_description
370-
del _set_description
371-
372370
@property
373371
def working_tree_dir(self) -> Optional[PathLike]:
374372
"""
@@ -885,13 +883,14 @@ def _set_daemon_export(self, value: object) -> None:
885883
elif not value and fileexists:
886884
os.unlink(filename)
887885

888-
daemon_export = property(
889-
_get_daemon_export,
890-
_set_daemon_export,
891-
doc="If True, git-daemon may export this repository",
892-
)
893-
del _get_daemon_export
894-
del _set_daemon_export
886+
@property
887+
def daemon_export(self) -> bool:
888+
"""If True, git-daemon may export this repository"""
889+
return self._get_daemon_export()
890+
891+
@daemon_export.setter
892+
def daemon_export(self, value: object) -> None:
893+
self._set_daemon_export(value)
895894

896895
def _get_alternates(self) -> List[str]:
897896
"""The list of alternates for this repo from which objects can be retrieved.
@@ -929,11 +928,14 @@ def _set_alternates(self, alts: List[str]) -> None:
929928
with open(alternates_path, "wb") as f:
930929
f.write("\n".join(alts).encode(defenc))
931930

932-
alternates = property(
933-
_get_alternates,
934-
_set_alternates,
935-
doc="Retrieve a list of alternates paths or set a list paths to be used as alternates",
936-
)
931+
@property
932+
def alternates(self) -> List[str]:
933+
"""Retrieve a list of alternates paths or set a list paths to be used as alternates"""
934+
return self._get_alternates()
935+
936+
@alternates.setter
937+
def alternates(self, alts: List[str]) -> None:
938+
self._set_alternates(alts)
937939

938940
def is_dirty(
939941
self,

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.