Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 4 additions & 33 deletions lib/ramble/ramble/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,39 +49,24 @@
from llnl.util.filesystem import mkdirp, rename

import ramble.paths
import ramble.schema
import ramble.schema.applications
import ramble.schema.base_application_repos
import ramble.schema.base_class_repos
import ramble.schema.base_modifier_repos
import ramble.schema.base_package_manager_repos
import ramble.schema.base_platform_repos
import ramble.schema.base_system_repos
import ramble.schema.base_utility_repos
import ramble.schema.base_workflow_manager_repos
import ramble.schema.config
import ramble.schema.env_vars
import ramble.schema.filter_groups
import ramble.schema.formatted_executables
import ramble.schema.internals
import ramble.schema.licenses
import ramble.schema.mirrors
import ramble.schema.modifier_repos
import ramble.schema.modifiers
import ramble.schema.package_manager_repos
import ramble.schema.platform_repos

# Objects
import ramble.schema.repos
import ramble.schema.repo_schema
import ramble.schema.software
import ramble.schema.success_criteria
import ramble.schema.system_repos
import ramble.schema.tables
import ramble.schema.utility_repos
import ramble.schema.utilities
import ramble.schema.variables
import ramble.schema.variants
import ramble.schema.workflow_manager_repos
import ramble.schema.workspace
import ramble.schema.zips
from ramble.error import RambleError
from ramble.util import cpus
from ramble.util.logger import logger
Expand Down Expand Up @@ -110,21 +95,7 @@
"variants": ramble.schema.variants.schema,
"zips": ramble.schema.zips.schema,
"utilities": ramble.schema.utilities.schema,
"repos": ramble.schema.repos.schema,
"modifier_repos": ramble.schema.modifier_repos.schema,
"package_manager_repos": ramble.schema.package_manager_repos.schema,
"system_repos": ramble.schema.system_repos.schema,
"platform_repos": ramble.schema.platform_repos.schema,
"workflow_manager_repos": ramble.schema.workflow_manager_repos.schema,
"base_application_repos": ramble.schema.base_application_repos.schema,
"base_class_repos": ramble.schema.base_class_repos.schema,
"base_modifier_repos": ramble.schema.base_modifier_repos.schema,
"base_package_manager_repos": ramble.schema.base_package_manager_repos.schema,
"base_workflow_manager_repos": ramble.schema.base_workflow_manager_repos.schema,
"base_system_repos": ramble.schema.base_system_repos.schema,
"base_platform_repos": ramble.schema.base_platform_repos.schema,
"utility_repos": ramble.schema.utility_repos.schema,
"base_utility_repos": ramble.schema.base_utility_repos.schema,
**ramble.schema.repo_schema.schemas,
}

# Same as above, but including keys for workspaces
Expand Down
11 changes: 11 additions & 0 deletions lib/ramble/ramble/schema/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,3 +57,14 @@ def _deprecated_properties(validator, deprecated, instance, schema):


Validator = llnl.util.lang.Singleton(_make_validator)


def __getattr__(name: str):
import importlib

try:
return importlib.import_module(f"ramble.schema.{name}")
except ModuleNotFoundError as err:
if err.name == f"ramble.schema.{name}":
raise AttributeError(f"module 'ramble.schema' has no attribute '{name}'") from err
raise
21 changes: 6 additions & 15 deletions lib/ramble/ramble/schema/base_application_repos.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,12 @@
:lines: 13-
"""

#: Properties for inclusion in other schemas
properties = {
"base_application_repos": {
"type": "array",
"default": [],
"items": {"type": "string"},
},
}
from ramble.schema.repo_schema import make_repo_properties, make_repo_schema

section_name = "base_application_repos"

#: Properties for inclusion in other schemas
properties = make_repo_properties(section_name)

#: Full schema with metadata
schema = {
"$schema": "http://json-schema.org/schema#",
"title": "Ramble base application repository configuration file schema",
"type": "object",
"additionalProperties": False,
"properties": properties,
}
schema = make_repo_schema(section_name)
21 changes: 6 additions & 15 deletions lib/ramble/ramble/schema/base_class_repos.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,12 @@
:lines: 13-
"""

