././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3726993 asdf_standard-1.0.3/0000755000175100001710000000000014274323045013713 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/.gitattributes0000644000175100001710000000011014274323033016573 0ustar00runnerdocker* text eol=lf # Don't mess with these files *.asdf binary *.png binary ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3566992 asdf_standard-1.0.3/.github/0000755000175100001710000000000014274323045015253 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3606994 asdf_standard-1.0.3/.github/workflows/0000755000175100001710000000000014274323045017310 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/.github/workflows/changelog.yml0000644000175100001710000000103514274323033021756 0ustar00runnerdockername: Changelog on: pull_request: types: [labeled, unlabeled, opened, synchronize, reopened] jobs: changelog: name: Confirm changelog entry runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 with: fetch-depth: 0 submodules: true - name: Grep for PR number in CHANGES.rst run: grep -P '\[[^\]]*#${{github.event.number}}[,\]]' CHANGES.rst if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-changelog-entry-needed') }} ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/.github/workflows/ci.yml0000644000175100001710000000473714274323033020436 0ustar00runnerdockername: CI on: push: branches: - master tags: - "*" pull_request: branches: jobs: tox: name: ${{ matrix.name }} runs-on: ${{ matrix.os }} strategy: matrix: include: - name: Python 3.10 Schema validation tests python-version: '3.10' os: ubuntu-latest toxenv: py310 - name: Python 3.9 Schema validation tests python-version: 3.9 os: ubuntu-latest toxenv: py39 - name: Python 3.8 Schema validation tests python-version: 3.8 os: ubuntu-latest toxenv: py38 - name: Twine check python-version: 3.9 os: ubuntu-latest toxenv: twine - name: Code style checks python-version: 3.9 os: ubuntu-latest toxenv: codestyle - name: macOS python-version: 3.9 os: macos-latest toxenv: py39 - name: Windows python-version: 3.9 os: windows-latest toxenv: py39 steps: - name: Install System Packages if: ${{ contains(matrix.toxenv, 'docs') }} run: | sudo apt-get install graphviz - name: Checkout code uses: actions/checkout@v2 with: fetch-depth: 0 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Install tox run: | python -m pip install --upgrade pip pip install tox - name: Run tox run: tox -e ${{ matrix.toxenv }} asdf-dev: name: Run asdf-development tests runs-on: ubuntu-latest steps: - name: Checkout asdf-standard uses: actions/checkout@v2 with: fetch-depth: 0 path: asdf-standard - name: Checkout asdf-dev uses: actions/checkout@v2 with: fetch-depth: 0 repository: asdf-format/asdf ref: master path: asdf - name: Set up Python 3.9 uses: actions/setup-python@v2 with: python-version: 3.9 - name: Install asdf-standard run: cd asdf-standard && pip install . - name: Install asdf run: cd asdf && pip install -e .[tests] - name: Pip Freeze run: pip freeze - name: Run asdf-development tests run: cd asdf && pytest ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/.github/workflows/downstream.yml0000644000175100001710000001037514274323033022221 0ustar00runnerdockername: Downstream on: workflow_dispatch: schedule: # Run every Monday at 6am UTC - cron: '0 6 * * 1' pull_request: # We also want this workflow triggered if the `Downstream CI` label is # added or present when PR is updated types: - synchronize - labeled push: branches: - '*.*.x' tags: - '*' env: CRDS_SERVER_URL: https://jwst-crds.stsci.edu CRDS_PATH: ~/crds_cache CRDS_CLIENT_RETRY_COUNT: 3 CRDS_CLIENT_RETRY_DELAY_SECONDS: 20 jobs: common: name: ${{ matrix.package_name }}@${{ matrix.ref }} unit tests runs-on: ubuntu-latest if: (github.repository == 'asdf-format/asdf-standard' && (github.event_name == 'schedule' || github.event_name == 'push' || github.event_name == 'workflow_dispatch' || contains(github.event.pull_request.labels.*.name, 'Downstream CI'))) strategy: fail-fast: false matrix: include: - package_name: astropy repository: astropy/astropy ref: main install_command: pip install -e .[test] test_command: pytest - package_name: gwcs repository: spacetelescope/gwcs ref: master install_command: pip install -e .[test] test_command: pytest - package_name: jwst repository: spacetelescope/jwst ref: master install_command: pip install -e .[test] test_command: pytest - package_name: roman_datamodels repository: spacetelescope/roman_datamodels ref: main install_command: pip install -e .[test] test_command: pytest - package_name: specutils repository: astropy/specutils ref: main install_command: pip install -e .[test] test_command: pytest - package_name: weldx repository: BAMWelDX/weldx ref: master install_command: pip install -e .[test] test_command: pytest weldx/tests/asdf_tests weldx/schemas --asdf-tests - package_name: sunpy repository: sunpy/sunpy ref: main install_command: pip install -e .[tests,all] test_command: pytest sunpy/io/ - package_name: dkist repository: DKISTDC/dkist ref: main install_command: pip install -e .[tests] test_command: pytest - package_name: asdf-astropy repository: astropy/asdf-astropy ref: main install_command: pip install -e .[test] test_command: pytest - package_name: asdf repository: asdf-format/asdf ref: master install_command: pip install -e .[tests] test_command: pytest - package_name: asdf-transform-schemas repository: asdf-format/asdf-transform-schemas ref: master install_command: pip install -e .[test] test_command: pytest - package_name: asdf-wcs-schemas repository: asdf-format/asdf-wcs-schemas ref: main install_command: pip install -e .[test] test_command: pytest - package_name: asdf-coordinates-schemas repository: asdf-format/asdf-coordinates-schemas ref: main install_command: pip install -e .[test] test_command: pytest steps: - name: Checkout asdf-standard uses: actions/checkout@v2 with: fetch-depth: 0 submodules: true path: asdf-standard - name: Checkout ${{ matrix.package_name }} uses: actions/checkout@v2 with: fetch-depth: 0 repository: ${{ matrix.repository }} ref: ${{ matrix.ref }} path: target - name: Set up Python 3.9 uses: actions/setup-python@v2 with: python-version: 3.9 - name: Install asdf-standard run: cd asdf-standard && pip install . - name: Install remaining ${{ matrix.package_name }} dependencies run: cd target && ${{ matrix.install_command }} - name: Pip Freeze run: pip freeze - name: Run ${{ matrix.package_name}} tests run: cd target && ${{ matrix.test_command }} ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/.github/workflows/publish-to-pypi.yml0000644000175100001710000000124614274323033023100 0ustar00runnerdockername: Publish to PyPI on: release: types: [released] jobs: publish: uses: spacetelescope/action-publish_to_pypi/.github/workflows/workflow.yml@master with: test: false build_platform_wheels: false # Set to true if your package contains a C extension secrets: user: ${{ secrets.PYPI_USERNAME_ASDF_MAINTAINER }} password: ${{ secrets.PYPI_PASSWORD_ASDF_MAINTAINER }} # WARNING: Do not hardcode secret values here! If you want to use a different user or password, you can override this secret by creating one with the same name in your Github repository settings. test_password: ${{ secrets.PYPI_PASSWORD_ASDF_MAINTAINER_TEST }} ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/.gitignore0000644000175100001710000000354714274323033015711 0ustar00runnerdocker# Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *$py.class # C extensions *.so # Distribution / packaging .Python build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ pip-wheel-metadata/ share/python-wheels/ *.egg-info/ .installed.cfg *.egg MANIFEST */*/_version.py # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .nox/ .coverage .coverage.* .cache nosetests.xml coverage.xml *.cover *.py,cover .hypothesis/ .pytest_cache/ # Translations *.mo *.pot # Django stuff: *.log local_settings.py db.sqlite3 db.sqlite3-journal # Flask stuff: instance/ .webassets-cache # Scrapy stuff: .scrapy # Sphinx documentation docs/_build/ docs/source/api # PyBuilder target/ # Jupyter Notebook .ipynb_checkpoints # IPython profile_default/ ipython_config.py # pyenv .python-version # pipenv # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. # However, in case of collaboration, if having platform-specific dependencies or dependencies # having no cross-platform support, pipenv may install dependencies that don't work, or not # install all needed dependencies. #Pipfile.lock # PEP 582; used by e.g. github.com/David-OConnor/pyflow __pypackages__/ # Celery stuff celerybeat-schedule celerybeat.pid # SageMath parsed files *.sage.py # Environments .env .venv env/ venv/ ENV/ env.bak/ venv.bak/ # Spyder project settings .spyderproject .spyproject # Rope project settings .ropeproject # mkdocs documentation /site # mypy .mypy_cache/ .dmypy.json dmypy.json # Pyre type checker .pyre/ # Ignore generated Sphinx documentation docs/source/generated/ ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/.pre-commit-config.yaml0000644000175100001710000000121214274323033020165 0ustar00runnerdockerrepos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.3.0 hooks: - id: check-added-large-files - id: check-case-conflict - id: check-yaml args: ["--unsafe"] - id: debug-statements - id: end-of-file-fixer - id: trailing-whitespace - repo: https://github.com/pycqa/isort rev: 5.10.1 hooks: - id: isort - repo: https://github.com/psf/black rev: 22.6.0 hooks: - id: black - repo: https://github.com/PyCQA/flake8 rev: 5.0.4 hooks: - id: flake8 exclude: "reference_files" - repo: https://github.com/PyCQA/bandit rev: 1.7.4 hooks: - id: bandit args: ["-c", "bandit.yaml"] ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/.readthedocs.yml0000644000175100001710000000037114274323033016777 0ustar00runnerdockerversion: 2 build: os: ubuntu-20.04 apt_packages: - graphviz tools: python: "3.9" sphinx: configuration: docs/source/conf.py python: install: - method: pip path: . extra_requirements: - docs formats: all ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/CHANGES.rst0000644000175100001710000000211214274323033015506 0ustar00runnerdocker1.0.3 (2022-08-08) ------------------ The in progress ASDF Standard is v1.6.0 The stable ASDF Standard is v1.5.0 - Update documentation to be consistent with the ASDF library documentation. [#316] - Add ``time-1.2.0`` schema to document bugfix requiring additional property to be written from ``asdf-astropy``. [#319] - Move packaging to ``pyproject.toml`` file from ``setup.cfg`` and ``setup.py`` files. [#321] - Remove ``tag`` from within the ``time-1.1.0`` schema. [#323] - Remove ``tag`` from within the remaining schemas. [#326] 1.0.2 (2022-04-15) ------------------ The in progress ASDF Standard is v1.6.0 The stable ASDF Standard is v1.5.0 - Pin astropy min version to 5.0.4. [#310] 1.0.1 (2022-02-23) ------------------ The in progress ASDF Standard is v1.6.0 The stable ASDF Standard is v1.5.0 - Remove asdf as an install dependency for the asdf-standard package. [#300] 1.0.0 (2022-02-14) ------------------- The in progress ASDF Standard is v1.6.0 The stable ASDF Standard is v1.5.0 - Add installable Python package to replace use of this repo as a submodule. [#292] ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/CODE_OF_CONDUCT.md0000644000175100001710000000625614274323033016520 0ustar00runnerdocker# asdf-format Open Source Code of Conduct We expect all "asdf-format" organization projects to adopt a code of conduct that ensures a productive, respectful environment for all open source contributors and participants. We are committed to providing a strong and enforced code of conduct and expect everyone in our community to follow these guidelines when interacting with others in all forums. Our goal is to keep ours a positive, inclusive, successful, and growing community. The community of participants in open source Astronomy projects is made up of members from around the globe with a diverse set of skills, personalities, and experiences. It is through these differences that our community experiences success and continued growth. As members of the community, - We pledge to treat all people with respect and provide a harassment- and bullying-free environment, regardless of sex, sexual orientation and/or gender identity, disability, physical appearance, body size, race, nationality, ethnicity, and religion. In particular, sexual language and imagery, sexist, racist, or otherwise exclusionary jokes are not appropriate. - We pledge to respect the work of others by recognizing acknowledgment/citation requests of original authors. As authors, we pledge to be explicit about how we want our own work to be cited or acknowledged. - We pledge to welcome those interested in joining the community, and realize that including people with a variety of opinions and backgrounds will only serve to enrich our community. In particular, discussions relating to pros/cons of various technologies, programming languages, and so on are welcome, but these should be done with respect, taking proactive measure to ensure that all participants are heard and feel confident that they can freely express their opinions. - We pledge to welcome questions and answer them respectfully, paying particular attention to those new to the community. We pledge to provide respectful criticisms and feedback in forums, especially in discussion threads resulting from code contributions. - We pledge to be conscientious of the perceptions of the wider community and to respond to criticism respectfully. We will strive to model behaviors that encourage productive debate and disagreement, both within our community and where we are criticized. We will treat those outside our community with the same respect as people within our community. - We pledge to help the entire community follow the code of conduct, and to not remain silent when we see violations of the code of conduct. We will take action when members of our community violate this code such as such as contacting conduct@stsci.edu (all emails sent to this address will be treated with the strictest confidence) or talking privately with the person. This code of conduct applies to all community situations online and offline, including mailing lists, forums, social media, conferences, meetings, associated social events, and one-to-one interactions. Parts of this code of conduct have been adapted from the Astropy and Numfocus codes of conduct. http://www.astropy.org/code_of_conduct.html https://www.numfocus.org/about/code-of-conduct/ ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/LICENSE0000644000175100001710000000300314274323033014711 0ustar00runnerdockerCopyright (c) 2022 Association of Universities for Research in Astronomy. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3726993 asdf_standard-1.0.3/PKG-INFO0000644000175100001710000001072314274323045015013 0ustar00runnerdockerMetadata-Version: 2.1 Name: asdf_standard Version: 1.0.3 Summary: The ASDF Standard schemas Author-email: The ASDF Developers License: Copyright (c) 2022 Association of Universities for Research in Astronomy. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Project-URL: tracker, https://github.com/asdf-format/asdf-standard/issues Project-URL: documentation, https://asdf-standard.readthedocs.io/en/stable Project-URL: repository, https://github.com/asdf-format/asdf-standard Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Development Status :: 5 - Production/Stable Requires-Python: >=3.8 Description-Content-Type: text/markdown Provides-Extra: docs Provides-Extra: test License-File: LICENSE ASDF standard 1.6.0 =================== ![CI](https://github.com/asdf-format/asdf-standard/workflows/CI/badge.svg) ![Downstream](https://github.com/asdf-format/asdf-standard/workflows/Downstream/badge.svg) [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/) This document describes the Advanced Scientific Data Format (ASDF), pronounced *AZ*-diff. You can read the full specification at [the online documentation](http://asdf-standard.readthedocs.io/). > This is the **A**dvanced **S**cientific **D**ata **F**ormat - if you are looking for the **A**daptable **S**eismic **D**ata **F**ormat, go here: http://seismic-data.org/ ## Contributing Please open a new [issue](https://github.com/spacetelescope/asdf-standard/issue) or new [pull request](https://github.com/spacetelescope/asdf-standard/pulls) for bugs, feedback, or new features you would like to see. If there is an issue you would like to work on, please leave a comment and we will be happy to assist. New contributions and contributors are very welcome! There are two mailing lists for ASDF: * [asdf-users](https://groups.google.com/forum/#!forum/asdf-users) * [asdf-developers](https://groups.google.com/forum/#!forum/asdf-developers) ## Getting More Information * [FAQ page](https://github.com/spacetelescope/asdf-standard/wiki/FAQ) on the wiki. * [ASDF: A new data format for astronomy](https://doi.org/10.1016/j.ascom.2015.06.004), published in *Astronomy and Computing*: > Greenfield, P., Droettboom, M., & Bray, E. (2015). ASDF: A new data format for astronomy. *Astronomy and Computing*, 12: 240-251. > doi:[10.1016/j.ascom.2015.06.004](https://doi.org/10.1016/j.ascom.2015.06.004) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/README.md0000644000175100001710000000373214274323033015174 0ustar00runnerdockerASDF standard 1.6.0 =================== ![CI](https://github.com/asdf-format/asdf-standard/workflows/CI/badge.svg) ![Downstream](https://github.com/asdf-format/asdf-standard/workflows/Downstream/badge.svg) [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/) This document describes the Advanced Scientific Data Format (ASDF), pronounced *AZ*-diff. You can read the full specification at [the online documentation](http://asdf-standard.readthedocs.io/). > This is the **A**dvanced **S**cientific **D**ata **F**ormat - if you are looking for the **A**daptable **S**eismic **D**ata **F**ormat, go here: http://seismic-data.org/ ## Contributing Please open a new [issue](https://github.com/spacetelescope/asdf-standard/issue) or new [pull request](https://github.com/spacetelescope/asdf-standard/pulls) for bugs, feedback, or new features you would like to see. If there is an issue you would like to work on, please leave a comment and we will be happy to assist. New contributions and contributors are very welcome! There are two mailing lists for ASDF: * [asdf-users](https://groups.google.com/forum/#!forum/asdf-users) * [asdf-developers](https://groups.google.com/forum/#!forum/asdf-developers) ## Getting More Information * [FAQ page](https://github.com/spacetelescope/asdf-standard/wiki/FAQ) on the wiki. * [ASDF: A new data format for astronomy](https://doi.org/10.1016/j.ascom.2015.06.004), published in *Astronomy and Computing*: > Greenfield, P., Droettboom, M., & Bray, E. (2015). ASDF: A new data format for astronomy. *Astronomy and Computing*, 12: 240-251. > doi:[10.1016/j.ascom.2015.06.004](https://doi.org/10.1016/j.ascom.2015.06.004) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/bandit.yaml0000644000175100001710000000024314274323033016034 0ustar00runnerdockerskips: [ B101, B404, B603 ] exclude_dirs: - .eggs - .git - .pytest_cache - .tox - reference_files - tests - build - dist - docs - __pycache__ ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3606994 asdf_standard-1.0.3/docs/0000755000175100001710000000000014274323045014643 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/docs/Makefile0000644000175100001710000000122414274323033016277 0ustar00runnerdocker# Minimal makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build SOURCEDIR = source BUILDDIR = build # Put it first so that "make" without argument is like "make help". help: @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) .PHONY: help Makefile # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) clean: -rm -rf $(BUILDDIR) -rm -rf source/api -rm -rf source/generated ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3606994 asdf_standard-1.0.3/docs/source/0000755000175100001710000000000014274323045016143 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3606994 asdf_standard-1.0.3/docs/source/_static/0000755000175100001710000000000014274323045017571 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/docs/source/_static/custom.css0000644000175100001710000000123214274323033021610 0ustar00runnerdockerdiv.admonition { transition: width 0.5s; -webkit-transition: width 0.5s; overflow: hidden; } div.admonition:active { width: 150% } div.note:active { width: 100% } div.highlight-yaml { transition: width 0.5s; -webkit-transition: width 0.5s; overflow: hidden; } div.highlight-yaml:active { width: 150% } div.highlight-default { transition: width 0.5s; -webkit-transition: width 0.5s; overflow: hidden; } div.highlight-default:active { width: 150% } div.highlight-python { transition: width 0.5s; -webkit-transition: width 0.5s; overflow: hidden; } div.highlight-python:active { width: 150% } ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/docs/source/_static/logo.ico0000644000175100001710000001307614274323033021231 0ustar00runnerdocker@@((@€  !!!"""###$$$%%%&&&((()))***,,,---...///000111222444555666777888999:::;;;<<<===>>>???@@@BBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~€€€‚‚‚ƒƒƒ„„„………†††‡‡‡ˆˆˆ‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘’’’“““”””•••–––———˜˜˜™™™ššš›››œœœžžžŸŸŸ   ¡¡¡¢¢¢£££¤¤¤¥¥¥¦¦¦§§§¨¨¨ªªª«««¬¬¬­­­®®®¯¯¯°°°±±±²²²³³³´´´µµµ¶¶¶···¸¸¸¹¹¹ººº»»»¼¼¼½½½¾¾¾¿¿¿ÀÀÀÁÁÁÂÂÂÃÃÃÄÄÄÅÅÅÆÆÆÇÇÇÈÈÈÉÉÉÊÊÊËËËÌÌÌÍÍÍÎÎÎÏÏÏÐÐÐÑÑÑÒÒÒÓÓÓÔÔÔÕÕÕÖÖÖ×××ØØØÙÙÙÚÚÚÛÛÛÜÜÜÝÝÝÞÞÞßßßàààáááâââãããäääåååæææçççèèèéééêêêëëëìììíííîîîïïïðððñññòòòóóóôôôõõõööö÷÷÷øøøùùùúúúûûûüüüýýýþþþÿÿÿöööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööóÓglZ™ööööÎp7®ööööööööööööööööööööööööööööööööööööööööööööööööööÈ–öö‘îöŠ2›«íÞöööööööööööööööööööööööööööööööööööööööööööööööööööööööÛºöAröööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö¦ö<§öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö§´$·öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööô¬ë¶öööööööööööööööööööööööööööööööööööööööööööööööööööööööööööäÁö §ööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö«ïö7hööööööööööööööööööööööööööööööööööööööæ¸ööööööööööööööööööÝröèÖöööööööööööööööööööööööööööööööööööööö°h€°éööööööööööööò•PÚß¼'ÎöööööööööööööööööÐ~©ööööööööööööööõ›îöõÅYnåööööööööé’}ÌöàS¢N=Ÿ¼ÌÜåâÔõ¨š‹‡Y&ßöööß¶ÅööööööÖ§ÁèöyööööÐH*G^^lo`\#¡ÅH3™3á/4m* !0%U!bR«ºßöööööööööÙ¯“XlU<4W‰¡¡vN¬ôöÊ+YR~aööñ͸–1~b“ööööÇ[ßÔšU žõöööööööööööï¬ZT©íaðööö×;Uœöööö¨ âx…¬€i’öööööá7‹‰“õöööìoñööá@:ÉöööööÇ{r‰”Hvåöö½öööõ–0JáööööÇfwö“RÍô]Íööööö}ï³aMêööööööööñU¿ewïöööî‰jÒöËÚööö”×öç“.(|õöööööRäö¦Ðöá4õöööößf»ÛZ&ÐööööööööípîÁQÐöö§çöööööööäãööööÆ!\öööööö¾=kööºÂöö±«ööööö‰iµâ«c¿õööööööí¼öñ‡ööööööööööööööï­P%îööööÜ{,DØööÎ;µöööQ1ôööööõ9®ööåUe¶óöööööööööööööô©ˆ‡bLJ ŒâˆÎ“ˆo>cºKöööâl¤öööÒEŠööööö’¯»öööƒ4I¸òööööööööööööööÙHžó(±ö«ãöà)xåöÏZžöööè|zöööö2XÀöööö¯ôòööööR·öÓ`2Þöööööööööööööóö±möö±öãiÕööîg3ÝöööènJööööIs=ÜööööööööööØXöööÁ-±ööööööë²Ãéöª€ëööòIíööÐö±ôööélw!öööö{=òöööS¯~"¾ööööööööööUéöööÆ UÑööööööå©=töööö‹³ööööööööêleV9ööö”y&¦öööOôu FÈöööööööö©œöööö„Ï‹·ööööööÓnõöööÛjööööööööòA:ãvHööª´öY‹Cööö4àç›ÈV:‚—ööööçMööööó†ö¼‰öööÖr ãöööðRäööö¹Öööö[ ÍönXöÅ¥ööOŽöö©öºCÊöÐq¤ëööööö+–ööööÛõöíööñÉé³öööçVÎöööô§,.]BœöögZówöööXSÒ Æé€{ööŸ$Üööß—Àööööƒ‚¶ööööööööööööööõ©dÛöööööéåóåYööö_V¤·öööu{öÑ+Çà“ööö~+åööööööööcæËööööööööööÄ•%mõööööööööðAëöööWCXìöööfSöö´+èÛõööò++ãöööööööe”ö±æöööööööööööóMõööööööööÞ9šööööK ÚöööZôöör8íööööš#ÓööööööpfööõöööööööööööÛ…öööööööö©-æöööö?0P—ööötPíöå Fóöööæ8š¹ööööö”£ÖöööööööööööööòÞöö¿œ†ƒŒA¿´!ööööö43Tƒööög“­k±öa‰sööööMö»ˆôööö•ó–ööööööööööööööööööööÐ(·ölBööööö)¸BŒööàV´öö¢5#æ\ÅöööfÛöÁ U®öö˜öõööööööööööööööööö±„yRböãXöööööæ’·öö|>Îööö| qÞTööö™•öö­zÝíöôöÃÁöööööööööööööööí‚ÏööEÇö‘ejööööö&öçsöÇÞöööÕõöoäöö¾CöööeôöööööÒööööööööööööööÍ?Ýööyõöãz~ööööí)ööfèGâ·öööö`öö½¬ööÜËöö•¡ööööööööööööööööööö¨7³öö”žpöööi“ööööº6ööš;ÓñAÖöööoööð€ööìCÀööº,Çöööööööööööööööööäá‹ööÒȳºöööG§öööÐ'CööXöÌ*écìööröööööïöööʨ×ööööööööööööööööööåöööötôööؼööœ»^ö§_ö¢Höå‚ööuööö‡õöêÕööéÃöíööööööööööööööööööööööTöööaŸÑï…{˜ötÜIvàwWöö×ìö|ööö«ÓöÖlööööööööööööööööööööööööööö­}öözyëâïÑöö}®áÕ» JÍööööÐöööÓ®öÁ¹öööööööööööööööööööööööööööèÞÙö€'çGöööööölæööæ{j}a…àöööööíö°ÑŽööööööööööööööööööööööööööööööïÀ‹ï0ööööööw³ööòËöö–›Ðöööônöðö”ëöööööööööööööööööööööööööööööö¢èÉHöööööö€kööÕ¶fööõñëöööÝPöööÐØööööööööööööööööööööööööööööööÜö²kööööööH<îöo·ôiîöãÕöööö–;öööööööööööööööööööööööööööööööööööööïàöööööЇÑö’öölµpÇöööööööÕôöööööööööööööööööööööööööööööööööööööööööööŸëö~öíööx~ô9·öööööööööööööööööööööööööööööööööööööööööööööööööööæöö‘áööö…ñ¥ëðöööööööööööööööööööööööööööööööööööööööööööööööööööööðñöööÒöòðööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööööö././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/docs/source/_static/logo.pdf0000644000175100001710000002465414274323033021234 0ustar00runnerdocker%PDF-1.4 %µí®û 3 0 obj << /Length 4 0 R /Filter /FlateDecode >> stream xœmœ[ŽäH³œß¹ŠÜÀ_bÜ#–q– $ 3Ý’öÈ?3gVÕ@`º‚dãâssþïë~ñßÿùï×ÿøŸ÷ë¿ÿïUêú*s¿Ê×hçõ÷UjûÚs½ê×¼k´î¯±ë«}õµ^¥Ý‹ÖÚeÔ×N<\æ×Œý«—hô¯¶Æk|ÚôlùZ¥¼æ×.j¼:ë`¦zl÷ÚùjlØ[ý‡¢… Ž«c£æì´f=a¢¤ß´BQGüZG!«>•Ïð§-TÌ#$$ðµ§Þ¹%»Ñ8±çº¾òyÞ“X»É ²yÅ&÷(Ü-¶(”»°”L|¨Ó7{4êMı¡_wtCkL)›.lÌÁŠ¡ÅþÌØ´Ð8~ÃEC°{«‹èôØßМhÕ}b4±\1çég¹¹‹ÑµýÑfCû–:†`ö~vT5úEËb³»W2. [?ÔÐd4Ö7$qv†W­™µÙ¡߯»b(aĘDk)š5ÜÅlˆ*û9­•шnŸVýj¥úQ«t³É -¬“—!<üÃŽFCÍX®椤+Þn9¾dXXµ˜,>#u²ÇOò,hù–Nf+ž ûÉC–ÙkغFsïözZUöäý£lu‹L¼ž=ÔqÓ/¯7¯G c¡«ÔzéoœiLõÐ ÙiŒ7èfV±à·€´t qx¤Ðe­±ÜZ´m«xìÂYv™½1À4Ëw¸žø¹ß¾o‰ç° 1:ûùØ<+Zʦ ÛÂxM´î#ŽSˆ9U s n©aº¤Ùuc)%œaÞ–D ¹E¶Li·]x è•8Ç*­’×Ð XÌx]otkƒá¶WGöd™C<÷G¼ºPÃÒ[G‘õ*EމJ³šŒå¹þsKØqiaªþSù«o™¦Éo‘˜¿Ø·ðO<ŒiŠ?c…ãOBt´47t´ÁcHq4®‘°#$)‡ýŽw³¹ÃhéÖ®aëýŽ6ø$š#^Y$jÑ@Ãc(1á±…Þ ¶åĈ³´bAóU ±u(ä`2äÛrPµÅípL©¼Ã ]1^újzˆ_òpt'ñ )ì·–pÊ»ãšú||*øâê¶‹o¶r!mÕ»¤:ôh`V·”c$Ð a"ŒàÈj â,UWëÄC,G•uh_Lô„a–ªáèGú½¡0TÑM—1Ãð}°X…%,Ö§€+›åÉ 2ƒ3N7ÞB¿µŒçæÎ›CàÓlÏûû‚£®X¬ÇK€’†Ñn×\[fˆX,WbgÇN$Q-æöÂoÙ'Âôåh;,¨öpËŒà‰Â5ÊpLã=|HÀaXQÀs=f‰od[¢‰I{c”a`Â^åòðÐþcMÂW®Ð¯¤!û>Œ¢¯óÃZc` áÚ´é,T%Ú ÝÖOÂ/UÈ–yØï¶`lñO«@Ñpð÷˜sl%þB •BYöÓ¦˜é 0s¦`è°»»1Ì¿\˜Q ÀÛ‘Ë–ÁFu™dk²»Ä`¼‘¬ß,¤R–݃õ’Á2 ,í<&½ífÌ.w`N«%Ãz‡¾ÂñˆñퟫÔ/Q ÑäQgR·iÂý0 [ÊÊçø±Þeø¡9Ü×Ôæ¶æÛöÍÁ±øbB#Wz¹³m÷Œ‹‡NëÑHª|ˆVMˆDëb25 Ú ñ RºØ À©À‡[µ7‹…€Ô,‰Kšy6wB›jÔtÁƛȩJ .Þx˜Û ¸ŒQª¦òbcļÑ@R½\çJ,M.ºEÕåQ¦•.Lw:Ô:.%LoŠ>ˆ‰l‰†.8B F3ÞV Kí²Œ b\ˆÎÛ7¥û ‰ ToćQ`ð¨]sÎZ ψPlߥµêN@ͱ–ɺxkª´üÓì¹6Ÿ ¦™ÅdƒcXâ©f6û#Á-§3M=SøGÔ‰_¾Üò³ZGÝÒC~({ÉìÑñR2"ž»*‹Ãc`äD“¸Uàßߺ˜‚À‹Úb¸2áPöWKüœÆá›·‚üïÛЊ†F.L|5Z¸ÕƳ+àW n‚ª´ÕùDoñ|Üû#dņ§^)G3‘F›È²s¸Ò ¿Í*V ŒŠ˜o•Ó$ÓPrGô¼Ç~ÓS»Ä ]C_QÁš› nB"ñ.â6¿õ%[!×M8­{I‘Ñ!E¶ +%1d×/Œ A>zÙF „YÚ6C@•þÈ›qÚ#[h ¨•M½—\ámh5ÏNÀKløÌB˜êŸŒÑ‘%– Ã{älšrÒOá\ß@HUÛ*߇†£)µŒÂ 3…fv£‘i(¬á»AWöTØpµ± W‚<Úé×d5ãǼY.©M‡‰ù£ÆnÞöPâBƒ—¸tªŒ"[MGà;¡y hJ.`×Åjé}„`îlkâ+Á¯ä…¬B¿D ˆŒ~;mFu1Ÿ±!àø’cˆÎn½j(ý…åÞÓøW_…+dˆÙªßTÙèÏó†þEÕµ§j6Y2xÉqç —ˆˆŠKb‚wÉÛÔ¨gÂ)Mճє¶b{Á·2¾ªygbjYôI2É©Ý"\Æ™x£)£!RÇt¤àw öåtB b©%¼¬ ”,gu7~Ô’´Žvø- G?Ëäá.G®D^xLJ­¿ A•Ó -Æ5ú` õIA}À—ËQ1A“º_oÁ²“.z"¦$Vƒv Ébße^áue™eкѵáô.ñ ¥94—ìJi#ùÆ+EYéfy5;ìx={Ll9õn|Ù›ÑA§ñ{刎ôXƒÁ„®[©6^N*KÏ»w£ëÖhb³™«Äú‰Ïø‰E Ö©…NdËǃ‰à3PØá¼*k+Ù”Çn"ÈXø‘lˆ°HØæ£ÛPzjA¾yǤž¢żK~–=ZOs òn?½d‹åeÈœS¥Ü‡h=Nâñk“"ç¸^&'x'nÄAcS²}i!¦«6žGÌ$S–¤KELÍ>ý ¦p°NÏH6ÖŽÅ…-5ÛUÑƒÖø -u;…äW;±•¤iö¯§j§Éwž”úéXör‡OAK±¯°‰{¡"*#6; vºDHOµ7™ÊðKTÿ3\Q¢*o³”Ša†ÁÇþTyñM™1Ì=¿¨]ªŠªéô»Ës мÿQœžd­`…:Yf ÛñL†Xf¢º.Ò zbP—\ŒiûÆó ÚA¢¾¹ôf gË"Nׯ¸ê •/É‘P?VpOûâ'{8»ò–aN‹r$·‰µíD›l`,ñµªƒÂÛz9Œ¦m5Ýj‰:ª¸’è{ ¼þ÷HšSC¶5ËIª~›‡`;×O1×*ýT(Q³²s'~¤Ô¢8o›ÏWPr›€v’ð‚pVÕê}~:ÓxZÑy-"Š6¾›Y«œM´’d7 ¹½,ØlÉ0Ò¯©èЗ'±…gÂêfao§Ù]îú¶3å9¨ -ÄQ #K‡éœn÷ÃŒ oø RMö»ìØ[Ö»í|5 *n¶-Zæ Ù¥^å¨ÑLΘ’—´.®2LOtÉJN£CÙ"0ÑÄRž­}ÀÌ(&7é‡T…žQs bwáS-\jÑ]lÕkŽ*l9$0ãNÈ–‘‚ðWýÜ}"“âú‡Ï…¼ß­žv+Y­¦0q¤1h5»6*»žÛ3û®fô?í)ÏÿþqÅÕ@][3(ØܲòRŒ +€”lîmÐ{‹ ÖçæÒeTÕ=ɵåäœUȹ0ϰ¤+Oˆ;–ËxBð”Uã[?¹”ÍJîï:…¹”É_¸œ¿d>KÛܳ ?£“#´xÌ,‘·vÆÊV/B…iô Š Ž ¥ÀÅ4™Å0]¢Ï8ªÖýæúäOd¥çJÿäax·„|’¡ùP£DB´\ûÓ20š® znŸ‘êvµ­›Z#rã;1­CŸŒÑ0Ûjv½u=H|L9g=WÊ Ö@Òú\¨ç±g?®P@\ ê²SÀ•‰EëNØMˆåˉ¼ªAú¶³á?ÛÈÝûû ejE æü’g„¨0þ¹•)!¨äRöU6Ñ3¨šûQƒu½3¾ŸT¨ö¹dî£üA}¦P2‡&,×-_¥$æX._Q*ÔcU{Vô£.ìã\‘Í Zˆ«Øm)Ij#Ž•{¿m8ùfu‘¹54ÓÆàÎäé0FDàS‡‹z(Ž2ìï.Æ8݆,‡Å–ù“eøYRf°ÍòI³ˆïb2»™œè>•³»jÚ½íÒ7BÂ3*çoò7ºOÆN Õ®´dD‹L¼’6Jt”l Å„ü}&¥¶8˜$6h÷çDØpf‘ ’½Y\ãr5Þ&Sàimëð‰òP`™"ÄŒ³®]õ[/vw·Cmsßdö·/Y¨)ÿ!îû˜Jw)çšöýRÀ´?®}fµw6)¤v.õ¹ÂRI²Æ'×”ÁáQ…ý§±%5W@]˜@”­­ÌÞù€R¿³`Ro«š}în¹6g¢\⣠Ú)€ê™WuI 4+Yä)ÇØ\¾Œ©£29¬êH’1 ã:ïÌ™"µàò™øV®K5?+ÙV½Ž‹uá¨FMº€«¡¾É#PV¸îÏæÄ>ä-W˜Ì[Á€QÆtÐb€~΄qÃDä]5y†?ÅÜÆ”®“ÇüïoÏ<]ßõi®‡9ú¾  &(­zPŠ«ò I(âtÁNÉÚ›áJäÍ–÷¹² Þºùýmñ²e»BZ£±i;Au\:u¡qÆ:óäx<9>çÓS“wfÈ;qÂŒXMhyÌ´).qí7‚¡ºöúÅÞžâ9¹ä±éì„â2BÈî⚌¥¦‹ï—´‡ô­h:”¬¤…–ª)ÊFOëyžEpEj.ùçY°á¬¸k¾ËRÉ*Ùä&}nÙñ´ì»X¦)C¬*wR:deÀV‚ç’î@<­nÿ1ôëñ4(#-_÷÷½âS+x7Q`ûvX óbýٷݤ´}šâloÙvyÆ9I“F-)ðLmýx¯,žAfîl'ƒ#æQWÀQ«2ž§“uRm‘ï>ÇÓ}·yNKæ”Cá—©ß½rîå¿ý`u©çpG`ñ:–—yLWzŠQ|Ü]8¦`–J\Jn3­iw®²ÕÊMe‘DV­óÔ +©ø”úçïï ¹ÐYŽx­,@HÅtVIþ!‚2™æÀWÆ¡Ã) [7Û°{9oHâ›ÝX¦Ü†}WMfþXò…­°9&ª)Õ¥~¤—n«Ü¡Æ²C¶rä0,`½}@p»x‰&i êTÍÅüÂv…žæ i,.½i³êã[Ž™WN p6ëv´ÅªàëmK¸+žÊÅ©HPÀ!µ UUÁ[u¹Á@J·›nò‹m·ó‚†úub!tCuy·ék™~zÚkgÔÿãJ¥æøØ§oë)v»˜–N7ª•9£”ª I€m¥Ô˜qâ oÖo”ÞçøÊP¸1>ýM#66WÞcfºl]χ_ß“T ‡Y´&«i¬Zä‹ —Ó93‹ˆV¦Ûæý$Ffíp’p^±OP˜å¬óp.ü-Å,F}ò™SòÒmqMCYÂnnÜN^€z3{3|ô‚’÷4ÌY2Û]R­¬û#ÉÂåü.ÁY Uu£»ìÄj´» ¦i`™žÃàkþ¾§Ø+Àû™>ürh‡üõÌPs¢“¬pùô¡÷§`qçÎéD,Yz¬ƒ“=Ø"xUœÓr=¤+“§izû:MˆòãS‹ÄÍráè[2ù§)øÍ|èñáCÀ‘©¡ãÜÝ5¤h‰Yê@QhOUÉ}ÖrÂqä+‘QAžQ½póΙ†bNC¶<¾wûöpá}9á¡qÚ#½àHPZ¨êÃ'Jô5I Ç\!–ݹ-†±P‘wW)jŒ¥=°ùB‘Á"Í%H4q†ª#ó²ú¤{ÒT,;ªA5lKE¦H‹îÕ®^Ö;KnåÌ(¶-2še››êùi‚¥Ö}2¹<¾¶[xµËtºÊ¹–sÓö“^À‡„õmÛ%hXɰ-KÖ¶©É–Ç29žÄ9f–tdTõ_ÍöˆL^i†8P˜áIš!6Jÿ[žòT}Чxªª$…Écn36m½Jjä‹›¾ùÓ"°-l­LÍŸÎN_ô>‚Ç‹1fQ‡Jª—k¿Ñìr»ê¡f„O›ªYçpý¼€O’:¥jŲ\+ÏÙà¿Mƒ¬åY¦’@VæT㠆ȣ…öw[¬ä…Œ®§9²Jø»­ý€×Æ'|,W¯«Ì‚M™eY>mÿäú´÷‡RõWQŸ‰n·’’U4Ö³‡«ÂjýúÏmη99ö…;VæÿIj¦%ËtŠÀ¿¿&ó~ýs‰³™> ÎçeV}ûˆ°\EŒ`Ƕ>§ån¸qÉ¢×ïŸå™‘~?y«êW|‰^G“?}¶“ÇÆ(¦õ¹éÔÿçwõg¯ÿ(v+Ï€þº Ê:jÝ…†]Ñ€¾ˆ°ÜP´å?UúëGã»ËŒÊn½R#€>¶QÉú 7.{gÚõÍõû‡ëg·ÿˆ”ÝþC,Å_GÍÍŸ-PåUUj‰Uß6ûåA1„òr‰N â±GÒW·ÖC?Q:ØŸ?Þ£ßßüð÷P<¸þ¯Áõ_ƒíçàFý×àFý5¸Ñ~®ÿkpã÷àÆ¿×ÿ=8èu8¼ä¯3p¡IÝ4šÓËJp9ûºŸ¦A¹¨v|¨RCÕ»V2ÿKNæÙýêèÌ÷(vðHd<Œ«?5Jÿ29k¼À_EÀ}ûäJLÃôCÏéž/9…i =k@®<‹ŠàƒùˆQ|r©¾áOîO$@’J0»2-*”À§ávQÇÇpûˆNÞËéÖ4²?#|É?úRqüûÐæÀ&ŠyÎàö/¦ŸOsæ©÷ç%׃tìñq‘m¿¤âWÈwçQm‡÷OëäÑŠ+/ÀÝ@?Á7Yóm¦þœÄ³ÛÛ:[Ô|Mõ‰è,Ç.l È}9:k›YþäÏvýÜOù8yiÅ Èý„ÔŠ#ë\½£pȉÚd»TÜgRH°\UäpÖG>°_Yj˜‡}VaäIË£?Õ<ä HÃ_ô,ŒÔp1=Aœºõ Âéc¹Ã¹ObxŸ§ï殃´CU†:ÿü«ˆvŽEˆ.T…úÙìúHFÂøÛpÿJöîbf‘•Vø¼ã˜ù#}.¯i¬ï¯§ÝúØÆ%ûk0 o›d›^Ö¿J…1¥ ;(¼Íf«¡:ö[8„/LI.×,jªÞ·“ôËZº›*cWyŽ4ãèÈÆ)Ÿd‡ C-¸“>fh¨K(þ'ž\f¹}^€cÆýá°ÄTQ˜ 4ØÐ¹Û@¤5¼Ôô—‡v;i¢A·+ñ¦ ^|òZçˆMmìÄÐËG¶ÑaÚnïw–Ok+Ÿ–«zå²Z¥+âùëȦSJßÓåHW·u ÿ)oFÌ ážÓ³:.˜w»¸|>ŸÈs @Þ>ííi9†kfºûE·¨*ÿ¯Ã©DµÄ„œ ÷§4@2¬ç<$³}Èqž,$1éºnUM}·}.”OËð§0æ“UŸúpBHÍ_˜\>‰)?f<*¤›CàÌ4†pP};Ó©($Üõ6ÌSÎñ²,4#„jÃo\é3ô #²úèÖu@©*6˸‘ÕPJ¨z¾—ÑûÝ ³>ûí¢NçîeºÁ‘óÉÚedíq~4C%ȩ̈8S6yd1AÍñEA’äTVN‡Ÿ;ËÆü¹‰K§3\ß•ŒØþZ€>¢¨Ožì·½I~`ñužZí¬ÑɶÓ!úÞßsÁéT\´'r²Œ/Ó#×Shå›5 L»£“…ôOñÓY °ÇI/%w¡oŒl¥Ç³Â‰¯?–ñpÀ¬/{±ž#Þ?·ÃxÒÇDvÕúüu½®«©ú¥xŸvK;}”»Ú˜tg‘Àö§¾TýßU'BQßÀÍþù¨(NÛXúsŸ*Çš*½½U—%K”:Œm%‡Õв¥Ã¯­Ë B'mÿ1HY¬ï¬ÓH¹jÐ Ö̰oéWS_¶P¢‚¥ú”V³×çs–y™¬pÓœ¿›ùÁ¤ç£¿[æg”ì_ƒñž$`I(Y½ãg}Nƒ—çÛ/Y8“>±>…ë]§¥‹øpA•B%yØ’¹,Ñ•ÍÔsˆÜq éeiwÉ¢[ÞiÏ®l¥wh»ýÙ´íϹ çüLªÖ0 ÞþbˆDëÇ,m+¦„ótù¿Y¯Or>ôÛëàï ¹Úüž§ÅE¢OÍoøcû|¾¥Þç!~ü1YÎIYp!òN~[ã_ƒ1ÂïÏ€q_?. —Ò©¦Ï_d,ùqÄó e--g;]ž[>Ÿ©PY^yj&3×þ}Asõ¯!;•‚}ú~¨‘|sÍ~†••$¿‡ý¬ôڊܧ>®Oº}°È1ÙH×êâ¢ññÃÊÌ=·3 ’©-¡³üêBM£äÃÌÅGÕ{–å秈ýy!oòVú› O¹¤Îè –ÓÆ¿‡/—…ó""¾úùî?>€ô¶Ë¯#ÅÊÊ&å3¿~øiòäÓèþîéóÃö³ÓŒw>oÔÍþû‡ýG§ÿ¨˜Ö$éP<šß•>.löñf"½ §¼kÖsäz«"×¹gm_3ÇêïÒ>‡jšÓÔܸئ:½W”‚Ì“vQÝEÿ×ãÍ]ÊWÁ:Šó†‘&£ÚëUÔNl¿žRAÅ%Ï–hÇïÿÿ5û_×]ÿž§N endstream endobj 4 0 obj 9795 endobj 2 0 obj << /ExtGState << /a0 << /CA 1 /ca 1 >> >> >> endobj 5 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 214 167 ] /Contents 3 0 R /Group << /Type /Group /S /Transparency /CS /DeviceRGB >> /Resources 2 0 R >> endobj 1 0 obj << /Type /Pages /Kids [ 5 0 R ] /Count 1 >> endobj 6 0 obj << /Creator (cairo 1.8.10 (http://cairographics.org)) /Producer (cairo 1.8.10 (http://cairographics.org)) >> endobj 7 0 obj << /Type /Catalog /Pages 1 0 R >> endobj xref 0 8 0000000000 65535 f 0000010181 00000 n 0000009909 00000 n 0000000015 00000 n 0000009886 00000 n 0000009981 00000 n 0000010246 00000 n 0000010373 00000 n trailer << /Size 8 /Root 7 0 R /Info 6 0 R >> startxref 10425 %%EOF ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/docs/source/_static/logo.png0000644000175100001710000004057214274323033021244 0ustar00runnerdocker‰PNG  IHDR½[A3PÛ/iCCPICC Profile(c``2ptqre``ÈÍ+) rwRˆˆŒR`¿ÀÀÁÀÍ Ì`Ì`˜\\ààÃyùy© |»ÆÀ¹¬ 2 UŽ +¹ ¨¨ê¥¤'300ÙÙå%@qÆ9@¶HR6˜½Ä. rвùÒ!ì+ v„ýÄ.z¨æ H}:˜ÍÄb'AØ2 vIjÈ^çü‚Ê¢ÌôŒ#Ç”ü¤T…àÊâ’ÔÜbϼäü¢‚ü¢Ä’Ô Zˆû@º! A!¦ahii¡ ¥"ŠˆqŸÁáË(v!†°(¹´¨ Êcd2f` ÄG˜1G‚Á)Ë„˜I/Ãþ©15C}†}sïPoì%¬´ pHYsgŸÒR?ñIDATxí]‹²%7ŠoÌÿÿò¬±›«’Šq¶ª$™ %öÜîiÿñ¿?þS?¥@)°D?þøã¯¸õš-‘·‚–nþÏíQ¥@)P ”¥À¥ Ôл´pû.ðß]¨ m)ðž5ôÞ«i1*JR ¨¡'SËï(ß²nú¦åÅz¿w:«˜Ü¨@ ½«V˜Í xˆ9°Ñþ ‹1u™•¥£@ =F”ZzCÛÈÞŸ7ª[,J1jèéV^¥@¨5¼Bå¬`¥€¨@ =QšÚ¸Y¬C„ÃÕ®Ñ_‰j5hý4ÛÚ+J¿¨¡WpT¯Ü_ç´ù*ù'¨¡÷ɲç"ýÕƒÿ«¼su_¡ùšÿýáâ[ œV@vÖ_mz8Ð|+â{°”m)pZú¦wº•ÿ/èÁ\’ô°è6»~¶²(ÞQ †Þ;µ,&Š'¿áXs[í8š­/7ìZ.N­•¯+PCïõ _Ä;¨GàGÅÉÁ‡ã_/Ce Cjèe¨Baø¼ž¡Ä 5ÛóÄÆ8u-^U þ"Ë«•-^ÿ*ð…CŸv À¸ÿ[èº) Ô7=ƒHe²NöP–o+‚ÿ+‹]«æcÅ 1=qµœµW ¼¤@ ½—ªY\~SÀzð[‡Éo .X9'„^Jå ÔÐ[.q%ð*0:€Fý¼ø"í=ÊÂÏ/’GÅ*nQ †Þ-•*œË° •å „=l0ìjà âÕr)@¨¡GĨÛ3 p‡uïo‘rö\ÜÖïä³Çâ¶Æ¡>u_ |UúÛ›_­|ñÞ¦@ohi@4ßvšrµW ð Ô7=^—ZM €vàSxœÝè@àbÑ\»î‡†e”ß.ü•§Ȫ@ ½¬•ÄÕ;,Ã.wûÚ!®ñÕ†Bó]^¨JP \®@ýzóò¾€vÈsB³·èÕËi‰1bÃq¡qfyÑX7Ý·º|U‡›j–k ½ÌÕ1`áƒXL°>Zj‹ÍWëkÑFÓ¶öJVz­"—>¿p8ÀÁÎñ€5îÐçl9»l%EŒþ+Ú¶ë/=£_àúRÝnåR¦wkå:¸ñ é˜]³½’wخ̱-ñ9\×Ì”ê@ïÁ½}†µ/h<ëgõMo¶bdx™ëååå]¸Ã®µæl²iÊalypÏÙxpW­j¶ OÅ}Oú¦w¨¦õrËÂK‡>j†W9BÌN›žÛµ˜L¿¢HÜYÔ])P Ì(PCoF½IßÕè$¼”î’f³ÃBò—òõÄñúA~ C/—eðàÇb¿ËÆÃÙc» å¹OzjF_^ïáxîçS®®í‡h±3ºhޝð(PCÏ£Ö"ÛÕ‡ê"ØKîp-'­½çbõö©–“ÚÜ{pŒÄ/ŸRàFjèÝXµÂüCÈÁëHæae.ià­ÌÉP4-eÄd^FW*PCïPÙÚ]:¤Á«´ƒ XëØÖ0ëfÅÀ:Z\©Ç!J•6©5ô’&Ö‡åm9-64¦å~ELÌ ±WÆÇ<ÜõT^‹wívx‡n¼Z¿n_C/Q…ëåÊSŒS‡ì¬RÝÀ'FIËÙ•ÿYjèÔŸ{ÉëE;XGê‘:qõv¤ìšJ˜Vçí»Ð@ÒòB*¹Q †^#Èm_>вq×ÊSXOå½í=*¼ßQ †ÞáZs‡’vx†[é‰Ö:q5&aBn9,#y!+d)(PC/A BN,C#뀰`GÕqÐeå‚8ëZ D(PC/BÅÉÜUФ¨IܹÚFCívÑx¢ãíÐ0sÅË«@ýWòÖ¦) d:G‡ŽBojË¢†Ùâ?°œKƒ Ô7½ƒâÓÔÜA£LÔ·î¿«@Û#\QuÀ¾õ¡û=j»âþtþœ*f.jèåªÇí Ð¸¡då”FOm-ÃNë£4¤)]ˆ¾0eýzs¡¸mèöj_&xnm๵kã~í¹ôàÿ«â\´ýÔÚ”–­"vm÷¬•¨¡w°Jx ÕÁs°©¡^X»÷i-·¶Ggí9+~Ê¥îKõëMZ“¶ÒA/:¾ìœ îM¦/÷¸ú„5… }br`ŒÿI ¤¥K¨Y½CKe¾*x ½DåÒ^Lm/…§ hšï–žè8èvcîáÚ½?£án¬•o5ô´yyzÏhì^ÜšÇ]Fµ8<ðÇÏHHv#¾åó·/¾W_¯m ½Á˜9G_¤™œƒ4Ó¹jwŠÈHÍ"Ým:ªO›w¤^mŒzέ@ýE–‰úÀ 2z¸€_½`â'pªálŒö` B)°]z“’ï|3ù&©–û ³CKû•A÷ž\kmŸzô@:ñ‚ANŠa¦ÌR¬”3ªæð=Ñ›9˜ŠR VÏÿ™=L`8Œ  ZFŠ®×ý·€¾ÀÏ·•ØÃ¾}ë½Ü£ûî,Ÿzœàmós6Ñkžì¾h¾#ñ<ÄÏàƒCî \3è]¾§@ ½?kÎ0' x3mÈq™‰W¾ëÀºWíÖk]JzJxŸÇVIù×–åð‹Ì×ÓqøÓO4FN_®.Üš øÎø[ó”]_®Þ}¯²¸QzÿTM:|¸—A²l€:}jru°‡\;}ÝÑC#Q'MÏ‘¸·ùd­Ïm:fÄ[CTEjô“€„ `K¸4BW¼ÅƒO4`6ÐGÂĸ„/Ìí!3[O®›lo©ßMšÖߨ¡×h"Hx¨7æ[%L«“[9g>¬Zlíój Ûø§jÙâ°<¿¨lj[³èS6w*PC©›v0e{A¬x¬vŒâ7JÎÖfraÌ^ ©F=?Œ_×o( õÉ7ØKNzœ*®i/ˉƒUÃÃQðÚs1èpöðöØÒ<î9ìzFÄÈ Oa(nV †žR½l‡”„‡;¤ZÝ-)8r¹${ζ›\0àrpkF6Ä•pМuŸS®ªž9k…ª†^Gɯ¾oî èÈXÛ¥@)P ¤P †ž¡ Ú î;†„eEn)pnóI¶­Õ+â^Ë»:wþ¨Àõf¾7cªaÅÙ£@ =£ÎÒájt5Û‰EËÕ´’íêMÊ;":‡52þ¦žÅLï{~íþŒoköy‡æ™øÎêUþvjèÙµJÿg7íKup@-Í+ÙQ‡äËL³á%ú QþÑ~RÿFç©x稡çÔ¾7œá†Í¥—så!(åweîžP¶žoÄþéüÈ! Ä“ñzºW3jò%L5ô«-.'þ•loÌ­åÐöЮV;ê÷=l­}ûÌåÙæˆ|æðFƯX¥À‹ Ôл¸ªÒ¼ú0„¼Rîžœ«±õò¿²Ïé8Z“Óšp\Ncªüï*PCo¢¶™8HV&£üWâò`¢8è=¶„'úhW.‡f/íqq¢±J¹_^/ _®î/n5ô~iqåÝéò`àà‰Ê½:ÎJÝVc·Æ®_t<+ÉjH?’]­¯Qડ‡²Fб¨Ü õ…ƒ©U‹Ó¡µiŸWêdÅ“±§ZðYÒËÊãÔµø²W =,”ôòãþ×®Y=ÀáŲ²–^,´oF|G|hNí^ÒieN OÔžÄ+*~Å)Z®z-‰ÓÏ·<Ñúyõ ½ÀåÅ‘3:F´&Ñø^ˆwSŸ@?ÐÏ úïäpíÐË~ìÆ—í¥<L»õÚù’ÍäÒtñè;ƒa§ï‹œ¨~Z=©tßú¿®—¤ÃÌúµCo†tùîSÀóR¶/tJ†¨œ«ã¼Èiµf·Ç_õ~Ü®‹ÿUC¯}Ñ£›âÑGÌ›Ç7Ê6ŽK\ [ŽoÔšÔßYðÍò”øÍÆ}ÑŸÓê•>Ø]¯«†Þnq¸Fó`˜õ÷äÊn /èé—tGþ¨RïDÅÏÞ/;ñe×”ë…ì˜wÖÏ›+ÅЃ¢âÇK€ko ´çɃ‹óÇØY®‘zp:­‘%ÿJ,±-6#Ú÷|,ÚôbÌìŸÎ?ƒ}•/× ¥ÓœÚ)†¥À™î¯¾—jרß(O ÿh¼~§1žÎ¯iªõKfÜ'nOãÉÙq­4ZSõtChB±¥‚s/¾d;*—qÆ,¿Ÿ Hÿ´Z÷t:?ÇLëãŒx9µæS€««÷üóe,ëC+<”F+þêÒi˜´Ü’ŸæóÕ½ÌZihE½´|™uZ¡ÅΘٴ­>X_ýChBóI ¨5Jd±A[ëuͱó½¤ñÍœ¼ØµþøŠ>_á©õFõ¦NÜ^𡇔¤æ‡†À¦l0FäUÊ…X"s}5–¤ñJ=,õ³Øp=|´ž8ެk笘Wá-ð#åxµ$¾«×Ó = ¬Y{a´½!%<ž|Û¬å«Àʺ­Œ«Âw¢AM2ÕE:{¾S‘x¦)‡ÐÔŠ}¢)%<ÜK"ÙÆ—¯"Þ¨×3-ê¡V‘µÏ–š¬Eð{ôêß5‰XI;ô€ÜHÑWD Ïʼ…ÎCÓ6»·V^ûY¼;µ˜ÅáŠ/æÝ]_‹fˆÍb[6>R= Å÷6ÀÊ&Ö°ôòöö}¥+ëHz}¶«vZEòåbíâÈ宵_ œì_(Þ½K?ôPúL aƒ£¬Ú}×^mW2Òr¯Ì»3ö‰wCËÉí¬ÃÉÜ;ûàd®k†ˆ am ®™#…¶âˆÌY±æ˜í‹Y‰Aõ“¤ÌºõUµE\=0ªœÏ瑱‡Ô¬Í±º©­87\Wc¢¹êÞ¦@[Çö¹b©a/é±¥~/܉»Ö7_Òátß^9ô@4hK£h!¾CDž/ÄȤe&,_¨}ŽU÷,•X‡ãÚ¡‡’Xš´ªuï5¢†ÞZoycIÊk9$Ÿ[×£4[ÅÿT-Nå]¥cö¸×=š¦×8«_¸^þˆF<"bDðÉc¦n³:ÎäΠ]a˜W z`^Co„'†’¾¥fËYÔ«®}z=5Z‹^Ü>²²ˆT ê©fîXO =šWjàÑÊZB)¯Õ¿gGã¯æÒÃrÛþŒ^TwŽ7›[ã|kí T?ä©ósC¥•ªÕÍ'åE\‘×Õ\"±fŒå©UÏjqs=N`ïiº«gNá8•w—®Yó<;ô@p©©V¿àRÞM°šË Ì/Ç„zTM~¯piò»&µrF§‡H ˆB·N—3ísGÖ¨—Ó~T(L£ù©_&,WÄ}[dM%¼= ’_­¯Qàù¡‡²Iͽª!¥|ˆ'úºŠG4Î,ñFë3ê—…w‹£ú¦UdÏóm}}òJ¯|fèA+K¶ª˜R>À2“SŠ;0eø‘¸eÀ†nÀˆXµ«¥_,6ZØ‹ˆÑË‘uÿî/p ýñ©¡Ä¥ëµÂÒ"¿r?R£‹^RY|3جÒ%7+†S5<•תËëvŸzPP©éà ˆ> ¤\³%ÅÆ?‹3£¿¤]F¬·c’úñ 5¸ßTÓ8´zrèÚK…ÞQì9Ú‚×sœZÅe‰ÑwøŽà5åÝ%oí™»«ñýg‡È ¨5aÔ ­åøYßÓª¸>y­¥ƒ'±¥›HLZ,N“>|è•æü¹\à'ÙÓ˜«ï3`Xͱâó |zè¡$½@zÙÑæ* Ö˜=ìÖ8_±[¡×Š˜»êØñêÍ;êçÍ3b?ûnä)of­8®Îö¦µÿÞv%VlÈ^¡¹}ô]‰¯b—³ p½‹1µ=´¡×^Ï{ãÑØ7߿̻Wó[êVC¯©ÖÓ¼Û&Ý_ày¹ýÞøÎbèå¸m·½ôöOè‹=çÕ ýF0ÏøŽäã|N`8‘“ã^kÿùO =¡ °I½‚®» y0g×øÃ3:}Yߨ>¶h•ë¶6ŸåÍù[ô^¡‡eEž1ëÏô:ªCÓj¼´Û^Œ/7µ…ØXì~ˆÜyj§ô X½HühB«ÅŸÆºé^ã­ñÀŒú[bk6Ö½—jWCÏXu(:~Œ.n³ïñª3½•:Ç‘[{•ÿj^=-¹>šßìYCcÓûÕZÜ¿~½9P¥¶‰#› bµñ­Á/‹5oÙ½¯€¥'µÞ³øGª(a‰Æ!呸Xì£1JX¾º^C/ ò´I-M²B HúÓ ®!ËGà í…$g‚ìÎÇ@xvÉ£­ÅvWö ÒbÍ‚«‡Ûº_¿Þ´*e´ƒ¡£Û³¶é~lv^kPŽîŒ>3¾–™µLX4–žÒ¸Xüµü÷4¾-Þž-ž­_=¯Q †Þ]§£ö^”é(Í~u—ZžL/ ‹Æ÷gô§ŒÃ.Š›Îüìn ½EúCóÌ6ШÔ˽HšíawëÁå­å¨X–|xèâ•ËÅqáì2­Y¸âˆ­é=Šk•ßõïiQ¦×SȹñR8S>g/šWG¯=ŠöâKÝÓ"’³–+2ÖëäUãjÁõšÎmjèTeöeÐ @ìzY~W¨tá5ù}õçJd/­ìûŸ¨Ï?ÍrÔ}•³W኎û™¡'t¦¥˜ÑE‚<^œ`ßÃ77šÛL<įñôê6ƒç„¯Æâ‰Ö¡—7:å²û¾ÇUÓA‡Q £~šö>3ô$±iC÷ŠLm¥x«Ö!wߪܙ㞬‰¦ Ôj%6k왞‘|{¹%?M¯Õ{£˜z\%Ü£ù¤xµ§Àg†4a¯{ûq²E|õ2i^êkéC¡•ÃWûΦ1îÆºQû–ë°n½ëg†…l Üɲ±{¶³¹Áßš«‡åõýWtòöÌokŽžÝHîŒ}ØãÉa~…;Çí¥µTC6ÚÊ¢±iNoai«/õÍ ~4Ž”lFsH1_Z·hÉ—«·†9½µ‹æÓbëá‰Î:ì¾öxrxnæ>—Óà–µTCŠÖ¾pt/ò¾mVK´>£x0Ž%g›}0F»ÿò3rF ,\=¶–x+m¼XQU˜,xVcXÅ­káJ}^áý:'Ê/ÍÐó6%y¢‰1çˆàƒþ#:ÌúäŒòÞ#šEåŒ3Êc¦öü£¸,±£m$¬V$ §5®ä_ëg¨‘åŒîlVx‰F^$xY¹–[c?¸ØÓ±·!‰5ÇH ¶5~-FÆÞž·/pM¼¼{:Þ°_C/a•F_(h`lb¼&¤ÉÊÑjlq Ñþ`ÍèE¸j¸{ùßÎYÓòenÈ»†*‘ì:Ó|Þ—8õ.?m7ña艙¾ˆ†Ÿ Ë·‘Þ¸3Õi„?õ¿õ¾†^âÊí:änlþÌ7\Ù0gÃãí¯=Ù8G]¯óC½j衉¯_iÆèŒlÑ"â­¬ÿˆF+ñDè¥Å¾^ÎÀ÷vέ&^ Zÿ›ŸS½/¦mªÛ_¼–Ïê笽ãÅ•í°Í†ÇÓG^í!öÍ|=Ú|É6ÍЫ沵]édÓI²ºI¿ÕX½C`5©f½õØïÙp9²òå°Î®}‰kš¡7[´/ù¯hБCáKšï溢Æ3²á™ábñ}™ï×ßõôCïë’^Px)_~1%Þ_XßQWÏ{µO¦ºßLՈǒ~èÅS~+â×^Йê•V«÷ÒÀóp±ôΫ=‚:áբū6©†žÔpU(½ý@7I;ÝóçnéüSOuŒÂ K')NÔ;$Åϰ^ï÷ßUH5ô24ÆÍ¾tHquÊÈ?&ëÁ— 7W卑/qm5û"÷k†žõem‹úµçÙ&¾UçYÞúd5kmWãˆÒÚÊGËw WCíùH7ô´&ŒhrŸZÛÊ «½Æö^;ýxýOÙKšgÒv…6á¿Þ\r&&P*0Ć=´›ÉåËaÑðGå“M¿–èÙê—sËž[œ ¬qý#ÙöÖ­9{q´}oŽH~.iÏ‹WгkÓKâÀÙî¹+ûMÁH+š$®7î¬}‹«—g‹ Ÿ?~p-Ó5»~™´ÁbÕ·×çmn¯}ë?ûlå…yNàŒôƒXn½JšŸÐö„†ÝozT QQ ƨo¤(€òicgÁÙâÂg ;Úh×^ fãgÖ«}f¼´ŽÖºôêKcJ÷T.oDÌÍÅÇ=î™›‹O×¼ØÀw'>ŠÕs?ÂËÿ[vèAñ8qèÚ æ qãl³¬QÝ­˜Fêƒ>#ù¬¸NÚqµ®Èû$6ÈÍa9U‹Sy¥ì¨Ñ(çØ$]<ë¿[8xøJ¶ìÐcA©Ýë‰ö= dôºÆ-ÎVãžQúbo~À—I¿ž^Ù÷=úcÍ"8yòŽækshïd$7o‹…³i×VcjóÍ>koã2­ÅŸ„ÿ× ¢ Öó¥û†TÔ|ù½Æë4V f5N+Š î#pYräáâŽÄi9sÏ\.ÎׇÇ}0†÷jÍ5›qµù n»†¶pÊKcjù¨½_ƒÆº÷p»…S”6‡ý‹,m&BO1Z +ž5N'±ZrGÕ¤§«¦‘æká ù¯Üã8eÂëÁÂqY©Ýlì–[oß‹ò·´?š]–=/·,¸wâ0 =„ÅŸiDOQ0ïÊ«Æ%Vª½†y…V»ó­àÐÆä8e¨·Ç¡åiyŽŠÓË%q“Ö#qA)O‹òâ§Ý{å9RÛÛ4ÿL¯G„Šfm¦^ÌÚÿ[ªmM“·Î`Ÿ‘KM¿ŽC멨¾±ölT¾jš™+Ök%F×7=© Ð‰Iñv¯kسaÝ­ ͧéDíè}fý8>™ñR]9ìt?ú~6§+·¸gsA ˆ-Ň}ü\ù0^]ǰÔk<ú¯žzÄÓ@« "&ëUkülX­œ²ØeÖ«û¼\^k½f|­9"í#úŽæòøq:ŽbåbQ,4îÒ_oÒ¤p‰{àZŸSÏ7a½M#èÚ„§ðsy¥ºŸÆœU/NÃUkg‡EGKžÓý°Jããjõâê½í›ŠÉ€= 8úf¹Þ„uµfR={y3k(qÚYÊÝÓ3Ó¾G' _ˆç‰Ùj9ðÓîqÏhkÁÆùŸX“ôÉÊÃëÅÚë )Þö¡ !á„8Ñ@˜S ûÙ°"æWM' Of %N˜i šîéjGmp-ë•Ã/aÕxAüHþ½uˆ¯åèùÃ~D Kž/Ùp=â­5ìÕlë¯7\Ö¼иÑ÷Îè<·ÇÕ)[½i$N˜i ìwX»ùgÿ¬?h‡ZFë¸*n4NïFÌ¿t¯õ‰…ó‘ozHF¨‘Bß ×[pîÒJª'¬K{€-³ŽîÌ4½§õ’òS›[ï3ýÌðèõØLìòS€ësOsþ€ÎSÿ£CO“R"§ù¬ÚÓŠ’ ç*þ³qQ£[u”p/ä6ªQDŒÑÜ‘~³:Œbñv£9²ûÒ>BéÝâbK<=1 gyÙ%’œ «×¼Â®Æ“5¾¤ÖRÚ>h“‘Û ÜZÎL¨hs‹>™juËLŸH¾#=°uèpüXÅ—ÈZýwØÝ€q‡˜CjDÔIÚÚšæÊr¥¸òÅçºÎ)ý€Ÿ¹Hå½[î]°¼ßÜ{…Ø-þhK¯Ë‡‚æHS ÚýŒ¯×»§‰œ£—Ó*{I+ÔIÚGš 1go1»¹hq¯éÀÃñ‘°p¶í¥}°Ñ~Ð_³©½¿Ð4΢£†Ñ[Ç(NËþL¶ IôÑl#…ÔòŒìíÀæÍö^ŸîšÖ°ˆÍR{-Çî=S‹ÅcÛúÞò<Ãñ¶Úg®ÉL"yá{3’ûëMLÐv¤Ú[Ë{+ó·xÚg ßil-V|F=OéÖÓ p‚f‡\²\oÂ¥ö:à·{í•úµ{õ|¯žX®ê vè!ˆUI1~ï ù5ñpï4ΨýžÖ<'uÃZ!†3¬ƒ ÚÁ¾dÛúžzŽª à§¼OñÑòFÖ";WM‡Ó{‘uˆæ2‹mu_,ûõf” @O„Y‘G±j¸VcòÄ—pzbŒj$ùI˜Àþ$. oo]ãÓó½}Ÿr·Ôì©Ïíü3á¿Y×]}‘~èaCõŠiyÙ0Ö¯’~'u“0A}(.Í.S-%œÒz&ì,´&hO¹qûh‡Wjkuõ)`ÑÙ1ÎzôÄξ¸fèAYzâ€à#¢Ï”\+Ön,=Öº!V ìSý4»ÖcŸ¸öpžÀ”%gi³¶§õ¥ï«…)à=ùª¡‡BöÄÚ}ˆk…ó6r´\GbŸÂªñɈIûjOÓaUNk\®×(^nŸÆ¦¶t½î} ôtöE‹³öâ:ÙW=,§‰ç-ÆÍ|ÕøZqk1NifÁ¤ÙX¹—_^Oôö«n~ÍoòèÕŸr^8ÝW=S â) Æô^{¼ñVÛgÄ«aZ­GÅ÷)€µê½[hç‹^Ö^NéÜ«?åq #Å÷O = ‚j¢î~€eç§éZ\õ’0!Oi¸¡M˳žÇà4Åp{4ÚѵºW §÷xä1O+èƒL½ðÌÐòõ†BY‹…1­W­°‘9µš{×=ÇqWnoIû›8x9Íj,ÕYÒâ¦úrèaá,…iŒûÕ¢rô¾$èg¹zp@¼•X,x_³ýo|nïƒÝøGj ½á}?O¿Ÿz ¾µ`Þ†°ÄmjKŽ æÕh[6þ³|2úƒÆ½>­:ì¯\¤æ£ïm$† ~~èØžâ6ˆTÔÞ"ùq둱0¾Gô‰Öâ¶8VpEüuý¥@Oç¶.¿<ënFžî3±Ñwæ=½¹î5ô°œ×™†iSíhð6çŽçH¼x_ÕÔ«ƒÅ^Òªw°õö-¹WÙHœzù°gGý{ñ-û½Ü3ºGð›Éoá¿ÚFý/§¯Nž!~¯ÁzÑŸkXÃ}K.FϯÍùFâpy¬Ø9_ºFãÌ`k¹Bnæ®ûR°ôíÓ—T‹æågÑ~§ÞÏ =oA¢Ä¦yG‹ 1F}WðˆŠIã N<3èE¹½tß«Ooÿ&-°')æSü8,£¸z±hÜ/Ý_5ôn)â NôÝùÒaÎ9½<Á}{xÁο3zÿ4>«–”÷iÌËìýÿÙœ’–ˆ>ëzöþH9ô2ÎZàUv µyÀŽjfñ¥ö«8XâRV¾mÜ–»_Ï>°´6÷ðùæ+Çøœà(a±è;ãk‰¯ÙœÐJÃcÙ;:ôNË"ÎiÔ'²±0¦•›'·7v‹ú[ó‚Õ¶Í÷õgªw«…¶×Úf{n±sýÑÚ Î÷V]%,m>ŠÍêÓÆ}¦¹GcdñÛ>ôvkU‘vá§ 9½|8 voгõµä£þôžú¶q©]ïžÓ¡çóõ}ª=Õb¦4Îéû,ü$’>^{)Noý•:K<·½È¢*Œ–7’_[0Œ­åo},ÏÑñhNñÓ}ë½ÅrYì¬9Ëî§´–?wîz’zd7? Ç 5ws?Á‘æÜ:ô¼ÓmÅhñ®hlŒÙæâ´[jGïi츧¹‘ÃŽ¼£ÕaWÞÌyv×à¤=®´7wàìáYa7ßÕ|¼ñ·=÷%Á[®‘ÍŽ±ÚÞ8aO1#ƒÆœ‰U¾¿+ð²¶;¹EôúïÕ±­ìäiCtÎjûÐ;Gõ|fÚxQ/Æ¡±)ÓìâF.¿çbÍÆðä»ÕÖ£­Ï­|%Ü;¹y4—ðެïä8‚ï„O ½ªÿ™“6cÄ ãÿ¦ÖäßÀÞ€>4>ÝÛqŸ¥>YpìÐ\ʱ»Nh¾›£¤uÆõz ªÂ5h䋱¸ ¨‹o¤b²Ú`À°›I{ý²“SK´„;¹Ec߯þÁéj;rAWÿýØ¢0š-Ú8ʰÔTú"q6þ+8j1wê½Kkà„{íýR ¾éýÒ"徨³/øc¬”D; û¬4K¶oÄŒz/dQPMç]|4 Q´wq‰Â›-N}ÓËV4úl³ïx!øaË¥Á˜”žÚÏj<†pÎKã·ƒä×0̱ûõ\f±f÷¯ozÙ+Ôàƒ¦_ùr5éR>J€.°'í§$³Ôëý¢ñƒ^Xý£åɽó®›}hjè]XI|)h!­4Àý­>í€ÃàòŠë²“Ö«û\ËíÕa5V/žöTÇhhläô°H?¸ñÕ+jqÿÑáá¾-FŽÿ+ÜZ®£Ï^=8MGs¯öÓ¸­æ¡å¶òŒø±ú¼f¡£¤‰û·ozh¸ºi$ YÖoÑë„x³è· ðo¹Ã3·¾ S–<­.Yp­ÆïÄŠ<³š®Ä¶‚ïʘ­–QÚ´q[ü¹ þÒ; D›4ûs+Ú-:´¸{:ß«Çö½ÜÁgŽùþx° ÏjL˜göªqÓ8h~-¦6ŽÇ·«ÝÿÚ3§e«÷ˆ&\\rüqƸ†6ÔùK÷ Ã F¬™¥>·ð²p)›Ÿ xú=oèqÀÚãÖÛG¾ÖëL¼[4µjaÇé¡—âÅÿþOpá=ëDÛ®œ·ðç°k5¹…—Æö¼¼ÁçîÀ…þ¼Ê‹r\u}„È1ª%± ëq9=GÞÝ–;—ÚÐ?þL7¤tmià—îå Üð9wÄ5ª?øgã4Êåë~£½pKýGùq}¡qÍ£Åä0|iÓtV/.&Õ”‹ÿcè¡1jqmÑ÷¥+pCž”¬EóæòМ«ïWpZ¹/Õ«µ£Ï/ð¦|êþw¼ïêè»èÍó;ÒwWF5ÕéÅ”êÁ=Ld9D0±”cÝz•4ÞQœQÃÓEr:Íå‹ùGû(ªWkÞã7Ë£_â7›WŠûʺ¤ë¨nR<ª—û?7Å¿½IƒX¡½1$š³×6_DL6‘q±Åƒn¸¤Ø˜#ú ˜µœœ¢1{âiܤ8Qœ=¹£r'O^ªA$wŽÄ1‚ƒ»Ç#"w/ÇÍû’®#ºI±Z}z±ÿý‹,­cû zÁÐÀY¢O{msEÄlsxž[<è;Ëâ ¶RÌuÌZ®NQX+N) p=‰ïͬB\lKLí²ø¿n#é:¢›‹jhíó7=Ü€ÚÃ}4Ñ‘x-¦‘g‰û)<”ƒ„ÚÐ{Ĭù¡ õË~ÏñÜ:åÁµ—#:Äóä\‘ŸÆ\uÏqœ­ÓŠ6·5Ï­v’¶^ݤ8­.ž¸CCZÁÌ€³äñm±Œ>KÜO`Ñ8H8©bÖlцúe¿×øHØ#xzòîÎGyGä¦ñVÞsšÎâçbZ8Ìæµä¸ÝFÒÖ££ÕÆ}Í¿ÞDc„>ôŠþÖ=RÖ8Ã콄é à”°¢bÖìÐ}n½jÓ,ÏY¯®»óyñ­²ïÕQË šê6“WÃôÒÞ¨¶TkŒÑz˜‡ÞL³PBôÞ³G·枽—0Y 6›ßãX%¼Ç¢ŸÅƃiµ­ÄWZ_…gw> Œ˜$Ü‘ïÓL¬›4“´\½®ékÑÏsÆXâI|Õ¡‡ 42R`Ϻ%ìÅ8žÜ3¶žÕzb–ðzâeåfá`Án±±äZms ÎÕ:XâƒV3zE¼7œ7ÛhúöôóÔbõâõtümè!D/èÌ~/¿…0ƘÁaõ•ðœÒ¯‡;¢i²rk¹Kµ‘Ö[ÿ¬Ï3úßÄãéÅÏÅÀºöbÁ~Ïc}ù:ª1øi¾­¦Qµøë/²xS # ¢ryâŒà¤<-÷žù-[ sk+=gå†x[Žˆ·]G{¼¢>[®mL£Ýƒxtßl¸8Vß‘|ÖØ+ì8®Vœ/Åq4kó‹÷#j>œ†ÑµPÿÓB :)ÆÅ먣~˜7úªáY­á  ·%nfn€ŸòC¬tãˆvÜž´ÖƤ1Ú=ˆA÷¥˜t‹A÷µ{o.-ÖŽ=Ž«•狘1†Å}êÊ+ i¨5z÷ìÑŽ^Ûtoôþßoz+‚ƒúókïêŸU|µÂ®Ê¡•†Û?37Àü(N\“øQ[Ɇ®·ñ¨»~tŸÆ‘î¹’m»îÍÕúï~æ¸ö8p>7úkvhCý²Ü#î ‹¤ ÅØ³åbPnfí¯{se‚p-žÑzy1f›«ç×Û‡x»µ…õè|mŽÑg ·%&rÎÌÏÂcÔùú÷üfâg­I³g_Ó‡ò—ì¨'ïÛ3<ŸÄÛâ‘4°Úµþ«¹ýöYZžAüDãÂà'*¶V´è\Q˜!N„Æ£É#*V.­ÏP‹ Úf¹J|9|`«ÙSþ’µárœ\“0ŸÂdÅcµ£< ;j¡þW( ,÷T”a54Í£ùH{àOãµv°7›£õÜÃÞ˃¼³òüˆ±Çet?Š»„s¶F£¼NùqzJÚÆÖ^²míNñãòfÃ,áá°{Öv×àŠoz’€ ~$›Ñu(0~FcôŠ9—ů‡bôl2ó³h6ÀaÕO/¶´ºK{k¯>Ô6˽…Øhv”·fKí²ðG?´Ùy]…çD ®z´è Þ*ñÅ)¼ÓH\Ê}Õ};àîÙ¶¬üVéWÒÌ¢7ä·ÚE`Ý4‘tAΔwÏvnožL¸{š{¹¡=Ô‰Ö ×w\‡ÿÁéàfshÍ3ü=E³bñÄŒà`¡áGÌš æA[|>uµ`¥Ø4Ü\¬Öž³ø­¬Yl%ð‡.îß;yÿo“†¼å+Åjí´˜'ö$Ü€e7v ˨6»9p8Ÿz”ðŠÒøp¯Ô›_‹ÕæÝõ¬q@¼š ʼnötmç½'Å$aæbµ¶œ ÆF[‹ øhv°ñàþ–Ÿ'‰GËU‹ÓÚJ1O­gÁ®á˜Ñ&‹þ×ýE–QÑAðUÅDL\üÑBc¬QÄyÕ4¼°x¿”í¥ý/­÷´BMAíËRM§¦ g~®°kf4ʦ}}Ó›©æfß,Í£½£fG¥£>t}å½[‹ÃÊÅjí8›66÷LãôbP[.VƵ's˳£µçbž\Óð¯Æ®åžÕd5öQ|O~Ó[YÈQ¡#üZ^§š ò¶X®ƒ âÃ5´i¯¸öíþŠgÊ|#1©¨ÑHœ¬>^NTäÔ‹Áù o†«†v-g„&«pG`ƒW½ÕÅ‹yUŽ–†Cl€>ø¬i6Y8pX#Ň˜9Û™5oj?“wµïˆ^·^Îg57OüÝø{ù<Ø%Ûìš#îôCïT±väÅ"D^­¸= jÉñ@_̇Ϝ-®¡ úàz–+àÛ… µÐ¸ï¢aàö,Ø9?\ãxYbr~3õÇ!/G¤x#ñôb¥ø3½j)ØI¼-þ›žQk¯~è·‚k‹rµk\^Ä$Ùâ>úJv¸O¯èkñA[ê¿úÞ‚kCËÉ“¯õÁíká1Šß;šÏ(ÖhÞx[¿é(ŒW‹½¥Ø¯pµèaµM@;ÔϪµC_kÎ;ÈAsr1zûœeÍ’ã¬Ðb/ÄÜ»Îrü³1z=û==¸=q=x­¶¬Ö˜»ì– ½ÕE‘D÷ä•bDˆo‰íÁ)C ä úÀŸ­ØÐÞ¢¯5&Úј#Ø0ÎÌùÍİúîÌeÅaçåEë>“ß›—æêa˜‰MóÌÞ÷pÎÆßáöëÍÈ¢DÛÑcEz¸Wä<ê0Ëy¦–47‡î[uŠŠ£åãrhö¸7Â}é•ËÏÅF;nÆÃ{´‡g«úÞz¥œ3ónqÞª÷ô7½ÑÆ|EÀè·ºŒêkU¼~£ÕnæÓq½%tË·‡³µ—ž³ð‘ðyÖ£4ñäD[«ŽŒ\,‹bi¯\<´™‰‹1êzV®¾ÑuårŒ²ŽÆFqDâ¤qé}È7=ðäýÊbDñšÁ¸£!¢xŽÄiùÍhåÉßæõø®¶•°íÒf5¿Šÿ÷7;Zç¨ÚÒ˜‘:kqg±sþZ¾^Ï|ÓãÄj‰¯ß{¶`¤1Nã¥XNÞ{tÛ¡Y‡¡çÃ釋eãÈaÑ‹ó•5«®;õ˜­a§'†žEÌ(ÁFšÄ‚Æ=‰•âÈxoÕrµ†.·fÏéLcx}¹x;Ö(æùFsÜ¢ç¿[j@¹yêÁï©_oR!é}„P4žõÞSLˆy §•O;Ô¨§-ÝGŸ ø­(~«Ï*»õÓ´ØÉ'S5MNîIõX¥ÝßôNŒËí-–Tt.v­ýTÀ£u´ÎRn)dÿ“ѹ' ÷9DßÌÑ'UK¹wjèÉÚ¸wFšµšÓ-3ëàÑ>Js.§›³gÉlZÔ°n‚Piœ ŒöPÕú—Пøõæ/ºñwÕ„ñšŽD¤/u¯&¸O}FrÞèóEÎ7ÖIÂLë‡},ÙÒõÖ–Æ¡v_¸¯¡g¬rÛ4F·ß̾Ül¿‰±h5îÕ ÷Ñ~œãa_çw\àC°®ØÇ­Æòĸն†S¹¶!×Ò—Ê%ÌbcÔ½WOº>‹¡m ÿ—-‚]š„Ö™ö²‡çGãzbe·­?Óû§B\ÑG‹÷j³Œê‘ÅÏ[cKiÌž=µ]©IÇÊÜ;ÑýöJ_}~èÍ6Æ+çU]Ä[ó¨{óŽ(…u$wùäW ªoî³O½™Âß\ìü¯ä>„Þˆ¨»7§WŒÞœe¿£}yk¿}êÏôFŠ{kaï×2ÀºŽôÄZdþèÈÅïY¥ÿbXÞ °¹±÷>3ô,EÄàÆB"öºúÀZ÷ú#ë Žø}¬ËºÐhûª÷~èÑrí>?ô¬Åj‹œ«L…fµPÿ^¯d|«µ©ø¥ÀKçãÿ½\ÎÞ!Ü¡˜/ôåz®æ¶º¢ãGÇ[­oÅ/2(ðü7=Iä:0$e¾½Ž}!ý?L+¿ían¨€”«Cmq­®¥@)ÐWàsC¯‹~S”Åß¿è ž(Úžìåmí£pTœRà <ý?Y ‡G_hçxŽ´‡hôUý$åÃÜ«òbüº–¯+ðô7½: ^oßõü ‡zƒ( Å®Sê"©@} ‹T³b•û¨¡·OëÊT ”¥@)pXz‡ PéKR (ö)PCoŸÖ•©p+P¿FuKV¥€ª@ =UžÚ,ú Ô¿©Ùר,J, ÔÐËR‰Âq»¿}íÎwM! h)0 @ ½ÑÊ¥(JRàNjèÝY·Bý1êÛÞÇ ^t—)Pÿ=½eÒVà] pá†?gŒö]ºUžRà‹ Ô7½/Vý!ÎÒÐÖg©·qw×6÷,—ò/¾¨@ ½/V½8_« ¾~×–¯€'P ~½™ áV ›Ñ_qz°ìü6zG% å—¨¡÷åêw³܉&ÜàãÖÌ`CŠ]ÃLí0„f6u-nR ~½ySµ «KîwøÇ8*Ž–›¼‡+~4_ÏÇÖ¸uˆ+­{r–m)Iú¦—©…%•Úƒ)°“îi¸,xПÆÔüÀÞj«Å©½R ƒ5ô2T¡0,SÀ{Àô‘@˜¿‡SÂë³þ§®¥ÀM Ôл©Z…õ‡žCmq`Ð@¸G×n¸G.·â¿AãÂøž5ôÞ«é'ô£~(*|Îp¥˜fùeàSJ• üñç ó¿• *v)©ÀÉCý¦We…N7ñ칊õ–5ôÞªçslVÞ^‘^9죴|Eo”ý ÔÐ{£ŽW²ˆ:„W’ù€ŸÕÿemVöTÅ>«@ ½³ú6ûì« 7rS<#þž[ö¨^Ì_ÕÌ«SÙŸW †Þù|ÁÌ ‚Õ!»¶mfêSµY[›Š>§@ ½9ýÊ{RëáZé¤ÐîÖµ)ªf­"õœAzªPJK€5ü.)îG`ÖÐûH¡‹f)°BϬᷢӫÀÿåb ²Õ"$#IEND®B`‚././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3606994 asdf_standard-1.0.3/docs/source/_templates/0000755000175100001710000000000014274323045020300 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/docs/source/_templates/layout.html0000644000175100001710000000054014274323033022477 0ustar00runnerdocker{% extends "!layout.html" %} {% block header %} {{ super() }} Fork me on GitHub {% endblock %} ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/docs/source/asdf_in_fits.rst0000644000175100001710000001317314274323033021327 0ustar00runnerdockerAppendix A: Embedding ASDF in FITS ================================== While ASDF is designed to replace all of the existing use cases of FITS, there will still be cases where files need to be produced in FITS. Even then, it would be nice to take advantage of the highly-structured nature of ASDF to store content that can not easily be represented in FITS in a FITS file. This appendix describes a convention for embedding ASDF content in a FITS file. The content of the ASDF file is placed in the data portion of an extra image extension named ``ASDF`` (``EXTNAME = 'ASDF'``). (By convention, the datatype is unsigned 8-bit integers (``BITPIX = 8``) and is one-dimensional (``NAXIS = 1``), but this is not strictly necessary.) Rather than including a copy of the large data arrays in the ASDF extension, the ASDF content may refer to binary data stored in regular FITS extensions elsewhere in the same file. The convention for doing this is to set the ``source`` property of a :ref:`ndarray ` object to a special string identifier for a FITS reference. These values come in two forms: - ``fits:EXTNAME,EXTVER``: Where ``EXTNAME`` and ``EXTVER`` uniquely identify a FITS extension. - ``fits:INDEX``: Where ``INDEX`` is the zero-based index of a FITS extension. The ``fits:EXTNAME,EXTVER`` form is preferred, since it allows for rearranging the FITS extensions in the file without the need to update the content of the ``ASDF`` extension, and thus such rearrangements could be performed by a non-ASDF-aware FITS library. Such "FITS references" simply point to the binary content of the data portion of a FITS header/data unit. There is no enforcement that the ``datatype`` of the ASDF :ref:`ndarray ` matches the ``BITPIX`` of the FITS extension, or expectation that an explicit conversion would be performed if they don't match. It is up to the writer of the file to keep the ASDF and FITS datatype descriptions in sync. The following is a schematic of an example FITS file with an ASDF extension. The ASDF content references the binary data in two FITS extensions elsewhere in the file. .. code:: HDU 0: ┌─────────────────────────────────────┠│SIMPLE = T │ │BITPIX = -64 │ │NAXIS = 2 │ │NAXIS1 = 512 │ │NAXIS2 = 512 │ │EXTEND = T │ │EXTNAME = 'SCI ' │ │END │ ├─────────────────────────────────────┤ │...data... │<──┠└─────────────────────────────────────┘ │ HDU 1: │ ┌─────────────────────────────────────┠│ │XTENSION= 'IMAGE ' │ │ │BITPIX = -64 │ │ │NAXIS = 2 │ │ │NAXIS1 = 512 │ │ │NAXIS2 = 512 │ │ │EXTNAME = 'DQ ' │ │ │END │ │ ├─────────────────────────────────────┤ │ │...data... │<──┼───┠└─────────────────────────────────────┘ │ │ HDU 2: │ │ ┌─────────────────────────────────────┠│ │ │XTENSION= 'IMAGE ' │ │ │ │BITPIX = 8 │ │ │ │NAXIS = 1 │ │ │ │NAXIS1 = 361 │ │ │ │EXTNAME = 'ASDF ' │ │ │ │END │ │ │ ├─────────────────────────────────────┤ │ │ │#ASDF 1.0.0 │ │ │ │%YAML 1.1 │ │ │ │%TAG ! tag:stsci.edu:asdf/ │ │ │ │--- !core/asdf-1.0.0 │ │ │ │model: │ │ │ │ sci: │ │ │ │ data: !core/ndarray-1.0.0 │ │ │ │ source: fits:SCI,1 ──────────┼───┘ │ │ datatype: float64 │ │ │ byteorder: little │ │ │ shape: [512] │ │ │ wcs: ...WCS info... │ │ │ dq: │ │ │ data: !core/ndarray-1.0.0 │ │ │ source: fits:DQ,1 ──────────┼───────┘ │ datatype: float64 │ │ byteorder: little │ │ shape: [512] │ │ wcs: ...WCS info... │ │... │ └─────────────────────────────────────┘ ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/docs/source/capt-of.sty0000644000175100001710000000243314274323033020234 0ustar00runnerdocker%% %% This is file `capt-of.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% capt-of.dtx (with options: `package') %% ---------------------------------------------------------------------- %% The capt-off package -- float-style captions outside of floats %% Copyright (c) 2010 Robin Fairbairns %% %% This work may be distributed and/or modified under the conditions of the %% LaTeX Project Public License, either version 1.3c of this license or (at %% your option) any later version. The latest version of this license is in: %% http://www.latex-project.org/lppl.txt, and version 1.3c or later is part %% of all distributions of LaTeX version 2005/12/01 or later. %% %% This work has the LPPL maintenance status `author-maintained'. %% %% This work consists of the files capt-of.dtx, capt-of.ins, and README %% and the derived files footmisc.sty (not distributed from the archive) %% and footmisc.pdf. %% ----------------------------------------------------------------------- %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{capt-of}% [2009/12/29 v0.2 standard captions outside of floats% ]% $Id: footmisc.dtx,v 4.20 2005/03/17 13:41:58 rf Exp rf10 $ \newcommand\captionof[1]{\def\@captype{#1}\caption} \endinput %% %% End of file `capt-of.sty'. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/docs/source/changes.rst0000644000175100001710000000012414274323033020277 0ustar00runnerdockerChanges ======= Listed by library release version: .. include:: ../../CHANGES.rst ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/docs/source/conf.py0000644000175100001710000002036014274323033017440 0ustar00runnerdocker# -*- coding: utf-8 -*- # # Configuration file for the Sphinx documentation builder. # # This file does only contain a selection of the most common options. For a # full list see the documentation: # http://www.sphinx-doc.org/en/master/config import datetime import sys from pathlib import Path import toml from pkg_resources import get_distribution # -- Project information ----------------------------------------------------- try: from sphinx_astropy.conf.v1 import * # noqa except ImportError: print("ERROR: the documentation requires the sphinx-astropy package to be installed") sys.exit(1) # Get configuration information from `pyproject.toml` with open(Path(__file__).parent.parent.parent / "pyproject.toml") as configuration_file: conf = toml.load(configuration_file) configuration = conf["project"] project = configuration["name"] author = f"{configuration['authors'][0]['name']} <{configuration['authors'][0]['email']}>" copyright = f"{datetime.datetime.now().year}, {configuration['authors'][0]}" # The short X.Y version with open(Path(__file__).parent.parent.parent / "README.md") as readme: version = readme.readline().split(" ")[-1] # The full version, including alpha/beta/rc tags release = get_distribution(configuration["name"]).version intersphinx_mapping["asdf"] = ("https://asdf.readthedocs.io/en/latest/", None) # noqa # -- General configuration --------------------------------------------------- # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions += ["sphinx.ext.mathjax", "sphinx.ext.ifconfig", "sphinx.ext.graphviz", "sphinx_asdf"] # noqa mathjax_path = "https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # # source_suffix = ['.rst', '.md'] source_suffix = ".rst" # The master toctree document. master_doc = "index" # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. language = "en" # The name of the Pygments (syntax highlighting) style to use. # pygments_style = "sphinx" # The reST default role (used for this markup: `text`) to use for all documents. default_role = "ref" # The default language for highlighting highlight_language = "yaml" # The encoding of source files. source_encoding = "utf-8" # -- Options for HTML output ------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # html_theme = "sphinx_rtd_theme" # html_theme_path = sphinx_bootstrap_theme.get_html_theme_path() # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. # html_theme_options = {} # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ["_static"] # Add any paths that contain custom themes here, relative to this directory. # html_theme_path = sphinx_bootstrap_theme.get_html_theme_path() # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. html_favicon = "_static/logo.ico" html_logo = "_static/logo.png" # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. html_last_updated_fmt = "%b %d, %Y" # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. html_use_smartypants = True # If false, no module index is generated. html_domain_indices = False # If false, no index is generated. html_use_index = True # If true, links to the reST sources are added to the pages. html_show_sourcelink = False # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. html_show_copyright = True html_context = {"bootswatch_css_custom": ["_static/asdfstandard.css"]} # -- Options for HTMLHelp output --------------------------------------------- # Output file base name for HTML help builder. htmlhelp_basename = "ASDFStandard" # -- Options for LaTeX output ------------------------------------------------ latex_elements = { # The paper size ('letterpaper' or 'a4paper'). "papersize": "letterpaper", # The font size ('10pt', '11pt' or '12pt'). "pointsize": "10pt", # Additional stuff for the LaTeX preamble. "preamble": r""" % Use a more modern-looking monospace font \usepackage[medium]{cabin} \usepackage[bitstream-charter]{mathdesign} \usepackage{inconsolata} \usepackage{bbding} \usepackage{fixltx2e} \usepackage{microtype} \usepackage{changepage} \usepackage{enumitem} \usepackage{pmboxdraw} \MakeRobust\marginpar \DeclareUnicodeCharacter{2264}{$\leq$} \DeclareUnicodeCharacter{2265}{$\geq$} \DeclareUnicodeCharacter{2014}{$\textemdash\textemdash\textemdash$} \setlistdepth{10} \makeatletter \def\marginparright{\@mparswitchfalse} \def\marginparoutside{\@mparswitchtrue} \makeatother \renewenvironment{quote}{\begin{adjustwidth}{15pt}{}}{\end{adjustwidth}} """, "fontpkg": "", "fncychap": "\\usepackage[Conny]{fncychap}", } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ (master_doc, f"ASDFStandard-{version}.tex", "ASDF Standard", author, "manual"), ] # The name of an image file (relative to this directory) to place at the top of # the title page. latex_logo = "_static/logo.pdf" # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. latex_use_parts = False # If true, show page references after internal links. latex_show_pagerefs = True # If true, show URL addresses after external links. latex_show_urls = "inline" # If false, no module index is generated. latex_domain_indices = False # Additional latex styles needed latex_additional_files = ["eqparbox.sty", "capt-of.sty"] # -- Options for manual page output ------------------------------------------ # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [(master_doc, "asdf-standard", project, [author], 1)] # -- Options for Texinfo output ---------------------------------------------- # Grouping the document tree into Texinfo files. List of tuples # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ (master_doc, "ASDFStandard", project, author, "ASDFStandard", "Advanced Scientific Data Format", "Miscellaneous"), ] # -- Options for Epub output ------------------------------------------------- # Bibliographic Dublin Core info. epub_title = project epub_author = author epub_publisher = "Space Telescope Science Institute" epub_copyright = copyright # A list of files that should not be packed into the epub file. epub_exclude_files = ["search.html"] # -- sphinx_asdf configuration --------------------------------------------- # Top-level directory containing ASDF schemas (relative to current directory) asdf_schema_path = "../../resources/schemas" # This is the prefix common to all schema IDs in this repository asdf_schema_standard_prefix = "stsci.edu/asdf" # This seems pretty redundant/unnecessary and should probably be fixed in the # plugin. asdf_schema_reference_mappings = [ ("tag:stsci.edu:asdf", "http://asdf-standard.readthedocs.io/en/latest/generated/stsci.edu/asdf"), ("http://json-schema.org/draft-04/schema", "http://json-schema.org/draft-04/json-schema-validation"), ] def setup(app): app.add_css_file("custom.css") ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/docs/source/dev_api.rst0000644000175100001710000000032614274323033020302 0ustar00runnerdocker.. _dev_api: Appendix B: Developer API ========================= To fix circular build dependencies some aspects of the ASDF library are included as part of ASDF Standard: .. automodapi:: asdf_standard.resource ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/docs/source/eqparbox.sty0000644000175100001710000000773414274323033020535 0ustar00runnerdocker%% %% This is file `eqparbox.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% eqparbox.dtx (with options: `package') %% %% This is a generated file. %% %% Copyright (C) 2010 Scott Pakin %% ------------------------------------------------------- %% %% This package may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.2 %% of this license or (at your option) any later version. %% The latest version of this license is in %% http://www.latex-project.org/lppl.txt %% and version 1.3c or later is part of all distributions of LaTeX %% version 2008/05/04 or later. %% \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesPackage{eqparbox} [2010/01/01 v3.1 Create equal-widthed boxes] \newlength{\eqp@tempdima} \newlength{\eqp@tempdimb} \def\eqp@taglist{} \newif\ifeqp@must@rerun \AtEndDocument{% \begingroup \def\@elt#1{% \eqp@tempdima\csname eqp@this@#1\endcsname\relax \eqp@tempdimb\csname eqp@next@#1\endcsname\relax \ifdim\eqp@tempdima=\eqp@tempdimb \else \@latex@warning@no@line{Rerun to correct the width of eqparbox `#1'}% \fi \immediate\write\@auxout{% \string\expandafter\string\gdef\string\csname\space eqp@this@#1\string\endcsname{% \csname eqp@next@#1\endcsname }% ^^J% \string\expandafter\string\gdef\string\csname\space eqp@next@#1\string\endcsname{0pt}% }% }% \eqp@taglist \endgroup \ifeqp@must@rerun \@latex@warning@no@line{Rerun to correct eqparbox widths} \fi } \newcommand*{\eqp@storefont}{% \xdef\eqp@restorefont{% \noexpand\usefont{\f@encoding}{\f@family}{\f@series}{\f@shape}% \noexpand\fontsize{\f@size}{\f@baselineskip}% \noexpand\selectfont }% } \RequirePackage{array} \newcommand{\eqp@settowidth}[2]{% \settowidth{#1}{{% \eqp@storefont \begin{tabular}{@{}>{\eqp@restorefont}l<{\eqp@storefont}@{}}% #2% \end{tabular}% }}% } \DeclareRobustCommand{\eqparbox}{% \@ifnextchar[%] {\eqparbox@i}% {\eqparbox@iii[c][\relax][s]}% } \def\eqparbox@i[#1]{% \@ifnextchar[%] {\eqparbox@ii[#1]}% {\eqparbox@iii[#1][\relax][s]}% } \def\eqparbox@ii[#1][#2]{% \@ifnextchar[%] {\eqparbox@iii[#1][#2]}% {\eqparbox@iii[#1][#2][#1]}% } \def\eqparbox@iii[#1][#2][#3]{% \gdef\eqp@produce@box##1##2{% \parbox[#1][#2][#3]{##1}{##2}% }% \eqp@compute@width } \DeclareRobustCommand{\eqmakebox}{% \@ifnextchar[%] {\eqlrbox@i\makebox}% {\makebox}% } \DeclareRobustCommand{\eqframebox}{% \@ifnextchar[%] {\eqlrbox@i\framebox}% {\framebox}% } \DeclareRobustCommand{\eqsavebox}[1]{% \@ifnextchar[%] {\eqlrbox@i{\savebox{#1}}}% {\savebox{#1}}% } \def\eqlrbox@i#1[#2]{% \@ifnextchar[%] {\eqlrbox@ii{#1}[#2]}% {\eqlrbox@ii{#1}[#2][c]}% } \def\eqlrbox@ii#1[#2][#3]{% \gdef\eqp@produce@box##1##2{% #1[##1][#3]{##2}% }% \eqp@compute@width{#2}% } \def\eqp@compute@width#1#2{% \eqp@settowidth{\eqp@tempdimb}{#2}% \expandafter \ifx\csname eqp@this@#1\endcsname\relax \global\eqp@must@reruntrue \expandafter\xdef\csname eqp@this@#1\endcsname{\the\eqp@tempdimb}% \expandafter\xdef\csname eqp@next@#1\endcsname{\the\eqp@tempdimb}% \else \eqp@tempdima=\csname eqp@this@#1\endcsname\relax \ifdim\eqp@tempdima<\eqp@tempdimb \expandafter\xdef\csname eqp@this@#1\endcsname{\the\eqp@tempdimb}% \global\eqp@must@reruntrue \fi \eqp@tempdima=\csname eqp@next@#1\endcsname\relax \ifdim\eqp@tempdima<\eqp@tempdimb \expandafter\xdef\csname eqp@next@#1\endcsname{\the\eqp@tempdimb}% \fi \fi \@ifundefined{eqp@seen@#1}{% \expandafter\gdef\csname eqp@seen@#1\endcsname{}% \@cons\eqp@taglist{{#1}}% }{}% \eqp@tempdima=\csname eqp@this@#1\endcsname\relax \eqp@produce@box{\eqp@tempdima}{#2}% } \newcommand*{\eqboxwidth}[1]{% \@ifundefined{eqp@this@#1}{0pt}{\csname eqp@this@#1\endcsname}% } \endinput %% %% End of file `eqparbox.sty'. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/docs/source/file_layout.rst0000644000175100001710000003410714274323033021213 0ustar00runnerdockerLow-level file layout ===================== The overall structure of a file is as follows (in order): - :ref:`header` - :ref:`comments`, optional - :ref:`tree`, optional - Zero or more :ref:`block` - :ref:`block-index`, optional ASDF is a hybrid text and binary format. The header, tree and block index are text, (specifically, in UTF-8 with DOS or UNIX-style newlines), while the blocks are raw binary. The low-level file layout is designed in such a way that the tree section can be edited by hand, possibly changing its size, without requiring changes in other parts of the file. While such an operation may invalidate the :ref:`block-index`, the format is designed so that if the block index is removed or invalid, it may be regenerated by "skipping along" the blocks in the file. The same is not true for resizing a block, which has an explicit size stored in the block header (except for, optionally, the last block). Note also that, by design, an ASDF file containing no binary blocks is also a completely standard and valid YAML file. Additionally, the spec allows for extra unallocated space after the tree and between blocks. This allows libraries to more easily update the files in place, since it allows expansion of certain areas without rewriting of the entire file. .. _header: Header ------ All ASDF files must start with a short one-line header. For example:: #ASDF 1.0.0 It is made up of two parts, separated by white space characters: - **ASDF token**: The constant string ``#ASDF``. This can be used to quickly identify the file as an ASDF file by reading the first 5 bytes. It begins with a ``#`` so it will be treated as a YAML comment such that the :ref:`header` and the :ref:`tree` together form a valid YAML file. - **File format version**: The version of the low-level file format that this file was written with. This version may differ from the version of the ASDF specification, and is only updated when a change is made that affects the layout of file. It follows the `Semantic Versioning 2.0.0 `__ specification. See :ref:`versioning-conventions` for more information about these versions. The header in EBNF form:: asdf_token = "#ASDF" header = asdf_token " " format_version ["\r"] "\n" .. _comments: Comments -------- Additional comment lines may appear between the Header and the Tree. The use of comments here is intended for information for the ASDF parser, and not information of general interest to the end user. All data of interest to the end user should be in the Tree. Each line must begin with a ``#`` character. .. _tree: Tree ---- The tree stores structured information using a subset of `YAML Ain’t Markup Language (YAMLâ„¢) 1.1 `__ syntax (see :ref:`yaml_subset` for details on YAML features that are excluded from ASDF). While it is the main part of most ASDF files, it is entirely optional, and a ASDF file may skip it completely. This is useful for creating files in :ref:`exploded`. Interpreting the contents of this section is described in greater detail in :ref:`tree-in-depth`. This section only deals with the serialized representation of the tree, not its logical contents. The tree is always encoded in UTF-8, without an explicit byteorder marker (BOM). Newlines in the tree may be either DOS (``"\r\n"``) or UNIX (``"\n"``) format. In ASDF |version|, the tree must be encoded in `YAML version 1.1 `__. At the time of this writing, the latest version of the YAML specification is 1.2, however most YAML parsers only support YAML 1.1, and the benefits of YAML 1.2 are minor. Therefore, for maximum portability, ASDF requires that the YAML is encoded in YAML 1.1. To declare that YAML 1.1 is being used, the tree must begin with the following line:: %YAML 1.1 The tree must contain exactly one YAML document, starting with ``---`` (YAML document start marker) and ending with ``...`` (YAML document end marker), each on their own line. Between these two markers is the YAML content. For example:: %YAML 1.1 %TAG ! tag:stsci.edu:asdf/ --- !core/asdf-1.0.0 data: !core/ndarray-1.0.0 source: 0 datatype: float64 shape: [1024, 1024] ... The size of the tree is not explicitly specified in the file, so that it can easily be edited by hand. Therefore, ASDF parsers must search for the end of the tree by looking for the end-of-document marker (``...``) on its own line. For example, the following regular expression may be used to find the end of the tree:: \r?\n...\r?\n Though not required, the tree should be followed by some unused space to allow for the tree to be updated and increased in size without performing an insertion operation in the file. It also may be desirable to align the start of the first block to a filesystem block boundary. This empty space may be filled with any content (as long as it doesn't contain the ``block_magic_token`` described in :ref:`block`). It is recommended that the content is made up of space characters (``0x20``) so it appears as empty space when viewing the file. .. _block: Blocks ------ Following the tree and some empty space, or immediately following the header, there are zero or more binary blocks. Blocks represent a contiguous chunk of binary data and nothing more. Information about how to interpret the block, such as the data type or array shape, is stored entirely in ``ndarray`` structures in the tree, as described in :ref:`ndarray `. This allows for a very flexible type system on top of a very simple approach to memory management within the file. It also allows for new extensions to ASDF that might interpret the raw binary data in ways that are yet to be defined. There may be an arbitrary amount of unused space between the end of the tree and the first block. To find the beginning of the first block, ASDF parsers should search from the end of the tree for the first occurrence of the ``block_magic_token``. If the file contains no tree, the first block must begin immediately after the header with no padding. .. _block-header: Block header ^^^^^^^^^^^^ Each block begins with the following header: - ``block_magic_token`` (4 bytes): Indicates the start of the block. This allows the file to contain some unused space in which to grow the tree, and to perform consistency checks when jumping from one block to the next. It is made up of the following 4 8-bit characters: - in hexadecimal: d3, 42, 4c, 4b - in ascii: ``"\323BLK"`` - ``header_size`` (16-bit unsigned integer, big-endian): Indicates the size of the remainder of the header (not including the length of the ``header_size`` entry itself or the ``block_magic_token``), in bytes. It is stored explicitly in the header itself so that the header may be enlarged in a future version of the ASDF standard while retaining backward compatibility. Importantly, ASDF parsers should not assume a fixed size of the header, but should obey the ``header_size`` defined in the file. In ASDF version 0.1, this should be at least 48, but may be larger, for example to align the beginning of the block content with a file system block boundary. - ``flags`` (32-bit unsigned integer, big-endian): A bit field containing flags (described below). - ``compression`` (4-byte byte string): The name of the compression algorithm, if any. Should be ``\0\0\0\0`` to indicate no compression. See :ref:`compression` for valid values. - ``allocated_size`` (64-bit unsigned integer, big-endian): The amount of space allocated for the block (not including the header), in bytes. - ``used_size`` (64-bit unsigned integer, big-endian): The amount of used space for the block on disk (not including the header), in bytes. - ``data_size`` (64-bit unsigned integer, big-endian): The size of the block when decoded, in bytes. If ``compression`` is all zeros (indicating no compression), it **must** be equal to ``used_size``. If compression is being used, this is the size of the decoded block data. - ``checksum`` (16-byte string): An optional MD5 checksum of the used data in the block. The special value of all zeros indicates that no checksum verification should be performed. Flags ^^^^^ The following bit flags are understood in the ``flags`` field: - ``STREAMED`` (0x1): When set, the block is in streaming mode, and it extends to the end of the file. When set, the ``allocated_size``, ``used_size`` and ``data_size`` fields are ignored. By necessity, any block with the ``STREAMED`` bit set must be the last block in the file. .. _compression: Compression ^^^^^^^^^^^ Currently, two block compression types are supported: - ``zlib``: The zlib lossless compression algorithm. It is widely used, patent-unencumbered, and has an implementation released under a permissive license in `zlib `__. - ``bzp2``: The bzip2 lossless compression algorithm. It is widely used, assumed to be patent-unencumbered, and has an implementation released under a permissive license in the `bzip2 library `__. Block content ^^^^^^^^^^^^^ Immediately following the block header, there are exactly ``used_space`` bytes of meaningful data, followed by ``allocated_space - used_space`` bytes of unused data. The exact content of the unused data is not enforced. The ability to have gaps of unused space allows an ASDF writer to reduce the number of disk operations when updating the file. .. _block-index: Block index ----------- The block index allows for fast random access to each of the blocks in the file. It is completely optional: if not present, libraries may "skip along" the block headers to find the location of each block in the file. Libraries should detect invalid or obsolete block indices and ignore them and regenerate the index by skipping along the block headers. The block index appears at the end of the file to make streaming an ASDF file possible without needing to determine the size of all blocks up front, which is non-trivial in the case of compression. It also allows for updating the index without an expensive insertion operation earlier in the file. The block index must appear immediately after the allocated space for the last block in the file. If the last block is a streaming block, no block index may be present -- the streaming block feature and block index are incompatible. If no blocks are present in the file, the block index must also be absent. The block index consists of a header, followed by a YAML document containing the indices of each block in the file. The header must be exactly:: #ASDF BLOCK INDEX followed by a DOS or UNIX newline. Following the header is a YAML document (in YAML version 1.1, like the :ref:`tree`), containing a list of integers indicating the byte offset of each block in the file. The following is an example block index:: #ASDF BLOCK INDEX %YAML 1.1 --- [2043, 16340] ... The offsets in the block index must be monotonically increasing, and must, by definition, be at least "block header size" apart. If they were allowed to appear in any order, it would be impossible to rebuild the index by skipping blocks were the index to become damaged or out-of-sync. Additional zero-valued bytes may appear after the block index. This is mainly to support operating systems, such as Microsoft Windows, where truncating the file may not be easily possible. Implementation recommendations ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Libraries should look for the block index by reading backward from the end of the file. Libraries should be conservative about what is an acceptable index, since addressing incorrect parts of the file could result in undefined behavior. The following checks are recommended: - Always ensure that the first offset entry matches the location of the first block in the file. This will catch the common use case where the YAML tree was edited by hand without updating the index. If they do not match, do not use the entire block index. - Ensure that the last entry in the index refers to a block magic token, and that the end of the allocated space in the last block is immediately followed by the block index. If they do not match, do not use the entire block index. - When using an offset in the block index, always ensure that the block magic token exists at that offset before reading data. .. _exploded: Exploded form ------------- Exploded form expands a self-contained ASDF file into multiple files: - An ASDF file containing only the header and tree, which by design is also a valid YAML file. - *n* ASDF files, each containing a single block. Exploded form is useful in the following scenarios: - Not all text editors may handle the hybrid text and binary nature of the ASDF file, and therefore either can't open an ASDF file or would break an ASDF file upon saving. In this scenario, a user may explode the ASDF file, edit the YAML portion as a pure YAML file, and implode the parts back together. - Over a network protocol, such as HTTP, a client may only need to access some of the blocks. While reading a subset of the file can be done using HTTP ``Range`` headers, not all web servers support this HTTP feature. Exploded form allows each block to be requested directly by a specific URI. - An ASDF writer may stream a table to disk, when the size of the table is not known at the outset. Using exploded form simplifies this, since a standalone file containing a single table can be iteratively appended to without worrying about any blocks that may follow it. Exploded form describes a convention for storing ASDF file content in multiple files, but it does not require any additions to the file format itself. There is nothing indicating that an ASDF file is in exploded form, other than the fact that some or all of its blocks come from external files. The exact way in which a file is exploded is up to the library and tools implementing the standard. In the simplest scenario, to explode a file, each :ref:`ndarray source property ` in the tree is converted from a local block reference into a relative URI. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/docs/source/index.rst0000644000175100001710000000204714274323033020004 0ustar00runnerdocker.. _asdf-standard: ASDF Standard ============= This document describes the Advanced Scientific Data Format (ASDF), pronounced *AZ*-diff. The ASDF python implementation documentation can be found :ref:`here `. .. only:: html Contents: .. toctree:: :maxdepth: 1 intro.rst file_layout.rst tree.rst versioning.rst schemas.rst schemas/index.rst known_limits.rst changes.rst asdf_in_fits.rst dev_api.rst .. note:: This is the **A**\ dvanced **S**\ cientific **D**\ ata **F**\ ormat - if you are looking for the **A**\ daptable **S**\ eismic **D**\ ata **F**\ ormat, go here: http://seismic-data.org/ A paper, `ASDF: A new data format for astronomy `__ about ASDF has been published in *Astronomy and Computing*: Greenfield, P., Droettboom, M., & Bray, E. (2015). ASDF: A new data format for astronomy. *Astronomy and Computing*, 12: 240-251. doi:10.1016/j.ascom.2015.06.004 .. only:: html * :ref:`genindex` * :ref:`search` ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/docs/source/intro.rst0000644000175100001710000001202014274323033020020 0ustar00runnerdockerIntroduction ============ The Flexible Image Transport System (FITS) has been the de facto standard for storing and exchanging astronomical data for decades, but it is beginning to show its age. Developed in the late 1970s, the FITS authors made a number of implementation choices that, while common at the time, are now seen to limit its utility for the needs of modern science. As astronomy moves into a more varied set of data product types (data models) with richer and more complex metadata, FITS is being pushed to its breaking point. The issues with FITS are outlined in great detail in [Thomas2015]_. Newer formats, such as `VOTable `__ have partially addressed the problem of richer, more structured metadata, by using tree structures rather than flat key/value pairs. However, those text-based formats are unsuitable for storing large amounts of binary data. On the other end of the spectrum, formats such as `HDF5 `__ and `BLZ `__ address problems with large data sets and distributed computing, but don't really address the metadata needs of an interchange format. ASDF aims to exist in the same middle ground that made FITS so successful, by being a hybrid text and binary format: containing human editable metadata for interchange, and raw binary data that is fast to load and use. Unlike FITS, the metadata is highly structured and is designed up-front for extensibility. ASDF has the following explicit goals: - It has a hierarchical metadata structure, made up of basic dynamic data types such as strings, numbers, lists and mappings. - It has human-readable metadata that can be edited directly in place in the file. - The structure of the data can be automatically validated using schema. - It's designed for extensibility: new conventions may be used without breaking backward compatibility with tools that do not understand those conventions. Versioning systems are used to prevent conflicting with alternative conventions. - The binary array data (when compression is not used) is a raw memory dump, and techniques such as memory mapping can be used to efficiently access it. - It is possible to read and write the file in as a stream, without requiring random access. - It's built on top of industry standards, such as `YAML `__ and `JSON Schema `__ to take advantage of a larger community working on the core problems of data representation. This also makes it easier to support ASDF in new programming languages and environments by building on top of existing libraries. - Since every ASDF file has the version of the specification to which it is written, it will be possible, through careful planning, to evolve the ASDF format over time, allowing for files that use new features while retaining backward compatibility with older tools. ASDF is primarily intended as an interchange format for delivering products from instruments to scientists or between scientists. While it is reasonably efficient to work with and transfer, it may not be optimal for direct use on large data sets in distributed and high performance computing environments. That is explicitly not a goal of the ASDF standard, as those requirements can sometimes be at odds with the needs of an interchange format. ASDF still has a place in those environments as a delivery mechanism, even if it ultimately is not the actual format on which the computing is performed. Implementations --------------- The ASDF standard is being developed concurrently with a `reference implementation written in Python `__. There are two prototype implementations for C++: `asdf-cpp `__ and `asdf-cxx `__. Neither is currently feature complete, but both provide enough functionality to read and write ASDF files. There is also a `work-in-progress wrapper `__ of the Python implementation for `Julia `__. Incorporated standards ---------------------- The ASDF format is built on top of a number of existing standards: - `YAML 1.1 `__ - JSON Schema Draft 4: - `Core `__ - `Validation `__ - `Hyper-Schema `__ - `JSON Pointer `__ - `Semantic Versioning 2.0.0 `__ - `VOUnits (Units in the VO) `__ - `Zlib Deflate compression `__ .. [Thomas2015] Thomas, B., Jenness. T. et al. (2015). Learning from FITS: Limitations in use in modern astronomical research. *Astronomy and Computing*, 12: 133-145. `doi:10.1016/j.ascom.2015.01.009 `__ ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/docs/source/known_limits.rst0000644000175100001710000000251514274323033021412 0ustar00runnerdocker.. _known-limits: Known limits ============ The following is a catalogue of known limits in ASDF |version|. Tree ---- While there is no hard limit on the size of the Tree, in most practical implementations it will need to be read entirely into main memory in order to interpret it, particularly to support forward references. This imposes a practical limit on its size relative to the system memory on the machine. It is not recommended to store large data sets in the tree directly, instead it should reference blocks. .. _literal_integers: Literal integer values in the Tree ---------------------------------- For practical reasons, integer literals in the Tree must be at most 64-bits within the ``int64`` range. In other words, number must be no greater than 9,223,372,036,854,775,807 or no less than -9,223,372,036,854,775,806. As of version **1.3.0** of the standard, arbitrary precision integers are supported using :ref:`integer `. Like all tags, use of this type requires library support. Blocks ------ The maximum size of a block header is 65536 bytes. Since the size of the block is stored in a 64-bit unsigned integer, the largest possible block size is around 18 exabytes. It is likely that other limitations on file size, such as an operating system's filesystem limitations, will be met long before that. ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3646994 asdf_standard-1.0.3/docs/source/schemas/0000755000175100001710000000000014274323045017566 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/docs/source/schemas/core.rst0000644000175100001710000000065614274323033021254 0ustar00runnerdocker.. _core-schema: Core ==== The ``core`` module contains schema that must be implemented by every asdf library. .. asdf-autoschemas:: core/asdf-1.1.0 core/complex-1.0.0 core/ndarray-1.0.0 core/table-1.0.0 core/column-1.0.0 core/constant-1.0.0 core/software-1.0.0 core/history_entry-1.0.0 core/extension_metadata-1.0.0 core/integer-1.0.0 core/externalarray-1.0.0 core/subclass_metadata-1.0.0 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/docs/source/schemas/fits.rst0000644000175100001710000000032214274323033021257 0ustar00runnerdocker.. _fits-schema: FITS ==== The ``fits`` module contains schema that support backward compatibility with FITS. It can safely be ignored by most ASDF implementations. .. asdf-autoschemas:: fits/fits-1.0.0 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/docs/source/schemas/index.rst0000644000175100001710000000171414274323033021427 0ustar00runnerdocker.. _resources: ASDF Standard Resources ======================= The included schema and manifest resources made available by the ASDF-standard are described below. .. _schema: ASDF Standard Schema Definitions -------------------------------- ASDF schemas are arranged into "modules". All ASDF implementations must support the "core" module, but the other modules are optional. .. toctree:: :maxdepth: 2 core.rst fits.rst unit.rst time.rst legacy.rst The ASDF Standard also defines two meta-schemas that are used for validating the ASDF schemas themselves. These schemas are useful references when creating custom schemas (see `extending-asdf`). .. toctree:: :maxdepth: 0 yaml_schema.rst .. asdf-autoschemas:: asdf-schema-1.0.0 The following graph shows the dependencies between modules: .. digraph:: modules "fits" -> "core" "unit" -> "core" "time" -> "core" "core" -> "unit" .. _manifest: .. include:: manifest.rst ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/docs/source/schemas/legacy.rst0000644000175100001710000000033314274323033021560 0ustar00runnerdocker.. _legacy-schema: Legacy schemas ============== The following legacy schemas and not part of the most recent ASDF standard version: .. asdf-autoschemas:: core/asdf-1.0.0 time/time-1.0.0 time/time-1.1.0 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/docs/source/schemas/manifest.rst0000644000175100001710000000064114274323033022124 0ustar00runnerdocker ASDF Standard Manifests ----------------------- The ASDF tags (described by schemas) available under each ASDF standard version are all described by a single manifest document for that ASDF standard version. .. asdf-autoschemas:: :schema_root: ../../resources/manifests :standard_prefix: asdf-format.org/core core-1.0.0 core-1.1.0 core-1.2.0 core-1.3.0 core-1.4.0 core-1.5.0 core-1.6.0 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/docs/source/schemas/time.rst0000644000175100001710000000024714274323033021256 0ustar00runnerdocker.. _time-schema: Time ==== The ``time`` module contains schema to support representing instances in time and time deltas. .. asdf-autoschemas:: time/time-1.2.0 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/docs/source/schemas/unit.rst0000644000175100001710000000030614274323033021273 0ustar00runnerdocker.. _unit-schema: Unit ==== The ``unit`` module contains schema to support the units of physical quantities. .. asdf-autoschemas:: unit/unit-1.0.0 unit/defunit-1.0.0 unit/quantity-1.1.0 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/docs/source/schemas/yaml_schema.rst0000644000175100001710000000233414274323033022601 0ustar00runnerdocker.. _yaml-schema: YAML Schema =========== :ref:`YAML Schema ` is a small extension to `JSON Schema Draft 4 `__ that adds some features specific to YAML. `Understanding JSON Schema `__ provides a good resource for understanding how to use JSON Schema, and further resources are available at `json-schema.org `__. A working understanding of JSON Schema is assumed for this section, which only describes what makes YAML Schema different from JSON Schema. Writing a new schema is described in :ref:`extending-asdf`. .. note:: The YAML Schema currently does not require either the ``id`` or ``tag`` keywords. The ``id`` keyword is not included in the YAML Schema since it is actually inherited from the base JSON Schema standard. However, it may become mandatory in a future version of the YAML Standard. The ``tag`` keyword may also eventually become mandatory, although the motivation for this is somewhat weaker. .. _yaml-schema-draft-01: .. asdf-schema:: :schema_root: ../../resources/schemas/stsci.edu :standard_prefix: yaml-schema/draft-01 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/docs/source/schemas.rst0000644000175100001710000005034514274323033020324 0ustar00runnerdocker.. _asdf-schemas: ASDF Schemas ============ ASDF uses `JSON Schema`_ to perform validation of ASDF files. Schema validation of ASDF files serves the following purposes: * Ensures conformity with core data types defined by the ASDF Standard. ASDF readers can detect whether an ASDF file has been modified in a way that would render it unreadable or unrecognizable. * Enables interoperability between ASDF implementations. Implementations that recognize the same schema definitions should be able to interpret files containing instances of data types that conform to those schemas. * Allows for the definition of custom data types. External software packages can provide ASDF schemas that correspond to types provided by that package, and then serialize instances of those types in a way that is standardized and portable. All ASDF implementations must implement the types defined by the `core schemas ` and validate against them when reading files. [#]_ The ASDF Standard also defines two other categories of schemas, which are optional for ASDF implementations: * :ref:`unit ` * :ref:`time ` .. Fits is deliberately omitted from this list. The ASDF Standard also defines two metaschemas which are used to validate the ASDF schemas themselves: * :ref:`yaml-schema` * :ref:`ASDF Schema ` More information on the schemas defined by ASDF can be found in :ref:`schema`. Schema Implementation --------------------- ASDF schemas are encoded in YAML and conform to a superset of `JSON Schema`_ called :ref:`yaml-schema`. The version of YAML supported by ASDF is 1.1. Accordingly, all schemas begin with the following YAML header:: %YAML 1.1 --- The following top-level attributes are required for all ASDF schemas: [#]_ * ``$schema``: Indicates the metaschema definition used to validate this schema * ``id``: A name that uniquely identifies the schema * ``tag``: The YAML tag corresponding to the type described by this schema Each of these attributes is described in more detail below. $schema ^^^^^^^ ASDF schemas use the top-level ``$schema`` attribute to declare the metaschema that is used to validate the schema itself. Most custom ASDF schemas will conform to :ref:`YAML Schema ` defined by the ASDF Standard, and so will have the following top-level attribute:: $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" Some ASDF schemas use the :ref:`ASDF metaschema ` instead (e.g. `ndarray `). It is also possible to create custom metaschemas, although these should always inherit from either YAML Schema or the ASDF metaschema. [#]_ Some ASDF implementations may choose to validate the schemas themselves (e.g. as part of a regression testing suite). The ``$schema`` keyword should be used to determine the metaschema to be used for validation. All schemas should also validate successfully against :ref:`yaml-schema`. id ^^ The ``id`` represents the globally unique name of the schema. It must be a `valid URI `__ and cannot be an empty string or an empty fragment (e.g. ``#``). See `naming-conventions` for conventions to ensure global uniqueness. While the ``id`` must be a valid URI, it does not have to describe a real location on disk or on a network. For example, the ``id`` values for all schemas in the ASDF Standard begin with the prefix ``http://stsci.edu/schemas/asdf/``. However, as of this writing, none of the schemas are actually hosted at that location. The ``id`` keyword is used for reference resolution both within a schema and between schemas. Relative references within a schema are resolved against the ``id`` of that schema. A reference to an external schema uses the ``id`` of that schema. See `schema-references` below for additional information. Each ASDF implementation must define how to resolve a schema ``id`` to a real resource that contains the schema itself. This could be done in a variety of ways, but the following seem like the most likely possibilities: * Resolve the ``id`` to a real network location (assuming the schema is actually hosted at that location) * Map the ``id`` to a file location on disk that contains the schema Other mappings are possible in theory. For example, a schema could be stored in a string literal as part of a program. tag ^^^ The ``tag`` attribute is used by ASDF to associate an instance of a data type in an ASDF file with the appropriate schema to be used for validation. It is a concept from YAML (see the `documentation `__). Libraries that provide custom schemas must ensure that the YAML tag that is written for a particular data type must match the ``tag`` attribute in the schema that corresponds to the data type. Tags must conform to the tag URI scheme which is defined in `RFC 4151`_, but are otherwise perfectly arbitrary. However, certain `naming-conventions` are recommended in order to facilitate a mapping between ``tag`` and ``id`` attributes. ASDF implementations must be able to map ``tag`` attributes to the corresponding schema ``id``. The way that this mapping is defined is up to individual implementations. However, if the `naming-conventions` are followed, most implementations will be able to perform prefix matching and replacement. While the ``id`` attribute will almost certainly become required in a future version of the ASDF Standard, the ``tag`` attribute may remain optional. This is because schemas can be referenced by ``id`` without necessarily referring to a particular tagged type in the YAML representation. .. _descriptive-info: Descriptive information ^^^^^^^^^^^^^^^^^^^^^^^ Each schema may optionally contain descriptive fields: ``title``, ``description`` and ``examples``. These fields may contain core markdown syntax (which will be used for the purposes of rendering schema documentation by, for example, `sphinx-asdf `__). - ``title``: A one-line summary of the data type described by the schema - ``description``: A lengthier prose description of the schema - ``examples``: A list of example content that conforms to the schema, illustrating how to use it. .. _schema-references: References ^^^^^^^^^^ A particular ASDF schemas can contain references to other ASDF schemas. References are encoded by using the ``$ref`` attribute anywhere in the tree. While `JSON Schema`_ references are purely based on ``id``, ASDF implementations must be able to resolve references using both ``id`` and ``tag`` attributes. The resolution of ``id`` or ``tag`` references to actual schema files is up to individual implementations. It is recommended for ASDF implementations to use a two-phase mapping: one from ``tag`` to ``id``, and another from ``id`` to an actual schema resource. In most cases, the ``id`` will be resolved to a location on disk (e.g. to a schema file that is installed in a known location). However, other scenarios might involve schemas that are hosted on a network, or schemas that are embedded in source files as string literals. .. _naming-conventions: Naming Conventions ^^^^^^^^^^^^^^^^^^ Schema ``id`` attributes must be valid URIs. Schema ``tag`` attributes must be valid URIs that conform to the tag URI scheme defined in `RFC 4151`_ Aside from these requirements, assignment of these attributes is perfectly arbitrary. However, certain conventions are **strongly** recommended in order to ensure uniqueness and to enable a simple correspondence between the ``id`` and ``tag`` attributes. These conventions are described below. All schema ids should encode the following information: * **organization**: Indicates the organization that created the schema * **standard**: The "standard" this schema belongs to. This will usually correspond to the name of the software package that provides this schema. * **name**: The name of the data type corresponding to this schema. * **version**: The version of the schema. See `versioning-conventions` for more details. Consider the schemas from the ASDF Standard as an example. In this case, the **organization** is ``stsci.edu``, which is the web address of the organization that created the schemas. The **standard** is ``asdf``. Each individual schema in the ASDF Standard has a different **name** field. In the case of the :ref:`ndarray ` data type, for example, the name is ``core/ndarray``. The version of `ndarray ` is ``1.0.0``. Some other types in the ASDF Standard have multiple versions, such as ``quantity-1.0.0`` and :ref:`quantity-1.1.0 `. While schema ids can be any valid URI, under this convention they always begin with ``http://``. The general format of the id attribute becomes:: http:///schemas//- Continuing with the example of :ref:`ndarray `, we have:: id: "http://stsci.edu/schemas/asdf/core/ndarray-1.0.0" The idea behind the convention for ``id`` is that it should be possible (in principle if not in practice) for schemas to be hosted at the corresponding URL. This motivates the choice of the organization's web address as the **organization** component. However, this is not a requirement. The primary objective is to create a globally unique id. Given the components defined above, the ``tag`` definition follows in a straightforward manner. The generic tag URI template is:: tag::/- Considering `ndarray ` once again, we have:: tag: "tag:stsci.edu:asdf/core/ndarray-1.0.0" Following the naming convention for both ``id`` and ``tag`` attributes enables a simple mapping from ``tag`` to ``id``. In this case, simply take the prefix ``tag:stsci.edu:`` and replace it with ``http://stsci.edu/schemas/``. .. _extending-asdf: Designing a new tag and schema ------------------------------ This section will walk through the development of a new tag and schema. In the example, suppose we work at the Example Organization, which can be found on the world wide web at ``example.org``. We're developing a new instrument, ``foo``, and we need a way to define the specialized metadata to describe the exposures that it will be generating. According to the `naming-conventions`, our ``tag`` and ``id`` attributes will consist of the following components: * **organization**: ``example.org`` * **standard**: ``foo`` * **name**: ``metadata`` * **version**: ``1.0.0`` (by convention the starting version for all new schemas) So, for our example instrument metadata, the tag is:: tag:example.org:foo/metadata-1.0.0 Each tag should be associated with a schema in order to validate it. Each schema must also have a universally unique ``id``, which is in the form of unique URI. Note that this URI doesn't actually have to resolve to anything. In fact, visiting that URL in your web browser is likely to bring up a ``404`` error. All that's necessary is that it is universally unique and that the tool reading the ASDF file is able to map from a tag name to a schema URI, and then load the associated schema. Again following with our example, we will assign the following URI to refer to our schema:: http://example.org/schemas/foo/metadata-1.0.0 Therefore, in our schema file, we have the following keys, one declaring the name of the YAML ``tag``, and one defining the ``id`` of the schema:: id: "http://example.org/schemas/foo/metadata-1.0.0" tag: "tag:example.org:foo/metadata-1.0.0" Since our schema is just a basic ASDF schema, we will declare that it conforms to `yaml-schema` defined by the ASDF Standard:: $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" Descriptive information ^^^^^^^^^^^^^^^^^^^^^^^ Continuing our example, we include some `descriptive metadata ` about the data type declared by the schema itself:: title: | Metadata for the foo instrument. description: | This stores some information about an exposure from the foo instrument. examples: - - A minimal description of an exposure. - | tag:example.org:foo/metadata-1.0.0 exposure_time: 0.001 The schema proper ^^^^^^^^^^^^^^^^^ The rest of the schema describes the acceptable data types and their structure. The format used for this description comes straight out of JSON Schema, and rather than documenting all of the things it can do here, please refer to `Understanding JSON Schema `__, and the further resources available at `json-schema.org `__. In our example, we'll define two metadata elements: the name of the investigator, and the exposure time, each of which also have a description:: type: object properties: investigator: type: string description: | The name of the principal investigator who requested the exposure. exposure_time: type: number description: | The time of the exposure, in nanoseconds. We'll also define an optional element for the exposure time unit. This is a somewhat contrived example to demonstrate how to include elements in your schema that are based on the custom types defined in the ASDF standard:: exposure_time_units: $ref: "http://stsci.edu/schemas/asdf/unit/unit-1.0.0" description: | The unit of the exposure time. default: s Lastly, we'll declare ``exposure_time`` as being required, and allow extra elements to be added:: required: [exposure_time] additionalProperties: true The complete example ^^^^^^^^^^^^^^^^^^^^ Here is our complete schema example:: %YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://example.org/schemas/foo/metadata-1.0.0" tag: "tag:example.org:foo/metadata-1.0.0" title: | Metadata for the foo instrument. description: | This stores some information about an exposure from the foo instrument. examples: - - A minimal description of an exposure. - | tag:example.org:foo/metadata-1.0.0 exposure_time: 0.001 type: object properties: investigator: type: string description: | The name of the principal investigator who requested the exposure. exposure_time: type: number description: | The time of the exposure, in nanoseconds. exposure_time_units: $ref: "http://stsci.edu/schemas/asdf/unit/unit-1.0.0" description: | The unit of the exposure time. default: s required: [exposure_time] additionalProperties: true .. _extending-a-schema: Extending an existing schema ---------------------------- `JSON Schema`_ does not support the concept of inheritance, which makes it somewhat awkward to express type hierarchies. However, it is possible to create a custom schema that adds attributes to an existing schema (e.g. one defined in the ASDF Standard). It is important to remember that it is not possible to override or remove any of the attributes from the existing schema. The following important caveats apply when extending an existing schema: * It is not possible to redefine, override, or delete any attributes in the original schema. * It will not be possible to add attributes to any node where the original schema declares ``additionalProperties: false`` * Instances of the custom type will not be recognized as an instance of the original type when resolving schema references or processing YAML tags (i.e. there is no concept of polymorphism). Here's an example of extending a schema using the `software ` schema defined by the ASDF Standard. Here's the original schema, for reference:: %YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/core/software-1.0.0" title: | Describes a software package. description: | General-purpose description of a software package. tag: "tag:stsci.edu:asdf/core/software-1.0.0" type: object properties: name: description: | The name of the application or library. type: string author: description: | The author (or institution) that produced the software package. type: string homepage: description: | A URI to the homepage of the software. type: string format: uri version: description: | The version of the software used. It is recommended, but not required, that this follows the (Semantic Versioning Specification)[http://semver.org/spec/v2.0.0.html]. type: string required: [name, version] additionalProperties: true ... Since the software schema permits additional properties, we are free to extend it to include an email address for contacting the author:: %YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://somewhere.org/schemas/software_extended-1.0.0" title: | Describes a software package. description: | Extension of ASDF core software schema to include the software author's contact email. allOf: - $ref: http://stsci.edu/schemas/asdf/core/software-1.0.0 - properties: author_email: description: | The contact email of the software author. type: string required: [author_email] ... The crucial portion of this schema definition is the way that the ``allOf`` operator is used to join a reference to the base software schema with the definition of a new property called ``author_email``. The ``allOf`` combiner means that any instance that is validated against ``software_extended-1.0.0`` will have to conform to both the base software schema and the properties specific to the extended schema. Default annotation ------------------ The JSON Schema spec includes a schema annotation attribute called ``default`` that can be used to describe the default value of a data attribute when that attribute is missing. Recent versions of the spec `point out `__ that there is no single correct way to choose an annotation value when multiple are available due to references and combiners. This presents a problem when trying to fill in missing data in a file based on the schema ``default``: if multiple conflicting values are available, the software does not know how to choose. Previous versions of the ASDF Standard did not offer guidance on how to use ``default``. The Python reference implementation read the first default that it encountered as a literal value and inserted that value into the tree when the corresponding attribute was otherwise missing. Until version 2.8, it also removed attributes on write whose values matched their schema defaults. The resulting files would appear to the casual viewer to be missing data, and may in fact be invalid against their schemas if the any of the removed attributes were required. Implementations **must not** remove attributes with default values from the tree. Beginning with ASDF Standard 1.6.0, implementations also must not fill default values directly from the schema. This will avoid ambiguity when multiple schema defaults are present, and also permit the ``default`` attribute to contain a description that is not appropriate to use as a literal default value. For example:: default: An array of zeros matching the dimensions of the data array. For ASDF Standard < 1.6.0, filling default values from the schema is required. This is necessary to support files written by older versions of the Python implementation. .. rubric:: Footnotes .. [#] Implementations may expose the control of validation on reading to the user (e.g. to disable it on demand). However, validation on reading should be the default behavior. .. [#] The presence of ``id`` and ``tag`` is not currently enforced by the YAML Schema but may be in a future version of the ASDF Standard. Authors of new schemas should assume that at the very least ``id`` will be required in a future version of the Standard. .. [#] For an example of how to inherit from another metaschema, look at the `contents `__ of the ASDF metaschema and see how there is a reference to the YAML schema in the top-level ``allOf``. .. Links .. _JSON Schema: http://json-schema.org .. _RFC 4151: https://tools.ietf.org/html/rfc4151 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/docs/source/tree.rst0000644000175100001710000002772414274323033017645 0ustar00runnerdocker.. _tree-in-depth: The tree in-depth ================= The ASDF tree, being encoded in YAML, is built out of the basic structures common to most dynamic languages: mappings (dictionaries), sequences (lists), and scalars (strings, integers, floating-point numbers, booleans, etc.). All of this comes "for free" by using `YAML `__. Since these core data structures on their own are so flexible, the ASDF standard includes a number of schema that define the structure of higher-level content. For instance, there is a schema that defines how :ref:`n-dimensional array data ` should be described. These schema are written in a language called :ref:`yaml-schema` which is just a thin extension of `JSON Schema, Draft 4 `__. (Such extensions are allowed and even encouraged by the JSON Schema standard, which defines the ``$schema`` attribute as a place to specify which extension is being used.) `asdf-schemas` contains an overview of how schemas are defined and used by ASDF. :ref:`schema` describes in detail all of the schemas provided by the ASDF Standard. reference to all of schemas in detail. .. _yaml_subset: YAML subset ----------- For reasons of portability, some features of YAML 1.1 are not permitted in an ASDF tree. Restricted mapping keys ^^^^^^^^^^^^^^^^^^^^^^^ YAML itself places no restrictions on the object type used as a mapping key; floats, sequences, even mappings themselves can serve as a key. For example, the following is a perfectly valid YAML document:: %YAML 1.1 --- {foo: bar}: 3.14159: baz [1, 2, 3]: qux ... However, such a file may not be easily parsed in all languages. Python, for example, does not include a hashable mapping type, so the two major Python YAML libraries both fail to construct the object described by this document. Floating-point keys are described as "not recommended" in the YAML 1.1 spec because YAML does not specify an accuracy for floats. For these reasons, mapping keys in ASDF trees are restricted to the following scalar types: - bool - int - str .. _tags: Tags ---- YAML includes the ability to assign :ref:`tags` (or types) to any object in the tree. This is an important feature that sets it apart from other data representation languages, such as JSON. ASDF defines a number of custom tags, each of which has a corresponding schema. For example the tag of the root element of the tree must always be ``tag:stsci.edu:asdf/core/asdf-1.1.0``, which corresponds to the :ref:`asdf schema ` --in other words, the top level schema for ASDF trees. A validating ASDF reader would encounter the tag when reading in the file, load the corresponding schema, and validate the content against it. An ASDF library may also use this information to convert to a native data type that presents a more convenient interface to the user than the structure of basic types stored in the YAML content. For example:: %YAML 1.1 --- ! data: ! source: 0 datatype: float64 shape: [1024, 1024] byteorder: little ... All tags defined in the ASDF standard itself begin with the prefix ``tag:stsci.edu:asdf/``. This can be broken down as: - ``tag:`` The standard prefix used for all YAML tags. - ``stsci.edu`` The owner of the tag. - ``asdf`` The name of the standard. Following that is the "module" containing the schema (see :ref:`schema` for a list of the available modules). Lastly is the tag name itself, for example, ``asdf`` or ``ndarray``. Since it is cumbersome to type out these long prefixes for every tag, it is recommended that ASDF files declare a prefix at the top of the YAML file and use it throughout. (Most standard YAML writing libraries have facilities to do this automatically.) For example, the following example is equivalent to the above example, but is more user-friendly. The ``%TAG`` declaration declares that the exclamation point (``!``) will be replaced with the prefix ``tag:stsci.edu:asdf/``:: %YAML 1.1 %TAG ! tag:stsci.edu:asdf/ --- !core/asdf-1.1.0 data: !core/ndarray-1.0.0 source: 0 datatype: float64 shape: [1024, 1024] byteorder: little An ASDF parser may use the tag to look up the corresponding schema in the ASDF standard and validate the element. The schema definitions ship as part of the ASDF standard. An ASDF parser may also use the tag information to convert the element to a native data type. For example, in Python, an ASDF parser may convert a :ref:`ndarray ` tag to a `Numpy `__ array instance, providing a convenient and familiar interface to the user to access *n*-dimensional data. The ASDF standard does not require parser implementations to validate or perform native type conversion, however. A parser may simply leave the tree represented in the low-level basic data structures. When writing an ASDF file, however, the elements in the tree must be appropriately tagged for other tools to make use of them. ASDF parsers must not fail when encountering an unknown tag, but must simply retain the low-level data structure and the presence of the tag. This is important, as end users will likely want to store their own custom tags in ASDF files alongside the tags defined in the ASDF standard itself, and the file must still be readable by ASDF parsers that do not understand those tags. .. _references: References ---------- It is possible to directly reference other items within the same tree or within the tree of another ASDF file. This functionality is based on two IETF standards: `JSON Pointer (IETF RFC 6901) `__ and `JSON Reference (Draft 3) `__. A reference is represented as a mapping (dictionary) with a single key/value pair. The key is always the special keyword ``$ref`` and the value is a URI. The URI may contain a fragment (the part following the ``#`` character) in JSON Pointer syntax that references a specific element within the external file. This is a ``/``-delimited path where each element is a mapping key or an array index. If no fragment is present, the reference refers to the top of the tree. .. note:: JSON Pointer is a very simple convention. The only wrinkle is that because the characters ``'~'`` (0x7E) and ``'/'`` (0x2F) have special meanings, ``'~'`` needs to be encoded as ``'~0'`` and ``'/'`` needs to be encoded as ``'~1'`` when these characters appear in a reference token. When these references are resolved, this mapping should be treated as having the same logical content as the target of the URI, though the exact details of how this is performed is dependent on the implementation, i.e., a library may copy the target data into the source tree, or it may insert a proxy object that is lazily loaded at a later time. For example, suppose we had a given ASDF file containing some shared reference data, available on a public webserver at the URI ``http://www.nowhere.com/reference.asdf``:: wavelengths: - !core/ndarray source: 0 shape: [256, 256] datatype: float byteorder: little Another file may reference this data directly:: reference_data: $ref: "http://www.nowhere.com/reference.asdf#/wavelengths/0" It is also possible to use references within the same file:: data: !core/ndarray source: 0 shape: [256, 256] datatype: float byteorder: little mask: $ref: "#/my_mask" my_mask: !core/ndarray source: 0 shape: [256, 256] datatype: uint8 byteorder: little Reference resolution should be performed *after* the entire tree is read, therefore forward references within the same file are explicitly allowed. .. note:: The YAML 1.1 standard itself also provides a method for internal references called "anchors" and "aliases". It does not, however, support external references. While ASDF does not explicitly disallow YAML anchors and aliases, since it explicitly supports all of YAML 1.1, their use is discouraged in favor of the more flexible JSON Pointer/JSON Reference standard described above. .. _numeric-literals: Numeric literals ---------------- Integers represented as string literals in the ASDF tree must be no more than 64-bits. Due to :class:`~numpy.ndarray` types in :ref:`Numpy `, this is further restricted to ranges defined for signed 64-bit integers (int64), not unsigned 64-bit integers (uint64). .. _tree-comments: Comments -------- It is quite common in FITS files to see comments that describe the purpose of the key/value pair. For example:: DATE = '2015-02-12T23:08:51.191614' / Date this file was created (UTC) TACID = 'NOAO ' / Time granting institution Bringing this convention over to ASDF, one could imagine:: # Date this file was created (UTC) creation_date: !time/utc 2015-02-12T23:08:51.191614 # Time granting institution time_granting_institution: NOAO It should be obvious from the examples that these kinds of comments, describing the global meaning of a key, are much less necessary in ASDF. Since ASDF is not limited to 8-character keywords, the keywords themselves can be much more descriptive. But more importantly, the schema for a given key/value pair describes its purpose in detail. (It would be quite straightforward to build a tool that, given an entry in a YAML tree, looks up the schema's description associated with that entry.) Therefore, the use of comments to describe the global meaning of a value are strongly discouraged. However, there still may be cases where a comment may be desired in ASDF, such as when a particular value is unusual or unexpected. The YAML standard includes a convention for comments, providing a handy way to include annotations in the ASDF file:: # We set this to filter B here, even though C is the more obvious # choice, because B is handled with more accuracy by our software. filter: type: B Unfortunately, most YAML parsers will simply throw these comments out and do not provide any mechanism to retain them, so reading in an ASDF file, making some changes, and writing it out will remove all comments. Even if the YAML parser could be improved or extended to retain comments, the YAML standard does not define which values the comments are associated with. In the above example, it is only by standard reading conventions that we assume the comment is associated with the content following it. If we were to move the content, where should the comment go? To provide a mechanism to add user comments without swimming upstream against the YAML standard, we recommend a convention for associating comments with objects (mappings) by using the reserved key name ``//``. In this case, the above example would be rewritten as:: filter: //: | We set this to filter B here, even though C was used, because B is handled with more accuracy by our software. type: B ASDF parsers must not interpret or react programmatically to these comment values: they are for human reference only. No schema may use ``//`` as a meaningful key. Null values ----------- YAML permits serialization of null values using the ``null`` literal:: some_key: null Previous versions of the ASDF Standard were vague as to how nulls should be handled, and the Python reference implementation did not distinguish between keys with null values and keys that were missing altogether (and in fact, removed any keys assigned ``None`` from the tree on read or write). Beginning with ASDF Standard 1.6.0, ASDF implementatations are required to preserve keys even if assigned null values. This requirement does not extend back into previous versions, and users of the Python implementation should be advised that the YAML portion of a < 1.6.0 ASDF file containing null values may be modified in unexpected ways when read or written. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/docs/source/versioning.rst0000644000175100001710000001265014274323033021061 0ustar00runnerdocker.. _versioning-conventions: Versioning Conventions ====================== One of the explicit goals of ASDF is to be as future proof as possible. This involves being able to add features as needed while still allowing older libraries that may not understand those new features to reasonably make sense of the rest of the file. The ASDF standard includes three categories of versions, all of which may advance independently of one another. - **Standard version**: The version of the standard as a whole. This version provides a convenient handle to refer to a particular snapshot of the ASDF standard at a given time. This allows libraries to advertise support for "ASDF standard version X.Y.Z". - **File format version**: Refers to the version of the blocking scheme and other details of the low-level file layout. This is the number that appears on the ``#ASDF`` header line at the start of every ASDF file and is essential to correctly interpreting the various parts of an ASDF file. - **Schema versions**: Each schema for a particular YAML tag is individually versioned. This allows schemas to evolve, while still allowing data written to an older version of the schema to be validated correctly. Schemas provided by third parties (i.e. not in the ASDF specification itself) are also strongly encouraged to be versioned as well. Version numbers all follow the same convention according to the `Semantic Versioning 2.0.0 `__ specification. - **major version**: The major version number advances when a backward incompatible change is made. For example, this would happen when an existing property in a schema changes meaning. (An exception to this is that when the major version is 0, there are no guarantees of backward compatibility.) - **minor version**: The minor version number advances when a backward compatible change is made. For example, this would happen when new properties are added to a schema. - **patch version**: The patch version number advances when a minor change is made that does not directly affect the file format itself. For example, this would happen when a misspelling or grammatical error in the specification text is made that does not affect the interpretation of an ASDF file. - **pre-release version**: An optional fourth part may also be present following a hyphen to indicate a pre-release version in development. For example, the pre-release of version ``1.2.3`` would be ``1.2.3-dev+a2c4``. Relationship of version numbers ------------------------------- The major number in the **standard version** is incremented whenever the major number in the **file format version** is incremented. **Schema versions** are created and adjusted independently of the **standad version** and the **file format version**. New schemas are created with version ``1.0.0`` and are updated according to the Semantic Versioning conventions discussed above. An update to any of the **schema versions** will be reflected in a bump of the **standard version** as well, although the version numbers will not necessarily match. Bumping a particular **schema version** will also require new versions of any of the schemas that make reference to it. For example, schema ``Foo`` has version ``1.0.0`` in version ``1.2.0`` of the Standard. We make a backwards compatible change to ``Foo`` and bump its version to ``1.1.0``. Schema ``Bar`` contains a reference to ``Foo``. The current version of ``Bar`` is ``1.1.0``, and we must now bump it to ``1.2.0`` to reflect the new reference to ``Foo-1.1.0``. We also bump the Standard version to ``1.3.0`` to reflect the changes to these schemas. Handling version mismatches --------------------------- Given these conventions, the ASDF standard recommends certain behavior of ASDF libraries. ASDF libraries should, but are not required, to support as many existing versions of the file format and schemas as possible, and use the version numbers in the file to act accordingly. For future-proofing, the library should gracefully handle version numbers that are greater than those understood by the library. The following applies to both kinds of version numbers that appear in the file: the **file format version** and **schema versions**. - When encountering a **major version** that is greater than the understood version, by default, an exception should be raised. This behavior may be overridden through explicit user interaction, in which case the library will attempt to handle the element using the conventions of the most recent understood version. - When encountering a **minor version** that is greater than the understood version, a warning should be emitted, and the library should attempt to handle the element using the conventions of the most recent understood version. - When encountering a **patch version** that is greater than the understood version, silently ignore the difference and handle the element using the conventions of the most recent understood version. When writing ASDF files, it is recommended that libraries provide both of the following modes of operation: - Upgrade the file to the latest versions of the file format and schemas understood by the library. - Preserve the version of the ASDF standard used by the input file. Writing out a file that mixes versions of schema from different versions of the ASDF standard is not recommended, though such a file should be accepted by readers given the rules above. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/pyproject.toml0000644000175100001710000000506114274323033016626 0ustar00runnerdocker[project] name = 'asdf_standard' description = 'The ASDF Standard schemas' readme = 'README.md' requires-python = '>=3.8' license = { file = 'LICENSE' } authors = [{ name = 'The ASDF Developers', email = 'help@stsci.edu' }] classifiers = [ 'Programming Language :: Python', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Development Status :: 5 - Production/Stable', ] dependencies = [ 'importlib_resources >= 3; python_version<"3.9"' ] dynamic = ['version'] [project.optional-dependencies] docs = [ 'toml', 'sphinx', 'sphinx-asdf >= 0.1.3', 'sphinx-astropy', 'graphviz', 'matplotlib', 'docutils', 'sphinx-rtd-theme', ] test = [ 'pytest', 'pyyaml', 'asdf >= 2.8.0', 'astropy >= 5.0.4', 'gwcs', 'packaging>=16.0', ] [project.urls] 'tracker' = 'https://github.com/asdf-format/asdf-standard/issues' 'documentation' = 'https://asdf-standard.readthedocs.io/en/stable' 'repository' = 'https://github.com/asdf-format/asdf-standard' [project.entry-points] 'asdf.resource_mappings' = { asdf_standard = 'asdf_standard.integration:get_resource_mappings' } [build-system] requires = [ "setuptools >=42", "setuptools_scm[toml] >=3.4", "wheel", ] build-backend = "setuptools.build_meta" [tool.setuptools_scm] write_to = "src/asdf_standard/_version.py" [tool.setuptools] packages = ["asdf_standard", "asdf_standard.resources"] [tool.setuptools.package-data] "asdf_standard.resources" = ["resources/**/*.yaml"] [tool.setuptools.package-dir] "" = "src" "asdf_standard.resources" = "resources" [tool.pytest.ini_options] asdf_schema_root = 'resources/schemas' asdf_schema_skip_tests = """ stsci.edu/asdf/asdf-schema-1.0.0.yaml stsci.edu/asdf/wcs/celestial_frame-1.0.0.yaml stsci.edu/asdf/wcs/celestial_frame-1.1.0.yaml stsci.edu/asdf/wcs/frame-1.0.0.yaml stsci.edu/asdf/wcs/frame-1.1.0.yaml stsci.edu/asdf/wcs/spectral_frame-1.1.0.yaml stsci.edu/asdf/wcs/step-1.1.0.yaml stsci.edu/asdf/wcs/step-1.2.0.yaml stsci.edu/asdf/wcs/wcs-1.1.0.yaml stsci.edu/asdf/wcs/wcs-1.2.0.yaml stsci.edu/yaml-schema/draft-01.yaml """ asdf_schema_tests_enabled = 'true' asdf_schema_ignore_unrecognized_tag = 'true' addopts = '--color=yes' [tool.black] line-length = 120 force-exclude = ''' ^/( ( \.eggs | \.git | \.pytest_cache | \.tox | reference_files | build | dist )/ ) ''' [tool.isort] profile = "black" filter_files = true line_length = 120 ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3646994 asdf_standard-1.0.3/reference_files/0000755000175100001710000000000014274323045017033 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3646994 asdf_standard-1.0.3/reference_files/1.0.0/0000755000175100001710000000000014274323045017467 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/reference_files/1.0.0/ascii.asdf0000644000175100001710000000070414274323033021414 0ustar00runnerdocker#ASDF 1.0.0 #ASDF_STANDARD 1.0.0 %YAML 1.1 %TAG ! tag:stsci.edu:asdf/ --- !core/asdf-1.0.0 asdf_library: !core/software-1.0.0 {author: Space Telescope Science Institute, homepage: 'http://github.com/spacetelescope/asdf', name: asdf, version: 1.0.0} data: !core/ndarray-1.0.0 source: 0 datatype: [ascii, 5] byteorder: big shape: [2] ... ÓBLK0 ` o본R¦Ú¥+*¥¤ascii#ASDF BLOCK INDEX %YAML 1.1 --- [350] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/reference_files/1.0.0/ascii.yaml0000644000175100001710000000052114274323033021436 0ustar00runnerdocker#ASDF 1.0.0 #ASDF_STANDARD 1.0.0 %YAML 1.1 %TAG ! tag:stsci.edu:asdf/ --- !core/asdf-1.0.0 asdf_library: !core/software-1.0.0 {author: Space Telescope Science Institute, homepage: 'http://github.com/spacetelescope/asdf', name: asdf, version: 1.0.0} data: !core/ndarray-1.0.0 data: ['', ascii] datatype: [ascii, 5] shape: [2] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/reference_files/1.0.0/basic.asdf0000644000175100001710000000077014274323033021410 0ustar00runnerdocker#ASDF 1.0.0 #ASDF_STANDARD 1.0.0 %YAML 1.1 %TAG ! tag:stsci.edu:asdf/ --- !core/asdf-1.0.0 asdf_library: !core/software-1.0.0 {author: Space Telescope Science Institute, homepage: 'http://github.com/spacetelescope/asdf', name: asdf, version: 1.0.0} data: !core/ndarray-1.0.0 source: 0 datatype: int64 byteorder: little shape: [8] ... ÓBLK0@@@5YL®_±ãêAœ&¼Lûî#ASDF BLOCK INDEX %YAML 1.1 --- [348] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/reference_files/1.0.0/basic.yaml0000644000175100001710000000053114274323033021430 0ustar00runnerdocker#ASDF 1.0.0 #ASDF_STANDARD 1.0.0 %YAML 1.1 %TAG ! tag:stsci.edu:asdf/ --- !core/asdf-1.0.0 asdf_library: !core/software-1.0.0 {author: Space Telescope Science Institute, homepage: 'http://github.com/spacetelescope/asdf', name: asdf, version: 1.0.0} data: !core/ndarray-1.0.0 data: [0, 1, 2, 3, 4, 5, 6, 7] datatype: int64 shape: [8] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/reference_files/1.0.0/complex.asdf0000644000175100001710000001315114274323033021773 0ustar00runnerdocker#ASDF 1.0.0 #ASDF_STANDARD 1.0.0 %YAML 1.1 %TAG ! tag:stsci.edu:asdf/ --- !core/asdf-1.0.0 asdf_library: !core/software-1.0.0 {author: Space Telescope Science Institute, homepage: 'http://github.com/spacetelescope/asdf', name: asdf, version: 1.0.0} datatypec16: !core/ndarray-1.0.0 source: 1 datatype: complex128 byteorder: big shape: [100] datatype>c8: !core/ndarray-1.0.0 source: 0 datatype: complex64 byteorder: big shape: [100] ... ÓBLK0   ï&‹^Íl»e¡ûn™¦å†„ÀÀÿÀ€ÿÀÿ€ÿÿÿÿÿ43€€€ÀÀÿÀ€ÿÀÿ€€ÿÿÿÿÿ43€€ÀÀÀÀÀ€Àÿ€ÀÿÿÿÀÿÿÀ4À3€À€€€ÀÀÿÀ€ÿÀÿ€€ÿÿÿ€ÿÿ€4€3€€€ÿ€ÿ€ÀÀÿÀ€ÿÀÿ€ÿ€ÿÿÿÿ€ÿÿÿ€4ÿ€3€ÿ€€ÿÿÿÿÿÿÀÀÿÀ€ÿÀÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ4ÿÿÿ3€ÿÿÿ€ÿÿÿÿÀÀÿÀ€ÿÀÿ€ÿÿÿÿÿÿÿÿÿÿÿ4ÿÿ3€ÿÿ€44ÀÀÿÀ€ÿÀÿ€4ÿÿÿ4ÿÿ4443€4€3€3€ÀÀÿÀ€ÿÀÿ€3€ÿÿÿ3€ÿÿ3€43€3€3€€€€ÀÀÿÀ€ÿÀÿ€€ÿÿÿ€ÿÿ€4€3€€€ÓBLK0@@@ÍÁnÂÓA[eû¬ŠWvøøÿøðÿøÿðÿïÿÿÿÿÿÿïÿÿÿÿÿÿ<°< €øøÿøðÿøÿð€ÿïÿÿÿÿÿÿïÿÿÿÿÿÿ<°< øøøøøðøÿðøÿïÿÿÿÿÿÿøïÿÿÿÿÿÿø<°ø< øððøøÿøðÿøÿððÿïÿÿÿÿÿÿðïÿÿÿÿÿÿð<°ð< ðÿðÿðøøÿøðÿøÿðÿðÿïÿÿÿÿÿÿÿðïÿÿÿÿÿÿÿð<°ÿð< ÿðÿïÿÿÿÿÿÿÿïÿÿÿÿÿÿøøÿøðÿøÿðÿïÿÿÿÿÿÿÿïÿÿÿÿÿÿÿïÿÿÿÿÿÿïÿÿÿÿÿÿÿïÿÿÿÿÿÿ<°ÿïÿÿÿÿÿÿ< ÿïÿÿÿÿÿÿïÿÿÿÿÿÿïÿÿÿÿÿÿøøÿøðÿøÿðïÿÿÿÿÿÿÿïÿÿÿÿÿÿïÿÿÿÿÿÿïÿÿÿÿÿÿïÿÿÿÿÿÿ<°ïÿÿÿÿÿÿ< ïÿÿÿÿÿÿ<°<°øøÿøðÿøÿð<°ÿïÿÿÿÿÿÿ<°ïÿÿÿÿÿÿ<°<°<°< <°< < øøÿøðÿøÿð< ÿïÿÿÿÿÿÿ< ïÿÿÿÿÿÿ< <°< < < øøÿøðÿøÿðÿïÿÿÿÿÿÿïÿÿÿÿÿÿ<°< ÓBLK0   úMzj4ßo®A{»ÎÊ`«ÀÀÀÿ€Àÿ€ÿÿÿÿÿÿ4€3€€ÀÀÀÿ€Àÿ€ÿ€ÿÿÿÿÿ4€3€ÀÀÀÀÀ€À€ÿÀÿÿÿÀÿÿÀ4À€3À€€€ÀÀÀÿ€Àÿ€ÿ€ÿÿÿ€ÿÿ€4€€3€€€ÿ€ÿÀÀÀÿ€Àÿ€ÿ€ÿÿÿÿ€ÿÿÿ€ÿ4€ÿ€3€ÿ€ÿÿÿÿÿÿÀÀÀÿ€Àÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ4ÿÿÿ€3ÿÿÿ€ÿÿÿÿÀÀÀÿ€Àÿ€ÿÿÿÿÿÿÿÿÿÿÿÿ4ÿÿ€3ÿÿ€44ÀÀÀÿ€Àÿ€ÿ4ÿÿÿ4ÿÿ444€34€€3€3ÀÀÀÿ€Àÿ€ÿ€3ÿÿÿ€3ÿÿ€34€3€3€3€€€ÀÀÀÿ€Àÿ€ÿ€ÿÿÿ€ÿÿ€4€€3€€ÓBLK0@@@e1õö$¦èÇœ9¸0ˆm3øøøÿðøÿðÿÿÿÿÿÿÿïÿÿÿÿÿÿÿï°< <€øøøÿðøÿðÿ€ÿÿÿÿÿÿïÿÿÿÿÿÿÿï°< <øøøøøðøðÿøÿÿÿÿÿÿïÿøÿÿÿÿÿÿïø°<ø <øððøøøÿðøÿðÿðÿÿÿÿÿÿïÿðÿÿÿÿÿÿïð°<ð <ððÿðÿøøøÿðøÿðÿðÿÿÿÿÿÿÿïÿðÿÿÿÿÿÿÿïðÿ°<ðÿ <ðÿÿÿÿÿÿÿïÿÿÿÿÿÿÿïÿøøøÿðøÿðÿÿÿÿÿÿÿïÿÿÿÿÿÿÿïÿÿÿÿÿÿÿïÿÿÿÿÿÿÿïÿÿÿÿÿÿïÿ°<ÿÿÿÿÿÿïÿ <ÿÿÿÿÿÿïÿÿÿÿÿÿÿïÿÿÿÿÿÿïøøøÿðøÿðÿÿÿÿÿÿÿïÿÿÿÿÿÿïÿÿÿÿÿÿÿïÿÿÿÿÿÿïÿÿÿÿÿÿï°<ÿÿÿÿÿÿï <ÿÿÿÿÿÿï°<°<øøøÿðøÿðÿ°<ÿÿÿÿÿÿïÿ°<ÿÿÿÿÿÿï°<°<°< <°< < <øøøÿðøÿðÿ <ÿÿÿÿÿÿïÿ <ÿÿÿÿÿÿï <°< < < <øøøÿðøÿðÿÿÿÿÿÿÿïÿÿÿÿÿÿÿï°< <#ASDF BLOCK INDEX %YAML 1.1 --- [665, 1519, 3173, 4027] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/reference_files/1.0.0/complex.yaml0000644000175100001710000004412114274323033022021 0ustar00runnerdocker#ASDF 1.0.0 #ASDF_STANDARD 1.0.0 %YAML 1.1 %TAG ! tag:stsci.edu:asdf/ --- !core/asdf-1.0.0 asdf_library: !core/software-1.0.0 {author: Space Telescope Science Institute, homepage: 'http://github.com/spacetelescope/asdf', name: asdf, version: 1.0.0} datatypec16: !core/ndarray-1.0.0 data: [!core/complex-1.0.0 0j, !core/complex-1.0.0 0j, !core/complex-1.0.0 (nan+nanj), !core/complex-1.0.0 (nan+infj), !core/complex-1.0.0 (nan-infj), !core/complex-1.0.0 -1.79769313486e+308j, !core/complex-1.0.0 1.79769313486e+308j, !core/complex-1.0.0 2.22044604925e-16j, !core/complex-1.0.0 1.11022302463e-16j, !core/complex-1.0.0 2.22507385851e-308j, !core/complex-1.0.0 0j, !core/complex-1.0.0 (-0+0j), !core/complex-1.0.0 (nan+nanj), !core/complex-1.0.0 (nan+infj), !core/complex-1.0.0 (nan-infj), !core/complex-1.0.0 (-0-1.79769313486e+308j), !core/complex-1.0.0 1.79769313486e+308j, !core/complex-1.0.0 2.22044604925e-16j, !core/complex-1.0.0 1.11022302463e-16j, !core/complex-1.0.0 2.22507385851e-308j, !core/complex-1.0.0 (nan+0j), !core/complex-1.0.0 (nan+0j), !core/complex-1.0.0 (nan+nanj), !core/complex-1.0.0 (nan+infj), !core/complex-1.0.0 (nan-infj), !core/complex-1.0.0 (nan-1.79769313486e+308j), !core/complex-1.0.0 (nan+1.79769313486e+308j), !core/complex-1.0.0 (nan+2.22044604925e-16j), !core/complex-1.0.0 (nan+1.11022302463e-16j), !core/complex-1.0.0 (nan+2.22507385851e-308j), !core/complex-1.0.0 (inf+0j), !core/complex-1.0.0 (inf+0j), !core/complex-1.0.0 (nan+nanj), !core/complex-1.0.0 (nan+infj), !core/complex-1.0.0 (nan-infj), !core/complex-1.0.0 (inf-1.79769313486e+308j), !core/complex-1.0.0 (inf+1.79769313486e+308j), !core/complex-1.0.0 (inf+2.22044604925e-16j), !core/complex-1.0.0 (inf+1.11022302463e-16j), !core/complex-1.0.0 (inf+2.22507385851e-308j), !core/complex-1.0.0 (-inf+0j), !core/complex-1.0.0 (-inf+0j), !core/complex-1.0.0 (nan+nanj), !core/complex-1.0.0 (nan+infj), !core/complex-1.0.0 (nan-infj), !core/complex-1.0.0 (-inf-1.79769313486e+308j), !core/complex-1.0.0 (-inf+1.79769313486e+308j), !core/complex-1.0.0 (-inf+2.22044604925e-16j), !core/complex-1.0.0 (-inf+1.11022302463e-16j), !core/complex-1.0.0 (-inf+2.22507385851e-308j), !core/complex-1.0.0 (-1.79769313486e+308+0j), !core/complex-1.0.0 (-1.79769313486e+308+0j), !core/complex-1.0.0 (nan+nanj), !core/complex-1.0.0 (nan+infj), !core/complex-1.0.0 (nan-infj), !core/complex-1.0.0 (-1.79769313486e+308-1.79769313486e+308j), !core/complex-1.0.0 (-1.79769313486e+308+1.79769313486e+308j), !core/complex-1.0.0 (-1.79769313486e+308+2.22044604925e-16j), !core/complex-1.0.0 (-1.79769313486e+308+1.11022302463e-16j), !core/complex-1.0.0 (-1.79769313486e+308+2.22507385851e-308j), !core/complex-1.0.0 (1.79769313486e+308+0j), !core/complex-1.0.0 (1.79769313486e+308+0j), !core/complex-1.0.0 (nan+nanj), !core/complex-1.0.0 (nan+infj), !core/complex-1.0.0 (nan-infj), !core/complex-1.0.0 (1.79769313486e+308-1.79769313486e+308j), !core/complex-1.0.0 (1.79769313486e+308+1.79769313486e+308j), !core/complex-1.0.0 (1.79769313486e+308+2.22044604925e-16j), !core/complex-1.0.0 (1.79769313486e+308+1.11022302463e-16j), !core/complex-1.0.0 (1.79769313486e+308+2.22507385851e-308j), !core/complex-1.0.0 (2.22044604925e-16+0j), !core/complex-1.0.0 (2.22044604925e-16+0j), !core/complex-1.0.0 (nan+nanj), !core/complex-1.0.0 (nan+infj), !core/complex-1.0.0 (nan-infj), !core/complex-1.0.0 (2.22044604925e-16-1.79769313486e+308j), !core/complex-1.0.0 (2.22044604925e-16+1.79769313486e+308j), !core/complex-1.0.0 (2.22044604925e-16+2.22044604925e-16j), !core/complex-1.0.0 (2.22044604925e-16+1.11022302463e-16j), !core/complex-1.0.0 (2.22044604925e-16+2.22507385851e-308j), !core/complex-1.0.0 (1.11022302463e-16+0j), !core/complex-1.0.0 (1.11022302463e-16+0j), !core/complex-1.0.0 (nan+nanj), !core/complex-1.0.0 (nan+infj), !core/complex-1.0.0 (nan-infj), !core/complex-1.0.0 (1.11022302463e-16-1.79769313486e+308j), !core/complex-1.0.0 (1.11022302463e-16+1.79769313486e+308j), !core/complex-1.0.0 (1.11022302463e-16+2.22044604925e-16j), !core/complex-1.0.0 (1.11022302463e-16+1.11022302463e-16j), !core/complex-1.0.0 (1.11022302463e-16+2.22507385851e-308j), !core/complex-1.0.0 (2.22507385851e-308+0j), !core/complex-1.0.0 (2.22507385851e-308+0j), !core/complex-1.0.0 (nan+nanj), !core/complex-1.0.0 (nan+infj), !core/complex-1.0.0 (nan-infj), !core/complex-1.0.0 (2.22507385851e-308-1.79769313486e+308j), !core/complex-1.0.0 (2.22507385851e-308+1.79769313486e+308j), !core/complex-1.0.0 (2.22507385851e-308+2.22044604925e-16j), !core/complex-1.0.0 (2.22507385851e-308+1.11022302463e-16j), !core/complex-1.0.0 (2.22507385851e-308+2.22507385851e-308j)] datatype: complex128 shape: [100] datatype>c8: !core/ndarray-1.0.0 data: [!core/complex-1.0.0 0j, !core/complex-1.0.0 0j, !core/complex-1.0.0 (nan+nanj), !core/complex-1.0.0 (nan+infj), !core/complex-1.0.0 (nan-infj), !core/complex-1.0.0 -3.40282346639e+38j, !core/complex-1.0.0 3.40282346639e+38j, !core/complex-1.0.0 1.19209289551e-07j, !core/complex-1.0.0 5.96046447754e-08j, !core/complex-1.0.0 1.17549435082e-38j, !core/complex-1.0.0 0j, !core/complex-1.0.0 (-0+0j), !core/complex-1.0.0 (nan+nanj), !core/complex-1.0.0 (nan+infj), !core/complex-1.0.0 (nan-infj), !core/complex-1.0.0 (-0-3.40282346639e+38j), !core/complex-1.0.0 3.40282346639e+38j, !core/complex-1.0.0 1.19209289551e-07j, !core/complex-1.0.0 5.96046447754e-08j, !core/complex-1.0.0 1.17549435082e-38j, !core/complex-1.0.0 (nan+0j), !core/complex-1.0.0 (nan+0j), !core/complex-1.0.0 (nan+nanj), !core/complex-1.0.0 (nan+infj), !core/complex-1.0.0 (nan-infj), !core/complex-1.0.0 (nan-3.40282346639e+38j), !core/complex-1.0.0 (nan+3.40282346639e+38j), !core/complex-1.0.0 (nan+1.19209289551e-07j), !core/complex-1.0.0 (nan+5.96046447754e-08j), !core/complex-1.0.0 (nan+1.17549435082e-38j), !core/complex-1.0.0 (inf+0j), !core/complex-1.0.0 (inf+0j), !core/complex-1.0.0 (nan+nanj), !core/complex-1.0.0 (nan+infj), !core/complex-1.0.0 (nan-infj), !core/complex-1.0.0 (inf-3.40282346639e+38j), !core/complex-1.0.0 (inf+3.40282346639e+38j), !core/complex-1.0.0 (inf+1.19209289551e-07j), !core/complex-1.0.0 (inf+5.96046447754e-08j), !core/complex-1.0.0 (inf+1.17549435082e-38j), !core/complex-1.0.0 (-inf+0j), !core/complex-1.0.0 (-inf+0j), !core/complex-1.0.0 (nan+nanj), !core/complex-1.0.0 (nan+infj), !core/complex-1.0.0 (nan-infj), !core/complex-1.0.0 (-inf-3.40282346639e+38j), !core/complex-1.0.0 (-inf+3.40282346639e+38j), !core/complex-1.0.0 (-inf+1.19209289551e-07j), !core/complex-1.0.0 (-inf+5.96046447754e-08j), !core/complex-1.0.0 (-inf+1.17549435082e-38j), !core/complex-1.0.0 (-3.40282346639e+38+0j), !core/complex-1.0.0 (-3.40282346639e+38+0j), !core/complex-1.0.0 (nan+nanj), !core/complex-1.0.0 (nan+infj), !core/complex-1.0.0 (nan-infj), !core/complex-1.0.0 (-3.40282346639e+38-3.40282346639e+38j), !core/complex-1.0.0 (-3.40282346639e+38+3.40282346639e+38j), !core/complex-1.0.0 (-3.40282346639e+38+1.19209289551e-07j), !core/complex-1.0.0 (-3.40282346639e+38+5.96046447754e-08j), !core/complex-1.0.0 (-3.40282346639e+38+1.17549435082e-38j), !core/complex-1.0.0 (3.40282346639e+38+0j), !core/complex-1.0.0 (3.40282346639e+38+0j), !core/complex-1.0.0 (nan+nanj), !core/complex-1.0.0 (nan+infj), !core/complex-1.0.0 (nan-infj), !core/complex-1.0.0 (3.40282346639e+38-3.40282346639e+38j), !core/complex-1.0.0 (3.40282346639e+38+3.40282346639e+38j), !core/complex-1.0.0 (3.40282346639e+38+1.19209289551e-07j), !core/complex-1.0.0 (3.40282346639e+38+5.96046447754e-08j), !core/complex-1.0.0 (3.40282346639e+38+1.17549435082e-38j), !core/complex-1.0.0 (1.19209289551e-07+0j), !core/complex-1.0.0 (1.19209289551e-07+0j), !core/complex-1.0.0 (nan+nanj), !core/complex-1.0.0 (nan+infj), !core/complex-1.0.0 (nan-infj), !core/complex-1.0.0 (1.19209289551e-07-3.40282346639e+38j), !core/complex-1.0.0 (1.19209289551e-07+3.40282346639e+38j), !core/complex-1.0.0 (1.19209289551e-07+1.19209289551e-07j), !core/complex-1.0.0 (1.19209289551e-07+5.96046447754e-08j), !core/complex-1.0.0 (1.19209289551e-07+1.17549435082e-38j), !core/complex-1.0.0 (5.96046447754e-08+0j), !core/complex-1.0.0 (5.96046447754e-08+0j), !core/complex-1.0.0 (nan+nanj), !core/complex-1.0.0 (nan+infj), !core/complex-1.0.0 (nan-infj), !core/complex-1.0.0 (5.96046447754e-08-3.40282346639e+38j), !core/complex-1.0.0 (5.96046447754e-08+3.40282346639e+38j), !core/complex-1.0.0 (5.96046447754e-08+1.19209289551e-07j), !core/complex-1.0.0 (5.96046447754e-08+5.96046447754e-08j), !core/complex-1.0.0 (5.96046447754e-08+1.17549435082e-38j), !core/complex-1.0.0 (1.17549435082e-38+0j), !core/complex-1.0.0 (1.17549435082e-38+0j), !core/complex-1.0.0 (nan+nanj), !core/complex-1.0.0 (nan+infj), !core/complex-1.0.0 (nan-infj), !core/complex-1.0.0 (1.17549435082e-38-3.40282346639e+38j), !core/complex-1.0.0 (1.17549435082e-38+3.40282346639e+38j), !core/complex-1.0.0 (1.17549435082e-38+1.19209289551e-07j), !core/complex-1.0.0 (1.17549435082e-38+5.96046447754e-08j), !core/complex-1.0.0 (1.17549435082e-38+1.17549435082e-38j)] datatype: complex64 shape: [100] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/reference_files/1.0.0/compressed.asdf0000644000175100001710000000200514274323033022464 0ustar00runnerdocker#ASDF 1.0.0 #ASDF_STANDARD 1.0.0 %YAML 1.1 %TAG ! tag:stsci.edu:asdf/ --- !core/asdf-1.0.0 asdf_library: !core/software-1.0.0 {author: Space Telescope Science Institute, homepage: 'http://github.com/spacetelescope/asdf', name: asdf, version: 1.0.0} bzp2: !core/ndarray-1.0.0 source: 0 datatype: int64 byteorder: little shape: [128] zlib: !core/ndarray-1.0.0 source: 1 datatype: int64 byteorder: little shape: [128] ... ÓBLK0bzp2ââ…¾ÔÏm¹@ã×ù]¼ZBZh91AY&SY\ã(W?ÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ’¢&b4É„0™ C‰‰‚4Â`4È` Á< €˜ð a† H¡c?†Ž@‰"e –.`É£çž> $i¦N¡J¥k®^Á‹&m¶ná˧o¾ (q"Æ"L©s&ΟB*u*Ö¯bÍ«w.Þ¿ƒÕ‹6­Ü»zþ¼8¿?±äË›?ùEèÓ¨­@%’ˆˆˆA ":ÅÜ‘N$8ÊÀÓBLK0zlibÓÓ…¾ÔÏm¹@ã×ù]¼Zxœ-ÅÓBÀlÛܲms-Û¶íúõº{¹€€_r°Cê0‡;‘Žr´cë8Ç;Á‰Nr²Sœê4§;ÙÎr¶sœë<ç»À….r±ÿø¯K\ê2—»Â•®rµk\ë:×»Ánr³[Üê6·»Ãîr·{Üë>÷{Àƒò°G<ê1ûŸ'üß“žò´g<ë9Ï{Á‹^ò²W¼ê5¯{ÛÞò¶w¼ë=ïûÀ‡>ò±O|ê3Ÿû—¾òµo|ë;ßûÁ~ò³_üê7¿ûßþò·°vÁ#ASDF BLOCK INDEX %YAML 1.1 --- [441, 721] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/reference_files/1.0.0/compressed.yaml0000644000175100001710000000273314274323033022521 0ustar00runnerdocker#ASDF 1.0.0 #ASDF_STANDARD 1.0.0 %YAML 1.1 %TAG ! tag:stsci.edu:asdf/ --- !core/asdf-1.0.0 asdf_library: !core/software-1.0.0 {author: Space Telescope Science Institute, homepage: 'http://github.com/spacetelescope/asdf', name: asdf, version: 1.0.0} bzp2: !core/ndarray-1.0.0 data: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127] datatype: int64 shape: [128] zlib: !core/ndarray-1.0.0 data: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127] datatype: int64 shape: [128] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/reference_files/1.0.0/exploded.asdf0000644000175100001710000000055014274323033022127 0ustar00runnerdocker#ASDF 1.0.0 #ASDF_STANDARD 1.0.0 %YAML 1.1 %TAG ! tag:stsci.edu:asdf/ --- !core/asdf-1.0.0 asdf_library: !core/software-1.0.0 {author: Space Telescope Science Institute, homepage: 'http://github.com/spacetelescope/asdf', name: asdf, version: 1.0.0} data: !core/ndarray-1.0.0 source: exploded0000.asdf datatype: int64 byteorder: little shape: [8] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/reference_files/1.0.0/exploded.yaml0000644000175100001710000000053114274323033022153 0ustar00runnerdocker#ASDF 1.0.0 #ASDF_STANDARD 1.0.0 %YAML 1.1 %TAG ! tag:stsci.edu:asdf/ --- !core/asdf-1.0.0 asdf_library: !core/software-1.0.0 {author: Space Telescope Science Institute, homepage: 'http://github.com/spacetelescope/asdf', name: asdf, version: 1.0.0} data: !core/ndarray-1.0.0 data: [0, 1, 2, 3, 4, 5, 6, 7] datatype: int64 shape: [8] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/reference_files/1.0.0/exploded0000.asdf0000644000175100001710000000063714274323033022435 0ustar00runnerdocker#ASDF 1.0.0 #ASDF_STANDARD 1.0.0 %YAML 1.1 %TAG ! tag:stsci.edu:asdf/ --- !core/asdf-1.0.0 asdf_library: !core/software-1.0.0 {author: Space Telescope Science Institute, homepage: 'http://github.com/spacetelescope/asdf', name: asdf, version: 1.0.0} ... ÓBLK0@@@5YL®_±ãêAœ&¼Lûî#ASDF BLOCK INDEX %YAML 1.1 --- [259] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/reference_files/1.0.0/float.asdf0000644000175100001710000000220614274323033021430 0ustar00runnerdocker#ASDF 1.0.0 #ASDF_STANDARD 1.0.0 %YAML 1.1 %TAG ! tag:stsci.edu:asdf/ --- !core/asdf-1.0.0 asdf_library: !core/software-1.0.0 {author: Space Telescope Science Institute, homepage: 'http://github.com/spacetelescope/asdf', name: asdf, version: 1.0.0} datatypef4: !core/ndarray-1.0.0 source: 1 datatype: float32 byteorder: big shape: [10] datatype>f8: !core/ndarray-1.0.0 source: 3 datatype: float64 byteorder: big shape: [10] ... ÓBLK0(((ƒ1[Œ±\ZïãÃ1¨„×€À€€ÿÿÿÿÿÿ4€3€ÓBLK0(((*¬!SeGƒÄ¾ß{$nÿT€À€ÿ€ÿÿÿÿÿ43€€ÓBLK0PPPáÁeÕ»­‚ í}Ý;ñb€øððÿÿÿÿÿÿÿïÿÿÿÿÿÿÿï°< <ÓBLK0PPPù¥Òlñ~ÔArQ§q®’€øðÿðÿïÿÿÿÿÿÿïÿÿÿÿÿÿ<°< #ASDF BLOCK INDEX %YAML 1.1 --- [649, 743, 837, 971] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/reference_files/1.0.0/float.yaml0000644000175100001710000000223514274323033021457 0ustar00runnerdocker#ASDF 1.0.0 #ASDF_STANDARD 1.0.0 %YAML 1.1 %TAG ! tag:stsci.edu:asdf/ --- !core/asdf-1.0.0 asdf_library: !core/software-1.0.0 {author: Space Telescope Science Institute, homepage: 'http://github.com/spacetelescope/asdf', name: asdf, version: 1.0.0} datatypef4: !core/ndarray-1.0.0 data: [0.0, -0.0, .nan, .inf, -.inf, -3.4028234663852886e+38, 3.4028234663852886e+38, 1.1920928955078125e-07, 5.960464477539063e-08, 1.1754943508222875e-38] datatype: float32 shape: [10] datatype>f8: !core/ndarray-1.0.0 data: [0.0, -0.0, .nan, .inf, -.inf, -1.7976931348623157e+308, 1.7976931348623157e+308, 2.220446049250313e-16, 1.1102230246251565e-16, 2.2250738585072014e-308] datatype: float64 shape: [10] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/reference_files/1.0.0/int.asdf0000644000175100001710000000424614274323033021123 0ustar00runnerdocker#ASDF 1.0.0 #ASDF_STANDARD 1.0.0 %YAML 1.1 %TAG ! tag:stsci.edu:asdf/ --- !core/asdf-1.0.0 asdf_library: !core/software-1.0.0 {author: Space Telescope Science Institute, homepage: 'http://github.com/spacetelescope/asdf', name: asdf, version: 1.0.0} datatypei1: !core/ndarray-1.0.0 source: 1 datatype: int8 byteorder: big shape: [3] datatype>i2: !core/ndarray-1.0.0 source: 0 datatype: int16 byteorder: big shape: [3] datatype>i4: !core/ndarray-1.0.0 source: 2 datatype: int32 byteorder: big shape: [3] datatype>u1: !core/ndarray-1.0.0 source: 8 datatype: uint8 byteorder: big shape: [2] datatype>u2: !core/ndarray-1.0.0 source: 7 datatype: uint16 byteorder: big shape: [2] datatype>u4: !core/ndarray-1.0.0 source: 6 datatype: uint32 byteorder: big shape: [2] ... ÓBLK0ebµbÒ-ÑóRª_…ðfÿ€ÓBLK0zätuÔ“êOIø+§NU€ÓBLK0  ŽýòI ÊR4jýÌÝÿÿÿ€ÓBLK0 Ò’kŸñS(iZûJ§£<«ÿÿÿ€ÓBLK0zätuÔ“êOIø+§NU€ÓBLK0øqÉ­ËòÓœr][s2ÿ€ÓBLK0ùÄ­•+ÿ²ë©û:®vÿÿÿÿÓBLK0]^¾wð-ìtÐÑÐø<ÿÿÓBLK0à迯»‰V;/ºxœ—³ÌÿÓBLK0à迯»‰V;/ºxœ—³ÌÿÓBLK0]^¾wð-ìtÐÑÐø<ÿÿÓBLK0ùÄ­•+ÿ²ë©û:®vÿÿÿÿ#ASDF BLOCK INDEX %YAML 1.1 --- [1391, 1451, 1508, 1574, 1640, 1697, 1757, 1819, 1877, 1933, 1989, 2047] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/reference_files/1.0.0/int.yaml0000644000175100001710000000244714274323033021151 0ustar00runnerdocker#ASDF 1.0.0 #ASDF_STANDARD 1.0.0 %YAML 1.1 %TAG ! tag:stsci.edu:asdf/ --- !core/asdf-1.0.0 asdf_library: !core/software-1.0.0 {author: Space Telescope Science Institute, homepage: 'http://github.com/spacetelescope/asdf', name: asdf, version: 1.0.0} datatypei1: !core/ndarray-1.0.0 data: [127, -128, 0] datatype: int8 shape: [3] datatype>i2: !core/ndarray-1.0.0 data: [32767, -32768, 0] datatype: int16 shape: [3] datatype>i4: !core/ndarray-1.0.0 data: [2147483647, -2147483648, 0] datatype: int32 shape: [3] datatype>u1: !core/ndarray-1.0.0 data: [255, 0] datatype: uint8 shape: [2] datatype>u2: !core/ndarray-1.0.0 data: [65535, 0] datatype: uint16 shape: [2] datatype>u4: !core/ndarray-1.0.0 data: [4294967295, 0] datatype: uint32 shape: [2] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/reference_files/1.0.0/shared.asdf0000644000175100001710000000115714274323033021575 0ustar00runnerdocker#ASDF 1.0.0 #ASDF_STANDARD 1.0.0 %YAML 1.1 %TAG ! tag:stsci.edu:asdf/ --- !core/asdf-1.0.0 asdf_library: !core/software-1.0.0 {author: Space Telescope Science Institute, homepage: 'http://github.com/spacetelescope/asdf', name: asdf, version: 1.0.0} data: !core/ndarray-1.0.0 source: 0 datatype: int64 byteorder: little shape: [8] subset: !core/ndarray-1.0.0 source: 0 datatype: int64 byteorder: little shape: [4] offset: 8 strides: [16] ... ÓBLK0@@@5YL®_±ãêAœ&¼Lûî#ASDF BLOCK INDEX %YAML 1.1 --- [467] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/reference_files/1.0.0/shared.yaml0000644000175100001710000000065114274323033021620 0ustar00runnerdocker#ASDF 1.0.0 #ASDF_STANDARD 1.0.0 %YAML 1.1 %TAG ! tag:stsci.edu:asdf/ --- !core/asdf-1.0.0 asdf_library: !core/software-1.0.0 {author: Space Telescope Science Institute, homepage: 'http://github.com/spacetelescope/asdf', name: asdf, version: 1.0.0} data: !core/ndarray-1.0.0 data: [0, 1, 2, 3, 4, 5, 6, 7] datatype: int64 shape: [8] subset: !core/ndarray-1.0.0 data: [1, 3, 5, 7] datatype: int64 shape: [4] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/reference_files/1.0.0/stream.asdf0000644000175100001710000000163314274323033021621 0ustar00runnerdocker#ASDF 1.0.0 #ASDF_STANDARD 1.0.0 %YAML 1.1 %TAG ! tag:stsci.edu:asdf/ --- !core/asdf-1.0.0 asdf_library: !core/software-1.0.0 {author: Space Telescope Science Institute, homepage: 'http://github.com/spacetelescope/asdf', name: asdf, version: 1.0.0} my_stream: !core/ndarray-1.0.0 source: -1 datatype: float64 byteorder: little shape: ['*', 8] ... ÓBLK0ð?ð?ð?ð?ð?ð?ð?ð?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/reference_files/1.0.0/stream.yaml0000644000175100001710000000126214274323033021644 0ustar00runnerdocker#ASDF 1.0.0 #ASDF_STANDARD 1.0.0 %YAML 1.1 %TAG ! tag:stsci.edu:asdf/ --- !core/asdf-1.0.0 asdf_library: !core/software-1.0.0 {author: Space Telescope Science Institute, homepage: 'http://github.com/spacetelescope/asdf', name: asdf, version: 1.0.0} my_stream: !core/ndarray-1.0.0 data: - [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] - [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] - [2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0] - [3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0] - [4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0] - [5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0] - [6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0] - [7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0] datatype: float64 shape: [8, 8] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/reference_files/1.0.0/unicode_bmp.asdf0000644000175100001710000000117514274323033022613 0ustar00runnerdocker#ASDF 1.0.0 #ASDF_STANDARD 1.0.0 %YAML 1.1 %TAG ! tag:stsci.edu:asdf/ --- !core/asdf-1.0.0 asdf_library: !core/software-1.0.0 {author: Space Telescope Science Institute, homepage: 'http://github.com/spacetelescope/asdf', name: asdf, version: 1.0.0} datatypeU: !core/ndarray-1.0.0 source: 1 datatype: [ucs4, 2] byteorder: big shape: [2] ... ÓBLK0IS6æ×.ócܪMKqõÆ©ÓBLK0¦•’ŒšŒÍ÷Mt_Z¦QÆ©#ASDF BLOCK INDEX %YAML 1.1 --- [454, 524] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/reference_files/1.0.0/unicode_bmp.yaml0000644000175100001710000000065314274323033022640 0ustar00runnerdocker#ASDF 1.0.0 #ASDF_STANDARD 1.0.0 %YAML 1.1 %TAG ! tag:stsci.edu:asdf/ --- !core/asdf-1.0.0 asdf_library: !core/software-1.0.0 {author: Space Telescope Science Institute, homepage: 'http://github.com/spacetelescope/asdf', name: asdf, version: 1.0.0} datatypeU: !core/ndarray-1.0.0 data: ['', Æʩ] datatype: [ucs4, 2] shape: [2] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/reference_files/1.0.0/unicode_spp.asdf0000644000175100001710000000117514274323033022637 0ustar00runnerdocker#ASDF 1.0.0 #ASDF_STANDARD 1.0.0 %YAML 1.1 %TAG ! tag:stsci.edu:asdf/ --- !core/asdf-1.0.0 asdf_library: !core/software-1.0.0 {author: Space Telescope Science Institute, homepage: 'http://github.com/spacetelescope/asdf', name: asdf, version: 1.0.0} datatypeU: !core/ndarray-1.0.0 source: 1 datatype: [ucs4, 2] byteorder: big shape: [2] ... ÓBLK0ïõ½‘'0—Bù9Öïe< ÓBLK0¡ŽdËåàluÑ‹#` #ASDF BLOCK INDEX %YAML 1.1 --- [454, 524] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/reference_files/1.0.0/unicode_spp.yaml0000644000175100001710000000067314274323033022666 0ustar00runnerdocker#ASDF 1.0.0 #ASDF_STANDARD 1.0.0 %YAML 1.1 %TAG ! tag:stsci.edu:asdf/ --- !core/asdf-1.0.0 asdf_library: !core/software-1.0.0 {author: Space Telescope Science Institute, homepage: 'http://github.com/spacetelescope/asdf', name: asdf, version: 1.0.0} datatypeU: !core/ndarray-1.0.0 data: ['', "\U00010020"] datatype: [ucs4, 2] shape: [2] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/reference_files/README.rst0000644000175100001710000000133014274323033020514 0ustar00runnerdockerThis directory contains reference ADSF files. ASDF parser implementations are encouraged to use these files as part of their test suite. There is a directory here for each version of the ASDF standard. They contain pairs of files: one ``.asdf`` file and one ``.yaml`` file. To use the reference file suite, load the ``.asdf`` file and perform the following transformations: - Convert all ``core/ndarray`` tags to in-line YAML data. - Load and store inline all ``JSON Pointer`` references. - Dereference all YAML aliases to anchors. Compare the result to the matching ``.yaml`` file. For compliance, the files do not need to be byte-for-byte identical, but should represent the same values at the YAML level. ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3646994 asdf_standard-1.0.3/reference_files/generate/0000755000175100001710000000000014274323045020625 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/reference_files/generate/README.rst0000644000175100001710000000036514274323033022315 0ustar00runnerdockerTo regenerate the reference files: ./generate.py $version where $version is the version of the ASDF standard to generate. The resulting reference files should be inspected for correctness by hand and then committed to the git repository. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/reference_files/generate/generate0000755000175100001710000001043714274323033022347 0ustar00runnerdocker#!/usr/bin/env python #-*- coding: utf-8 -*- from __future__ import unicode_literals import os try: import asdf except ImportError: raise ImportError( "asdf must be installed to regenerate the reference files.") import numpy as np def ref_basic(fd): tree = { 'data': np.arange(8) } asdf.AsdfFile(tree).write_to(fd) def ref_int(fd): tree = {} for size in (1, 2, 4): bits = size * 8 for endian in ['>', '<']: values = [(1 << (bits - 1)) - 1, -(1 << (bits - 1)), 0] datatype = '%si%d' % (endian, size) arr = np.array(values, datatype) tree['datatype' + datatype] = arr values = [(1 << bits) - 1, 0] datatype = '%su%d' % (endian, size) arr = np.array(values, datatype) tree['datatype' + datatype] = arr asdf.AsdfFile(tree).write_to(fd) def ref_float(fd): tree = {} for size in (4, 8): for endian in ['>', '<']: datatype = '%sf%d' % (endian, size) finfo = np.finfo(np.dtype(datatype)) values = [0.0, -0.0, np.nan, np.inf, -np.inf, finfo.min, finfo.max, finfo.eps, finfo.epsneg, finfo.tiny] arr = np.array(values, datatype) tree['datatype' + datatype] = arr asdf.AsdfFile(tree).write_to(fd) def ref_complex(fd): tree = {} for size in (4, 8): for endian in ['>', '<']: datatype = '%sf%d' % (endian, size) finfo = np.finfo(np.dtype(datatype)) values = [0.0, -0.0, np.nan, np.inf, -np.inf, finfo.min, finfo.max, finfo.eps, finfo.epsneg, finfo.tiny] complex_values = [] for x in values: for y in values: complex_values.append(x + 1j * y) datatype = '%sc%d' % (endian, size * 2) arr = np.array(complex_values, datatype) tree['datatype' + datatype] = arr asdf.AsdfFile(tree).write_to(fd) def ref_ascii(fd): arr = np.array([b'', b'ascii'], dtype='S') tree = {'data': arr} asdf.AsdfFile(tree).write_to(fd) def ref_unicode_bmp(fd): tree = {} for endian in ['>', '<']: arr = np.array(['', 'Æʩ'], dtype=endian + 'U') tree['datatype' + endian + 'U'] = arr asdf.AsdfFile(tree).write_to(fd) def ref_unicode_spp(fd): tree = {} for endian in ['>', '<']: arr = np.array(['', 'ð€ '], dtype=endian + 'U') tree['datatype' + endian + 'U'] = arr asdf.AsdfFile(tree).write_to(fd) def ref_shared(fd): data = np.arange(8) tree = { 'data': data, 'subset': data[1::2] } asdf.AsdfFile(tree).write_to(fd) def ref_stream(fd): tree = { # Each "row" of data will have 128 entries. 'my_stream': asdf.Stream([8], np.float64) } ff = asdf.AsdfFile(tree) with open(fd, 'wb') as fd: ff.write_to(fd) # Write 100 rows of data, one row at a time. ``write_to_stream`` # expects the raw binary bytes, not an array, so we use # ``tostring()``. for i in range(8): fd.write(np.array([i] * 8, np.float64).tostring()) def ref_exploded(fd): tree = { 'data': np.arange(8) } asdf.AsdfFile(tree).write_to(fd, all_array_storage='external') def ref_compressed(fd): tree = { 'zlib': np.arange(128), 'bzp2': np.arange(128) } ff = asdf.AsdfFile(tree) ff.set_array_compression(tree['zlib'], 'zlib') ff.set_array_compression(tree['bzp2'], 'bzp2') ff.write_to(fd) def generate(version): outdir = os.path.join(os.path.dirname(__file__), '..', version) for name, func in globals().items(): if not name.startswith("ref_"): continue name = name[4:] filename = os.path.join(outdir, name) func(filename + ".asdf") with asdf.open(filename + ".asdf") as asdf: asdf.resolve_and_inline() asdf.write_to(filename + ".yaml") if __name__ == '__main__': import argparse parser = argparse.ArgumentParser( "generate", description="Regenerate the ASDF reference files") parser.add_argument( "version", type=str, nargs=1, help="The ASDF version") args = parser.parse_args() generate(args.version[0]) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3566992 asdf_standard-1.0.3/resources/0000755000175100001710000000000014274323045015725 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3566992 asdf_standard-1.0.3/resources/manifests/0000755000175100001710000000000014274323045017716 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3566992 asdf_standard-1.0.3/resources/manifests/asdf-format.org/0000755000175100001710000000000014274323045022707 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3646994 asdf_standard-1.0.3/resources/manifests/asdf-format.org/core/0000755000175100001710000000000014274323045023637 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/manifests/asdf-format.org/core/core-1.0.0.yaml0000644000175100001710000001755114274323033026113 0ustar00runnerdockerid: asdf://asdf-format.org/core/manifests/core-1.0.0 extension_uri: asdf://asdf-format.org/core/extensions/core-1.0.0 title: Core extension 1.0.0 description: Tags for ASDF core objects. asdf_standard_requirement: 1.0.0 tags: - tag_uri: tag:stsci.edu:asdf/core/asdf-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/asdf-1.0.0 title: Top-level schema for every ASDF file. description: This schema contains the top-level attributes for every ASDF file. - tag_uri: tag:stsci.edu:asdf/core/column-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/column-1.0.0 title: A column in a table. description: |- Each column contains a name and an array of data, and an optional description and unit. - tag_uri: tag:stsci.edu:asdf/core/complex-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/complex-1.0.0 title: Complex number value. description: |- Represents a complex number matching the following EBNF grammar ``` dot = "." plus-or-minus = "+" | "-" digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" sign = "" | plus-or-minus suffix = "J" | "j" | "I" | "i" inf = "inf" | "INF" nan = "nan" | "NAN" number = digits | dot digits | digits dot digits sci-suffix = "e" | "E" scientific = number sci-suffix sign digits real = sign number | sign scientific imag = number suffix | scientific suffix complex = real | sign imag | real plus-or-minus imag ``` Though `J`, `j`, `I` and `i` must be supported on reading, it is recommended to use `i` on writing. For historical reasons, it is necessary to accept as valid complex numbers that are surrounded by parenthesis. - tag_uri: tag:stsci.edu:asdf/core/constant-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/constant-1.0.0 title: Specify that a value is a constant. description: Used as a utility to indicate that value is a literal constant. - tag_uri: tag:stsci.edu:asdf/core/history_entry-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/history_entry-1.0.0 title: An entry in the file history. description: |- A record of an operation that has been performed upon a file. - tag_uri: tag:stsci.edu:asdf/core/ndarray-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/ndarray-1.0.0 title: An *n*-dimensional array. description: |- There are two ways to store the data in an ndarray. - Inline in the tree: This is recommended only for small arrays. In this case, the entire ``ndarray`` tag may be a nested list, in which case the type of the array is inferred from the content. (See the rules for type inference in the ``inline-data`` definition below.) The inline data may also be given in the ``data`` property, in which case it is possible to explicitly specify the ``datatype`` and other properties. - External to the tree: The data comes from a [block](ref:block) within the same ASDF file or an external ASDF file referenced by a URI. - tag_uri: tag:stsci.edu:asdf/core/software-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/software-1.0.0 title: Describes a software package. description: General-purpose description of a software package. - tag_uri: tag:stsci.edu:asdf/core/table-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/table-1.0.0 title: A table. description: |- A table is represented as a list of columns, where each entry is a [column](ref:core/column-1.0.0) object, containing the data and some additional information. The data itself may be stored inline as text, or in binary in either row- or column-major order by use of the `strides` property on the individual column arrays. Each column in the table must have the same first (slowest moving) dimension. - tag_uri: tag:stsci.edu:asdf/fits/fits-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/fits/fits-1.0.0 title: A FITS file inside of an ASDF file. description: |- This schema is useful for distributing ASDF files that can automatically be converted to FITS files by specifying the exact content of the resulting FITS file. Not all kinds of data in FITS are directly representable in ASDF. For example, applying an offset and scale to the data using the `BZERO` and `BSCALE` keywords. In these cases, it will not be possible to store the data in the native format from FITS and also be accessible in its proper form in the ASDF file. Only image and binary table extensions are supported. - tag_uri: tag:stsci.edu:asdf/time/time-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/time/time-1.0.0 title: Represents an instance in time. description: |- A "time" is a single instant in time. It may explicitly specify the way time is represented (the "format") and the "scale" which specifies the offset and scaling relation of the unit of time. Specific emphasis is placed on supporting time scales (e.g. UTC, TAI, UT1, TDB) and time representations (e.g. JD, MJD, ISO 8601) that are used in astronomy and required to calculate, e.g., sidereal times and barycentric corrections. Times may be represented as one of the following: - an object, with explicit `value`, and optional `format`, `scale` and `location`. - a string, in which case the format is guessed from across the unambiguous options (`iso`, `byear`, `jyear`, `yday`), and the scale is hardcoded to `UTC`. In either case, a single time tag may be used to represent an n-dimensional array of times, using either an `ndarray` tag or inline as (possibly nested) YAML lists. If YAML lists, the same format must be used for all time values. The precision of the numeric formats should only be assumed to be as good as an IEEE-754 double precision (float64) value. If higher-precision is required, the `iso` or `yday` format should be used. - tag_uri: tag:stsci.edu:asdf/unit/defunit-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/unit/defunit-1.0.0 title: Define a new physical unit. description: |- Defines a new unit. It can be used to either: - Define a new base unit. - Create a new unit name that is a equivalent to a given unit. The new unit must be defined before any unit tags that use it. - tag_uri: tag:stsci.edu:asdf/unit/unit-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/unit/unit-1.0.0 title: Physical unit. description: |- This represents a physical unit, in [VOUnit syntax, Version 1.0](http://www.ivoa.net/documents/VOUnits/index.html). Where units are not explicitly tagged, they are assumed to be in VOUnit syntax. - tag_uri: tag:stsci.edu:asdf/wcs/celestial_frame-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/celestial_frame-1.0.0 title: Represents a celestial frame. description: Represents a celestial frame. - tag_uri: tag:stsci.edu:asdf/wcs/composite_frame-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/composite_frame-1.0.0 title: Represents a set of frames. description: Represents a set of frames. - tag_uri: tag:stsci.edu:asdf/wcs/spectral_frame-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/spectral_frame-1.0.0 title: Represents a spectral frame. description: Represents a spectral frame. - tag_uri: tag:stsci.edu:asdf/wcs/step-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/step-1.0.0 title: Describes a single step of a WCS transform pipeline. description: Describes a single step of a WCS transform pipeline. - tag_uri: tag:stsci.edu:asdf/wcs/wcs-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/wcs-1.0.0 title: A system for describing generalized world coordinate transformations. description: ASDF WCS is a way of specifying transformations (usually from detector space to world coordinate space and back) by using the transformations in the `transform-schema` module. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/manifests/asdf-format.org/core/core-1.1.0.yaml0000644000175100001710000002100214274323033026076 0ustar00runnerdockerid: asdf://asdf-format.org/core/manifests/core-1.1.0 extension_uri: asdf://asdf-format.org/core/extensions/core-1.1.0 title: Core extension 1.1.0 description: Tags for ASDF core objects. asdf_standard_requirement: 1.1.0 tags: - tag_uri: tag:stsci.edu:asdf/core/asdf-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/asdf-1.0.0 title: Top-level schema for every ASDF file. description: This schema contains the top-level attributes for every ASDF file. - tag_uri: tag:stsci.edu:asdf/core/column-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/column-1.0.0 title: A column in a table. description: |- Each column contains a name and an array of data, and an optional description and unit. - tag_uri: tag:stsci.edu:asdf/core/complex-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/complex-1.0.0 title: Complex number value. description: |- Represents a complex number matching the following EBNF grammar ``` dot = "." plus-or-minus = "+" | "-" digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" sign = "" | plus-or-minus suffix = "J" | "j" | "I" | "i" inf = "inf" | "INF" nan = "nan" | "NAN" number = digits | dot digits | digits dot digits sci-suffix = "e" | "E" scientific = number sci-suffix sign digits real = sign number | sign scientific imag = number suffix | scientific suffix complex = real | sign imag | real plus-or-minus imag ``` Though `J`, `j`, `I` and `i` must be supported on reading, it is recommended to use `i` on writing. For historical reasons, it is necessary to accept as valid complex numbers that are surrounded by parenthesis. - tag_uri: tag:stsci.edu:asdf/core/constant-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/constant-1.0.0 title: Specify that a value is a constant. description: Used as a utility to indicate that value is a literal constant. - tag_uri: tag:stsci.edu:asdf/core/history_entry-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/history_entry-1.0.0 title: An entry in the file history. description: |- A record of an operation that has been performed upon a file. - tag_uri: tag:stsci.edu:asdf/core/ndarray-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/ndarray-1.0.0 title: An *n*-dimensional array. description: |- There are two ways to store the data in an ndarray. - Inline in the tree: This is recommended only for small arrays. In this case, the entire ``ndarray`` tag may be a nested list, in which case the type of the array is inferred from the content. (See the rules for type inference in the ``inline-data`` definition below.) The inline data may also be given in the ``data`` property, in which case it is possible to explicitly specify the ``datatype`` and other properties. - External to the tree: The data comes from a [block](ref:block) within the same ASDF file or an external ASDF file referenced by a URI. - tag_uri: tag:stsci.edu:asdf/core/software-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/software-1.0.0 title: Describes a software package. description: General-purpose description of a software package. - tag_uri: tag:stsci.edu:asdf/core/table-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/table-1.0.0 title: A table. description: |- A table is represented as a list of columns, where each entry is a [column](ref:core/column-1.0.0) object, containing the data and some additional information. The data itself may be stored inline as text, or in binary in either row- or column-major order by use of the `strides` property on the individual column arrays. Each column in the table must have the same first (slowest moving) dimension. - tag_uri: tag:stsci.edu:asdf/fits/fits-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/fits/fits-1.0.0 title: A FITS file inside of an ASDF file. description: |- This schema is useful for distributing ASDF files that can automatically be converted to FITS files by specifying the exact content of the resulting FITS file. Not all kinds of data in FITS are directly representable in ASDF. For example, applying an offset and scale to the data using the `BZERO` and `BSCALE` keywords. In these cases, it will not be possible to store the data in the native format from FITS and also be accessible in its proper form in the ASDF file. Only image and binary table extensions are supported. - tag_uri: tag:stsci.edu:asdf/time/time-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/time/time-1.1.0 title: Represents an instance in time. description: |- A "time" is a single instant in time. It may explicitly specify the way time is represented (the "format") and the "scale" which specifies the offset and scaling relation of the unit of time. Specific emphasis is placed on supporting time scales (e.g. UTC, TAI, UT1, TDB) and time representations (e.g. JD, MJD, ISO 8601) that are used in astronomy and required to calculate, e.g., sidereal times and barycentric corrections. Times may be represented as one of the following: - an object, with explicit `value`, and optional `format`, `scale` and `location`. - a string, in which case the format is guessed from across the unambiguous options (`iso`, `byear`, `jyear`, `yday`), and the scale is hardcoded to `UTC`. In either case, a single time tag may be used to represent an n-dimensional array of times, using either an `ndarray` tag or inline as (possibly nested) YAML lists. If YAML lists, the same format must be used for all time values. The precision of the numeric formats should only be assumed to be as good as an IEEE-754 double precision (float64) value. If higher-precision is required, the `iso` or `yday` format should be used. - tag_uri: tag:stsci.edu:asdf/unit/defunit-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/unit/defunit-1.0.0 title: Define a new physical unit. description: |- Defines a new unit. It can be used to either: - Define a new base unit. - Create a new unit name that is a equivalent to a given unit. The new unit must be defined before any unit tags that use it. - tag_uri: tag:stsci.edu:asdf/unit/quantity-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/unit/quantity-1.1.0 title: Represents a Quantity object from astropy description: |- A Quantity object represents a value that has some unit associated with the number. - tag_uri: tag:stsci.edu:asdf/unit/unit-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/unit/unit-1.0.0 title: Physical unit. description: |- This represents a physical unit, in [VOUnit syntax, Version 1.0](http://www.ivoa.net/documents/VOUnits/index.html). Where units are not explicitly tagged, they are assumed to be in VOUnit syntax. - tag_uri: tag:stsci.edu:asdf/wcs/celestial_frame-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/celestial_frame-1.1.0 title: Represents a celestial frame. description: Represents a celestial frame. - tag_uri: tag:stsci.edu:asdf/wcs/composite_frame-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/composite_frame-1.1.0 title: Represents a set of frames. description: Represents a set of frames. - tag_uri: tag:stsci.edu:asdf/wcs/icrs_coord-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/icrs_coord-1.1.0 title: Represents an ICRS coordinate object from astropy description: This object represents the right ascension (RA) and declination of an ICRS coordinate or frame. The astropy ICRS class contains additional fields that may be useful to add here in the future. - tag_uri: tag:stsci.edu:asdf/wcs/spectral_frame-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/spectral_frame-1.1.0 title: Represents a spectral frame. description: Represents a spectral frame. - tag_uri: tag:stsci.edu:asdf/wcs/step-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/step-1.1.0 title: Describes a single step of a WCS transform pipeline. description: Describes a single step of a WCS transform pipeline. - tag_uri: tag:stsci.edu:asdf/wcs/wcs-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/wcs-1.0.0 title: A system for describing generalized world coordinate transformations. description: ASDF WCS is a way of specifying transformations (usually from detector space to world coordinate space and back) by using the transformations in the `transform-schema` module. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/manifests/asdf-format.org/core/core-1.2.0.yaml0000644000175100001710000002147414274323033026114 0ustar00runnerdockerid: asdf://asdf-format.org/core/manifests/core-1.2.0 extension_uri: asdf://asdf-format.org/core/extensions/core-1.2.0 title: Core extension 1.2.0 description: Tags for ASDF core objects. asdf_standard_requirement: 1.2.0 tags: - tag_uri: tag:stsci.edu:asdf/core/asdf-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/core/asdf-1.1.0 title: Top-level schema for every ASDF file. description: This schema contains the top-level attributes for every ASDF file. - tag_uri: tag:stsci.edu:asdf/core/column-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/column-1.0.0 title: A column in a table. description: |- Each column contains a name and an array of data, and an optional description and unit. - tag_uri: tag:stsci.edu:asdf/core/complex-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/complex-1.0.0 title: Complex number value. description: |- Represents a complex number matching the following EBNF grammar ``` dot = "." plus-or-minus = "+" | "-" digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" sign = "" | plus-or-minus suffix = "J" | "j" | "I" | "i" inf = "inf" | "INF" nan = "nan" | "NAN" number = digits | dot digits | digits dot digits sci-suffix = "e" | "E" scientific = number sci-suffix sign digits real = sign number | sign scientific imag = number suffix | scientific suffix complex = real | sign imag | real plus-or-minus imag ``` Though `J`, `j`, `I` and `i` must be supported on reading, it is recommended to use `i` on writing. For historical reasons, it is necessary to accept as valid complex numbers that are surrounded by parenthesis. - tag_uri: tag:stsci.edu:asdf/core/constant-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/constant-1.0.0 title: Specify that a value is a constant. description: Used as a utility to indicate that value is a literal constant. - tag_uri: tag:stsci.edu:asdf/core/extension_metadata-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/extension_metadata-1.0.0 title: Metadata about specific ASDF extensions that were used to create this file. description: Metadata about specific ASDF extensions that were used to create this file. - tag_uri: tag:stsci.edu:asdf/core/history_entry-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/history_entry-1.0.0 title: An entry in the file history. description: |- A record of an operation that has been performed upon a file. - tag_uri: tag:stsci.edu:asdf/core/ndarray-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/ndarray-1.0.0 title: An *n*-dimensional array. description: |- There are two ways to store the data in an ndarray. - Inline in the tree: This is recommended only for small arrays. In this case, the entire ``ndarray`` tag may be a nested list, in which case the type of the array is inferred from the content. (See the rules for type inference in the ``inline-data`` definition below.) The inline data may also be given in the ``data`` property, in which case it is possible to explicitly specify the ``datatype`` and other properties. - External to the tree: The data comes from a [block](ref:block) within the same ASDF file or an external ASDF file referenced by a URI. - tag_uri: tag:stsci.edu:asdf/core/software-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/software-1.0.0 title: Describes a software package. description: General-purpose description of a software package. - tag_uri: tag:stsci.edu:asdf/core/table-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/table-1.0.0 title: A table. description: |- A table is represented as a list of columns, where each entry is a [column](ref:core/column-1.0.0) object, containing the data and some additional information. The data itself may be stored inline as text, or in binary in either row- or column-major order by use of the `strides` property on the individual column arrays. Each column in the table must have the same first (slowest moving) dimension. - tag_uri: tag:stsci.edu:asdf/fits/fits-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/fits/fits-1.0.0 title: A FITS file inside of an ASDF file. description: |- This schema is useful for distributing ASDF files that can automatically be converted to FITS files by specifying the exact content of the resulting FITS file. Not all kinds of data in FITS are directly representable in ASDF. For example, applying an offset and scale to the data using the `BZERO` and `BSCALE` keywords. In these cases, it will not be possible to store the data in the native format from FITS and also be accessible in its proper form in the ASDF file. Only image and binary table extensions are supported. - tag_uri: tag:stsci.edu:asdf/time/time-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/time/time-1.1.0 title: Represents an instance in time. description: |- A "time" is a single instant in time. It may explicitly specify the way time is represented (the "format") and the "scale" which specifies the offset and scaling relation of the unit of time. Specific emphasis is placed on supporting time scales (e.g. UTC, TAI, UT1, TDB) and time representations (e.g. JD, MJD, ISO 8601) that are used in astronomy and required to calculate, e.g., sidereal times and barycentric corrections. Times may be represented as one of the following: - an object, with explicit `value`, and optional `format`, `scale` and `location`. - a string, in which case the format is guessed from across the unambiguous options (`iso`, `byear`, `jyear`, `yday`), and the scale is hardcoded to `UTC`. In either case, a single time tag may be used to represent an n-dimensional array of times, using either an `ndarray` tag or inline as (possibly nested) YAML lists. If YAML lists, the same format must be used for all time values. The precision of the numeric formats should only be assumed to be as good as an IEEE-754 double precision (float64) value. If higher-precision is required, the `iso` or `yday` format should be used. - tag_uri: tag:stsci.edu:asdf/unit/defunit-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/unit/defunit-1.0.0 title: Define a new physical unit. description: |- Defines a new unit. It can be used to either: - Define a new base unit. - Create a new unit name that is a equivalent to a given unit. The new unit must be defined before any unit tags that use it. - tag_uri: tag:stsci.edu:asdf/unit/quantity-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/unit/quantity-1.1.0 title: Represents a Quantity object from astropy description: |- A Quantity object represents a value that has some unit associated with the number. - tag_uri: tag:stsci.edu:asdf/unit/unit-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/unit/unit-1.0.0 title: Physical unit. description: |- This represents a physical unit, in [VOUnit syntax, Version 1.0](http://www.ivoa.net/documents/VOUnits/index.html). Where units are not explicitly tagged, they are assumed to be in VOUnit syntax. - tag_uri: tag:stsci.edu:asdf/wcs/celestial_frame-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/celestial_frame-1.1.0 title: Represents a celestial frame. description: Represents a celestial frame. - tag_uri: tag:stsci.edu:asdf/wcs/composite_frame-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/composite_frame-1.1.0 title: Represents a set of frames. description: Represents a set of frames. - tag_uri: tag:stsci.edu:asdf/wcs/icrs_coord-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/icrs_coord-1.1.0 title: Represents an ICRS coordinate object from astropy description: This object represents the right ascension (RA) and declination of an ICRS coordinate or frame. The astropy ICRS class contains additional fields that may be useful to add here in the future. - tag_uri: tag:stsci.edu:asdf/wcs/spectral_frame-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/spectral_frame-1.1.0 title: Represents a spectral frame. description: Represents a spectral frame. - tag_uri: tag:stsci.edu:asdf/wcs/step-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/step-1.1.0 title: Describes a single step of a WCS transform pipeline. description: Describes a single step of a WCS transform pipeline. - tag_uri: tag:stsci.edu:asdf/wcs/wcs-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/wcs-1.1.0 title: A system for describing generalized world coordinate transformations. description: ASDF WCS is a way of specifying transformations (usually from detector space to world coordinate space and back) by using the transformations in the `transform-schema` module. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/manifests/asdf-format.org/core/core-1.3.0.yaml0000644000175100001710000002270114274323033026107 0ustar00runnerdockerid: asdf://asdf-format.org/core/manifests/core-1.3.0 extension_uri: asdf://asdf-format.org/core/extensions/core-1.3.0 title: Core extension 1.3.0 description: Tags for ASDF core objects. asdf_standard_requirement: 1.3.0 tags: - tag_uri: tag:stsci.edu:asdf/core/asdf-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/core/asdf-1.1.0 title: Top-level schema for every ASDF file. description: This schema contains the top-level attributes for every ASDF file. - tag_uri: tag:stsci.edu:asdf/core/column-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/column-1.0.0 title: A column in a table. description: |- Each column contains a name and an array of data, and an optional description and unit. - tag_uri: tag:stsci.edu:asdf/core/complex-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/complex-1.0.0 title: Complex number value. description: |- Represents a complex number matching the following EBNF grammar ``` dot = "." plus-or-minus = "+" | "-" digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" sign = "" | plus-or-minus suffix = "J" | "j" | "I" | "i" inf = "inf" | "INF" nan = "nan" | "NAN" number = digits | dot digits | digits dot digits sci-suffix = "e" | "E" scientific = number sci-suffix sign digits real = sign number | sign scientific imag = number suffix | scientific suffix complex = real | sign imag | real plus-or-minus imag ``` Though `J`, `j`, `I` and `i` must be supported on reading, it is recommended to use `i` on writing. For historical reasons, it is necessary to accept as valid complex numbers that are surrounded by parenthesis. - tag_uri: tag:stsci.edu:asdf/core/constant-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/constant-1.0.0 title: Specify that a value is a constant. description: Used as a utility to indicate that value is a literal constant. - tag_uri: tag:stsci.edu:asdf/core/extension_metadata-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/extension_metadata-1.0.0 title: Metadata about specific ASDF extensions that were used to create this file. description: Metadata about specific ASDF extensions that were used to create this file. - tag_uri: tag:stsci.edu:asdf/core/externalarray-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/externalarray-1.0.0 title: Point to an array-like object in an external file. description: |- Allow referencing of array-like objects in external files. These files can be any type of file and in any absolute or relative location to the asdf file. Loading of these files into arrays is not handled by asdf. - tag_uri: tag:stsci.edu:asdf/core/history_entry-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/history_entry-1.0.0 title: An entry in the file history. description: |- A record of an operation that has been performed upon a file. - tag_uri: tag:stsci.edu:asdf/core/integer-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/integer-1.0.0 title: Arbitrary precision integer value. description: Represents an arbitrarily large integer value. - tag_uri: tag:stsci.edu:asdf/core/ndarray-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/ndarray-1.0.0 title: An *n*-dimensional array. description: |- There are two ways to store the data in an ndarray. - Inline in the tree: This is recommended only for small arrays. In this case, the entire ``ndarray`` tag may be a nested list, in which case the type of the array is inferred from the content. (See the rules for type inference in the ``inline-data`` definition below.) The inline data may also be given in the ``data`` property, in which case it is possible to explicitly specify the ``datatype`` and other properties. - External to the tree: The data comes from a [block](ref:block) within the same ASDF file or an external ASDF file referenced by a URI. - tag_uri: tag:stsci.edu:asdf/core/software-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/software-1.0.0 title: Describes a software package. description: General-purpose description of a software package. - tag_uri: tag:stsci.edu:asdf/core/table-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/table-1.0.0 title: A table. description: |- A table is represented as a list of columns, where each entry is a [column](ref:core/column-1.0.0) object, containing the data and some additional information. The data itself may be stored inline as text, or in binary in either row- or column-major order by use of the `strides` property on the individual column arrays. Each column in the table must have the same first (slowest moving) dimension. - tag_uri: tag:stsci.edu:asdf/fits/fits-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/fits/fits-1.0.0 title: A FITS file inside of an ASDF file. description: |- This schema is useful for distributing ASDF files that can automatically be converted to FITS files by specifying the exact content of the resulting FITS file. Not all kinds of data in FITS are directly representable in ASDF. For example, applying an offset and scale to the data using the `BZERO` and `BSCALE` keywords. In these cases, it will not be possible to store the data in the native format from FITS and also be accessible in its proper form in the ASDF file. Only image and binary table extensions are supported. - tag_uri: tag:stsci.edu:asdf/time/time-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/time/time-1.1.0 title: Represents an instance in time. description: |- A "time" is a single instant in time. It may explicitly specify the way time is represented (the "format") and the "scale" which specifies the offset and scaling relation of the unit of time. Specific emphasis is placed on supporting time scales (e.g. UTC, TAI, UT1, TDB) and time representations (e.g. JD, MJD, ISO 8601) that are used in astronomy and required to calculate, e.g., sidereal times and barycentric corrections. Times may be represented as one of the following: - an object, with explicit `value`, and optional `format`, `scale` and `location`. - a string, in which case the format is guessed from across the unambiguous options (`iso`, `byear`, `jyear`, `yday`), and the scale is hardcoded to `UTC`. In either case, a single time tag may be used to represent an n-dimensional array of times, using either an `ndarray` tag or inline as (possibly nested) YAML lists. If YAML lists, the same format must be used for all time values. The precision of the numeric formats should only be assumed to be as good as an IEEE-754 double precision (float64) value. If higher-precision is required, the `iso` or `yday` format should be used. - tag_uri: tag:stsci.edu:asdf/unit/defunit-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/unit/defunit-1.0.0 title: Define a new physical unit. description: |- Defines a new unit. It can be used to either: - Define a new base unit. - Create a new unit name that is a equivalent to a given unit. The new unit must be defined before any unit tags that use it. - tag_uri: tag:stsci.edu:asdf/unit/quantity-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/unit/quantity-1.1.0 title: Represents a Quantity object from astropy description: |- A Quantity object represents a value that has some unit associated with the number. - tag_uri: tag:stsci.edu:asdf/unit/unit-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/unit/unit-1.0.0 title: Physical unit. description: |- This represents a physical unit, in [VOUnit syntax, Version 1.0](http://www.ivoa.net/documents/VOUnits/index.html). Where units are not explicitly tagged, they are assumed to be in VOUnit syntax. - tag_uri: tag:stsci.edu:asdf/wcs/celestial_frame-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/celestial_frame-1.1.0 title: Represents a celestial frame. description: Represents a celestial frame. - tag_uri: tag:stsci.edu:asdf/wcs/composite_frame-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/composite_frame-1.1.0 title: Represents a set of frames. description: Represents a set of frames. - tag_uri: tag:stsci.edu:asdf/wcs/icrs_coord-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/icrs_coord-1.1.0 title: Represents an ICRS coordinate object from astropy description: This object represents the right ascension (RA) and declination of an ICRS coordinate or frame. The astropy ICRS class contains additional fields that may be useful to add here in the future. - tag_uri: tag:stsci.edu:asdf/wcs/spectral_frame-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/spectral_frame-1.1.0 title: Represents a spectral frame. description: Represents a spectral frame. - tag_uri: tag:stsci.edu:asdf/wcs/step-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/step-1.1.0 title: Describes a single step of a WCS transform pipeline. description: Describes a single step of a WCS transform pipeline. - tag_uri: tag:stsci.edu:asdf/wcs/wcs-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/wcs-1.1.0 title: A system for describing generalized world coordinate transformations. description: ASDF WCS is a way of specifying transformations (usually from detector space to world coordinate space and back) by using the transformations in the `transform-schema` module. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/manifests/asdf-format.org/core/core-1.4.0.yaml0000644000175100001710000002342514274323033026114 0ustar00runnerdockerid: asdf://asdf-format.org/core/manifests/core-1.4.0 extension_uri: asdf://asdf-format.org/core/extensions/core-1.4.0 title: Core extension 1.4.0 description: Tags for ASDF core objects. asdf_standard_requirement: 1.4.0 tags: - tag_uri: tag:stsci.edu:asdf/core/asdf-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/core/asdf-1.1.0 title: Top-level schema for every ASDF file. description: This schema contains the top-level attributes for every ASDF file. - tag_uri: tag:stsci.edu:asdf/core/column-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/column-1.0.0 title: A column in a table. description: |- Each column contains a name and an array of data, and an optional description and unit. - tag_uri: tag:stsci.edu:asdf/core/complex-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/complex-1.0.0 title: Complex number value. description: |- Represents a complex number matching the following EBNF grammar ``` dot = "." plus-or-minus = "+" | "-" digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" sign = "" | plus-or-minus suffix = "J" | "j" | "I" | "i" inf = "inf" | "INF" nan = "nan" | "NAN" number = digits | dot digits | digits dot digits sci-suffix = "e" | "E" scientific = number sci-suffix sign digits real = sign number | sign scientific imag = number suffix | scientific suffix complex = real | sign imag | real plus-or-minus imag ``` Though `J`, `j`, `I` and `i` must be supported on reading, it is recommended to use `i` on writing. For historical reasons, it is necessary to accept as valid complex numbers that are surrounded by parenthesis. - tag_uri: tag:stsci.edu:asdf/core/constant-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/constant-1.0.0 title: Specify that a value is a constant. description: Used as a utility to indicate that value is a literal constant. - tag_uri: tag:stsci.edu:asdf/core/extension_metadata-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/extension_metadata-1.0.0 title: Metadata about specific ASDF extensions that were used to create this file. description: Metadata about specific ASDF extensions that were used to create this file. - tag_uri: tag:stsci.edu:asdf/core/externalarray-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/externalarray-1.0.0 title: Point to an array-like object in an external file. description: |- Allow referencing of array-like objects in external files. These files can be any type of file and in any absolute or relative location to the asdf file. Loading of these files into arrays is not handled by asdf. - tag_uri: tag:stsci.edu:asdf/core/history_entry-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/history_entry-1.0.0 title: An entry in the file history. description: |- A record of an operation that has been performed upon a file. - tag_uri: tag:stsci.edu:asdf/core/integer-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/integer-1.0.0 title: Arbitrary precision integer value. description: Represents an arbitrarily large integer value. - tag_uri: tag:stsci.edu:asdf/core/ndarray-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/ndarray-1.0.0 title: An *n*-dimensional array. description: |- There are two ways to store the data in an ndarray. - Inline in the tree: This is recommended only for small arrays. In this case, the entire ``ndarray`` tag may be a nested list, in which case the type of the array is inferred from the content. (See the rules for type inference in the ``inline-data`` definition below.) The inline data may also be given in the ``data`` property, in which case it is possible to explicitly specify the ``datatype`` and other properties. - External to the tree: The data comes from a [block](ref:block) within the same ASDF file or an external ASDF file referenced by a URI. - tag_uri: tag:stsci.edu:asdf/core/software-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/software-1.0.0 title: Describes a software package. description: General-purpose description of a software package. - tag_uri: tag:stsci.edu:asdf/core/subclass_metadata-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/subclass_metadata-1.0.0 title: Metadata on a serialized subclass of an ASDF-enabled type. description: |- Identifies the specific subclass that was serialized, to enable ASDF readers to correctly deserialize the object. - tag_uri: tag:stsci.edu:asdf/core/table-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/table-1.0.0 title: A table. description: |- A table is represented as a list of columns, where each entry is a [column](ref:core/column-1.0.0) object, containing the data and some additional information. The data itself may be stored inline as text, or in binary in either row- or column-major order by use of the `strides` property on the individual column arrays. Each column in the table must have the same first (slowest moving) dimension. - tag_uri: tag:stsci.edu:asdf/fits/fits-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/fits/fits-1.0.0 title: A FITS file inside of an ASDF file. description: |- This schema is useful for distributing ASDF files that can automatically be converted to FITS files by specifying the exact content of the resulting FITS file. Not all kinds of data in FITS are directly representable in ASDF. For example, applying an offset and scale to the data using the `BZERO` and `BSCALE` keywords. In these cases, it will not be possible to store the data in the native format from FITS and also be accessible in its proper form in the ASDF file. Only image and binary table extensions are supported. - tag_uri: tag:stsci.edu:asdf/time/time-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/time/time-1.1.0 title: Represents an instance in time. description: |- A "time" is a single instant in time. It may explicitly specify the way time is represented (the "format") and the "scale" which specifies the offset and scaling relation of the unit of time. Specific emphasis is placed on supporting time scales (e.g. UTC, TAI, UT1, TDB) and time representations (e.g. JD, MJD, ISO 8601) that are used in astronomy and required to calculate, e.g., sidereal times and barycentric corrections. Times may be represented as one of the following: - an object, with explicit `value`, and optional `format`, `scale` and `location`. - a string, in which case the format is guessed from across the unambiguous options (`iso`, `byear`, `jyear`, `yday`), and the scale is hardcoded to `UTC`. In either case, a single time tag may be used to represent an n-dimensional array of times, using either an `ndarray` tag or inline as (possibly nested) YAML lists. If YAML lists, the same format must be used for all time values. The precision of the numeric formats should only be assumed to be as good as an IEEE-754 double precision (float64) value. If higher-precision is required, the `iso` or `yday` format should be used. - tag_uri: tag:stsci.edu:asdf/unit/defunit-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/unit/defunit-1.0.0 title: Define a new physical unit. description: |- Defines a new unit. It can be used to either: - Define a new base unit. - Create a new unit name that is a equivalent to a given unit. The new unit must be defined before any unit tags that use it. - tag_uri: tag:stsci.edu:asdf/unit/quantity-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/unit/quantity-1.1.0 title: Represents a Quantity object from astropy description: |- A Quantity object represents a value that has some unit associated with the number. - tag_uri: tag:stsci.edu:asdf/unit/unit-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/unit/unit-1.0.0 title: Physical unit. description: |- This represents a physical unit, in [VOUnit syntax, Version 1.0](http://www.ivoa.net/documents/VOUnits/index.html). Where units are not explicitly tagged, they are assumed to be in VOUnit syntax. - tag_uri: tag:stsci.edu:asdf/wcs/celestial_frame-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/celestial_frame-1.1.0 title: Represents a celestial frame. description: Represents a celestial frame. - tag_uri: tag:stsci.edu:asdf/wcs/composite_frame-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/composite_frame-1.1.0 title: Represents a set of frames. description: Represents a set of frames. - tag_uri: tag:stsci.edu:asdf/wcs/icrs_coord-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/icrs_coord-1.1.0 title: Represents an ICRS coordinate object from astropy description: This object represents the right ascension (RA) and declination of an ICRS coordinate or frame. The astropy ICRS class contains additional fields that may be useful to add here in the future. - tag_uri: tag:stsci.edu:asdf/wcs/spectral_frame-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/spectral_frame-1.1.0 title: Represents a spectral frame. description: Represents a spectral frame. - tag_uri: tag:stsci.edu:asdf/wcs/step-1.2.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/step-1.2.0 title: Describes a single step of a WCS transform pipeline. description: Describes a single step of a WCS transform pipeline. - tag_uri: tag:stsci.edu:asdf/wcs/wcs-1.2.0 schema_uri: http://stsci.edu/schemas/asdf/wcs/wcs-1.2.0 title: A system for describing generalized world coordinate transformations. description: ASDF WCS is a way of specifying transformations (usually from detector space to world coordinate space and back) by using the transformations in the `transform-schema` module. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/manifests/asdf-format.org/core/core-1.5.0.yaml0000644000175100001710000002027314274323033026113 0ustar00runnerdockerid: asdf://asdf-format.org/core/manifests/core-1.5.0 extension_uri: asdf://asdf-format.org/core/extensions/core-1.5.0 title: Core extension 1.5.0 description: Tags for ASDF core objects. asdf_standard_requirement: 1.5.0 tags: - tag_uri: tag:stsci.edu:asdf/core/asdf-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/core/asdf-1.1.0 title: Top-level schema for every ASDF file. description: This schema contains the top-level attributes for every ASDF file. - tag_uri: tag:stsci.edu:asdf/core/column-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/column-1.0.0 title: A column in a table. description: |- Each column contains a name and an array of data, and an optional description and unit. - tag_uri: tag:stsci.edu:asdf/core/complex-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/complex-1.0.0 title: Complex number value. description: |- Represents a complex number matching the following EBNF grammar ``` dot = "." plus-or-minus = "+" | "-" digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" sign = "" | plus-or-minus suffix = "J" | "j" | "I" | "i" inf = "inf" | "INF" nan = "nan" | "NAN" number = digits | dot digits | digits dot digits sci-suffix = "e" | "E" scientific = number sci-suffix sign digits real = sign number | sign scientific imag = number suffix | scientific suffix complex = real | sign imag | real plus-or-minus imag ``` Though `J`, `j`, `I` and `i` must be supported on reading, it is recommended to use `i` on writing. For historical reasons, it is necessary to accept as valid complex numbers that are surrounded by parenthesis. - tag_uri: tag:stsci.edu:asdf/core/constant-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/constant-1.0.0 title: Specify that a value is a constant. description: Used as a utility to indicate that value is a literal constant. - tag_uri: tag:stsci.edu:asdf/core/extension_metadata-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/extension_metadata-1.0.0 title: Metadata about specific ASDF extensions that were used to create this file. description: Metadata about specific ASDF extensions that were used to create this file. - tag_uri: tag:stsci.edu:asdf/core/externalarray-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/externalarray-1.0.0 title: Point to an array-like object in an external file. description: |- Allow referencing of array-like objects in external files. These files can be any type of file and in any absolute or relative location to the asdf file. Loading of these files into arrays is not handled by asdf. - tag_uri: tag:stsci.edu:asdf/core/history_entry-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/history_entry-1.0.0 title: An entry in the file history. description: |- A record of an operation that has been performed upon a file. - tag_uri: tag:stsci.edu:asdf/core/integer-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/integer-1.0.0 title: Arbitrary precision integer value. description: Represents an arbitrarily large integer value. - tag_uri: tag:stsci.edu:asdf/core/ndarray-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/ndarray-1.0.0 title: An *n*-dimensional array. description: |- There are two ways to store the data in an ndarray. - Inline in the tree: This is recommended only for small arrays. In this case, the entire ``ndarray`` tag may be a nested list, in which case the type of the array is inferred from the content. (See the rules for type inference in the ``inline-data`` definition below.) The inline data may also be given in the ``data`` property, in which case it is possible to explicitly specify the ``datatype`` and other properties. - External to the tree: The data comes from a [block](ref:block) within the same ASDF file or an external ASDF file referenced by a URI. - tag_uri: tag:stsci.edu:asdf/core/software-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/software-1.0.0 title: Describes a software package. description: General-purpose description of a software package. - tag_uri: tag:stsci.edu:asdf/core/subclass_metadata-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/subclass_metadata-1.0.0 title: Metadata on a serialized subclass of an ASDF-enabled type. description: |- Identifies the specific subclass that was serialized, to enable ASDF readers to correctly deserialize the object. - tag_uri: tag:stsci.edu:asdf/core/table-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/table-1.0.0 title: A table. description: |- A table is represented as a list of columns, where each entry is a [column](ref:core/column-1.0.0) object, containing the data and some additional information. The data itself may be stored inline as text, or in binary in either row- or column-major order by use of the `strides` property on the individual column arrays. Each column in the table must have the same first (slowest moving) dimension. - tag_uri: tag:stsci.edu:asdf/fits/fits-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/fits/fits-1.0.0 title: A FITS file inside of an ASDF file. description: |- This schema is useful for distributing ASDF files that can automatically be converted to FITS files by specifying the exact content of the resulting FITS file. Not all kinds of data in FITS are directly representable in ASDF. For example, applying an offset and scale to the data using the `BZERO` and `BSCALE` keywords. In these cases, it will not be possible to store the data in the native format from FITS and also be accessible in its proper form in the ASDF file. Only image and binary table extensions are supported. - tag_uri: tag:stsci.edu:asdf/time/time-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/time/time-1.1.0 title: Represents an instance in time. description: |- A "time" is a single instant in time. It may explicitly specify the way time is represented (the "format") and the "scale" which specifies the offset and scaling relation of the unit of time. Specific emphasis is placed on supporting time scales (e.g. UTC, TAI, UT1, TDB) and time representations (e.g. JD, MJD, ISO 8601) that are used in astronomy and required to calculate, e.g., sidereal times and barycentric corrections. Times may be represented as one of the following: - an object, with explicit `value`, and optional `format`, `scale` and `location`. - a string, in which case the format is guessed from across the unambiguous options (`iso`, `byear`, `jyear`, `yday`), and the scale is hardcoded to `UTC`. In either case, a single time tag may be used to represent an n-dimensional array of times, using either an `ndarray` tag or inline as (possibly nested) YAML lists. If YAML lists, the same format must be used for all time values. The precision of the numeric formats should only be assumed to be as good as an IEEE-754 double precision (float64) value. If higher-precision is required, the `iso` or `yday` format should be used. - tag_uri: tag:stsci.edu:asdf/unit/defunit-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/unit/defunit-1.0.0 title: Define a new physical unit. description: |- Defines a new unit. It can be used to either: - Define a new base unit. - Create a new unit name that is a equivalent to a given unit. The new unit must be defined before any unit tags that use it. - tag_uri: tag:stsci.edu:asdf/unit/quantity-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/unit/quantity-1.1.0 title: Represents a Quantity object from astropy description: |- A Quantity object represents a value that has some unit associated with the number. - tag_uri: tag:stsci.edu:asdf/unit/unit-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/unit/unit-1.0.0 title: Physical unit. description: |- This represents a physical unit, in [VOUnit syntax, Version 1.0](http://www.ivoa.net/documents/VOUnits/index.html). Where units are not explicitly tagged, they are assumed to be in VOUnit syntax. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/manifests/asdf-format.org/core/core-1.6.0.yaml0000644000175100001710000002027314274323033026114 0ustar00runnerdockerid: asdf://asdf-format.org/core/manifests/core-1.6.0 extension_uri: asdf://asdf-format.org/core/extensions/core-1.6.0 title: Core extension 1.6.0 description: Tags for ASDF core objects. asdf_standard_requirement: 1.6.0 tags: - tag_uri: tag:stsci.edu:asdf/core/asdf-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/core/asdf-1.1.0 title: Top-level schema for every ASDF file. description: This schema contains the top-level attributes for every ASDF file. - tag_uri: tag:stsci.edu:asdf/core/column-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/column-1.0.0 title: A column in a table. description: |- Each column contains a name and an array of data, and an optional description and unit. - tag_uri: tag:stsci.edu:asdf/core/complex-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/complex-1.0.0 title: Complex number value. description: |- Represents a complex number matching the following EBNF grammar ``` dot = "." plus-or-minus = "+" | "-" digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" sign = "" | plus-or-minus suffix = "J" | "j" | "I" | "i" inf = "inf" | "INF" nan = "nan" | "NAN" number = digits | dot digits | digits dot digits sci-suffix = "e" | "E" scientific = number sci-suffix sign digits real = sign number | sign scientific imag = number suffix | scientific suffix complex = real | sign imag | real plus-or-minus imag ``` Though `J`, `j`, `I` and `i` must be supported on reading, it is recommended to use `i` on writing. For historical reasons, it is necessary to accept as valid complex numbers that are surrounded by parenthesis. - tag_uri: tag:stsci.edu:asdf/core/constant-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/constant-1.0.0 title: Specify that a value is a constant. description: Used as a utility to indicate that value is a literal constant. - tag_uri: tag:stsci.edu:asdf/core/extension_metadata-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/extension_metadata-1.0.0 title: Metadata about specific ASDF extensions that were used to create this file. description: Metadata about specific ASDF extensions that were used to create this file. - tag_uri: tag:stsci.edu:asdf/core/externalarray-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/externalarray-1.0.0 title: Point to an array-like object in an external file. description: |- Allow referencing of array-like objects in external files. These files can be any type of file and in any absolute or relative location to the asdf file. Loading of these files into arrays is not handled by asdf. - tag_uri: tag:stsci.edu:asdf/core/history_entry-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/history_entry-1.0.0 title: An entry in the file history. description: |- A record of an operation that has been performed upon a file. - tag_uri: tag:stsci.edu:asdf/core/integer-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/integer-1.0.0 title: Arbitrary precision integer value. description: Represents an arbitrarily large integer value. - tag_uri: tag:stsci.edu:asdf/core/ndarray-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/ndarray-1.0.0 title: An *n*-dimensional array. description: |- There are two ways to store the data in an ndarray. - Inline in the tree: This is recommended only for small arrays. In this case, the entire ``ndarray`` tag may be a nested list, in which case the type of the array is inferred from the content. (See the rules for type inference in the ``inline-data`` definition below.) The inline data may also be given in the ``data`` property, in which case it is possible to explicitly specify the ``datatype`` and other properties. - External to the tree: The data comes from a [block](ref:block) within the same ASDF file or an external ASDF file referenced by a URI. - tag_uri: tag:stsci.edu:asdf/core/software-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/software-1.0.0 title: Describes a software package. description: General-purpose description of a software package. - tag_uri: tag:stsci.edu:asdf/core/subclass_metadata-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/subclass_metadata-1.0.0 title: Metadata on a serialized subclass of an ASDF-enabled type. description: |- Identifies the specific subclass that was serialized, to enable ASDF readers to correctly deserialize the object. - tag_uri: tag:stsci.edu:asdf/core/table-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/core/table-1.0.0 title: A table. description: |- A table is represented as a list of columns, where each entry is a [column](ref:core/column-1.0.0) object, containing the data and some additional information. The data itself may be stored inline as text, or in binary in either row- or column-major order by use of the `strides` property on the individual column arrays. Each column in the table must have the same first (slowest moving) dimension. - tag_uri: tag:stsci.edu:asdf/fits/fits-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/fits/fits-1.0.0 title: A FITS file inside of an ASDF file. description: |- This schema is useful for distributing ASDF files that can automatically be converted to FITS files by specifying the exact content of the resulting FITS file. Not all kinds of data in FITS are directly representable in ASDF. For example, applying an offset and scale to the data using the `BZERO` and `BSCALE` keywords. In these cases, it will not be possible to store the data in the native format from FITS and also be accessible in its proper form in the ASDF file. Only image and binary table extensions are supported. - tag_uri: tag:stsci.edu:asdf/time/time-1.2.0 schema_uri: http://stsci.edu/schemas/asdf/time/time-1.2.0 title: Represents an instance in time. description: |- A "time" is a single instant in time. It may explicitly specify the way time is represented (the "format") and the "scale" which specifies the offset and scaling relation of the unit of time. Specific emphasis is placed on supporting time scales (e.g. UTC, TAI, UT1, TDB) and time representations (e.g. JD, MJD, ISO 8601) that are used in astronomy and required to calculate, e.g., sidereal times and barycentric corrections. Times may be represented as one of the following: - an object, with explicit `value`, and optional `format`, `scale` and `location`. - a string, in which case the format is guessed from across the unambiguous options (`iso`, `byear`, `jyear`, `yday`), and the scale is hardcoded to `UTC`. In either case, a single time tag may be used to represent an n-dimensional array of times, using either an `ndarray` tag or inline as (possibly nested) YAML lists. If YAML lists, the same format must be used for all time values. The precision of the numeric formats should only be assumed to be as good as an IEEE-754 double precision (float64) value. If higher-precision is required, the `iso` or `yday` format should be used. - tag_uri: tag:stsci.edu:asdf/unit/defunit-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/unit/defunit-1.0.0 title: Define a new physical unit. description: |- Defines a new unit. It can be used to either: - Define a new base unit. - Create a new unit name that is a equivalent to a given unit. The new unit must be defined before any unit tags that use it. - tag_uri: tag:stsci.edu:asdf/unit/quantity-1.1.0 schema_uri: http://stsci.edu/schemas/asdf/unit/quantity-1.1.0 title: Represents a Quantity object from astropy description: |- A Quantity object represents a value that has some unit associated with the number. - tag_uri: tag:stsci.edu:asdf/unit/unit-1.0.0 schema_uri: http://stsci.edu/schemas/asdf/unit/unit-1.0.0 title: Physical unit. description: |- This represents a physical unit, in [VOUnit syntax, Version 1.0](http://www.ivoa.net/documents/VOUnits/index.html). Where units are not explicitly tagged, they are assumed to be in VOUnit syntax. ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3566992 asdf_standard-1.0.3/resources/schemas/0000755000175100001710000000000014274323045017350 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3566992 asdf_standard-1.0.3/resources/schemas/asdf-format.org/0000755000175100001710000000000014274323045022341 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3646994 asdf_standard-1.0.3/resources/schemas/asdf-format.org/core/0000755000175100001710000000000014274323045023271 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/asdf-format.org/core/extension_manifest-1.0.0.yaml0000644000175100001710000000544614274323033030517 0ustar00runnerdocker%YAML 1.1 --- $schema: http://stsci.edu/schemas/yaml-schema/draft-01 id: asdf://asdf-format.org/core/schemas/extension_manifest-1.0.0 title: ASDF extension manifest description: > Manifest of additional tags and other features associated with an extension to the ASDF Standard. This schema is provisional and not yet included in any ASDF Standard version. definitions: version: description: > A string property whose value matches a 1-3 part version number (pre-release version not permitted). type: string pattern: '^(0|[1-9]\d*)(\.(0|[1-9]\d*)){0,2}$' type: object properties: id: description: > URI of the extension manifest resource. type: string extension_uri: description: > The extension's identifying URI. type: string title: description: > Short description of the extension. type: string description: description: > Long description of the extension. type: string asdf_standard_requirement: description: > ASDF Standard version requirement. anyOf: - description: > Require exact version. $ref: '#/definitions/version' - type: object properties: gt: description: > Require versions greater than. $ref: '#/definitions/version' gte: description: > Require versions greater than or equal. $ref: '#/definitions/version' lt: description: > Require versions less than. $ref: '#/definitions/version' lte: description: > Require versions less than or equal. $ref: '#/definitions/version' additionalProperties: false tags: description: > List of additional tags supported by this extension. type: array items: anyOf: - description: > The tag's identifying URI. type: string - description: > Tag definition object. type: object properties: tag_uri: description: > The tag's identifying URI. type: string schema_uri: description: > URI of schema used to validate objects with this tag. anyOf: - type: string - type: array items: type: string title: description: > Short description of the tag. type: string description: description: > Long description of the tag. type: string required: [tag_uri] additionalProperties: false required: [id, extension_uri] additionalProperties: false ... ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3566992 asdf_standard-1.0.3/resources/schemas/stsci.edu/0000755000175100001710000000000014274323045021251 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3686993 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/0000755000175100001710000000000014274323045022166 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/asdf-schema-1.0.0.yaml0000644000175100001710000000512314274323033025655 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://json-schema.org/draft-04/schema" id: "http://stsci.edu/schemas/asdf/asdf-schema-1.0.0" title: ASDF Schema description: | Extending YAML Schema and JSON Schema to add support for some ASDF-specific checks, related to [ndarrays](ref:core/ndarray-1.0.0). allOf: - $ref: "http://stsci.edu/schemas/yaml-schema/draft-01" - type: object properties: max_ndim: description: | Specifies that the corresponding **ndarray** is at most the given number of dimensions. If the array has fewer dimensions, it should be logically treated as if it were "broadcast" to the expected dimensions by adding 1's to the front of the shape list. type: integer minimum: 0 ndim: description: | Specifies that the matching **ndarray** is exactly the given number of dimensions. type: integer minimum: 0 datatype: description: | Specifies the datatype of the **ndarray**. By default, an array is considered "matching" if the array can be cast to the given datatype without data loss. For exact datatype matching, set `exact_datatype` to `true`. allOf: - $ref: "http://stsci.edu/schemas/asdf/core/ndarray-1.0.0#/definitions/datatype" exact_datatype: description: | If `true`, the datatype must match exactly. type: boolean default: false # Redefine JSON schema validators in terms of this document so that # we can check nested objects: additionalItems: anyOf: - type: boolean - $ref: "#" items: anyOf: - $ref: "#" - $ref: "#/definitions/schemaArray" additionalProperties: anyOf: - type: boolean - $ref: "#" definitions: type: object additionalProperties: $ref: "#" properties: type: object additionalProperties: $ref: "#" patternProperties: type: object additionalProperties: $ref: "#" dependencies: type: object additionalProperties: anyOf: - $ref: "#" - $ref: "http://json-schema.org/draft-04/schema#definitions/stringArray" allOf: $ref: "#/definitions/schemaArray" anyOf: $ref: "#/definitions/schemaArray" oneOf: $ref: "#/definitions/schemaArray" not: $ref: "#" definitions: schemaArray: type: array minItems: 1 items: $ref: "#" ... ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3686993 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/core/0000755000175100001710000000000014274323045023116 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/core/asdf-1.0.0.yaml0000644000175100001710000000254114274323033025350 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/core/asdf-1.0.0" title: | Top-level schema for every ASDF file. description: | This schema contains the top-level attributes for every ASDF file. type: object properties: asdf_library: description: | Describes the ASDF library that produced the file. $ref: "software-1.0.0" history: description: | A log of transformations that have happened to the file. May include such things as data collection, data calibration pipelines, data analysis etc. type: array items: $ref: "history_entry-1.0.0" data: description: | The data array corresponds to the main science data array in the file. Oftentimes, the data model will be much more complex than a single array, but this array will be used by applications that just want to convert to a display an image or preview of the file. It is recommended, but not required, that it is a 2-dimensional image array. $ref: "ndarray-1.0.0" fits: description: | A way to specify exactly how this ASDF file should be converted to FITS. $ref: "../fits/fits-1.0.0" wcs: description: | The location of the main WCS for the main data. $ref: "../wcs/wcs-1.0.0" additionalProperties: true ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/core/asdf-1.1.0.yaml0000644000175100001710000000263414274323033025354 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/core/asdf-1.1.0" title: | Top-level schema for every ASDF file. description: | This schema contains the top-level attributes for every ASDF file. type: object properties: asdf_library: description: | Describes the ASDF library that produced the file. $ref: "software-1.0.0" history: description: | A log of transformations that have happened to the file. May include such things as data collection, data calibration pipelines, data analysis etc. anyOf: # This is to support backwards compatibility with older history formats - type: array items: - $ref: "history_entry-1.0.0" # This is the new, richer history implementation that includes # extension metadata. - $ref: "#/definitions/history-1.1.0" additionalProperties: true # Make sure that these two metadata fields are always at the top of the file propertyOrder: [asdf_library, history] # This contains the definition of the new history format, which includes # metadata about the extensions used to create the file. definitions: history-1.1.0: type: object properties: extensions: type: array items: - $ref: "extension_metadata-1.0.0" entries: type: array items: - $ref: "history_entry-1.0.0" ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/core/column-1.0.0.yaml0000644000175100001710000000174714274323033025737 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/core/column-1.0.0" title: > A column in a table. description: | Each column contains a name and an array of data, and an optional description and unit. type: object properties: name: description: | The name of the column. Each name in a [table](http://stsci.edu/schemas/asdf/core/table-1.0.0) must be unique. type: string pattern: "[A-Za-z_][A-Za-z0-9_]*" data: description: | The array data for the column. allOf: - $ref: ndarray-1.0.0 description: description: | An optional description of the column. type: string default: '' unit: description: An optional unit for the column. allOf: - $ref: ../unit/unit-1.0.0 meta: description: Additional free-form metadata about the column. type: object default: {} required: [name, data] additionalProperties: false ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/core/complex-1.0.0.yaml0000644000175100001710000000541414274323033026104 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/core/complex-1.0.0" title: Complex number value. description: | Represents a complex number matching the following EBNF grammar ``` dot = "." plus-or-minus = "+" | "-" digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" sign = "" | plus-or-minus suffix = "J" | "j" | "I" | "i" inf = "inf" | "INF" nan = "nan" | "NAN" number = digits | dot digits | digits dot digits sci-suffix = "e" | "E" scientific = number sci-suffix sign digits real = sign number | sign scientific imag = number suffix | scientific suffix complex = real | sign imag | real plus-or-minus imag ``` Though `J`, `j`, `I` and `i` must be supported on reading, it is recommended to use `i` on writing. For historical reasons, it is necessary to accept as valid complex numbers that are surrounded by parenthesis. examples: - - 1 real, -1 imaginary - "!core/complex-1.0.0 1-1j" - - 0 real, 1 imaginary - "!core/complex-1.0.0 1J" - - -1 real, 0 imaginary - "!core/complex-1.0.0 -1" type: string # This regex was automatically generated from a description of a grammar pattern: "^(((((([+-]?(([0-9]+)|(\\.[0-9]+)|([0-9]+\\.[0-9]+)|(((inf)|(INF)))|(((nan)|(NAN)))))|([+-]?(([0-9]+)|(\\.[0-9]+)|([0-9]+\\.[0-9]+)|(((inf)|(INF)))|(((nan)|(NAN))))[eE][+-]?[0-9]+)))|([+-]?(((([0-9]+)|(\\.[0-9]+)|([0-9]+\\.[0-9]+)|(((inf)|(INF)))|(((nan)|(NAN))))[iIjJ])|((([0-9]+)|(\\.[0-9]+)|([0-9]+\\.[0-9]+)|(((inf)|(INF)))|(((nan)|(NAN))))[eE][+-]?[0-9]+[iIjJ])))|((([+-]?(([0-9]+)|(\\.[0-9]+)|([0-9]+\\.[0-9]+)|(((inf)|(INF)))|(((nan)|(NAN)))))|([+-]?(([0-9]+)|(\\.[0-9]+)|([0-9]+\\.[0-9]+)|(((inf)|(INF)))|(((nan)|(NAN))))[eE][+-]?[0-9]+))[+-](((([0-9]+)|(\\.[0-9]+)|([0-9]+\\.[0-9]+)|(((inf)|(INF)))|(((nan)|(NAN))))[iIjJ])|((([0-9]+)|(\\.[0-9]+)|([0-9]+\\.[0-9]+)|(((inf)|(INF)))|(((nan)|(NAN))))[eE][+-]?[0-9]+[iIjJ])))))|(\\((((([+-]?(([0-9]+)|(\\.[0-9]+)|([0-9]+\\.[0-9]+)|(((inf)|(INF)))|(((nan)|(NAN)))))|([+-]?(([0-9]+)|(\\.[0-9]+)|([0-9]+\\.[0-9]+)|(((inf)|(INF)))|(((nan)|(NAN))))[eE][+-]?[0-9]+)))|([+-]?(((([0-9]+)|(\\.[0-9]+)|([0-9]+\\.[0-9]+)|(((inf)|(INF)))|(((nan)|(NAN))))[iIjJ])|((([0-9]+)|(\\.[0-9]+)|([0-9]+\\.[0-9]+)|(((inf)|(INF)))|(((nan)|(NAN))))[eE][+-]?[0-9]+[iIjJ])))|((([+-]?(([0-9]+)|(\\.[0-9]+)|([0-9]+\\.[0-9]+)|(((inf)|(INF)))|(((nan)|(NAN)))))|([+-]?(([0-9]+)|(\\.[0-9]+)|([0-9]+\\.[0-9]+)|(((inf)|(INF)))|(((nan)|(NAN))))[eE][+-]?[0-9]+))[+-](((([0-9]+)|(\\.[0-9]+)|([0-9]+\\.[0-9]+)|(((inf)|(INF)))|(((nan)|(NAN))))[iIjJ])|((([0-9]+)|(\\.[0-9]+)|([0-9]+\\.[0-9]+)|(((inf)|(INF)))|(((nan)|(NAN))))[eE][+-]?[0-9]+[iIjJ]))))\\)))$" ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/core/constant-1.0.0.yaml0000644000175100001710000000037714274323033026271 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/core/constant-1.0.0" title: Specify that a value is a constant. description: | Used as a utility to indicate that value is a literal constant. ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/core/extension_metadata-1.0.0.yaml0000644000175100001710000000114714274323033030310 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/core/extension_metadata-1.0.0" title: | Metadata about specific ASDF extensions that were used to create this file. description: | Metadata about specific ASDF extensions that were used to create this file. type: object properties: extension_class: description: | The fully-specified name of the extension class. type: string package: description: | The name and version of the package that contains the extension. $ref: "software-1.0.0" required: [extension_class] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/core/externalarray-1.0.0.yaml0000644000175100001710000000170714274323033027317 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/core/externalarray-1.0.0" title: Point to an array-like object in an external file. description: | Allow referencing of array-like objects in external files. These files can be any type of file and in any absolute or relative location to the asdf file. Loading of these files into arrays is not handled by asdf. examples: - - Example external reference - | !core/externalarray-1.0.0 datatype: int16 fileuri: aia.lev1_euv_12s.2017-09-06T120001Z.94.image_lev1.fits shape: [4096, 4096] target: 1 type: object properties: fileuri: type: string target: anyOf: - type: integer - type: string datatype: type: string shape: type: array items: anyOf: - type: integer minimum: 0 required: [fileuri, target, datatype, shape] additionalProperties: true ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/core/history_entry-1.0.0.yaml0000644000175100001710000000141114274323033027350 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/core/history_entry-1.0.0" title: | An entry in the file history. description: | A record of an operation that has been performed upon a file. type: object properties: description: description: | A description of the transformation performed. type: string time: description: | A timestamp for the operation, in UTC. type: string format: date-time software: description: | One or more descriptions of the software that performed the operation. anyOf: - $ref: "software-1.0.0" - type: array items: $ref: "software-1.0.0" required: [description] additionalProperties: true ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/core/integer-1.0.0.yaml0000644000175100001710000000305514274323033026071 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/core/integer-1.0.0" title: Arbitrary precision integer value. description: | Represents an arbitrarily large integer value. examples: - - An integer value that is stored using an internal array - | !core/integer-1.0.0 sign: + string: '1193942770599561143856918438330' words: !core/ndarray-1.0.0 source: 0 datatype: uint32 byteorder: little shape: [4] - - The same integer value is stored using an inline array - | !core/integer-1.0.0 sign: + string: '1193942770599561143856918438330' words: !core/ndarray-1.0.0 data: [1103110586, 1590521629, 299257845, 15] datatype: uint32 shape: [4] type: object properties: words: $ref: "ndarray-1.0.0" description: | An array of unsigned 32-bit words representing the integer value, stored as little endian (i.e. the first word of the array represents the least significant bits of the integer value). sign: type: string pattern: "^[+-]$" description: | String indicating whether the integer value is positive or negative. string: type: string description: | Optional string representation of the integer value. This field is only intended to improve readability for humans, and therefore no assumptions about format should be made by ASDF readers. required: [words, sign] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/core/ndarray-1.0.0.yaml0000644000175100001710000002661714274323033026105 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/core/ndarray-1.0.0" title: > An *n*-dimensional array. description: | There are two ways to store the data in an ndarray. - Inline in the tree: This is recommended only for small arrays. In this case, the entire ``ndarray`` tag may be a nested list, in which case the type of the array is inferred from the content. (See the rules for type inference in the ``inline-data`` definition below.) The inline data may also be given in the ``data`` property, in which case it is possible to explicitly specify the ``datatype`` and other properties. - External to the tree: The data comes from a [block](ref:block) within the same ASDF file or an external ASDF file referenced by a URI. examples: - - An inline array, with implicit data type - | !core/ndarray-1.0.0 [[1, 0, 0], [0, 1, 0], [0, 0, 1]] - - An inline array, with an explicit data type - | !core/ndarray-1.0.0 datatype: float64 data: [[1, 0, 0], [0, 1, 0], [0, 0, 1]] - - An inline structured array, where the types of each column are automatically detected - | !core/ndarray-1.0.0 [[M110, 110, 205, And], [ M31, 31, 224, And], [ M32, 32, 221, And], [M103, 103, 581, Cas]] - - An inline structured array, where the types of each column are explicitly specified - | !core/ndarray-1.0.0 datatype: [['ascii', 4], uint16, uint16, ['ascii', 4]] data: [[M110, 110, 205, And], [ M31, 31, 224, And], [ M32, 32, 221, And], [M103, 103, 581, Cas]] - - A double-precision array, in contiguous memory in a block within the same file - | !core/ndarray-1.0.0 source: 0 shape: [1024, 1024] datatype: float64 byteorder: little - - A view of a tile in that image - | !core/ndarray-1.0.0 source: 0 shape: [256, 256] datatype: float64 byteorder: little strides: [8192, 8] offset: 2099200 - - A structured datatype, with nested columns for a coordinate in (*ra*, *dec*), and a 3x3 convolution kernel - | !core/ndarray-1.0.0 source: 0 shape: [64] datatype: - name: coordinate datatype: - name: ra datatype: float64 - name: dec datatype: float64 - name: kernel datatype: float32 shape: [3, 3] byteorder: little - - An array in Fortran order - | !core/ndarray-1.0.0 source: 0 shape: [1024, 1024] datatype: float64 byteorder: little strides: [8192, 8] - - An array where values of -999 are treated as missing - | !core/ndarray-1.0.0 source: 0 shape: [256, 256] datatype: float64 byteorder: little mask: -999 - - An array where another array is used as a mask - | !core/ndarray-1.0.0 source: 0 shape: [256, 256] datatype: float64 byteorder: little mask: !core/ndarray-1.0.0 source: 1 shape: [256, 256] datatype: bool8 byteorder: little - - An array where the data is stored in the first block in another ASDF file. - | !core/ndarray-1.0.0 source: external.asdf shape: [256, 256] datatype: float64 byteorder: little definitions: scalar-datatype: description: | Describes the type of a single element. There is a set of numeric types, each with a single identifier: - `int8`, `int16`, `int32`, `int64`: Signed integer types, with the given bit size. - `uint8`, `uint16`, `uint32`, `uint64`: Unsigned integer types, with the given bit size. - `float32`: Single-precision floating-point type or "binary32", as defined in IEEE 754. - `float64`: Double-precision floating-point type or "binary64", as defined in IEEE 754. - `complex64`: Complex number where the real and imaginary parts are each single-precision floating-point ("binary32") numbers, as defined in IEEE 754. - `complex128`: Complex number where the real and imaginary parts are each double-precision floating-point ("binary64") numbers, as defined in IEEE 754. There are two distinct fixed-length string types, which must be indicated with a 2-element array where the first element is an identifier for the string type, and the second is a length: - `ascii`: A string containing ASCII text (all codepoints < 128), where each character is 1 byte. - `ucs4`: A string containing unicode text in the UCS-4 encoding, where each character is always 4 bytes long. Here the number of bytes used is 4 times the given length. anyOf: - type: string enum: [int8, uint8, int16, uint16, int32, uint32, int64, uint64, float32, float64, complex64, complex128, bool8] - type: array items: - type: string enum: [ascii, ucs4] - type: integer minimum: 0 minLength: 2 maxLength: 2 datatype: description: | The data format of the array elements. May be a single scalar datatype, or may be a nested list of datatypes. When a list, each field may have a name. anyOf: - $ref: "#/definitions/scalar-datatype" - type: array items: anyOf: - $ref: "#/definitions/scalar-datatype" - type: object properties: name: type: string pattern: "[A-Za-z_][A-Za-z0-9_]*" description: The name of the field datatype: $ref: "#/definitions/datatype" byteorder: type: string enum: [big, little] description: | The byteorder for the field. If not provided, the byteorder of the datatype as a whole will be used. shape: type: array items: type: integer minimum: 0 required: [datatype] inline-data: description: | Inline data is stored in YAML format directly in the tree, rather than referencing a binary block. It is made out of nested lists. If the datatype of the array is not specified, it is inferred from the array contents. Type inference is supported only for homogeneous arrays, not tables. - If any of the elements in the array are YAML strings, the `datatype` of the entire array is `ucs4`, with the width of the largest string in the column, otherwise... - If any of the elements in the array are complex numbers, the `datatype` of the entire column is `complex128`, otherwise... - If any of the types in the column are numbers with a decimal point, the `datatype` of the entire column is `float64`, otherwise.. - If any of the types in the column are integers, the `datatype` of the entire column is `int64`, otherwise... - The `datatype` of the entire column is `bool8`. Masked values may be included in the array using `null`. If an explicit mask array is also provided, it takes precedence. type: array items: anyOf: - type: number - type: string - type: "null" - $ref: "complex-1.0.0" - $ref: "#/definitions/inline-data" - type: boolean anyOf: - $ref: "#/definitions/inline-data" - type: object properties: source: description: | The source of the data. - If an integer: If positive, the zero-based index of the block within the same file. If negative, the index from the last block within the same file. For example, a source of `-1` corresponds to the last block in the same file. - If a string, a URI to an external ASDF file containing the block data. Relative URIs and ``file:`` and ``http:`` protocols must be supported. Other protocols may be supported by specific library implementations. The ability to reference block data in an external ASDF file is intentionally limited to the first block in the external ASDF file, and is intended only to support the needs of [exploded](ref:exploded). For the more general case of referencing data in an external ASDF file, use tree [references](ref:references). anyOf: - type: integer - type: string format: uri data: description: | The data for the array inline. If `datatype` and/or `shape` are also provided, they must match the data here and can be used as a consistency check. `strides`, `offset` and `byteorder` are meaningless when `data` is provided. $ref: "#/definitions/inline-data" shape: description: | The shape of the array. The first entry may be the string `*`, indicating that the length of the first index of the array will be automatically determined from the size of the block. This is used for streaming support. type: array items: anyOf: - type: integer minimum: 0 - enum: ['*'] datatype: description: | The data format of the array elements. $ref: "#/definitions/datatype" byteorder: description: > The byte order (big- or little-endian) of the array data. type: string enum: [big, little] offset: description: > The offset, in bytes, within the data for this start of this view. type: integer minimum: 0 default: 0 strides: description: > The number of bytes to skip in each dimension. If not provided, the array is assumed by be contiguous and in C order. If provided, must be the same length as the shape property. type: array items: anyOf: - type: integer minimum: 1 - type: integer maximum: -1 mask: description: > Describes how missing values in the array are stored. If a scalar number, that number is used to represent missing values. If an ndarray, the given array provides a mask, where non-zero values represent missing values in this array. The mask array must be broadcastable to the dimensions of this array. anyOf: - type: number - $ref: "complex-1.0.0" - allOf: - $ref: "ndarray-1.0.0" - datatype: bool8 dependencies: source: [shape, datatype, byteorder] propertyOrder: [source, data, mask, datatype, byteorder, shape, offset, strides] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/core/software-1.0.0.yaml0000644000175100001710000000154614274323033026271 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/core/software-1.0.0" title: | Describes a software package. description: | General-purpose description of a software package. type: object properties: name: description: | The name of the application or library. type: string author: description: | The author (or institution) that produced the software package. type: string homepage: description: | A URI to the homepage of the software. type: string format: uri version: description: | The version of the software used. It is recommended, but not required, that this follows the (Semantic Versioning Specification)[http://semver.org/spec/v2.0.0.html]. type: string required: [name, version] additionalProperties: true ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/core/subclass_metadata-1.0.0.yaml0000644000175100001710000000100314274323033030102 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/core/subclass_metadata-1.0.0" title: | Metadata on a serialized subclass of an ASDF-enabled type. description: | Identifies the specific subclass that was serialized, to enable ASDF readers to correctly deserialize the object. type: object properties: name: description: | The name of the subclass that represents this object when deserialized. type: string required: [name] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/core/table-1.0.0.yaml0000644000175100001710000000543614274323033025530 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/core/table-1.0.0" title: > A table. description: | A table is represented as a list of columns, where each entry is a [column](ref:core/column-1.0.0) object, containing the data and some additional information. The data itself may be stored inline as text, or in binary in either row- or column-major order by use of the `strides` property on the individual column arrays. Each column in the table must have the same first (slowest moving) dimension. examples: - - A table stored in column-major order, with each column in a separate block - | !core/table-1.0.0 columns: - !core/column-1.0.0 data: !core/ndarray-1.0.0 source: 0 datatype: float64 byteorder: little shape: [3] description: RA meta: {foo: bar} name: a unit: !unit/unit-1.0.0 deg - !core/column-1.0.0 data: !core/ndarray-1.0.0 source: 1 datatype: float64 byteorder: little shape: [3] description: DEC name: b - !core/column-1.0.0 data: !core/ndarray-1.0.0 source: 2 datatype: [ascii, 1] byteorder: big shape: [3] description: The target name name: c - - A table stored in row-major order, all stored in the same block - | !core/table-1.0.0 columns: - !core/column-1.0.0 data: !core/ndarray-1.0.0 source: 0 datatype: float64 byteorder: little shape: [3] strides: [13] description: RA meta: {foo: bar} name: a unit: !unit/unit-1.0.0 deg - !core/column-1.0.0 data: !core/ndarray-1.0.0 source: 0 datatype: float64 byteorder: little shape: [3] offset: 4 strides: [13] description: DEC name: b - !core/column-1.0.0 data: !core/ndarray-1.0.0 source: 0 datatype: [ascii, 1] byteorder: big shape: [3] offset: 12 strides: [13] description: The target name name: c type: object properties: columns: description: | A list of columns in the table. type: array items: $ref: column-1.0.0 meta: description: | Additional free-form metadata about the table. type: object default: {} additionalProperties: false required: [columns] ... ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3686993 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/fits/0000755000175100001710000000000014274323045023133 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/fits/fits-1.0.0.yaml0000644000175100001710000000754314274323033025424 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/fits/fits-1.0.0" title: > A FITS file inside of an ASDF file. description: | This schema is useful for distributing ASDF files that can automatically be converted to FITS files by specifying the exact content of the resulting FITS file. Not all kinds of data in FITS are directly representable in ASDF. For example, applying an offset and scale to the data using the `BZERO` and `BSCALE` keywords. In these cases, it will not be possible to store the data in the native format from FITS and also be accessible in its proper form in the ASDF file. Only image and binary table extensions are supported. examples: - - A simple FITS file with a primary header and two extensions - | !fits/fits-1.0.0 - header: - [SIMPLE, true, conforms to FITS standard] - [BITPIX, 8, array data type] - [NAXIS, 0, number of array dimensions] - [EXTEND, true] - [] - ['', Top Level MIRI Metadata] - [] - [DATE, '2013-08-30T10:49:55.070373', The date this file was created (UTC)] - [FILENAME, MiriDarkReferenceModel_test.fits, The name of the file] - [TELESCOP, JWST, The telescope used to acquire the data] - [] - ['', Information about the observation] - [] - [DATE-OBS, '2013-08-30T10:49:55.000000', The date the observation was made (UTC)] - data: !core/ndarray-1.0.0 datatype: float32 shape: [2, 3, 3, 4] source: 0 byteorder: big header: - [XTENSION, IMAGE, Image extension] - [BITPIX, -32, array data type] - [NAXIS, 4, number of array dimensions] - [NAXIS1, 4] - [NAXIS2, 3] - [NAXIS3, 3] - [NAXIS4, 2] - [PCOUNT, 0, number of parameters] - [GCOUNT, 1, number of groups] - [EXTNAME, SCI, extension name] - [BUNIT, DN, Units of the data array] - data: !core/ndarray-1.0.0 datatype: float32 shape: [2, 3, 3, 4] source: 1 byteorder: big header: - [XTENSION, IMAGE, Image extension] - [BITPIX, -32, array data type] - [NAXIS, 4, number of array dimensions] - [NAXIS1, 4] - [NAXIS2, 3] - [NAXIS3, 3] - [NAXIS4, 2] - [PCOUNT, 0, number of parameters] - [GCOUNT, 1, number of groups] - [EXTNAME, ERR, extension name] - [BUNIT, DN, Units of the error array] tag: "tag:stsci.edu:asdf/fits/fits-1.0.0" type: array items: description: > Each item represents a single header/data unit (HDU). type: object properties: header: description: > A list of the keyword/value/comment triples from the header, in the order they appear in the FITS file. type: array items: type: array minItems: 0 maxItems: 3 items: - description: "The keyword." type: string maxLength: 8 pattern: "[A-Z0-9]*" - description: "The value." anyOf: - type: string maxLength: 60 - type: number - type: boolean - description: "The comment." type: string maxLength: 60 data: description: "The data part of the HDU." anyOf: - $ref: "../core/ndarray-1.0.0" - $ref: "../core/table-1.0.0" - type: "null" default: null required: [header] additionalProperties: false ... ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3686993 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/time/0000755000175100001710000000000014274323045023124 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/time/time-1.0.0.yaml0000644000175100001710000002037314274323033025402 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/time/time-1.0.0" title: Represents an instance in time. description: | A "time" is a single instant in time. It may explicitly specify the way time is represented (the "format") and the "scale" which specifies the offset and scaling relation of the unit of time. Specific emphasis is placed on supporting time scales (e.g. UTC, TAI, UT1, TDB) and time representations (e.g. JD, MJD, ISO 8601) that are used in astronomy and required to calculate, e.g., sidereal times and barycentric corrections. Times may be represented as one of the following: - an object, with explicit `value`, and optional `format`, `scale` and `location`. - a string, in which case the format is guessed from across the unambiguous options (`iso`, `byear`, `jyear`, `yday`), and the scale is hardcoded to `UTC`. In either case, a single time tag may be used to represent an n-dimensional array of times, using either an `ndarray` tag or inline as (possibly nested) YAML lists. If YAML lists, the same format must be used for all time values. The precision of the numeric formats should only be assumed to be as good as an IEEE-754 double precision (float64) value. If higher-precision is required, the `iso` or `yday` format should be used. examples: - - Example ISO time - asdf-standard-1.0.0 - | !time/time-1.0.0 "2000-12-31T13:05:27.737" - - Example year, day-of-year and time format time - asdf-standard-1.0.0 - | !time/time-1.0.0 "2001:003:04:05:06.789" - - Example Besselian Epoch time - asdf-standard-1.0.0 - | !time/time-1.0.0 B2000.0 - - Example Besselian Epoch time, equivalent to above - asdf-standard-1.0.0 - | !time/time-1.0.0 value: 2000.0 format: byear - - Example list of times - asdf-standard-1.0.0 - | !time/time-1.0.0 ["2000-12-31T13:05:27.737", "2000-12-31T13:06:38.444"] - - Example of an array of times - asdf-standard-1.0.0 - | !time/time-1.0.0 value: !core/ndarray-1.0.0 data: [2000, 2001] datatype: float64 format: jyear - - Example with a location - asdf-standard-1.0.0 - | !time/time-1.0.0 value: 2000.0 format: jyear scale: tdb location: x: 6378100 y: 0 z: 0 definitions: iso_time: type: string pattern: "[0-9]{4}-(0[1-9])|(1[0-2])-(0[1-9])|([1-2][0-9])|(3[0-1])[T ]([0-1][0-9])|(2[0-4]):[0-5][0-9]:[0-5][0-9](.[0-9]+)?" byear: type: string pattern: "B[0-9]+(.[0-9]+)?" jyear: type: string pattern: "J[0-9]+(.[0-9]+)?" yday: type: string pattern: "[0-9]{4}:(00[1-9])|(0[1-9][0-9])|([1-2][0-9][0-9])|(3[0-5][0-9])|(36[0-5]):([0-1][0-9])|([0-1][0-9])|(2[0-4]):[0-5][0-9]:[0-5][0-9](.[0-9]+)?" string_formats: anyOf: - $ref: "#/definitions/iso_time" - $ref: "#/definitions/byear" - $ref: "#/definitions/jyear" - $ref: "#/definitions/yday" array_of_strings: type: array items: anyOf: - $ref: "#/definitions/array_of_strings" - $ref: "#/definitions/string_formats" anyOf: - $ref: "#/definitions/string_formats" - $ref: "#/definitions/array_of_strings" - $ref: "../core/ndarray-1.0.0#/anyOf/1" - type: object properties: value: description: | The value(s) of the time. anyOf: - $ref: "#/definitions/string_formats" - $ref: "#/definitions/array_of_strings" - $ref: "../core/ndarray-1.0.0" - type: number format: description: | The format of the time. If not provided, the the format should be guessed from the string from among the following unambiguous options: `iso`, `byear`, `jyear` and `yday`. The supported formats are: - `iso`: ISO 8601 compliant date-time format `YYYY-MM-DDTHH:MM:SS.sss...`. For example, `2000-01-01 00:00:00.000` is midnight on January 1, 2000. The `T` separating the date from the time section is optional. - `yday`: Year, day-of-year and time as `YYYY:DOY:HH:MM:SS.sss...`. The day-of-year (DOY) goes from 001 to 365 (366 in leap years). For example, `2000:001:00:00:00.000` is midnight on January 1, 2000. - `byear`: Besselian Epoch year, eg. `B1950.0`. The `B` is optional if the `byear` format is explicitly specified. - `jyear`: Julian Epoch year, eg. `J2000.0`. The `J` is optional if the `jyear` format is explicitly specified. - `decimalyear`: Time as a decimal year, with integer values corresponding to midnight of the first day of each year. For example 2000.5 corresponds to the ISO time `2000-07-02 00:00:00`. - `jd`: Julian Date time format. This represents the number of days since the beginning of the Julian Period. For example, 2451544.5 in `jd` is midnight on January 1, 2000. - `mjd`: Modified Julian Date time format. This represents the number of days since midnight on November 17, 1858. For example, 51544.0 in MJD is midnight on January 1, 2000. - `gps`: GPS time: seconds from 1980-01-06 00:00:00 UTC For example, 630720013.0 is midnight on January 1, 2000. - `unix`: Unix time: seconds from 1970-01-01 00:00:00 UTC. For example, 946684800.0 in Unix time is midnight on January 1, 2000. [TODO: Astropy's definition of UNIX time doesn't match POSIX's here. What should we do for the purposes of ASDF?] enum: - iso - yday - byear - jyear - decimalyear - jd - mjd - gps - unix - cxcsec scale: description: | The time scale (or time standard) is a specification for measuring time: either the rate at which time passes; or points in time; or both. See also [3] and [4]. These scales are defined in detail in [SOFA Time Scale and Calendar Tools](http://www.iausofa.org/sofa_ts_c.pdf). The supported time scales are: - `utc`: Coordinated Universal Time (UTC). This is the default time scale, except for `gps`, `unix`. - `tai`: International Atomic Time (TAI). - `tcb`: Barycentric Coordinate Time (TCB). - `tcg`: Geocentric Coordinate Time (TCG). - `tdb`: Barycentric Dynamical Time (TDB). - `tt`: Terrestrial Time (TT). - `ut1`: Universal Time (UT1). enum: - utc - tai - tcb - tcg - tdb - tt - ut1 location: description: | Specifies the observer location for scales that are sensitive to observer location, currently only `tdb`. May be specified either with geocentric coordinates (X, Y, Z) with an optional unit or geodetic coordinates: - `long`: longitude in degrees - `lat`: in degrees - `h`: optional height anyOf: - type: object properties: x: type: number y: type: number z: type: number unit: allOf: - $ref: "../unit/unit-1.0.0" - default: m required: [x, y, z] - type: object properties: long: type: number minimum: -180 maximum: 180 lat: type: number minimum: -90 maximum: 90 h: type: number default: 0 unit: allOf: - $ref: "../unit/unit-1.0.0" - default: m required: [long, lat] required: [value] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/time/time-1.1.0.yaml0000644000175100001710000001733014274323033025402 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/time/time-1.1.0" title: Represents an instance in time. description: | A "time" is a single instant in time. It may explicitly specify the way time is represented (the "format") and the "scale" which specifies the offset and scaling relation of the unit of time. Specific emphasis is placed on supporting time scales (e.g. UTC, TAI, UT1, TDB) and time representations (e.g. JD, MJD, ISO 8601) that are used in astronomy and required to calculate, e.g., sidereal times and barycentric corrections. Times may be represented as one of the following: - an object, with explicit `value`, and optional `format`, `scale` and `location`. - a string, in which case the format is guessed from across the unambiguous options (`iso`, `byear`, `jyear`, `yday`), and the scale is hardcoded to `UTC`. In either case, a single time tag may be used to represent an n-dimensional array of times, using either an `ndarray` tag or inline as (possibly nested) YAML lists. If YAML lists, the same format must be used for all time values. The precision of the numeric formats should only be assumed to be as good as an IEEE-754 double precision (float64) value. If higher-precision is required, the `iso` or `yday` format should be used. examples: - - Example ISO time - | !time/time-1.1.0 "2000-12-31T13:05:27.737" - - Example year, day-of-year and time format time - | !time/time-1.1.0 "2001:003:04:05:06.789" - - Example Besselian Epoch time - | !time/time-1.1.0 B2000.0 - - Example Besselian Epoch time, equivalent to above - | !time/time-1.1.0 value: 2000.0 format: byear - - Example list of times - | !time/time-1.1.0 ["2000-12-31T13:05:27.737", "2000-12-31T13:06:38.444"] - - Example of an array of times - | !time/time-1.1.0 value: !core/ndarray-1.0.0 data: [2000, 2001] datatype: float64 format: jyear - - Example with a location - | !time/time-1.1.0 value: 2000.0 format: jyear scale: tdb location: x: !unit/quantity-1.1.0 value: 6378100 unit: !unit/unit-1.0.0 m y: !unit/quantity-1.1.0 value: 0 unit: !unit/unit-1.0.0 m z: !unit/quantity-1.1.0 value: 0 unit: !unit/unit-1.0.0 m definitions: iso_time: type: string pattern: "[0-9]{4}-(0[1-9])|(1[0-2])-(0[1-9])|([1-2][0-9])|(3[0-1])[T ]([0-1][0-9])|(2[0-4]):[0-5][0-9]:[0-5][0-9](.[0-9]+)?" byear: type: string pattern: "B[0-9]+(.[0-9]+)?" jyear: type: string pattern: "J[0-9]+(.[0-9]+)?" yday: type: string pattern: "[0-9]{4}:(00[1-9])|(0[1-9][0-9])|([1-2][0-9][0-9])|(3[0-5][0-9])|(36[0-5]):([0-1][0-9])|([0-1][0-9])|(2[0-4]):[0-5][0-9]:[0-5][0-9](.[0-9]+)?" string_formats: anyOf: - $ref: "#/definitions/iso_time" - $ref: "#/definitions/byear" - $ref: "#/definitions/jyear" - $ref: "#/definitions/yday" array_of_strings: type: array items: anyOf: - $ref: "#/definitions/array_of_strings" - $ref: "#/definitions/string_formats" anyOf: - $ref: "#/definitions/string_formats" - $ref: "#/definitions/array_of_strings" - $ref: "../core/ndarray-1.0.0#/anyOf/1" - type: object properties: value: description: | The value(s) of the time. anyOf: - $ref: "#/definitions/string_formats" - $ref: "#/definitions/array_of_strings" - $ref: "../core/ndarray-1.0.0" - type: number format: description: | The format of the time. If not provided, the the format should be guessed from the string from among the following unambiguous options: `iso`, `byear`, `jyear` and `yday`. The supported formats are: - `iso`: ISO 8601 compliant date-time format `YYYY-MM-DDTHH:MM:SS.sss...`. For example, `2000-01-01 00:00:00.000` is midnight on January 1, 2000. The `T` separating the date from the time section is optional. - `yday`: Year, day-of-year and time as `YYYY:DOY:HH:MM:SS.sss...`. The day-of-year (DOY) goes from 001 to 365 (366 in leap years). For example, `2000:001:00:00:00.000` is midnight on January 1, 2000. - `byear`: Besselian Epoch year, eg. `B1950.0`. The `B` is optional if the `byear` format is explicitly specified. - `jyear`: Julian Epoch year, eg. `J2000.0`. The `J` is optional if the `jyear` format is explicitly specified. - `decimalyear`: Time as a decimal year, with integer values corresponding to midnight of the first day of each year. For example 2000.5 corresponds to the ISO time `2000-07-02 00:00:00`. - `jd`: Julian Date time format. This represents the number of days since the beginning of the Julian Period. For example, 2451544.5 in `jd` is midnight on January 1, 2000. - `mjd`: Modified Julian Date time format. This represents the number of days since midnight on November 17, 1858. For example, 51544.0 in MJD is midnight on January 1, 2000. - `gps`: GPS time: seconds from 1980-01-06 00:00:00 UTC For example, 630720013.0 is midnight on January 1, 2000. - `unix`: Unix time: seconds from 1970-01-01 00:00:00 UTC. For example, 946684800.0 in Unix time is midnight on January 1, 2000. [TODO: Astropy's definition of UNIX time doesn't match POSIX's here. What should we do for the purposes of ASDF?] enum: - iso - yday - byear - jyear - decimalyear - jd - mjd - gps - unix - cxcsec scale: description: | The time scale (or time standard) is a specification for measuring time: either the rate at which time passes; or points in time; or both. See also [3] and [4]. These scales are defined in detail in [SOFA Time Scale and Calendar Tools](http://www.iausofa.org/sofa_ts_c.pdf). The supported time scales are: - `utc`: Coordinated Universal Time (UTC). This is the default time scale, except for `gps`, `unix`. - `tai`: International Atomic Time (TAI). - `tcb`: Barycentric Coordinate Time (TCB). - `tcg`: Geocentric Coordinate Time (TCG). - `tdb`: Barycentric Dynamical Time (TDB). - `tt`: Terrestrial Time (TT). - `ut1`: Universal Time (UT1). enum: - utc - tai - tcb - tcg - tdb - tt - ut1 location: description: | Specifies the observer location for scales that are sensitive to observer location, currently only `tdb`. May be specified either with geocentric coordinates (X, Y, Z) with an optional unit or geodetic coordinates: - `long`: longitude in degrees - `lat`: in degrees - `h`: optional height type: object properties: x: $ref: "../unit/quantity-1.1.0" y: $ref: "../unit/quantity-1.1.0" z: $ref: "../unit/quantity-1.1.0" required: [x, y, z] required: [value] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/time/time-1.2.0.yaml0000644000175100001710000001770314274323033025407 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/time/time-1.2.0" title: Represents an instance in time. description: | A "time" is a single instant in time. It may explicitly specify the way time is represented (the "format") and the "scale" which specifies the offset and scaling relation of the unit of time. Specific emphasis is placed on supporting time scales (e.g. UTC, TAI, UT1, TDB) and time representations (e.g. JD, MJD, ISO 8601) that are used in astronomy and required to calculate, e.g., sidereal times and barycentric corrections. Times may be represented as one of the following: - an object, with explicit `value`, and optional `format`, `scale` and `location`. - a string, in which case the format is guessed from across the unambiguous options (`iso`, `byear`, `jyear`, `yday`), and the scale is hardcoded to `UTC`. In either case, a single time tag may be used to represent an n-dimensional array of times, using either an `ndarray` tag or inline as (possibly nested) YAML lists. If YAML lists, the same format must be used for all time values. The precision of the numeric formats should only be assumed to be as good as an IEEE-754 double precision (float64) value. If higher-precision is required, the `iso` or `yday` format should be used. examples: - - Example ISO time - asdf-standard-1.6.0 - | !time/time-1.2.0 "2000-12-31T13:05:27.737" - - Example year, day-of-year and time format time - asdf-standard-1.6.0 - | !time/time-1.2.0 "2001:003:04:05:06.789" - - Example Besselian Epoch time - asdf-standard-1.6.0 - | !time/time-1.2.0 B2000.0 - - Example Besselian Epoch time, equivalent to above - asdf-standard-1.6.0 - | !time/time-1.2.0 value: 2000.0 format: byear - - Example list of times - asdf-standard-1.6.0 - | !time/time-1.2.0 ["2000-12-31T13:05:27.737", "2000-12-31T13:06:38.444"] - - Example of an array of times - asdf-standard-1.6.0 - | !time/time-1.2.0 value: !core/ndarray-1.0.0 data: [2000, 2001] datatype: float64 format: jyear - - Example with a location - asdf-standard-1.6.0 - | !time/time-1.2.0 value: 2000.0 format: jyear scale: tdb location: x: !unit/quantity-1.1.0 value: 6378100 unit: !unit/unit-1.0.0 m y: !unit/quantity-1.1.0 value: 0 unit: !unit/unit-1.0.0 m z: !unit/quantity-1.1.0 value: 0 unit: !unit/unit-1.0.0 m definitions: iso_time: type: string pattern: "[0-9]{4}-(0[1-9])|(1[0-2])-(0[1-9])|([1-2][0-9])|(3[0-1])[T ]([0-1][0-9])|(2[0-4]):[0-5][0-9]:[0-5][0-9](.[0-9]+)?" byear: type: string pattern: "B[0-9]+(.[0-9]+)?" jyear: type: string pattern: "J[0-9]+(.[0-9]+)?" yday: type: string pattern: "[0-9]{4}:(00[1-9])|(0[1-9][0-9])|([1-2][0-9][0-9])|(3[0-5][0-9])|(36[0-5]):([0-1][0-9])|([0-1][0-9])|(2[0-4]):[0-5][0-9]:[0-5][0-9](.[0-9]+)?" string_formats: anyOf: - $ref: "#/definitions/iso_time" - $ref: "#/definitions/byear" - $ref: "#/definitions/jyear" - $ref: "#/definitions/yday" array_of_strings: type: array items: anyOf: - $ref: "#/definitions/array_of_strings" - $ref: "#/definitions/string_formats" format: description: | The format of the time. The supported formats are: - `iso`: ISO 8601 compliant date-time format `YYYY-MM-DDTHH:MM:SS.sss...`. For example, `2000-01-01 00:00:00.000` is midnight on January 1, 2000. The `T` separating the date from the time section is optional. - `yday`: Year, day-of-year and time as `YYYY:DOY:HH:MM:SS.sss...`. The day-of-year (DOY) goes from 001 to 365 (366 in leap years). For example, `2000:001:00:00:00.000` is midnight on January 1, 2000. - `byear`: Besselian Epoch year, eg. `B1950.0`. The `B` is optional if the `byear` format is explicitly specified. - `jyear`: Julian Epoch year, eg. `J2000.0`. The `J` is optional if the `jyear` format is explicitly specified. - `decimalyear`: Time as a decimal year, with integer values corresponding to midnight of the first day of each year. For example 2000.5 corresponds to the ISO time `2000-07-02 00:00:00`. - `jd`: Julian Date time format. This represents the number of days since the beginning of the Julian Period. For example, 2451544.5 in `jd` is midnight on January 1, 2000. - `mjd`: Modified Julian Date time format. This represents the number of days since midnight on November 17, 1858. For example, 51544.0 in MJD is midnight on January 1, 2000. - `gps`: GPS time: seconds from 1980-01-06 00:00:00 UTC For example, 630720013.0 is midnight on January 1, 2000. - `unix`: Unix time: seconds from 1970-01-01 00:00:00 UTC. For example, 946684800.0 in Unix time is midnight on January 1, 2000. [TODO: Astropy's definition of UNIX time doesn't match POSIX's here. What should we do for the purposes of ASDF?] enum: - iso - yday - byear - jyear - decimalyear - jd - mjd - gps - unix - cxcsec anyOf: - $ref: "#/definitions/string_formats" - $ref: "#/definitions/array_of_strings" - $ref: "../core/ndarray-1.0.0#/anyOf/1" - type: object properties: value: description: | The value(s) of the time. anyOf: - $ref: "#/definitions/string_formats" - $ref: "#/definitions/array_of_strings" - $ref: "../core/ndarray-1.0.0" - type: number format: description: | The format used to save the time in ASDF If not provided, the the format should be guessed from the string from among the following unambiguous options: `iso`, `byear`, `jyear` and `yday`. $ref: "#/definitions/format" base_format: description: | The original format of the time object $ref: "#/definitions/format" scale: description: | The time scale (or time standard) is a specification for measuring time: either the rate at which time passes; or points in time; or both. See also [3] and [4]. These scales are defined in detail in [SOFA Time Scale and Calendar Tools](http://www.iausofa.org/sofa_ts_c.pdf). The supported time scales are: - `utc`: Coordinated Universal Time (UTC). This is the default time scale, except for `gps`, `unix`. - `tai`: International Atomic Time (TAI). - `tcb`: Barycentric Coordinate Time (TCB). - `tcg`: Geocentric Coordinate Time (TCG). - `tdb`: Barycentric Dynamical Time (TDB). - `tt`: Terrestrial Time (TT). - `ut1`: Universal Time (UT1). enum: - utc - tai - tcb - tcg - tdb - tt - ut1 location: description: | Specifies the observer location for scales that are sensitive to observer location, currently only `tdb`. May be specified either with geocentric coordinates (X, Y, Z) with an optional unit or geodetic coordinates: - `long`: longitude in degrees - `lat`: in degrees - `h`: optional height type: object properties: x: $ref: "../unit/quantity-1.1.0" y: $ref: "../unit/quantity-1.1.0" z: $ref: "../unit/quantity-1.1.0" required: [x, y, z] required: [value] ... ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3686993 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/unit/0000755000175100001710000000000014274323045023145 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/unit/defunit-1.0.0.yaml0000644000175100001710000000142014274323033026113 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/unit/defunit-1.0.0" title: Define a new physical unit. description: | Defines a new unit. It can be used to either: - Define a new base unit. - Create a new unit name that is a equivalent to a given unit. The new unit must be defined before any unit tags that use it. type: object properties: name: description: The name of the new unit. type: string pattern: "[A-Za-z_][A-Za-z0-9_]+" unit: description: | The unit that the new name is equivalent to. It is optional, and if not provided, or ``null``, this ``defunit`` defines a new base unit. anyOf: - $ref: "unit-1.0.0" - type: "null" required: [name] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/unit/quantity-1.1.0.yaml0000644000175100001710000000237314274323033026344 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/unit/quantity-1.1.0" title: > Represents a Quantity object from astropy description: | A Quantity object represents a value that has some unit associated with the number. examples: - - A quantity consisting of a scalar value and unit - | !unit/quantity-1.1.0 value: 3.14159 unit: km - - A quantity consisting of a single value in an array - | !unit/quantity-1.1.0 value: !core/ndarray-1.0.0 [2.71828] unit: A - - A quantity with an array of values - | !unit/quantity-1.1.0 value: !core/ndarray-1.0.0 [1, 2, 3, 4] unit: s - - A quantity with an n-dimensional array of values - | !unit/quantity-1.1.0 value: !core/ndarray-1.0.0 datatype: float64 data: [[1, 2, 3], [4, 5, 6]] unit: pc type: object properties: value: description: | A vector of one or more values anyOf: - type: number - $ref: "../core/ndarray-1.0.0" unit: description: | The unit corresponding to the values $ref: unit-1.0.0 required: [value, unit] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/unit/unit-1.0.0.yaml0000644000175100001710000000076214274323033025444 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/unit/unit-1.0.0" title: Physical unit. description: > This represents a physical unit, in [VOUnit syntax, Version 1.0](http://www.ivoa.net/documents/VOUnits/index.html). Where units are not explicitly tagged, they are assumed to be in VOUnit syntax. examples: - - Example unit - | !unit/unit-1.0.0 "2.1798721 10-18kg m2 s-2" type: string pattern: "[\x00-\x7f]*" ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/version_map-1.0.0.yaml0000644000175100001710000000137414274323033026030 0ustar00runnerdocker%YAML 1.1 --- FILE_FORMAT: 1.0.0 YAML_VERSION: "1.1" tags: tag:stsci.edu:asdf/core/asdf: 1.0.0 tag:stsci.edu:asdf/core/column: 1.0.0 tag:stsci.edu:asdf/core/complex: 1.0.0 tag:stsci.edu:asdf/core/constant: 1.0.0 tag:stsci.edu:asdf/core/history_entry: 1.0.0 tag:stsci.edu:asdf/core/ndarray: 1.0.0 tag:stsci.edu:asdf/core/software: 1.0.0 tag:stsci.edu:asdf/core/table: 1.0.0 tag:stsci.edu:asdf/fits/fits: 1.0.0 tag:stsci.edu:asdf/time/time: 1.0.0 tag:stsci.edu:asdf/unit/defunit: 1.0.0 tag:stsci.edu:asdf/unit/unit: 1.0.0 tag:stsci.edu:asdf/wcs/celestial_frame: 1.0.0 tag:stsci.edu:asdf/wcs/composite_frame: 1.0.0 tag:stsci.edu:asdf/wcs/spectral_frame: 1.0.0 tag:stsci.edu:asdf/wcs/step: 1.0.0 tag:stsci.edu:asdf/wcs/wcs: 1.0.0 ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/version_map-1.1.0.yaml0000644000175100001710000000152114274323033026023 0ustar00runnerdocker%YAML 1.1 --- FILE_FORMAT: 1.0.0 YAML_VERSION: "1.1" tags: tag:stsci.edu:asdf/core/asdf: 1.0.0 tag:stsci.edu:asdf/core/column: 1.0.0 tag:stsci.edu:asdf/core/complex: 1.0.0 tag:stsci.edu:asdf/core/constant: 1.0.0 tag:stsci.edu:asdf/core/history_entry: 1.0.0 tag:stsci.edu:asdf/core/ndarray: 1.0.0 tag:stsci.edu:asdf/core/software: 1.0.0 tag:stsci.edu:asdf/core/table: 1.0.0 tag:stsci.edu:asdf/fits/fits: 1.0.0 tag:stsci.edu:asdf/time/time: 1.1.0 tag:stsci.edu:asdf/unit/defunit: 1.0.0 tag:stsci.edu:asdf/unit/quantity: 1.1.0 tag:stsci.edu:asdf/unit/unit: 1.0.0 tag:stsci.edu:asdf/wcs/celestial_frame: 1.1.0 tag:stsci.edu:asdf/wcs/composite_frame: 1.1.0 tag:stsci.edu:asdf/wcs/icrs_coord: 1.1.0 tag:stsci.edu:asdf/wcs/spectral_frame: 1.1.0 tag:stsci.edu:asdf/wcs/step: 1.1.0 tag:stsci.edu:asdf/wcs/wcs: 1.0.0 ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/version_map-1.2.0.yaml0000644000175100001710000000160514274323033026027 0ustar00runnerdocker%YAML 1.1 --- FILE_FORMAT: 1.0.0 YAML_VERSION: "1.1" tags: tag:stsci.edu:asdf/core/asdf: 1.1.0 tag:stsci.edu:asdf/core/column: 1.0.0 tag:stsci.edu:asdf/core/complex: 1.0.0 tag:stsci.edu:asdf/core/constant: 1.0.0 tag:stsci.edu:asdf/core/extension_metadata: 1.0.0 tag:stsci.edu:asdf/core/history_entry: 1.0.0 tag:stsci.edu:asdf/core/ndarray: 1.0.0 tag:stsci.edu:asdf/core/software: 1.0.0 tag:stsci.edu:asdf/core/table: 1.0.0 tag:stsci.edu:asdf/fits/fits: 1.0.0 tag:stsci.edu:asdf/time/time: 1.1.0 tag:stsci.edu:asdf/unit/defunit: 1.0.0 tag:stsci.edu:asdf/unit/quantity: 1.1.0 tag:stsci.edu:asdf/unit/unit: 1.0.0 tag:stsci.edu:asdf/wcs/celestial_frame: 1.1.0 tag:stsci.edu:asdf/wcs/composite_frame: 1.1.0 tag:stsci.edu:asdf/wcs/icrs_coord: 1.1.0 tag:stsci.edu:asdf/wcs/spectral_frame: 1.1.0 tag:stsci.edu:asdf/wcs/step: 1.1.0 tag:stsci.edu:asdf/wcs/wcs: 1.1.0 ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/version_map-1.3.0.yaml0000644000175100001710000000173514274323033026034 0ustar00runnerdocker%YAML 1.1 --- FILE_FORMAT: 1.0.0 YAML_VERSION: "1.1" tags: tag:stsci.edu:asdf/core/asdf: 1.1.0 tag:stsci.edu:asdf/core/column: 1.0.0 tag:stsci.edu:asdf/core/complex: 1.0.0 tag:stsci.edu:asdf/core/constant: 1.0.0 tag:stsci.edu:asdf/core/extension_metadata: 1.0.0 tag:stsci.edu:asdf/core/externalarray: 1.0.0 tag:stsci.edu:asdf/core/history_entry: 1.0.0 tag:stsci.edu:asdf/core/integer: 1.0.0 tag:stsci.edu:asdf/core/ndarray: 1.0.0 tag:stsci.edu:asdf/core/software: 1.0.0 tag:stsci.edu:asdf/core/table: 1.0.0 tag:stsci.edu:asdf/fits/fits: 1.0.0 tag:stsci.edu:asdf/time/time: 1.1.0 tag:stsci.edu:asdf/unit/defunit: 1.0.0 tag:stsci.edu:asdf/unit/quantity: 1.1.0 tag:stsci.edu:asdf/unit/unit: 1.0.0 tag:stsci.edu:asdf/wcs/celestial_frame: 1.1.0 tag:stsci.edu:asdf/wcs/composite_frame: 1.1.0 tag:stsci.edu:asdf/wcs/icrs_coord: 1.1.0 tag:stsci.edu:asdf/wcs/spectral_frame: 1.1.0 tag:stsci.edu:asdf/wcs/step: 1.1.0 tag:stsci.edu:asdf/wcs/wcs: 1.1.0 ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/version_map-1.4.0.yaml0000644000175100001710000000202014274323033026021 0ustar00runnerdocker%YAML 1.1 --- FILE_FORMAT: 1.0.0 YAML_VERSION: "1.1" tags: tag:stsci.edu:asdf/core/asdf: 1.1.0 tag:stsci.edu:asdf/core/column: 1.0.0 tag:stsci.edu:asdf/core/complex: 1.0.0 tag:stsci.edu:asdf/core/constant: 1.0.0 tag:stsci.edu:asdf/core/extension_metadata: 1.0.0 tag:stsci.edu:asdf/core/externalarray: 1.0.0 tag:stsci.edu:asdf/core/history_entry: 1.0.0 tag:stsci.edu:asdf/core/integer: 1.0.0 tag:stsci.edu:asdf/core/ndarray: 1.0.0 tag:stsci.edu:asdf/core/software: 1.0.0 tag:stsci.edu:asdf/core/subclass_metadata: 1.0.0 tag:stsci.edu:asdf/core/table: 1.0.0 tag:stsci.edu:asdf/fits/fits: 1.0.0 tag:stsci.edu:asdf/time/time: 1.1.0 tag:stsci.edu:asdf/unit/defunit: 1.0.0 tag:stsci.edu:asdf/unit/quantity: 1.1.0 tag:stsci.edu:asdf/unit/unit: 1.0.0 tag:stsci.edu:asdf/wcs/celestial_frame: 1.1.0 tag:stsci.edu:asdf/wcs/composite_frame: 1.1.0 tag:stsci.edu:asdf/wcs/icrs_coord: 1.1.0 tag:stsci.edu:asdf/wcs/spectral_frame: 1.1.0 tag:stsci.edu:asdf/wcs/step: 1.2.0 tag:stsci.edu:asdf/wcs/wcs: 1.2.0 ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/version_map-1.5.0.yaml0000644000175100001710000000141514274323033026031 0ustar00runnerdocker%YAML 1.1 --- FILE_FORMAT: 1.0.0 YAML_VERSION: "1.1" tags: tag:stsci.edu:asdf/core/asdf: 1.1.0 tag:stsci.edu:asdf/core/column: 1.0.0 tag:stsci.edu:asdf/core/complex: 1.0.0 tag:stsci.edu:asdf/core/constant: 1.0.0 tag:stsci.edu:asdf/core/extension_metadata: 1.0.0 tag:stsci.edu:asdf/core/externalarray: 1.0.0 tag:stsci.edu:asdf/core/history_entry: 1.0.0 tag:stsci.edu:asdf/core/integer: 1.0.0 tag:stsci.edu:asdf/core/ndarray: 1.0.0 tag:stsci.edu:asdf/core/software: 1.0.0 tag:stsci.edu:asdf/core/subclass_metadata: 1.0.0 tag:stsci.edu:asdf/core/table: 1.0.0 tag:stsci.edu:asdf/fits/fits: 1.0.0 tag:stsci.edu:asdf/time/time: 1.1.0 tag:stsci.edu:asdf/unit/defunit: 1.0.0 tag:stsci.edu:asdf/unit/quantity: 1.1.0 tag:stsci.edu:asdf/unit/unit: 1.0.0 ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/version_map-1.6.0.yaml0000644000175100001710000000141514274323033026032 0ustar00runnerdocker%YAML 1.1 --- FILE_FORMAT: 1.0.0 YAML_VERSION: "1.1" tags: tag:stsci.edu:asdf/core/asdf: 1.1.0 tag:stsci.edu:asdf/core/column: 1.0.0 tag:stsci.edu:asdf/core/complex: 1.0.0 tag:stsci.edu:asdf/core/constant: 1.0.0 tag:stsci.edu:asdf/core/extension_metadata: 1.0.0 tag:stsci.edu:asdf/core/externalarray: 1.0.0 tag:stsci.edu:asdf/core/history_entry: 1.0.0 tag:stsci.edu:asdf/core/integer: 1.0.0 tag:stsci.edu:asdf/core/ndarray: 1.0.0 tag:stsci.edu:asdf/core/software: 1.0.0 tag:stsci.edu:asdf/core/subclass_metadata: 1.0.0 tag:stsci.edu:asdf/core/table: 1.0.0 tag:stsci.edu:asdf/fits/fits: 1.0.0 tag:stsci.edu:asdf/time/time: 1.2.0 tag:stsci.edu:asdf/unit/defunit: 1.0.0 tag:stsci.edu:asdf/unit/quantity: 1.1.0 tag:stsci.edu:asdf/unit/unit: 1.0.0 ... ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3686993 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/wcs/0000755000175100001710000000000014274323045022762 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/wcs/celestial_frame-1.0.0.yaml0000644000175100001710000000071414274323033027416 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/wcs/celestial_frame-1.0.0" title: > Represents a celestial frame. description: > Represents a celestial frame. allOf: - type: object properties: axes_names: minItems: 2 maxItems: 3 axes_order: minItems: 2 maxItems: 3 unit: minItems: 2 maxItems: 3 - $ref: frame-1.0.0 ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/wcs/celestial_frame-1.1.0.yaml0000644000175100001710000000071414274323033027417 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/wcs/celestial_frame-1.1.0" title: > Represents a celestial frame. description: > Represents a celestial frame. allOf: - type: object properties: axes_names: minItems: 2 maxItems: 3 axes_order: minItems: 2 maxItems: 3 unit: minItems: 2 maxItems: 3 - $ref: frame-1.1.0 ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/wcs/composite_frame-1.0.0.yaml0000644000175100001710000000074014274323033027452 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/wcs/composite_frame-1.0.0" title: > Represents a set of frames. description: > Represents a set of frames. allOf: - type: object properties: name: description: Name of composite frame. type: string frames: description: List of frames in the composite frame. type: array - $ref: frame-1.0.0 ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/wcs/composite_frame-1.1.0.yaml0000644000175100001710000000071114274323033027451 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/wcs/composite_frame-1.1.0" title: > Represents a set of frames. description: > Represents a set of frames. allOf: - type: object properties: name: description: Name of composite frame. type: string frames: description: List of frames in the composite frame. type: array ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/wcs/frame-1.0.0.yaml0000644000175100001710000001317414274323033025375 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/wcs/frame-1.0.0" title: | The base class of all coordinate frames. description: | These objects are designed to be nested in arbitrary ways to build up transformation pipelines out of a number of low-level pieces. Most of these coordinate frames are defined in [IERS conventions](http://www.iers.org/IERS/EN/Publications/TechnicalNotes/tn36.html). examples: - - | A celestial frame in the FK4 reference frame. - | !wcs/celestial_frame-1.0.0 axes_names: [ra, dec] name: CelestialFrame reference_frame: type: FK4 equinox: !time/time-1.0.0 '2010-01-01 00:00:00.000' obstime: !time/time-1.0.0 '2015-01-01 00:00:00.000' unit: [!unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg] type: object properties: name: description: | A user-friendly name for the frame. type: string axes_order: description: | The order of the axes. type: array items: type: integer axes_names: description: | The name of each axis in this frame. type: array items: anyOf: - type: string - type: 'null' reference_frame: description: | The reference frame. type: object properties: type: description: | The reference frame type. Some reference frame types require additional properties, listed next to each reference frame type below. The reference frames types are: - `ICRS` - `FK5`: `equinox`. - `FK4`: `equinox` and optionally `obstime`. - `FK4_noeterms`: `equinox` and optionally `obstime`. - `galactic` - `galactocentric`: `galcen_distance`, `galcen_ra`, `galcen_dec`, `z_sun` and `roll`. - `GCRS`: `obstime`, `obsgeoloc`, and `obsgeovel`. - `CIRS`: `obstime`. - `ITRS`: `obstime`. - `precessed_geocentric`: `obstime`, `obsgeoloc`, and `obsgeovel`. enum: [ICRS, FK5, FK4, FK4_noeterms, galactic, galactocentric, GCRS, CIRS, ITRS, precessed_geocentric] default: ICRS equinox: description: | The equinox of the reference frame. Required when `reference_frame` one of: `FK5`, `FK4`, `FK4_noeterms` $ref: ../time/time-1.0.0 obstime: description: | The observation time of the reference frame, used to determine the location of the Earth. Required when `reference_frame` is one of: `FK4`, `FK4_noeterms`, `GCRS`, `CIRS`, `ITRS` If not provided, it defaults to the same value as `equinox`. $ref: ../time/time-1.0.0 galcen_distance: description: | The distance from the Sun to the Galactic center. Required when `reference_frame` is `galactocentric`. type: array items: - type: number - $ref: ../unit/unit-1.0.0 default: pc galcen_ra: description: | The Right Ascension (RA) of the Galactic center in the ICRS frame. Required when `reference_frame` is `galactocentric`. type: array items: - type: number - $ref: ../unit/unit-1.0.0 default: deg galcen_dec: description: | The Declination (DEC) of the Galactic center in the ICRS frame. Required when `reference_frame` is `galactocentric`. type: array items: - type: number - $ref: ../unit/unit-1.0.0 default: deg z_sun: description: | The distance from the sun to the galactic midplane. Required when `reference_frame` is `galactocentric`. Required when `reference_frame` is `galactocentric`. type: array items: - type: number - $ref: ../unit/unit-1.0.0 default: pc roll: description: | The angle to rotate about the final x-axis, relative to the orientation for `galactic`. Required when `reference_frame` is `galactocentric`. type: array items: - type: number - $ref: ../unit/unit-1.0.0 default: deg obsgeoloc: description: | 3-vector giving the position of the observer relative to the center-of-mass of the Earth, oriented the same as BCRS/ICRS. Defaults to `[0, 0, 0]`, meaning "true" GCRS. Used when `reference_frame` is `GCRS` or `precessed_geocentric`. type: array items: - type: array items: type: number minItems: 3 maxItems: 3 - $ref: ../unit/unit-1.0.0 default: m default: - [0, 0, 0] obsgeovel: description: | 3-vector giving the velocity of the observer relative to the center-of-mass of the Earth, oriented the same as BCRS/ICRS. Defaults to `[0, 0, 0]`, meaning "true" GCRS. Used when `reference_frame` is `GCRS` or `precessed_geocentric`. type: array items: - type: array items: type: number minItems: 3 maxItems: 3 - $ref: ../unit/unit-1.0.0 default: m/s default: - [0, 0, 0] required: [type] unit: description: | Units for each axis. type: array items: $ref: ../unit/unit-1.0.0 required: [name] additionalProperties: true ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/wcs/frame-1.1.0.yaml0000644000175100001710000001251114274323033025370 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/wcs/frame-1.1.0" title: | The base class of all coordinate frames. description: | These objects are designed to be nested in arbitrary ways to build up transformation pipelines out of a number of low-level pieces. Most of these coordinate frames are defined in [IERS conventions](http://www.iers.org/IERS/EN/Publications/TechnicalNotes/tn36.html). examples: - - | A celestial frame in the FK4 reference frame. - | !wcs/celestial_frame-1.1.0 axes_names: [ra, dec] name: CelestialFrame reference_frame: type: FK4 equinox: !time/time-1.1.0 '2010-01-01 00:00:00.000' obstime: !time/time-1.1.0 '2015-01-01 00:00:00.000' unit: [!unit/unit-1.0.0 deg, !unit/unit-1.0.0 deg] type: object properties: name: description: | A user-friendly name for the frame. type: string axes_order: description: | The order of the axes. type: array items: type: integer axes_names: description: | The name of each axis in this frame. type: array items: anyOf: - type: string - type: 'null' reference_frame: description: | The reference frame. type: object properties: type: description: | The reference frame type. Some reference frame types require additional properties, listed next to each reference frame type below. The reference frames types are: - `ICRS` - `FK5`: `equinox`. - `FK4`: `equinox` and optionally `obstime`. - `FK4_noeterms`: `equinox` and optionally `obstime`. - `galactic` - `galactocentric`: `galcen_distance`, `galcen_ra`, `galcen_dec`, `z_sun` and `roll`. - `GCRS`: `obstime`, `obsgeoloc`, and `obsgeovel`. - `CIRS`: `obstime`. - `ITRS`: `obstime`. - `precessed_geocentric`: `obstime`, `obsgeoloc`, and `obsgeovel`. enum: [ICRS, FK5, FK4, FK4_noeterms, galactic, galactocentric, GCRS, CIRS, ITRS, precessed_geocentric] default: ICRS equinox: description: | The equinox of the reference frame. Required when `reference_frame` one of: `FK5`, `FK4`, `FK4_noeterms` $ref: ../time/time-1.1.0 obstime: description: | The observation time of the reference frame, used to determine the location of the Earth. Required when `reference_frame` is one of: `FK4`, `FK4_noeterms`, `GCRS`, `CIRS`, `ITRS` If not provided, it defaults to the same value as `equinox`. $ref: ../time/time-1.1.0 galcen_distance: description: | The distance from the Sun to the Galactic center. Required when `reference_frame` is `galactocentric`. $ref: ../unit/quantity-1.1.0 galcen_coord: description: | The ICRS coordinates of the Galactic center. Required when `reference_frame` is `galactocentric`. $ref: icrs_coord-1.1.0 galcen_v_sun: description: | The velocity of the sun in the galactocentric frame as Cartesian velocity components. type: array items: $ref: ../unit/quantity-1.1.0 minItems: 3 maxItems: 3 default: - { value: [0], unit: k/s } - { value: [0], unit: k/s } - { value: [0], unit: k/s } z_sun: description: | The distance from the sun to the galactic midplane. Required when `reference_frame` is `galactocentric`. `reference_frame` is `galactocentric`. $ref: ../unit/quantity-1.1.0 roll: description: | The angle to rotate about the final x-axis, relative to the orientation for `galactic`. Required when `reference_frame` is `galactocentric`. $ref: ../unit/quantity-1.1.0 obsgeoloc: description: | 3-vector giving the position of the observer relative to the center-of-mass of the Earth, oriented the same as BCRS/ICRS. Defaults to `[0, 0, 0]`, meaning "true" GCRS. Used when `reference_frame` is `GCRS` or `precessed_geocentric`. type: array items: $ref: ../unit/quantity-1.1.0 minItems: 3 maxItems: 3 default: - { value: [0], unit: m } - { value: [0], unit: m } - { value: [0], unit: m } obsgeovel: description: | 3-vector giving the velocity of the observer relative to the center-of-mass of the Earth, oriented the same as BCRS/ICRS. Defaults to `[0, 0, 0]`, meaning "true" GCRS. Used when `reference_frame` is `GCRS` or `precessed_geocentric`. type: array items: $ref: ../unit/quantity-1.1.0 minItems: 3 maxItems: 3 default: - { value: [0], unit: m/s } - { value: [0], unit: m/s } - { value: [0], unit: m/s } required: [type] unit: description: | Units for each axis. type: array items: $ref: ../unit/unit-1.0.0 required: [name] additionalProperties: true ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/wcs/icrs_coord-1.1.0.yaml0000644000175100001710000000174314274323033026431 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/wcs/icrs_coord-1.1.0" title: | Represents an ICRS coordinate object from astropy description: This object represents the right ascension (RA) and declination of an ICRS coordinate or frame. The astropy ICRS class contains additional fields that may be useful to add here in the future. type: object properties: ra: type: object description: | A longitude representing the right ascension of the ICRS coordinate properties: value: type: number unit: $ref: ../unit/unit-1.0.0 default: deg wrap_angle: $ref: ../unit/quantity-1.1.0 default: "360 deg" dec: type: object description: | A latitude representing the declination of the ICRS coordinate properties: value: type: number unit: $ref: ../unit/unit-1.0.0 default: deg required: [ra, dec] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/wcs/spectral_frame-1.0.0.yaml0000644000175100001710000000117014274323033027263 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/wcs/spectral_frame-1.0.0" title: > Represents a spectral frame. description: > Represents a spectral frame. allOf: - type: object properties: reference_position: description: | The position of the reference frame. enum: [geocenter, barycenter, heliocenter] default: geocenter axes_names: minItems: 1 maxItems: 1 axes_order: minItems: 1 maxItems: 1 unit: minItems: 1 maxItems: 1 - $ref: frame-1.0.0 ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/wcs/spectral_frame-1.1.0.yaml0000644000175100001710000000117014274323033027264 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/wcs/spectral_frame-1.1.0" title: > Represents a spectral frame. description: > Represents a spectral frame. allOf: - type: object properties: reference_position: description: | The position of the reference frame. enum: [geocenter, barycenter, heliocenter] default: geocenter axes_names: minItems: 1 maxItems: 1 axes_order: minItems: 1 maxItems: 1 unit: minItems: 1 maxItems: 1 - $ref: frame-1.1.0 ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/wcs/step-1.0.0.yaml0000644000175100001710000000141014274323033025244 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/wcs/step-1.0.0" title: > Describes a single step of a WCS transform pipeline. description: > Describes a single step of a WCS transform pipeline. examples: [] type: object properties: frame: description: | The frame of the inputs to the transform. anyOf: - type: string - $ref: frame-1.0.0 transform: description: | The transform from this step to the next one. The last step in a WCS should not have a transform, but exists only to describe the frames and units of the final output axes. anyOf: - $ref: ../transform/transform-1.0.0 - type: 'null' default: null required: [frame] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/wcs/step-1.1.0.yaml0000644000175100001710000000141014274323033025245 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/wcs/step-1.1.0" title: > Describes a single step of a WCS transform pipeline. description: > Describes a single step of a WCS transform pipeline. examples: [] type: object properties: frame: description: | The frame of the inputs to the transform. anyOf: - type: string - $ref: frame-1.1.0 transform: description: | The transform from this step to the next one. The last step in a WCS should not have a transform, but exists only to describe the frames and units of the final output axes. anyOf: - $ref: ../transform/transform-1.1.0 - type: 'null' default: null required: [frame] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/wcs/step-1.2.0.yaml0000644000175100001710000000141014274323033025246 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/wcs/step-1.2.0" title: > Describes a single step of a WCS transform pipeline. description: > Describes a single step of a WCS transform pipeline. examples: [] type: object properties: frame: description: | The frame of the inputs to the transform. anyOf: - type: string - $ref: frame-1.1.0 transform: description: | The transform from this step to the next one. The last step in a WCS should not have a transform, but exists only to describe the frames and units of the final output axes. anyOf: - $ref: ../transform/transform-1.2.0 - type: 'null' default: null required: [frame] ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/wcs/wcs-1.0.0.yaml0000644000175100001710000000176614274323033025103 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/wcs/wcs-1.0.0" title: > A system for describing generalized world coordinate transformations. description: > ASDF WCS is a way of specifying transformations (usually from detector space to world coordinate space and back) by using the transformations in the `transform-schema` module. type: object properties: name: description: | A descriptive name for this WCS. type: string steps: description: | A list of steps in the forward transformation from detector to world coordinates. The inverse transformation is determined automatically by reversing this list, and inverting each of the individual transforms according to the rules described in [inverse](ref:http://stsci.edu/schemas/asdf/transform/transform-1.0.0/properties/inverse). type: array items: $ref: step-1.0.0 required: [name, steps] additionalProperties: true ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/wcs/wcs-1.1.0.yaml0000644000175100001710000000171514274323033025076 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/wcs/wcs-1.1.0" title: > A system for describing generalized world coordinate transformations. description: > ASDF WCS is a way of specifying transformations (usually from detector space to world coordinate space and back) by using the transformations in the `transform-schema` module. type: object properties: name: description: | A descriptive name for this WCS. type: string steps: description: | A list of steps in the forward transformation from detector to world coordinates. The inverse transformation is determined automatically by reversing this list, and inverting each of the individual transforms according to the rules described in [inverse](ref:transform/transform-1.1.0:inverse). type: array items: $ref: step-1.1.0 required: [name, steps] additionalProperties: true ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/asdf/wcs/wcs-1.2.0.yaml0000644000175100001710000000171514274323033025077 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://stsci.edu/schemas/yaml-schema/draft-01" id: "http://stsci.edu/schemas/asdf/wcs/wcs-1.2.0" title: > A system for describing generalized world coordinate transformations. description: > ASDF WCS is a way of specifying transformations (usually from detector space to world coordinate space and back) by using the transformations in the `transform-schema` module. type: object properties: name: description: | A descriptive name for this WCS. type: string steps: description: | A list of steps in the forward transformation from detector to world coordinates. The inverse transformation is determined automatically by reversing this list, and inverting each of the individual transforms according to the rules described in [inverse](ref:transform/transform-1.2.0:inverse). type: array items: $ref: step-1.2.0 required: [name, steps] additionalProperties: true ... ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3686993 asdf_standard-1.0.3/resources/schemas/stsci.edu/yaml-schema/0000755000175100001710000000000014274323045023451 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/resources/schemas/stsci.edu/yaml-schema/draft-01.yaml0000644000175100001710000001071014274323033025647 0ustar00runnerdocker%YAML 1.1 --- $schema: "http://json-schema.org/draft-04/schema" id: "http://stsci.edu/schemas/yaml-schema/draft-01" title: YAML Schema description: | A metaschema extending JSON Schema's metaschema to add support for some YAML-specific constructions. allOf: - $ref: "http://json-schema.org/draft-04/schema" - type: object properties: tag: description: | A fully-qualified YAML tag name that should be associated with the object type returned by the YAML parser; for example, the object must be an instance of the class registered with the parser to create instances of objects with this tag. Implementation of this validator is optional and depends on details of the YAML parser. type: string minLength: 6 propertyOrder: description: | Specifies the default order of the properties when writing out. Any keys not listed in **propertyOrder** will be in arbitrary order at the end. This field applies only to nodes with **object** type. type: array items: type: string flowStyle: description: | Specifies the default serialization style to use for an array or object. YAML supports multiple styles for arrays/sequences and objects/maps, called "block style" and "flow style". For example:: Block style: !!map Clark : Evans Ingy : döt Net Oren : Ben-Kiki Flow style: !!map { Clark: Evans, Ingy: döt Net, Oren: Ben-Kiki } This property gives a hint to the tool outputting the YAML which style to use. If not provided, the library is free to use whatever heuristics it wishes to determine the output style. This property does not enforce any particular style on YAML being parsed. type: string enum: [block, flow] style: description: | Specifies the default serialization style to use for a string. YAML supports multiple styles for strings: ```yaml Inline style: "First line\nSecond line" Literal style: | First line Second line Folded style: > First line Second line ``` This property gives a hint to the tool outputting the YAML which style to use. If not provided, the library is free to use whatever heuristics it wishes to determine the output style. This property does not enforce any particular style on YAML being parsed. type: string enum: [inline, literal, folded] examples: description: | A list of examples to help document the schema. Each pair is a prose description followed by a string containing YAML content. For example: ```yaml examples: - - Complex number: 1 real, -1 imaginary - "!complex 1-1j" type: array items: ``` type: array items: type: array items: - type: string - anyOf: - type: string - type: object # Redefine JSON schema validators in terms of this document so that # we can check nested objects: additionalItems: anyOf: - type: boolean - $ref: "#" items: anyOf: - $ref: "#" - $ref: "#/definitions/schemaArray" additionalProperties: anyOf: - type: boolean - $ref: "#" definitions: type: object additionalProperties: $ref: "#" properties: type: object additionalProperties: $ref: "#" patternProperties: type: object additionalProperties: $ref: "#" dependencies: type: object additionalProperties: anyOf: - $ref: "#" - $ref: "http://json-schema.org/draft-04/schema#definitions/stringArray" allOf: $ref: "#/definitions/schemaArray" anyOf: $ref: "#/definitions/schemaArray" oneOf: $ref: "#/definitions/schemaArray" not: $ref: "#" definitions: schemaArray: type: array minItems: 1 items: $ref: "#" ... ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3686993 asdf_standard-1.0.3/scripts/0000755000175100001710000000000014274323045015402 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/scripts/generate-core-manifests.py0000644000175100001710000000376614274323033022474 0ustar00runnerdocker# Generate the file in resources/asdf-format.org/core/manifests/ import glob import os import yaml os.chdir(os.path.join(os.path.dirname(__file__), "..")) SCHEMA_PATTERNS = [ "schemas/stsci.edu/asdf/core/*.yaml", "schemas/stsci.edu/asdf/fits/*.yaml", "schemas/stsci.edu/asdf/time/*.yaml", "schemas/stsci.edu/asdf/unit/*.yaml", "schemas/stsci.edu/asdf/wcs/*.yaml", ] def represent_string(dumper, data): if len(data.splitlines()) > 1: style = "|" else: style = None return dumper.represent_scalar("tag:yaml.org,2002:str", data, style=style) yaml.SafeDumper.add_representer(str, represent_string) schemas_by_tag = {} for pattern in SCHEMA_PATTERNS: for path in glob.glob(pattern): schema = yaml.safe_load(open(path).read()) tag = "tag:stsci.edu:" + schema["id"].split("http://stsci.edu/schemas/")[-1] schemas_by_tag[tag] = schema for path in sorted(glob.glob("schemas/stsci.edu/asdf/version_map-*.yaml")): version_map = yaml.safe_load(open(path).read()) version = path.split("/")[-1].split("-")[-1].split(".yaml")[0] tags = sorted([k + "-" + str(v) for k, v in version_map["tags"].items() if "/transform/" not in k]) tag_defs = [] for tag in tags: schema = schemas_by_tag[tag] tag_def = { "tag_uri": tag, "schema_uri": schema["id"], "title": schema["title"].strip(), "description": schema["description"].strip(), } tag_defs.append(tag_def) manifest = { "id": f"asdf://asdf-format.org/core/manifests/core-{version}", "extension_uri": f"asdf://asdf-format.org/core/extensions/core-{version}", "title": f"Core extension {version}", "description": "Tags for ASDF core objects.", "asdf_standard_requirement": version, "tags": tag_defs, } with open(f"resources/asdf-format.org/core/manifests/core-{version}.yaml", "w") as f: yaml.dump(manifest, f, sort_keys=False, Dumper=yaml.SafeDumper) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/scripts/update-schemas.py0000755000175100001710000000324614274323033020664 0ustar00runnerdocker#!/usr/bin/env python import os import re import subprocess as sp import sys def get_schemas(pattern): cmd = ["git", "grep", "--name-only"] output = sp.check_output(cmd + [pattern, "--", "schemas"]).decode("utf8") names = output.split() print(names) dedupe = dict() for name in names: version = re.findall(r"\d\.\d.\d", name)[0] basepath = name.split("-")[0] if basepath in dedupe and dedupe[basepath] > version: continue dedupe[basepath] = version return ["{}-{}.yaml".format(x, y) for x, y in dedupe.items()] def update_version(string): groups = re.search(r"((\d)\.(\d)\.(\d))", string).groups() bumped = int(groups[2]) + 1 new_version = "{}.{}.{}".format(groups[1], bumped, groups[3]) return re.sub(r"((\d)\.(\d)\.(\d))", new_version, string) def create_updated_schema(schema, pattern, new_pattern): name = os.path.splitext(os.path.basename(schema))[0] updated = update_version(name) new_schema = re.sub(name, updated, schema) with open(new_schema, "w") as new_file: with open(schema, "r") as old_file: for line in old_file: line = line.replace(pattern, new_pattern) line = line.replace(name, updated) new_file.write(line) def main(): if len(sys.argv) != 2: name = os.path.basename(sys.argv[0]) sys.stderr.write("USAGE: {} \n".format(name)) exit(1) pattern = sys.argv[1] new_pattern = update_version(pattern) schemas = get_schemas(pattern) for s in schemas: create_updated_schema(s, pattern, new_pattern) if __name__ == "__main__": main() ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3726993 asdf_standard-1.0.3/setup.cfg0000644000175100001710000000026714274323045015541 0ustar00runnerdocker[flake8] ignore = E501, E203, W503 exclude = .git, __pycache__, build, dist, eggs, *.egg, reference_files, schemas, source, .pytest_cache, .tox [egg_info] tag_build = tag_date = 0 ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3606994 asdf_standard-1.0.3/src/0000755000175100001710000000000014274323045014502 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3726993 asdf_standard-1.0.3/src/asdf_standard/0000755000175100001710000000000014274323045017277 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/src/asdf_standard/__init__.py0000644000175100001710000000022314274323033021402 0ustar00runnerdockerfrom ._version import version as __version__ from .resource import DirectoryResourceMapping __all__ = ["__version__", "DirectoryResourceMapping"] ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003877.0 asdf_standard-1.0.3/src/asdf_standard/_version.py0000644000175100001710000000026014274323045021473 0ustar00runnerdocker# coding: utf-8 # file generated by setuptools_scm # don't change, don't track in version control __version__ = version = '1.0.3' __version_tuple__ = version_tuple = (1, 0, 3) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/src/asdf_standard/integration.py0000644000175100001710000000216714274323033022177 0ustar00runnerdockerimport sys from pathlib import Path if sys.version_info < (3, 9): import importlib_resources else: import importlib.resources as importlib_resources import asdf_standard def get_resource_mappings(): resources_root = importlib_resources.files(asdf_standard) / "resources" if not resources_root.is_dir(): # In an editable install, the resources directory will exist off the # repository root: resources_root = Path(__file__).absolute().parent.parent.parent / "resources" if not resources_root.is_dir(): raise RuntimeError("Missing resources directory") return [ asdf_standard.DirectoryResourceMapping( resources_root / "schemas" / "stsci.edu", "http://stsci.edu/schemas/", recursive=True ), asdf_standard.DirectoryResourceMapping( resources_root / "schemas" / "asdf-format.org" / "core", "asdf://asdf-format.org/core/schemas/" ), asdf_standard.DirectoryResourceMapping( resources_root / "manifests" / "asdf-format.org" / "core", "asdf://asdf-format.org/core/manifests/", ), ] ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/src/asdf_standard/resource.py0000644000175100001710000000541414274323033021501 0ustar00runnerdockerimport fnmatch import os from collections.abc import Mapping from pathlib import Path __all__ = ["DirectoryResourceMapping"] class DirectoryResourceMapping(Mapping): """ Resource mapping that reads resource content from a directory or directory tree. Parameters ---------- root : str or importlib.abc.Traversable Root directory (or directory-like Traversable) of the resource files. ``str`` will be interpreted as a filesystem path. uri_prefix : str Prefix used to construct URIs from file paths. The prefix will be prepended to paths relative to the root directory. recursive : bool, optional If ``True``, recurse into subdirectories. Defaults to ``False``. filename_pattern : str, optional Glob pattern that identifies relevant filenames. Defaults to ``"*.yaml"``. stem_filename : bool, optional If ``True``, remove the filename's extension when constructing its URI. """ def __init__(self, root, uri_prefix, recursive=False, filename_pattern="*.yaml", stem_filename=True): self._uri_to_file = {} self._recursive = recursive self._filename_pattern = filename_pattern self._stem_filename = stem_filename if isinstance(root, str): self._root = Path(root) else: self._root = root if uri_prefix.endswith("/"): self._uri_prefix = uri_prefix[:-1] else: self._uri_prefix = uri_prefix for file, path_components in self._iterate_files(self._root, []): self._uri_to_file[self._make_uri(file, path_components)] = file def _iterate_files(self, directory, path_components): for obj in directory.iterdir(): if obj.is_file() and fnmatch.fnmatch(obj.name, self._filename_pattern): yield obj, path_components elif obj.is_dir() and self._recursive: yield from self._iterate_files(obj, path_components + [obj.name]) def _make_uri(self, file, path_components): if self._stem_filename: filename = os.path.splitext(file.name)[0] else: filename = file.name return "/".join([self._uri_prefix] + path_components + [filename]) def __getitem__(self, uri): return self._uri_to_file[uri].read_bytes() def __len__(self): return len(self._uri_to_file) def __iter__(self): yield from self._uri_to_file def __repr__(self): return "{}({!r}, {!r}, recursive={!r}, filename_pattern={!r}, stem_filename={!r})".format( self.__class__.__name__, self._root, self._uri_prefix, self._recursive, self._filename_pattern, self._stem_filename, ) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3726993 asdf_standard-1.0.3/src/asdf_standard.egg-info/0000755000175100001710000000000014274323045020771 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003877.0 asdf_standard-1.0.3/src/asdf_standard.egg-info/PKG-INFO0000644000175100001710000001072314274323045022071 0ustar00runnerdockerMetadata-Version: 2.1 Name: asdf-standard Version: 1.0.3 Summary: The ASDF Standard schemas Author-email: The ASDF Developers License: Copyright (c) 2022 Association of Universities for Research in Astronomy. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Project-URL: tracker, https://github.com/asdf-format/asdf-standard/issues Project-URL: documentation, https://asdf-standard.readthedocs.io/en/stable Project-URL: repository, https://github.com/asdf-format/asdf-standard Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Development Status :: 5 - Production/Stable Requires-Python: >=3.8 Description-Content-Type: text/markdown Provides-Extra: docs Provides-Extra: test License-File: LICENSE ASDF standard 1.6.0 =================== ![CI](https://github.com/asdf-format/asdf-standard/workflows/CI/badge.svg) ![Downstream](https://github.com/asdf-format/asdf-standard/workflows/Downstream/badge.svg) [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/) This document describes the Advanced Scientific Data Format (ASDF), pronounced *AZ*-diff. You can read the full specification at [the online documentation](http://asdf-standard.readthedocs.io/). > This is the **A**dvanced **S**cientific **D**ata **F**ormat - if you are looking for the **A**daptable **S**eismic **D**ata **F**ormat, go here: http://seismic-data.org/ ## Contributing Please open a new [issue](https://github.com/spacetelescope/asdf-standard/issue) or new [pull request](https://github.com/spacetelescope/asdf-standard/pulls) for bugs, feedback, or new features you would like to see. If there is an issue you would like to work on, please leave a comment and we will be happy to assist. New contributions and contributors are very welcome! There are two mailing lists for ASDF: * [asdf-users](https://groups.google.com/forum/#!forum/asdf-users) * [asdf-developers](https://groups.google.com/forum/#!forum/asdf-developers) ## Getting More Information * [FAQ page](https://github.com/spacetelescope/asdf-standard/wiki/FAQ) on the wiki. * [ASDF: A new data format for astronomy](https://doi.org/10.1016/j.ascom.2015.06.004), published in *Astronomy and Computing*: > Greenfield, P., Droettboom, M., & Bray, E. (2015). ASDF: A new data format for astronomy. *Astronomy and Computing*, 12: 240-251. > doi:[10.1016/j.ascom.2015.06.004](https://doi.org/10.1016/j.ascom.2015.06.004) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003877.0 asdf_standard-1.0.3/src/asdf_standard.egg-info/SOURCES.txt0000644000175100001710000001303214274323045022654 0ustar00runnerdocker.gitattributes .gitignore .pre-commit-config.yaml .readthedocs.yml CHANGES.rst CODE_OF_CONDUCT.md LICENSE README.md bandit.yaml pyproject.toml setup.cfg tox.ini .github/workflows/changelog.yml .github/workflows/ci.yml .github/workflows/downstream.yml .github/workflows/publish-to-pypi.yml docs/Makefile docs/source/asdf_in_fits.rst docs/source/capt-of.sty docs/source/changes.rst docs/source/conf.py docs/source/dev_api.rst docs/source/eqparbox.sty docs/source/file_layout.rst docs/source/index.rst docs/source/intro.rst docs/source/known_limits.rst docs/source/schemas.rst docs/source/tree.rst docs/source/versioning.rst docs/source/_static/custom.css docs/source/_static/logo.ico docs/source/_static/logo.pdf docs/source/_static/logo.png docs/source/_templates/layout.html docs/source/schemas/core.rst docs/source/schemas/fits.rst docs/source/schemas/index.rst docs/source/schemas/legacy.rst docs/source/schemas/manifest.rst docs/source/schemas/time.rst docs/source/schemas/unit.rst docs/source/schemas/yaml_schema.rst reference_files/README.rst reference_files/1.0.0/ascii.asdf reference_files/1.0.0/ascii.yaml reference_files/1.0.0/basic.asdf reference_files/1.0.0/basic.yaml reference_files/1.0.0/complex.asdf reference_files/1.0.0/complex.yaml reference_files/1.0.0/compressed.asdf reference_files/1.0.0/compressed.yaml reference_files/1.0.0/exploded.asdf reference_files/1.0.0/exploded.yaml reference_files/1.0.0/exploded0000.asdf reference_files/1.0.0/float.asdf reference_files/1.0.0/float.yaml reference_files/1.0.0/int.asdf reference_files/1.0.0/int.yaml reference_files/1.0.0/shared.asdf reference_files/1.0.0/shared.yaml reference_files/1.0.0/stream.asdf reference_files/1.0.0/stream.yaml reference_files/1.0.0/unicode_bmp.asdf reference_files/1.0.0/unicode_bmp.yaml reference_files/1.0.0/unicode_spp.asdf reference_files/1.0.0/unicode_spp.yaml reference_files/generate/README.rst reference_files/generate/generate resources/manifests/asdf-format.org/core/core-1.0.0.yaml resources/manifests/asdf-format.org/core/core-1.1.0.yaml resources/manifests/asdf-format.org/core/core-1.2.0.yaml resources/manifests/asdf-format.org/core/core-1.3.0.yaml resources/manifests/asdf-format.org/core/core-1.4.0.yaml resources/manifests/asdf-format.org/core/core-1.5.0.yaml resources/manifests/asdf-format.org/core/core-1.6.0.yaml resources/schemas/asdf-format.org/core/extension_manifest-1.0.0.yaml resources/schemas/stsci.edu/asdf/asdf-schema-1.0.0.yaml resources/schemas/stsci.edu/asdf/version_map-1.0.0.yaml resources/schemas/stsci.edu/asdf/version_map-1.1.0.yaml resources/schemas/stsci.edu/asdf/version_map-1.2.0.yaml resources/schemas/stsci.edu/asdf/version_map-1.3.0.yaml resources/schemas/stsci.edu/asdf/version_map-1.4.0.yaml resources/schemas/stsci.edu/asdf/version_map-1.5.0.yaml resources/schemas/stsci.edu/asdf/version_map-1.6.0.yaml resources/schemas/stsci.edu/asdf/core/asdf-1.0.0.yaml resources/schemas/stsci.edu/asdf/core/asdf-1.1.0.yaml resources/schemas/stsci.edu/asdf/core/column-1.0.0.yaml resources/schemas/stsci.edu/asdf/core/complex-1.0.0.yaml resources/schemas/stsci.edu/asdf/core/constant-1.0.0.yaml resources/schemas/stsci.edu/asdf/core/extension_metadata-1.0.0.yaml resources/schemas/stsci.edu/asdf/core/externalarray-1.0.0.yaml resources/schemas/stsci.edu/asdf/core/history_entry-1.0.0.yaml resources/schemas/stsci.edu/asdf/core/integer-1.0.0.yaml resources/schemas/stsci.edu/asdf/core/ndarray-1.0.0.yaml resources/schemas/stsci.edu/asdf/core/software-1.0.0.yaml resources/schemas/stsci.edu/asdf/core/subclass_metadata-1.0.0.yaml resources/schemas/stsci.edu/asdf/core/table-1.0.0.yaml resources/schemas/stsci.edu/asdf/fits/fits-1.0.0.yaml resources/schemas/stsci.edu/asdf/time/time-1.0.0.yaml resources/schemas/stsci.edu/asdf/time/time-1.1.0.yaml resources/schemas/stsci.edu/asdf/time/time-1.2.0.yaml resources/schemas/stsci.edu/asdf/unit/defunit-1.0.0.yaml resources/schemas/stsci.edu/asdf/unit/quantity-1.1.0.yaml resources/schemas/stsci.edu/asdf/unit/unit-1.0.0.yaml resources/schemas/stsci.edu/asdf/wcs/celestial_frame-1.0.0.yaml resources/schemas/stsci.edu/asdf/wcs/celestial_frame-1.1.0.yaml resources/schemas/stsci.edu/asdf/wcs/composite_frame-1.0.0.yaml resources/schemas/stsci.edu/asdf/wcs/composite_frame-1.1.0.yaml resources/schemas/stsci.edu/asdf/wcs/frame-1.0.0.yaml resources/schemas/stsci.edu/asdf/wcs/frame-1.1.0.yaml resources/schemas/stsci.edu/asdf/wcs/icrs_coord-1.1.0.yaml resources/schemas/stsci.edu/asdf/wcs/spectral_frame-1.0.0.yaml resources/schemas/stsci.edu/asdf/wcs/spectral_frame-1.1.0.yaml resources/schemas/stsci.edu/asdf/wcs/step-1.0.0.yaml resources/schemas/stsci.edu/asdf/wcs/step-1.1.0.yaml resources/schemas/stsci.edu/asdf/wcs/step-1.2.0.yaml resources/schemas/stsci.edu/asdf/wcs/wcs-1.0.0.yaml resources/schemas/stsci.edu/asdf/wcs/wcs-1.1.0.yaml resources/schemas/stsci.edu/asdf/wcs/wcs-1.2.0.yaml resources/schemas/stsci.edu/yaml-schema/draft-01.yaml scripts/generate-core-manifests.py scripts/update-schemas.py src/asdf_standard/__init__.py src/asdf_standard/_version.py src/asdf_standard/integration.py src/asdf_standard/resource.py src/asdf_standard.egg-info/PKG-INFO src/asdf_standard.egg-info/SOURCES.txt src/asdf_standard.egg-info/dependency_links.txt src/asdf_standard.egg-info/entry_points.txt src/asdf_standard.egg-info/requires.txt src/asdf_standard.egg-info/top_level.txt tests/.gitkeep tests/common.py tests/conftest.py tests/test_asdf_schema.py tests/test_core.py tests/test_docs.py tests/test_fits.py tests/test_integration.py tests/test_manifests.py tests/test_resource.py tests/test_time.py tests/test_unit.py tests/test_version_map.py tests/test_wcs.py tests/test_yaml_schema.py././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003877.0 asdf_standard-1.0.3/src/asdf_standard.egg-info/dependency_links.txt0000644000175100001710000000000114274323045025037 0ustar00runnerdocker ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003877.0 asdf_standard-1.0.3/src/asdf_standard.egg-info/entry_points.txt0000644000175100001710000000013114274323045024262 0ustar00runnerdocker[asdf.resource_mappings] asdf_standard = asdf_standard.integration:get_resource_mappings ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003877.0 asdf_standard-1.0.3/src/asdf_standard.egg-info/requires.txt0000644000175100001710000000033414274323045023371 0ustar00runnerdocker [:python_version < "3.9"] importlib_resources>=3 [docs] toml sphinx sphinx-asdf>=0.1.3 sphinx-astropy graphviz matplotlib docutils sphinx-rtd-theme [test] pytest pyyaml asdf>=2.8.0 astropy>=5.0.4 gwcs packaging>=16.0 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003877.0 asdf_standard-1.0.3/src/asdf_standard.egg-info/top_level.txt0000644000175100001710000000001614274323045023520 0ustar00runnerdockerasdf_standard ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1660003877.3726993 asdf_standard-1.0.3/tests/0000755000175100001710000000000014274323045015055 5ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/tests/.gitkeep0000644000175100001710000000000014274323033016471 0ustar00runnerdocker././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/tests/common.py0000644000175100001710000001134614274323033016721 0ustar00runnerdockerimport re from pathlib import Path from urllib.parse import urljoin import yaml from packaging.version import Version ROOT_PATH = Path(__file__).parent.parent RESOURCES_PATH = ROOT_PATH / "resources" SCHEMAS_PATH = RESOURCES_PATH / "schemas" / "stsci.edu" / "asdf" DOCS_PATH = ROOT_PATH / "docs" / "source" DOCS_SCHEMAS_PATH = DOCS_PATH / "schemas" YAML_SCHEMA_PATH = RESOURCES_PATH / "schemas" / "stsci.edu" / "yaml-schema" MANIFESTS_PATH = RESOURCES_PATH / "manifests" / "asdf-format.org" / "core" VERSION_MAP_PATHS = list(SCHEMAS_PATH.glob("version_map-*.yaml")) VALID_YAML_VERSIONS = {"1.1"} VALID_FILE_FORMAT_VERSIONS = {"1.0.0"} VALID_SCHEMA_FILENAME_RE = re.compile(r"[a-z0-9_]+-[0-9]+\.[0-9]+\.[0-9]+\.yaml") DEPRECATED_PATTERNS = {re.compile(".*/transform/.*"), re.compile(".*/wcs/.*")} METASCHEMA_ID = "http://stsci.edu/schemas/yaml-schema/draft-01" YAML_TAG_RE = re.compile(r"![a-z/0-9_-]+-[0-9]+\.[0-9]+\.[0-9]") DESCRIPTION_REF_RE = re.compile(r"\(ref:(.*?)\)") SCHEMA_ID_PREFIX = "http://stsci.edu/schemas/asdf/" MANIFEST_ID_PREFIX = "asdf://asdf-format.org/core/manifests/" def load_yaml(path): with path.open() as f: return yaml.safe_load(f.read()) def assert_yaml_header_and_footer(path): with path.open() as f: content = f.read() assert any( content.startswith(f"%YAML {v}\n---\n") for v in VALID_YAML_VERSIONS ), f"{path.name} must start with a %YAML directive with a supported version" assert content.endswith("\n...\n"), f"{path.name} must end with '...' followed by a single newline" def is_deprecated(schema_id_or_tag): return any(p.match(schema_id_or_tag) for p in DEPRECATED_PATTERNS) def split_id(schema_id): return schema_id.rsplit("-", 1) def yaml_tag_to_id(yaml_tag): return "http://stsci.edu/schemas/asdf/" + yaml_tag.replace("!", "") def _relative_stem(path): return f"{str((path.parent).relative_to(SCHEMAS_PATH))}/{str(path.stem)}" def path_to_tag(path): return f"tag:stsci.edu:asdf/{_relative_stem(path)}" def tag_to_path(tag): assert tag.startswith("tag:stsci.edu:asdf/") return SCHEMAS_PATH / f"""{tag.split("tag:stsci.edu:asdf/")[-1]}.yaml""" def tag_to_id(tag): assert tag.startswith("tag:stsci.edu:asdf/") return "http://stsci.edu/schemas/asdf/" + tag.split("tag:stsci.edu:asdf/")[-1] def id_to_path(id): assert id.startswith("http://stsci.edu/schemas/asdf/") return SCHEMAS_PATH / f"""{id.split("http://stsci.edu/schemas/asdf/")[-1]}.yaml""" def path_to_id(path): return f"http://stsci.edu/schemas/asdf/{_relative_stem(path)}" def list_schema_paths(path): return sorted(p for p in path.glob("**/*.yaml") if not p.name.startswith("version_map-")) def list_latest_schema_paths(path): paths = list_schema_paths(path) latest_by_id_base = {} for path in paths: schema_id = path_to_id(path) id_base, version = split_id(schema_id) if id_base in latest_by_id_base: if Version(version) > Version(latest_by_id_base[id_base][0]): latest_by_id_base[id_base] = (version, path) else: latest_by_id_base[id_base] = (version, path) return sorted([p for _, p in latest_by_id_base.values()]) def list_legacy_schema_paths(path): paths = list_schema_paths(path) latest_paths = list_latest_schema_paths(path) return sorted([p for p in paths if p not in latest_paths]) def ref_to_id(schema_id, ref): return urljoin(schema_id, ref) def list_refs(schema): refs = [] if isinstance(schema, dict): for key, value in schema.items(): if key == "$ref": refs.append(value) elif isinstance(value, dict) or isinstance(value, list): refs.extend(list_refs(value)) elif isinstance(schema, list): for elem in schema: refs.extend(list_refs(elem)) return refs def list_example_ids(schema): if "examples" in schema: example_yaml_tags = set() for example in schema["examples"]: if len(example) == 1: example = example[0] elif len(example) == 2: example = example[1] elif len(example) > 2: example = example[2] else: raise RuntimeError(f"Invalid example: {example}") example_yaml_tags.update(YAML_TAG_RE.findall(example)) return sorted({yaml_tag_to_id(yaml_tag) for yaml_tag in example_yaml_tags}) else: return [] def list_description_ids(schema): result = set() if "description" in schema: for ref in DESCRIPTION_REF_RE.findall(schema["description"]): if not ref.startswith("http:"): ref = "http://stsci.edu/schemas/asdf/" + ref result.add(ref) return result ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/tests/conftest.py0000644000175100001710000001772514274323033017265 0ustar00runnerdockerimport pytest from common import ( DOCS_SCHEMAS_PATH, MANIFEST_ID_PREFIX, MANIFESTS_PATH, METASCHEMA_ID, SCHEMA_ID_PREFIX, SCHEMAS_PATH, VALID_SCHEMA_FILENAME_RE, YAML_SCHEMA_PATH, assert_yaml_header_and_footer, is_deprecated, list_description_ids, list_example_ids, list_latest_schema_paths, list_legacy_schema_paths, list_refs, list_schema_paths, load_yaml, path_to_id, path_to_tag, ref_to_id, split_id, ) from jsonschema.validators import Draft4Validator, RefResolver @pytest.fixture(scope="session") def schemas(): return [load_yaml(p) for p in list_schema_paths(SCHEMAS_PATH)] @pytest.fixture(scope="session") def manifests(): return [load_yaml(p) for p in list_schema_paths(MANIFESTS_PATH)] @pytest.fixture(scope="session") def yaml_schemas(): return [load_yaml(p) for p in list_schema_paths(YAML_SCHEMA_PATH)] @pytest.fixture(scope="session") def latest_schemas(): return [load_yaml(p) for p in list_latest_schema_paths(SCHEMAS_PATH)] @pytest.fixture(scope="session") def legacy_schemas(): return [load_yaml(p) for p in list_legacy_schema_paths(SCHEMAS_PATH)] def get_schema_ids(schemas): result = set() for schema in schemas: if "id" in schema: result.add(schema["id"]) return result @pytest.fixture(scope="session") def latest_schema_ids(latest_schemas): return get_schema_ids(latest_schemas) @pytest.fixture(scope="session") def legacy_schema_ids(legacy_schemas): return get_schema_ids(legacy_schemas) @pytest.fixture(scope="session") def manifest_ids(manifests): return get_schema_ids(manifests) def add_schemas(path, prefix, result): with open(path) as f: content = f.read() lines = content.split("\n") i = 0 while i < len(lines): if lines[i].startswith(".. asdf-autoschemas::"): i += 1 while i < len(lines) and (lines[i].strip() == "" or lines[i].startswith(" ")): possible_id = lines[i].strip() if len(possible_id) > 0: result.append(f"{prefix}{possible_id}") i += 1 else: i += 1 @pytest.fixture(scope="session") def docs_schema_ids(): result = [] for path in DOCS_SCHEMAS_PATH.glob("**/*.rst"): if path != DOCS_SCHEMAS_PATH / "manifest.rst": add_schemas(path, SCHEMA_ID_PREFIX, result) return result @pytest.fixture(scope="session") def docs_legacy_schema_ids(): result = [] for path in DOCS_SCHEMAS_PATH.glob("**/legacy.rst"): add_schemas(path, SCHEMA_ID_PREFIX, result) return result @pytest.fixture(scope="session") def docs_manifest_ids(): result = [] for path in DOCS_SCHEMAS_PATH.glob("**/manifest.rst"): add_schemas(path, MANIFEST_ID_PREFIX, result) return result def _get_tag(schema): if "tag" in schema: return schema["tag"] elif "anyOf" in schema: for elem in schema["anyOf"]: if "tag" in elem: return elem["tag"] return None @pytest.fixture(scope="session") def latest_schema_tags(latest_schemas): result = set() for schema in latest_schemas: tag = _get_tag(schema) if tag is not None: result.add(tag) return result @pytest.fixture(scope="session") def schema_tags(schemas): result = set() for schema in schemas: tag = _get_tag(schema) if tag is not None: result.add(tag) return result @pytest.fixture(scope="session") def tag_to_schema(schemas): result = {} for schema in schemas: tag = _get_tag(schema) if tag is not None: if tag not in result: result[tag] = [] result[tag].append(schema) return result @pytest.fixture(scope="session") def id_to_schema(schemas): result = {} for schema in schemas: if "id" in schema: if schema["id"] not in result: result[schema["id"]] = [] result[schema["id"]].append(schema) return result @pytest.fixture(scope="session") def assert_schema_correct(tag_to_schema, id_to_schema): def _assert_schema_correct(path): __tracebackhide__ = True assert VALID_SCHEMA_FILENAME_RE.match(path.name) is not None, f"{path.name} is an invalid schema filename" assert_yaml_header_and_footer(path) schema = load_yaml(path) assert "$schema" in schema, f"{path.name} is missing $schema key" assert schema["$schema"] == METASCHEMA_ID, f"{path.name} has wrong $schema value (expected {METASCHEMA_ID})" expected_id = path_to_id(path) expected_tag = path_to_tag(path) assert "id" in schema, f"{path.name} is missing id key (expected {expected_id})" assert schema["id"] == expected_id, f"{path.name} id doesn't match filename (expected {expected_id})" if "tag" in schema: assert schema["tag"] == expected_tag, f"{path.name} tag doesn't match filename (expected {expected_tag})" assert "title" in schema, f"{path.name} is missing title key" assert len(schema["title"].strip()) > 0, f"{path.name} title must have content" assert "description" in schema, f"{path.name} is missing description key" assert len(schema["description"].strip()) > 0, f"{path.name} description must have content" assert len(id_to_schema[schema["id"]]) == 1, f"{path.name} does not have a unique id" if "tag" in schema: assert len(tag_to_schema[schema["tag"]]) == 1, f"{path.name} does not have a unique tag" id_base, _ = split_id(schema["id"]) for example_id in list_example_ids(schema): example_id_base, _ = split_id(example_id) if example_id_base == id_base and example_id != schema["id"]: assert False, f"{path.name} contains an example with an outdated tag" for description_id in list_description_ids(schema): if len(description_id.rsplit("-", 1)) > 1: description_id_base, _ = split_id(description_id) if description_id_base == id_base and description_id != schema["id"]: assert False, f"{path.name} descriptioon contains an outdated ref" return _assert_schema_correct @pytest.fixture(scope="session") def assert_latest_schema_correct(latest_schema_ids): def _assert_latest_schema_correct(path): __tracebackhide__ = True schema = load_yaml(path) if is_deprecated(schema["id"]): return refs = [r.split("#")[0] for r in list_refs(schema) if not r.startswith("#") and not r == METASCHEMA_ID] for ref in refs: ref_id = ref_to_id(schema["id"], ref) assert ref_id in latest_schema_ids, ( f"{path.name} is the latest version of a schema, " f"but references {ref}, which is not latest" ) for example_id in list_example_ids(schema): assert example_id in latest_schema_ids, ( f"{path.name} is the latest version of a schema, " f"but its examples include {example_id}, which is not latest" ) for description_id in list_description_ids(schema): if len(description_id.rsplit("-", 1)) > 1: assert description_id in latest_schema_ids, ( f"{path.name} is the latest version of a schema, " f"but its description includes a ref to {description_id}, " "which is not latest" ) return _assert_latest_schema_correct @pytest.fixture(scope="session") def create_validator(schemas, yaml_schemas): """ Fixture method that creates validators with access to schemas in this repository. """ def _create_validator(schema): store = {s["id"]: s for s in schemas + yaml_schemas} resolver = RefResolver.from_schema(schema, id_of=Draft4Validator.ID_OF, store=store) return Draft4Validator(schema, resolver=resolver) return _create_validator ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/tests/test_asdf_schema.py0000644000175100001710000000232214274323033020717 0ustar00runnerdockerimport pytest from common import SCHEMAS_PATH, assert_yaml_header_and_footer, load_yaml from jsonschema import ValidationError @pytest.mark.parametrize("path", SCHEMAS_PATH.glob("asdf-schema-*.yaml")) def test_asdf_schema(path): assert_yaml_header_and_footer(path) # Asserting no exceptions here load_yaml(path) @pytest.mark.parametrize("path", SCHEMAS_PATH.glob("asdf-schema-*.yaml")) def test_nested_object_validation(path, create_validator): """ Test that the validations are applied to nested objects. """ metaschema = load_yaml(path) validator = create_validator(metaschema) schema = {"$schema": metaschema["id"], "type": "object", "properties": {"foo": {"datatype": "float32"}}} # No error here validator.validate(schema) schema = {"$schema": metaschema["id"], "type": "object", "properties": {"foo": {"datatype": "banana"}}} with pytest.raises(ValidationError, match="'banana' is not valid"): validator.validate(schema) schema = { "$schema": metaschema["id"], "type": "array", "items": {"type": "object", "properties": {"foo": {"ndim": "twelve"}}}, } with pytest.raises(ValidationError): validator.validate(schema) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/tests/test_core.py0000644000175100001710000000065114274323033017415 0ustar00runnerdockerimport pytest from common import SCHEMAS_PATH, list_latest_schema_paths, list_schema_paths @pytest.mark.parametrize("path", list_schema_paths(SCHEMAS_PATH / "core")) def test_core(path, assert_schema_correct): assert_schema_correct(path) @pytest.mark.parametrize("path", list_latest_schema_paths(SCHEMAS_PATH / "core")) def test_core_latest(path, assert_latest_schema_correct): assert_latest_schema_correct(path) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/tests/test_docs.py0000644000175100001710000000556414274323033017425 0ustar00runnerdockerimport collections from common import is_deprecated EXCEPTIONS = { "tag:stsci.edu:asdf/asdf-schema-1.0.0", "asdf://asdf-format.org/core/manifests/:schema_root: ../../resources/manifests", "asdf://asdf-format.org/core/manifests/:standard_prefix: asdf-format.org/core", } def test_docs_schema_links( latest_schema_ids, legacy_schema_ids, manifest_ids, docs_schema_ids, docs_legacy_schema_ids, docs_manifest_ids ): """ Confirm that the latest versions of all non-deprecated schemas are represented in the documentation. """ expected_schema_ids = set() for schema_id in latest_schema_ids: if not is_deprecated(schema_id): expected_schema_ids.add(schema_id) extra_legacy_docs_ids = set(docs_legacy_schema_ids) - legacy_schema_ids - EXCEPTIONS if len(extra_legacy_docs_ids) > 0: remove_list = "\n".join(sorted(list(extra_legacy_docs_ids))) message = ( "Only the legacy documentation should link to old versions of schemas. " "Remove or update the following links: \n" f"{remove_list}" ) assert False, message extra_docs_ids = set(docs_schema_ids) - expected_schema_ids - EXCEPTIONS - set(docs_legacy_schema_ids) if len(extra_docs_ids) > 0: remove_list = "\n".join(sorted(list(extra_docs_ids))) message = ( "The main documentation should not link to old versions of schemas. " "Remove or update the following links to the legacy documentation: \n" f"{remove_list}" ) assert False, message missing_docs_ids = expected_schema_ids - set(docs_schema_ids) - EXCEPTIONS if len(missing_docs_ids) > 0: insert_list = "\n".join(sorted(list(missing_docs_ids))) message = ( "The documentation must include a link to the latest version of " "every non-deprecated schema with a tag. Update the deprecation " "list in tests/common.py, or add links to the following missing schemas: \n" f"{insert_list}" ) assert False, message missing_manifest_docs_ids = manifest_ids - set(docs_manifest_ids) - EXCEPTIONS if len(missing_manifest_docs_ids) > 0: print(missing_manifest_docs_ids) insert_list = "\n".join(sorted(list(missing_manifest_docs_ids))) message = ( "The documentation must include a link to every version of the asdf-standard" "manifest. Please add the following links to the documentation: \n" f"{insert_list}" ) assert False, message counter = collections.Counter(docs_schema_ids) if max(counter.values()) > 1: remove_list = "\n".join(sorted([tag for tag, count in counter.items() if count > 1])) message = "The documentation contains duplicate links to the following schemas: \n" f"{remove_list}" assert False, message ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/tests/test_fits.py0000644000175100001710000000065114274323033017432 0ustar00runnerdockerimport pytest from common import SCHEMAS_PATH, list_latest_schema_paths, list_schema_paths @pytest.mark.parametrize("path", list_schema_paths(SCHEMAS_PATH / "fits")) def test_fits(path, assert_schema_correct): assert_schema_correct(path) @pytest.mark.parametrize("path", list_latest_schema_paths(SCHEMAS_PATH / "fits")) def test_fits_latest(path, assert_latest_schema_correct): assert_latest_schema_correct(path) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/tests/test_integration.py0000644000175100001710000000322314274323033021006 0ustar00runnerdockerfrom pathlib import Path import asdf import pytest import yaml def get_resources(): resources_root = Path(__file__).parent.parent / "resources" return {str(path.relative_to(resources_root)): path for path in resources_root.glob("**/*.yaml")} RESOURCES = get_resources() @pytest.mark.parametrize("resource", RESOURCES) def test_resource(resource): resource_path = RESOURCES[resource] resource_manager = asdf.get_config().resource_manager with resource_path.open("rb") as f: resource_content = f.read() resource = yaml.safe_load(resource_content) if "version_map" not in str(resource_path.stem): resource_uri = resource["id"] assert resource_manager[resource_uri] == resource_content def get_manifests(): manifests_root = Path(__file__).parent.parent / "resources" / "manifests" / "asdf-format.org" return {str(path.relative_to(manifests_root)): path for path in manifests_root.glob("**/*.yaml")} MANIFESTS = get_manifests() @pytest.mark.parametrize("manifest", MANIFESTS) def test_manifest(manifest): manifest_path = MANIFESTS[manifest] resource_manager = asdf.get_config().resource_manager with manifest_path.open("rb") as f: manifest_content = f.read() manifest = yaml.safe_load(manifest_content) manifest_schema = asdf.schema.load_schema("asdf://asdf-format.org/core/schemas/extension_manifest-1.0.0") # The manifest must be valid against its own schema: asdf.schema.validate(manifest, schema=manifest_schema) for tag_definition in manifest["tags"]: # The tag's schema must be available: assert tag_definition["schema_uri"] in resource_manager ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/tests/test_manifests.py0000644000175100001710000000235214274323033020456 0ustar00runnerdockerimport asdf import pytest from common import MANIFESTS_PATH, RESOURCES_PATH, load_yaml MANIFEST_PATHS = sorted(MANIFESTS_PATH.glob("*.yaml")) MANIFEST_SCHEMA_PATH = RESOURCES_PATH / "schemas" / "asdf-format.org" / "core" / "extension_manifest-1.0.0.yaml" MANIFEST_SCHEMA_ID = "asdf://asdf-format.org/core/schemas/extension_manifest-1.0.0" @pytest.mark.parametrize("path", MANIFEST_PATHS) def test_manifest(path, tag_to_schema): manifest = load_yaml(path) with asdf.config_context() as config: config.add_resource_mapping({MANIFEST_SCHEMA_ID: MANIFEST_SCHEMA_PATH.read_bytes()}) manifest_schema = asdf.schema.load_schema(MANIFEST_SCHEMA_ID) asdf.schema.validate(manifest, schema=manifest_schema) assert "title" in manifest assert "description" in manifest for tag in manifest["tags"]: if ( "time" not in tag["tag_uri"] and "core" not in tag["tag_uri"] and "unit" not in tag["tag_uri"] and "wcs" not in tag["tag_uri"] ): assert tag["tag_uri"] in tag_to_schema schema = tag_to_schema[tag["tag_uri"]][0] assert tag["schema_uri"] == schema["id"] assert "title" in tag assert "description" in tag ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/tests/test_resource.py0000644000175100001710000001664314274323033020324 0ustar00runnerdockerimport io import sys from collections.abc import Mapping from pathlib import Path if sys.version_info < (3, 9): import importlib_resources as importlib else: import importlib from asdf_standard import DirectoryResourceMapping def test_directory_resource_mapping(tmpdir): tmpdir.mkdir("schemas") (tmpdir / "schemas").mkdir("nested") with (tmpdir / "schemas" / "foo-1.2.3.yaml").open("w") as f: f.write("id: http://somewhere.org/schemas/foo-1.2.3\n") with (tmpdir / "schemas" / "nested" / "bar-4.5.6.yaml").open("w") as f: f.write("id: http://somewhere.org/schemas/nested/bar-4.5.6\n") with (tmpdir / "schemas" / "baz-7.8.9").open("w") as f: f.write("id: http://somewhere.org/schemas/baz-7.8.9\n") mapping = DirectoryResourceMapping(str(tmpdir / "schemas"), "http://somewhere.org/schemas") assert isinstance(mapping, Mapping) assert len(mapping) == 1 assert set(mapping) == {"http://somewhere.org/schemas/foo-1.2.3"} assert "http://somewhere.org/schemas/foo-1.2.3" in mapping assert b"http://somewhere.org/schemas/foo-1.2.3" in mapping["http://somewhere.org/schemas/foo-1.2.3"] assert "http://somewhere.org/schemas/baz-7.8.9" not in mapping assert "http://somewhere.org/schemas/baz-7.8" not in mapping assert "http://somewhere.org/schemas/foo-1.2.3.yaml" not in mapping assert "http://somewhere.org/schemas/nested/bar-4.5.6" not in mapping mapping = DirectoryResourceMapping(str(tmpdir / "schemas"), "http://somewhere.org/schemas", recursive=True) assert len(mapping) == 2 assert set(mapping) == {"http://somewhere.org/schemas/foo-1.2.3", "http://somewhere.org/schemas/nested/bar-4.5.6"} assert "http://somewhere.org/schemas/foo-1.2.3" in mapping assert b"http://somewhere.org/schemas/foo-1.2.3" in mapping["http://somewhere.org/schemas/foo-1.2.3"] assert "http://somewhere.org/schemas/baz-7.8.9" not in mapping assert "http://somewhere.org/schemas/baz-7.8" not in mapping assert "http://somewhere.org/schemas/nested/bar-4.5.6" in mapping assert b"http://somewhere.org/schemas/nested/bar-4.5.6" in mapping["http://somewhere.org/schemas/nested/bar-4.5.6"] mapping = DirectoryResourceMapping( str(tmpdir / "schemas"), "http://somewhere.org/schemas", recursive=True, filename_pattern="baz-*", stem_filename=False, ) assert len(mapping) == 1 assert set(mapping) == {"http://somewhere.org/schemas/baz-7.8.9"} assert "http://somewhere.org/schemas/foo-1.2.3" not in mapping assert "http://somewhere.org/schemas/baz-7.8.9" in mapping assert b"http://somewhere.org/schemas/baz-7.8.9" in mapping["http://somewhere.org/schemas/baz-7.8.9"] assert "http://somewhere.org/schemas/nested/bar-4.5.6" not in mapping # Check that the repr is reasonable # Need to be careful checking the path string because # pathlib normalizes Windows paths. assert repr(Path(str(tmpdir / "schemas"))) in repr(mapping) assert "http://somewhere.org/schemas" in repr(mapping) assert "recursive=True" in repr(mapping) assert "filename_pattern='baz-*'" in repr(mapping) assert "stem_filename=False" in repr(mapping) # Make sure trailing slash is handled correctly mapping = DirectoryResourceMapping(str(tmpdir / "schemas"), "http://somewhere.org/schemas/") assert len(mapping) == 1 assert set(mapping) == {"http://somewhere.org/schemas/foo-1.2.3"} assert "http://somewhere.org/schemas/foo-1.2.3" in mapping assert b"http://somewhere.org/schemas/foo-1.2.3" in mapping["http://somewhere.org/schemas/foo-1.2.3"] def test_directory_resource_mapping_with_traversable(): """ Confirm that DirectoryResourceMapping doesn't use pathlib.Path methods outside of the Traversable interface. """ class MockTraversable(importlib.abc.Traversable): def __init__(self, name, value): self._name = name self._value = value def iterdir(self): if isinstance(self._value, dict): for key, child in self._value.items(): yield MockTraversable(key, child) def read_bytes(self): if not isinstance(self._value, bytes): raise RuntimeError("Not a file") return self._value def read_text(self, encoding="utf-8"): return self.read_bytes().decode(encoding) def is_dir(self): return isinstance(self._value, dict) def is_file(self): return self._value is not None and not isinstance(self._value, dict) def joinpath(self, child): if isinstance(self._value, dict): child_value = self._value.get(child) else: child_value = None return MockTraversable(child, child_value) def __truediv__(self, child): return self.joinpath(child) def open(self, mode="r", *args, **kwargs): if not self.is_file(): raise RuntimeError("Not a file") if mode == "r": return io.TextIOWrapper(io.BytesIO(self._value), *args, **kwargs) elif mode == "rb": return io.BytesIO(self._value) else: raise "Not a valid mode" @property def name(self): return self._name root = MockTraversable( "/path/to/some/root", {"foo-1.0.0.yaml": b"foo", "bar-1.0.0.yaml": b"bar", "baz-1.0.0": b"baz", "nested": {"foz-1.0.0.yaml": b"foz"}}, ) mapping = DirectoryResourceMapping(root, "http://somewhere.org/schemas") assert len(mapping) == 2 assert set(mapping) == {"http://somewhere.org/schemas/foo-1.0.0", "http://somewhere.org/schemas/bar-1.0.0"} assert "http://somewhere.org/schemas/foo-1.0.0" in mapping assert mapping["http://somewhere.org/schemas/foo-1.0.0"] == b"foo" assert "http://somewhere.org/schemas/bar-1.0.0" in mapping assert mapping["http://somewhere.org/schemas/bar-1.0.0"] == b"bar" assert "http://somewhere.org/schemas/baz-1.0.0" not in mapping assert "http://somewhere.org/schemas/nested/foz-1.0.0" not in mapping mapping = DirectoryResourceMapping(root, "http://somewhere.org/schemas", recursive=True) assert len(mapping) == 3 assert set(mapping) == { "http://somewhere.org/schemas/foo-1.0.0", "http://somewhere.org/schemas/bar-1.0.0", "http://somewhere.org/schemas/nested/foz-1.0.0", } assert "http://somewhere.org/schemas/foo-1.0.0" in mapping assert mapping["http://somewhere.org/schemas/foo-1.0.0"] == b"foo" assert "http://somewhere.org/schemas/bar-1.0.0" in mapping assert mapping["http://somewhere.org/schemas/bar-1.0.0"] == b"bar" assert "http://somewhere.org/schemas/baz-1.0.0" not in mapping assert "http://somewhere.org/schemas/nested/foz-1.0.0" in mapping assert mapping["http://somewhere.org/schemas/nested/foz-1.0.0"] == b"foz" mapping = DirectoryResourceMapping( root, "http://somewhere.org/schemas", filename_pattern="baz-*", stem_filename=False ) assert len(mapping) == 1 assert set(mapping) == {"http://somewhere.org/schemas/baz-1.0.0"} assert "http://somewhere.org/schemas/foo-1.0.0" not in mapping assert "http://somewhere.org/schemas/bar-1.0.0" not in mapping assert "http://somewhere.org/schemas/baz-1.0.0" in mapping assert mapping["http://somewhere.org/schemas/baz-1.0.0"] == b"baz" assert "http://somewhere.org/schemas/nested/foz-1.0.0" not in mapping ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/tests/test_time.py0000644000175100001710000000065114274323033017423 0ustar00runnerdockerimport pytest from common import SCHEMAS_PATH, list_latest_schema_paths, list_schema_paths @pytest.mark.parametrize("path", list_schema_paths(SCHEMAS_PATH / "time")) def test_time(path, assert_schema_correct): assert_schema_correct(path) @pytest.mark.parametrize("path", list_latest_schema_paths(SCHEMAS_PATH / "time")) def test_time_latest(path, assert_latest_schema_correct): assert_latest_schema_correct(path) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/tests/test_unit.py0000644000175100001710000000065114274323033017444 0ustar00runnerdockerimport pytest from common import SCHEMAS_PATH, list_latest_schema_paths, list_schema_paths @pytest.mark.parametrize("path", list_schema_paths(SCHEMAS_PATH / "unit")) def test_unit(path, assert_schema_correct): assert_schema_correct(path) @pytest.mark.parametrize("path", list_latest_schema_paths(SCHEMAS_PATH / "unit")) def test_unit_latest(path, assert_latest_schema_correct): assert_latest_schema_correct(path) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/tests/test_version_map.py0000644000175100001710000000760014274323033021010 0ustar00runnerdockerimport re import pytest from common import ( VALID_FILE_FORMAT_VERSIONS, VALID_YAML_VERSIONS, VERSION_MAP_PATHS, assert_yaml_header_and_footer, is_deprecated, load_yaml, path_to_id, split_id, ) from packaging.version import Version VALID_FILENAME_RE = re.compile(r"version_map-[0-9]+\.[0-9]+\.[0-9]+\.yaml") SORTED_PATHS = sorted(VERSION_MAP_PATHS, key=lambda p: Version(split_id(path_to_id(p))[1])) LATEST_PATH = SORTED_PATHS[-1] @pytest.mark.parametrize("path", VERSION_MAP_PATHS) def test_version_map(path, schema_tags): assert VALID_FILENAME_RE.match(path.name) is not None, f"{path.name} is an invalid version map filename" assert_yaml_header_and_footer(path) vm = load_yaml(path) assert set(vm.keys()) == {"FILE_FORMAT", "YAML_VERSION", "tags"} assert vm["FILE_FORMAT"] in VALID_FILE_FORMAT_VERSIONS assert vm["YAML_VERSION"] in VALID_YAML_VERSIONS for tag_base, tag_version in vm["tags"].items(): tag = f"{tag_base}-{tag_version}" if "time" not in tag and "core" not in tag and "unit" not in tag and "wcs" not in tag: assert tag in schema_tags, f"{path.name} specifies missing tag {tag}" assert len(vm["tags"].keys()) == len(set(vm["tags"].keys())), f"{path.name} contains duplicate tags" sorted_tags = sorted(list(vm["tags"].keys())) if sorted_tags != list(vm["tags"].keys()): sorted_list = "\n".join([f"""{tag}: {vm["tags"][tag]}""" for tag in sorted_tags]) message = f"{path.name} tag list is not sorted. Try this order instead:\n{sorted_list}" assert False, message def test_latest_version_map(latest_schema_tags): """ The current latest version map has some special requirements. """ vm = load_yaml(LATEST_PATH) tag_base_to_version = dict([tag.rsplit("-", 1) for tag in latest_schema_tags]) expected_tag_bases = set([t for t in tag_base_to_version.keys() if not is_deprecated(t)]) vm_tag_bases = set(vm["tags"].keys()) if not expected_tag_bases.issubset(vm_tag_bases): missing_tag_bases = expected_tag_bases - vm_tag_bases insert_list = "\n".join( sorted(f"""{tag_base}-{tag_base_to_version[tag_base]}""" for tag_base in missing_tag_bases) ) message = ( f"{LATEST_PATH.name} must include the latest version of " "every non-deprecated schema with a tag. Update the deprecation " "list in tests/common.py, or add the following missing schemas: \n" f"{insert_list}" ) assert False, message incorrect_tag_bases = sorted([tag for tag in expected_tag_bases if vm["tags"][tag] != tag_base_to_version[tag]]) if len(incorrect_tag_bases) > 0: update_list = "\n".join( [f"""{tag}: {vm["tags"][tag]} --> {tag_base_to_version[tag]}""" for tag in incorrect_tag_bases] ) message = ( f"{LATEST_PATH.name} must include the latest version of " "every non-deprecated schema with a tag. Update the following: \n" f"{update_list}" ) assert False, message @pytest.mark.parametrize("path, previous_path", zip(SORTED_PATHS[1:], SORTED_PATHS[0:-1])) def test_version_map_tags_retained(path, previous_path): """ Confirm that non-deprecated tags were not lost between successive version maps. """ vm = load_yaml(path) prev_vm = load_yaml(previous_path) expected_tags = set([t for t in prev_vm["tags"].keys() if not is_deprecated(t)]) tags = set(vm["tags"].keys()) if not expected_tags.issubset(tags): missing_tags = expected_tags - tags assert False, ( f"{path.name} is missing schemas that were present in the " "previous version. If this was intentional, update the deprecation " "list in tests/common.py, otherwise add the following missing schemas: " f"""{", ".join(missing_tags)}""" ) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/tests/test_wcs.py0000644000175100001710000000105714274323033017262 0ustar00runnerdocker""" The WCS schemas are deprecated, but we need to continue testing them to ensure that older versions of the standard are supported. """ import pytest from common import SCHEMAS_PATH, list_latest_schema_paths, list_schema_paths @pytest.mark.parametrize("path", list_schema_paths(SCHEMAS_PATH / "wcs")) def test_wcs(path, assert_schema_correct): assert_schema_correct(path) @pytest.mark.parametrize("path", list_latest_schema_paths(SCHEMAS_PATH / "wcs")) def test_wcs_latest(path, assert_latest_schema_correct): assert_latest_schema_correct(path) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/tests/test_yaml_schema.py0000644000175100001710000000234614274323033020752 0ustar00runnerdockerimport pytest from common import YAML_SCHEMA_PATH, assert_yaml_header_and_footer, list_schema_paths, load_yaml from jsonschema import ValidationError @pytest.mark.parametrize("path", list_schema_paths(YAML_SCHEMA_PATH)) def test_yaml_schema(path): assert_yaml_header_and_footer(path) # Asserting no exceptions here load_yaml(path) @pytest.mark.parametrize("path", YAML_SCHEMA_PATH.glob("*.yaml")) def test_nested_object_validation(path, create_validator): """ Test that the validations are applied to nested objects. """ metaschema = load_yaml(path) validator = create_validator(metaschema) schema = {"$schema": metaschema["id"], "type": "object", "properties": {"foo": {"flowStyle": "block"}}} # No error here validator.validate(schema) schema = {"$schema": metaschema["id"], "type": "object", "properties": {"foo": {"flowStyle": "funky"}}} with pytest.raises(ValidationError, match="'funky' is not one of"): validator.validate(schema) schema = { "$schema": metaschema["id"], "type": "array", "items": {"type": "object", "properties": {"foo": {"propertyOrder": "a,b,c,d"}}}, } with pytest.raises(ValidationError): validator.validate(schema) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1660003867.0 asdf_standard-1.0.3/tox.ini0000644000175100001710000000140114274323033015217 0ustar00runnerdocker[tox] envlist = py39, black, flake8, docs, codestyle isolated_build = True [testenv] extras = test commands = pytest [testenv:twine] deps= twine commands= twine check {distdir}/* [testenv:black] deps = black commands= black --check setup.py src docs tests scripts [testenv:flake8] deps = flake8 commands = flake8 --count [testenv:docs] extras = docs changedir = docs whitelist_externals = make commands = make html [testenv:bandit] deps= bandit commands= bandit -r -ll src [testenv:codestyle] skip_install = true description = Run all style and file checks with pre-commit deps = pre-commit commands = pre-commit install-hooks pre-commit run {posargs:--color always --all-files --show-diff-on-failure}