confit.draft
MetaDraft
Bases: type
A metaclass for Draft that allows the user to create specify the type the Draft should become when instantiated.
In addition to allowing static typing, this metaclass also provides a way to validate the Draft object when used in combination with pydantic validation.
Examples:
from confit import Draft
@validate_arguments
def make_hi(name, prefix) -> str:
return prefix + " " + name
@validate_arguments
def print_hi(param: Draft[str]):
val = param.instantiate(prefix="Hello")
print(val)
print_hi(make_hi.draft(name="John"))
Source code in confit/draft.py
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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
|
Draft
Bases: Generic[R]
A Draft is a placeholder for a value that has not been instantiated yet, likely because it is missing an argument that will be provided later by the library.
Source code in confit/draft.py
137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 |
|
instantiate(**kwargs)
Finalize the Draft object into an instance of the expected type using the provided arguments. The new arguments are merged with the existing ones, with the old ones taking precedence. The rationale for this is that the user makes the Draft, and the library completes any missing arguments.
Source code in confit/draft.py
151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 |
|