Skip to content

Commit

Permalink
add ignored std
Browse files Browse the repository at this point in the history
  • Loading branch information
StardustDL committed Feb 5, 2024
1 parent 395c54c commit 5355198
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 21 deletions.
20 changes: 12 additions & 8 deletions index/processor.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ def __init__(
@cached_property
def workerVersion(self):
return self.worker.version()

def hasDone(self, type: str, id: str):
return f"{type}:{id}" in self.db.data

Expand Down Expand Up @@ -145,6 +145,7 @@ def pair(self, pair: ReleasePair):

def getReleases(self, project: str):
from .release import single

return single(project)

def package(self, project: str):
Expand Down Expand Up @@ -183,18 +184,20 @@ def package(self, project: str):
self.index(project)

def index(self, project: str):
from .release import pair, sortedVersions
from .release import pair, sortedReleases

env.logger.info(f"Index package {project}")

releases = self.getReleases(project)
releases = sortedReleases(self.getReleases(project))
env.logger.info(f"Find {len(releases)} releases: {releases}")

distributions = list(self.dist.distributions(project))
apis = list(self.dist.apis(project))
pairs = list(pair(sortedVersions(apis)))
changes = list(self.dist.changes(project))
reports = list(self.dist.reports(project))
distributions = sortedReleases(self.dist.distributions(project))
apis = sortedReleases(self.dist.apis(project))
pairs = list(pair(apis))
doneChanges = {str(x) for x in self.dist.changes(project)}
doneReports = {str(x) for x in self.dist.reports(project)}
changes = [x for x in pairs if x in doneChanges]
reports = [x for x in pairs if x in doneReports]

projectDir = self.dist.projectDir(project)
utils.ensureDirectory(projectDir)
Expand All @@ -219,6 +222,7 @@ def packages(self, *projects: str):
self.package(project)
else:
from .std import StdProcessor

std = StdProcessor(self.db, self.dist)
std.package(project)
doneProjects.append(project)
Expand Down
14 changes: 8 additions & 6 deletions index/release.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from datetime import datetime
import functools
from typing import Any, Callable
from typing import Any, Callable, Iterable
import requests
from . import env
import json
Expand Down Expand Up @@ -60,14 +60,16 @@ def compareVersion(a, b):
else:
return 0

def sortedVersions(releases: list[Release]):
versions = releases.copy()

def sortedReleases(releases: Iterable[Release]):
origin = list(releases)
versions = origin.copy()
try:
versions.sort(
key=functools.cmp_to_key(lambda x, y: compareVersion(x.version, y.version))
)
except Exception as ex:
versions = releases.copy()
versions = origin.copy()
env.logger.error(
f"Failed to sort versions by packaging.version: {versions}", exc_info=ex
)
Expand All @@ -78,7 +80,7 @@ def sortedVersions(releases: list[Release]):
)
)
except Exception as ex:
versions = releases.copy()
versions = origin.copy()
env.logger.error(
f"Failed to sort versions by semver: {versions}", exc_info=ex
)
Expand All @@ -95,7 +97,7 @@ def single(project: str, filter: Callable[[Release], bool] | None = None):
continue
rels.append(rel)

return sortedVersions(rels)
return sortedReleases(rels)


def pair(releases: list[Release], filter: Callable[[ReleasePair], bool] | None = None):
Expand Down
21 changes: 14 additions & 7 deletions index/std.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,34 +19,39 @@
from .aexpyw import AexPyWorker
from . import env

IGNORED_MODULES = {"antigravity"}


def getTopModules(path: Path):
for p in path.glob("*"):
if p.stem.startswith("_") or "-" in p.stem:
if p.stem.startswith("_") or "-" in p.stem or p.stem in IGNORED_MODULES:
continue
yield p.stem


def removeMain(path: Path):
toRemove: list[Path] = []
for item, _, _ in path.walk():
for item in path.glob("**/__main__.py"):
if not item.is_file():
continue
if item.stem == "__main__" and item.suffix == ".py":
toRemove.append(item)
toRemove.append(item)
for item in toRemove:
os.remove(item)


class StdProcessor(Processor):
def __init__(self, db: ProcessDB, dist: DistPathBuilder) -> None:
super().__init__(AexPyWorker(), db, dist)
self.envBuilder = getExtractorEnvironmentBuilder()

@override
def version(self, release):
need = not self.hasDone(JOB_PREPROCESS, str(release)) or not self.hasDone(JOB_EXTRACT, str(release))
need = not self.hasDone(JOB_PREPROCESS, str(release)) or not self.hasDone(
JOB_EXTRACT, str(release)
)
if not need:
return

dis = self.cacheDist.preprocess(release)
api = self.cacheDist.extract(release)

Expand Down Expand Up @@ -84,7 +89,9 @@ def version(self, release):

@override
def pair(self, pair):
need = not self.hasDone(JOB_DIFF, str(pair)) or not self.hasDone(JOB_REPORT, str(pair))
need = not self.hasDone(JOB_DIFF, str(pair)) or not self.hasDone(
JOB_REPORT, str(pair)
)
if not need:
return

Expand Down

0 comments on commit 5355198

Please sign in to comment.