1
0
Fork 0
mirror of https://github.com/yavook/kiwi-scp.git synced 2024-11-22 04:43:00 +00:00

move Projects class

This commit is contained in:
Jörn-Michael Miehe 2020-08-19 17:22:40 +02:00
parent bf5bed8734
commit e6f87277c6
5 changed files with 87 additions and 83 deletions

View file

@ -127,83 +127,3 @@ class Project:
return False return False
return True return True
class Projects:
__projects = None
def __getitem__(self, item):
return self.__projects[item]
def __str__(self):
return str([
project.get_name()
for project
in self.__projects
])
@classmethod
def from_names(cls, project_names):
result = cls()
result.__projects = [
Project(name)
for name in project_names if isinstance(name, str)
]
return result
@classmethod
def from_projects(cls, projects):
result = cls()
result.__projects = [
project
for project in projects if isinstance(project, Project)
]
return result
@classmethod
def from_dir(cls):
return cls.from_projects([
Project.from_file_name(file_name)
for file_name in os.listdir()
])
@classmethod
def from_args(cls, args):
if args is not None and 'projects' in args:
if isinstance(args.projects, list) and args.projects:
return cls.from_names(args.projects)
elif isinstance(args.projects, str):
return cls.from_names([args.projects])
return cls()
def empty(self):
return not self.__projects
def filter_exists(self):
result = Projects()
result.__projects = [
project
for project in self.__projects
if project.exists()
]
return result
def filter_enabled(self):
result = Projects()
result.__projects = [
project
for project in self.__projects
if project.is_enabled()
]
return result
def filter_disabled(self):
result = Projects()
result.__projects = [
project
for project in self.__projects
if project.is_disabled()
]
return result

83
src/kiwi/projects.py Normal file
View file

@ -0,0 +1,83 @@
import os
from kiwi.project import Project
class Projects:
__projects = None
def __getitem__(self, item):
return self.__projects[item]
def __str__(self):
return str([
project.get_name()
for project
in self.__projects
])
@classmethod
def from_names(cls, project_names):
result = cls()
result.__projects = [
Project(name)
for name in project_names if isinstance(name, str)
]
return result
@classmethod
def from_projects(cls, projects):
result = cls()
result.__projects = [
project
for project in projects if isinstance(project, Project)
]
return result
@classmethod
def from_dir(cls):
return cls.from_projects([
Project.from_file_name(file_name)
for file_name in os.listdir()
])
@classmethod
def from_args(cls, args):
if args is not None and 'projects' in args:
if isinstance(args.projects, list) and args.projects:
return cls.from_names(args.projects)
elif isinstance(args.projects, str):
return cls.from_names([args.projects])
return cls()
def empty(self):
return not self.__projects
def filter_exists(self):
result = Projects()
result.__projects = [
project
for project in self.__projects
if project.exists()
]
return result
def filter_enabled(self):
result = Projects()
result.__projects = [
project
for project in self.__projects
if project.is_enabled()
]
return result
def filter_disabled(self):
result = Projects()
result.__projects = [
project
for project in self.__projects
if project.is_disabled()
]
return result

View file

@ -4,7 +4,7 @@ import os
# local # local
from .parser import Parser from .parser import Parser
from .project import Projects from .projects import Projects
class SubCommand: class SubCommand:

View file

@ -6,7 +6,7 @@ import subprocess
from .._constants import CONF_DIRECTORY_NAME from .._constants import CONF_DIRECTORY_NAME
from ..subcommand import SubCommand from ..subcommand import SubCommand
from ..config import LoadedConfig from ..config import LoadedConfig
from ..project import Projects from ..projects import Projects
from ..rootkit import Rootkit, prefix_path_mnt from ..rootkit import Rootkit, prefix_path_mnt

View file

@ -5,7 +5,8 @@ import yaml
# local # local
from ..subcommand import ServiceCommand from ..subcommand import ServiceCommand
from ..project import Project, Projects from ..project import Project
from ..projects import Projects
def _print_list(strings): def _print_list(strings):