This commit is contained in:
2021-03-14 14:47:53 +01:00
parent 7ffd553709
commit c41e3c0d78
32 changed files with 101 additions and 64 deletions

View File

@@ -15,7 +15,7 @@ __title__ = 'sh_cpl.cpl_cli'
__author__ = 'Sven Heidemann'
__license__ = 'MIT'
__copyright__ = 'Copyright (c) 2020 - 2021 sh-edraft.de'
__version__ = '2021.4.1.post2'
__version__ = '2021.4.1'
from collections import namedtuple
@@ -29,4 +29,4 @@ from .main import main
from .startup import Startup
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
version_info = VersionInfo(major='2021', minor='04', micro='01-2')
version_info = VersionInfo(major='2021', minor='04', micro='01')

View File

@@ -15,7 +15,7 @@ __title__ = 'cpl_cli.command'
__author__ = 'Sven Heidemann'
__license__ = 'MIT'
__copyright__ = 'Copyright (c) 2020 - 2021 sh-edraft.de'
__version__ = '2021.4.1.post2'
__version__ = '2021.4.1'
from collections import namedtuple
@@ -28,4 +28,4 @@ from .publish_service import PublishService
from .version_service import VersionService
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
version_info = VersionInfo(major='2021', minor='04', micro='01-2')
version_info = VersionInfo(major='2021', minor='04', micro='01')

View File

@@ -2,6 +2,8 @@ import json
import os
import subprocess
from packaging import version
from cpl.application import ApplicationRuntimeABC
from cpl.configuration import ConfigurationABC
from cpl.console.console import Console
@@ -63,7 +65,9 @@ class InstallService(CommandABC):
ProjectSettingsNameEnum.license_name.value: project.license_name,
ProjectSettingsNameEnum.license_description.value: project.license_description,
ProjectSettingsNameEnum.dependencies.value: project.dependencies,
ProjectSettingsNameEnum.python_version.value: project.python_version
ProjectSettingsNameEnum.python_version.value: project.python_version,
ProjectSettingsNameEnum.python_path.value: project.python_path,
ProjectSettingsNameEnum.classifiers.value: project.classifiers
}
@staticmethod
@@ -93,24 +97,51 @@ class InstallService(CommandABC):
Error.error('Found invalid dependencies in cpl.json.')
return
old_package = Pip.get_package(package)
package_version = ''
name = ''
if '==' in package:
name = package.split('==')[0]
package_version = package.split('==')[1]
to_remove_list = []
for dependency in project.dependencies:
dependency_version = ''
if '==' in dependency:
dependency_version = dependency.split('==')[1]
if version.parse(package_version) != version.parse(dependency_version):
to_remove_list.append(dependency)
break
if package in dependency:
is_already_in_project = True
if old_package is not None and old_package in project.dependencies or is_already_in_project:
Error.warn(f'Package {old_package} is already installed.')
for to_remove in to_remove_list:
project.dependencies.remove(to_remove)
local_package = Pip.get_package(package)
if local_package is not None and local_package in project.dependencies:
Error.warn(f'Package {local_package} is already installed.')
return
elif is_already_in_project:
Error.warn(f'Package {package} is already installed.')
return
Console.spinner(
f'Installing: {package}',
Pip.install, package,
source='https://pip.sh-edraft.de' if 'sh_cpl' in package else None,
stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL,
text_foreground_color=ForegroundColorEnum.green,
spinner_foreground_color=ForegroundColorEnum.cyan
)
new_package = Pip.get_package(name)
if new_package is None:
Console.error(f'Installation of package {package} failed')
return
if not is_already_in_project:
new_package = Pip.get_package(package)

View File

@@ -15,7 +15,7 @@ __title__ = 'cpl_cli.configuration'
__author__ = 'Sven Heidemann'
__license__ = 'MIT'
__copyright__ = 'Copyright (c) 2020 - 2021 sh-edraft.de'
__version__ = '2021.4.1.post2'
__version__ = '2021.4.1'
from collections import namedtuple
@@ -28,4 +28,4 @@ from .version_settings import VersionSettings
from .version_settings_name_enum import VersionSettingsNameEnum
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
version_info = VersionInfo(major='2021', minor='04', micro='01-2')
version_info = VersionInfo(major='2021', minor='04', micro='01')

View File

@@ -8,6 +8,7 @@ from cpl.console.console import Console
from cpl.console.foreground_color_enum import ForegroundColorEnum
from cpl_cli.configuration.version_settings import VersionSettings
from cpl_cli.configuration.project_settings_name_enum import ProjectSettingsNameEnum
from cpl_cli.error import Error
class ProjectSettings(ConfigurationModelABC):
@@ -107,11 +108,16 @@ class ProjectSettings(ConfigurationModelABC):
self._dependencies = settings[ProjectSettingsNameEnum.dependencies.value]
self._python_version = settings[ProjectSettingsNameEnum.python_version.value]
path = os.path.abspath(settings[ProjectSettingsNameEnum.python_path.value])
if os.path.isfile(path) or os.path.islink(path):
path = os.path.abspath(path)
if ProjectSettingsNameEnum.python_path.value in settings:
path = os.path.abspath(settings[ProjectSettingsNameEnum.python_path.value])
if os.path.isfile(path) or os.path.islink(path):
path = os.path.abspath(path)
else:
path = sys.executable
Error.warn(f'{ProjectSettingsNameEnum.python_path.value} not found')
else:
path = sys.executable
Error.warn(f'{ProjectSettingsNameEnum.python_path.value} not found')
self._python_path = path

View File

