{"id":32178589,"url":"https://github.com/asdf-format/asdf","last_synced_at":"2026-04-01T18:48:09.758Z","repository":{"id":15381282,"uuid":"18112754","full_name":"asdf-format/asdf","owner":"asdf-format","description":"ASDF (Advanced Scientific Data Format) is a next generation interchange format for scientific data","archived":false,"fork":false,"pushed_at":"2026-03-24T21:43:48.000Z","size":6807,"stargazers_count":555,"open_issues_count":78,"forks_count":63,"subscribers_count":23,"default_branch":"main","last_synced_at":"2026-03-28T18:27:19.630Z","etag":null,"topics":["advanced-scientific-data-format","asdf","astronomy","astropy","jwst"],"latest_commit_sha":null,"homepage":"http://asdf.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/asdf-format.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.rst","codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2014-03-25T19:00:43.000Z","updated_at":"2026-03-24T21:43:53.000Z","dependencies_parsed_at":"2023-11-07T03:12:09.719Z","dependency_job_id":"74fafb50-8d78-4491-856e-f6fe6e0b07c9","html_url":"https://github.com/asdf-format/asdf","commit_stats":{"total_commits":2531,"total_committers":53,"mean_commits":47.75471698113208,"dds":0.7641248518372185,"last_synced_commit":"961f341a04fdf2529026424f0aeb002484dadaec"},"previous_names":["spacetelescope/asdf","spacetelescope/pyasdf"],"tags_count":127,"template":false,"template_full_name":null,"purl":"pkg:github/asdf-format/asdf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asdf-format%2Fasdf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asdf-format%2Fasdf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asdf-format%2Fasdf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asdf-format%2Fasdf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/asdf-format","download_url":"https://codeload.github.com/asdf-format/asdf/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asdf-format%2Fasdf/sbom","scorecard":{"id":211169,"data":{"date":"2025-08-11","repo":{"name":"github.com/asdf-format/asdf","commit":"6197b4c8505cdbaa1e4076566becc6af17877e89"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.1,"checks":[{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/benchmark.yml:1","Warn: no topLevel permission defined: .github/workflows/build.yml:1","Warn: no topLevel permission defined: .github/workflows/changelog.yml:1","Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Warn: no topLevel permission defined: .github/workflows/downstream.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/benchmark.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/asdf-format/asdf/benchmark.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/benchmark.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/asdf-format/asdf/benchmark.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/benchmark.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/asdf-format/asdf/benchmark.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/asdf-format/asdf/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/changelog.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/asdf-format/asdf/changelog.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/changelog.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/asdf-format/asdf/changelog.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/asdf-format/asdf/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:96: update your workflow using https://app.stepsecurity.io/secureworkflow/asdf-format/asdf/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:134: update your workflow using https://app.stepsecurity.io/secureworkflow/asdf-format/asdf/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:63: update your workflow using https://app.stepsecurity.io/secureworkflow/asdf-format/asdf/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:74: update your workflow using https://app.stepsecurity.io/secureworkflow/asdf-format/asdf/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:85: update your workflow using https://app.stepsecurity.io/secureworkflow/asdf-format/asdf/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:114: update your workflow using https://app.stepsecurity.io/secureworkflow/asdf-format/asdf/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/asdf-format/asdf/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/asdf-format/asdf/ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/asdf-format/asdf/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/ci.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/asdf-format/asdf/ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/downstream.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/asdf-format/asdf/downstream.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/downstream.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/asdf-format/asdf/downstream.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/downstream.yml:51: update your workflow using https://app.stepsecurity.io/secureworkflow/asdf-format/asdf/downstream.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/downstream.yml:66: update your workflow using https://app.stepsecurity.io/secureworkflow/asdf-format/asdf/downstream.yml/main?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/benchmark.yml:41","Warn: pipCommand not pinned by hash: .github/workflows/changelog.yml:28","Warn: pipCommand not pinned by hash: .github/workflows/changelog.yml:29","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  15 third-party GitHubAction dependencies pinned","Info:   0 out of   3 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":3,"reason":"7 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2018-34 / GHSA-2fc2-6r4j-p65h","Warn: Project is vulnerable to: PYSEC-2021-856 / GHSA-5545-2q6w-2gh6","Warn: Project is vulnerable to: PYSEC-2019-108 / GHSA-9fq2-x9r6-wfmf","Warn: Project is vulnerable to: PYSEC-2018-33 / GHSA-cw6w-4rcx-xphc","Warn: Project is vulnerable to: PYSEC-2021-857 / GHSA-f7c7-j99h-c22f","Warn: Project is vulnerable to: GHSA-fpfv-jqm9-f5jm","Warn: Project is vulnerable to: PYSEC-2017-1 / GHSA-frgw-fgh6-9g52"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T00:47:32.012Z","repository_id":15381282,"created_at":"2025-08-17T00:47:32.013Z","updated_at":"2025-08-17T00:47:32.013Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31172567,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-29T21:28:10.185Z","status":"online","status_checked_at":"2026-03-30T02:00:06.831Z","response_time":138,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["advanced-scientific-data-format","asdf","astronomy","astropy","jwst"],"created_at":"2025-10-21T20:58:10.766Z","updated_at":"2026-04-01T18:48:09.740Z","avatar_url":"https://github.com/asdf-format.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"ASDF - Advanced Scientific Data Format\n======================================\n\n.. _begin-badges:\n\n.. image:: https://github.com/asdf-format/asdf/workflows/CI/badge.svg\n    :target: https://github.com/asdf-format/asdf/actions\n    :alt: CI Status\n\n.. image:: https://github.com/asdf-format/asdf/workflows/Downstream/badge.svg\n    :target: https://github.com/asdf-format/asdf/actions\n    :alt: Downstream CI Status\n\n.. image:: https://readthedocs.org/projects/asdf/badge/?version=latest\n    :target: https://asdf.readthedocs.io/en/latest/\n\n.. image:: https://codecov.io/gh/asdf-format/asdf/branch/main/graphs/badge.svg\n    :target: https://codecov.io/gh/asdf-format/asdf\n\n.. _begin-zenodo:\n\n.. image:: https://zenodo.org/badge/18112754.svg\n    :target: https://zenodo.org/badge/latestdoi/18112754\n\n.. _end-zenodo:\n\n.. image:: https://img.shields.io/pypi/l/asdf.svg\n    :target: https://img.shields.io/pypi/l/asdf.svg\n\n.. image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white\n    :target: https://github.com/pre-commit/pre-commit\n    :alt: pre-commit\n\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n    :target: https://github.com/psf/black\n\n.. _end-badges:\n\n.. _begin-summary-text:\n\nThe **A**\\ dvanced **S**\\ cientific **D**\\ ata **F**\\ ormat (ASDF) is a\nnext-generation interchange format for scientific data. This package\ncontains the Python implementation of the ASDF specification. More\ninformation on the ASDF file format including the specification can be found\n`here \u003chttps://asdf-standard.readthedocs.io\u003e`__.\n\nThe ASDF format has the following features:\n\n* Hierarchical and human-readable metadata in `YAML \u003chttp://yaml.org\u003e`__ format\n* Efficient binary array storage with support for memory mapping\n  and flexible compression.\n* Content validation using schemas (using `JSON Schema \u003chttp://json-schema.org\u003e`__)\n* Native and transparent support for most basic Python data types,\n  with an extension API to add support for any custom Python object.\n\n.. _end-summary-text:\n\nASDF is under active development `on github\n\u003chttps://github.com/asdf-format/asdf\u003e`__. More information on contributing\ncan be found `below \u003c#contributing\u003e`__.\n\nOverview\n--------\n\nThis section outlines basic use cases of the ASDF package for creating\nand reading ASDF files.\n\nCreating a file\n~~~~~~~~~~~~~~~\n\n.. _begin-create-file-text:\n\nWe're going to store several `numpy` arrays and other data to an ASDF file. We\ndo this by creating a \"tree\", which is simply a `dict`, and we provide it as\ninput to the constructor of `AsdfFile`:\n\n.. code:: python\n\n    import asdf\n    import numpy as np\n\n    # Create some data\n    sequence = np.arange(100)\n    squares = sequence**2\n    random = np.random.random(100)\n\n    # Store the data in an arbitrarily nested dictionary\n    tree = {\n        \"foo\": 42,\n        \"name\": \"Monty\",\n        \"sequence\": sequence,\n        \"powers\": {\"squares\": squares},\n        \"random\": random,\n    }\n\n    # Create the ASDF file object from our data tree\n    af = asdf.AsdfFile(tree)\n\n    # Write the data to a new file\n    af.write_to(\"example.asdf\")\n\nIf we open the newly created file's metadata section, we can see some of the key features\nof ASDF on display:\n\n.. _begin-example-asdf-metadata:\n\n.. code:: yaml\n\n    #ASDF 1.0.0\n    #ASDF_STANDARD 1.2.0\n    %YAML 1.1\n    %TAG ! tag:stsci.edu:asdf/\n    --- !core/asdf-1.1.0\n    asdf_library: !core/software-1.0.0 {author: The ASDF Developers, homepage: 'http://github.com/asdf-format/asdf',\n      name: asdf, version: 2.0.0}\n    history:\n      extensions:\n      - !core/extension_metadata-1.0.0\n        extension_class: asdf.extension.BuiltinExtension\n        software: {name: asdf, version: 2.0.0}\n    foo: 42\n    name: Monty\n    powers:\n      squares: !core/ndarray-1.0.0\n        source: 1\n        datatype: int64\n        byteorder: little\n        shape: [100]\n    random: !core/ndarray-1.0.0\n      source: 2\n      datatype: float64\n      byteorder: little\n      shape: [100]\n    sequence: !core/ndarray-1.0.0\n      source: 0\n      datatype: int64\n      byteorder: little\n      shape: [100]\n    ...\n\n.. _end-example-asdf-metadata:\n\nThe metadata in the file mirrors the structure of the tree that was stored. It\nis hierarchical and human-readable. Notice that metadata has been added to the\ntree that was not explicitly given by the user. Notice also that the numerical\narray data is not stored in the metadata tree itself. Instead, it is stored as\nbinary data blocks below the metadata section (not shown above).\n\n.. _end-create-file-text:\n.. _begin-compress-file:\n\nIt is possible to compress the array data when writing the file:\n\n.. code:: python\n\n    af.write_to(\"compressed.asdf\", all_array_compression=\"zlib\")\n\nThe built-in compression algorithms are ``'zlib'``, and ``'bzp2'``.  The\n``'lz4'`` algorithm becomes available when the `lz4 \u003chttps://python-lz4.readthedocs.io/\u003e`__ package\nis installed.  Other compression algorithms may be available via extensions.\n\n.. _end-compress-file:\n\nReading a file\n~~~~~~~~~~~~~~\n\n.. _begin-read-file-text:\n\nTo read an existing ASDF file, we simply use the top-level `open` function of\nthe `asdf` package:\n\n.. code:: python\n\n    import asdf\n\n    af = asdf.open(\"example.asdf\")\n\nThe `open` function also works as a context handler:\n\n.. code:: python\n\n    with asdf.open(\"example.asdf\") as af:\n        ...\n\n.. warning::\n    The ``memmap`` argument replaces ``copy_arrays`` as of ASDF 4.0\n    (``memmap == not copy_arrays``).\n\nTo get a quick overview of the data stored in the file, use the top-level\n`AsdfFile.info()` method:\n\n.. code:: pycon\n\n    \u003e\u003e\u003e import asdf\n    \u003e\u003e\u003e af = asdf.open(\"example.asdf\")\n    \u003e\u003e\u003e af.info()\n    root (AsdfObject)\n    ├─asdf_library (Software)\n    │ ├─author (str): The ASDF Developers\n    │ ├─homepage (str): http://github.com/asdf-format/asdf\n    │ ├─name (str): asdf\n    │ └─version (str): 2.8.0\n    ├─history (dict)\n    │ └─extensions (list)\n    │   └─[0] (ExtensionMetadata)\n    │     ├─extension_class (str): asdf.extension.BuiltinExtension\n    │     └─software (Software)\n    │       ├─name (str): asdf\n    │       └─version (str): 2.8.0\n    ├─foo (int): 42\n    ├─name (str): Monty\n    ├─powers (dict)\n    │ └─squares (NDArrayType): shape=(100,), dtype=int64\n    ├─random (NDArrayType): shape=(100,), dtype=float64\n    └─sequence (NDArrayType): shape=(100,), dtype=int64\n\nThe `AsdfFile` behaves like a Python `dict`, and nodes are accessed like\nany other dictionary entry:\n\n.. code:: pycon\n\n    \u003e\u003e\u003e af[\"name\"]\n    'Monty'\n    \u003e\u003e\u003e af[\"powers\"]\n    {'squares': \u003carray (unloaded) shape: [100] dtype: int64\u003e}\n\nArray data remains unloaded until it is explicitly accessed:\n\n.. code:: pycon\n\n    \u003e\u003e\u003e af[\"powers\"][\"squares\"]\n    array([   0,    1,    4,    9,   16,   25,   36,   49,   64,   81,  100,\n            121,  144,  169,  196,  225,  256,  289,  324,  361,  400,  441,\n            484,  529,  576,  625,  676,  729,  784,  841,  900,  961, 1024,\n           1089, 1156, 1225, 1296, 1369, 1444, 1521, 1600, 1681, 1764, 1849,\n           1936, 2025, 2116, 2209, 2304, 2401, 2500, 2601, 2704, 2809, 2916,\n           3025, 3136, 3249, 3364, 3481, 3600, 3721, 3844, 3969, 4096, 4225,\n           4356, 4489, 4624, 4761, 4900, 5041, 5184, 5329, 5476, 5625, 5776,\n           5929, 6084, 6241, 6400, 6561, 6724, 6889, 7056, 7225, 7396, 7569,\n           7744, 7921, 8100, 8281, 8464, 8649, 8836, 9025, 9216, 9409, 9604,\n           9801])\n\n    \u003e\u003e\u003e import numpy as np\n    \u003e\u003e\u003e expected = [x**2 for x in range(100)]\n    \u003e\u003e\u003e np.equal(af[\"powers\"][\"squares\"], expected).all()\n    True\n\nMemory mapping can be enabled by providing ``memmap=True``\nto `open`:\n\n.. code:: python\n\n    af = asdf.open(\"example.asdf\", memmap=True)\n\n.. _end-read-file-text:\n\nFor more information and for advanced usage examples, see the\n`documentation \u003c#documentation\u003e`__.\n\nExtending ASDF\n~~~~~~~~~~~~~~\n\nOut of the box, the ``asdf`` package automatically serializes and\ndeserializes native Python types. It is possible to extend ``asdf`` by\nimplementing custom tags that correspond to custom user types. More\ninformation on extending ASDF can be found in the `official\ndocumentation \u003chttp://asdf.readthedocs.io/en/latest/#extending-asdf\u003e`__.\n\nInstallation\n------------\n\n.. _begin-pip-install-text:\n\nStable releases of the ASDF Python package are registered `at\nPyPi \u003chttps://pypi.python.org/pypi/asdf\u003e`__. The latest stable version\ncan be installed using ``pip``:\n\n::\n\n    $ pip install asdf\n\n.. _begin-source-install-text:\n\nThe latest development version of ASDF is available from the ``main`` branch\n`on github \u003chttps://github.com/asdf-format/asdf\u003e`__. To clone the project:\n\n::\n\n    $ git clone https://github.com/asdf-format/asdf\n\nTo install:\n\n::\n\n    $ cd asdf\n    $ pip install .\n\nTo install in `development\nmode \u003chttps://packaging.python.org/tutorials/distributing-packages/#working-in-development-mode\u003e`__::\n\n    $ pip install -e .\n\n.. _end-source-install-text:\n\nTesting\n-------\n\n.. _begin-testing-text:\n\nTo install the test dependencies from a source checkout of the repository:\n\n::\n\n    $ pip install -e \".[tests]\"\n\nTo run the unit tests from a source checkout of the repository:\n\n::\n\n    $ pytest\n\nIt is also possible to run the test suite from an installed version of\nthe package.\n\n::\n\n    $ pip install \"asdf[tests]\"\n    $ pytest --pyargs asdf\n\nIt is also possible to run the tests using `tox\n\u003chttps://tox.readthedocs.io/en/latest/\u003e`__.\n\n::\n\n   $ pip install tox\n\nTo list all available environments:\n\n::\n\n   $ tox -va\n\nTo run a specific environment:\n\n::\n\n   $ tox -e \u003cenvname\u003e\n\n\n.. _end-testing-text:\n\nDocumentation\n-------------\n\nMore detailed documentation on this software package can be found\n`here \u003chttps://asdf.readthedocs.io\u003e`__.\n\nMore information on the ASDF file format itself can be found\n`here \u003chttps://asdf-standard.readthedocs.io\u003e`__.\n\nThere are two mailing lists for ASDF:\n\n* `asdf-users \u003chttps://groups.google.com/forum/#!forum/asdf-users\u003e`_\n* `asdf-developers \u003chttps://groups.google.com/forum/#!forum/asdf-developers\u003e`_\n\n    If you are looking for the **A**\\ daptable **S**\\ eismic **D**\\ ata\n    **F**\\ ormat, information can be found\n    `here \u003chttps://seismic-data.org/\u003e`__.\n\nLicense\n-------\n\nASDF is licensed under a BSD 3-clause style license. See `LICENSE.rst \u003cLICENSE.rst\u003e`_\nfor the `licenses folder \u003clicenses\u003e`_ for\nlicenses for any included software.\n\nContributing\n------------\n\nWe welcome feedback and contributions to the project. Contributions of\ncode, documentation, or general feedback are all appreciated. Please\nfollow the `contributing guidelines \u003cCONTRIBUTING.rst\u003e`__ to submit an\nissue or a pull request.\n\nWe strive to provide a welcoming community to all of our users by\nabiding to the `Code of Conduct \u003cCODE_OF_CONDUCT.md\u003e`__.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasdf-format%2Fasdf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fasdf-format%2Fasdf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasdf-format%2Fasdf/lists"}