openai/openai-python
Publicmirrored from https://github.com/openai/openai-pythonAvailable
openai/api_resources/abstract/singleton_api_resource.py
24lines · modecode
| 1 | from __future__ import absolute_import, division, print_function |
| 2 | |
| 3 | from openai.api_resources.abstract.api_resource import APIResource |
| 4 | |
| 5 | |
| 6 | class SingletonAPIResource(APIResource): |
| 7 | @classmethod |
| 8 | def retrieve(cls, **params): |
| 9 | return super(SingletonAPIResource, cls).retrieve(None, **params) |
| 10 | |
| 11 | @classmethod |
| 12 | def class_url(cls): |
| 13 | if cls == SingletonAPIResource: |
| 14 | raise NotImplementedError( |
| 15 | "SingletonAPIResource is an abstract class. You should " |
| 16 | "perform actions on its subclasses (e.g. Balance)" |
| 17 | ) |
| 18 | # Namespaces are separated in object names with periods (.) and in URLs |
| 19 | # with forward slashes (/), so replace the former with the latter. |
| 20 | base = cls.OBJECT_NAME.replace(".", "/") # type: ignore |
| 21 | return "/v1/%s" % (base,) |
| 22 | |
| 23 | def instance_url(self): |
| 24 | return self.class_url() |
| 25 | |