@@ -15,11 +15,11 @@ __title__ = 'cpl_cli.live_server'
__author__ = 'Sven Heidemann'
__license__ = 'MIT'
__copyright__ = 'Copyright (c) 2020 - 2021 sh-edraft.de'
__version__ = '2021.4.1.post2'
__version__ = '2021.4.1'
from collections import namedtuple
# imports:
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
version_info = VersionInfo(major='2021', minor='04', micro='01-2')
version_info = VersionInfo(major='2021', minor='04', micro='01')

View File

@@ -15,7 +15,7 @@ __title__ = 'cpl_cli.publish'
__author__ = 'Sven Heidemann'
__license__ = 'MIT'
__copyright__ = 'Copyright (c) 2020 - 2021 sh-edraft.de'
__version__ = '2021.4.1.post2'
__version__ = '2021.4.1'
from collections import namedtuple
@@ -24,4 +24,4 @@ from .publisher_abc import PublisherABC
from .publisher_service import PublisherService
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
version_info = VersionInfo(major='2021', minor='04', micro='01-2')
version_info = VersionInfo(major='2021', minor='04', micro='01')

View File

@@ -317,4 +317,4 @@ class PublisherService(PublisherABC):
Console.spinner('Generating setup.py:', self._create_setup, text_foreground_color=ForegroundColorEnum.green, spinner_foreground_color=ForegroundColorEnum.blue)
Console.write_line('Running setup.py:\n')
self._run_setup()
Console.spinner('Cleaning dist path:', self._clean_dist_files)
Console.spinner('Cleaning dist path:', self._clean_dist_files, text_foreground_color=ForegroundColorEnum.green, spinner_foreground_color=ForegroundColorEnum.blue)

View File

@@ -15,11 +15,11 @@ __title__ = 'cpl_cli.templates'
__author__ = 'Sven Heidemann'
__license__ = 'MIT'
__copyright__ = 'Copyright (c) 2020 - 2021 sh-edraft.de'
__version__ = '2021.4.1.post2'
__version__ = '2021.4.1'
from collections import namedtuple
# imports:
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
version_info = VersionInfo(major='2021', minor='04', micro='01-2')
version_info = VersionInfo(major='2021', minor='04', micro='01')

View File

@@ -15,11 +15,11 @@ __title__ = 'cpl_cli.templates.build'
__author__ = 'Sven Heidemann'
__license__ = 'MIT'
__copyright__ = 'Copyright (c) 2020 - 2021 sh-edraft.de'
__version__ = '2021.4.1.post2'
__version__ = '2021.4.1'
from collections import namedtuple
# imports:
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
version_info = VersionInfo(major='2021', minor='04', micro='01-2')
version_info = VersionInfo(major='2021', minor='04', micro='01')

View File

@@ -15,11 +15,11 @@ __title__ = 'cpl_cli.templates.generate'
__author__ = 'Sven Heidemann'
__license__ = 'MIT'
__copyright__ = 'Copyright (c) 2020 - 2021 sh-edraft.de'
__version__ = '2021.4.1.post2'
__version__ = '2021.4.1'
from collections import namedtuple
# imports:
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
version_info = VersionInfo(major='2021', minor='04', micro='01-2')
version_info = VersionInfo(major='2021', minor='04', micro='01')

View File

@@ -15,11 +15,11 @@ __title__ = 'cpl_cli.templates.new'
__author__ = 'Sven Heidemann'
__license__ = 'MIT'
__copyright__ = 'Copyright (c) 2020 - 2021 sh-edraft.de'
__version__ = '2021.4.1.post2'
__version__ = '2021.4.1'
from collections import namedtuple
# imports:
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
version_info = VersionInfo(major='2021', minor='04', micro='01-2')
version_info = VersionInfo(major='2021', minor='04', micro='01')

View File

@@ -15,11 +15,11 @@ __title__ = 'cpl_cli.templates.new.console'
__author__ = 'Sven Heidemann'
__license__ = 'MIT'
__copyright__ = 'Copyright (c) 2020 - 2021 sh-edraft.de'
__version__ = '2021.4.1.post2'
__version__ = '2021.4.1'
from collections import namedtuple
# imports:
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
version_info = VersionInfo(major='2021', minor='04', micro='01-2')
version_info = VersionInfo(major='2021', minor='04', micro='01')

View File

@@ -15,11 +15,11 @@ __title__ = 'cpl_cli.templates.new.console.src'
__author__ = 'Sven Heidemann'
__license__ = 'MIT'
__copyright__ = 'Copyright (c) 2020 - 2021 sh-edraft.de'
__version__ = '2021.4.1.post2'
__version__ = '2021.4.1'
from collections import namedtuple
# imports:
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
version_info = VersionInfo(major='2021', minor='04', micro='01-2')
version_info = VersionInfo(major='2021', minor='04', micro='01')

View File

@@ -15,11 +15,11 @@ __title__ = 'cpl_cli.templates.new.console.src.tests'
__author__ = 'Sven Heidemann'
__license__ = 'MIT'
__copyright__ = 'Copyright (c) 2020 - 2021 sh-edraft.de'
__version__ = '2021.4.1.post2'
__version__ = '2021.4.1'
from collections import namedtuple
# imports:
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
version_info = VersionInfo(major='2021', minor='04', micro='01-2')
version_info = VersionInfo(major='2021', minor='04', micro='01')

View File

@@ -15,11 +15,11 @@ __title__ = 'cpl_cli.templates.publish'
__author__ = 'Sven Heidemann'
__license__ = 'MIT'
__copyright__ = 'Copyright (c) 2020 - 2021 sh-edraft.de'
__version__ = '2021.4.1.post2'
__version__ = '2021.4.1'
from collections import namedtuple
# imports:
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
version_info = VersionInfo(major='2021', minor='04', micro='01-2')
version_info = VersionInfo(major='2021', minor='04', micro='01')