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.
Files changed (40) hide show
  1. {vo_models-0.4.2.dev0/vo_models.egg-info → vo_models-0.4.3.dev0}/PKG-INFO +5 -2
  2. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/README.md +2 -0
  3. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/pyproject.toml +1 -1
  4. vo_models-0.4.3.dev0/vo_models/registry_interfaces/__init__.py +8 -0
  5. vo_models-0.4.3.dev0/vo_models/registry_interfaces/models.py +47 -0
  6. vo_models-0.4.3.dev0/vo_models/voregistry/__init__.py +14 -0
  7. vo_models-0.4.3.dev0/vo_models/voregistry/models.py +99 -0
  8. vo_models-0.4.3.dev0/vo_models/voregistry/types.py +20 -0
  9. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/voresource/__init__.py +1 -1
  10. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/voresource/models.py +26 -26
  11. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0/vo_models.egg-info}/PKG-INFO +5 -2
  12. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models.egg-info/SOURCES.txt +5 -0
  13. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/LICENSE +0 -0
  14. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/setup.cfg +0 -0
  15. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/__init__.py +0 -0
  16. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/adql/__init__.py +0 -0
  17. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/adql/misc.py +0 -0
  18. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/py.typed +0 -0
  19. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/stc/__init__.py +0 -0
  20. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/stc/models.py +0 -0
  21. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/tapregext/__init__.py +0 -0
  22. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/tapregext/models.py +0 -0
  23. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/uws/__init__.py +0 -0
  24. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/uws/models.py +0 -0
  25. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/uws/types.py +0 -0
  26. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/vodataservice/__init__.py +0 -0
  27. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/vodataservice/models.py +0 -0
  28. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/voresource/types.py +0 -0
  29. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/vosi/__init__.py +0 -0
  30. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/vosi/availability/__init__.py +0 -0
  31. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/vosi/availability/models.py +0 -0
  32. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/vosi/capabilities/__init__.py +0 -0
  33. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/vosi/capabilities/models.py +0 -0
  34. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/vosi/tables/__init__.py +0 -0
  35. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/vosi/tables/models.py +0 -0
  36. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/xlink/__init__.py +0 -0
  37. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models/xlink/xlink.py +0 -0
  38. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models.egg-info/dependency_links.txt +0 -0
  39. {vo_models-0.4.2.dev0 → vo_models-0.4.3.dev0}/vo_models.egg-info/requires.txt +0 -0
  40. {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
1
+ Metadata-Version: 2.4
2
2
  Name: vo-models
3
- Version: 0.4.2.dev0
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
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "vo-models"
7
- version = "0.4.2.dev0"
7
+ version = "0.4.3.dev0"
8
8
  authors = [
9
9
  {name = "Joshua Fraustro", email="jfraustro@stsci.edu"},
10
10
  {name = "MAST Archive Developers", email="archive@stsci.edu"}
@@ -0,0 +1,8 @@
1
+ """IVOA Registry Interfaces v1.0 Pydantic-XML models"""
2
+
3
+ from vo_models.registry_interfaces.models import (Resource, VOResources)
4
+
5
+ __all__ = [
6
+ "Resource",
7
+ "VOResources",
8
+ ]
@@ -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
- """IVOA VOResource-v1.1.xsd pydantic-xml models"""
1
+ """IVOA VOResource v1.1 pydantic-xml models"""
2
2
 
3
3
  from vo_models.voresource.models import (
4
4
  AccessURL,
@@ -1,4 +1,4 @@
1
- """Pydantic-xml models for IVOA schema VOResource-v1.1.xsd"""
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
1
+ Metadata-Version: 2.4
2
2
  Name: vo-models
3
- Version: 0.4.2.dev0
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