vo-models 0.4.2.dev0__tar.gz → 0.4.3.dev0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {vo_models-0.4.2.dev0/vo_models.egg-info → vo_models-0.4.3.dev0}/PKG-INFO +5 -2
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/README.md +2 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/pyproject.toml +1 -1
- vo_models-0.4.3.dev0/vo_models/registry_interfaces/__init__.py +8 -0
- vo_models-0.4.3.dev0/vo_models/registry_interfaces/models.py +47 -0
- vo_models-0.4.3.dev0/vo_models/voregistry/__init__.py +14 -0
- vo_models-0.4.3.dev0/vo_models/voregistry/models.py +99 -0
- vo_models-0.4.3.dev0/vo_models/voregistry/types.py +20 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/voresource/__init__.py +1 -1
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/voresource/models.py +26 -26
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0/vo_models.egg-info}/PKG-INFO +5 -2
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models.egg-info/SOURCES.txt +5 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/LICENSE +0 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/setup.cfg +0 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/__init__.py +0 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/adql/__init__.py +0 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/adql/misc.py +0 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/py.typed +0 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/stc/__init__.py +0 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/stc/models.py +0 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/tapregext/__init__.py +0 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/tapregext/models.py +0 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/uws/__init__.py +0 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/uws/models.py +0 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/uws/types.py +0 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/vodataservice/__init__.py +0 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/vodataservice/models.py +0 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/voresource/types.py +0 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/vosi/__init__.py +0 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/vosi/availability/__init__.py +0 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/vosi/availability/models.py +0 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/vosi/capabilities/__init__.py +0 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/vosi/capabilities/models.py +0 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/vosi/tables/__init__.py +0 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/vosi/tables/models.py +0 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/xlink/__init__.py +0 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/xlink/xlink.py +0 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models.egg-info/dependency_links.txt +0 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models.egg-info/requires.txt +0 -0
- {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: vo-models
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.3.dev0
|
|
4
4
|
Summary: Pydantic data models for IVOA protocols
|
|
5
5
|
Author-email: Joshua Fraustro <jfraustro@stsci.edu>, MAST Archive Developers <archive@stsci.edu>
|
|
6
6
|
Project-URL: Homepage, https://github.com/spacetelescope/vo-models
|
|
@@ -28,6 +28,7 @@ Requires-Dist: furo; extra == "docs"
|
|
|
28
28
|
Requires-Dist: sphinx-copybutton; extra == "docs"
|
|
29
29
|
Requires-Dist: toml; extra == "docs"
|
|
30
30
|
Requires-Dist: sphinx_autodoc_typehints; extra == "docs"
|
|
31
|
+
Dynamic: license-file
|
|
31
32
|
|
|
32
33
|
# vo-models
|
|
33
34
|
|
|
@@ -61,6 +62,8 @@ The following IVOA protocols are currently supported:
|
|
|
61
62
|
- others
|
|
62
63
|
- **VOResource version 1.1**
|
|
63
64
|
- **TAPRegExt version 1.0**
|
|
65
|
+
- **VORegistry 1.1**
|
|
66
|
+
- **RegistryInterfaces version 1.0**
|
|
64
67
|
|
|
65
68
|
You can read more about using these models in our documentation: https://vo-models.readthedocs.io/
|
|
66
69
|
|
|
@@ -30,6 +30,8 @@ The following IVOA protocols are currently supported:
|
|
|
30
30
|
- others
|
|
31
31
|
- **VOResource version 1.1**
|
|
32
32
|
- **TAPRegExt version 1.0**
|
|
33
|
+
- **VORegistry 1.1**
|
|
34
|
+
- **RegistryInterfaces version 1.0**
|
|
33
35
|
|
|
34
36
|
You can read more about using these models in our documentation: https://vo-models.readthedocs.io/
|
|
35
37
|
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"""VORegistryInterfaces v1.0 Pydantic-XML models"""
|
|
2
|
+
from pydantic import model_validator
|
|
3
|
+
from pydantic_xml import BaseXmlModel, attr, element
|
|
4
|
+
|
|
5
|
+
import vo_models.voresource as vr
|
|
6
|
+
|
|
7
|
+
NSMAP = {
|
|
8
|
+
"ri": "http://www.ivoa.net/xml/RegistryInterface/v1.0",
|
|
9
|
+
"vr": "http://www.ivoa.net/xml/VOResource/v1.0",
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class Resource(vr.Resource, ns="ri", nsmap=NSMAP):
|
|
14
|
+
"""A description of a single resource."""
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class VOResources(BaseXmlModel):
|
|
18
|
+
"""A container for one or more resource descriptions or identifier references to resources.
|
|
19
|
+
|
|
20
|
+
Parameters:
|
|
21
|
+
resource:
|
|
22
|
+
(element) - One or more resource descriptions.
|
|
23
|
+
identifier:
|
|
24
|
+
(element) - One or more identifier references to resources.
|
|
25
|
+
from:
|
|
26
|
+
(attribute) - The starting number of resources to return.
|
|
27
|
+
number_returned:
|
|
28
|
+
(attribute) - The number of resources returned in the response.
|
|
29
|
+
more:
|
|
30
|
+
(attribute) - Indicates whether there are more resources available.
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
resource: list[Resource] = element(tag="Resource", default=[])
|
|
34
|
+
identifier: list[vr.IdentifierURI] = element(tag="identifier", default=[])
|
|
35
|
+
|
|
36
|
+
# positive ints
|
|
37
|
+
from_: int = attr(name="from", alias="from", gt=0)
|
|
38
|
+
number_returned: int = attr(name="numberReturned", gt=0)
|
|
39
|
+
more: bool = attr(name="more")
|
|
40
|
+
|
|
41
|
+
@model_validator(mode="before")
|
|
42
|
+
@classmethod
|
|
43
|
+
def check_resource_or_identifier(cls, values):
|
|
44
|
+
"""Ensure that either 'resource' or 'identifier' is provided."""
|
|
45
|
+
if values.get("resource") and values.get("identifier"):
|
|
46
|
+
raise ValueError("Either 'resource' or 'identifier' must be provided.")
|
|
47
|
+
return values
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"""IVOA VORegistry-v1.1 pydantic-xml models"""
|
|
2
|
+
|
|
3
|
+
from vo_models.voregistry.types import ExtensionSearchSupport, OptionalProtocol
|
|
4
|
+
from vo_models.voregistry.models import Registry, Harvest, Search, OAIHTTP, OAISOAP
|
|
5
|
+
|
|
6
|
+
__all__ = [
|
|
7
|
+
"ExtensionSearchSupport",
|
|
8
|
+
"OptionalProtocol",
|
|
9
|
+
"Registry",
|
|
10
|
+
"Harvest",
|
|
11
|
+
"Search",
|
|
12
|
+
"OAIHTTP",
|
|
13
|
+
"OAISOAP",
|
|
14
|
+
]
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"""Pydantic-xml models for IVOA schema VORegistry 1.1"""
|
|
2
|
+
|
|
3
|
+
from typing import Optional, Literal
|
|
4
|
+
|
|
5
|
+
from pydantic_xml import element, attr
|
|
6
|
+
|
|
7
|
+
import vo_models.vodataservice as vs
|
|
8
|
+
import vo_models.voresource as vr
|
|
9
|
+
from vo_models.voregistry.types import ExtensionSearchSupport, OptionalProtocol
|
|
10
|
+
|
|
11
|
+
NSMAP = {
|
|
12
|
+
"vr": "http://www.ivoa.net/xml/VOResource/v1.0",
|
|
13
|
+
"vg": "http://www.ivoa.net/xml/VORegistry/v1.0",
|
|
14
|
+
"vs": "http://www.ivoa.net/xml/VODataService/v1.1",
|
|
15
|
+
"xsi": "http://www.w3.org/2001/XMLSchema-instance",
|
|
16
|
+
"ri": "http://www.ivoa.net/xml/RegistryInterface/v1.0"
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class OAIHTTP(vr.Interface, nsmap=NSMAP):
|
|
21
|
+
"""A description of the standard OAI PMH interface using HTTP (GET or POST) queries."""
|
|
22
|
+
|
|
23
|
+
type: Literal["vg:OAIHTTP"] = attr(ns="xsi", default="vg:OAIHTTP")
|
|
24
|
+
|
|
25
|
+
class OAISOAP(vr.WebService, nsmap=NSMAP):
|
|
26
|
+
"""A description of the standard OAI PMH interface using a SOAP Web Service interface."""
|
|
27
|
+
|
|
28
|
+
type: Literal["vg:OAISOAP"] = attr(ns="xsi", default="vg:OAISOAP")
|
|
29
|
+
|
|
30
|
+
class Registry(vr.Service, tag="Resource", nsmap=NSMAP, ns="ri"):
|
|
31
|
+
"""A service that provides access to descriptions of resources.
|
|
32
|
+
|
|
33
|
+
Parameters:
|
|
34
|
+
full:
|
|
35
|
+
(element) - If true, this registry attempts to collect all resource records known to the IVOA.
|
|
36
|
+
managed_authority:
|
|
37
|
+
(element) - An authority identifier managed by the registry.
|
|
38
|
+
tableset:
|
|
39
|
+
(element) - For registry interfaces with a user-visible table structure, tableset allows its declaration.
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
full: bool = element(ns="")
|
|
43
|
+
type: Literal["vg:Registry"] = attr(ns="xsi", default="vg:Registry")
|
|
44
|
+
managed_authority: Optional[list[vr.AuthorityID]] = element(tag="managedAuthority", default=[], ns="")
|
|
45
|
+
tableset: Optional[vs.TableSet] = element(tag="tableset", default=None, ns="")
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class Harvest(vr.Capability, nsmap=NSMAP):
|
|
49
|
+
"""The capabilities of the Registry Harvest implementation.
|
|
50
|
+
|
|
51
|
+
Parameters:
|
|
52
|
+
max_records:
|
|
53
|
+
(element) - The largest number of records that the registry search method will return.
|
|
54
|
+
type:
|
|
55
|
+
(attribute) - The type of the capability, which is always "vg:Harvest".
|
|
56
|
+
standard_id:
|
|
57
|
+
(attribute) - The standard ID of the capability, which is always "ivo://ivoa.net/std/Registry".
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
max_records: int = element(tag="maxRecords")
|
|
61
|
+
type: Literal["vg:Harvest"] = attr(ns="xsi", default="vg:Harvest")
|
|
62
|
+
standard_id: Literal["ivo://ivoa.net/std/Registry"] = attr(name="standardID", default="ivo://ivoa.net/std/Registry")
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class Search(vr.Capability, nsmap=NSMAP):
|
|
66
|
+
"""The capabilities of the Registry Search implementation.
|
|
67
|
+
|
|
68
|
+
Parameters:
|
|
69
|
+
max_records:
|
|
70
|
+
(element) - The largest number of records that the registry search method will return.
|
|
71
|
+
type:
|
|
72
|
+
(attribute) - The type of the capability, which is always "vg:Search".
|
|
73
|
+
standard_id:
|
|
74
|
+
(attribute) - The standard ID of the capability, which is always "ivo://ivoa.net/std/Registry".
|
|
75
|
+
extension_search_support:
|
|
76
|
+
(element) - (deprecated) Used in Registry Interfaces 1.0 to indicate what VOResource extensions a
|
|
77
|
+
search interface supported.
|
|
78
|
+
optional_protocol:
|
|
79
|
+
(element) - (deprecated) Used in Registry Interfaces 1.0 to indicate search protocol extensions.
|
|
80
|
+
"""
|
|
81
|
+
|
|
82
|
+
max_records: int = element(tag="maxRecords")
|
|
83
|
+
type: Literal["vg:Search"] = attr(ns="xsi", default="vg:Search")
|
|
84
|
+
standard_id: Literal["ivo://ivoa.net/std/Registry"] = attr(name="standardID", default="ivo://ivoa.net/std/Registry")
|
|
85
|
+
extension_search_support: Optional[ExtensionSearchSupport] = element(tag="extensionSearchSupport", default=None)
|
|
86
|
+
optional_protocol: Optional[list[OptionalProtocol]] = element(tag="optionalProtocol", default=[])
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
class Authority(vr.Resource, tag="Resource", nsmap=NSMAP, ns="ri"):
|
|
90
|
+
"""A naming authority; an assertion of control over a namespace represented by an authority identifier.
|
|
91
|
+
|
|
92
|
+
type:
|
|
93
|
+
(attribute) - The type of the authority, which is always "vg:Authority".
|
|
94
|
+
managing_org:
|
|
95
|
+
(element) - The organization that manages or owns this authority.
|
|
96
|
+
"""
|
|
97
|
+
|
|
98
|
+
type: Literal["vg:Authority"] = attr(ns="xsi", default="vg:Authority")
|
|
99
|
+
managing_org: vr.ResourceName = element(tag="managingOrg", default="")
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"""Simple types for the VO Registry 1.1 specification"""
|
|
2
|
+
|
|
3
|
+
from enum import Enum
|
|
4
|
+
|
|
5
|
+
class ExtensionSearchSupport(str, Enum):
|
|
6
|
+
"""Used in Registry Interfaces 1.0 to denote what VOResource extensions a search interface supports."""
|
|
7
|
+
|
|
8
|
+
CORE = "core"
|
|
9
|
+
"""Only searches against the core VOResource metadata are supported."""
|
|
10
|
+
PARTIAL = "partial"
|
|
11
|
+
"""Searches against some VOResource extension metadata are supported, but not necessarily all that exist
|
|
12
|
+
in the registry."""
|
|
13
|
+
FULL = "full"
|
|
14
|
+
"""Searches against all VOResource extension metadata contained in the registry are supported."""
|
|
15
|
+
|
|
16
|
+
class OptionalProtocol(str, Enum):
|
|
17
|
+
"""Used in Registry Interfaces 1.0 to denote search protocol extensions."""
|
|
18
|
+
|
|
19
|
+
XQUERY = "XQuery"
|
|
20
|
+
"""The xquery protocol as defined in VO Registry Interface standard."""
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""Pydantic-xml models for IVOA schema VOResource
|
|
1
|
+
"""Pydantic-xml models for IVOA schema VOResource v1.1"""
|
|
2
2
|
import datetime
|
|
3
3
|
from typing import Literal, Optional
|
|
4
4
|
|
|
@@ -18,7 +18,7 @@ NSMAP = {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
class Validation(BaseXmlModel, nsmap=NSMAP):
|
|
21
|
+
class Validation(BaseXmlModel, ns="", nsmap=NSMAP):
|
|
22
22
|
"""A validation stamp combining a validation level and the ID of the validator.
|
|
23
23
|
|
|
24
24
|
Parameters:
|
|
@@ -41,7 +41,7 @@ class Validation(BaseXmlModel, nsmap=NSMAP):
|
|
|
41
41
|
return values
|
|
42
42
|
|
|
43
43
|
|
|
44
|
-
class ResourceName(BaseXmlModel, nsmap=NSMAP):
|
|
44
|
+
class ResourceName(BaseXmlModel, ns="", nsmap=NSMAP):
|
|
45
45
|
"""The name of a potentially registered resource.
|
|
46
46
|
|
|
47
47
|
That is, the entity referred to may have an associated identifier.
|
|
@@ -53,11 +53,11 @@ class ResourceName(BaseXmlModel, nsmap=NSMAP):
|
|
|
53
53
|
(content) - The name of the resource.
|
|
54
54
|
"""
|
|
55
55
|
|
|
56
|
-
value: str
|
|
56
|
+
value: Optional[str] = ""
|
|
57
57
|
ivo_id: Optional[IdentifierURI] = attr(name="ivo-id", default=None)
|
|
58
58
|
|
|
59
59
|
|
|
60
|
-
class Date(BaseXmlModel, nsmap=NSMAP):
|
|
60
|
+
class Date(BaseXmlModel, ns="", nsmap=NSMAP):
|
|
61
61
|
"""A string indicating what the date refers to.
|
|
62
62
|
|
|
63
63
|
The value of role should be taken from the vocabulary maintained at http://www.ivoa.net/rdf/voresource/date_role.
|
|
@@ -75,7 +75,7 @@ class Date(BaseXmlModel, nsmap=NSMAP):
|
|
|
75
75
|
)
|
|
76
76
|
|
|
77
77
|
|
|
78
|
-
class Source(BaseXmlModel, nsmap=NSMAP):
|
|
78
|
+
class Source(BaseXmlModel, ns="", nsmap=NSMAP):
|
|
79
79
|
"""A bibliographic reference from which the present resource is derived or extracted.
|
|
80
80
|
|
|
81
81
|
Parameters:
|
|
@@ -90,7 +90,7 @@ class Source(BaseXmlModel, nsmap=NSMAP):
|
|
|
90
90
|
format: Optional[str] = attr(name="format", default=None)
|
|
91
91
|
|
|
92
92
|
|
|
93
|
-
class Rights(BaseXmlModel, nsmap=NSMAP):
|
|
93
|
+
class Rights(BaseXmlModel, ns="", nsmap=NSMAP):
|
|
94
94
|
"""A statement of usage conditions.
|
|
95
95
|
|
|
96
96
|
This will typically include a license, which should be given as a full string
|
|
@@ -107,7 +107,7 @@ class Rights(BaseXmlModel, nsmap=NSMAP):
|
|
|
107
107
|
rights_uri: Optional[networks.AnyUrl] = attr(name="rightsURI", default=None)
|
|
108
108
|
|
|
109
109
|
|
|
110
|
-
class AccessURL(BaseXmlModel, nsmap=NSMAP):
|
|
110
|
+
class AccessURL(BaseXmlModel, ns="", nsmap=NSMAP):
|
|
111
111
|
"""The URL (or base URL) that a client uses to access the service.
|
|
112
112
|
|
|
113
113
|
Parameters:
|
|
@@ -122,7 +122,7 @@ class AccessURL(BaseXmlModel, nsmap=NSMAP):
|
|
|
122
122
|
use: Literal["full", "base", "dir"] = attr(name="use")
|
|
123
123
|
|
|
124
124
|
|
|
125
|
-
class MirrorURL(BaseXmlModel, nsmap=NSMAP):
|
|
125
|
+
class MirrorURL(BaseXmlModel, ns="", nsmap=NSMAP):
|
|
126
126
|
"""A URL of a mirror (i.e., a functionally identical additional service interface) to
|
|
127
127
|
|
|
128
128
|
Parameters:
|
|
@@ -136,7 +136,7 @@ class MirrorURL(BaseXmlModel, nsmap=NSMAP):
|
|
|
136
136
|
title: Optional[str] = attr(name="title", default=None)
|
|
137
137
|
|
|
138
138
|
|
|
139
|
-
class Contact(BaseXmlModel, nsmap=NSMAP):
|
|
139
|
+
class Contact(BaseXmlModel, ns="", nsmap=NSMAP):
|
|
140
140
|
"""Information allowing establishing contact, e.g., for purposes of support.
|
|
141
141
|
|
|
142
142
|
Parameters:
|
|
@@ -175,7 +175,7 @@ class Contact(BaseXmlModel, nsmap=NSMAP):
|
|
|
175
175
|
return values
|
|
176
176
|
|
|
177
177
|
|
|
178
|
-
class Creator(BaseXmlModel, nsmap=NSMAP):
|
|
178
|
+
class Creator(BaseXmlModel, ns="", nsmap=NSMAP):
|
|
179
179
|
"""The entity (e.g. person or organisation) primarily responsible for creating something
|
|
180
180
|
|
|
181
181
|
Parameters:
|
|
@@ -208,7 +208,7 @@ class Creator(BaseXmlModel, nsmap=NSMAP):
|
|
|
208
208
|
return values
|
|
209
209
|
|
|
210
210
|
|
|
211
|
-
class Relationship(BaseXmlModel, nsmap=NSMAP):
|
|
211
|
+
class Relationship(BaseXmlModel, ns="", nsmap=NSMAP):
|
|
212
212
|
"""A description of the relationship between one resource and one or more other resources.
|
|
213
213
|
|
|
214
214
|
Parameters:
|
|
@@ -225,7 +225,7 @@ class Relationship(BaseXmlModel, nsmap=NSMAP):
|
|
|
225
225
|
related_resource: list[ResourceName] = element(tag="relatedResource")
|
|
226
226
|
|
|
227
227
|
|
|
228
|
-
class SecurityMethod(BaseXmlModel, nsmap=NSMAP):
|
|
228
|
+
class SecurityMethod(BaseXmlModel, ns="", nsmap=NSMAP):
|
|
229
229
|
"""A description of a security mechanism.
|
|
230
230
|
|
|
231
231
|
This type only allows one to refer to the mechanism via a URI. Derived types would allow for more metadata.
|
|
@@ -238,7 +238,7 @@ class SecurityMethod(BaseXmlModel, nsmap=NSMAP):
|
|
|
238
238
|
standard_id: Optional[networks.AnyUrl] = attr(name="standardID", default=None)
|
|
239
239
|
|
|
240
240
|
|
|
241
|
-
class Curation(BaseXmlModel, nsmap=NSMAP):
|
|
241
|
+
class Curation(BaseXmlModel, ns="", nsmap=NSMAP):
|
|
242
242
|
"""Information regarding the general curation of a resource
|
|
243
243
|
|
|
244
244
|
Parameters:
|
|
@@ -265,7 +265,7 @@ class Curation(BaseXmlModel, nsmap=NSMAP):
|
|
|
265
265
|
contact: list[Contact] = element(tag="contact")
|
|
266
266
|
|
|
267
267
|
|
|
268
|
-
class Content(BaseXmlModel, nsmap=NSMAP):
|
|
268
|
+
class Content(BaseXmlModel, ns="", nsmap=NSMAP):
|
|
269
269
|
"""Information regarding the general content of a resource
|
|
270
270
|
|
|
271
271
|
Parameters:
|
|
@@ -299,7 +299,7 @@ class Content(BaseXmlModel, nsmap=NSMAP):
|
|
|
299
299
|
relationship: Optional[list[Relationship]] = element(tag="relationship", default_factory=list)
|
|
300
300
|
|
|
301
301
|
|
|
302
|
-
class Interface(BaseXmlModel, tag="interface", nsmap=NSMAP):
|
|
302
|
+
class Interface(BaseXmlModel, ns="", tag="interface", nsmap=NSMAP):
|
|
303
303
|
"""A description of a service interface.
|
|
304
304
|
|
|
305
305
|
Since this type is abstract, one must use an Interface subclass to describe an actual interface denoting
|
|
@@ -334,13 +334,13 @@ class Interface(BaseXmlModel, tag="interface", nsmap=NSMAP):
|
|
|
334
334
|
test_querystring: Optional[str] = element(tag="testQueryString", default=None)
|
|
335
335
|
|
|
336
336
|
|
|
337
|
-
class WebBrowser(Interface, nsmap=NSMAP):
|
|
337
|
+
class WebBrowser(Interface, ns="", nsmap=NSMAP):
|
|
338
338
|
"""A (form-based) interface intended to be accesed interactively by a user via a web browser."""
|
|
339
339
|
|
|
340
340
|
type: Literal["vr:WebBrowser"] = attr(name="type", default="vr:WebBrowser", ns="xsi")
|
|
341
341
|
|
|
342
342
|
|
|
343
|
-
class WebService(Interface, nsmap=NSMAP):
|
|
343
|
+
class WebService(Interface, ns="", nsmap=NSMAP):
|
|
344
344
|
"""A Web Service that is describable by a WSDL document.
|
|
345
345
|
|
|
346
346
|
The accessURL element gives the Web Service's endpoint URL.
|
|
@@ -355,7 +355,7 @@ class WebService(Interface, nsmap=NSMAP):
|
|
|
355
355
|
wsdl_url: Optional[list[networks.AnyUrl]] = element(tag="wsdlURL", default_factory=list)
|
|
356
356
|
|
|
357
357
|
|
|
358
|
-
class Resource(BaseXmlModel, nsmap=NSMAP):
|
|
358
|
+
class Resource(BaseXmlModel, ns="", nsmap=NSMAP):
|
|
359
359
|
"""Any entity or component of a VO application that is describable and
|
|
360
360
|
identifiable by an IVOA Identifier.
|
|
361
361
|
|
|
@@ -393,10 +393,10 @@ class Resource(BaseXmlModel, nsmap=NSMAP):
|
|
|
393
393
|
version: Optional[str] = attr(name="version", default=None)
|
|
394
394
|
|
|
395
395
|
validation_level: Optional[list[Validation]] = element(tag="validationLevel", default_factory=list)
|
|
396
|
-
title: str = element(tag="title")
|
|
397
|
-
short_name: Optional[str] = element(tag="shortName", default=None)
|
|
398
|
-
identifier: networks.AnyUrl = element(tag="identifier")
|
|
399
|
-
alt_identifier: Optional[list[networks.AnyUrl]] = element(tag="altIdentifier", default_factory=list)
|
|
396
|
+
title: str = element(tag="title", ns="")
|
|
397
|
+
short_name: Optional[str] = element(tag="shortName", default=None, ns="")
|
|
398
|
+
identifier: networks.AnyUrl = element(tag="identifier", ns="")
|
|
399
|
+
alt_identifier: Optional[list[networks.AnyUrl]] = element(tag="altIdentifier", default_factory=list, ns="")
|
|
400
400
|
curation: Curation = element(tag="curation")
|
|
401
401
|
content: Content = element(tag="content")
|
|
402
402
|
|
|
@@ -415,7 +415,7 @@ class Resource(BaseXmlModel, nsmap=NSMAP):
|
|
|
415
415
|
return values
|
|
416
416
|
|
|
417
417
|
|
|
418
|
-
class Organisation(Resource, nsmap=NSMAP):
|
|
418
|
+
class Organisation(Resource, ns="", nsmap=NSMAP):
|
|
419
419
|
"""A named group of one or more persons brought together to pursue participation in VO applications.
|
|
420
420
|
|
|
421
421
|
Parameters:
|
|
@@ -430,7 +430,7 @@ class Organisation(Resource, nsmap=NSMAP):
|
|
|
430
430
|
instrument: Optional[list[ResourceName]] = element(tag="instrument", default_factory=list)
|
|
431
431
|
|
|
432
432
|
|
|
433
|
-
class Capability(BaseXmlModel, tag="capability", nsmap=NSMAP):
|
|
433
|
+
class Capability(BaseXmlModel, ns="", tag="capability", nsmap=NSMAP):
|
|
434
434
|
"""A description of what the service does (in terms of context-specific behavior), and how to use it
|
|
435
435
|
(in terms of an interface)
|
|
436
436
|
|
|
@@ -458,7 +458,7 @@ class Capability(BaseXmlModel, tag="capability", nsmap=NSMAP):
|
|
|
458
458
|
interface: Optional[list[Interface]] = element(tag="interface", default_factory=list)
|
|
459
459
|
|
|
460
460
|
|
|
461
|
-
class Service(Resource, nsmap=NSMAP):
|
|
461
|
+
class Service(Resource, ns="", nsmap=NSMAP):
|
|
462
462
|
"""A resource that can be invoked by a client to perform some action on its behalf.
|
|
463
463
|
|
|
464
464
|
Parameters:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: vo-models
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.3.dev0
|
|
4
4
|
Summary: Pydantic data models for IVOA protocols
|
|
5
5
|
Author-email: Joshua Fraustro <jfraustro@stsci.edu>, MAST Archive Developers <archive@stsci.edu>
|
|
6
6
|
Project-URL: Homepage, https://github.com/spacetelescope/vo-models
|
|
@@ -28,6 +28,7 @@ Requires-Dist: furo; extra == "docs"
|
|
|
28
28
|
Requires-Dist: sphinx-copybutton; extra == "docs"
|
|
29
29
|
Requires-Dist: toml; extra == "docs"
|
|
30
30
|
Requires-Dist: sphinx_autodoc_typehints; extra == "docs"
|
|
31
|
+
Dynamic: license-file
|
|
31
32
|
|
|
32
33
|
# vo-models
|
|
33
34
|
|
|
@@ -61,6 +62,8 @@ The following IVOA protocols are currently supported:
|
|
|
61
62
|
- others
|
|
62
63
|
- **VOResource version 1.1**
|
|
63
64
|
- **TAPRegExt version 1.0**
|
|
65
|
+
- **VORegistry 1.1**
|
|
66
|
+
- **RegistryInterfaces version 1.0**
|
|
64
67
|
|
|
65
68
|
You can read more about using these models in our documentation: https://vo-models.readthedocs.io/
|
|
66
69
|
|
|
@@ -10,6 +10,8 @@ vo_models.egg-info/requires.txt
|
|
|
10
10
|
vo_models.egg-info/top_level.txt
|
|
11
11
|
vo_models/adql/__init__.py
|
|
12
12
|
vo_models/adql/misc.py
|
|
13
|
+
vo_models/registry_interfaces/__init__.py
|
|
14
|
+
vo_models/registry_interfaces/models.py
|
|
13
15
|
vo_models/stc/__init__.py
|
|
14
16
|
vo_models/stc/models.py
|
|
15
17
|
vo_models/tapregext/__init__.py
|
|
@@ -19,6 +21,9 @@ vo_models/uws/models.py
|
|
|
19
21
|
vo_models/uws/types.py
|
|
20
22
|
vo_models/vodataservice/__init__.py
|
|
21
23
|
vo_models/vodataservice/models.py
|
|
24
|
+
vo_models/voregistry/__init__.py
|
|
25
|
+
vo_models/voregistry/models.py
|
|
26
|
+
vo_models/voregistry/types.py
|
|
22
27
|
vo_models/voresource/__init__.py
|
|
23
28
|
vo_models/voresource/models.py
|
|
24
29
|
vo_models/voresource/types.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|