#: Properties for inclusion in other schemas
properties = {
"base_class_repos": {
"type": "array",
"default": [],
"items": {"type": "string"},
},
}
from ramble.schema.repo_schema import make_repo_properties, make_repo_schema

section_name = "base_class_repos"

#: Properties for inclusion in other schemas
properties = make_repo_properties(section_name)

#: Full schema with metadata
schema = {
"$schema": "http://json-schema.org/schema#",
"title": "Ramble base class repository configuration file schema",
"type": "object",
"additionalProperties": False,
"properties": properties,
}
schema = make_repo_schema(section_name)
21 changes: 6 additions & 15 deletions lib/ramble/ramble/schema/base_modifier_repos.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,12 @@
:lines: 13-
"""

#: Properties for inclusion in other schemas
properties = {
"base_modifier_repos": {
"type": "array",
"default": [],
"items": {"type": "string"},
},
}
from ramble.schema.repo_schema import make_repo_properties, make_repo_schema

section_name = "base_modifier_repos"

#: Properties for inclusion in other schemas
properties = make_repo_properties(section_name)

#: Full schema with metadata
schema = {
"$schema": "http://json-schema.org/schema#",
"title": "Ramble base modifier repository configuration file schema",
"type": "object",
"additionalProperties": False,
"properties": properties,
}
schema = make_repo_schema(section_name)
21 changes: 6 additions & 15 deletions lib/ramble/ramble/schema/base_package_manager_repos.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,12 @@
:lines: 13-
"""

#: Properties for inclusion in other schemas
properties = {
"base_package_manager_repos": {
"type": "array",
"default": [],
"items": {"type": "string"},
},
}
from ramble.schema.repo_schema import make_repo_properties, make_repo_schema

section_name = "base_package_manager_repos"

#: Properties for inclusion in other schemas
properties = make_repo_properties(section_name)

#: Full schema with metadata
schema = {
"$schema": "http://json-schema.org/schema#",
"title": "Ramble base package manager repository configuration file schema",
"type": "object",
"additionalProperties": False,
"properties": properties,
}
schema = make_repo_schema(section_name)
21 changes: 6 additions & 15 deletions lib/ramble/ramble/schema/base_platform_repos.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,12 @@
:lines: 13-
"""

#: Properties for inclusion in other schemas
properties = {
"base_platform_repos": {
"type": "array",
"default": [],
"items": {"type": "string"},
},
}
from ramble.schema.repo_schema import make_repo_properties, make_repo_schema

section_name = "base_platform_repos"

#: Properties for inclusion in other schemas
properties = make_repo_properties(section_name)

#: Full schema with metadata
schema = {
"$schema": "http://json-schema.org/schema#",
"title": "Ramble base platform repository configuration file schema",
"type": "object",
"additionalProperties": False,
"properties": properties,
}
schema = make_repo_schema(section_name)
21 changes: 6 additions & 15 deletions lib/ramble/ramble/schema/base_system_repos.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,12 @@
:lines: 13-
"""

#: Properties for inclusion in other schemas
properties = {
"base_system_repos": {
"type": "array",
"default": [],
"items": {"type": "string"},
},
}
from ramble.schema.repo_schema import make_repo_properties, make_repo_schema

section_name = "base_system_repos"

#: Properties for inclusion in other schemas
properties = make_repo_properties(section_name)

#: Full schema with metadata
schema = {
"$schema": "http://json-schema.org/schema#",
"title": "Ramble base system repository configuration file schema",
"type": "object",
"additionalProperties": False,
"properties": properties,
}
schema = make_repo_schema(section_name)
25 changes: 8 additions & 17 deletions lib/ramble/ramble/schema/base_utility_repos.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,27 +6,18 @@
# option. This file may not be copied, modified, or distributed
# except according to those terms.

"""Schema for repos.yaml configuration file.
"""Schema for base_utility_repos.yaml configuration file.

