File: tree.py

package info (click to toggle)
python-asdf 4.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 7,032 kB
  • sloc: python: 24,068; makefile: 123
file content (71 lines) | stat: -rw-r--r-- 1,930 bytes parent folder | download | duplicates (3)
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
from asdf.extension import Converter


class AsdfObjectConverter(Converter):
    # Since AsdfObject is just a dict, we're able to use the same converter
    # for both tag versions.
    tags = [
        "tag:stsci.edu:asdf/core/asdf-1.0.0",
        "tag:stsci.edu:asdf/core/asdf-1.1.0",
    ]
    types = ["asdf.tags.core.AsdfObject"]

    def to_yaml_tree(self, obj, tag, ctx):
        return dict(obj)

    def from_yaml_tree(self, node, tag, ctx):
        from asdf.tags.core import AsdfObject

        return AsdfObject(node)


class ExtensionMetadataConverter(Converter):
    tags = ["tag:stsci.edu:asdf/core/extension_metadata-1.0.0"]
    types = ["asdf.tags.core.ExtensionMetadata"]

    def to_yaml_tree(self, obj, tag, ctx):
        return dict(obj)

    def from_yaml_tree(self, node, tag, ctx):
        from asdf.tags.core import ExtensionMetadata

        return ExtensionMetadata(node)


class HistoryEntryConverter(Converter):
    tags = ["tag:stsci.edu:asdf/core/history_entry-1.0.0"]
    types = ["asdf.tags.core.HistoryEntry"]

    def to_yaml_tree(self, obj, tag, ctx):
        return dict(obj)

    def from_yaml_tree(self, node, tag, ctx):
        from asdf.tags.core import HistoryEntry

        return HistoryEntry(node)


class SoftwareConverter(Converter):
    tags = ["tag:stsci.edu:asdf/core/software-1.0.0"]
    types = ["asdf.tags.core.Software"]

    def to_yaml_tree(self, obj, tag, ctx):
        return dict(obj)

    def from_yaml_tree(self, node, tag, ctx):
        from asdf.tags.core import Software

        return Software(node)


class SubclassMetadataConverter(Converter):
    tags = ["tag:stsci.edu:asdf/core/subclass_metadata-1.0.0"]
    types = ["asdf.tags.core.SubclassMetadata"]

    def to_yaml_tree(self, obj, tag, ctx):
        return dict(obj)

    def from_yaml_tree(self, node, tag, ctx):
        from asdf.tags.core import SubclassMetadata

        return SubclassMetadata(node)