Added requirements.txt generator #70-1
This commit is contained in:
parent
3b9ef0048e
commit
7d4f3e9541
@ -21,6 +21,6 @@ class Application(ApplicationABC):
|
|||||||
def main(self):
|
def main(self):
|
||||||
Console.write_line('KDB Post-Build:')
|
Console.write_line('KDB Post-Build:')
|
||||||
Console.spinner(f'Removing unnecessary configs', self._remove_config.remove)
|
Console.spinner(f'Removing unnecessary configs', self._remove_config.remove)
|
||||||
# Console.spinner(f'Creating requirements file for pip', self._deps.create)
|
Console.spinner(f'Creating requirements file for pip', self._deps.create)
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,7 +1,64 @@
|
|||||||
|
import os
|
||||||
|
|
||||||
|
from cpl_cli.configuration import WorkspaceSettings, ProjectSettings, BuildSettings
|
||||||
|
from cpl_core.configuration import ConfigurationABC
|
||||||
|
from cpl_core.console import Console
|
||||||
|
from cpl_core.environment import ApplicationEnvironmentABC
|
||||||
|
|
||||||
|
from post_build.post_build_settings import PostBuildSettings
|
||||||
|
|
||||||
|
|
||||||
class Dependencies:
|
class Dependencies:
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(
|
||||||
pass
|
self,
|
||||||
|
config: ConfigurationABC,
|
||||||
|
env: ApplicationEnvironmentABC,
|
||||||
|
ws: WorkspaceSettings,
|
||||||
|
project: ProjectSettings,
|
||||||
|
build: BuildSettings,
|
||||||
|
post_build: PostBuildSettings
|
||||||
|
):
|
||||||
|
self._config = config
|
||||||
|
self._env = env
|
||||||
|
self._workspace = ws
|
||||||
|
self._project = project
|
||||||
|
self._build = build
|
||||||
|
self._post_build = post_build
|
||||||
|
|
||||||
|
self._dependencies = {}
|
||||||
|
|
||||||
|
def _add_dependencies(self, deps: list[str]):
|
||||||
|
for d in deps:
|
||||||
|
d_name = d
|
||||||
|
if '>=' in d:
|
||||||
|
d_name = d.split('>=')[0]
|
||||||
|
if '<=' in d:
|
||||||
|
d_name = d.split('<=')[0]
|
||||||
|
if '==' in d:
|
||||||
|
d_name = d.split('==')[0]
|
||||||
|
|
||||||
|
if d_name in self._dependencies:
|
||||||
|
continue
|
||||||
|
|
||||||
|
self._dependencies[d_name] = d
|
||||||
|
|
||||||
def create(self):
|
def create(self):
|
||||||
pass
|
dist_path = os.path.abspath(os.path.join(
|
||||||
|
self._env.working_directory,
|
||||||
|
os.path.dirname(self._workspace.projects[self._project.name]),
|
||||||
|
self._build.output_path,
|
||||||
|
self._project.name,
|
||||||
|
'build'
|
||||||
|
))
|
||||||
|
|
||||||
|
for project in self._workspace.projects:
|
||||||
|
project_file = os.path.join(self._env.working_directory, self._workspace.projects[project])
|
||||||
|
self._config.add_json_file(project_file, output=False, optional=False)
|
||||||
|
project: ProjectSettings = self._config.get_configuration(ProjectSettings)
|
||||||
|
self._add_dependencies(project.dependencies)
|
||||||
|
|
||||||
|
with open(f'{dist_path}/requirements.txt', 'w+', encoding='utf-8') as f:
|
||||||
|
for dependency in self._dependencies:
|
||||||
|
f.write(f'{self._dependencies[dependency]}\n')
|
||||||
|
f.close()
|
||||||
|
@ -9,7 +9,7 @@ from post_build.post_build_settings import PostBuildSettings
|
|||||||
|
|
||||||
class RemoveConfig:
|
class RemoveConfig:
|
||||||
|
|
||||||
def __init__(self, env: ApplicationEnvironmentABC, ws: WorkspaceSettings, project: ProjectSettings, build: BuildSettings, post_build: PostBuildSettings,):
|
def __init__(self, env: ApplicationEnvironmentABC, ws: WorkspaceSettings, project: ProjectSettings, build: BuildSettings, post_build: PostBuildSettings):
|
||||||
|
|
||||||
self._env = env
|
self._env = env
|
||||||
self._workspace = ws
|
self._workspace = ws
|
||||||
|
Loading…
Reference in New Issue
Block a user