Skip to content

Commit

Permalink
Fix codegen due to internal API change
Browse files Browse the repository at this point in the history
  • Loading branch information
fantix committed Jul 18, 2024
1 parent 7141d3c commit 2ebc55c
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 18 deletions.
16 changes: 16 additions & 0 deletions edgedb/abstract.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,22 @@ class DescribeContext:
output_format: protocol.OutputFormat
expect_one: bool

def lower(
self, *, allow_capabilities: enums.Capability
) -> protocol.ExecuteContext:
return protocol.ExecuteContext(
query=self.query,
args=None,
kwargs=None,
reg=protocol.CodecsRegistry(),
qc=protocol.LRUMapping(maxsize=1),
output_format=self.output_format,
expect_one=self.expect_one,
inline_typenames=self.inject_type_names,
allow_capabilities=allow_capabilities,
state=self.state.as_dict() if self.state else None,
)


@dataclasses.dataclass
class DescribeResult:
Expand Down
22 changes: 7 additions & 15 deletions edgedb/base_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -255,23 +255,15 @@ async def _execute(self, execute_context: abstract.ExecuteContext) -> None:
async def describe(
self, describe_context: abstract.DescribeContext
) -> abstract.DescribeResult:
cardinality, in_dc, out_dc, capabilities = await self._protocol._parse(
describe_context.query,
reg=protocol.CodecsRegistry(),
inline_typenames=describe_context.inject_type_names,
output_format=describe_context.output_format,
expect_one=describe_context.expect_one,
allow_capabilities=enums.Capability.EXECUTE,
state=(
describe_context.state.as_dict()
if describe_context.state else None
),
ctx = describe_context.lower(
allow_capabilities=enums.Capability.EXECUTE
)
await self._protocol._parse(ctx)
return abstract.DescribeResult(
input_type=in_dc.make_type(describe_context),
output_type=out_dc.make_type(describe_context),
output_cardinality=enums.Cardinality(cardinality[0]),
capabilities=capabilities,
input_type=ctx.in_dc.make_type(describe_context),
output_type=ctx.out_dc.make_type(describe_context),
output_cardinality=enums.Cardinality(ctx.cardinality[0]),
capabilities=ctx.capabilities,
)

def terminate(self):
Expand Down
6 changes: 3 additions & 3 deletions edgedb/protocol/protocol.pxd
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,9 @@ cdef class ExecuteContext:
object state

# Contextual variables
bytes cardinality
BaseCodec in_dc
BaseCodec out_dc
readonly bytes cardinality
readonly BaseCodec in_dc
readonly BaseCodec out_dc
readonly uint64_t capabilities

cdef inline bint has_na_cardinality(self)
Expand Down

0 comments on commit 2ebc55c

Please sign in to comment.