From 31dd7660d91f8f3068267764fa4508dac76dca2a Mon Sep 17 00:00:00 2001 From: Norbert Szulc <norbert@icetek.io> Date: Thu, 15 Feb 2024 11:08:20 +0100 Subject: [PATCH] refactor(manager/pip-compile): Move generateMermaidGraph (#27311) --- lib/modules/manager/pip-compile/common.ts | 24 +--------------------- lib/modules/manager/pip-compile/extract.ts | 3 ++- lib/modules/manager/pip-compile/utils.ts | 19 +++++++++++++++++ 3 files changed, 22 insertions(+), 24 deletions(-) create mode 100644 lib/modules/manager/pip-compile/utils.ts diff --git a/lib/modules/manager/pip-compile/common.ts b/lib/modules/manager/pip-compile/common.ts index cef57dee2b..1847e10af9 100644 --- a/lib/modules/manager/pip-compile/common.ts +++ b/lib/modules/manager/pip-compile/common.ts @@ -7,11 +7,7 @@ import { ensureCacheDir } from '../../../util/fs'; import * as hostRules from '../../../util/host-rules'; import { regEx } from '../../../util/regex'; import type { PackageFileContent, UpdateArtifactsConfig } from '../types'; -import type { - DependencyBetweenFiles, - GetRegistryUrlVarsResult, - PipCompileArgs, -} from './types'; +import type { GetRegistryUrlVarsResult, PipCompileArgs } from './types'; export function getPythonConstraint( config: UpdateArtifactsConfig, @@ -217,24 +213,6 @@ function throwForUnknownOption(arg: string): void { throw new Error(`Option ${arg} not supported (yet)`); } -export function generateMermaidGraph( - depsBetweenFiles: DependencyBetweenFiles[], - lockFileArgs: Map<string, PipCompileArgs>, -): string { - const lockFiles = []; - for (const lockFile of lockFileArgs.keys()) { - // TODO: add extra args to the lock file ${extraArgs ? '\n' + extraArgs : ''} - // const extraArgs = pipCompileArgs.extra - // ?.map((v) => '--extra=' + v) - // .join('\n'); - lockFiles.push(` ${lockFile}[[${lockFile}]]`); - } - const edges = depsBetweenFiles.map(({ sourceFile, outputFile, type }) => { - return ` ${sourceFile} -${type === 'constraint' ? '.' : ''}-> ${outputFile}`; - }); - return `graph TD\n${lockFiles.join('\n')}\n${edges.join('\n')}`; -} - function buildRegistryUrl(url: string): URL | null { try { const ret = new URL(url); diff --git a/lib/modules/manager/pip-compile/extract.ts b/lib/modules/manager/pip-compile/extract.ts index 535e888b8f..c66750ac66 100644 --- a/lib/modules/manager/pip-compile/extract.ts +++ b/lib/modules/manager/pip-compile/extract.ts @@ -3,12 +3,13 @@ import { readLocalFile } from '../../../util/fs'; import { extractPackageFile as extractRequirementsFile } from '../pip_requirements/extract'; import { extractPackageFile as extractSetupPyFile } from '../pip_setup'; import type { ExtractConfig, PackageFile, PackageFileContent } from '../types'; -import { extractHeaderCommand, generateMermaidGraph } from './common'; +import { extractHeaderCommand } from './common'; import type { DependencyBetweenFiles, PipCompileArgs, SupportedManagers, } from './types'; +import { generateMermaidGraph } from './utils'; function matchManager(filename: string): SupportedManagers | 'unknown' { if (filename.endsWith('setup.py')) { diff --git a/lib/modules/manager/pip-compile/utils.ts b/lib/modules/manager/pip-compile/utils.ts new file mode 100644 index 0000000000..347fe4f24d --- /dev/null +++ b/lib/modules/manager/pip-compile/utils.ts @@ -0,0 +1,19 @@ +import type { DependencyBetweenFiles, PipCompileArgs } from './types'; + +export function generateMermaidGraph( + depsBetweenFiles: DependencyBetweenFiles[], + lockFileArgs: Map<string, PipCompileArgs>, +): string { + const lockFiles = []; + for (const lockFile of lockFileArgs.keys()) { + // TODO: add extra args to the lock file ${extraArgs ? '\n' + extraArgs : ''} + // const extraArgs = pipCompileArgs.extra + // ?.map((v) => '--extra=' + v) + // .join('\n'); + lockFiles.push(` ${lockFile}[[${lockFile}]]`); + } + const edges = depsBetweenFiles.map(({ sourceFile, outputFile, type }) => { + return ` ${sourceFile} -${type === 'constraint' ? '.' : ''}-> ${outputFile}`; + }); + return `graph TD\n${lockFiles.join('\n')}\n${edges.join('\n')}`; +} -- GitLab