def read_schema(schema_file, extensions=None): """ Read a schema file from disk in order to pass it as an argument to a new datamodel. """ def get_resolver(asdf_file): extensions = asdf_file._extensions def asdf_file_resolver(uri): return extensions._url_mapping(extensions._tag_mapping(uri)) return asdf_file_resolver default_extensions = [GWCSExtension(), JWSTExtension()] if extensions is None: extensions = default_extensions[:] else: extensions.extend(default_extensions) asdf_file = AsdfFile(extensions=extensions) if hasattr(asdf_file, 'resolver'): file_resolver = asdf_file.resolver else: file_resolver = get_resolver(asdf_file) schema = asdf_schema.load_schema(schema_file, resolver=file_resolver, resolve_references=True) schema = merge_property_trees(schema) return schema
from asdf import AsdfFile from asdf import yamlutil from asdf import schema as asdf_schema from asdf import extension as asdf_extension from . import ndmodel from . import filetype from . import fits_support from . import properties from . import schema as mschema from .extension import BaseExtension from jwst.transforms.jwextension import JWSTExtension from gwcs.extension import GWCSExtension jwst_extensions = [GWCSExtension(), JWSTExtension(), BaseExtension()] class DataModel(properties.ObjectNode, ndmodel.NDModel): """ Base class of all of the data models. """ schema_url = "core.schema.yaml" def __init__(self, init=None, schema=None, extensions=None, pass_invalid_values=False): """ Parameters