.. literalinclude:: _ramble_root/lib/ramble/ramble/schema/repos.py
.. literalinclude:: _ramble_root/lib/ramble/ramble/schema/base_utility_repos.py
:lines: 13-
"""

#: Properties for inclusion in other schemas
properties = {
"base_utility_repos": {
"type": "array",
"default": [],
"items": {"type": "string"},
},
}
from ramble.schema.repo_schema import make_repo_properties, make_repo_schema

section_name = "base_utility_repos"

#: Properties for inclusion in other schemas
properties = make_repo_properties(section_name)

#: Full schema with metadata
schema = {
"$schema": "http://json-schema.org/schema#",
"title": "Ramble repository configuration file schema",
"type": "object",
"additionalProperties": False,
"properties": properties,
}
schema = make_repo_schema(section_name)
21 changes: 6 additions & 15 deletions lib/ramble/ramble/schema/base_workflow_manager_repos.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,12 @@
:lines: 13-
"""

#: Properties for inclusion in other schemas
properties = {
"base_workflow_manager_repos": {
"type": "array",
"default": [],
"items": {"type": "string"},
},
}
from ramble.schema.repo_schema import make_repo_properties, make_repo_schema

section_name = "base_workflow_manager_repos"

#: Properties for inclusion in other schemas
properties = make_repo_properties(section_name)

#: Full schema with metadata
schema = {
"$schema": "http://json-schema.org/schema#",
"title": "Ramble base workflow manager repository configuration file schema",
"type": "object",
"additionalProperties": False,
"properties": properties,
}
schema = make_repo_schema(section_name)
38 changes: 7 additions & 31 deletions lib/ramble/ramble/schema/merged.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,66 +15,42 @@
from llnl.util.lang import union_dicts

import ramble.schema.applications
import ramble.schema.base_application_repos
import ramble.schema.base_class_repos
import ramble.schema.base_modifier_repos
import ramble.schema.base_package_manager_repos
import ramble.schema.base_platform_repos
import ramble.schema.base_system_repos
import ramble.schema.base_workflow_manager_repos
import ramble.schema.config
import ramble.schema.env_vars
import ramble.schema.filter_groups
import ramble.schema.formatted_executables
import ramble.schema.internals
import ramble.schema.licenses
import ramble.schema.mirrors
import ramble.schema.modifier_repos
import ramble.schema.modifiers
import ramble.schema.package_manager_repos
import ramble.schema.platform_repos
import ramble.schema.repos
import ramble.schema.repo_schema
import ramble.schema.software
import ramble.schema.success_criteria
import ramble.schema.system_repos
import ramble.schema.tables
import ramble.schema.utilities
import ramble.schema.variables
import ramble.schema.variants
import ramble.schema.workflow_manager_repos
import ramble.schema.zips

#: Properties for inclusion in other schemas
properties = union_dicts(
ramble.schema.applications.properties,
ramble.schema.base_application_repos.properties,
ramble.schema.base_class_repos.properties,
ramble.schema.base_modifier_repos.properties,
ramble.schema.base_package_manager_repos.properties,
ramble.schema.base_workflow_manager_repos.properties,
ramble.schema.base_system_repos.properties,
ramble.schema.base_platform_repos.properties,
ramble.schema.config.properties,
ramble.schema.env_vars.properties,
ramble.schema.filter_groups.properties,
ramble.schema.formatted_executables.properties,
ramble.schema.internals.properties,
ramble.schema.licenses.properties,
ramble.schema.mirrors.properties,
ramble.schema.modifier_repos.properties,
ramble.schema.package_manager_repos.properties,
ramble.schema.system_repos.properties,
ramble.schema.platform_repos.properties,
ramble.schema.repos.properties,
ramble.schema.modifiers.properties,
ramble.schema.repo_schema.properties,
ramble.schema.software.properties,
ramble.schema.success_criteria.properties,
ramble.schema.tables.properties,
ramble.schema.utilities.properties,
ramble.schema.variables.properties,
ramble.schema.variants.properties,
ramble.schema.env_vars.properties,
ramble.schema.filter_groups.properties,
ramble.schema.internals.properties,
ramble.schema.modifiers.properties,
ramble.schema.workflow_manager_repos.properties,
ramble.schema.zips.properties,
ramble.schema.utilities.properties,
)

#: Full schema with metadata
Expand Down
Loading
Loading