Skip to content

Commit b82c3f9

Browse files
committed
release v0.2.0
2 parents 64e69ff + ae6e95a commit b82c3f9

5 files changed

Lines changed: 31 additions & 16 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ This repository encapsulates abstract classes and interfaces to simplify the pro
55
**Install**
66

77
``` bash
8-
poetry add git+https://github.com/Universal-code-metrics-analyzer/core.git@v0.1.0
8+
poetry add git+https://github.com/Universal-code-metrics-analyzer/core.git@v0.2.0
99
```
1010

1111
## Git processor plugin

core/git_processor.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
from abc import ABCMeta, abstractmethod
2+
from datetime import datetime
23
from typing import TYPE_CHECKING, Any
34

4-
from pydantic import BaseModel
5+
from pydantic import BaseModel, EmailStr
56

67

78
class GitProcessorConfigShape(BaseModel):
@@ -23,6 +24,14 @@ class TreeData(BaseModel):
2324
type: str = 'tree'
2425

2526

27+
class CommitMeta(BaseModel):
28+
author_email: EmailStr
29+
committer_email: EmailStr
30+
authored_date: datetime
31+
committed_date: datetime
32+
message: str
33+
34+
2635
class GitProcessor[ConfigShapeT: GitProcessorConfigShape, TreeT, BlobT](metaclass=ABCMeta):
2736
if TYPE_CHECKING:
2837
config_shape: type[ConfigShapeT]
@@ -37,9 +46,9 @@ def __init_subclass__(cls, **kwargs: Any) -> None:
3746

3847
setattr(cls, el, attr)
3948

40-
def __init__(self, config_dict: dict[str, Any], ref: str) -> None:
49+
def __init__(self, config_dict: dict[str, Any], sha: str) -> None:
4150
self.config = self.validate_config(config_dict)
42-
self.ref = ref
51+
self.sha = sha
4352

4453
def validate_config(self, config_dict: dict[str, Any]) -> ConfigShapeT:
4554
return self.config_shape.model_validate(config_dict)
@@ -60,3 +69,6 @@ async def process(self) -> TreeData:
6069
result = await self.process_tree(await self.get_root_tree(), 0)
6170
await self.cleanup()
6271
return result
72+
73+
async def get_commit_meta(self) -> CommitMeta:
74+
raise NotImplementedError

core/metrics_calculator.py

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,28 +15,22 @@ class MetricResult(BaseModel):
1515
subject_path: str
1616
value: float
1717
description: str | None = None
18-
19-
20-
class BlobMetricResult(MetricResult):
2118
result_scope: Literal['module'] | Literal['class'] | Literal['function']
19+
level: str | None = None
2220

2321

2422
class BlobMetrics(BaseModel):
2523
type: Literal['blob']
2624
name: str
2725
path: str
28-
metric_results: list[BlobMetricResult]
29-
30-
31-
class TreeMetricResult(MetricResult):
32-
result_scope: Literal['program'] | Literal['package']
26+
metric_results: list[MetricResult]
3327

3428

3529
class TreeMetrics(BaseModel):
3630
type: Literal['tree']
3731
name: str
3832
path: str
39-
metric_results: list[TreeMetricResult]
33+
metric_results: list[MetricResult]
4034
trees: list['TreeMetrics']
4135
blobs: list[BlobMetrics]
4236

core/report_generator.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33

44
from pydantic import BaseModel
55

6+
from core.git_processor import CommitMeta
7+
68
from .metrics_calculator import TreeMetrics
79

810

@@ -24,10 +26,17 @@ def __init_subclass__(cls, **kwargs: Any) -> None:
2426

2527
setattr(cls, el, attr)
2628

27-
def __init__(self, config_dict: dict[str, Any], tree_metrics: TreeMetrics, ref: str) -> None:
29+
def __init__(
30+
self,
31+
config_dict: dict[str, Any],
32+
sha: str,
33+
commit_meta: CommitMeta,
34+
tree_metrics: TreeMetrics,
35+
) -> None:
2836
self.config = self.validate_config(config_dict)
37+
self.sha = sha
38+
self.commit_meta = commit_meta
2939
self.tree_metrics = tree_metrics
30-
self.ref = ref
3140

3241
def validate_config(self, config_dict: dict[str, Any]) -> ConfigShapeT:
3342
return self.config_shape.model_validate(config_dict)

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "core"
3-
version = "0.1.0"
3+
version = "0.2.0"
44
description = ""
55
authors = ["Alex Pirogov <pirogovalexandr00@mail.ru>"]
66
readme = "README.md"

0 commit comments

Comments
 (0)