Skip to content

Commit c1a8c21

Browse files
committed
prepare release
1 parent d3e5ae7 commit c1a8c21

33 files changed

+58
-237669
lines changed

.github/workflows/analisys.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
run: |
1616
python -m pip install --upgrade pip
1717
pip install -r requirements.txt
18-
pip install ruff==0.1.5
18+
pip install ruff==0.1.11
1919
- name: Analysing the code with ruff
2020
run: |
2121
ruff check .

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM python:3.12.0
1+
FROM python:3.12.1
22

33
WORKDIR /depex
44

app/main.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ async def lifespan(app: FastAPI) -> None:
4242
app = FastAPI(
4343
title="Depex",
4444
description=DESCRIPTION,
45-
version="0.6.1",
45+
version="0.6.2",
4646
contact={
4747
"name": "Antonio Germán Márquez Trujillo",
4848
"url": "https://github.com/GermanMT",

app/services/__init__.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
read_packages_by_requirement_file,
1818
relate_packages,
1919
update_package_moment,
20-
parent_depth
2120
)
2221
from .repository_service import (
2322
create_repository,
@@ -57,7 +56,6 @@
5756
"read_packages_by_requirement_file",
5857
"relate_packages",
5958
"update_package_moment",
60-
"parent_depth",
6159
"create_repository",
6260
"read_repositories_moment",
6361
"read_repositories",

app/services/package_service.py

Lines changed: 20 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -4,59 +4,18 @@
44
from .dbs.databases import get_graph_db_session
55

66

7-
async def parent_depth(new_req_file_id: str, package_name: str, package_manager: str) -> int:
8-
query = """
9-
match (rf:RequirementFile) where elementid(rf) = $new_req_file_id
10-
match (p:Package) where p.name = $package_name
11-
with shortestPath((rf)-[*..]->(p)) as p
12-
return length(p)
13-
"""
14-
session = get_graph_db_session(package_manager)
15-
result = await session.run(query, new_req_file_id=new_req_file_id, package_name=package_name)
16-
record = await result.single()
17-
return record[0] if record else None
18-
19-
20-
# async def create_package_and_versions(
21-
# package: dict[str, Any],
22-
# versions: list[dict[str, Any]],
23-
# package_manager: str,
24-
# ) -> list[dict[str, str]]:
25-
# query_part = f"{{name:$name,{"group_id:$group_id," if package_manager == "MVN" else ""}moment:$moment}}"
26-
# query = f"""
27-
# create(p:Package{query_part})
28-
# with p as package
29-
# unwind $versions as version
30-
# create(v:Version{{
31-
# name: version.name,
32-
# release_date: version.release_date,
33-
# count: version.count,
34-
# cves: version.cves,
35-
# mean: version.mean,
36-
# weighted_mean: version.weighted_mean
37-
# }})
38-
# create (package)-[rel_v:Have]->(v)
39-
# return collect({{name: v.name, id: elementid(v)}})
40-
# """
41-
# session = get_graph_db_session(package_manager)
42-
# result = await session.run(query, package, versions=versions)
43-
# record = await result.single()
44-
# return record[0] if record else None
45-
46-
477
async def create_package_and_versions_with_parent2(
488
package: dict[str, Any],
499
versions: list[dict[str, Any]],
5010
constraints: list[str] | str,
5111
parent_id: str,
5212
package_manager: str,
5313
) -> list[dict[str, str]]:
54-
query_part1 = f"{{name:$name,{"group_id:$group_id," if package_manager == "MVN" else ""}moment:$moment}}"
55-
query_part2 = f"{{name:$name,{"group_id:$group_id," if package_manager == "MVN" else ""}moment:$moment}}"
14+
query_part = f"{{name:$name,{"group_id:$group_id," if package_manager == "MVN" else ""}moment:$moment}}"
5615
query = f"""
5716
match (parent:RequirementFile|Version)
5817
where elementid(parent) = $parent_id
59-
create(p:Package{query_part1})
18+
create(p:Package{query_part})
6019
create (parent)-[rel_p:Requires{{constraints:$constraints}}]->(p)
6120
with p as package
6221
unwind $versions as version
@@ -85,14 +44,22 @@ async def create_package_and_versions(
8544
package_manager: str,
8645
constraints: str | None = None,
8746
parent_id: str | None = None,
88-
parent_version_name: str | None = None
47+
parent_version_name: str | None = None,
8948
) -> list[dict[str, str]]:
90-
query_part1 = ("""
49+
query_part1 = (
50+
"""
9151
match (parent:RequirementFile|Version)
9252
where elementid(parent) = $parent_id
93-
""" if parent_id else "")
53+
"""
54+
if parent_id
55+
else ""
56+
)
9457
query_part2 = f"{{name:$name,{"group_id:$group_id," if package_manager == "MVN" else ""}moment:$moment}}"
95-
query_part3 = f"create (parent)-[rel_p:Requires{{constraints:$constraints{", parent_version_name:$parent_version_name" if parent_version_name else ""}}}]->(p)" if parent_id else ""
58+
query_part3 = (
59+
f"create (parent)-[rel_p:Requires{{constraints:$constraints{", parent_version_name:$parent_version_name" if parent_version_name else ""}}}]->(p)"
60+
if parent_id
61+
else ""
62+
)
9663
query = f"""
9764
{query_part1}
9865
create(p:Package{query_part2})
@@ -112,7 +79,12 @@ async def create_package_and_versions(
11279
"""
11380
session = get_graph_db_session(package_manager)
11481
result = await session.run(
115-
query, package, constraints=constraints, parent_id=parent_id, parent_version_name=parent_version_name, versions=versions
82+
query,
83+
package,
84+
constraints=constraints,
85+
parent_id=parent_id,
86+
parent_version_name=parent_version_name,
87+
versions=versions,
11688
)
11789
record = await result.single()
11890
return record[0] if record else None
@@ -147,22 +119,6 @@ async def read_packages_by_requirement_file(
147119
return record[0] if record else None
148120

149121

150-
# TODO: Mejorar esta query
151-
# TODO: Probar nueva query transformación a smt
152-
# TODO: Probar algoritmo creación en anchura
153-
154-
# async def relate_packages2(packages: list[dict(str, str)], package_manager: str) -> None:
155-
# query = """
156-
# unwind keys($packages) as package
157-
# match (p:Package) where p.name = package.package_name
158-
# with p, package unwind $packages[package] as parent_id
159-
# match (parent:Version) where elementid(parent) = parent_id
160-
# create (parent)-[rel:Requires{constraints: package.constraints}]->(p:Package)
161-
# """
162-
# session = get_graph_db_session(package_manager)
163-
# await session.run(query, packages=packages)
164-
165-
166122
async def relate_packages(packages: list[dict[str, Any]], package_manager: str) -> None:
167123
query = """
168124
unwind $packages as package

app/services/repository_service.py

Lines changed: 11 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,11 @@ async def read_graph_for_info_operation(
121121
return {dependencies: size(deps), edges: size(rels), cves: apoc.coll.toSet(cves)}
122122
"""
123123
session = get_graph_db_session(package_manager)
124-
result = await session.run(query, requirement_file_id=requirement_file_id, max_level=max_level * 2 if max_level != -1 else max_level)
124+
result = await session.run(
125+
query,
126+
requirement_file_id=requirement_file_id,
127+
max_level=max_level * 2 if max_level != -1 else max_level,
128+
)
125129
record = await result.single()
126130
return record[0] if record else None
127131

@@ -148,52 +152,21 @@ async def read_data_for_smt_transform(
148152
count: endnode(relationship).count,
149153
mean: endnode(relationship).mean,
150154
weighted_mean: endnode(relationship).weighted_mean
151-
155+
152156
}
153157
end as have
154158
return {requires: apoc.coll.sortMaps(collect(requires), "parent_count"), have: apoc.map.groupByMulti(apoc.coll.sortMaps(collect(have), "count"), "dependency")}
155159
"""
156160
session = get_graph_db_session(package_manager)
157-
result = await session.run(query, requirement_file_id=requirement_file_id, max_level=max_level * 2 if max_level != -1 else max_level)
161+
result = await session.run(
162+
query,
163+
requirement_file_id=requirement_file_id,
164+
max_level=max_level * 2 if max_level != -1 else max_level,
165+
)
158166
record = await result.single()
159167
return record[0] if record else None
160168

161169

162-
# async def read_data_for_smt_transform(
163-
# requirement_file_id: str, package_manager: str, max_level: int
164-
# ) -> dict[str, Any]:
165-
# query = """
166-
# match (rf: RequirementFile) where elementid(rf) = $requirement_file_id
167-
# call apoc.path.subgraphAll(rf, {relationshipFilter: '>', maxLevel: $max_level}) yield relationships
168-
# unwind relationships as relationship
169-
# with case type(relationship)
170-
# when 'Requires' then {
171-
# parent_type: labels(startnode(relationship))[0],
172-
# parent_id: elementid(startnode(relationship)),
173-
# parent_name: startnode(relationship).name,
174-
# parent_count: startnode(relationship).count,
175-
# dependency: endnode(relationship).name,
176-
# constraints: relationship.constraints
177-
# }
178-
# end as requires,
179-
# case type(relationship)
180-
# when 'Have' then {
181-
# dependency: startnode(relationship).name,
182-
# id: elementid(endnode(relationship)),
183-
# release: endnode(relationship).name,
184-
# count: endnode(relationship).count,
185-
# mean: endnode(relationship).mean,
186-
# weighted_mean: endnode(relationship).weighted_mean
187-
# }
188-
# end as have
189-
# return {requires: collect(requires), have: collect(have)}
190-
# """
191-
# session = get_graph_db_session(package_manager)
192-
# result = await session.run(query, requirement_file_id=requirement_file_id, max_level=max_level * 2 if max_level != -1 else max_level)
193-
# record = await result.single()
194-
# return record[0] if record else None
195-
196-
197170
async def update_repository_is_complete(
198171
repository_id: str, is_complete: bool, package_manager: str
199172
) -> None:

app/utils/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@
1212
"mean",
1313
"weighted_mean",
1414
"parse_pip_constraints",
15-
"repo_analyzer"
15+
"repo_analyzer",
1616
]

cve.py

Lines changed: 0 additions & 102 deletions
This file was deleted.

0 commit comments

Comments
 (0)