diff --git a/compiler/src/main/scala/edg/ElemBuilder.scala b/compiler/src/main/scala/edg/ElemBuilder.scala index 1be87f4f9..e21780f8a 100644 --- a/compiler/src/main/scala/edg/ElemBuilder.scala +++ b/compiler/src/main/scala/edg/ElemBuilder.scala @@ -219,33 +219,18 @@ object ElemBuilder { ) def Port( - selfClass: String, - params: SeqMap[String, init.ValInit] = SeqMap(), - constraints: SeqMap[String, expr.ValueExpr] = SeqMap(), - ): elem.PortLike = elem.PortLike(`is` = - elem.PortLike.Is.Port(elem.Port( - params = params.toPb, - constraints = constraints.toPb, - selfClass = selfClass match { - case "" => None - case selfClass => Some(LibraryPath(selfClass)) - } - )) - ) - - def Bundle( selfClass: String, params: SeqMap[String, init.ValInit] = SeqMap(), ports: SeqMap[String, elem.PortLike] = SeqMap(), constraints: SeqMap[String, expr.ValueExpr] = SeqMap(), ): elem.PortLike = elem.PortLike(`is` = - elem.PortLike.Is.Bundle(elem.Bundle( + elem.PortLike.Is.Port(elem.Port( params = params.toPb, ports = ports.toPb, constraints = constraints.toPb, selfClass = selfClass match { case "" => None - case superclass => Some(LibraryPath(superclass)) + case selfClass => Some(LibraryPath(selfClass)) } )) ) @@ -306,10 +291,6 @@ object ElemBuilder { _.`is` match { case elem.PortLike.Is.Port(port) => port.getSelfClass.toFullString -> schema.Library.NS.Val(`type` = schema.Library.NS.Val.Type.Port(port)) - case elem.PortLike.Is.Bundle(bundle) => - bundle.getSelfClass.toFullString -> schema.Library.NS.Val(`type` = - schema.Library.NS.Val.Type.Bundle(bundle) - ) case port => throw new NotImplementedError(s"Unknown PortLike in library $port") } }.toMap diff --git a/compiler/src/main/scala/edg/Wrappers.scala b/compiler/src/main/scala/edg/Wrappers.scala deleted file mode 100644 index 2f45053e0..000000000 --- a/compiler/src/main/scala/edg/Wrappers.scala +++ /dev/null @@ -1,9 +0,0 @@ -package edg - -sealed trait IrPort // to box Port-like types because of lack of union types in SScala -object IrPort { - import edgir.elem.elem - - case class Port(pb: elem.Port) extends IrPort - case class Bundle(pb: elem.Bundle) extends IrPort -} diff --git a/compiler/src/main/scala/edg/compiler/Compiler.scala b/compiler/src/main/scala/edg/compiler/Compiler.scala index 4b3d5d3c5..eb613cdd7 100644 --- a/compiler/src/main/scala/edg/compiler/Compiler.scala +++ b/compiler/src/main/scala/edg/compiler/Compiler.scala @@ -117,7 +117,7 @@ class AssignNamer() { } object Compiler { - final val kExpectedProtoVersion = 7 + final val kExpectedProtoVersion = 8 } /** Compiler for a particular design, with an associated library to elaborate references from. @@ -289,7 +289,7 @@ class Compiler private ( // Add sub-ports to the elaboration dependency graph, as appropriate toLinkPort match { - case toLinkPort: wir.Bundle => + case toLinkPort: wir.Port => for (portName <- toLinkPort.getPorts.keys) { elaboratePending.addNode( ElaborateRecord.Connect( @@ -320,7 +320,7 @@ class Compiler private ( // Returns the deepest applicable postfix, starting from a port def resolveRecursive(portPath: DesignPath, port: wir.PortLike, postfix: Seq[String]): Seq[String] = { port match { - case _: wir.Port | _: wir.Bundle | _: wir.PortLibrary => // don't recurse into these + case _: wir.Port | _: wir.PortLibrary => // don't recurse into these // note that libraries in arrays may not yet have been elaborated Seq() case port: wir.PortArray => @@ -416,12 +416,11 @@ class Compiler private ( val portPb = library.getPort(libraryPath) match { case Errorable.Success(portPb) => portPb case Errorable.Error(err) => - import edg.IrPort import edgir.elem.elem errors += CompilerError.LibraryError(path, libraryPath, err) - IrPort.Port(elem.Port()) + elem.Port() } - val newPort = wir.PortLike.fromIrPort(portPb) + val newPort = new wir.Port(portPb) container.elaborate(path.lastString, newPort) newPort case port: wir.PortArray => port // no instantiation needed @@ -434,9 +433,6 @@ class Compiler private ( case port: wir.Port => constProp.addAssignValue(path.asIndirect + IndirectStep.Name, TextValue(path.toString), containerPath, "name") processParamDeclarations(path, port) - case port: wir.Bundle => - constProp.addAssignValue(path.asIndirect + IndirectStep.Name, TextValue(path.toString), containerPath, "name") - processParamDeclarations(path, port) for ((childPortName, childPort) <- port.getPorts) { elaboratePort(path + childPortName, containerPath, port, childPort) } @@ -1135,7 +1131,7 @@ class Compiler private ( case connects => throw new IllegalArgumentException(s"invalid connections to array $connects") } - case _ => // non-array, eg Port or Bundle + case _ => // non-array, eg Port connectedConstraints.connectionsByLinkPort(portPostfix, false) match { case PortConnections.ArrayConnect(constrName, constr) => constr.expr match { case expr.ValueExpr.Expr.ConnectedArray(connected) => @@ -1196,7 +1192,7 @@ class Compiler private ( // TODO refactor this out, ConnectedLink needs to be centralized def setConnectedLink(portPath: DesignPath, port: PortLike): Unit = (port: @unchecked) match { - case _: wir.Port | _: wir.Bundle => + case _: wir.Port => constProp.setConnectedLink(path, portPath) case port: wir.PortArray => port.getPorts.foreach { case (subPortName, subPort) => @@ -1404,7 +1400,7 @@ class Compiler private ( link.getModelPorts(portPostfix(1)) match { case _: wir.PortArray => (portPostfix.init, (constrName, constr)) // drop the array index - case _ => // non-array like Port and Bundle + case _ => // non-array like Port (portPostfix, (constrName, constr)) } }.groupBy(_._1).foreach { case (portPostfix, elts) => // actually resolve (delayed if array) @@ -1420,7 +1416,7 @@ class Compiler private ( ElaborateRecord.ElaboratePortArray(path ++ portPostfix) ) ) - case _ => // non-array like Port and Bundle + case _ => // non-array like Port val Seq((constrName, constr)) = constrNamesConstrs // can only be one element resolvePortConnectivity(path, portPostfix, Some(constrName, constr)) } diff --git a/compiler/src/main/scala/edg/compiler/DesignAssertionCheck.scala b/compiler/src/main/scala/edg/compiler/DesignAssertionCheck.scala index cda7a897c..dd8505433 100644 --- a/compiler/src/main/scala/edg/compiler/DesignAssertionCheck.scala +++ b/compiler/src/main/scala/edg/compiler/DesignAssertionCheck.scala @@ -33,9 +33,8 @@ class DesignAssertionCheck(compiler: Compiler) } } - override def mapPort(path: DesignPath, port: elem.Port): Unit = {} + override def mapPort(path: DesignPath, port: elem.Port, ports: SeqMap[String, Unit]): Unit = {} override def mapPortArray(path: DesignPath, port: elem.PortArray, ports: SeqMap[String, Unit]): Unit = {} - override def mapBundle(path: DesignPath, port: elem.Bundle, ports: SeqMap[String, Unit]): Unit = {} override def mapPortLibrary(path: DesignPath, port: ref.LibraryPath): Unit = {} override def mapBlock( diff --git a/compiler/src/main/scala/edg/compiler/DesignMap.scala b/compiler/src/main/scala/edg/compiler/DesignMap.scala index 959d6e288..2ee89c2d1 100644 --- a/compiler/src/main/scala/edg/compiler/DesignMap.scala +++ b/compiler/src/main/scala/edg/compiler/DesignMap.scala @@ -16,15 +16,12 @@ trait DesignMap[PortType, BlockType, LinkType] { // These methods handle how nodes are processed must be overridden by the user where appropriate // (left default, they will exception out, which may be desired behavior on unexpected node types) - def mapPort(path: DesignPath, port: elem.Port): PortType = { + def mapPort(path: DesignPath, port: elem.Port, ports: SeqMap[String, PortType]): PortType = { throw new NotImplementedError(s"Undefined mapPort at $path") } def mapPortArray(path: DesignPath, port: elem.PortArray, ports: SeqMap[String, PortType]): PortType = { throw new NotImplementedError(s"Undefined mapPortArray at $path") } - def mapBundle(path: DesignPath, port: elem.Bundle, ports: SeqMap[String, PortType]): PortType = { - throw new NotImplementedError(s"Undefined mapBundle at $path") - } def mapPortLibrary(path: DesignPath, port: ref.LibraryPath): PortType = { throw new NotImplementedError(s"Undefined mapPortLibrary at $path") } @@ -64,11 +61,11 @@ trait DesignMap[PortType, BlockType, LinkType] { // These methods provide default recursive processing functionality for child sub-tree elements, // and may be (but are not required to be) optionally overridden - def wrapBundle(path: DesignPath, port: elem.Bundle): PortType = { + def wrapPort(path: DesignPath, port: elem.Port): PortType = { val ports = port.ports.toSeqMap.map { case (name, elt) => name -> wrapPortlike(path + name, elt) } - mapBundle(path, port, ports) + mapPort(path, port, ports) } def wrapPortArray(path: DesignPath, port: elem.PortArray): PortType = { @@ -80,8 +77,7 @@ trait DesignMap[PortType, BlockType, LinkType] { def wrapPortlike(path: DesignPath, portLike: elem.PortLike): PortType = { portLike.is match { - case elem.PortLike.Is.Port(port) => mapPort(path, port) - case elem.PortLike.Is.Bundle(port) => wrapBundle(path, port) + case elem.PortLike.Is.Port(port) => wrapPort(path, port) case elem.PortLike.Is.Array(port) => wrapPortArray(path, port) case elem.PortLike.Is.LibElem(port) => mapPortLibrary(path, port) case block => throw new NotImplementedError(s"Unknown BlockLike type at $path: $block") @@ -150,9 +146,8 @@ trait DesignBlockMap[BlockType] extends DesignMap[Unit, BlockType, Unit] { // These methods handle how nodes are processed must be overridden by the user where appropriate // (left default, they will exception out, which may be desired behavior on unexpected node types) - final override def mapPort(path: DesignPath, port: elem.Port): Unit = {} + final override def mapPort(path: DesignPath, port: elem.Port, ports: SeqMap[String, Unit]): Unit = {} final override def mapPortArray(path: DesignPath, port: elem.PortArray, ports: SeqMap[String, Unit]): Unit = {} - final override def mapBundle(path: DesignPath, port: elem.Bundle, ports: SeqMap[String, Unit]): Unit = {} final override def mapPortLibrary(path: DesignPath, port: ref.LibraryPath): Unit = {} final override def mapBlock( diff --git a/compiler/src/main/scala/edg/compiler/DesignRefsValidate.scala b/compiler/src/main/scala/edg/compiler/DesignRefsValidate.scala index 56fd35d14..55f61bfb8 100644 --- a/compiler/src/main/scala/edg/compiler/DesignRefsValidate.scala +++ b/compiler/src/main/scala/edg/compiler/DesignRefsValidate.scala @@ -144,17 +144,13 @@ class DesignRefsValidate extends DesignMap[Unit, Unit, Unit] { } } - override def mapPort(path: DesignPath, port: elem.Port): Unit = { + override def mapPort(path: DesignPath, port: elem.Port, ports: SeqMap[String, Unit]): Unit = { port.params.asPairs.foreach { case (name, _) => paramDefs.add(path + name) } portDefs.add(path) } override def mapPortArray(path: DesignPath, port: elem.PortArray, ports: SeqMap[String, Unit]): Unit = { // do nothing } - override def mapBundle(path: DesignPath, port: elem.Bundle, ports: SeqMap[String, Unit]): Unit = { - port.params.asPairs.foreach { case (name, _) => paramDefs.add(path + name) } - portDefs.add(path) - } override def mapPortLibrary(path: DesignPath, port: ref.LibraryPath): Unit = { Seq(CompilerError.LibraryElement(path, port)) } diff --git a/compiler/src/main/scala/edg/compiler/DesignStructuralValidate.scala b/compiler/src/main/scala/edg/compiler/DesignStructuralValidate.scala index a21133372..67570a32b 100644 --- a/compiler/src/main/scala/edg/compiler/DesignStructuralValidate.scala +++ b/compiler/src/main/scala/edg/compiler/DesignStructuralValidate.scala @@ -12,8 +12,12 @@ import scala.collection.SeqMap * - unelaborated library elements */ class DesignStructuralValidate extends DesignMap[Seq[CompilerError], Seq[CompilerError], Seq[CompilerError]] { - override def mapPort(path: DesignPath, port: elem.Port): Seq[CompilerError] = { - Seq() + override def mapPort( + path: DesignPath, + port: elem.Port, + ports: SeqMap[String, Seq[CompilerError]] + ): Seq[CompilerError] = { + ports.values.flatten.toSeq } override def mapPortArray( path: DesignPath, @@ -27,13 +31,6 @@ class DesignStructuralValidate extends DesignMap[Seq[CompilerError], Seq[Compile } undefinedError ++ ports.values.flatten.toSeq } - override def mapBundle( - path: DesignPath, - port: elem.Bundle, - ports: SeqMap[String, Seq[CompilerError]] - ): Seq[CompilerError] = { - ports.values.flatten.toSeq - } override def mapPortLibrary(path: DesignPath, port: ref.LibraryPath): Seq[CompilerError] = { Seq(CompilerError.LibraryElement(path, port)) } diff --git a/compiler/src/main/scala/edg/compiler/PythonInterface.scala b/compiler/src/main/scala/edg/compiler/PythonInterface.scala index 3251c9682..0224edeff 100644 --- a/compiler/src/main/scala/edg/compiler/PythonInterface.scala +++ b/compiler/src/main/scala/edg/compiler/PythonInterface.scala @@ -1,7 +1,6 @@ package edg.compiler import edg.EdgirUtils.SimpleLibraryPath -import edg.IrPort import edg.util.{Errorable, QueueStream, timeExec} import edg.wir.{DesignPath, IndirectDesignPath, Library} import edgir.elem.elem @@ -393,9 +392,8 @@ class PythonInterfaceLibrary() extends Library { case (path, schema.Library.NS.Val.Type.HierarchyBlock(block)) => (path, block) }.toMap - override def allPorts: Map[ref.LibraryPath, IrPort] = elts.collect { - case (path, schema.Library.NS.Val.Type.Port(port)) => (path, IrPort.Port(port)) - case (path, schema.Library.NS.Val.Type.Bundle(port)) => (path, IrPort.Bundle(port)) + override def allPorts: Map[ref.LibraryPath, elem.Port] = elts.collect { + case (path, schema.Library.NS.Val.Type.Port(port)) => (path, port) }.toMap override def allLinks: Map[ref.LibraryPath, elem.Link] = elts.collect { @@ -417,10 +415,9 @@ class PythonInterfaceLibrary() extends Library { case schema.Library.NS.Val.Type.Link(member) => member } } - override def getPort(path: ref.LibraryPath): Errorable[IrPort] = { + override def getPort(path: ref.LibraryPath): Errorable[elem.Port] = { getLibraryPartialMapped(path, "port") { - case schema.Library.NS.Val.Type.Port(member) => IrPort.Port(member) - case schema.Library.NS.Val.Type.Bundle(member) => IrPort.Bundle(member) + case schema.Library.NS.Val.Type.Port(member) => member } } diff --git a/compiler/src/main/scala/edg/wir/BlockConnectivityAnalysis.scala b/compiler/src/main/scala/edg/wir/BlockConnectivityAnalysis.scala index f65f45b62..e6ba1a7fb 100644 --- a/compiler/src/main/scala/edg/wir/BlockConnectivityAnalysis.scala +++ b/compiler/src/main/scala/edg/wir/BlockConnectivityAnalysis.scala @@ -36,7 +36,6 @@ object BlockConnectivityAnalysis { def typeOfPortLike(portLike: elem.PortLike): ref.LibraryPath = portLike.is match { case elem.PortLike.Is.LibElem(lib) => lib case elem.PortLike.Is.Port(port) => port.getSelfClass - case elem.PortLike.Is.Bundle(port) => port.getSelfClass case elem.PortLike.Is.Array(port) => port.getSelfClass case other => throw new IllegalArgumentException(s"Unexpected PortLike ${other.getClass}") } diff --git a/compiler/src/main/scala/edg/wir/Library.scala b/compiler/src/main/scala/edg/wir/Library.scala index cec6e9bd3..d89c8f5f1 100644 --- a/compiler/src/main/scala/edg/wir/Library.scala +++ b/compiler/src/main/scala/edg/wir/Library.scala @@ -1,7 +1,6 @@ package edg.wir import edg.EdgirUtils.SimpleLibraryPath -import edg.IrPort import edg.compiler.ExprValue import edg.util.Errorable import edg.wir.ProtoUtil.{ @@ -30,11 +29,11 @@ trait Library { // subclass relations def getBlock(path: ref.LibraryPath, ignoreRefinements: Boolean = false): Errorable[elem.HierarchyBlock] def getLink(path: ref.LibraryPath): Errorable[elem.Link] - def getPort(path: ref.LibraryPath): Errorable[IrPort] + def getPort(path: ref.LibraryPath): Errorable[elem.Port] // Returns all elements of the specified type and their path. // If the library has a mutable backing, this may change over time. - def allPorts: Map[ref.LibraryPath, IrPort] + def allPorts: Map[ref.LibraryPath, elem.Port] def allBlocks: Map[ref.LibraryPath, elem.HierarchyBlock] def allLinks: Map[ref.LibraryPath, elem.Link] @@ -85,7 +84,6 @@ class EdgirLibrary(pb: schema.Library) extends Library { val libraryPath = ref.LibraryPath(target = Some(ref.LocalStep(step = ref.LocalStep.Step.Name(name)))) member.`type` match { case schema.Library.NS.Val.Type.Port(_) => libraryPath -> member.`type` - case schema.Library.NS.Val.Type.Bundle(_) => libraryPath -> member.`type` case schema.Library.NS.Val.Type.HierarchyBlock(_) => libraryPath -> member.`type` case schema.Library.NS.Val.Type.Link(_) => libraryPath -> member.`type` case schema.Library.NS.Val.Type.Namespace(_) => @@ -98,9 +96,8 @@ class EdgirLibrary(pb: schema.Library) extends Library { case (path, schema.Library.NS.Val.Type.HierarchyBlock(block)) => (path, block) } - override def allPorts: Map[ref.LibraryPath, IrPort] = elts.collect { - case (path, schema.Library.NS.Val.Type.Port(port)) => (path, IrPort.Port(port)) - case (path, schema.Library.NS.Val.Type.Bundle(port)) => (path, IrPort.Bundle(port)) + override def allPorts: Map[ref.LibraryPath, elem.Port] = elts.collect { + case (path, schema.Library.NS.Val.Type.Port(port)) => (path, port) } override def allLinks: Map[ref.LibraryPath, elem.Link] = elts.collect { @@ -121,9 +118,8 @@ class EdgirLibrary(pb: schema.Library) extends Library { case None => Errorable.Error(s"Library does not contain $path") } - override def getPort(path: ref.LibraryPath): Errorable[IrPort] = elts.get(path) match { - case Some(schema.Library.NS.Val.Type.Port(member)) => Errorable.Success(IrPort.Port(member)) - case Some(schema.Library.NS.Val.Type.Bundle(member)) => Errorable.Success(IrPort.Bundle(member)) + override def getPort(path: ref.LibraryPath): Errorable[elem.Port] = elts.get(path) match { + case Some(schema.Library.NS.Val.Type.Port(member)) => Errorable.Success(member) case Some(member) => Errorable.Error(s"Library element at $path not a port-like, got ${member.getClass}") case None => Errorable.Error(s"Library does not contain $path") } diff --git a/compiler/src/main/scala/edg/wir/PortLike.scala b/compiler/src/main/scala/edg/wir/PortLike.scala index 882d30530..a2d1f0d61 100644 --- a/compiler/src/main/scala/edg/wir/PortLike.scala +++ b/compiler/src/main/scala/edg/wir/PortLike.scala @@ -15,13 +15,6 @@ sealed trait PortLike extends Pathable { } object PortLike { - import edg.IrPort - def fromIrPort(irPort: IrPort): PortLike = irPort match { - case IrPort.Port(port) => new Port(port) - case IrPort.Bundle(bundle) => new Bundle(bundle) - case irPort => throw new NotImplementedError(s"Can't construct PortLike from $irPort") - } - def fromLibraryPb(portLike: elem.PortLike): PortLike = portLike.`is` match { case elem.PortLike.Is.LibElem(like) => PortLibrary(like) case elem.PortLike.Is.Array(like) => new PortArray(like) @@ -30,37 +23,11 @@ object PortLike { } class Port(pb: elem.Port) extends PortLike - with HasParams { - override def cloned: Port = this // immutable - - override def isElaborated: Boolean = true - - override def getSelfClass: LibraryPath = pb.getSelfClass - override def getDirectSuperclasses: Seq[LibraryPath] = pb.superclasses - override def getAllClasses: Seq[LibraryPath] = Seq(pb.selfClass, pb.superclasses, pb.superSuperclasses).flatten - - override def getParams: SeqMap[String, init.ValInit] = pb.params.toSeqMap - - override def resolve(suffix: Seq[String]): Pathable = suffix match { - case Seq() => this - case suffix => throw new InvalidPathException(s"No elements (of $suffix) in Port") - } - - def toEltPb: elem.Port = { - pb - } - - def toPb: elem.PortLike = { - elem.PortLike(`is` = elem.PortLike.Is.Port(toEltPb)) - } -} - -class Bundle(pb: elem.Bundle) extends PortLike with HasMutablePorts with HasParams { override protected val ports: mutable.SeqMap[String, PortLike] = parsePorts(pb.ports) - override def cloned: Bundle = { - val cloned = new Bundle(pb) + override def cloned: Port = { + val cloned = new Port(pb) cloned.ports.clear() cloned.ports.addAll(ports.map { case (name, port) => name -> port.cloned }) cloned @@ -80,18 +47,18 @@ class Bundle(pb: elem.Bundle) extends PortLike if (ports.contains(subname)) { ports(subname).resolve(tail) } else { - throw new InvalidPathException(s"No elements $subname (of $suffix) in Bundle ${pb.getSelfClass.toSimpleString}") + throw new InvalidPathException(s"No elements $subname (of $suffix) in Port ${pb.getSelfClass.toSimpleString}") } } - def toEltPb: elem.Bundle = { + def toEltPb: elem.Port = { pb.copy( ports = ports.view.mapValues(_.toPb).to(SeqMap).toPb, ) } def toPb: elem.PortLike = { - elem.PortLike(`is` = elem.PortLike.Is.Bundle(toEltPb)) + elem.PortLike(`is` = elem.PortLike.Is.Port(toEltPb)) } } diff --git a/compiler/src/test/scala/edg/compiler/CompilerBundleExpansionTest.scala b/compiler/src/test/scala/edg/compiler/CompilerBundleExpansionTest.scala index 2a5afbd73..984db6c8c 100644 --- a/compiler/src/test/scala/edg/compiler/CompilerBundleExpansionTest.scala +++ b/compiler/src/test/scala/edg/compiler/CompilerBundleExpansionTest.scala @@ -21,7 +21,7 @@ class CompilerBundleExpansionTest extends AnyFlatSpec with CompilerTestUtil { "param" -> ValInit.Integer, ), ), - Port.Bundle( + Port.Port( selfClass = "outerPort", params = SeqMap( "param" -> ValInit.Integer, @@ -104,7 +104,7 @@ class CompilerBundleExpansionTest extends AnyFlatSpec with CompilerTestUtil { "outerParam" -> ValInit.Integer, ), ports = SeqMap( - "port" -> Port.Bundle( + "port" -> Port.Port( selfClass = "outerPort", params = SeqMap( "param" -> ValInit.Integer, @@ -132,7 +132,7 @@ class CompilerBundleExpansionTest extends AnyFlatSpec with CompilerTestUtil { "outerParam" -> ValInit.Integer, ), ports = SeqMap( - "outerPort" -> Port.Bundle( + "outerPort" -> Port.Port( selfClass = "outerPort", params = SeqMap( "param" -> ValInit.Integer, diff --git a/compiler/src/test/scala/edg/compiler/CompilerLinkPortArrayExpansionTest.scala b/compiler/src/test/scala/edg/compiler/CompilerLinkPortArrayExpansionTest.scala index aa883ec99..030b4c5db 100644 --- a/compiler/src/test/scala/edg/compiler/CompilerLinkPortArrayExpansionTest.scala +++ b/compiler/src/test/scala/edg/compiler/CompilerLinkPortArrayExpansionTest.scala @@ -18,14 +18,14 @@ class CompilerLinkPortArrayExpansionTest extends AnyFlatSpec with CompilerTestUt ports = Seq( Port.Port("sourcePort"), Port.Port("sinkPort"), - Port.Bundle( + Port.Port( "outerSourcePort", ports = SeqMap( "a" -> Port.Library("sourcePort"), "b" -> Port.Library("sourcePort"), ) ), - Port.Bundle( + Port.Port( "outerSinkPort", ports = SeqMap( "a" -> Port.Library("sinkPort"), diff --git a/compiler/src/test/scala/edg/wir/LibraryConnectivityAnalysisTest.scala b/compiler/src/test/scala/edg/wir/LibraryConnectivityAnalysisTest.scala index 612e22730..16ec860b6 100644 --- a/compiler/src/test/scala/edg/wir/LibraryConnectivityAnalysisTest.scala +++ b/compiler/src/test/scala/edg/wir/LibraryConnectivityAnalysisTest.scala @@ -15,7 +15,7 @@ class LibraryConnectivityAnalysisTest extends AnyFlatSpec { ports = Seq( Port.Port("innerSource"), Port.Port("innerSink"), - Port.Bundle( + Port.Port( "outerPort", ports = SeqMap( "inner" -> Port.Library("innerPort"), diff --git a/edg/abstract_parts/IoController.py b/edg/abstract_parts/IoController.py index aecaba0e6..85b4a2e1a 100644 --- a/edg/abstract_parts/IoController.py +++ b/edg/abstract_parts/IoController.py @@ -138,10 +138,7 @@ def _instantiate_from( io_port.link().current_drawn.lower().min(0), io_port.link().current_drawn.upper().max(0), ) - elif isinstance(io_port, Bundle): - pass # TODO: don't assume signal bundles have zero current draw - else: - raise NotImplementedError(f"unknown port type {io_port}") + # TODO: recurse into bundles, really needs a more unified way of handling current draw if isinstance(allocation.pin, str): assert isinstance(io_port, CircuitPort) @@ -149,7 +146,6 @@ def _instantiate_from( elif allocation.pin is None: assert isinstance(io_port, CircuitPort) # otherwise discarded elif isinstance(allocation.pin, dict): - assert isinstance(io_port, Bundle) for subport_name, (pin_name, pin_resource) in allocation.pin.items(): subport = getattr(io_port, subport_name) assert isinstance(subport, CircuitPort), f"bad sub-port {pin_name} {subport}" diff --git a/edg/abstract_parts/PinMappable.py b/edg/abstract_parts/PinMappable.py index 9fba3cf54..70fa4e29a 100644 --- a/edg/abstract_parts/PinMappable.py +++ b/edg/abstract_parts/PinMappable.py @@ -76,10 +76,10 @@ def get_name_model_for_type(self, tpe: Type[Port]) -> Tuple[str, Port]: class PeripheralFixedPin(BaseLeafPinMapResource): - """A resource for a peripheral as a Bundle port, where the internal ports are fixed. No allocation happens. + """A resource for a peripheral as a bundle port, where the internal ports are fixed. No allocation happens. The internal port model must be fully defined here.""" - def __init__(self, name: str, port_model: Bundle, inner_allowed_pins: Dict[str, str]): + def __init__(self, name: str, port_model: Port, inner_allowed_pins: Dict[str, str]): self.name = name self.port_model = port_model self.inner_allowed_pins = inner_allowed_pins @@ -100,12 +100,12 @@ def __eq__(self, other: Any) -> bool: class PeripheralAnyResource(BaseDelegatingPinMapResource): - """A resource for a peripheral as a Bundle port, where the internal ports must be delegated to another resource, + """A resource for a peripheral as a bundle port, where the internal ports must be delegated to another resource, any resource of matching type. Used for chips with a full switch matrix. The port model here should have empty models for the internal ports, so the models can be assigned from the inner resource. This allows things like digital IOs in a peripheral to inherit from the pin-level definition.""" - def __init__(self, name: str, port_model: Bundle): + def __init__(self, name: str, port_model: Port): self.name = name self.port_model = port_model @@ -122,13 +122,13 @@ def __eq__(self, other: Any) -> bool: class PeripheralFixedResource(BaseDelegatingPinMapResource): - """A resource for a peripheral as a Bundle port, where the internal ports must be delegated to another resource, + """A resource for a peripheral as a bundle port, where the internal ports must be delegated to another resource, of a fixed list per pin by resource name. Used for chips which have alternate pin functionality (sort of a very limited switch matrix). The port model here should have empty models for the internal ports, so the models can be assigned from the inner resource. This allows things like digital IOs in a peripheral to inherit from the pin-level definition.""" - def __init__(self, name: str, port_model: Bundle, inner_allowed_names: Dict[str, List[str]]): + def __init__(self, name: str, port_model: Port, inner_allowed_names: Dict[str, List[str]]): self.name = name self.port_model = port_model self.inner_allowed_names = inner_allowed_names @@ -413,7 +413,7 @@ def try_allocate_resource( ): # apply transform to search for the resource type, if needed inner_models[inner_name] = self.transforms[type(inner_model)][1](inner_models[inner_name]) sub_assignments.check_empty() - resource_model = resource_model.with_elt_initializers(inner_models) + resource_model = resource_model._with_elt_initializers(inner_models) allocated_resource = AllocatedResource(resource_model, port_name, resource_name, inner_pin_map) return allocated_resource else: diff --git a/edg/core/Array.py b/edg/core/Array.py index 5b00fbfd8..6e3284a4b 100644 --- a/edg/core/Array.py +++ b/edg/core/Array.py @@ -27,7 +27,7 @@ from .ConstraintExpr import BoolExpr, ConstraintExpr, FloatExpr, RangeExpr, StringExpr, IntExpr, Binding from .Core import Refable, non_library from .HdlUserExceptions import EdgTypeError -from .Ports import BaseContainerPort, BasePort, Port +from .Ports import BasePort, Port from .. import edgir @@ -64,7 +64,7 @@ def populate_expr_proto(self, pb: edgir.ValueExpr, expr: ConstraintExpr, ref_map @non_library -class BaseVector(BaseContainerPort): +class BaseVector(BasePort): @abstractmethod def _get_elt_sample(self) -> BasePort: ... diff --git a/edg/core/Ports.py b/edg/core/Ports.py index 55142a83b..a24a2e155 100644 --- a/edg/core/Ports.py +++ b/edg/core/Ports.py @@ -4,6 +4,7 @@ from abc import abstractmethod from typing import Generic, Optional, Dict, Hashable, List +from deprecated import deprecated from typing_extensions import TypeVar, override from .Binding import ParamBinding, IsConnectedBinding, NameBinding @@ -16,6 +17,7 @@ if TYPE_CHECKING: from .Blocks import BaseBlock + from .Array import Vector from .Link import Link from .PortBlocks import PortBridge, PortAdapter @@ -30,7 +32,7 @@ def __call__(cls, *args: Any, **kwargs: Any) -> Any: return obj -PortParentTypes = Union["BaseContainerPort", "BaseBlock"] +PortParentTypes = Union["Port", "Vector[Any]", "BaseBlock"] @non_library @@ -114,11 +116,6 @@ def _get_initializers(self, path_prefix: List[str]) -> List[Tuple[ConstraintExpr raise NotImplementedError -@non_library -class BaseContainerPort(BasePort): # TODO can this be removed? - pass - - PortLinkType = TypeVar("PortLinkType", bound="Link", covariant=True, default="Link") # TODO: this breaks w/ selftypes @@ -152,8 +149,8 @@ def __init__(self) -> None: self._bridge_instance: Optional[PortBridge] = None # internal only self._adapter_count: int = 0 - # TODO delete type ignore after https://github.com/python/mypy/issues/5374 self._parameters: SubElementDict[ConstraintExpr] = self.manager.new_dict(ConstraintExpr) + self._ports: SubElementDict[Port] = self.manager.new_dict(Port) self.manager_ignored.update(["_is_connected", "_name"]) self._is_connected = BoolExpr()._bind(IsConnectedBinding(self)) @@ -163,6 +160,9 @@ def _clear_initializers(self) -> None: self._parameters.finalize() for name, param in self._parameters.items(): param.initializer = None + self._ports.finalize() + for name, port in self._ports.items(): + port._clear_initializers() @override def _cloned_from(self: SelfType, other: SelfType) -> None: @@ -172,6 +172,11 @@ def _cloned_from(self: SelfType, other: SelfType) -> None: other_param = other._parameters[name] assert isinstance(other_param, type(param)) param.initializer = other_param.initializer + self._ports.finalize() + for name, port in self._ports.items(): + other_port = other._ports[name] + assert isinstance(other_port, type(port)) + port._cloned_from(other_port) def init_from(self: SelfType, other: SelfType) -> None: assert self._parent is not None, "may only init_from on an bound port" @@ -221,8 +226,9 @@ def _populate_portlike_proto(self, pb: edgir.PortLike) -> None: pb.lib_elem.target.name = self._get_def_name() @override - def _def_to_proto(self) -> edgir.PortTypes: + def _def_to_proto(self) -> edgir.Port: self._parameters.finalize() + self._ports.finalize() pb = edgir.Port() @@ -236,6 +242,8 @@ def _def_to_proto(self) -> edgir.PortTypes: for name, param in self._parameters.items(): param._populate_decl_proto(edgir.add_pair(pb.params, name)) + for name, port in self._ports.items(): + port._populate_portlike_proto(edgir.add_pair(pb.ports, name)) self._populate_metadata(pb.meta, self._metadata, IdentityDict()) # TODO use ref map @@ -252,17 +260,36 @@ def _build_ref_map(self, ref_map: Refable.RefMapType, prefix: edgir.LocalPath) - ref_map[self.name()] = edgir.localpath_concat(prefix, edgir.NAME) for name, param in self._parameters.items(): param._build_ref_map(ref_map, edgir.localpath_concat(prefix, name)) + for name, port in self._ports.items(): + port._build_ref_map(ref_map, edgir.localpath_concat(prefix, name)) if self._link_instance is not None: self._link_instance._build_ref_map(ref_map, edgir.localpath_concat(prefix, edgir.CONNECTED_LINK)) @override def _get_initializers(self, path_prefix: List[str]) -> List[Tuple[ConstraintExpr, List[str], ConstraintExpr]]: self._parameters.finalize() - return [ + initializers: List[Tuple[ConstraintExpr, List[str], ConstraintExpr]] = [ (param, path_prefix + [name], param.initializer) for (name, param) in self._parameters.items() if param.initializer is not None ] + self._ports.finalize() + for name, port in self._ports.items(): + initializers.extend(port._get_initializers(path_prefix + [name])) + return initializers + + def _with_elt_initializers(self: SelfType, replace_elts: dict[str, "Port"]) -> SelfType: + """Clones model-typed self, except adding initializers to elements from the input dict. + Those elements must be empty.""" + assert self._parent is None, "self must not be bound" + cloned = self._clone() + for name, replace_port in replace_elts.items(): + assert replace_port._parent is None, "replace_elts must not be bound" + cloned_port = cloned._ports[name] + assert isinstance(replace_port, type(cloned_port)) + assert not cloned_port._get_initializers([]), f"replace_elts sub-port {name} was not empty" + cloned_port._cloned_from(replace_port) + return cloned def is_connected(self) -> BoolExpr: return self._is_connected @@ -289,93 +316,20 @@ def Parameter(self, tpe: U) -> U: self._parameters.register(elt) return elt - -@non_library -class Bundle(Port[PortLinkType], BaseContainerPort, Generic[PortLinkType]): - SelfType = TypeVar("SelfType", bound="Bundle") - - def __init__(self) -> None: - super().__init__() - - self._ports: SubElementDict[Port] = self.manager.new_dict(Port) - - @override - def _clear_initializers(self) -> None: - super()._clear_initializers() - self._ports.finalize() - for name, port in self._ports.items(): - port._clear_initializers() - - @override - def _cloned_from(self: SelfType, other: SelfType) -> None: - super()._cloned_from(other) - for name, port in self._ports.items(): - other_port = other._ports[name] - assert isinstance(other_port, type(port)) - port._cloned_from(other_port) - - def with_elt_initializers(self: SelfType, replace_elts: dict[str, Port]) -> SelfType: - """Clones model-typed self, except adding initializers to elements from the input dict. - Those elements must be empty.""" - assert self._parent is None, "self must not be bound" - cloned = self._clone() - for name, replace_port in replace_elts.items(): - assert replace_port._parent is None, "replace_elts must not be bound" - cloned_port = cloned._ports[name] - assert isinstance(replace_port, type(cloned_port)) - assert not cloned_port._get_initializers([]), f"replace_elts sub-port {name} was not empty" - cloned_port._cloned_from(replace_port) - return cloned - - @override - def _def_to_proto(self) -> edgir.Bundle: - self._parameters.finalize() - self._ports.finalize() - - pb = edgir.Bundle() - - pb.self_class.target.name = self._get_def_name() - - direct_bases, indirect_bases = self._get_bases_of(Bundle) - for cls in direct_bases: - pb.superclasses.add().target.name = cls._static_def_name() - for cls in indirect_bases: - pb.super_superclasses.add().target.name = cls._static_def_name() - - for name, param in self._parameters.items(): - param._populate_decl_proto(edgir.add_pair(pb.params, name)) - for name, port in self._ports.items(): - port._populate_portlike_proto(edgir.add_pair(pb.ports, name)) - - self._populate_metadata(pb.meta, self._metadata, IdentityDict()) # TODO use ref map - - return pb - - @override - def _build_ref_map(self, ref_map: Refable.RefMapType, prefix: edgir.LocalPath) -> None: - super()._build_ref_map(ref_map, prefix) - for name, field in self._ports.items(): - field._build_ref_map(ref_map, edgir.localpath_concat(prefix, name)) - - @override - def _get_initializers(self, path_prefix: List[str]) -> List[Tuple[ConstraintExpr, List[str], ConstraintExpr]]: - self_initializers = super()._get_initializers(path_prefix) - self._ports.finalize() - return list( - itertools.chain( - self_initializers, - *[port._get_initializers(path_prefix + [name]) for (name, port) in self._ports.items()], - ) - ) - - T = TypeVar("T", bound=Port) + T = TypeVar("T", bound="Port") def Port(self, tpe: T, *, desc: Optional[str] = None) -> T: - """Registers a field for this Bundle""" + """Registers a sub-Port for this Port""" if not isinstance(tpe, Port): - raise EdgTypeError(f"param to Field(...)", tpe, Port) + raise EdgTypeError(f"param to Port(...)", tpe, Port) elt = tpe._bind(self) self._ports.register(elt) return elt + + +@non_library +@deprecated(reason="merged with Port, use Port instead") +class Bundle(Port[PortLinkType], Generic[PortLinkType]): + SelfType = TypeVar("SelfType", bound="Bundle") diff --git a/edg/core/TransformUtil.py b/edg/core/TransformUtil.py index a51e76c33..095af7c37 100644 --- a/edg/core/TransformUtil.py +++ b/edg/core/TransformUtil.py @@ -115,11 +115,11 @@ def _follow_partial_steps( return None, (self, curr) elif steps[0].HasField("name"): name = steps[0].name - if isinstance(curr, (edgir.Port, edgir.Bundle, edgir.HierarchyBlock, edgir.Link)): + if isinstance(curr, (edgir.Port, edgir.HierarchyBlock, edgir.Link)): param_opt = edgir.pair_get_opt(curr.params, name) if param_opt is not None: return self.append_param(name)._follow_partial_steps(steps[1:], param_opt) - if isinstance(curr, (edgir.Bundle, edgir.Link, edgir.HierarchyBlock, edgir.LinkArray)): + if isinstance(curr, (edgir.Port, edgir.Link, edgir.HierarchyBlock, edgir.LinkArray)): port_opt = edgir.pair_get_opt(curr.ports, name) if port_opt is not None: return self.append_port(name)._follow_partial_steps(steps[1:], edgir.resolve_portlike(port_opt)) @@ -226,9 +226,7 @@ def _traverse_portlike(self, context: TransformContext, elt: edgir.PortLike) -> if elt.HasField("lib_elem"): raise ValueError(f"unresolved lib at {context}") elif elt.HasField("port"): - pass # nothing to recurse into - elif elt.HasField("bundle"): - for port_pair in elt.bundle.ports: + for port_pair in elt.port.ports: self._traverse_portlike(context.append_port(port_pair.name), port_pair.value) elif elt.HasField("array") and elt.array.HasField("ports"): for port_pair in elt.array.ports.ports: diff --git a/edg/core/Util.py b/edg/core/Util.py index 76f84c5c8..9cff2f148 100644 --- a/edg/core/Util.py +++ b/edg/core/Util.py @@ -1,5 +1,5 @@ from typing import Any, Union, Dict -from .Ports import BasePort, Port, Bundle +from .Ports import BasePort, Port from .Blocks import BaseBlock, Link from .HierarchyBlock import Block @@ -9,16 +9,11 @@ def edg_obj_name(obj: Any) -> str: def edg_to_dict(obj: Union[BasePort, BaseBlock]) -> Dict[str, Any]: - if isinstance(obj, Bundle): - return { - "_": edg_obj_name(obj), - "params": obj._parameters, - "fields": {k: edg_to_dict(v) for k, v in obj._ports.items()}, - } - elif isinstance(obj, Port): + if isinstance(obj, Port): result = { "_": edg_obj_name(obj), "params": obj._parameters, + "fields": {k: edg_to_dict(v) for k, v in obj._ports.items()}, } if obj._link_instance is not None: result["link"] = edg_to_dict(obj._link_instance) diff --git a/edg/core/resources/edg-compiler-precompiled.jar b/edg/core/resources/edg-compiler-precompiled.jar index 7a6949e5d..15a0eb459 100644 Binary files a/edg/core/resources/edg-compiler-precompiled.jar and b/edg/core/resources/edg-compiler-precompiled.jar differ diff --git a/edg/core/test_bundle.py b/edg/core/test_bundle.py index 57e87b68d..c7498a917 100644 --- a/edg/core/test_bundle.py +++ b/edg/core/test_bundle.py @@ -6,7 +6,7 @@ from .test_elaboration_common import TestPortSink -class TestBundle(Bundle): +class TestBundle(Port): def __init__( self, float_param: FloatLike = FloatExpr(), diff --git a/edg/core/test_inner_link.py b/edg/core/test_inner_link.py index 0360080b8..d7cb92f85 100644 --- a/edg/core/test_inner_link.py +++ b/edg/core/test_inner_link.py @@ -18,7 +18,7 @@ def __init__(self) -> None: self.b_net = self.connect(self.source.b, self.sinks.map_extract(lambda x: x.b), flatten=True) -class TestBundleSource(Bundle[TestBundleLink]): +class TestBundleSource(Port[TestBundleLink]): link_type = TestBundleLink def __init__(self) -> None: @@ -28,7 +28,7 @@ def __init__(self) -> None: self.b = self.Port(TestPortSource()) -class TestBundleSink(Bundle[TestBundleLink]): +class TestBundleSink(Port[TestBundleLink]): link_type = TestBundleLink def __init__(self) -> None: diff --git a/edg/core/test_port.py b/edg/core/test_port.py index f37f259fd..abc7ed4ba 100644 --- a/edg/core/test_port.py +++ b/edg/core/test_port.py @@ -10,7 +10,7 @@ class PortProtoTestCase(unittest.TestCase): @override def setUp(self) -> None: - self.pb = cast(edgir.Port, TestPortBase()._def_to_proto()) # TODO eliminate cast + self.pb = TestPortBase()._def_to_proto() def test_contains_param(self) -> None: self.assertEqual(len(self.pb.params), 1) @@ -21,7 +21,7 @@ def test_contains_param(self) -> None: class PortSourceProtoTestCase(unittest.TestCase): @override def setUp(self) -> None: - self.pb = cast(edgir.Port, TestPortSource()._def_to_proto()) + self.pb = TestPortSource()._def_to_proto() def test_self_class(self) -> None: self.assertEqual(self.pb.self_class.target.name, "edg.core.test_elaboration_common.TestPortSource") diff --git a/edg/core/test_simple_const_prop.py b/edg/core/test_simple_const_prop.py index 0c6cf2eaa..fbcbc4db8 100644 --- a/edg/core/test_simple_const_prop.py +++ b/edg/core/test_simple_const_prop.py @@ -139,7 +139,7 @@ def __init__(self) -> None: self.elt2_link = self.connect(self.a.elt2, self.b.elt2) -class TestPortConstPropBundle(Bundle[TestPortConstPropBundleLink]): +class TestPortConstPropBundle(Port[TestPortConstPropBundleLink]): link_type = TestPortConstPropBundleLink def __init__(self) -> None: diff --git a/edg/edgir/__init__.py b/edg/edgir/__init__.py index 6a7c079d0..36e53df42 100644 --- a/edg/edgir/__init__.py +++ b/edg/edgir/__init__.py @@ -11,7 +11,6 @@ Port, PortArray, PortLike, - Bundle, HierarchyBlock, BlockLike, Link, @@ -43,7 +42,7 @@ # TODO this should be a separate util in edg_core from ..core.Range import Range -PortTypes = Union[Port, PortArray, Bundle] +PortTypes = Union[Port, PortArray] BlockTypes = HierarchyBlock BlockLikeTypes = Union[BlockTypes, Link] LinkTypes = Union[Link, LinkArray] # LinkArray is not block-like b/c it doesn't have a class and params @@ -71,8 +70,6 @@ def resolve_portlike(port: PortLike) -> PortTypes: return port.port elif port.HasField("array"): return port.array - elif port.HasField("bundle"): - return port.bundle else: raise ValueError(f"bad portlike {port}") diff --git a/edg/edgir/common_pb2.pyi b/edg/edgir/common_pb2.pyi index 9ee680ab3..4fa8ab79c 100644 --- a/edg/edgir/common_pb2.pyi +++ b/edg/edgir/common_pb2.pyi @@ -8,163 +8,168 @@ This is where we keep shared types that we reuse and don't have a good place for. """ -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor -@typing_extensions.final -class Metadata(google.protobuf.message.Message): +@_typing.final +class Metadata(_message.Message): """* Arbitrary metadata stored in tree form.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - @typing_extensions.final - class Members(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - @typing_extensions.final - class NodeEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - - @property - def value(self) -> global___Metadata: ... - def __init__(self, *, key: builtins.str = ..., value: global___Metadata | None = ...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - NODE_FIELD_NUMBER: builtins.int - - @property - def node(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___Metadata]: ... - def __init__(self, *, node: collections.abc.Mapping[builtins.str, global___Metadata] | None = ...) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["node", b"node"]) -> None: ... - - UNKNOWN_FIELD_NUMBER: builtins.int - KNOWN_FIELD_NUMBER: builtins.int - MEMBERS_FIELD_NUMBER: builtins.int - TEXT_LEAF_FIELD_NUMBER: builtins.int - BIN_LEAF_FIELD_NUMBER: builtins.int - SOURCE_LOCATOR_FIELD_NUMBER: builtins.int - ERROR_FIELD_NUMBER: builtins.int - - @property - def unknown(self) -> global___Empty: ... - known: builtins.str - - @property - def members(self) -> global___Metadata.Members: ... - text_leaf: builtins.str - bin_leaf: builtins.bytes + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class Members(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class NodeEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + + @_builtins.property + def value(self) -> Global___Metadata: ... + def __init__(self, *, key: _builtins.str = ..., value: Global___Metadata | None = ...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["value", b"value"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + NODE_FIELD_NUMBER: _builtins.int + + @_builtins.property + def node(self) -> _containers.MessageMap[_builtins.str, Global___Metadata]: ... + def __init__(self, *, node: _abc.Mapping[_builtins.str, Global___Metadata] | None = ...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["node", b"node"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + UNKNOWN_FIELD_NUMBER: _builtins.int + KNOWN_FIELD_NUMBER: _builtins.int + MEMBERS_FIELD_NUMBER: _builtins.int + TEXT_LEAF_FIELD_NUMBER: _builtins.int + BIN_LEAF_FIELD_NUMBER: _builtins.int + SOURCE_LOCATOR_FIELD_NUMBER: _builtins.int + ERROR_FIELD_NUMBER: _builtins.int + known: _builtins.str + text_leaf: _builtins.str + bin_leaf: _builtins.bytes "* I wanted to split binary and text data, since we might\n just want to dump a raw file/image/datasheet in here\n for safekeeping.\n\n Mixing up binary and textual formats is just a recipe\n for trouble.\n " - @property - def source_locator(self) -> global___SourceLocator: + @_builtins.property + def unknown(self) -> Global___Empty: ... + @_builtins.property + def members(self) -> Global___Metadata.Members: ... + @_builtins.property + def source_locator(self) -> Global___SourceLocator: """Defined formats Note: key should be the message definition name (eg, SourceLocator) TODO: how to handle multiple metadata of a given type? """ - @property - def error(self) -> global___Error: ... + @_builtins.property + def error(self) -> Global___Error: ... def __init__( self, *, - unknown: global___Empty | None = ..., - known: builtins.str = ..., - members: global___Metadata.Members | None = ..., - text_leaf: builtins.str = ..., - bin_leaf: builtins.bytes = ..., - source_locator: global___SourceLocator | None = ..., - error: global___Error | None = ..., + unknown: Global___Empty | None = ..., + known: _builtins.str = ..., + members: Global___Metadata.Members | None = ..., + text_leaf: _builtins.str = ..., + bin_leaf: _builtins.bytes = ..., + source_locator: Global___SourceLocator | None = ..., + error: Global___Error | None = ..., ) -> None: ... - def HasField( - self, - field_name: typing_extensions.Literal[ - "bin_leaf", - b"bin_leaf", - "error", - b"error", - "known", - b"known", - "members", - b"members", - "meta", - b"meta", - "source_locator", - b"source_locator", - "text_leaf", - b"text_leaf", - "type", - b"type", - "unknown", - b"unknown", - ], - ) -> builtins.bool: ... - def ClearField( - self, - field_name: typing_extensions.Literal[ - "bin_leaf", - b"bin_leaf", - "error", - b"error", - "known", - b"known", - "members", - b"members", - "meta", - b"meta", - "source_locator", - b"source_locator", - "text_leaf", - b"text_leaf", - "type", - b"type", - "unknown", - b"unknown", - ], - ) -> None: ... - @typing.overload - def WhichOneof( - self, oneof_group: typing_extensions.Literal["meta", b"meta"] - ) -> typing_extensions.Literal["members", "text_leaf", "bin_leaf", "source_locator", "error"] | None: ... - @typing.overload - def WhichOneof( - self, oneof_group: typing_extensions.Literal["type", b"type"] - ) -> typing_extensions.Literal["unknown", "known"] | None: ... - -global___Metadata = Metadata - -@typing_extensions.final -class SourceLocator(google.protobuf.message.Message): + _HasFieldArgType: _TypeAlias = _typing.Literal[ + "bin_leaf", + b"bin_leaf", + "error", + b"error", + "known", + b"known", + "members", + b"members", + "meta", + b"meta", + "source_locator", + b"source_locator", + "text_leaf", + b"text_leaf", + "type", + b"type", + "unknown", + b"unknown", + ] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "bin_leaf", + b"bin_leaf", + "error", + b"error", + "known", + b"known", + "members", + b"members", + "meta", + b"meta", + "source_locator", + b"source_locator", + "text_leaf", + b"text_leaf", + "type", + b"type", + "unknown", + b"unknown", + ] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_meta: _TypeAlias = _typing.Literal[ + "members", "text_leaf", "bin_leaf", "source_locator", "error" + ] + _WhichOneofArgType_meta: _TypeAlias = _typing.Literal["meta", b"meta"] + _WhichOneofReturnType_type: _TypeAlias = _typing.Literal["unknown", "known"] + _WhichOneofArgType_type: _TypeAlias = _typing.Literal["type", b"type"] + + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType_meta) -> _WhichOneofReturnType_meta | None: ... + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType_type) -> _WhichOneofReturnType_type | None: ... + +Global___Metadata: _TypeAlias = Metadata + +@_typing.final +class SourceLocator(_message.Message): """* Definitions for structured metadata formats * For locating source data """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor class _SourceType: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType class _SourceTypeEnumTypeWrapper( - google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[SourceLocator._SourceType.ValueType], builtins.type + _enum_type_wrapper._EnumTypeWrapper[SourceLocator._SourceType.ValueType], _builtins.type ): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + DESCRIPTOR: _descriptor.EnumDescriptor UNKNOWN: SourceLocator._SourceType.ValueType DEFINITION: SourceLocator._SourceType.ValueType "source defining this class, would be present in library" @@ -177,81 +182,81 @@ class SourceLocator(google.protobuf.message.Message): "source defining this class, would be present in library" INSTANTIATION: SourceLocator.SourceType.ValueType "source of instantiation, would be present in design" - FILE_PACKAGE_FIELD_NUMBER: builtins.int - LINE_OFFSET_FIELD_NUMBER: builtins.int - COL_OFFSET_FIELD_NUMBER: builtins.int - SOURCE_TYPE_FIELD_NUMBER: builtins.int - file_package: builtins.str + FILE_PACKAGE_FIELD_NUMBER: _builtins.int + LINE_OFFSET_FIELD_NUMBER: _builtins.int + COL_OFFSET_FIELD_NUMBER: _builtins.int + SOURCE_TYPE_FIELD_NUMBER: _builtins.int + file_package: _builtins.str "package name (portable, not tied to an absolute path) that locates the file" - line_offset: builtins.int + line_offset: _builtins.int "line number" - col_offset: builtins.int + col_offset: _builtins.int "character offset within the line" - source_type: global___SourceLocator.SourceType.ValueType + source_type: Global___SourceLocator.SourceType.ValueType def __init__( self, *, - file_package: builtins.str = ..., - line_offset: builtins.int = ..., - col_offset: builtins.int = ..., - source_type: global___SourceLocator.SourceType.ValueType = ..., + file_package: _builtins.str = ..., + line_offset: _builtins.int = ..., + col_offset: _builtins.int = ..., + source_type: Global___SourceLocator.SourceType.ValueType = ..., ) -> None: ... - def ClearField( - self, - field_name: typing_extensions.Literal[ - "col_offset", - b"col_offset", - "file_package", - b"file_package", - "line_offset", - b"line_offset", - "source_type", - b"source_type", - ], - ) -> None: ... - -global___SourceLocator = SourceLocator - -@typing_extensions.final -class Error(google.protobuf.message.Message): + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "col_offset", + b"col_offset", + "file_package", + b"file_package", + "line_offset", + b"line_offset", + "source_type", + b"source_type", + ] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___SourceLocator: _TypeAlias = SourceLocator + +@_typing.final +class Error(_message.Message): """* Used to communicate results of analysis / checking passes. Limited to Block and Link objects. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MESSAGE_FIELD_NUMBER: builtins.int - TRACEBACK_FIELD_NUMBER: builtins.int - SOURCE_FIELD_NUMBER: builtins.int - message: builtins.str + DESCRIPTOR: _descriptor.Descriptor + MESSAGE_FIELD_NUMBER: _builtins.int + TRACEBACK_FIELD_NUMBER: _builtins.int + SOURCE_FIELD_NUMBER: _builtins.int + message: _builtins.str "free-form error message" - traceback: builtins.str + traceback: _builtins.str "full traceback TODO: should there be a structured stack trace?" - @property - def source(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SourceLocator]: + @_builtins.property + def source(self) -> _containers.RepeatedCompositeFieldContainer[Global___SourceLocator]: """source locator, eg line of failing constraint""" def __init__( self, *, - message: builtins.str = ..., - traceback: builtins.str = ..., - source: collections.abc.Iterable[global___SourceLocator] | None = ..., - ) -> None: ... - def ClearField( - self, - field_name: typing_extensions.Literal["message", b"message", "source", b"source", "traceback", b"traceback"], + message: _builtins.str = ..., + traceback: _builtins.str = ..., + source: _abc.Iterable[Global___SourceLocator] | None = ..., ) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "message", b"message", "source", b"source", "traceback", b"traceback" + ] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Error = Error +Global___Error: _TypeAlias = Error -@typing_extensions.final -class Empty(google.protobuf.message.Message): +@_typing.final +class Empty(_message.Message): """* Placeholder until I figure out how to import properly""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___Empty = Empty +Global___Empty: _TypeAlias = Empty diff --git a/edg/edgir/elem_pb2.py b/edg/edgir/elem_pb2.py index 840892556..5b5633fd0 100644 --- a/edg/edgir/elem_pb2.py +++ b/edg/edgir/elem_pb2.py @@ -12,7 +12,7 @@ from ..edgir import ref_pb2 as edgir_dot_ref__pb2 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n\x10edgir/elem.proto\x12\nedgir.elem\x1a\x12edgir/common.proto\x1a\x10edgir/init.proto\x1a\x10edgir/expr.proto\x1a\x0fedgir/ref.proto"@\n\x0cNamedValInit\x12\x0c\n\x04name\x18\x01 \x01(\t\x12"\n\x05value\x18\x02 \x01(\x0b2\x13.edgir.init.ValInit"D\n\x0eNamedValueExpr\x12\x0c\n\x04name\x18\x01 \x01(\t\x12$\n\x05value\x18\x02 \x01(\x0b2\x15.edgir.expr.ValueExpr"B\n\rNamedPortLike\x12\x0c\n\x04name\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b2\x14.edgir.elem.PortLike"D\n\x0eNamedBlockLike\x12\x0c\n\x04name\x18\x01 \x01(\t\x12$\n\x05value\x18\x02 \x01(\x0b2\x15.edgir.elem.BlockLike"B\n\rNamedLinkLike\x12\x0c\n\x04name\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b2\x14.edgir.elem.LinkLike"\x95\x02\n\x04Port\x12(\n\x06params\x18( \x03(\x0b2\x18.edgir.elem.NamedValInit\x12/\n\x0bconstraints\x18) \x03(\x0b2\x1a.edgir.elem.NamedValueExpr\x12*\n\nself_class\x18\x14 \x01(\x0b2\x16.edgir.ref.LibraryPath\x12,\n\x0csuperclasses\x18\x15 \x03(\x0b2\x16.edgir.ref.LibraryPath\x122\n\x12super_superclasses\x18\x18 \x03(\x0b2\x16.edgir.ref.LibraryPath\x12$\n\x04meta\x18\x7f \x01(\x0b2\x16.edgir.common.Metadata"\xc1\x02\n\x06Bundle\x12(\n\x06params\x18( \x03(\x0b2\x18.edgir.elem.NamedValInit\x12(\n\x05ports\x18) \x03(\x0b2\x19.edgir.elem.NamedPortLike\x12/\n\x0bconstraints\x18* \x03(\x0b2\x1a.edgir.elem.NamedValueExpr\x12*\n\nself_class\x18\x14 \x01(\x0b2\x16.edgir.ref.LibraryPath\x12,\n\x0csuperclasses\x18\x15 \x03(\x0b2\x16.edgir.ref.LibraryPath\x122\n\x12super_superclasses\x18\x18 \x03(\x0b2\x16.edgir.ref.LibraryPath\x12$\n\x04meta\x18\x7f \x01(\x0b2\x16.edgir.common.Metadata"\xca\x01\n\tPortArray\x12*\n\nself_class\x18\x14 \x01(\x0b2\x16.edgir.ref.LibraryPath\x12,\n\x05ports\x18\x0e \x01(\x0b2\x1b.edgir.elem.PortArray.PortsH\x00\x12$\n\x04meta\x18\x7f \x01(\x0b2\x16.edgir.common.Metadata\x1a1\n\x05Ports\x12(\n\x05ports\x18( \x03(\x0b2\x19.edgir.elem.NamedPortLikeB\n\n\x08contains"\xd6\x01\n\x08PortLike\x12(\n\tundefined\x18\x01 \x01(\x0b2\x13.edgir.common.EmptyH\x00\x12*\n\x08lib_elem\x18\x02 \x01(\x0b2\x16.edgir.ref.LibraryPathH\x00\x12 \n\x04port\x18\x03 \x01(\x0b2\x10.edgir.elem.PortH\x00\x12&\n\x05array\x18\x04 \x01(\x0b2\x15.edgir.elem.PortArrayH\x00\x12$\n\x06bundle\x18\x06 \x01(\x0b2\x12.edgir.elem.BundleH\x00B\x04\n\x02is"=\n\tParameter\x12"\n\x04path\x18\x01 \x01(\x0b2\x14.edgir.ref.LocalPath\x12\x0c\n\x04unit\x18\x02 \x01(\t"a\n\x18StringDescriptionElement\x12\x0e\n\x04text\x18\x01 \x01(\tH\x00\x12&\n\x05param\x18\x02 \x01(\x0b2\x15.edgir.elem.ParameterH\x00B\r\n\x0bElementType"\xc4\x06\n\x0eHierarchyBlock\x12(\n\x06params\x18( \x03(\x0b2\x18.edgir.elem.NamedValInit\x12E\n\x0eparam_defaults\x18\x0f \x03(\x0b2-.edgir.elem.HierarchyBlock.ParamDefaultsEntry\x12(\n\x05ports\x18) \x03(\x0b2\x19.edgir.elem.NamedPortLike\x12*\n\x06blocks\x18* \x03(\x0b2\x1a.edgir.elem.NamedBlockLike\x12(\n\x05links\x18+ \x03(\x0b2\x19.edgir.elem.NamedLinkLike\x12/\n\x0bconstraints\x18, \x03(\x0b2\x1a.edgir.elem.NamedValueExpr\x12*\n\nself_class\x18\x17 \x01(\x0b2\x16.edgir.ref.LibraryPath\x12,\n\x0csuperclasses\x18\x14 \x03(\x0b2\x16.edgir.ref.LibraryPath\x122\n\x12super_superclasses\x18\x18 \x03(\x0b2\x16.edgir.ref.LibraryPath\x12/\n\x0fprerefine_class\x18\x15 \x01(\x0b2\x16.edgir.ref.LibraryPath\x120\n\x10prerefine_mixins\x18\x19 \x03(\x0b2\x16.edgir.ref.LibraryPath\x12(\n\tgenerator\x18\x16 \x01(\x0b2\x15.edgir.elem.Generator\x12\x13\n\x0bis_abstract\x18\x1e \x01(\x08\x122\n\x12default_refinement\x18\x1f \x01(\x0b2\x16.edgir.ref.LibraryPath\x12$\n\x04meta\x18\x7f \x01(\x0b2\x16.edgir.common.Metadata\x129\n\x0bdescription\x18\x01 \x03(\x0b2$.edgir.elem.StringDescriptionElement\x1aK\n\x12ParamDefaultsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12$\n\x05value\x18\x02 \x01(\x0b2\x15.edgir.expr.ValueExpr:\x028\x01":\n\tGenerator\x12-\n\x0frequired_params\x18\x02 \x03(\x0b2\x14.edgir.ref.LocalPath"\\\n\x0cBlockLibrary\x12$\n\x04base\x18\x02 \x01(\x0b2\x16.edgir.ref.LibraryPath\x12&\n\x06mixins\x18\x03 \x03(\x0b2\x16.edgir.ref.LibraryPath"\x9c\x01\n\tBlockLike\x12(\n\tundefined\x18\x01 \x01(\x0b2\x13.edgir.common.EmptyH\x00\x12,\n\x08lib_elem\x18\x05 \x01(\x0b2\x18.edgir.elem.BlockLibraryH\x00\x12/\n\thierarchy\x18\x04 \x01(\x0b2\x1a.edgir.elem.HierarchyBlockH\x00B\x06\n\x04type"\xa4\x03\n\x04Link\x12(\n\x06params\x18( \x03(\x0b2\x18.edgir.elem.NamedValInit\x12(\n\x05ports\x18) \x03(\x0b2\x19.edgir.elem.NamedPortLike\x12(\n\x05links\x18+ \x03(\x0b2\x19.edgir.elem.NamedLinkLike\x12/\n\x0bconstraints\x18* \x03(\x0b2\x1a.edgir.elem.NamedValueExpr\x12*\n\nself_class\x18\x14 \x01(\x0b2\x16.edgir.ref.LibraryPath\x12,\n\x0csuperclasses\x18\x15 \x03(\x0b2\x16.edgir.ref.LibraryPath\x122\n\x12super_superclasses\x18\x18 \x03(\x0b2\x16.edgir.ref.LibraryPath\x12$\n\x04meta\x18\x7f \x01(\x0b2\x16.edgir.common.Metadata\x129\n\x0bdescription\x18\x01 \x03(\x0b2$.edgir.elem.StringDescriptionElement"\xe2\x01\n\tLinkArray\x12*\n\nself_class\x18\x14 \x01(\x0b2\x16.edgir.ref.LibraryPath\x12(\n\x05ports\x18) \x03(\x0b2\x19.edgir.elem.NamedPortLike\x12/\n\x0bconstraints\x18* \x03(\x0b2\x1a.edgir.elem.NamedValueExpr\x12(\n\x05links\x18+ \x03(\x0b2\x19.edgir.elem.NamedLinkLike\x12$\n\x04meta\x18\x7f \x01(\x0b2\x16.edgir.common.Metadata"\xb2\x01\n\x08LinkLike\x12(\n\tundefined\x18\x01 \x01(\x0b2\x13.edgir.common.EmptyH\x00\x12*\n\x08lib_elem\x18\x02 \x01(\x0b2\x16.edgir.ref.LibraryPathH\x00\x12 \n\x04link\x18\x03 \x01(\x0b2\x10.edgir.elem.LinkH\x00\x12&\n\x05array\x18\x04 \x01(\x0b2\x15.edgir.elem.LinkArrayH\x00B\x06\n\x04typeb\x06proto3' + b'\n\x10edgir/elem.proto\x12\nedgir.elem\x1a\x12edgir/common.proto\x1a\x10edgir/init.proto\x1a\x10edgir/expr.proto\x1a\x0fedgir/ref.proto"@\n\x0cNamedValInit\x12\x0c\n\x04name\x18\x01 \x01(\t\x12"\n\x05value\x18\x02 \x01(\x0b2\x13.edgir.init.ValInit"D\n\x0eNamedValueExpr\x12\x0c\n\x04name\x18\x01 \x01(\t\x12$\n\x05value\x18\x02 \x01(\x0b2\x15.edgir.expr.ValueExpr"B\n\rNamedPortLike\x12\x0c\n\x04name\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b2\x14.edgir.elem.PortLike"D\n\x0eNamedBlockLike\x12\x0c\n\x04name\x18\x01 \x01(\t\x12$\n\x05value\x18\x02 \x01(\x0b2\x15.edgir.elem.BlockLike"B\n\rNamedLinkLike\x12\x0c\n\x04name\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b2\x14.edgir.elem.LinkLike"\xbf\x02\n\x04Port\x12(\n\x06params\x18( \x03(\x0b2\x18.edgir.elem.NamedValInit\x12/\n\x0bconstraints\x18) \x03(\x0b2\x1a.edgir.elem.NamedValueExpr\x12(\n\x05ports\x18* \x03(\x0b2\x19.edgir.elem.NamedPortLike\x12*\n\nself_class\x18\x14 \x01(\x0b2\x16.edgir.ref.LibraryPath\x12,\n\x0csuperclasses\x18\x15 \x03(\x0b2\x16.edgir.ref.LibraryPath\x122\n\x12super_superclasses\x18\x18 \x03(\x0b2\x16.edgir.ref.LibraryPath\x12$\n\x04meta\x18\x7f \x01(\x0b2\x16.edgir.common.Metadata"\xca\x01\n\tPortArray\x12*\n\nself_class\x18\x14 \x01(\x0b2\x16.edgir.ref.LibraryPath\x12,\n\x05ports\x18\x0e \x01(\x0b2\x1b.edgir.elem.PortArray.PortsH\x00\x12$\n\x04meta\x18\x7f \x01(\x0b2\x16.edgir.common.Metadata\x1a1\n\x05Ports\x12(\n\x05ports\x18( \x03(\x0b2\x19.edgir.elem.NamedPortLikeB\n\n\x08contains"\xb0\x01\n\x08PortLike\x12(\n\tundefined\x18\x01 \x01(\x0b2\x13.edgir.common.EmptyH\x00\x12*\n\x08lib_elem\x18\x02 \x01(\x0b2\x16.edgir.ref.LibraryPathH\x00\x12 \n\x04port\x18\x03 \x01(\x0b2\x10.edgir.elem.PortH\x00\x12&\n\x05array\x18\x04 \x01(\x0b2\x15.edgir.elem.PortArrayH\x00B\x04\n\x02is"=\n\tParameter\x12"\n\x04path\x18\x01 \x01(\x0b2\x14.edgir.ref.LocalPath\x12\x0c\n\x04unit\x18\x02 \x01(\t"a\n\x18StringDescriptionElement\x12\x0e\n\x04text\x18\x01 \x01(\tH\x00\x12&\n\x05param\x18\x02 \x01(\x0b2\x15.edgir.elem.ParameterH\x00B\r\n\x0bElementType"\xc4\x06\n\x0eHierarchyBlock\x12(\n\x06params\x18( \x03(\x0b2\x18.edgir.elem.NamedValInit\x12E\n\x0eparam_defaults\x18\x0f \x03(\x0b2-.edgir.elem.HierarchyBlock.ParamDefaultsEntry\x12(\n\x05ports\x18) \x03(\x0b2\x19.edgir.elem.NamedPortLike\x12*\n\x06blocks\x18* \x03(\x0b2\x1a.edgir.elem.NamedBlockLike\x12(\n\x05links\x18+ \x03(\x0b2\x19.edgir.elem.NamedLinkLike\x12/\n\x0bconstraints\x18, \x03(\x0b2\x1a.edgir.elem.NamedValueExpr\x12*\n\nself_class\x18\x17 \x01(\x0b2\x16.edgir.ref.LibraryPath\x12,\n\x0csuperclasses\x18\x14 \x03(\x0b2\x16.edgir.ref.LibraryPath\x122\n\x12super_superclasses\x18\x18 \x03(\x0b2\x16.edgir.ref.LibraryPath\x12/\n\x0fprerefine_class\x18\x15 \x01(\x0b2\x16.edgir.ref.LibraryPath\x120\n\x10prerefine_mixins\x18\x19 \x03(\x0b2\x16.edgir.ref.LibraryPath\x12(\n\tgenerator\x18\x16 \x01(\x0b2\x15.edgir.elem.Generator\x12\x13\n\x0bis_abstract\x18\x1e \x01(\x08\x122\n\x12default_refinement\x18\x1f \x01(\x0b2\x16.edgir.ref.LibraryPath\x12$\n\x04meta\x18\x7f \x01(\x0b2\x16.edgir.common.Metadata\x129\n\x0bdescription\x18\x01 \x03(\x0b2$.edgir.elem.StringDescriptionElement\x1aK\n\x12ParamDefaultsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12$\n\x05value\x18\x02 \x01(\x0b2\x15.edgir.expr.ValueExpr:\x028\x01":\n\tGenerator\x12-\n\x0frequired_params\x18\x02 \x03(\x0b2\x14.edgir.ref.LocalPath"\\\n\x0cBlockLibrary\x12$\n\x04base\x18\x02 \x01(\x0b2\x16.edgir.ref.LibraryPath\x12&\n\x06mixins\x18\x03 \x03(\x0b2\x16.edgir.ref.LibraryPath"\x9c\x01\n\tBlockLike\x12(\n\tundefined\x18\x01 \x01(\x0b2\x13.edgir.common.EmptyH\x00\x12,\n\x08lib_elem\x18\x05 \x01(\x0b2\x18.edgir.elem.BlockLibraryH\x00\x12/\n\thierarchy\x18\x04 \x01(\x0b2\x1a.edgir.elem.HierarchyBlockH\x00B\x06\n\x04type"\xa4\x03\n\x04Link\x12(\n\x06params\x18( \x03(\x0b2\x18.edgir.elem.NamedValInit\x12(\n\x05ports\x18) \x03(\x0b2\x19.edgir.elem.NamedPortLike\x12(\n\x05links\x18+ \x03(\x0b2\x19.edgir.elem.NamedLinkLike\x12/\n\x0bconstraints\x18* \x03(\x0b2\x1a.edgir.elem.NamedValueExpr\x12*\n\nself_class\x18\x14 \x01(\x0b2\x16.edgir.ref.LibraryPath\x12,\n\x0csuperclasses\x18\x15 \x03(\x0b2\x16.edgir.ref.LibraryPath\x122\n\x12super_superclasses\x18\x18 \x03(\x0b2\x16.edgir.ref.LibraryPath\x12$\n\x04meta\x18\x7f \x01(\x0b2\x16.edgir.common.Metadata\x129\n\x0bdescription\x18\x01 \x03(\x0b2$.edgir.elem.StringDescriptionElement"\xe2\x01\n\tLinkArray\x12*\n\nself_class\x18\x14 \x01(\x0b2\x16.edgir.ref.LibraryPath\x12(\n\x05ports\x18) \x03(\x0b2\x19.edgir.elem.NamedPortLike\x12/\n\x0bconstraints\x18* \x03(\x0b2\x1a.edgir.elem.NamedValueExpr\x12(\n\x05links\x18+ \x03(\x0b2\x19.edgir.elem.NamedLinkLike\x12$\n\x04meta\x18\x7f \x01(\x0b2\x16.edgir.common.Metadata"\xb2\x01\n\x08LinkLike\x12(\n\tundefined\x18\x01 \x01(\x0b2\x13.edgir.common.EmptyH\x00\x12*\n\x08lib_elem\x18\x02 \x01(\x0b2\x16.edgir.ref.LibraryPathH\x00\x12 \n\x04link\x18\x03 \x01(\x0b2\x10.edgir.elem.LinkH\x00\x12&\n\x05array\x18\x04 \x01(\x0b2\x15.edgir.elem.LinkArrayH\x00B\x06\n\x04typeb\x06proto3' ) _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, "edgir.elem_pb2", globals()) @@ -31,32 +31,30 @@ _NAMEDLINKLIKE._serialized_start = 379 _NAMEDLINKLIKE._serialized_end = 445 _PORT._serialized_start = 448 - _PORT._serialized_end = 725 - _BUNDLE._serialized_start = 728 - _BUNDLE._serialized_end = 1049 - _PORTARRAY._serialized_start = 1052 - _PORTARRAY._serialized_end = 1254 - _PORTARRAY_PORTS._serialized_start = 1193 - _PORTARRAY_PORTS._serialized_end = 1242 - _PORTLIKE._serialized_start = 1257 - _PORTLIKE._serialized_end = 1471 - _PARAMETER._serialized_start = 1473 - _PARAMETER._serialized_end = 1534 - _STRINGDESCRIPTIONELEMENT._serialized_start = 1536 - _STRINGDESCRIPTIONELEMENT._serialized_end = 1633 - _HIERARCHYBLOCK._serialized_start = 1636 - _HIERARCHYBLOCK._serialized_end = 2472 - _HIERARCHYBLOCK_PARAMDEFAULTSENTRY._serialized_start = 2397 - _HIERARCHYBLOCK_PARAMDEFAULTSENTRY._serialized_end = 2472 - _GENERATOR._serialized_start = 2474 - _GENERATOR._serialized_end = 2532 - _BLOCKLIBRARY._serialized_start = 2534 - _BLOCKLIBRARY._serialized_end = 2626 - _BLOCKLIKE._serialized_start = 2629 - _BLOCKLIKE._serialized_end = 2785 - _LINK._serialized_start = 2788 - _LINK._serialized_end = 3208 - _LINKARRAY._serialized_start = 3211 - _LINKARRAY._serialized_end = 3437 - _LINKLIKE._serialized_start = 3440 - _LINKLIKE._serialized_end = 3618 + _PORT._serialized_end = 767 + _PORTARRAY._serialized_start = 770 + _PORTARRAY._serialized_end = 972 + _PORTARRAY_PORTS._serialized_start = 911 + _PORTARRAY_PORTS._serialized_end = 960 + _PORTLIKE._serialized_start = 975 + _PORTLIKE._serialized_end = 1151 + _PARAMETER._serialized_start = 1153 + _PARAMETER._serialized_end = 1214 + _STRINGDESCRIPTIONELEMENT._serialized_start = 1216 + _STRINGDESCRIPTIONELEMENT._serialized_end = 1313 + _HIERARCHYBLOCK._serialized_start = 1316 + _HIERARCHYBLOCK._serialized_end = 2152 + _HIERARCHYBLOCK_PARAMDEFAULTSENTRY._serialized_start = 2077 + _HIERARCHYBLOCK_PARAMDEFAULTSENTRY._serialized_end = 2152 + _GENERATOR._serialized_start = 2154 + _GENERATOR._serialized_end = 2212 + _BLOCKLIBRARY._serialized_start = 2214 + _BLOCKLIBRARY._serialized_end = 2306 + _BLOCKLIKE._serialized_start = 2309 + _BLOCKLIKE._serialized_end = 2465 + _LINK._serialized_start = 2468 + _LINK._serialized_end = 2888 + _LINKARRAY._serialized_start = 2891 + _LINKARRAY._serialized_end = 3117 + _LINKLIKE._serialized_start = 3120 + _LINKLIKE._serialized_end = 3298 diff --git a/edg/edgir/elem_pb2.pyi b/edg/edgir/elem_pb2.pyi index c1a1b0487..4922395ee 100644 --- a/edg/edgir/elem_pb2.pyi +++ b/edg/edgir/elem_pb2.pyi @@ -14,853 +14,756 @@ elements within a design within the protobuf. In general, when there is a library element, we """ -import builtins -import collections.abc -from .. import edgir -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message +from collections import abc as _abc +from edgir import common_pb2 as _common_pb2 +from edgir import expr_pb2 as _expr_pb2 +from edgir import init_pb2 as _init_pb2 +from edgir import ref_pb2 as _ref_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor -@typing_extensions.final -class NamedValInit(google.protobuf.message.Message): +@_typing.final +class NamedValInit(_message.Message): """These are essentially a element in a map, but because maps are unordered (whereas we want to preserve ordering to preserve design intent through the compiler), we use a sequence of these pairs. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - name: builtins.str - - @property - def value(self) -> edgir.init_pb2.ValInit: ... - def __init__(self, *, name: builtins.str = ..., value: edgir.init_pb2.ValInit | None = ...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "value", b"value"]) -> None: ... - -global___NamedValInit = NamedValInit - -@typing_extensions.final -class NamedValueExpr(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - name: builtins.str - - @property - def value(self) -> edgir.expr_pb2.ValueExpr: ... - def __init__(self, *, name: builtins.str = ..., value: edgir.expr_pb2.ValueExpr | None = ...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "value", b"value"]) -> None: ... - -global___NamedValueExpr = NamedValueExpr - -@typing_extensions.final -class NamedPortLike(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - name: builtins.str - - @property - def value(self) -> global___PortLike: ... - def __init__(self, *, name: builtins.str = ..., value: global___PortLike | None = ...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "value", b"value"]) -> None: ... - -global___NamedPortLike = NamedPortLike - -@typing_extensions.final -class NamedBlockLike(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - name: builtins.str - - @property - def value(self) -> global___BlockLike: ... - def __init__(self, *, name: builtins.str = ..., value: global___BlockLike | None = ...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "value", b"value"]) -> None: ... - -global___NamedBlockLike = NamedBlockLike - -@typing_extensions.final -class NamedLinkLike(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - name: builtins.str - - @property - def value(self) -> global___LinkLike: ... - def __init__(self, *, name: builtins.str = ..., value: global___LinkLike | None = ...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "value", b"value"]) -> None: ... - -global___NamedLinkLike = NamedLinkLike - -@typing_extensions.final -class Port(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PARAMS_FIELD_NUMBER: builtins.int - CONSTRAINTS_FIELD_NUMBER: builtins.int - SELF_CLASS_FIELD_NUMBER: builtins.int - SUPERCLASSES_FIELD_NUMBER: builtins.int - SUPER_SUPERCLASSES_FIELD_NUMBER: builtins.int - META_FIELD_NUMBER: builtins.int - - @property - def params(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NamedValInit]: ... - @property - def constraints( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NamedValueExpr]: ... - @property - def self_class(self) -> edgir.ref_pb2.LibraryPath: ... - @property - def superclasses( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[edgir.ref_pb2.LibraryPath]: - """superclasses, may be empty""" + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + name: _builtins.str - @property - def super_superclasses( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[edgir.ref_pb2.LibraryPath]: - """all (recursive) superclasses above superclasses""" + @_builtins.property + def value(self) -> _init_pb2.ValInit: ... + def __init__(self, *, name: _builtins.str = ..., value: _init_pb2.ValInit | None = ...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["value", b"value"] - @property - def meta(self) -> edgir.common_pb2.Metadata: - """TODO: this provides type hierarchy data only, inheritance semantics are currently undefined""" - - def __init__( - self, - *, - params: collections.abc.Iterable[global___NamedValInit] | None = ..., - constraints: collections.abc.Iterable[global___NamedValueExpr] | None = ..., - self_class: edgir.ref_pb2.LibraryPath | None = ..., - superclasses: collections.abc.Iterable[edgir.ref_pb2.LibraryPath] | None = ..., - super_superclasses: collections.abc.Iterable[edgir.ref_pb2.LibraryPath] | None = ..., - meta: edgir.common_pb2.Metadata | None = ..., - ) -> None: ... - def HasField( - self, field_name: typing_extensions.Literal["meta", b"meta", "self_class", b"self_class"] - ) -> builtins.bool: ... - def ClearField( - self, - field_name: typing_extensions.Literal[ - "constraints", - b"constraints", - "meta", - b"meta", - "params", - b"params", - "self_class", - b"self_class", - "super_superclasses", - b"super_superclasses", - "superclasses", - b"superclasses", - ], - ) -> None: ... - -global___Port = Port - -@typing_extensions.final -class Bundle(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PARAMS_FIELD_NUMBER: builtins.int - PORTS_FIELD_NUMBER: builtins.int - CONSTRAINTS_FIELD_NUMBER: builtins.int - SELF_CLASS_FIELD_NUMBER: builtins.int - SUPERCLASSES_FIELD_NUMBER: builtins.int - SUPER_SUPERCLASSES_FIELD_NUMBER: builtins.int - META_FIELD_NUMBER: builtins.int - - @property - def params(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NamedValInit]: ... - @property - def ports(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NamedPortLike]: ... - @property - def constraints( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NamedValueExpr]: ... - @property - def self_class(self) -> edgir.ref_pb2.LibraryPath: ... - @property - def superclasses( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[edgir.ref_pb2.LibraryPath]: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "value", b"value"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___NamedValInit: _TypeAlias = NamedValInit + +@_typing.final +class NamedValueExpr(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + name: _builtins.str + + @_builtins.property + def value(self) -> _expr_pb2.ValueExpr: ... + def __init__(self, *, name: _builtins.str = ..., value: _expr_pb2.ValueExpr | None = ...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["value", b"value"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "value", b"value"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___NamedValueExpr: _TypeAlias = NamedValueExpr + +@_typing.final +class NamedPortLike(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + name: _builtins.str + + @_builtins.property + def value(self) -> Global___PortLike: ... + def __init__(self, *, name: _builtins.str = ..., value: Global___PortLike | None = ...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["value", b"value"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "value", b"value"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___NamedPortLike: _TypeAlias = NamedPortLike + +@_typing.final +class NamedBlockLike(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + name: _builtins.str + + @_builtins.property + def value(self) -> Global___BlockLike: ... + def __init__(self, *, name: _builtins.str = ..., value: Global___BlockLike | None = ...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["value", b"value"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "value", b"value"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___NamedBlockLike: _TypeAlias = NamedBlockLike + +@_typing.final +class NamedLinkLike(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + name: _builtins.str + + @_builtins.property + def value(self) -> Global___LinkLike: ... + def __init__(self, *, name: _builtins.str = ..., value: Global___LinkLike | None = ...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["value", b"value"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name", "value", b"value"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___NamedLinkLike: _TypeAlias = NamedLinkLike + +@_typing.final +class Port(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PARAMS_FIELD_NUMBER: _builtins.int + CONSTRAINTS_FIELD_NUMBER: _builtins.int + PORTS_FIELD_NUMBER: _builtins.int + SELF_CLASS_FIELD_NUMBER: _builtins.int + SUPERCLASSES_FIELD_NUMBER: _builtins.int + SUPER_SUPERCLASSES_FIELD_NUMBER: _builtins.int + META_FIELD_NUMBER: _builtins.int + + @_builtins.property + def params(self) -> _containers.RepeatedCompositeFieldContainer[Global___NamedValInit]: ... + @_builtins.property + def constraints(self) -> _containers.RepeatedCompositeFieldContainer[Global___NamedValueExpr]: ... + @_builtins.property + def ports(self) -> _containers.RepeatedCompositeFieldContainer[Global___NamedPortLike]: ... + @_builtins.property + def self_class(self) -> _ref_pb2.LibraryPath: ... + @_builtins.property + def superclasses(self) -> _containers.RepeatedCompositeFieldContainer[_ref_pb2.LibraryPath]: """superclasses, may be empty""" - @property - def super_superclasses( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[edgir.ref_pb2.LibraryPath]: + @_builtins.property + def super_superclasses(self) -> _containers.RepeatedCompositeFieldContainer[_ref_pb2.LibraryPath]: """all (recursive) superclasses above superclasses""" - @property - def meta(self) -> edgir.common_pb2.Metadata: ... + @_builtins.property + def meta(self) -> _common_pb2.Metadata: + """TODO: this provides type hierarchy data only, inheritance semantics are currently undefined""" + def __init__( self, *, - params: collections.abc.Iterable[global___NamedValInit] | None = ..., - ports: collections.abc.Iterable[global___NamedPortLike] | None = ..., - constraints: collections.abc.Iterable[global___NamedValueExpr] | None = ..., - self_class: edgir.ref_pb2.LibraryPath | None = ..., - superclasses: collections.abc.Iterable[edgir.ref_pb2.LibraryPath] | None = ..., - super_superclasses: collections.abc.Iterable[edgir.ref_pb2.LibraryPath] | None = ..., - meta: edgir.common_pb2.Metadata | None = ..., - ) -> None: ... - def HasField( - self, field_name: typing_extensions.Literal["meta", b"meta", "self_class", b"self_class"] - ) -> builtins.bool: ... - def ClearField( - self, - field_name: typing_extensions.Literal[ - "constraints", - b"constraints", - "meta", - b"meta", - "params", - b"params", - "ports", - b"ports", - "self_class", - b"self_class", - "super_superclasses", - b"super_superclasses", - "superclasses", - b"superclasses", - ], + params: _abc.Iterable[Global___NamedValInit] | None = ..., + constraints: _abc.Iterable[Global___NamedValueExpr] | None = ..., + ports: _abc.Iterable[Global___NamedPortLike] | None = ..., + self_class: _ref_pb2.LibraryPath | None = ..., + superclasses: _abc.Iterable[_ref_pb2.LibraryPath] | None = ..., + super_superclasses: _abc.Iterable[_ref_pb2.LibraryPath] | None = ..., + meta: _common_pb2.Metadata | None = ..., ) -> None: ... - -global___Bundle = Bundle - -@typing_extensions.final -class PortArray(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - @typing_extensions.final - class Ports(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PORTS_FIELD_NUMBER: builtins.int - - @property - def ports( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NamedPortLike]: ... - def __init__(self, *, ports: collections.abc.Iterable[global___NamedPortLike] | None = ...) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["ports", b"ports"]) -> None: ... - - SELF_CLASS_FIELD_NUMBER: builtins.int - PORTS_FIELD_NUMBER: builtins.int - META_FIELD_NUMBER: builtins.int - - @property - def self_class(self) -> edgir.ref_pb2.LibraryPath: + _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "self_class", b"self_class"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "constraints", + b"constraints", + "meta", + b"meta", + "params", + b"params", + "ports", + b"ports", + "self_class", + b"self_class", + "super_superclasses", + b"super_superclasses", + "superclasses", + b"superclasses", + ] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___Port: _TypeAlias = Port + +@_typing.final +class PortArray(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class Ports(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PORTS_FIELD_NUMBER: _builtins.int + + @_builtins.property + def ports(self) -> _containers.RepeatedCompositeFieldContainer[Global___NamedPortLike]: ... + def __init__(self, *, ports: _abc.Iterable[Global___NamedPortLike] | None = ...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["ports", b"ports"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + SELF_CLASS_FIELD_NUMBER: _builtins.int + PORTS_FIELD_NUMBER: _builtins.int + META_FIELD_NUMBER: _builtins.int + + @_builtins.property + def self_class(self) -> _ref_pb2.LibraryPath: """The class that applies to every port in the set/array. Used when a new port is instantiated by the front or back end. """ - @property - def ports(self) -> global___PortArray.Ports: ... - @property - def meta(self) -> edgir.common_pb2.Metadata: ... + @_builtins.property + def ports(self) -> Global___PortArray.Ports: ... + @_builtins.property + def meta(self) -> _common_pb2.Metadata: ... def __init__( self, *, - self_class: edgir.ref_pb2.LibraryPath | None = ..., - ports: global___PortArray.Ports | None = ..., - meta: edgir.common_pb2.Metadata | None = ..., + self_class: _ref_pb2.LibraryPath | None = ..., + ports: Global___PortArray.Ports | None = ..., + meta: _common_pb2.Metadata | None = ..., ) -> None: ... - def HasField( - self, - field_name: typing_extensions.Literal[ - "contains", b"contains", "meta", b"meta", "ports", b"ports", "self_class", b"self_class" - ], - ) -> builtins.bool: ... - def ClearField( - self, - field_name: typing_extensions.Literal[ - "contains", b"contains", "meta", b"meta", "ports", b"ports", "self_class", b"self_class" - ], - ) -> None: ... - def WhichOneof( - self, oneof_group: typing_extensions.Literal["contains", b"contains"] - ) -> typing_extensions.Literal["ports"] | None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal[ + "contains", b"contains", "meta", b"meta", "ports", b"ports", "self_class", b"self_class" + ] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "contains", b"contains", "meta", b"meta", "ports", b"ports", "self_class", b"self_class" + ] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_contains: _TypeAlias = _typing.Literal["ports"] + _WhichOneofArgType_contains: _TypeAlias = _typing.Literal["contains", b"contains"] -global___PortArray = PortArray + def WhichOneof(self, oneof_group: _WhichOneofArgType_contains) -> _WhichOneofReturnType_contains | None: ... -@typing_extensions.final -class PortLike(google.protobuf.message.Message): +Global___PortArray: _TypeAlias = PortArray + +@_typing.final +class PortLike(_message.Message): """* Wrapper for different port like elements""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - UNDEFINED_FIELD_NUMBER: builtins.int - LIB_ELEM_FIELD_NUMBER: builtins.int - PORT_FIELD_NUMBER: builtins.int - ARRAY_FIELD_NUMBER: builtins.int - BUNDLE_FIELD_NUMBER: builtins.int - - @property - def undefined(self) -> edgir.common_pb2.Empty: ... - @property - def lib_elem(self) -> edgir.ref_pb2.LibraryPath: ... - @property - def port(self) -> global___Port: + DESCRIPTOR: _descriptor.Descriptor + UNDEFINED_FIELD_NUMBER: _builtins.int + LIB_ELEM_FIELD_NUMBER: _builtins.int + PORT_FIELD_NUMBER: _builtins.int + ARRAY_FIELD_NUMBER: _builtins.int + + @_builtins.property + def undefined(self) -> _common_pb2.Empty: ... + @_builtins.property + def lib_elem(self) -> _ref_pb2.LibraryPath: ... + @_builtins.property + def port(self) -> Global___Port: """* 'port' disallowed w/in the library""" - @property - def array(self) -> global___PortArray: ... - @property - def bundle(self) -> global___Bundle: - """* 'bundle' disallowed w/in the library""" - + @_builtins.property + def array(self) -> Global___PortArray: ... def __init__( self, *, - undefined: edgir.common_pb2.Empty | None = ..., - lib_elem: edgir.ref_pb2.LibraryPath | None = ..., - port: global___Port | None = ..., - array: global___PortArray | None = ..., - bundle: global___Bundle | None = ..., - ) -> None: ... - def HasField( - self, - field_name: typing_extensions.Literal[ - "array", - b"array", - "bundle", - b"bundle", - "is", - b"is", - "lib_elem", - b"lib_elem", - "port", - b"port", - "undefined", - b"undefined", - ], - ) -> builtins.bool: ... - def ClearField( - self, - field_name: typing_extensions.Literal[ - "array", - b"array", - "bundle", - b"bundle", - "is", - b"is", - "lib_elem", - b"lib_elem", - "port", - b"port", - "undefined", - b"undefined", - ], + undefined: _common_pb2.Empty | None = ..., + lib_elem: _ref_pb2.LibraryPath | None = ..., + port: Global___Port | None = ..., + array: Global___PortArray | None = ..., ) -> None: ... - def WhichOneof( - self, oneof_group: typing_extensions.Literal["is", b"is"] - ) -> typing_extensions.Literal["undefined", "lib_elem", "port", "array", "bundle"] | None: ... - -global___PortLike = PortLike - -@typing_extensions.final -class Parameter(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PATH_FIELD_NUMBER: builtins.int - UNIT_FIELD_NUMBER: builtins.int - - @property - def path(self) -> edgir.ref_pb2.LocalPath: ... - unit: builtins.str - - def __init__(self, *, path: edgir.ref_pb2.LocalPath | None = ..., unit: builtins.str = ...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["path", b"path"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["path", b"path", "unit", b"unit"]) -> None: ... - -global___Parameter = Parameter - -@typing_extensions.final -class StringDescriptionElement(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TEXT_FIELD_NUMBER: builtins.int - PARAM_FIELD_NUMBER: builtins.int - text: builtins.str - - @property - def param(self) -> global___Parameter: ... - def __init__(self, *, text: builtins.str = ..., param: global___Parameter | None = ...) -> None: ... - def HasField( - self, field_name: typing_extensions.Literal["ElementType", b"ElementType", "param", b"param", "text", b"text"] - ) -> builtins.bool: ... - def ClearField( - self, field_name: typing_extensions.Literal["ElementType", b"ElementType", "param", b"param", "text", b"text"] - ) -> None: ... - def WhichOneof( - self, oneof_group: typing_extensions.Literal["ElementType", b"ElementType"] - ) -> typing_extensions.Literal["text", "param"] | None: ... - -global___StringDescriptionElement = StringDescriptionElement - -@typing_extensions.final -class HierarchyBlock(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - @typing_extensions.final - class ParamDefaultsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - - @property - def value(self) -> edgir.expr_pb2.ValueExpr: ... - def __init__(self, *, key: builtins.str = ..., value: edgir.expr_pb2.ValueExpr | None = ...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - PARAMS_FIELD_NUMBER: builtins.int - PARAM_DEFAULTS_FIELD_NUMBER: builtins.int - PORTS_FIELD_NUMBER: builtins.int - BLOCKS_FIELD_NUMBER: builtins.int - LINKS_FIELD_NUMBER: builtins.int - CONSTRAINTS_FIELD_NUMBER: builtins.int - SELF_CLASS_FIELD_NUMBER: builtins.int - SUPERCLASSES_FIELD_NUMBER: builtins.int - SUPER_SUPERCLASSES_FIELD_NUMBER: builtins.int - PREREFINE_CLASS_FIELD_NUMBER: builtins.int - PREREFINE_MIXINS_FIELD_NUMBER: builtins.int - GENERATOR_FIELD_NUMBER: builtins.int - IS_ABSTRACT_FIELD_NUMBER: builtins.int - DEFAULT_REFINEMENT_FIELD_NUMBER: builtins.int - META_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - - @property - def params(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NamedValInit]: ... - @property - def param_defaults(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, edgir.expr_pb2.ValueExpr]: + _HasFieldArgType: _TypeAlias = _typing.Literal[ + "array", b"array", "is", b"is", "lib_elem", b"lib_elem", "port", b"port", "undefined", b"undefined" + ] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "array", b"array", "is", b"is", "lib_elem", b"lib_elem", "port", b"port", "undefined", b"undefined" + ] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_is: _TypeAlias = _typing.Literal["undefined", "lib_elem", "port", "array"] + _WhichOneofArgType_is: _TypeAlias = _typing.Literal["is", b"is"] + + def WhichOneof(self, oneof_group: _WhichOneofArgType_is) -> _WhichOneofReturnType_is | None: ... + +Global___PortLike: _TypeAlias = PortLike + +@_typing.final +class Parameter(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PATH_FIELD_NUMBER: _builtins.int + UNIT_FIELD_NUMBER: _builtins.int + unit: _builtins.str + + @_builtins.property + def path(self) -> _ref_pb2.LocalPath: ... + def __init__(self, *, path: _ref_pb2.LocalPath | None = ..., unit: _builtins.str = ...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["path", b"path"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["path", b"path", "unit", b"unit"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___Parameter: _TypeAlias = Parameter + +@_typing.final +class StringDescriptionElement(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + TEXT_FIELD_NUMBER: _builtins.int + PARAM_FIELD_NUMBER: _builtins.int + text: _builtins.str + + @_builtins.property + def param(self) -> Global___Parameter: ... + def __init__(self, *, text: _builtins.str = ..., param: Global___Parameter | None = ...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["ElementType", b"ElementType", "param", b"param", "text", b"text"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["ElementType", b"ElementType", "param", b"param", "text", b"text"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_ElementType: _TypeAlias = _typing.Literal["text", "param"] + _WhichOneofArgType_ElementType: _TypeAlias = _typing.Literal["ElementType", b"ElementType"] + + def WhichOneof(self, oneof_group: _WhichOneofArgType_ElementType) -> _WhichOneofReturnType_ElementType | None: ... + +Global___StringDescriptionElement: _TypeAlias = StringDescriptionElement + +@_typing.final +class HierarchyBlock(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class ParamDefaultsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + + @_builtins.property + def value(self) -> _expr_pb2.ValueExpr: ... + def __init__(self, *, key: _builtins.str = ..., value: _expr_pb2.ValueExpr | None = ...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["value", b"value"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + PARAMS_FIELD_NUMBER: _builtins.int + PARAM_DEFAULTS_FIELD_NUMBER: _builtins.int + PORTS_FIELD_NUMBER: _builtins.int + BLOCKS_FIELD_NUMBER: _builtins.int + LINKS_FIELD_NUMBER: _builtins.int + CONSTRAINTS_FIELD_NUMBER: _builtins.int + SELF_CLASS_FIELD_NUMBER: _builtins.int + SUPERCLASSES_FIELD_NUMBER: _builtins.int + SUPER_SUPERCLASSES_FIELD_NUMBER: _builtins.int + PREREFINE_CLASS_FIELD_NUMBER: _builtins.int + PREREFINE_MIXINS_FIELD_NUMBER: _builtins.int + GENERATOR_FIELD_NUMBER: _builtins.int + IS_ABSTRACT_FIELD_NUMBER: _builtins.int + DEFAULT_REFINEMENT_FIELD_NUMBER: _builtins.int + META_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + is_abstract: _builtins.bool + "true if self_class is abstract, and should error if used in a design" + + @_builtins.property + def params(self) -> _containers.RepeatedCompositeFieldContainer[Global___NamedValInit]: ... + @_builtins.property + def param_defaults(self) -> _containers.MessageMap[_builtins.str, _expr_pb2.ValueExpr]: """Refinements may introduce new parameters which would not be assigned a value in the parent class. In those cases, those new parameters are given these default values. unordered """ - @property - def ports(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NamedPortLike]: ... - @property - def blocks(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NamedBlockLike]: + @_builtins.property + def ports(self) -> _containers.RepeatedCompositeFieldContainer[Global___NamedPortLike]: ... + @_builtins.property + def blocks(self) -> _containers.RepeatedCompositeFieldContainer[Global___NamedBlockLike]: """* Bridges, which adapt an edge port to a link port - eg, edge VoltageSink to an internal link VoltageSource, are defined as blocks in the IR. Upper layers can define convenience constructs and/or infer these blocks. """ - @property - def links(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NamedLinkLike]: ... - @property - def constraints( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NamedValueExpr]: + @_builtins.property + def links(self) -> _containers.RepeatedCompositeFieldContainer[Global___NamedLinkLike]: ... + @_builtins.property + def constraints(self) -> _containers.RepeatedCompositeFieldContainer[Global___NamedValueExpr]: """* Connections between internal block and link ports are represented by connected constraints. Connections between internal; block and edge (of this block) ports are represented by exported constraints. """ - @property - def self_class(self) -> edgir.ref_pb2.LibraryPath: + @_builtins.property + def self_class(self) -> _ref_pb2.LibraryPath: """self class, equivalent to the library name""" - @property - def superclasses( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[edgir.ref_pb2.LibraryPath]: + @_builtins.property + def superclasses(self) -> _containers.RepeatedCompositeFieldContainer[_ref_pb2.LibraryPath]: """immediate superclasses, may be empty""" - @property - def super_superclasses( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[edgir.ref_pb2.LibraryPath]: + @_builtins.property + def super_superclasses(self) -> _containers.RepeatedCompositeFieldContainer[_ref_pb2.LibraryPath]: """all (recursive) superclasses above superclasses""" - @property - def prerefine_class(self) -> edgir.ref_pb2.LibraryPath: + @_builtins.property + def prerefine_class(self) -> _ref_pb2.LibraryPath: """class pre-refinement, only defined if refined""" - @property - def prerefine_mixins( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[edgir.ref_pb2.LibraryPath]: + @_builtins.property + def prerefine_mixins(self) -> _containers.RepeatedCompositeFieldContainer[_ref_pb2.LibraryPath]: """mixins pre-refinement, from library elem""" - @property - def generator(self) -> global___Generator: + @_builtins.property + def generator(self) -> Global___Generator: """optional, and removed upon invocation""" - is_abstract: builtins.bool - "true if self_class is abstract, and should error if used in a design" - @property - def default_refinement(self) -> edgir.ref_pb2.LibraryPath: + @_builtins.property + def default_refinement(self) -> _ref_pb2.LibraryPath: """optional default refinement subclass, only valid for library blocks""" - @property - def meta(self) -> edgir.common_pb2.Metadata: ... - @property - def description( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___StringDescriptionElement]: ... + @_builtins.property + def meta(self) -> _common_pb2.Metadata: ... + @_builtins.property + def description(self) -> _containers.RepeatedCompositeFieldContainer[Global___StringDescriptionElement]: ... def __init__( self, *, - params: collections.abc.Iterable[global___NamedValInit] | None = ..., - param_defaults: collections.abc.Mapping[builtins.str, edgir.expr_pb2.ValueExpr] | None = ..., - ports: collections.abc.Iterable[global___NamedPortLike] | None = ..., - blocks: collections.abc.Iterable[global___NamedBlockLike] | None = ..., - links: collections.abc.Iterable[global___NamedLinkLike] | None = ..., - constraints: collections.abc.Iterable[global___NamedValueExpr] | None = ..., - self_class: edgir.ref_pb2.LibraryPath | None = ..., - superclasses: collections.abc.Iterable[edgir.ref_pb2.LibraryPath] | None = ..., - super_superclasses: collections.abc.Iterable[edgir.ref_pb2.LibraryPath] | None = ..., - prerefine_class: edgir.ref_pb2.LibraryPath | None = ..., - prerefine_mixins: collections.abc.Iterable[edgir.ref_pb2.LibraryPath] | None = ..., - generator: global___Generator | None = ..., - is_abstract: builtins.bool = ..., - default_refinement: edgir.ref_pb2.LibraryPath | None = ..., - meta: edgir.common_pb2.Metadata | None = ..., - description: collections.abc.Iterable[global___StringDescriptionElement] | None = ..., + params: _abc.Iterable[Global___NamedValInit] | None = ..., + param_defaults: _abc.Mapping[_builtins.str, _expr_pb2.ValueExpr] | None = ..., + ports: _abc.Iterable[Global___NamedPortLike] | None = ..., + blocks: _abc.Iterable[Global___NamedBlockLike] | None = ..., + links: _abc.Iterable[Global___NamedLinkLike] | None = ..., + constraints: _abc.Iterable[Global___NamedValueExpr] | None = ..., + self_class: _ref_pb2.LibraryPath | None = ..., + superclasses: _abc.Iterable[_ref_pb2.LibraryPath] | None = ..., + super_superclasses: _abc.Iterable[_ref_pb2.LibraryPath] | None = ..., + prerefine_class: _ref_pb2.LibraryPath | None = ..., + prerefine_mixins: _abc.Iterable[_ref_pb2.LibraryPath] | None = ..., + generator: Global___Generator | None = ..., + is_abstract: _builtins.bool = ..., + default_refinement: _ref_pb2.LibraryPath | None = ..., + meta: _common_pb2.Metadata | None = ..., + description: _abc.Iterable[Global___StringDescriptionElement] | None = ..., ) -> None: ... - def HasField( - self, - field_name: typing_extensions.Literal[ - "default_refinement", - b"default_refinement", - "generator", - b"generator", - "meta", - b"meta", - "prerefine_class", - b"prerefine_class", - "self_class", - b"self_class", - ], - ) -> builtins.bool: ... - def ClearField( - self, - field_name: typing_extensions.Literal[ - "blocks", - b"blocks", - "constraints", - b"constraints", - "default_refinement", - b"default_refinement", - "description", - b"description", - "generator", - b"generator", - "is_abstract", - b"is_abstract", - "links", - b"links", - "meta", - b"meta", - "param_defaults", - b"param_defaults", - "params", - b"params", - "ports", - b"ports", - "prerefine_class", - b"prerefine_class", - "prerefine_mixins", - b"prerefine_mixins", - "self_class", - b"self_class", - "super_superclasses", - b"super_superclasses", - "superclasses", - b"superclasses", - ], - ) -> None: ... - -global___HierarchyBlock = HierarchyBlock - -@typing_extensions.final -class Generator(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - REQUIRED_PARAMS_FIELD_NUMBER: builtins.int - - @property - def required_params( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[edgir.ref_pb2.LocalPath]: + _HasFieldArgType: _TypeAlias = _typing.Literal[ + "default_refinement", + b"default_refinement", + "generator", + b"generator", + "meta", + b"meta", + "prerefine_class", + b"prerefine_class", + "self_class", + b"self_class", + ] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "blocks", + b"blocks", + "constraints", + b"constraints", + "default_refinement", + b"default_refinement", + "description", + b"description", + "generator", + b"generator", + "is_abstract", + b"is_abstract", + "links", + b"links", + "meta", + b"meta", + "param_defaults", + b"param_defaults", + "params", + b"params", + "ports", + b"ports", + "prerefine_class", + b"prerefine_class", + "prerefine_mixins", + b"prerefine_mixins", + "self_class", + b"self_class", + "super_superclasses", + b"super_superclasses", + "superclasses", + b"superclasses", + ] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___HierarchyBlock: _TypeAlias = HierarchyBlock + +@_typing.final +class Generator(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + REQUIRED_PARAMS_FIELD_NUMBER: _builtins.int + + @_builtins.property + def required_params(self) -> _containers.RepeatedCompositeFieldContainer[_ref_pb2.LocalPath]: """Parameters that must be defined for the generator to fire. These parameters are the only ones accessible to the generator. """ - def __init__(self, *, required_params: collections.abc.Iterable[edgir.ref_pb2.LocalPath] | None = ...) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["required_params", b"required_params"]) -> None: ... + def __init__(self, *, required_params: _abc.Iterable[_ref_pb2.LocalPath] | None = ...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["required_params", b"required_params"] -global___Generator = Generator + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -@typing_extensions.final -class BlockLibrary(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - BASE_FIELD_NUMBER: builtins.int - MIXINS_FIELD_NUMBER: builtins.int +Global___Generator: _TypeAlias = Generator - @property - def base(self) -> edgir.ref_pb2.LibraryPath: ... - @property - def mixins( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[edgir.ref_pb2.LibraryPath]: ... +@_typing.final +class BlockLibrary(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + BASE_FIELD_NUMBER: _builtins.int + MIXINS_FIELD_NUMBER: _builtins.int + + @_builtins.property + def base(self) -> _ref_pb2.LibraryPath: ... + @_builtins.property + def mixins(self) -> _containers.RepeatedCompositeFieldContainer[_ref_pb2.LibraryPath]: ... def __init__( - self, - *, - base: edgir.ref_pb2.LibraryPath | None = ..., - mixins: collections.abc.Iterable[edgir.ref_pb2.LibraryPath] | None = ..., + self, *, base: _ref_pb2.LibraryPath | None = ..., mixins: _abc.Iterable[_ref_pb2.LibraryPath] | None = ... ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["base", b"base"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["base", b"base", "mixins", b"mixins"]) -> None: ... - -global___BlockLibrary = BlockLibrary - -@typing_extensions.final -class BlockLike(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - UNDEFINED_FIELD_NUMBER: builtins.int - LIB_ELEM_FIELD_NUMBER: builtins.int - HIERARCHY_FIELD_NUMBER: builtins.int - - @property - def undefined(self) -> edgir.common_pb2.Empty: ... - @property - def lib_elem(self) -> global___BlockLibrary: ... - @property - def hierarchy(self) -> global___HierarchyBlock: + _HasFieldArgType: _TypeAlias = _typing.Literal["base", b"base"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["base", b"base", "mixins", b"mixins"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___BlockLibrary: _TypeAlias = BlockLibrary + +@_typing.final +class BlockLike(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + UNDEFINED_FIELD_NUMBER: _builtins.int + LIB_ELEM_FIELD_NUMBER: _builtins.int + HIERARCHY_FIELD_NUMBER: _builtins.int + + @_builtins.property + def undefined(self) -> _common_pb2.Empty: ... + @_builtins.property + def lib_elem(self) -> Global___BlockLibrary: ... + @_builtins.property + def hierarchy(self) -> Global___HierarchyBlock: """* not allowed w/in the library""" def __init__( self, *, - undefined: edgir.common_pb2.Empty | None = ..., - lib_elem: global___BlockLibrary | None = ..., - hierarchy: global___HierarchyBlock | None = ..., - ) -> None: ... - def HasField( - self, - field_name: typing_extensions.Literal[ - "hierarchy", b"hierarchy", "lib_elem", b"lib_elem", "type", b"type", "undefined", b"undefined" - ], - ) -> builtins.bool: ... - def ClearField( - self, - field_name: typing_extensions.Literal[ - "hierarchy", b"hierarchy", "lib_elem", b"lib_elem", "type", b"type", "undefined", b"undefined" - ], + undefined: _common_pb2.Empty | None = ..., + lib_elem: Global___BlockLibrary | None = ..., + hierarchy: Global___HierarchyBlock | None = ..., ) -> None: ... - def WhichOneof( - self, oneof_group: typing_extensions.Literal["type", b"type"] - ) -> typing_extensions.Literal["undefined", "lib_elem", "hierarchy"] | None: ... - -global___BlockLike = BlockLike - -@typing_extensions.final -class Link(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PARAMS_FIELD_NUMBER: builtins.int - PORTS_FIELD_NUMBER: builtins.int - LINKS_FIELD_NUMBER: builtins.int - CONSTRAINTS_FIELD_NUMBER: builtins.int - SELF_CLASS_FIELD_NUMBER: builtins.int - SUPERCLASSES_FIELD_NUMBER: builtins.int - SUPER_SUPERCLASSES_FIELD_NUMBER: builtins.int - META_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - - @property - def params(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NamedValInit]: ... - @property - def ports(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NamedPortLike]: ... - @property - def links(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NamedLinkLike]: ... - @property - def constraints( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NamedValueExpr]: ... - @property - def self_class(self) -> edgir.ref_pb2.LibraryPath: ... - @property - def superclasses( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[edgir.ref_pb2.LibraryPath]: + _HasFieldArgType: _TypeAlias = _typing.Literal[ + "hierarchy", b"hierarchy", "lib_elem", b"lib_elem", "type", b"type", "undefined", b"undefined" + ] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "hierarchy", b"hierarchy", "lib_elem", b"lib_elem", "type", b"type", "undefined", b"undefined" + ] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_type: _TypeAlias = _typing.Literal["undefined", "lib_elem", "hierarchy"] + _WhichOneofArgType_type: _TypeAlias = _typing.Literal["type", b"type"] + + def WhichOneof(self, oneof_group: _WhichOneofArgType_type) -> _WhichOneofReturnType_type | None: ... + +Global___BlockLike: _TypeAlias = BlockLike + +@_typing.final +class Link(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PARAMS_FIELD_NUMBER: _builtins.int + PORTS_FIELD_NUMBER: _builtins.int + LINKS_FIELD_NUMBER: _builtins.int + CONSTRAINTS_FIELD_NUMBER: _builtins.int + SELF_CLASS_FIELD_NUMBER: _builtins.int + SUPERCLASSES_FIELD_NUMBER: _builtins.int + SUPER_SUPERCLASSES_FIELD_NUMBER: _builtins.int + META_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + + @_builtins.property + def params(self) -> _containers.RepeatedCompositeFieldContainer[Global___NamedValInit]: ... + @_builtins.property + def ports(self) -> _containers.RepeatedCompositeFieldContainer[Global___NamedPortLike]: ... + @_builtins.property + def links(self) -> _containers.RepeatedCompositeFieldContainer[Global___NamedLinkLike]: ... + @_builtins.property + def constraints(self) -> _containers.RepeatedCompositeFieldContainer[Global___NamedValueExpr]: ... + @_builtins.property + def self_class(self) -> _ref_pb2.LibraryPath: ... + @_builtins.property + def superclasses(self) -> _containers.RepeatedCompositeFieldContainer[_ref_pb2.LibraryPath]: """superclasses, may be empty""" - @property - def super_superclasses( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[edgir.ref_pb2.LibraryPath]: + @_builtins.property + def super_superclasses(self) -> _containers.RepeatedCompositeFieldContainer[_ref_pb2.LibraryPath]: """all (recursive) superclasses above superclasses""" - @property - def meta(self) -> edgir.common_pb2.Metadata: + @_builtins.property + def meta(self) -> _common_pb2.Metadata: """TODO: this provides type hierarchy data only, inheritance semantics are currently undefined""" - @property - def description( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___StringDescriptionElement]: ... + @_builtins.property + def description(self) -> _containers.RepeatedCompositeFieldContainer[Global___StringDescriptionElement]: ... def __init__( self, *, - params: collections.abc.Iterable[global___NamedValInit] | None = ..., - ports: collections.abc.Iterable[global___NamedPortLike] | None = ..., - links: collections.abc.Iterable[global___NamedLinkLike] | None = ..., - constraints: collections.abc.Iterable[global___NamedValueExpr] | None = ..., - self_class: edgir.ref_pb2.LibraryPath | None = ..., - superclasses: collections.abc.Iterable[edgir.ref_pb2.LibraryPath] | None = ..., - super_superclasses: collections.abc.Iterable[edgir.ref_pb2.LibraryPath] | None = ..., - meta: edgir.common_pb2.Metadata | None = ..., - description: collections.abc.Iterable[global___StringDescriptionElement] | None = ..., + params: _abc.Iterable[Global___NamedValInit] | None = ..., + ports: _abc.Iterable[Global___NamedPortLike] | None = ..., + links: _abc.Iterable[Global___NamedLinkLike] | None = ..., + constraints: _abc.Iterable[Global___NamedValueExpr] | None = ..., + self_class: _ref_pb2.LibraryPath | None = ..., + superclasses: _abc.Iterable[_ref_pb2.LibraryPath] | None = ..., + super_superclasses: _abc.Iterable[_ref_pb2.LibraryPath] | None = ..., + meta: _common_pb2.Metadata | None = ..., + description: _abc.Iterable[Global___StringDescriptionElement] | None = ..., ) -> None: ... - def HasField( - self, field_name: typing_extensions.Literal["meta", b"meta", "self_class", b"self_class"] - ) -> builtins.bool: ... - def ClearField( - self, - field_name: typing_extensions.Literal[ - "constraints", - b"constraints", - "description", - b"description", - "links", - b"links", - "meta", - b"meta", - "params", - b"params", - "ports", - b"ports", - "self_class", - b"self_class", - "super_superclasses", - b"super_superclasses", - "superclasses", - b"superclasses", - ], - ) -> None: ... - -global___Link = Link - -@typing_extensions.final -class LinkArray(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SELF_CLASS_FIELD_NUMBER: builtins.int - PORTS_FIELD_NUMBER: builtins.int - CONSTRAINTS_FIELD_NUMBER: builtins.int - LINKS_FIELD_NUMBER: builtins.int - META_FIELD_NUMBER: builtins.int - - @property - def self_class(self) -> edgir.ref_pb2.LibraryPath: + _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "self_class", b"self_class"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "constraints", + b"constraints", + "description", + b"description", + "links", + b"links", + "meta", + b"meta", + "params", + b"params", + "ports", + b"ports", + "self_class", + b"self_class", + "super_superclasses", + b"super_superclasses", + "superclasses", + b"superclasses", + ] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___Link: _TypeAlias = Link + +@_typing.final +class LinkArray(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + SELF_CLASS_FIELD_NUMBER: _builtins.int + PORTS_FIELD_NUMBER: _builtins.int + CONSTRAINTS_FIELD_NUMBER: _builtins.int + LINKS_FIELD_NUMBER: _builtins.int + META_FIELD_NUMBER: _builtins.int + + @_builtins.property + def self_class(self) -> _ref_pb2.LibraryPath: """The class that applies to every link in the set/array. Used when a new link is instantiated by the front or back end. """ - @property - def ports(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NamedPortLike]: + @_builtins.property + def ports(self) -> _containers.RepeatedCompositeFieldContainer[Global___NamedPortLike]: """Only designs should contain an implementation here the last index is the index of the link, the first indices (if any) are the indices of the corresponding port in the inner link """ - @property - def constraints( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NamedValueExpr]: + @_builtins.property + def constraints(self) -> _containers.RepeatedCompositeFieldContainer[Global___NamedValueExpr]: """includes all exported constraints to map link ports to my ports""" - @property - def links(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NamedLinkLike]: ... - @property - def meta(self) -> edgir.common_pb2.Metadata: ... + @_builtins.property + def links(self) -> _containers.RepeatedCompositeFieldContainer[Global___NamedLinkLike]: ... + @_builtins.property + def meta(self) -> _common_pb2.Metadata: ... def __init__( self, *, - self_class: edgir.ref_pb2.LibraryPath | None = ..., - ports: collections.abc.Iterable[global___NamedPortLike] | None = ..., - constraints: collections.abc.Iterable[global___NamedValueExpr] | None = ..., - links: collections.abc.Iterable[global___NamedLinkLike] | None = ..., - meta: edgir.common_pb2.Metadata | None = ..., - ) -> None: ... - def HasField( - self, field_name: typing_extensions.Literal["meta", b"meta", "self_class", b"self_class"] - ) -> builtins.bool: ... - def ClearField( - self, - field_name: typing_extensions.Literal[ - "constraints", - b"constraints", - "links", - b"links", - "meta", - b"meta", - "ports", - b"ports", - "self_class", - b"self_class", - ], + self_class: _ref_pb2.LibraryPath | None = ..., + ports: _abc.Iterable[Global___NamedPortLike] | None = ..., + constraints: _abc.Iterable[Global___NamedValueExpr] | None = ..., + links: _abc.Iterable[Global___NamedLinkLike] | None = ..., + meta: _common_pb2.Metadata | None = ..., ) -> None: ... - -global___LinkArray = LinkArray - -@typing_extensions.final -class LinkLike(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - UNDEFINED_FIELD_NUMBER: builtins.int - LIB_ELEM_FIELD_NUMBER: builtins.int - LINK_FIELD_NUMBER: builtins.int - ARRAY_FIELD_NUMBER: builtins.int - - @property - def undefined(self) -> edgir.common_pb2.Empty: ... - @property - def lib_elem(self) -> edgir.ref_pb2.LibraryPath: ... - @property - def link(self) -> global___Link: + _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "self_class", b"self_class"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "constraints", + b"constraints", + "links", + b"links", + "meta", + b"meta", + "ports", + b"ports", + "self_class", + b"self_class", + ] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___LinkArray: _TypeAlias = LinkArray + +@_typing.final +class LinkLike(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + UNDEFINED_FIELD_NUMBER: _builtins.int + LIB_ELEM_FIELD_NUMBER: _builtins.int + LINK_FIELD_NUMBER: _builtins.int + ARRAY_FIELD_NUMBER: _builtins.int + + @_builtins.property + def undefined(self) -> _common_pb2.Empty: ... + @_builtins.property + def lib_elem(self) -> _ref_pb2.LibraryPath: ... + @_builtins.property + def link(self) -> Global___Link: """* not allowed w/in the library""" - @property - def array(self) -> global___LinkArray: ... + @_builtins.property + def array(self) -> Global___LinkArray: ... def __init__( self, *, - undefined: edgir.common_pb2.Empty | None = ..., - lib_elem: edgir.ref_pb2.LibraryPath | None = ..., - link: global___Link | None = ..., - array: global___LinkArray | None = ..., - ) -> None: ... - def HasField( - self, - field_name: typing_extensions.Literal[ - "array", b"array", "lib_elem", b"lib_elem", "link", b"link", "type", b"type", "undefined", b"undefined" - ], - ) -> builtins.bool: ... - def ClearField( - self, - field_name: typing_extensions.Literal[ - "array", b"array", "lib_elem", b"lib_elem", "link", b"link", "type", b"type", "undefined", b"undefined" - ], + undefined: _common_pb2.Empty | None = ..., + lib_elem: _ref_pb2.LibraryPath | None = ..., + link: Global___Link | None = ..., + array: Global___LinkArray | None = ..., ) -> None: ... - def WhichOneof( - self, oneof_group: typing_extensions.Literal["type", b"type"] - ) -> typing_extensions.Literal["undefined", "lib_elem", "link", "array"] | None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal[ + "array", b"array", "lib_elem", b"lib_elem", "link", b"link", "type", b"type", "undefined", b"undefined" + ] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "array", b"array", "lib_elem", b"lib_elem", "link", b"link", "type", b"type", "undefined", b"undefined" + ] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_type: _TypeAlias = _typing.Literal["undefined", "lib_elem", "link", "array"] + _WhichOneofArgType_type: _TypeAlias = _typing.Literal["type", b"type"] + + def WhichOneof(self, oneof_group: _WhichOneofArgType_type) -> _WhichOneofReturnType_type | None: ... -global___LinkLike = LinkLike +Global___LinkLike: _TypeAlias = LinkLike diff --git a/edg/edgir/expr_pb2.pyi b/edg/edgir/expr_pb2.pyi index 2c6d1cad8..47241f6f9 100644 --- a/edg/edgir/expr_pb2.pyi +++ b/edg/edgir/expr_pb2.pyi @@ -26,34 +26,34 @@ I don't think we should be using sorts at all in this module, but it's defined for the sake on completeness. """ -import builtins -import collections.abc -from .. import edgir -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message +from collections import abc as _abc +from edgir import common_pb2 as _common_pb2 +from edgir import lit_pb2 as _lit_pb2 +from edgir import ref_pb2 as _ref_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor -@typing_extensions.final -class UnaryExpr(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class UnaryExpr(_message.Message): + DESCRIPTOR: _descriptor.Descriptor class _Op: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType - class _OpEnumTypeWrapper( - google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[UnaryExpr._Op.ValueType], builtins.type - ): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + class _OpEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[UnaryExpr._Op.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor UNDEFINED: UnaryExpr._Op.ValueType NEGATE: UnaryExpr._Op.ValueType "* Negate :: Numeric a => a -> a\n :: Numeric a => Range a -> Range a\n " @@ -86,30 +86,32 @@ class UnaryExpr(google.protobuf.message.Message): "* Center :: Range a -> a" WIDTH: UnaryExpr.Op.ValueType "* Width :: Range a -> a" - OP_FIELD_NUMBER: builtins.int - VAL_FIELD_NUMBER: builtins.int - op: global___UnaryExpr.Op.ValueType + OP_FIELD_NUMBER: _builtins.int + VAL_FIELD_NUMBER: _builtins.int + op: Global___UnaryExpr.Op.ValueType - @property - def val(self) -> global___ValueExpr: ... - def __init__(self, *, op: global___UnaryExpr.Op.ValueType = ..., val: global___ValueExpr | None = ...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["val", b"val"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["op", b"op", "val", b"val"]) -> None: ... + @_builtins.property + def val(self) -> Global___ValueExpr: ... + def __init__(self, *, op: Global___UnaryExpr.Op.ValueType = ..., val: Global___ValueExpr | None = ...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] -global___UnaryExpr = UnaryExpr + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["op", b"op", "val", b"val"] -@typing_extensions.final -class UnarySetExpr(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___UnaryExpr: _TypeAlias = UnaryExpr + +@_typing.final +class UnarySetExpr(_message.Message): + DESCRIPTOR: _descriptor.Descriptor class _Op: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType - class _OpEnumTypeWrapper( - google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[UnarySetExpr._Op.ValueType], builtins.type - ): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + class _OpEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[UnarySetExpr._Op.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor UNDEFINED: UnarySetExpr._Op.ValueType SUM: UnarySetExpr._Op.ValueType "* Sum :: (Numeric a) => Set a -> a\n :: (Numeric a) => Set (Range a) -> Range a\n\n Sum({}) = 0\n " @@ -166,32 +168,34 @@ class UnarySetExpr(google.protobuf.message.Message): "* Invert :: Set Float -> Set Float\n :: Set (Range Float) -> Set (Range Float)\n\n Pointwise Invert\n " FLATTEN: UnarySetExpr.Op.ValueType "Flatten[A] : Set[Set[A]] -> Set[A]\n Given an array of array of elements, flattens the inner array.\n Alternatively stated, concatenates all of the elements of the outer arrary\n " - OP_FIELD_NUMBER: builtins.int - VALS_FIELD_NUMBER: builtins.int - op: global___UnarySetExpr.Op.ValueType + OP_FIELD_NUMBER: _builtins.int + VALS_FIELD_NUMBER: _builtins.int + op: Global___UnarySetExpr.Op.ValueType - @property - def vals(self) -> global___ValueExpr: ... + @_builtins.property + def vals(self) -> Global___ValueExpr: ... def __init__( - self, *, op: global___UnarySetExpr.Op.ValueType = ..., vals: global___ValueExpr | None = ... + self, *, op: Global___UnarySetExpr.Op.ValueType = ..., vals: Global___ValueExpr | None = ... ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["vals", b"vals"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["op", b"op", "vals", b"vals"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["vals", b"vals"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["op", b"op", "vals", b"vals"] -global___UnarySetExpr = UnarySetExpr + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -@typing_extensions.final -class BinaryExpr(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +Global___UnarySetExpr: _TypeAlias = UnarySetExpr + +@_typing.final +class BinaryExpr(_message.Message): + DESCRIPTOR: _descriptor.Descriptor class _Op: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType - class _OpEnumTypeWrapper( - google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[BinaryExpr._Op.ValueType], builtins.type - ): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + class _OpEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[BinaryExpr._Op.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor UNDEFINED: BinaryExpr._Op.ValueType ADD: BinaryExpr._Op.ValueType "* Add :: Numeric a => (lhs :: a, rhs :: a) -> a\n :: Numeric a => (lhs :: a, rhs :: Range a) -> Range a\n :: Numeric a => (lhs :: Range a, rhs :: a) -> Range a\n :: Numeric a => (lhs :: Range a, rhs :: Range a) -> Range a\n " @@ -272,39 +276,41 @@ class BinaryExpr(google.protobuf.message.Message): "INTERSECTS = 52;\n\n * Within :: (Numeric a) => (lhs :: Range a, rhs :: Range a) -> Bool\n :: (Numeric a) => (lhs :: a, rhs :: Range a) -> Bool\n\n Whether the lhs range or point is entirely within (contained by) the rhs.\n Used to be named SUBSET changed to a name that doesn't also imply a set op.\n " RANGE: BinaryExpr.Op.ValueType "* Range :: (Comparable a) => (lower :: a, upper :: a) -> Range a" - OP_FIELD_NUMBER: builtins.int - LHS_FIELD_NUMBER: builtins.int - RHS_FIELD_NUMBER: builtins.int - op: global___BinaryExpr.Op.ValueType - - @property - def lhs(self) -> global___ValueExpr: ... - @property - def rhs(self) -> global___ValueExpr: ... + OP_FIELD_NUMBER: _builtins.int + LHS_FIELD_NUMBER: _builtins.int + RHS_FIELD_NUMBER: _builtins.int + op: Global___BinaryExpr.Op.ValueType + + @_builtins.property + def lhs(self) -> Global___ValueExpr: ... + @_builtins.property + def rhs(self) -> Global___ValueExpr: ... def __init__( self, *, - op: global___BinaryExpr.Op.ValueType = ..., - lhs: global___ValueExpr | None = ..., - rhs: global___ValueExpr | None = ..., + op: Global___BinaryExpr.Op.ValueType = ..., + lhs: Global___ValueExpr | None = ..., + rhs: Global___ValueExpr | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["lhs", b"lhs", "rhs", b"rhs"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["lhs", b"lhs", "op", b"op", "rhs", b"rhs"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["lhs", b"lhs", "rhs", b"rhs"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["lhs", b"lhs", "op", b"op", "rhs", b"rhs"] -global___BinaryExpr = BinaryExpr + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -@typing_extensions.final -class BinarySetExpr(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +Global___BinaryExpr: _TypeAlias = BinaryExpr + +@_typing.final +class BinarySetExpr(_message.Message): + DESCRIPTOR: _descriptor.Descriptor class _Op: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType - class _OpEnumTypeWrapper( - google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[BinarySetExpr._Op.ValueType], builtins.type - ): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + class _OpEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[BinarySetExpr._Op.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor UNDEFINED: BinarySetExpr._Op.ValueType ADD: BinarySetExpr._Op.ValueType "* Add :: Numeric a => (lhset : Set a, rhs : a) -> Set a\n :: Numeric a => (lhset : Set a, rhs : Range a) -> Set (Range a)\n :: Numeric a => (lhset : Set (Range a), rhs : a) -> Set (Range a)\n :: Numeric a => (lhset : Set (Range a), rhs : Range a) -> Set (Range a)\n " @@ -321,163 +327,173 @@ class BinarySetExpr(google.protobuf.message.Message): "* Mult :: Numeric a => (lhset : Set a, rhs : a) -> Set a\n :: Numeric a => (lhset : Set a, rhs : Range a) -> Set (Range a)\n :: Numeric a => (lhset : Set (Range a), rhs : a) -> Set (Range a)\n :: Numeric a => (lhset : Set (Range a), rhs : Range a) -> Set (Range a)\n " CONCAT: BinarySetExpr.Op.ValueType "String concatenate operator\n Concatenate : (lhs: String, rhss: Set[String]) -> Set[String] (prepend lhs to all elements)\n : (lhss: Set[String], rhs: String) -> Set[String] (append rhs to all elements)\n " - OP_FIELD_NUMBER: builtins.int - LHSET_FIELD_NUMBER: builtins.int - RHS_FIELD_NUMBER: builtins.int - op: global___BinarySetExpr.Op.ValueType - - @property - def lhset(self) -> global___ValueExpr: ... - @property - def rhs(self) -> global___ValueExpr: ... + OP_FIELD_NUMBER: _builtins.int + LHSET_FIELD_NUMBER: _builtins.int + RHS_FIELD_NUMBER: _builtins.int + op: Global___BinarySetExpr.Op.ValueType + + @_builtins.property + def lhset(self) -> Global___ValueExpr: ... + @_builtins.property + def rhs(self) -> Global___ValueExpr: ... def __init__( self, *, - op: global___BinarySetExpr.Op.ValueType = ..., - lhset: global___ValueExpr | None = ..., - rhs: global___ValueExpr | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["lhset", b"lhset", "rhs", b"rhs"]) -> builtins.bool: ... - def ClearField( - self, field_name: typing_extensions.Literal["lhset", b"lhset", "op", b"op", "rhs", b"rhs"] + op: Global___BinarySetExpr.Op.ValueType = ..., + lhset: Global___ValueExpr | None = ..., + rhs: Global___ValueExpr | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["lhset", b"lhset", "rhs", b"rhs"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["lhset", b"lhset", "op", b"op", "rhs", b"rhs"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___BinarySetExpr = BinarySetExpr +Global___BinarySetExpr: _TypeAlias = BinarySetExpr -@typing_extensions.final -class ArrayExpr(google.protobuf.message.Message): +@_typing.final +class ArrayExpr(_message.Message): """* Creates an array from element exprs""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - VALS_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + VALS_FIELD_NUMBER: _builtins.int - @property - def vals(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ValueExpr]: ... - def __init__(self, *, vals: collections.abc.Iterable[global___ValueExpr] | None = ...) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["vals", b"vals"]) -> None: ... + @_builtins.property + def vals(self) -> _containers.RepeatedCompositeFieldContainer[Global___ValueExpr]: ... + def __init__(self, *, vals: _abc.Iterable[Global___ValueExpr] | None = ...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["vals", b"vals"] -global___ArrayExpr = ArrayExpr + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -@typing_extensions.final -class RangeExpr(google.protobuf.message.Message): +Global___ArrayExpr: _TypeAlias = ArrayExpr + +@_typing.final +class RangeExpr(_message.Message): """* Ranges have an expression form, allowing you to constrain them without specifying them fully """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MINIMUM_FIELD_NUMBER: builtins.int - MAXIMUM_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + MINIMUM_FIELD_NUMBER: _builtins.int + MAXIMUM_FIELD_NUMBER: _builtins.int - @property - def minimum(self) -> global___ValueExpr: ... - @property - def maximum(self) -> global___ValueExpr: ... + @_builtins.property + def minimum(self) -> Global___ValueExpr: ... + @_builtins.property + def maximum(self) -> Global___ValueExpr: ... def __init__( - self, *, minimum: global___ValueExpr | None = ..., maximum: global___ValueExpr | None = ... - ) -> None: ... - def HasField( - self, field_name: typing_extensions.Literal["maximum", b"maximum", "minimum", b"minimum"] - ) -> builtins.bool: ... - def ClearField( - self, field_name: typing_extensions.Literal["maximum", b"maximum", "minimum", b"minimum"] + self, *, minimum: Global___ValueExpr | None = ..., maximum: Global___ValueExpr | None = ... ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["maximum", b"maximum", "minimum", b"minimum"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["maximum", b"maximum", "minimum", b"minimum"] -global___RangeExpr = RangeExpr + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -@typing_extensions.final -class StructExpr(google.protobuf.message.Message): +Global___RangeExpr: _TypeAlias = RangeExpr + +@_typing.final +class StructExpr(_message.Message): """* Structs have an expression form, allowing you to constrain them without specifying them fully """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class ValsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str - @typing_extensions.final - class ValsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str + @_builtins.property + def value(self) -> Global___ValueExpr: ... + def __init__(self, *, key: _builtins.str = ..., value: Global___ValueExpr | None = ...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["value", b"value"] - @property - def value(self) -> global___ValueExpr: ... - def __init__(self, *, key: builtins.str = ..., value: global___ValueExpr | None = ...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] - VALS_FIELD_NUMBER: builtins.int + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @property - def vals(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___ValueExpr]: ... - def __init__(self, *, vals: collections.abc.Mapping[builtins.str, global___ValueExpr] | None = ...) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["vals", b"vals"]) -> None: ... + VALS_FIELD_NUMBER: _builtins.int -global___StructExpr = StructExpr + @_builtins.property + def vals(self) -> _containers.MessageMap[_builtins.str, Global___ValueExpr]: ... + def __init__(self, *, vals: _abc.Mapping[_builtins.str, Global___ValueExpr] | None = ...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["vals", b"vals"] -@typing_extensions.final -class IfThenElseExpr(google.protobuf.message.Message): + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___StructExpr: _TypeAlias = StructExpr + +@_typing.final +class IfThenElseExpr(_message.Message): """* IfThenElse :: (cond :: Bool, tru :: a, fal :: a) -> a""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - COND_FIELD_NUMBER: builtins.int - TRU_FIELD_NUMBER: builtins.int - FAL_FIELD_NUMBER: builtins.int - META_FIELD_NUMBER: builtins.int - - @property - def cond(self) -> global___ValueExpr: ... - @property - def tru(self) -> global___ValueExpr: ... - @property - def fal(self) -> global___ValueExpr: ... - @property - def meta(self) -> edgir.common_pb2.Metadata: ... + DESCRIPTOR: _descriptor.Descriptor + COND_FIELD_NUMBER: _builtins.int + TRU_FIELD_NUMBER: _builtins.int + FAL_FIELD_NUMBER: _builtins.int + META_FIELD_NUMBER: _builtins.int + + @_builtins.property + def cond(self) -> Global___ValueExpr: ... + @_builtins.property + def tru(self) -> Global___ValueExpr: ... + @_builtins.property + def fal(self) -> Global___ValueExpr: ... + @_builtins.property + def meta(self) -> _common_pb2.Metadata: ... def __init__( self, *, - cond: global___ValueExpr | None = ..., - tru: global___ValueExpr | None = ..., - fal: global___ValueExpr | None = ..., - meta: edgir.common_pb2.Metadata | None = ..., - ) -> None: ... - def HasField( - self, field_name: typing_extensions.Literal["cond", b"cond", "fal", b"fal", "meta", b"meta", "tru", b"tru"] - ) -> builtins.bool: ... - def ClearField( - self, field_name: typing_extensions.Literal["cond", b"cond", "fal", b"fal", "meta", b"meta", "tru", b"tru"] + cond: Global___ValueExpr | None = ..., + tru: Global___ValueExpr | None = ..., + fal: Global___ValueExpr | None = ..., + meta: _common_pb2.Metadata | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["cond", b"cond", "fal", b"fal", "meta", b"meta", "tru", b"tru"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["cond", b"cond", "fal", b"fal", "meta", b"meta", "tru", b"tru"] -global___IfThenElseExpr = IfThenElseExpr + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -@typing_extensions.final -class ExtractExpr(google.protobuf.message.Message): +Global___IfThenElseExpr: _TypeAlias = IfThenElseExpr + +@_typing.final +class ExtractExpr(_message.Message): """* Extract :: (container :: Array a , index :: Int) -> a Extract :: (container :: Struct{index :: a}, index :: string) -> a Extract :: (container :: Range a , index :: {"minimum"|"maximum"}) -> a """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CONTAINER_FIELD_NUMBER: builtins.int - INDEX_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + CONTAINER_FIELD_NUMBER: _builtins.int + INDEX_FIELD_NUMBER: _builtins.int - @property - def container(self) -> global___ValueExpr: ... - @property - def index(self) -> global___ValueExpr: ... + @_builtins.property + def container(self) -> Global___ValueExpr: ... + @_builtins.property + def index(self) -> Global___ValueExpr: ... def __init__( - self, *, container: global___ValueExpr | None = ..., index: global___ValueExpr | None = ... - ) -> None: ... - def HasField( - self, field_name: typing_extensions.Literal["container", b"container", "index", b"index"] - ) -> builtins.bool: ... - def ClearField( - self, field_name: typing_extensions.Literal["container", b"container", "index", b"index"] + self, *, container: Global___ValueExpr | None = ..., index: Global___ValueExpr | None = ... ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["container", b"container", "index", b"index"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["container", b"container", "index", b"index"] -global___ExtractExpr = ExtractExpr + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -@typing_extensions.final -class MapExtractExpr(google.protobuf.message.Message): +Global___ExtractExpr: _TypeAlias = ExtractExpr + +@_typing.final +class MapExtractExpr(_message.Message): """/** MapExtract :: (container :: Array a , path :: LocalRef{from :: a, to :: b}) -> Array b MapExtract :: (container :: Set a , path :: LocalRef{from :: a, to :: b}) -> Set b @@ -485,42 +501,44 @@ class MapExtractExpr(google.protobuf.message.Message): the relevant subexpression determined by a path. */ """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CONTAINER_FIELD_NUMBER: builtins.int - PATH_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + CONTAINER_FIELD_NUMBER: _builtins.int + PATH_FIELD_NUMBER: _builtins.int - @property - def container(self) -> global___ValueExpr: ... - @property - def path(self) -> edgir.ref_pb2.LocalPath: ... + @_builtins.property + def container(self) -> Global___ValueExpr: ... + @_builtins.property + def path(self) -> _ref_pb2.LocalPath: ... def __init__( - self, *, container: global___ValueExpr | None = ..., path: edgir.ref_pb2.LocalPath | None = ... + self, *, container: Global___ValueExpr | None = ..., path: _ref_pb2.LocalPath | None = ... ) -> None: ... - def HasField( - self, field_name: typing_extensions.Literal["container", b"container", "path", b"path"] - ) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["container", b"container", "path", b"path"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["container", b"container", "path", b"path"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["container", b"container", "path", b"path"] -global___MapExtractExpr = MapExtractExpr + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -@typing_extensions.final -class ConnectedExpr(google.protobuf.message.Message): +Global___MapExtractExpr: _TypeAlias = MapExtractExpr + +@_typing.final +class ConnectedExpr(_message.Message): """* isConnected :: Port -> Port -> Bool This tells us whether the specified ports are connected """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - BLOCK_PORT_FIELD_NUMBER: builtins.int - LINK_PORT_FIELD_NUMBER: builtins.int - EXPANDED_FIELD_NUMBER: builtins.int - - @property - def block_port(self) -> global___ValueExpr: ... - @property - def link_port(self) -> global___ValueExpr: ... - @property - def expanded(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ConnectedExpr]: + DESCRIPTOR: _descriptor.Descriptor + BLOCK_PORT_FIELD_NUMBER: _builtins.int + LINK_PORT_FIELD_NUMBER: _builtins.int + EXPANDED_FIELD_NUMBER: _builtins.int + + @_builtins.property + def block_port(self) -> Global___ValueExpr: ... + @_builtins.property + def link_port(self) -> Global___ValueExpr: ... + @_builtins.property + def expanded(self) -> _containers.RepeatedCompositeFieldContainer[Global___ConnectedExpr]: """During compilation, ConnectedExpr may be expanded (allocate replaced with concrete path indices, and arrays replaced with individual element connects). The expanded forms are stored here (including multiple elements in the array case), @@ -530,158 +548,159 @@ class ConnectedExpr(google.protobuf.message.Message): def __init__( self, *, - block_port: global___ValueExpr | None = ..., - link_port: global___ValueExpr | None = ..., - expanded: collections.abc.Iterable[global___ConnectedExpr] | None = ..., - ) -> None: ... - def HasField( - self, field_name: typing_extensions.Literal["block_port", b"block_port", "link_port", b"link_port"] - ) -> builtins.bool: ... - def ClearField( - self, - field_name: typing_extensions.Literal[ - "block_port", b"block_port", "expanded", b"expanded", "link_port", b"link_port" - ], + block_port: Global___ValueExpr | None = ..., + link_port: Global___ValueExpr | None = ..., + expanded: _abc.Iterable[Global___ConnectedExpr] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["block_port", b"block_port", "link_port", b"link_port"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "block_port", b"block_port", "expanded", b"expanded", "link_port", b"link_port" + ] -global___ConnectedExpr = ConnectedExpr + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -@typing_extensions.final -class ExportedExpr(google.protobuf.message.Message): +Global___ConnectedExpr: _TypeAlias = ConnectedExpr + +@_typing.final +class ExportedExpr(_message.Message): """* isExported :: Port -> Port -> Bool This tells us whether the specified port is exported to the hierarchy block exterior port """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - EXTERIOR_PORT_FIELD_NUMBER: builtins.int - INTERNAL_BLOCK_PORT_FIELD_NUMBER: builtins.int - EXPANDED_FIELD_NUMBER: builtins.int - - @property - def exterior_port(self) -> global___ValueExpr: ... - @property - def internal_block_port(self) -> global___ValueExpr: ... - @property - def expanded(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ExportedExpr]: + DESCRIPTOR: _descriptor.Descriptor + EXTERIOR_PORT_FIELD_NUMBER: _builtins.int + INTERNAL_BLOCK_PORT_FIELD_NUMBER: _builtins.int + EXPANDED_FIELD_NUMBER: _builtins.int + + @_builtins.property + def exterior_port(self) -> Global___ValueExpr: ... + @_builtins.property + def internal_block_port(self) -> Global___ValueExpr: ... + @_builtins.property + def expanded(self) -> _containers.RepeatedCompositeFieldContainer[Global___ExportedExpr]: """see comment in ConnectedExpr""" def __init__( self, *, - exterior_port: global___ValueExpr | None = ..., - internal_block_port: global___ValueExpr | None = ..., - expanded: collections.abc.Iterable[global___ExportedExpr] | None = ..., - ) -> None: ... - def HasField( - self, - field_name: typing_extensions.Literal[ - "exterior_port", b"exterior_port", "internal_block_port", b"internal_block_port" - ], - ) -> builtins.bool: ... - def ClearField( - self, - field_name: typing_extensions.Literal[ - "expanded", b"expanded", "exterior_port", b"exterior_port", "internal_block_port", b"internal_block_port" - ], + exterior_port: Global___ValueExpr | None = ..., + internal_block_port: Global___ValueExpr | None = ..., + expanded: _abc.Iterable[Global___ExportedExpr] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal[ + "exterior_port", b"exterior_port", "internal_block_port", b"internal_block_port" + ] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "expanded", b"expanded", "exterior_port", b"exterior_port", "internal_block_port", b"internal_block_port" + ] -global___ExportedExpr = ExportedExpr + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -@typing_extensions.final -class AssignExpr(google.protobuf.message.Message): +Global___ExportedExpr: _TypeAlias = ExportedExpr + +@_typing.final +class AssignExpr(_message.Message): """Variable assignment (from an expression value), which allows dataflow to be directioned and explicit. Assignments should not be cyclic. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DST_FIELD_NUMBER: builtins.int - SRC_FIELD_NUMBER: builtins.int - - @property - def dst(self) -> edgir.ref_pb2.LocalPath: ... - @property - def src(self) -> global___ValueExpr: ... - def __init__(self, *, dst: edgir.ref_pb2.LocalPath | None = ..., src: global___ValueExpr | None = ...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["dst", b"dst", "src", b"src"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["dst", b"dst", "src", b"src"]) -> None: ... - -global___AssignExpr = AssignExpr - -@typing_extensions.final -class ValueExpr(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LITERAL_FIELD_NUMBER: builtins.int - BINARY_FIELD_NUMBER: builtins.int - BINARY_SET_FIELD_NUMBER: builtins.int - UNARY_FIELD_NUMBER: builtins.int - UNARY_SET_FIELD_NUMBER: builtins.int - ARRAY_FIELD_NUMBER: builtins.int - STRUCT_FIELD_NUMBER: builtins.int - RANGE_FIELD_NUMBER: builtins.int - IFTHENELSE_FIELD_NUMBER: builtins.int - EXTRACT_FIELD_NUMBER: builtins.int - MAP_EXTRACT_FIELD_NUMBER: builtins.int - CONNECTED_FIELD_NUMBER: builtins.int - EXPORTED_FIELD_NUMBER: builtins.int - CONNECTEDARRAY_FIELD_NUMBER: builtins.int - EXPORTEDARRAY_FIELD_NUMBER: builtins.int - ASSIGN_FIELD_NUMBER: builtins.int - EXPORTEDTUNNEL_FIELD_NUMBER: builtins.int - ASSIGNTUNNEL_FIELD_NUMBER: builtins.int - REF_FIELD_NUMBER: builtins.int - META_FIELD_NUMBER: builtins.int - - @property - def literal(self) -> edgir.lit_pb2.ValueLit: ... - @property - def binary(self) -> global___BinaryExpr: ... - @property - def binary_set(self) -> global___BinarySetExpr: ... - @property - def unary(self) -> global___UnaryExpr: ... - @property - def unary_set(self) -> global___UnarySetExpr: ... - @property - def array(self) -> global___ArrayExpr: + DESCRIPTOR: _descriptor.Descriptor + DST_FIELD_NUMBER: _builtins.int + SRC_FIELD_NUMBER: _builtins.int + + @_builtins.property + def dst(self) -> _ref_pb2.LocalPath: ... + @_builtins.property + def src(self) -> Global___ValueExpr: ... + def __init__(self, *, dst: _ref_pb2.LocalPath | None = ..., src: Global___ValueExpr | None = ...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["dst", b"dst", "src", b"src"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["dst", b"dst", "src", b"src"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___AssignExpr: _TypeAlias = AssignExpr + +@_typing.final +class ValueExpr(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LITERAL_FIELD_NUMBER: _builtins.int + BINARY_FIELD_NUMBER: _builtins.int + BINARY_SET_FIELD_NUMBER: _builtins.int + UNARY_FIELD_NUMBER: _builtins.int + UNARY_SET_FIELD_NUMBER: _builtins.int + ARRAY_FIELD_NUMBER: _builtins.int + STRUCT_FIELD_NUMBER: _builtins.int + RANGE_FIELD_NUMBER: _builtins.int + IFTHENELSE_FIELD_NUMBER: _builtins.int + EXTRACT_FIELD_NUMBER: _builtins.int + MAP_EXTRACT_FIELD_NUMBER: _builtins.int + CONNECTED_FIELD_NUMBER: _builtins.int + EXPORTED_FIELD_NUMBER: _builtins.int + CONNECTEDARRAY_FIELD_NUMBER: _builtins.int + EXPORTEDARRAY_FIELD_NUMBER: _builtins.int + ASSIGN_FIELD_NUMBER: _builtins.int + EXPORTEDTUNNEL_FIELD_NUMBER: _builtins.int + ASSIGNTUNNEL_FIELD_NUMBER: _builtins.int + REF_FIELD_NUMBER: _builtins.int + META_FIELD_NUMBER: _builtins.int + + @_builtins.property + def literal(self) -> _lit_pb2.ValueLit: ... + @_builtins.property + def binary(self) -> Global___BinaryExpr: ... + @_builtins.property + def binary_set(self) -> Global___BinarySetExpr: ... + @_builtins.property + def unary(self) -> Global___UnaryExpr: ... + @_builtins.property + def unary_set(self) -> Global___UnarySetExpr: ... + @_builtins.property + def array(self) -> Global___ArrayExpr: """SetExpr set = 5;""" - @property - def struct(self) -> global___StructExpr: ... - @property - def range(self) -> global___RangeExpr: ... - @property - def ifThenElse(self) -> global___IfThenElseExpr: ... - @property - def extract(self) -> global___ExtractExpr: ... - @property - def map_extract(self) -> global___MapExtractExpr: ... - @property - def connected(self) -> global___ConnectedExpr: + @_builtins.property + def struct(self) -> Global___StructExpr: ... + @_builtins.property + def range(self) -> Global___RangeExpr: ... + @_builtins.property + def ifThenElse(self) -> Global___IfThenElseExpr: ... + @_builtins.property + def extract(self) -> Global___ExtractExpr: ... + @_builtins.property + def map_extract(self) -> Global___MapExtractExpr: ... + @_builtins.property + def connected(self) -> Global___ConnectedExpr: """single port to single port connect""" - @property - def exported(self) -> global___ExportedExpr: + @_builtins.property + def exported(self) -> Global___ExportedExpr: """single port to single port export""" - @property - def connectedArray(self) -> global___ConnectedExpr: + @_builtins.property + def connectedArray(self) -> Global___ConnectedExpr: """array to array connect, where allocate means allocate a subarray""" - @property - def exportedArray(self) -> global___ExportedExpr: + @_builtins.property + def exportedArray(self) -> Global___ExportedExpr: """array to array export, where allocate means allocate a subarray""" - @property - def assign(self) -> global___AssignExpr: ... - @property - def exportedTunnel(self) -> global___ExportedExpr: + @_builtins.property + def assign(self) -> Global___AssignExpr: ... + @_builtins.property + def exportedTunnel(self) -> Global___ExportedExpr: """These Exprs support cross-hierarchy operations single port to single port tunneling (cross-hierarchy) export: """ - @property - def assignTunnel(self) -> global___AssignExpr: + @_builtins.property + def assignTunnel(self) -> Global___AssignExpr: """- the exterior port may be a top-level port on any (recursive) sub-block for the exterior port, all path components except the last must be block references, and the last must be a top-level port @@ -694,151 +713,149 @@ class ValueExpr(google.protobuf.message.Message): parameter assignment which may be cross-hierarchy """ - @property - def ref(self) -> edgir.ref_pb2.LocalPath: ... - @property - def meta(self) -> edgir.common_pb2.Metadata: ... + @_builtins.property + def ref(self) -> _ref_pb2.LocalPath: ... + @_builtins.property + def meta(self) -> _common_pb2.Metadata: ... def __init__( self, *, - literal: edgir.lit_pb2.ValueLit | None = ..., - binary: global___BinaryExpr | None = ..., - binary_set: global___BinarySetExpr | None = ..., - unary: global___UnaryExpr | None = ..., - unary_set: global___UnarySetExpr | None = ..., - array: global___ArrayExpr | None = ..., - struct: global___StructExpr | None = ..., - range: global___RangeExpr | None = ..., - ifThenElse: global___IfThenElseExpr | None = ..., - extract: global___ExtractExpr | None = ..., - map_extract: global___MapExtractExpr | None = ..., - connected: global___ConnectedExpr | None = ..., - exported: global___ExportedExpr | None = ..., - connectedArray: global___ConnectedExpr | None = ..., - exportedArray: global___ExportedExpr | None = ..., - assign: global___AssignExpr | None = ..., - exportedTunnel: global___ExportedExpr | None = ..., - assignTunnel: global___AssignExpr | None = ..., - ref: edgir.ref_pb2.LocalPath | None = ..., - meta: edgir.common_pb2.Metadata | None = ..., - ) -> None: ... - def HasField( - self, - field_name: typing_extensions.Literal[ - "array", - b"array", - "assign", - b"assign", - "assignTunnel", - b"assignTunnel", - "binary", - b"binary", - "binary_set", - b"binary_set", - "connected", - b"connected", - "connectedArray", - b"connectedArray", - "exported", - b"exported", - "exportedArray", - b"exportedArray", - "exportedTunnel", - b"exportedTunnel", - "expr", - b"expr", - "extract", - b"extract", - "ifThenElse", - b"ifThenElse", - "literal", - b"literal", - "map_extract", - b"map_extract", - "meta", - b"meta", - "range", - b"range", - "ref", - b"ref", - "struct", - b"struct", - "unary", - b"unary", - "unary_set", - b"unary_set", - ], - ) -> builtins.bool: ... - def ClearField( - self, - field_name: typing_extensions.Literal[ - "array", - b"array", - "assign", - b"assign", - "assignTunnel", - b"assignTunnel", - "binary", - b"binary", - "binary_set", - b"binary_set", - "connected", - b"connected", - "connectedArray", - b"connectedArray", - "exported", - b"exported", - "exportedArray", - b"exportedArray", - "exportedTunnel", - b"exportedTunnel", - "expr", - b"expr", - "extract", - b"extract", - "ifThenElse", - b"ifThenElse", - "literal", - b"literal", - "map_extract", - b"map_extract", - "meta", - b"meta", - "range", - b"range", - "ref", - b"ref", - "struct", - b"struct", - "unary", - b"unary", - "unary_set", - b"unary_set", - ], + literal: _lit_pb2.ValueLit | None = ..., + binary: Global___BinaryExpr | None = ..., + binary_set: Global___BinarySetExpr | None = ..., + unary: Global___UnaryExpr | None = ..., + unary_set: Global___UnarySetExpr | None = ..., + array: Global___ArrayExpr | None = ..., + struct: Global___StructExpr | None = ..., + range: Global___RangeExpr | None = ..., + ifThenElse: Global___IfThenElseExpr | None = ..., + extract: Global___ExtractExpr | None = ..., + map_extract: Global___MapExtractExpr | None = ..., + connected: Global___ConnectedExpr | None = ..., + exported: Global___ExportedExpr | None = ..., + connectedArray: Global___ConnectedExpr | None = ..., + exportedArray: Global___ExportedExpr | None = ..., + assign: Global___AssignExpr | None = ..., + exportedTunnel: Global___ExportedExpr | None = ..., + assignTunnel: Global___AssignExpr | None = ..., + ref: _ref_pb2.LocalPath | None = ..., + meta: _common_pb2.Metadata | None = ..., ) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["expr", b"expr"]) -> ( - typing_extensions.Literal[ - "literal", - "binary", - "binary_set", - "unary", - "unary_set", - "array", - "struct", - "range", - "ifThenElse", - "extract", - "map_extract", - "connected", - "exported", - "connectedArray", - "exportedArray", - "assign", - "exportedTunnel", - "assignTunnel", - "ref", - ] - | None - ): ... - -global___ValueExpr = ValueExpr + _HasFieldArgType: _TypeAlias = _typing.Literal[ + "array", + b"array", + "assign", + b"assign", + "assignTunnel", + b"assignTunnel", + "binary", + b"binary", + "binary_set", + b"binary_set", + "connected", + b"connected", + "connectedArray", + b"connectedArray", + "exported", + b"exported", + "exportedArray", + b"exportedArray", + "exportedTunnel", + b"exportedTunnel", + "expr", + b"expr", + "extract", + b"extract", + "ifThenElse", + b"ifThenElse", + "literal", + b"literal", + "map_extract", + b"map_extract", + "meta", + b"meta", + "range", + b"range", + "ref", + b"ref", + "struct", + b"struct", + "unary", + b"unary", + "unary_set", + b"unary_set", + ] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "array", + b"array", + "assign", + b"assign", + "assignTunnel", + b"assignTunnel", + "binary", + b"binary", + "binary_set", + b"binary_set", + "connected", + b"connected", + "connectedArray", + b"connectedArray", + "exported", + b"exported", + "exportedArray", + b"exportedArray", + "exportedTunnel", + b"exportedTunnel", + "expr", + b"expr", + "extract", + b"extract", + "ifThenElse", + b"ifThenElse", + "literal", + b"literal", + "map_extract", + b"map_extract", + "meta", + b"meta", + "range", + b"range", + "ref", + b"ref", + "struct", + b"struct", + "unary", + b"unary", + "unary_set", + b"unary_set", + ] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_expr: _TypeAlias = _typing.Literal[ + "literal", + "binary", + "binary_set", + "unary", + "unary_set", + "array", + "struct", + "range", + "ifThenElse", + "extract", + "map_extract", + "connected", + "exported", + "connectedArray", + "exportedArray", + "assign", + "exportedTunnel", + "assignTunnel", + "ref", + ] + _WhichOneofArgType_expr: _TypeAlias = _typing.Literal["expr", b"expr"] + + def WhichOneof(self, oneof_group: _WhichOneofArgType_expr) -> _WhichOneofReturnType_expr | None: ... + +Global___ValueExpr: _TypeAlias = ValueExpr diff --git a/edg/edgir/impl_pb2.pyi b/edg/edgir/impl_pb2.pyi index 7f0b81720..3169fd28a 100644 --- a/edg/edgir/impl_pb2.pyi +++ b/edg/edgir/impl_pb2.pyi @@ -11,66 +11,83 @@ stored. Fuck if I know what that will look like, so for now you just get a metadata block. """ -import builtins -from .. import edgir -import google.protobuf.descriptor -import google.protobuf.message +from edgir import common_pb2 as _common_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing_extensions.final -class BlockImpl(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - META_FIELD_NUMBER: builtins.int - - @property - def meta(self) -> edgir.common_pb2.Metadata: ... - def __init__(self, *, meta: edgir.common_pb2.Metadata | None = ...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["meta", b"meta"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["meta", b"meta"]) -> None: ... - -global___BlockImpl = BlockImpl - -@typing_extensions.final -class PortImpl(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - META_FIELD_NUMBER: builtins.int - - @property - def meta(self) -> edgir.common_pb2.Metadata: ... - def __init__(self, *, meta: edgir.common_pb2.Metadata | None = ...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["meta", b"meta"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["meta", b"meta"]) -> None: ... - -global___PortImpl = PortImpl - -@typing_extensions.final -class LinkImpl(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - META_FIELD_NUMBER: builtins.int - - @property - def meta(self) -> edgir.common_pb2.Metadata: ... - def __init__(self, *, meta: edgir.common_pb2.Metadata | None = ...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["meta", b"meta"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["meta", b"meta"]) -> None: ... - -global___LinkImpl = LinkImpl - -@typing_extensions.final -class EnvironmentImpl(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - META_FIELD_NUMBER: builtins.int - - @property - def meta(self) -> edgir.common_pb2.Metadata: ... - def __init__(self, *, meta: edgir.common_pb2.Metadata | None = ...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["meta", b"meta"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["meta", b"meta"]) -> None: ... - -global___EnvironmentImpl = EnvironmentImpl + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class BlockImpl(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + META_FIELD_NUMBER: _builtins.int + + @_builtins.property + def meta(self) -> _common_pb2.Metadata: ... + def __init__(self, *, meta: _common_pb2.Metadata | None = ...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___BlockImpl: _TypeAlias = BlockImpl + +@_typing.final +class PortImpl(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + META_FIELD_NUMBER: _builtins.int + + @_builtins.property + def meta(self) -> _common_pb2.Metadata: ... + def __init__(self, *, meta: _common_pb2.Metadata | None = ...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___PortImpl: _TypeAlias = PortImpl + +@_typing.final +class LinkImpl(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + META_FIELD_NUMBER: _builtins.int + + @_builtins.property + def meta(self) -> _common_pb2.Metadata: ... + def __init__(self, *, meta: _common_pb2.Metadata | None = ...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___LinkImpl: _TypeAlias = LinkImpl + +@_typing.final +class EnvironmentImpl(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + META_FIELD_NUMBER: _builtins.int + + @_builtins.property + def meta(self) -> _common_pb2.Metadata: ... + def __init__(self, *, meta: _common_pb2.Metadata | None = ...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___EnvironmentImpl: _TypeAlias = EnvironmentImpl diff --git a/edg/edgir/init_pb2.pyi b/edg/edgir/init_pb2.pyi index f4e1024b7..dce1504c7 100644 --- a/edg/edgir/init_pb2.pyi +++ b/edg/edgir/init_pb2.pyi @@ -12,122 +12,122 @@ creating a value. FIXME :: Does this make more sense in another file? """ -import builtins -from .. import edgir -import google.protobuf.descriptor -import google.protobuf.message +from edgir import common_pb2 as _common_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor -@typing_extensions.final -class ValInit(google.protobuf.message.Message): +@_typing.final +class ValInit(_message.Message): """* This is the general way we initialize values in the local context. I think the frontend should have more type specific wrappers around this since the data required for each type can be different. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FLOATING_FIELD_NUMBER: builtins.int - INTEGER_FIELD_NUMBER: builtins.int - BOOLEAN_FIELD_NUMBER: builtins.int - TEXT_FIELD_NUMBER: builtins.int - SET_FIELD_NUMBER: builtins.int - STRUCT_FIELD_NUMBER: builtins.int - RANGE_FIELD_NUMBER: builtins.int - ARRAY_FIELD_NUMBER: builtins.int - META_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + FLOATING_FIELD_NUMBER: _builtins.int + INTEGER_FIELD_NUMBER: _builtins.int + BOOLEAN_FIELD_NUMBER: _builtins.int + TEXT_FIELD_NUMBER: _builtins.int + SET_FIELD_NUMBER: _builtins.int + STRUCT_FIELD_NUMBER: _builtins.int + RANGE_FIELD_NUMBER: _builtins.int + ARRAY_FIELD_NUMBER: _builtins.int + META_FIELD_NUMBER: _builtins.int - @property - def floating(self) -> edgir.common_pb2.Empty: ... - @property - def integer(self) -> edgir.common_pb2.Empty: ... - @property - def boolean(self) -> edgir.common_pb2.Empty: ... - @property - def text(self) -> edgir.common_pb2.Empty: ... - @property - def set(self) -> edgir.common_pb2.Empty: ... - @property - def struct(self) -> edgir.common_pb2.Empty: ... - @property - def range(self) -> edgir.common_pb2.Empty: ... - @property - def array(self) -> global___ValInit: ... - @property - def meta(self) -> edgir.common_pb2.Metadata: ... + @_builtins.property + def floating(self) -> _common_pb2.Empty: ... + @_builtins.property + def integer(self) -> _common_pb2.Empty: ... + @_builtins.property + def boolean(self) -> _common_pb2.Empty: ... + @_builtins.property + def text(self) -> _common_pb2.Empty: ... + @_builtins.property + def set(self) -> _common_pb2.Empty: ... + @_builtins.property + def struct(self) -> _common_pb2.Empty: ... + @_builtins.property + def range(self) -> _common_pb2.Empty: ... + @_builtins.property + def array(self) -> Global___ValInit: ... + @_builtins.property + def meta(self) -> _common_pb2.Metadata: ... def __init__( self, *, - floating: edgir.common_pb2.Empty | None = ..., - integer: edgir.common_pb2.Empty | None = ..., - boolean: edgir.common_pb2.Empty | None = ..., - text: edgir.common_pb2.Empty | None = ..., - set: edgir.common_pb2.Empty | None = ..., - struct: edgir.common_pb2.Empty | None = ..., - range: edgir.common_pb2.Empty | None = ..., - array: global___ValInit | None = ..., - meta: edgir.common_pb2.Metadata | None = ..., + floating: _common_pb2.Empty | None = ..., + integer: _common_pb2.Empty | None = ..., + boolean: _common_pb2.Empty | None = ..., + text: _common_pb2.Empty | None = ..., + set: _common_pb2.Empty | None = ..., + struct: _common_pb2.Empty | None = ..., + range: _common_pb2.Empty | None = ..., + array: Global___ValInit | None = ..., + meta: _common_pb2.Metadata | None = ..., ) -> None: ... - def HasField( - self, - field_name: typing_extensions.Literal[ - "array", - b"array", - "boolean", - b"boolean", - "floating", - b"floating", - "integer", - b"integer", - "meta", - b"meta", - "range", - b"range", - "set", - b"set", - "struct", - b"struct", - "text", - b"text", - "val", - b"val", - ], - ) -> builtins.bool: ... - def ClearField( - self, - field_name: typing_extensions.Literal[ - "array", - b"array", - "boolean", - b"boolean", - "floating", - b"floating", - "integer", - b"integer", - "meta", - b"meta", - "range", - b"range", - "set", - b"set", - "struct", - b"struct", - "text", - b"text", - "val", - b"val", - ], - ) -> None: ... - def WhichOneof( - self, oneof_group: typing_extensions.Literal["val", b"val"] - ) -> ( - typing_extensions.Literal["floating", "integer", "boolean", "text", "set", "struct", "range", "array"] | None - ): ... + _HasFieldArgType: _TypeAlias = _typing.Literal[ + "array", + b"array", + "boolean", + b"boolean", + "floating", + b"floating", + "integer", + b"integer", + "meta", + b"meta", + "range", + b"range", + "set", + b"set", + "struct", + b"struct", + "text", + b"text", + "val", + b"val", + ] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "array", + b"array", + "boolean", + b"boolean", + "floating", + b"floating", + "integer", + b"integer", + "meta", + b"meta", + "range", + b"range", + "set", + b"set", + "struct", + b"struct", + "text", + b"text", + "val", + b"val", + ] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_val: _TypeAlias = _typing.Literal[ + "floating", "integer", "boolean", "text", "set", "struct", "range", "array" + ] + _WhichOneofArgType_val: _TypeAlias = _typing.Literal["val", b"val"] + + def WhichOneof(self, oneof_group: _WhichOneofArgType_val) -> _WhichOneofReturnType_val | None: ... -global___ValInit = ValInit +Global___ValInit: _TypeAlias = ValInit diff --git a/edg/edgir/lit_pb2.pyi b/edg/edgir/lit_pb2.pyi index 47168fcdc..1ed644162 100644 --- a/edg/edgir/lit_pb2.pyi +++ b/edg/edgir/lit_pb2.pyi @@ -8,214 +8,232 @@ Package : edg.lit Literals for assorted priitive types, i.e fixed constant values. """ -import builtins -import collections.abc -from .. import edgir -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message +from collections import abc as _abc +from edgir import common_pb2 as _common_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor -@typing_extensions.final -class FloatLit(google.protobuf.message.Message): +@_typing.final +class FloatLit(_message.Message): """* The core expression primitives we start with are the value literals that we can use """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - VAL_FIELD_NUMBER: builtins.int - val: builtins.float + DESCRIPTOR: _descriptor.Descriptor + VAL_FIELD_NUMBER: _builtins.int + val: _builtins.float - def __init__(self, *, val: builtins.float = ...) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + def __init__(self, *, val: _builtins.float = ...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] -global___FloatLit = FloatLit + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -@typing_extensions.final -class IntLit(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - VAL_FIELD_NUMBER: builtins.int - val: builtins.int +Global___FloatLit: _TypeAlias = FloatLit - def __init__(self, *, val: builtins.int = ...) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... +@_typing.final +class IntLit(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + VAL_FIELD_NUMBER: _builtins.int + val: _builtins.int -global___IntLit = IntLit + def __init__(self, *, val: _builtins.int = ...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] -@typing_extensions.final -class BoolLit(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - VAL_FIELD_NUMBER: builtins.int - val: builtins.bool + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - def __init__(self, *, val: builtins.bool = ...) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... +Global___IntLit: _TypeAlias = IntLit -global___BoolLit = BoolLit +@_typing.final +class BoolLit(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + VAL_FIELD_NUMBER: _builtins.int + val: _builtins.bool -@typing_extensions.final -class TextLit(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - VAL_FIELD_NUMBER: builtins.int - val: builtins.str + def __init__(self, *, val: _builtins.bool = ...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] - def __init__(self, *, val: builtins.str = ...) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ... + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TextLit = TextLit +Global___BoolLit: _TypeAlias = BoolLit -@typing_extensions.final -class RangeLit(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MINIMUM_FIELD_NUMBER: builtins.int - MAXIMUM_FIELD_NUMBER: builtins.int +@_typing.final +class TextLit(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + VAL_FIELD_NUMBER: _builtins.int + val: _builtins.str - @property - def minimum(self) -> global___ValueLit: ... - @property - def maximum(self) -> global___ValueLit: ... - def __init__(self, *, minimum: global___ValueLit | None = ..., maximum: global___ValueLit | None = ...) -> None: ... - def HasField( - self, field_name: typing_extensions.Literal["maximum", b"maximum", "minimum", b"minimum"] - ) -> builtins.bool: ... - def ClearField( - self, field_name: typing_extensions.Literal["maximum", b"maximum", "minimum", b"minimum"] - ) -> None: ... + def __init__(self, *, val: _builtins.str = ...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["val", b"val"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___TextLit: _TypeAlias = TextLit + +@_typing.final +class RangeLit(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MINIMUM_FIELD_NUMBER: _builtins.int + MAXIMUM_FIELD_NUMBER: _builtins.int + + @_builtins.property + def minimum(self) -> Global___ValueLit: ... + @_builtins.property + def maximum(self) -> Global___ValueLit: ... + def __init__(self, *, minimum: Global___ValueLit | None = ..., maximum: Global___ValueLit | None = ...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["maximum", b"maximum", "minimum", b"minimum"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["maximum", b"maximum", "minimum", b"minimum"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___RangeLit: _TypeAlias = RangeLit + +@_typing.final +class StructLit(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class MembersEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + + @_builtins.property + def value(self) -> Global___ValueLit: ... + def __init__(self, *, key: _builtins.str = ..., value: Global___ValueLit | None = ...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["value", b"value"] -global___RangeLit = RangeLit - -@typing_extensions.final -class StructLit(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - @typing_extensions.final - class MembersEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - - @property - def value(self) -> global___ValueLit: ... - def __init__(self, *, key: builtins.str = ..., value: global___ValueLit | None = ...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - MEMBERS_FIELD_NUMBER: builtins.int - - @property - def members(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___ValueLit]: ... - def __init__(self, *, members: collections.abc.Mapping[builtins.str, global___ValueLit] | None = ...) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["members", b"members"]) -> None: ... - -global___StructLit = StructLit - -@typing_extensions.final -class ArrayLit(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ELTS_FIELD_NUMBER: builtins.int - - @property - def elts(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ValueLit]: ... - def __init__(self, *, elts: collections.abc.Iterable[global___ValueLit] | None = ...) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["elts", b"elts"]) -> None: ... - -global___ArrayLit = ArrayLit - -@typing_extensions.final -class ValueLit(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FLOATING_FIELD_NUMBER: builtins.int - INTEGER_FIELD_NUMBER: builtins.int - BOOLEAN_FIELD_NUMBER: builtins.int - TEXT_FIELD_NUMBER: builtins.int - STRUCT_FIELD_NUMBER: builtins.int - RANGE_FIELD_NUMBER: builtins.int - ARRAY_FIELD_NUMBER: builtins.int - META_FIELD_NUMBER: builtins.int - - @property - def floating(self) -> global___FloatLit: ... - @property - def integer(self) -> global___IntLit: ... - @property - def boolean(self) -> global___BoolLit: ... - @property - def text(self) -> global___TextLit: ... - @property - def struct(self) -> global___StructLit: ... - @property - def range(self) -> global___RangeLit: ... - @property - def array(self) -> global___ArrayLit: ... - @property - def meta(self) -> edgir.common_pb2.Metadata: ... + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + MEMBERS_FIELD_NUMBER: _builtins.int + + @_builtins.property + def members(self) -> _containers.MessageMap[_builtins.str, Global___ValueLit]: ... + def __init__(self, *, members: _abc.Mapping[_builtins.str, Global___ValueLit] | None = ...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["members", b"members"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___StructLit: _TypeAlias = StructLit + +@_typing.final +class ArrayLit(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ELTS_FIELD_NUMBER: _builtins.int + + @_builtins.property + def elts(self) -> _containers.RepeatedCompositeFieldContainer[Global___ValueLit]: ... + def __init__(self, *, elts: _abc.Iterable[Global___ValueLit] | None = ...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["elts", b"elts"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___ArrayLit: _TypeAlias = ArrayLit + +@_typing.final +class ValueLit(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + FLOATING_FIELD_NUMBER: _builtins.int + INTEGER_FIELD_NUMBER: _builtins.int + BOOLEAN_FIELD_NUMBER: _builtins.int + TEXT_FIELD_NUMBER: _builtins.int + STRUCT_FIELD_NUMBER: _builtins.int + RANGE_FIELD_NUMBER: _builtins.int + ARRAY_FIELD_NUMBER: _builtins.int + META_FIELD_NUMBER: _builtins.int + + @_builtins.property + def floating(self) -> Global___FloatLit: ... + @_builtins.property + def integer(self) -> Global___IntLit: ... + @_builtins.property + def boolean(self) -> Global___BoolLit: ... + @_builtins.property + def text(self) -> Global___TextLit: ... + @_builtins.property + def struct(self) -> Global___StructLit: ... + @_builtins.property + def range(self) -> Global___RangeLit: ... + @_builtins.property + def array(self) -> Global___ArrayLit: ... + @_builtins.property + def meta(self) -> _common_pb2.Metadata: ... def __init__( self, *, - floating: global___FloatLit | None = ..., - integer: global___IntLit | None = ..., - boolean: global___BoolLit | None = ..., - text: global___TextLit | None = ..., - struct: global___StructLit | None = ..., - range: global___RangeLit | None = ..., - array: global___ArrayLit | None = ..., - meta: edgir.common_pb2.Metadata | None = ..., + floating: Global___FloatLit | None = ..., + integer: Global___IntLit | None = ..., + boolean: Global___BoolLit | None = ..., + text: Global___TextLit | None = ..., + struct: Global___StructLit | None = ..., + range: Global___RangeLit | None = ..., + array: Global___ArrayLit | None = ..., + meta: _common_pb2.Metadata | None = ..., ) -> None: ... - def HasField( - self, - field_name: typing_extensions.Literal[ - "array", - b"array", - "boolean", - b"boolean", - "floating", - b"floating", - "integer", - b"integer", - "meta", - b"meta", - "range", - b"range", - "struct", - b"struct", - "text", - b"text", - "type", - b"type", - ], - ) -> builtins.bool: ... - def ClearField( - self, - field_name: typing_extensions.Literal[ - "array", - b"array", - "boolean", - b"boolean", - "floating", - b"floating", - "integer", - b"integer", - "meta", - b"meta", - "range", - b"range", - "struct", - b"struct", - "text", - b"text", - "type", - b"type", - ], - ) -> None: ... - def WhichOneof( - self, oneof_group: typing_extensions.Literal["type", b"type"] - ) -> typing_extensions.Literal["floating", "integer", "boolean", "text", "struct", "range", "array"] | None: ... - -global___ValueLit = ValueLit + _HasFieldArgType: _TypeAlias = _typing.Literal[ + "array", + b"array", + "boolean", + b"boolean", + "floating", + b"floating", + "integer", + b"integer", + "meta", + b"meta", + "range", + b"range", + "struct", + b"struct", + "text", + b"text", + "type", + b"type", + ] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "array", + b"array", + "boolean", + b"boolean", + "floating", + b"floating", + "integer", + b"integer", + "meta", + b"meta", + "range", + b"range", + "struct", + b"struct", + "text", + b"text", + "type", + b"type", + ] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_type: _TypeAlias = _typing.Literal[ + "floating", "integer", "boolean", "text", "struct", "range", "array" + ] + _WhichOneofArgType_type: _TypeAlias = _typing.Literal["type", b"type"] + + def WhichOneof(self, oneof_group: _WhichOneofArgType_type) -> _WhichOneofReturnType_type | None: ... + +Global___ValueLit: _TypeAlias = ValueLit diff --git a/edg/edgir/name_pb2.pyi b/edg/edgir/name_pb2.pyi index 6635072ee..5b30f799c 100644 --- a/edg/edgir/name_pb2.pyi +++ b/edg/edgir/name_pb2.pyi @@ -11,65 +11,71 @@ There are three major classes of name in edg: - LibraryNames, which we use to identify specific libraries. """ -import builtins -from .. import edgir -import google.protobuf.descriptor -import google.protobuf.message +from edgir import common_pb2 as _common_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor -@typing_extensions.final -class Namespace(google.protobuf.message.Message): +@_typing.final +class Namespace(_message.Message): """* A namespace allows us to define a more useful organizational structure over items in the library. It lets us group elements in categories that are orthogonal to the usual Block, Port, Link, ontology. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - BASIC_FIELD_NUMBER: builtins.int - META_FIELD_NUMBER: builtins.int - basic: builtins.str + DESCRIPTOR: _descriptor.Descriptor + BASIC_FIELD_NUMBER: _builtins.int + META_FIELD_NUMBER: _builtins.int + basic: _builtins.str "* Basic namespaces are a way to organize library elements into a\n useful hirearchy (e.g. 'Core.*' for the most primitive definitions\n that we define, or 'NXP.*' for NXP made components.)\n\n Basic namespaces should have the following properties:\n\n - First char is a capital letter\n - All other chars must be letters, numbers, '-', '<', '>'\n - CamelCase is preffered, don't use any symbols in the name\n if possible.\n " - @property - def meta(self) -> edgir.common_pb2.Metadata: ... - def __init__(self, *, basic: builtins.str = ..., meta: edgir.common_pb2.Metadata | None = ...) -> None: ... - def HasField( - self, field_name: typing_extensions.Literal["basic", b"basic", "meta", b"meta", "namespace", b"namespace"] - ) -> builtins.bool: ... - def ClearField( - self, field_name: typing_extensions.Literal["basic", b"basic", "meta", b"meta", "namespace", b"namespace"] - ) -> None: ... - def WhichOneof( - self, oneof_group: typing_extensions.Literal["namespace", b"namespace"] - ) -> typing_extensions.Literal["basic"] | None: ... - -global___Namespace = Namespace - -@typing_extensions.final -class LibraryName(google.protobuf.message.Message): + @_builtins.property + def meta(self) -> _common_pb2.Metadata: ... + def __init__(self, *, basic: _builtins.str = ..., meta: _common_pb2.Metadata | None = ...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["basic", b"basic", "meta", b"meta", "namespace", b"namespace"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["basic", b"basic", "meta", b"meta", "namespace", b"namespace"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_namespace: _TypeAlias = _typing.Literal["basic"] + _WhichOneofArgType_namespace: _TypeAlias = _typing.Literal["namespace", b"namespace"] + + def WhichOneof(self, oneof_group: _WhichOneofArgType_namespace) -> _WhichOneofReturnType_namespace | None: ... + +Global___Namespace: _TypeAlias = Namespace + +@_typing.final +class LibraryName(_message.Message): """* A library name is a way to identify a specific library from a set of parent libraries. This can be the initial element in a path or reference. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - META_FIELD_NUMBER: builtins.int - name: builtins.str + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + META_FIELD_NUMBER: _builtins.int + name: _builtins.str "* Since libraries allow for inheritance, we will often want to say\n this element, defined in *this* particular library.\n\n In those cases we want to be able to specify the relevant library\n by its identifier.\n\n Otherwise we assume it's somehow implicit which library we're\n talking about.\n " - @property - def meta(self) -> edgir.common_pb2.Metadata: ... - def __init__(self, *, name: builtins.str = ..., meta: edgir.common_pb2.Metadata | None = ...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["meta", b"meta"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["meta", b"meta", "name", b"name"]) -> None: ... + @_builtins.property + def meta(self) -> _common_pb2.Metadata: ... + def __init__(self, *, name: _builtins.str = ..., meta: _common_pb2.Metadata | None = ...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "name", b"name"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___LibraryName = LibraryName +Global___LibraryName: _TypeAlias = LibraryName diff --git a/edg/edgir/ref_pb2.pyi b/edg/edgir/ref_pb2.pyi index 477ca50ab..992c4f924 100644 --- a/edg/edgir/ref_pb2.pyi +++ b/edg/edgir/ref_pb2.pyi @@ -12,30 +12,29 @@ We enforce certain structural properties by having a series of nested 'steps' that determine the next step in a path reference. """ -import builtins -import collections.abc -from .. import edgir -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message +from collections import abc as _abc +from edgir import common_pb2 as _common_pb2 +from edgir import name_pb2 as _name_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor class _Reserved: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType("ValueType", _builtins.int) + V: _TypeAlias = ValueType -class _ReservedEnumTypeWrapper( - google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Reserved.ValueType], builtins.type -): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _ReservedEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_Reserved.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor UNDEFINED: _Reserved.ValueType CONNECTED_LINK: _Reserved.ValueType "* Directions we could move" @@ -67,10 +66,10 @@ ELEMENTS: Reserved.ValueType "available on PortArray and LinkArray, returns a list of string of element names" ALLOCATED: Reserved.ValueType "cannot be used as a generator dependency\navailable on PortArray, returns a list of string of incoming connection names,\n" -global___Reserved = Reserved +Global___Reserved: _TypeAlias = Reserved -@typing_extensions.final -class LocalStep(google.protobuf.message.Message): +@_typing.final +class LocalStep(_message.Message): """* This is an actual step you take within the local environment. @@ -78,104 +77,101 @@ class LocalStep(google.protobuf.message.Message): but to the user all of these look just like local variables """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - RESERVED_PARAM_FIELD_NUMBER: builtins.int - ALLOCATE_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - reserved_param: global___Reserved.ValueType - allocate: builtins.str + DESCRIPTOR: _descriptor.Descriptor + RESERVED_PARAM_FIELD_NUMBER: _builtins.int + ALLOCATE_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + reserved_param: Global___Reserved.ValueType + allocate: _builtins.str "Allocates a new element in an array, valid for arrays only.\n Empty string means automatically allocated, while a non-empty string is a suggested name.\n " - name: builtins.str + name: _builtins.str "*\n A local name is what something is called in the context of its parent,\n whether that parent is a namespace (as in the library) or some other\n element (as in a design or heirarchy block).\n\n localNames should have the following properties:\n\n - First char is a lower case letter\n - All other chars must be letters, numbers, '-', '<', '>'\n - lowerCamelCase is preffered, don't use any symbols in the name\n if possible.\n\n These are style guidelines, literally any string will work.\n " def __init__( self, *, - reserved_param: global___Reserved.ValueType = ..., - allocate: builtins.str = ..., - name: builtins.str = ..., + reserved_param: Global___Reserved.ValueType = ..., + allocate: _builtins.str = ..., + name: _builtins.str = ..., ) -> None: ... - def HasField( - self, - field_name: typing_extensions.Literal[ - "allocate", b"allocate", "name", b"name", "reserved_param", b"reserved_param", "step", b"step" - ], - ) -> builtins.bool: ... - def ClearField( - self, - field_name: typing_extensions.Literal[ - "allocate", b"allocate", "name", b"name", "reserved_param", b"reserved_param", "step", b"step" - ], - ) -> None: ... - def WhichOneof( - self, oneof_group: typing_extensions.Literal["step", b"step"] - ) -> typing_extensions.Literal["reserved_param", "allocate", "name"] | None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal[ + "allocate", b"allocate", "name", b"name", "reserved_param", b"reserved_param", "step", b"step" + ] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "allocate", b"allocate", "name", b"name", "reserved_param", b"reserved_param", "step", b"step" + ] -global___LocalStep = LocalStep + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_step: _TypeAlias = _typing.Literal["reserved_param", "allocate", "name"] + _WhichOneofArgType_step: _TypeAlias = _typing.Literal["step", b"step"] -@typing_extensions.final -class LocalPath(google.protobuf.message.Message): + def WhichOneof(self, oneof_group: _WhichOneofArgType_step) -> _WhichOneofReturnType_step | None: ... + +Global___LocalStep: _TypeAlias = LocalStep + +@_typing.final +class LocalPath(_message.Message): """* This is a path from a local context to some other local context. To be used as a reference. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - STEPS_FIELD_NUMBER: builtins.int - META_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + STEPS_FIELD_NUMBER: _builtins.int + META_FIELD_NUMBER: _builtins.int - @property - def steps(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___LocalStep]: ... - @property - def meta(self) -> edgir.common_pb2.Metadata: ... + @_builtins.property + def steps(self) -> _containers.RepeatedCompositeFieldContainer[Global___LocalStep]: ... + @_builtins.property + def meta(self) -> _common_pb2.Metadata: ... def __init__( - self, - *, - steps: collections.abc.Iterable[global___LocalStep] | None = ..., - meta: edgir.common_pb2.Metadata | None = ..., + self, *, steps: _abc.Iterable[Global___LocalStep] | None = ..., meta: _common_pb2.Metadata | None = ... ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["meta", b"meta"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["meta", b"meta", "steps", b"steps"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta"] -global___LocalPath = LocalPath + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "steps", b"steps"] -@typing_extensions.final -class LibraryPath(google.protobuf.message.Message): + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___LocalPath: _TypeAlias = LocalPath + +@_typing.final +class LibraryPath(_message.Message): """* This is a path to an element within a library from the root of a library. To be used as a way to reference such elements. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - START_FIELD_NUMBER: builtins.int - STEPS_FIELD_NUMBER: builtins.int - TARGET_FIELD_NUMBER: builtins.int - META_FIELD_NUMBER: builtins.int - - @property - def start(self) -> edgir.name_pb2.LibraryName: ... - @property - def steps( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[edgir.name_pb2.Namespace]: ... - @property - def target(self) -> global___LocalStep: ... - @property - def meta(self) -> edgir.common_pb2.Metadata: ... + DESCRIPTOR: _descriptor.Descriptor + START_FIELD_NUMBER: _builtins.int + STEPS_FIELD_NUMBER: _builtins.int + TARGET_FIELD_NUMBER: _builtins.int + META_FIELD_NUMBER: _builtins.int + + @_builtins.property + def start(self) -> _name_pb2.LibraryName: ... + @_builtins.property + def steps(self) -> _containers.RepeatedCompositeFieldContainer[_name_pb2.Namespace]: ... + @_builtins.property + def target(self) -> Global___LocalStep: ... + @_builtins.property + def meta(self) -> _common_pb2.Metadata: ... def __init__( self, *, - start: edgir.name_pb2.LibraryName | None = ..., - steps: collections.abc.Iterable[edgir.name_pb2.Namespace] | None = ..., - target: global___LocalStep | None = ..., - meta: edgir.common_pb2.Metadata | None = ..., - ) -> None: ... - def HasField( - self, field_name: typing_extensions.Literal["meta", b"meta", "start", b"start", "target", b"target"] - ) -> builtins.bool: ... - def ClearField( - self, - field_name: typing_extensions.Literal[ - "meta", b"meta", "start", b"start", "steps", b"steps", "target", b"target" - ], + start: _name_pb2.LibraryName | None = ..., + steps: _abc.Iterable[_name_pb2.Namespace] | None = ..., + target: Global___LocalStep | None = ..., + meta: _common_pb2.Metadata | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["meta", b"meta", "start", b"start", "target", b"target"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "meta", b"meta", "start", b"start", "steps", b"steps", "target", b"target" + ] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___LibraryPath = LibraryPath +Global___LibraryPath: _TypeAlias = LibraryPath diff --git a/edg/edgir/schema_pb2.py b/edg/edgir/schema_pb2.py index a6ad0fd96..515fd4516 100644 --- a/edg/edgir/schema_pb2.py +++ b/edg/edgir/schema_pb2.py @@ -10,7 +10,7 @@ from ..edgir import elem_pb2 as edgir_dot_elem__pb2 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n\x12edgir/schema.proto\x12\x0cedgir.schema\x1a\x12edgir/common.proto\x1a\x10edgir/elem.proto"\x9b\x04\n\x07Library\x12*\n\x02id\x18\x01 \x01(\x0b2\x1e.edgir.schema.Library.LibIdent\x12\x0f\n\x07imports\x18\x02 \x03(\t\x12&\n\x04root\x18\n \x01(\x0b2\x18.edgir.schema.Library.NS\x12$\n\x04meta\x18\x7f \x01(\x0b2\x16.edgir.common.Metadata\x1a\xea\x02\n\x02NS\x126\n\x07members\x18\x01 \x03(\x0b2%.edgir.schema.Library.NS.MembersEntry\x1a\xdd\x01\n\x03Val\x12 \n\x04port\x18\n \x01(\x0b2\x10.edgir.elem.PortH\x00\x12$\n\x06bundle\x18\x0b \x01(\x0b2\x12.edgir.elem.BundleH\x00\x125\n\x0fhierarchy_block\x18\r \x01(\x0b2\x1a.edgir.elem.HierarchyBlockH\x00\x12 \n\x04link\x18\x0e \x01(\x0b2\x10.edgir.elem.LinkH\x00\x12-\n\tnamespace\x18\x14 \x01(\x0b2\x18.edgir.schema.Library.NSH\x00B\x06\n\x04type\x1aL\n\x0cMembersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b2\x1c.edgir.schema.Library.NS.Val:\x028\x01\x1a\x18\n\x08LibIdent\x12\x0c\n\x04name\x18\x01 \x01(\t"6\n\x06Design\x12,\n\x08contents\x18\x02 \x01(\x0b2\x1a.edgir.elem.HierarchyBlockb\x06proto3' + b'\n\x12edgir/schema.proto\x12\x0cedgir.schema\x1a\x12edgir/common.proto\x1a\x10edgir/elem.proto"\xf5\x03\n\x07Library\x12*\n\x02id\x18\x01 \x01(\x0b2\x1e.edgir.schema.Library.LibIdent\x12\x0f\n\x07imports\x18\x02 \x03(\t\x12&\n\x04root\x18\n \x01(\x0b2\x18.edgir.schema.Library.NS\x12$\n\x04meta\x18\x7f \x01(\x0b2\x16.edgir.common.Metadata\x1a\xc4\x02\n\x02NS\x126\n\x07members\x18\x01 \x03(\x0b2%.edgir.schema.Library.NS.MembersEntry\x1a\xb7\x01\n\x03Val\x12 \n\x04port\x18\n \x01(\x0b2\x10.edgir.elem.PortH\x00\x125\n\x0fhierarchy_block\x18\r \x01(\x0b2\x1a.edgir.elem.HierarchyBlockH\x00\x12 \n\x04link\x18\x0e \x01(\x0b2\x10.edgir.elem.LinkH\x00\x12-\n\tnamespace\x18\x14 \x01(\x0b2\x18.edgir.schema.Library.NSH\x00B\x06\n\x04type\x1aL\n\x0cMembersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12+\n\x05value\x18\x02 \x01(\x0b2\x1c.edgir.schema.Library.NS.Val:\x028\x01\x1a\x18\n\x08LibIdent\x12\x0c\n\x04name\x18\x01 \x01(\t"6\n\x06Design\x12,\n\x08contents\x18\x02 \x01(\x0b2\x1a.edgir.elem.HierarchyBlockb\x06proto3' ) _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, "edgir.schema_pb2", globals()) @@ -19,14 +19,14 @@ _LIBRARY_NS_MEMBERSENTRY._options = None _LIBRARY_NS_MEMBERSENTRY._serialized_options = b"8\x01" _LIBRARY._serialized_start = 75 - _LIBRARY._serialized_end = 614 + _LIBRARY._serialized_end = 576 _LIBRARY_NS._serialized_start = 226 - _LIBRARY_NS._serialized_end = 588 + _LIBRARY_NS._serialized_end = 550 _LIBRARY_NS_VAL._serialized_start = 289 - _LIBRARY_NS_VAL._serialized_end = 510 - _LIBRARY_NS_MEMBERSENTRY._serialized_start = 512 - _LIBRARY_NS_MEMBERSENTRY._serialized_end = 588 - _LIBRARY_LIBIDENT._serialized_start = 590 - _LIBRARY_LIBIDENT._serialized_end = 614 - _DESIGN._serialized_start = 616 - _DESIGN._serialized_end = 670 + _LIBRARY_NS_VAL._serialized_end = 472 + _LIBRARY_NS_MEMBERSENTRY._serialized_start = 474 + _LIBRARY_NS_MEMBERSENTRY._serialized_end = 550 + _LIBRARY_LIBIDENT._serialized_start = 552 + _LIBRARY_LIBIDENT._serialized_end = 576 + _DESIGN._serialized_start = 578 + _DESIGN._serialized_end = 632 diff --git a/edg/edgir/schema_pb2.pyi b/edg/edgir/schema_pb2.pyi index d6e5e43e7..3080870ab 100644 --- a/edg/edgir/schema_pb2.pyi +++ b/edg/edgir/schema_pb2.pyi @@ -9,22 +9,24 @@ These types contain the highest level data structures we use to describe sets of blocks, ports, and links. """ -import builtins -import collections.abc -from .. import edgir -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message +from collections import abc as _abc +from edgir import common_pb2 as _common_pb2 +from edgir import elem_pb2 as _elem_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor -@typing_extensions.final -class Library(google.protobuf.message.Message): +@_typing.final +class Library(_message.Message): """* This is the top-level schema for a library of blocks, ports, and links. It need not be complete (containing all the blocks to be used in a design) @@ -36,159 +38,161 @@ class Library(google.protobuf.message.Message): libraries, for merging, modification, etc.. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - @typing_extensions.final - class NS(google.protobuf.message.Message): + @_typing.final + class NS(_message.Message): """* Library Namespace, avoiding collision w/ edg.name.Namespace""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - @typing_extensions.final - class Val(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PORT_FIELD_NUMBER: builtins.int - BUNDLE_FIELD_NUMBER: builtins.int - HIERARCHY_BLOCK_FIELD_NUMBER: builtins.int - LINK_FIELD_NUMBER: builtins.int - NAMESPACE_FIELD_NUMBER: builtins.int - - @property - def port(self) -> edgir.elem_pb2.Port: ... - @property - def bundle(self) -> edgir.elem_pb2.Bundle: ... - @property - def hierarchy_block(self) -> edgir.elem_pb2.HierarchyBlock: ... - @property - def link(self) -> edgir.elem_pb2.Link: ... - @property - def namespace(self) -> global___Library.NS: ... + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class Val(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PORT_FIELD_NUMBER: _builtins.int + HIERARCHY_BLOCK_FIELD_NUMBER: _builtins.int + LINK_FIELD_NUMBER: _builtins.int + NAMESPACE_FIELD_NUMBER: _builtins.int + + @_builtins.property + def port(self) -> _elem_pb2.Port: ... + @_builtins.property + def hierarchy_block(self) -> _elem_pb2.HierarchyBlock: ... + @_builtins.property + def link(self) -> _elem_pb2.Link: ... + @_builtins.property + def namespace(self) -> Global___Library.NS: ... def __init__( self, *, - port: edgir.elem_pb2.Port | None = ..., - bundle: edgir.elem_pb2.Bundle | None = ..., - hierarchy_block: edgir.elem_pb2.HierarchyBlock | None = ..., - link: edgir.elem_pb2.Link | None = ..., - namespace: global___Library.NS | None = ..., + port: _elem_pb2.Port | None = ..., + hierarchy_block: _elem_pb2.HierarchyBlock | None = ..., + link: _elem_pb2.Link | None = ..., + namespace: Global___Library.NS | None = ..., ) -> None: ... - def HasField( - self, - field_name: typing_extensions.Literal[ - "bundle", - b"bundle", - "hierarchy_block", - b"hierarchy_block", - "link", - b"link", - "namespace", - b"namespace", - "port", - b"port", - "type", - b"type", - ], - ) -> builtins.bool: ... - def ClearField( - self, - field_name: typing_extensions.Literal[ - "bundle", - b"bundle", - "hierarchy_block", - b"hierarchy_block", - "link", - b"link", - "namespace", - b"namespace", - "port", - b"port", - "type", - b"type", - ], - ) -> None: ... - def WhichOneof( - self, oneof_group: typing_extensions.Literal["type", b"type"] - ) -> typing_extensions.Literal["port", "bundle", "hierarchy_block", "link", "namespace"] | None: ... - - @typing_extensions.final - class MembersEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - - @property - def value(self) -> global___Library.NS.Val: ... - def __init__(self, *, key: builtins.str = ..., value: global___Library.NS.Val | None = ...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - MEMBERS_FIELD_NUMBER: builtins.int - - @property - def members(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___Library.NS.Val]: ... - def __init__( - self, *, members: collections.abc.Mapping[builtins.str, global___Library.NS.Val] | None = ... - ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["members", b"members"]) -> None: ... - - @typing_extensions.final - class LibIdent(google.protobuf.message.Message): + _HasFieldArgType: _TypeAlias = _typing.Literal[ + "hierarchy_block", + b"hierarchy_block", + "link", + b"link", + "namespace", + b"namespace", + "port", + b"port", + "type", + b"type", + ] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "hierarchy_block", + b"hierarchy_block", + "link", + b"link", + "namespace", + b"namespace", + "port", + b"port", + "type", + b"type", + ] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_type: _TypeAlias = _typing.Literal["port", "hierarchy_block", "link", "namespace"] + _WhichOneofArgType_type: _TypeAlias = _typing.Literal["type", b"type"] + + def WhichOneof(self, oneof_group: _WhichOneofArgType_type) -> _WhichOneofReturnType_type | None: ... + + @_typing.final + class MembersEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + + @_builtins.property + def value(self) -> Global___Library.NS.Val: ... + def __init__(self, *, key: _builtins.str = ..., value: Global___Library.NS.Val | None = ...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["value", b"value"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + MEMBERS_FIELD_NUMBER: _builtins.int + + @_builtins.property + def members(self) -> _containers.MessageMap[_builtins.str, Global___Library.NS.Val]: ... + def __init__(self, *, members: _abc.Mapping[_builtins.str, Global___Library.NS.Val] | None = ...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["members", b"members"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + @_typing.final + class LibIdent(_message.Message): """* How we identify a library within a set. Will probably evolve to capture more metadata. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - name: builtins.str - - def __init__(self, *, name: builtins.str = ...) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["name", b"name"]) -> None: ... - - ID_FIELD_NUMBER: builtins.int - IMPORTS_FIELD_NUMBER: builtins.int - ROOT_FIELD_NUMBER: builtins.int - META_FIELD_NUMBER: builtins.int - - @property - def id(self) -> global___Library.LibIdent: ... - @property - def imports(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... - @property - def root(self) -> global___Library.NS: ... - @property - def meta(self) -> edgir.common_pb2.Metadata: ... + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + name: _builtins.str + + def __init__(self, *, name: _builtins.str = ...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + ID_FIELD_NUMBER: _builtins.int + IMPORTS_FIELD_NUMBER: _builtins.int + ROOT_FIELD_NUMBER: _builtins.int + META_FIELD_NUMBER: _builtins.int + + @_builtins.property + def id(self) -> Global___Library.LibIdent: ... + @_builtins.property + def imports(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... + @_builtins.property + def root(self) -> Global___Library.NS: ... + @_builtins.property + def meta(self) -> _common_pb2.Metadata: ... def __init__( self, *, - id: global___Library.LibIdent | None = ..., - imports: collections.abc.Iterable[builtins.str] | None = ..., - root: global___Library.NS | None = ..., - meta: edgir.common_pb2.Metadata | None = ..., - ) -> None: ... - def HasField( - self, field_name: typing_extensions.Literal["id", b"id", "meta", b"meta", "root", b"root"] - ) -> builtins.bool: ... - def ClearField( - self, - field_name: typing_extensions.Literal["id", b"id", "imports", b"imports", "meta", b"meta", "root", b"root"], + id: Global___Library.LibIdent | None = ..., + imports: _abc.Iterable[_builtins.str] | None = ..., + root: Global___Library.NS | None = ..., + meta: _common_pb2.Metadata | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["id", b"id", "meta", b"meta", "root", b"root"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "id", b"id", "imports", b"imports", "meta", b"meta", "root", b"root" + ] -global___Library = Library + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -@typing_extensions.final -class Design(google.protobuf.message.Message): +Global___Library: _TypeAlias = Library + +@_typing.final +class Design(_message.Message): """* This is a Design for an embedded system at some level of abstraction.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CONTENTS_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + CONTENTS_FIELD_NUMBER: _builtins.int - @property - def contents(self) -> edgir.elem_pb2.HierarchyBlock: + @_builtins.property + def contents(self) -> _elem_pb2.HierarchyBlock: """* Delegate the actual contents of the design to a hierarchy block, for which ports are ignored""" - def __init__(self, *, contents: edgir.elem_pb2.HierarchyBlock | None = ...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["contents", b"contents"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["contents", b"contents"]) -> None: ... + def __init__(self, *, contents: _elem_pb2.HierarchyBlock | None = ...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["contents", b"contents"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["contents", b"contents"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Design = Design +Global___Design: _TypeAlias = Design diff --git a/edg/edgrpc/compiler_pb2.pyi b/edg/edgrpc/compiler_pb2.pyi index 162a33bd8..88dd418b3 100644 --- a/edg/edgrpc/compiler_pb2.pyi +++ b/edg/edgrpc/compiler_pb2.pyi @@ -7,124 +7,129 @@ Interface to the HDL (eg, library fetch) is not included here. This no longer uses gRPC to avoid complexity of sockets. """ -import builtins -import collections.abc -from .. import edgir -from .. import edgrpc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message +from collections import abc as _abc +from edgir import lit_pb2 as _lit_pb2 +from edgir import ref_pb2 as _ref_pb2 +from edgir import schema_pb2 as _schema_pb2 +from edgrpc import hdl_pb2 as _hdl_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +import builtins as _builtins import sys +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing_extensions.final -class ErrorRecord(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PATH_FIELD_NUMBER: builtins.int - KIND_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - DETAILS_FIELD_NUMBER: builtins.int - - @property - def path(self) -> edgir.ref_pb2.LocalPath: - """link / block / port, cannot be the constraint""" - kind: builtins.str + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class ErrorRecord(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PATH_FIELD_NUMBER: _builtins.int + KIND_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + DETAILS_FIELD_NUMBER: _builtins.int + kind: _builtins.str "kind of error, eg failed to generate" - name: builtins.str + name: _builtins.str "constraint name / short description" - details: builtins.str + details: _builtins.str "longer description, optional" + @_builtins.property + def path(self) -> _ref_pb2.LocalPath: + """link / block / port, cannot be the constraint""" + def __init__( self, *, - path: edgir.ref_pb2.LocalPath | None = ..., - kind: builtins.str = ..., - name: builtins.str = ..., - details: builtins.str = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["path", b"path"]) -> builtins.bool: ... - def ClearField( - self, - field_name: typing_extensions.Literal["details", b"details", "kind", b"kind", "name", b"name", "path", b"path"], + path: _ref_pb2.LocalPath | None = ..., + kind: _builtins.str = ..., + name: _builtins.str = ..., + details: _builtins.str = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["path", b"path"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "details", b"details", "kind", b"kind", "name", b"name", "path", b"path" + ] -global___ErrorRecord = ErrorRecord + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -@typing_extensions.final -class CompilerRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DESIGN_FIELD_NUMBER: builtins.int - REFINEMENTS_FIELD_NUMBER: builtins.int +Global___ErrorRecord: _TypeAlias = ErrorRecord - @property - def design(self) -> edgir.schema_pb2.Design: ... - @property - def refinements(self) -> edgrpc.hdl_pb2.Refinements: ... +@_typing.final +class CompilerRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + DESIGN_FIELD_NUMBER: _builtins.int + REFINEMENTS_FIELD_NUMBER: _builtins.int + + @_builtins.property + def design(self) -> _schema_pb2.Design: ... + @_builtins.property + def refinements(self) -> _hdl_pb2.Refinements: ... def __init__( - self, *, design: edgir.schema_pb2.Design | None = ..., refinements: edgrpc.hdl_pb2.Refinements | None = ... - ) -> None: ... - def HasField( - self, field_name: typing_extensions.Literal["design", b"design", "refinements", b"refinements"] - ) -> builtins.bool: ... - def ClearField( - self, field_name: typing_extensions.Literal["design", b"design", "refinements", b"refinements"] + self, *, design: _schema_pb2.Design | None = ..., refinements: _hdl_pb2.Refinements | None = ... ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["design", b"design", "refinements", b"refinements"] -global___CompilerRequest = CompilerRequest - -@typing_extensions.final -class CompilerResult(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - @typing_extensions.final - class Value(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PATH_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - - @property - def path(self) -> edgir.ref_pb2.LocalPath: ... - @property - def value(self) -> edgir.lit_pb2.ValueLit: ... - def __init__( - self, *, path: edgir.ref_pb2.LocalPath | None = ..., value: edgir.lit_pb2.ValueLit | None = ... - ) -> None: ... - def HasField( - self, field_name: typing_extensions.Literal["path", b"path", "value", b"value"] - ) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["path", b"path", "value", b"value"]) -> None: ... - - DESIGN_FIELD_NUMBER: builtins.int - ERRORS_FIELD_NUMBER: builtins.int - SOLVEDVALUES_FIELD_NUMBER: builtins.int - - @property - def design(self) -> edgir.schema_pb2.Design: ... - @property - def errors(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ErrorRecord]: ... - @property - def solvedValues( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___CompilerResult.Value]: ... + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["design", b"design", "refinements", b"refinements"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___CompilerRequest: _TypeAlias = CompilerRequest + +@_typing.final +class CompilerResult(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class Value(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PATH_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + + @_builtins.property + def path(self) -> _ref_pb2.LocalPath: ... + @_builtins.property + def value(self) -> _lit_pb2.ValueLit: ... + def __init__(self, *, path: _ref_pb2.LocalPath | None = ..., value: _lit_pb2.ValueLit | None = ...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["path", b"path", "value", b"value"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["path", b"path", "value", b"value"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + DESIGN_FIELD_NUMBER: _builtins.int + ERRORS_FIELD_NUMBER: _builtins.int + SOLVEDVALUES_FIELD_NUMBER: _builtins.int + + @_builtins.property + def design(self) -> _schema_pb2.Design: ... + @_builtins.property + def errors(self) -> _containers.RepeatedCompositeFieldContainer[Global___ErrorRecord]: ... + @_builtins.property + def solvedValues(self) -> _containers.RepeatedCompositeFieldContainer[Global___CompilerResult.Value]: ... def __init__( self, *, - design: edgir.schema_pb2.Design | None = ..., - errors: collections.abc.Iterable[global___ErrorRecord] | None = ..., - solvedValues: collections.abc.Iterable[global___CompilerResult.Value] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["design", b"design"]) -> builtins.bool: ... - def ClearField( - self, - field_name: typing_extensions.Literal[ - "design", b"design", "errors", b"errors", "solvedValues", b"solvedValues" - ], + design: _schema_pb2.Design | None = ..., + errors: _abc.Iterable[Global___ErrorRecord] | None = ..., + solvedValues: _abc.Iterable[Global___CompilerResult.Value] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["design", b"design"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "design", b"design", "errors", b"errors", "solvedValues", b"solvedValues" + ] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CompilerResult = CompilerResult +Global___CompilerResult: _TypeAlias = CompilerResult diff --git a/edg/edgrpc/hdl_pb2.pyi b/edg/edgrpc/hdl_pb2.pyi index 0b1c2c9ca..6f22f752f 100644 --- a/edg/edgrpc/hdl_pb2.pyi +++ b/edg/edgrpc/hdl_pb2.pyi @@ -5,635 +5,638 @@ isort:skip_file HDL-to-edgir elaboration for a compiler in a different process / language. """ -import builtins -import collections.abc -from .. import edgir -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message +from collections import abc as _abc +from edgir import elem_pb2 as _elem_pb2 +from edgir import lit_pb2 as _lit_pb2 +from edgir import ref_pb2 as _ref_pb2 +from edgir import schema_pb2 as _schema_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +import builtins as _builtins import sys -import typing +import typing as _typing -if sys.version_info >= (3, 8): - import typing as typing_extensions +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing_extensions.final -class Refinements(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - @typing_extensions.final - class Subclass(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PATH_FIELD_NUMBER: builtins.int - CLS_FIELD_NUMBER: builtins.int - REPLACEMENT_FIELD_NUMBER: builtins.int - - @property - def path(self) -> edgir.ref_pb2.LocalPath: ... - @property - def cls(self) -> edgir.ref_pb2.LibraryPath: ... - @property - def replacement(self) -> edgir.ref_pb2.LibraryPath: ... + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class Refinements(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class Subclass(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PATH_FIELD_NUMBER: _builtins.int + CLS_FIELD_NUMBER: _builtins.int + REPLACEMENT_FIELD_NUMBER: _builtins.int + + @_builtins.property + def path(self) -> _ref_pb2.LocalPath: ... + @_builtins.property + def cls(self) -> _ref_pb2.LibraryPath: ... + @_builtins.property + def replacement(self) -> _ref_pb2.LibraryPath: ... def __init__( self, *, - path: edgir.ref_pb2.LocalPath | None = ..., - cls: edgir.ref_pb2.LibraryPath | None = ..., - replacement: edgir.ref_pb2.LibraryPath | None = ..., + path: _ref_pb2.LocalPath | None = ..., + cls: _ref_pb2.LibraryPath | None = ..., + replacement: _ref_pb2.LibraryPath | None = ..., ) -> None: ... - def HasField( - self, - field_name: typing_extensions.Literal[ - "cls", b"cls", "path", b"path", "replacement", b"replacement", "source", b"source" - ], - ) -> builtins.bool: ... - def ClearField( - self, - field_name: typing_extensions.Literal[ - "cls", b"cls", "path", b"path", "replacement", b"replacement", "source", b"source" - ], - ) -> None: ... - def WhichOneof( - self, oneof_group: typing_extensions.Literal["source", b"source"] - ) -> typing_extensions.Literal["path", "cls"] | None: ... - - @typing_extensions.final - class Value(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - @typing_extensions.final - class ClassParamPath(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CLS_FIELD_NUMBER: builtins.int - PARAM_PATH_FIELD_NUMBER: builtins.int - - @property - def cls(self) -> edgir.ref_pb2.LibraryPath: ... - @property - def param_path(self) -> edgir.ref_pb2.LocalPath: ... + _HasFieldArgType: _TypeAlias = _typing.Literal[ + "cls", b"cls", "path", b"path", "replacement", b"replacement", "source", b"source" + ] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "cls", b"cls", "path", b"path", "replacement", b"replacement", "source", b"source" + ] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_source: _TypeAlias = _typing.Literal["path", "cls"] + _WhichOneofArgType_source: _TypeAlias = _typing.Literal["source", b"source"] + + def WhichOneof(self, oneof_group: _WhichOneofArgType_source) -> _WhichOneofReturnType_source | None: ... + + @_typing.final + class Value(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class ClassParamPath(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + CLS_FIELD_NUMBER: _builtins.int + PARAM_PATH_FIELD_NUMBER: _builtins.int + + @_builtins.property + def cls(self) -> _ref_pb2.LibraryPath: ... + @_builtins.property + def param_path(self) -> _ref_pb2.LocalPath: ... def __init__( - self, *, cls: edgir.ref_pb2.LibraryPath | None = ..., param_path: edgir.ref_pb2.LocalPath | None = ... - ) -> None: ... - def HasField( - self, field_name: typing_extensions.Literal["cls", b"cls", "param_path", b"param_path"] - ) -> builtins.bool: ... - def ClearField( - self, field_name: typing_extensions.Literal["cls", b"cls", "param_path", b"param_path"] + self, *, cls: _ref_pb2.LibraryPath | None = ..., param_path: _ref_pb2.LocalPath | None = ... ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["cls", b"cls", "param_path", b"param_path"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["cls", b"cls", "param_path", b"param_path"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + PATH_FIELD_NUMBER: _builtins.int + CLS_PARAM_FIELD_NUMBER: _builtins.int + EXPR_FIELD_NUMBER: _builtins.int + PARAM_FIELD_NUMBER: _builtins.int - PATH_FIELD_NUMBER: builtins.int - CLS_PARAM_FIELD_NUMBER: builtins.int - EXPR_FIELD_NUMBER: builtins.int - PARAM_FIELD_NUMBER: builtins.int - - @property - def path(self) -> edgir.ref_pb2.LocalPath: ... - @property - def cls_param(self) -> global___Refinements.Value.ClassParamPath: ... - @property - def expr(self) -> edgir.lit_pb2.ValueLit: + @_builtins.property + def path(self) -> _ref_pb2.LocalPath: ... + @_builtins.property + def cls_param(self) -> Global___Refinements.Value.ClassParamPath: ... + @_builtins.property + def expr(self) -> _lit_pb2.ValueLit: """set to a specific value""" - @property - def param(self) -> edgir.ref_pb2.LocalPath: + @_builtins.property + def param(self) -> _ref_pb2.LocalPath: """set to a value of another parameter - invalid for classes for now""" def __init__( self, *, - path: edgir.ref_pb2.LocalPath | None = ..., - cls_param: global___Refinements.Value.ClassParamPath | None = ..., - expr: edgir.lit_pb2.ValueLit | None = ..., - param: edgir.ref_pb2.LocalPath | None = ..., + path: _ref_pb2.LocalPath | None = ..., + cls_param: Global___Refinements.Value.ClassParamPath | None = ..., + expr: _lit_pb2.ValueLit | None = ..., + param: _ref_pb2.LocalPath | None = ..., ) -> None: ... - def HasField( - self, - field_name: typing_extensions.Literal[ - "cls_param", - b"cls_param", - "expr", - b"expr", - "param", - b"param", - "path", - b"path", - "source", - b"source", - "value", - b"value", - ], - ) -> builtins.bool: ... - def ClearField( - self, - field_name: typing_extensions.Literal[ - "cls_param", - b"cls_param", - "expr", - b"expr", - "param", - b"param", - "path", - b"path", - "source", - b"source", - "value", - b"value", - ], - ) -> None: ... - @typing.overload - def WhichOneof( - self, oneof_group: typing_extensions.Literal["source", b"source"] - ) -> typing_extensions.Literal["path", "cls_param"] | None: ... - @typing.overload - def WhichOneof( - self, oneof_group: typing_extensions.Literal["value", b"value"] - ) -> typing_extensions.Literal["expr", "param"] | None: ... - - SUBCLASSES_FIELD_NUMBER: builtins.int - VALUES_FIELD_NUMBER: builtins.int - - @property - def subclasses( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Refinements.Subclass]: ... - @property - def values( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Refinements.Value]: ... + _HasFieldArgType: _TypeAlias = _typing.Literal[ + "cls_param", + b"cls_param", + "expr", + b"expr", + "param", + b"param", + "path", + b"path", + "source", + b"source", + "value", + b"value", + ] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "cls_param", + b"cls_param", + "expr", + b"expr", + "param", + b"param", + "path", + b"path", + "source", + b"source", + "value", + b"value", + ] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_source: _TypeAlias = _typing.Literal["path", "cls_param"] + _WhichOneofArgType_source: _TypeAlias = _typing.Literal["source", b"source"] + _WhichOneofReturnType_value: _TypeAlias = _typing.Literal["expr", "param"] + _WhichOneofArgType_value: _TypeAlias = _typing.Literal["value", b"value"] + + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType_source) -> _WhichOneofReturnType_source | None: ... + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType_value) -> _WhichOneofReturnType_value | None: ... + + SUBCLASSES_FIELD_NUMBER: _builtins.int + VALUES_FIELD_NUMBER: _builtins.int + + @_builtins.property + def subclasses(self) -> _containers.RepeatedCompositeFieldContainer[Global___Refinements.Subclass]: ... + @_builtins.property + def values(self) -> _containers.RepeatedCompositeFieldContainer[Global___Refinements.Value]: ... def __init__( self, *, - subclasses: collections.abc.Iterable[global___Refinements.Subclass] | None = ..., - values: collections.abc.Iterable[global___Refinements.Value] | None = ..., - ) -> None: ... - def ClearField( - self, field_name: typing_extensions.Literal["subclasses", b"subclasses", "values", b"values"] + subclasses: _abc.Iterable[Global___Refinements.Subclass] | None = ..., + values: _abc.Iterable[Global___Refinements.Value] | None = ..., ) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["subclasses", b"subclasses", "values", b"values"] -global___Refinements = Refinements + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -@typing_extensions.final -class ModuleName(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - name: builtins.str +Global___Refinements: _TypeAlias = Refinements - def __init__(self, *, name: builtins.str = ...) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["name", b"name"]) -> None: ... +@_typing.final +class ModuleName(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + name: _builtins.str -global___ModuleName = ModuleName + def __init__(self, *, name: _builtins.str = ...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["name", b"name"] -@typing_extensions.final -class IndexResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - INDEXED_FIELD_NUMBER: builtins.int + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @property - def indexed( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[edgir.ref_pb2.LibraryPath]: ... - def __init__(self, *, indexed: collections.abc.Iterable[edgir.ref_pb2.LibraryPath] | None = ...) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["indexed", b"indexed"]) -> None: ... +Global___ModuleName: _TypeAlias = ModuleName + +@_typing.final +class IndexResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + INDEXED_FIELD_NUMBER: _builtins.int -global___IndexResponse = IndexResponse + @_builtins.property + def indexed(self) -> _containers.RepeatedCompositeFieldContainer[_ref_pb2.LibraryPath]: ... + def __init__(self, *, indexed: _abc.Iterable[_ref_pb2.LibraryPath] | None = ...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["indexed", b"indexed"] -@typing_extensions.final -class LibraryRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ELEMENT_FIELD_NUMBER: builtins.int + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @property - def element(self) -> edgir.ref_pb2.LibraryPath: +Global___IndexResponse: _TypeAlias = IndexResponse + +@_typing.final +class LibraryRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ELEMENT_FIELD_NUMBER: _builtins.int + + @_builtins.property + def element(self) -> _ref_pb2.LibraryPath: """library element asked for""" - def __init__(self, *, element: edgir.ref_pb2.LibraryPath | None = ...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["element", b"element"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["element", b"element"]) -> None: ... + def __init__(self, *, element: _ref_pb2.LibraryPath | None = ...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["element", b"element"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["element", b"element"] -global___LibraryRequest = LibraryRequest + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -@typing_extensions.final -class LibraryResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ELEMENT_FIELD_NUMBER: builtins.int - REFINEMENTS_FIELD_NUMBER: builtins.int +Global___LibraryRequest: _TypeAlias = LibraryRequest - @property - def element(self) -> edgir.schema_pb2.Library.NS.Val: ... - @property - def refinements(self) -> global___Refinements: +@_typing.final +class LibraryResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ELEMENT_FIELD_NUMBER: _builtins.int + REFINEMENTS_FIELD_NUMBER: _builtins.int + + @_builtins.property + def element(self) -> _schema_pb2.Library.NS.Val: ... + @_builtins.property + def refinements(self) -> Global___Refinements: """only valid if element is a top-level block""" def __init__( - self, *, element: edgir.schema_pb2.Library.NS.Val | None = ..., refinements: global___Refinements | None = ... - ) -> None: ... - def HasField( - self, field_name: typing_extensions.Literal["element", b"element", "refinements", b"refinements"] - ) -> builtins.bool: ... - def ClearField( - self, field_name: typing_extensions.Literal["element", b"element", "refinements", b"refinements"] + self, *, element: _schema_pb2.Library.NS.Val | None = ..., refinements: Global___Refinements | None = ... ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["element", b"element", "refinements", b"refinements"] -global___LibraryResponse = LibraryResponse + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["element", b"element", "refinements", b"refinements"] -@typing_extensions.final -class ExprValue(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PATH_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @property - def path(self) -> edgir.ref_pb2.LocalPath: ... - @property - def value(self) -> edgir.lit_pb2.ValueLit: ... - def __init__( - self, *, path: edgir.ref_pb2.LocalPath | None = ..., value: edgir.lit_pb2.ValueLit | None = ... - ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["path", b"path", "value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["path", b"path", "value", b"value"]) -> None: ... +Global___LibraryResponse: _TypeAlias = LibraryResponse + +@_typing.final +class ExprValue(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PATH_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + + @_builtins.property + def path(self) -> _ref_pb2.LocalPath: ... + @_builtins.property + def value(self) -> _lit_pb2.ValueLit: ... + def __init__(self, *, path: _ref_pb2.LocalPath | None = ..., value: _lit_pb2.ValueLit | None = ...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["path", b"path", "value", b"value"] -global___ExprValue = ExprValue + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["path", b"path", "value", b"value"] -@typing_extensions.final -class GeneratorRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ELEMENT_FIELD_NUMBER: builtins.int - VALUES_FIELD_NUMBER: builtins.int + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @property - def element(self) -> edgir.ref_pb2.LibraryPath: +Global___ExprValue: _TypeAlias = ExprValue + +@_typing.final +class GeneratorRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ELEMENT_FIELD_NUMBER: _builtins.int + VALUES_FIELD_NUMBER: _builtins.int + + @_builtins.property + def element(self) -> _ref_pb2.LibraryPath: """path of library element containing the generator""" - @property - def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ExprValue]: ... + @_builtins.property + def values(self) -> _containers.RepeatedCompositeFieldContainer[Global___ExprValue]: ... def __init__( - self, - *, - element: edgir.ref_pb2.LibraryPath | None = ..., - values: collections.abc.Iterable[global___ExprValue] | None = ..., + self, *, element: _ref_pb2.LibraryPath | None = ..., values: _abc.Iterable[Global___ExprValue] | None = ... ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["element", b"element"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["element", b"element", "values", b"values"]) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["element", b"element"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["element", b"element", "values", b"values"] -global___GeneratorRequest = GeneratorRequest + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -@typing_extensions.final -class GeneratorResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - GENERATED_FIELD_NUMBER: builtins.int +Global___GeneratorRequest: _TypeAlias = GeneratorRequest - @property - def generated(self) -> edgir.elem_pb2.HierarchyBlock: ... - def __init__(self, *, generated: edgir.elem_pb2.HierarchyBlock | None = ...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["generated", b"generated"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["generated", b"generated"]) -> None: ... +@_typing.final +class GeneratorResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + GENERATED_FIELD_NUMBER: _builtins.int -global___GeneratorResponse = GeneratorResponse + @_builtins.property + def generated(self) -> _elem_pb2.HierarchyBlock: ... + def __init__(self, *, generated: _elem_pb2.HierarchyBlock | None = ...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["generated", b"generated"] -@typing_extensions.final -class RefinementRequest(google.protobuf.message.Message): + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["generated", b"generated"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___GeneratorResponse: _TypeAlias = GeneratorResponse + +@_typing.final +class RefinementRequest(_message.Message): """Runs a refinement pass - something that takes a full design and solved values and generates additional values, eg for refdes assignment """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - REFINEMENT_PASS_FIELD_NUMBER: builtins.int - DESIGN_FIELD_NUMBER: builtins.int - SOLVEDVALUES_FIELD_NUMBER: builtins.int - - @property - def refinement_pass(self) -> edgir.ref_pb2.LibraryPath: ... - @property - def design(self) -> edgir.schema_pb2.Design: ... - @property - def solvedValues( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ExprValue]: ... + DESCRIPTOR: _descriptor.Descriptor + REFINEMENT_PASS_FIELD_NUMBER: _builtins.int + DESIGN_FIELD_NUMBER: _builtins.int + SOLVEDVALUES_FIELD_NUMBER: _builtins.int + + @_builtins.property + def refinement_pass(self) -> _ref_pb2.LibraryPath: ... + @_builtins.property + def design(self) -> _schema_pb2.Design: ... + @_builtins.property + def solvedValues(self) -> _containers.RepeatedCompositeFieldContainer[Global___ExprValue]: ... def __init__( self, *, - refinement_pass: edgir.ref_pb2.LibraryPath | None = ..., - design: edgir.schema_pb2.Design | None = ..., - solvedValues: collections.abc.Iterable[global___ExprValue] | None = ..., - ) -> None: ... - def HasField( - self, field_name: typing_extensions.Literal["design", b"design", "refinement_pass", b"refinement_pass"] - ) -> builtins.bool: ... - def ClearField( - self, - field_name: typing_extensions.Literal[ - "design", b"design", "refinement_pass", b"refinement_pass", "solvedValues", b"solvedValues" - ], + refinement_pass: _ref_pb2.LibraryPath | None = ..., + design: _schema_pb2.Design | None = ..., + solvedValues: _abc.Iterable[Global___ExprValue] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["design", b"design", "refinement_pass", b"refinement_pass"] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "design", b"design", "refinement_pass", b"refinement_pass", "solvedValues", b"solvedValues" + ] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RefinementRequest = RefinementRequest +Global___RefinementRequest: _TypeAlias = RefinementRequest -@typing_extensions.final -class RefinementResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NEWVALUES_FIELD_NUMBER: builtins.int +@_typing.final +class RefinementResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NEWVALUES_FIELD_NUMBER: _builtins.int - @property - def newValues(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ExprValue]: ... - def __init__(self, *, newValues: collections.abc.Iterable[global___ExprValue] | None = ...) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["newValues", b"newValues"]) -> None: ... + @_builtins.property + def newValues(self) -> _containers.RepeatedCompositeFieldContainer[Global___ExprValue]: ... + def __init__(self, *, newValues: _abc.Iterable[Global___ExprValue] | None = ...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["newValues", b"newValues"] -global___RefinementResponse = RefinementResponse + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -@typing_extensions.final -class BackendRequest(google.protobuf.message.Message): +Global___RefinementResponse: _TypeAlias = RefinementResponse + +@_typing.final +class BackendRequest(_message.Message): """Runs a backend - something that generates fabrication artifacts from a compiled design tree eg, generate KiCad netlist, or generate microcontroller firmware pinmap headers """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - @typing_extensions.final - class ArgumentsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str - - def __init__(self, *, key: builtins.str = ..., value: builtins.str = ...) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - - BACKEND_FIELD_NUMBER: builtins.int - DESIGN_FIELD_NUMBER: builtins.int - SOLVEDVALUES_FIELD_NUMBER: builtins.int - ARGUMENTS_FIELD_NUMBER: builtins.int - - @property - def backend(self) -> edgir.ref_pb2.LibraryPath: ... - @property - def design(self) -> edgir.schema_pb2.Design: ... - @property - def solvedValues( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ExprValue]: ... - @property - def arguments(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class ArgumentsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str + + def __init__(self, *, key: _builtins.str = ..., value: _builtins.str = ...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + + BACKEND_FIELD_NUMBER: _builtins.int + DESIGN_FIELD_NUMBER: _builtins.int + SOLVEDVALUES_FIELD_NUMBER: _builtins.int + ARGUMENTS_FIELD_NUMBER: _builtins.int + + @_builtins.property + def backend(self) -> _ref_pb2.LibraryPath: ... + @_builtins.property + def design(self) -> _schema_pb2.Design: ... + @_builtins.property + def solvedValues(self) -> _containers.RepeatedCompositeFieldContainer[Global___ExprValue]: ... + @_builtins.property + def arguments(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... def __init__( self, *, - backend: edgir.ref_pb2.LibraryPath | None = ..., - design: edgir.schema_pb2.Design | None = ..., - solvedValues: collections.abc.Iterable[global___ExprValue] | None = ..., - arguments: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., - ) -> None: ... - def HasField( - self, field_name: typing_extensions.Literal["backend", b"backend", "design", b"design"] - ) -> builtins.bool: ... - def ClearField( - self, - field_name: typing_extensions.Literal[ - "arguments", b"arguments", "backend", b"backend", "design", b"design", "solvedValues", b"solvedValues" - ], + backend: _ref_pb2.LibraryPath | None = ..., + design: _schema_pb2.Design | None = ..., + solvedValues: _abc.Iterable[Global___ExprValue] | None = ..., + arguments: _abc.Mapping[_builtins.str, _builtins.str] | None = ..., ) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["backend", b"backend", "design", b"design"] -global___BackendRequest = BackendRequest + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "arguments", b"arguments", "backend", b"backend", "design", b"design", "solvedValues", b"solvedValues" + ] -@typing_extensions.final -class BackendResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @typing_extensions.final - class Result(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PATH_FIELD_NUMBER: builtins.int - TEXT_FIELD_NUMBER: builtins.int +Global___BackendRequest: _TypeAlias = BackendRequest - @property - def path(self) -> edgir.ref_pb2.LocalPath: - """path of corresponding element in design tree""" - text: builtins.str +@_typing.final +class BackendResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class Result(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PATH_FIELD_NUMBER: _builtins.int + TEXT_FIELD_NUMBER: _builtins.int + text: _builtins.str "for now, only text supported, for KiCad netlisting" - def __init__(self, *, path: edgir.ref_pb2.LocalPath | None = ..., text: builtins.str = ...) -> None: ... - def HasField( - self, field_name: typing_extensions.Literal["path", b"path", "result", b"result", "text", b"text"] - ) -> builtins.bool: ... - def ClearField( - self, field_name: typing_extensions.Literal["path", b"path", "result", b"result", "text", b"text"] - ) -> None: ... - def WhichOneof( - self, oneof_group: typing_extensions.Literal["result", b"result"] - ) -> typing_extensions.Literal["text"] | None: ... + @_builtins.property + def path(self) -> _ref_pb2.LocalPath: + """path of corresponding element in design tree""" - RESULTS_FIELD_NUMBER: builtins.int + def __init__(self, *, path: _ref_pb2.LocalPath | None = ..., text: _builtins.str = ...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal["path", b"path", "result", b"result", "text", b"text"] - @property - def results( - self, - ) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___BackendResponse.Result]: ... - def __init__(self, *, results: collections.abc.Iterable[global___BackendResponse.Result] | None = ...) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["results", b"results"]) -> None: ... + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["path", b"path", "result", b"result", "text", b"text"] -global___BackendResponse = BackendResponse + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_result: _TypeAlias = _typing.Literal["text"] + _WhichOneofArgType_result: _TypeAlias = _typing.Literal["result", b"result"] -@typing_extensions.final -class ErrorResponse(google.protobuf.message.Message): - """catch all error response""" + def WhichOneof(self, oneof_group: _WhichOneofArgType_result) -> _WhichOneofReturnType_result | None: ... - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ERROR_FIELD_NUMBER: builtins.int - TRACEBACK_FIELD_NUMBER: builtins.int - error: builtins.str - traceback: builtins.str + RESULTS_FIELD_NUMBER: _builtins.int - def __init__(self, *, error: builtins.str = ..., traceback: builtins.str = ...) -> None: ... - def ClearField( - self, field_name: typing_extensions.Literal["error", b"error", "traceback", b"traceback"] - ) -> None: ... + @_builtins.property + def results(self) -> _containers.RepeatedCompositeFieldContainer[Global___BackendResponse.Result]: ... + def __init__(self, *, results: _abc.Iterable[Global___BackendResponse.Result] | None = ...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["results", b"results"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ErrorResponse = ErrorResponse +Global___BackendResponse: _TypeAlias = BackendResponse -@typing_extensions.final -class HdlRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - INDEX_MODULE_FIELD_NUMBER: builtins.int - GET_LIBRARY_ELEMENT_FIELD_NUMBER: builtins.int - ELABORATE_GENERATOR_FIELD_NUMBER: builtins.int - RUN_REFINEMENT_FIELD_NUMBER: builtins.int - RUN_BACKEND_FIELD_NUMBER: builtins.int - GET_PROTO_VERSION_FIELD_NUMBER: builtins.int +@_typing.final +class ErrorResponse(_message.Message): + """catch all error response""" + + DESCRIPTOR: _descriptor.Descriptor + ERROR_FIELD_NUMBER: _builtins.int + TRACEBACK_FIELD_NUMBER: _builtins.int + error: _builtins.str + traceback: _builtins.str + + def __init__(self, *, error: _builtins.str = ..., traceback: _builtins.str = ...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal["error", b"error", "traceback", b"traceback"] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + +Global___ErrorResponse: _TypeAlias = ErrorResponse + +@_typing.final +class HdlRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + INDEX_MODULE_FIELD_NUMBER: _builtins.int + GET_LIBRARY_ELEMENT_FIELD_NUMBER: _builtins.int + ELABORATE_GENERATOR_FIELD_NUMBER: _builtins.int + RUN_REFINEMENT_FIELD_NUMBER: _builtins.int + RUN_BACKEND_FIELD_NUMBER: _builtins.int + GET_PROTO_VERSION_FIELD_NUMBER: _builtins.int + get_proto_version: _builtins.int + "no data" - @property - def index_module(self) -> global___ModuleName: + @_builtins.property + def index_module(self) -> Global___ModuleName: """returns an index of IR elements in a Python module""" - @property - def get_library_element(self) -> global___LibraryRequest: + @_builtins.property + def get_library_element(self) -> Global___LibraryRequest: """returns the IR for a library element""" - @property - def elaborate_generator(self) -> global___GeneratorRequest: + @_builtins.property + def elaborate_generator(self) -> Global___GeneratorRequest: """returns the elaborated IR""" - @property - def run_refinement(self) -> global___RefinementRequest: ... - @property - def run_backend(self) -> global___BackendRequest: ... - get_proto_version: builtins.int - "no data" - + @_builtins.property + def run_refinement(self) -> Global___RefinementRequest: ... + @_builtins.property + def run_backend(self) -> Global___BackendRequest: ... def __init__( self, *, - index_module: global___ModuleName | None = ..., - get_library_element: global___LibraryRequest | None = ..., - elaborate_generator: global___GeneratorRequest | None = ..., - run_refinement: global___RefinementRequest | None = ..., - run_backend: global___BackendRequest | None = ..., - get_proto_version: builtins.int = ..., + index_module: Global___ModuleName | None = ..., + get_library_element: Global___LibraryRequest | None = ..., + elaborate_generator: Global___GeneratorRequest | None = ..., + run_refinement: Global___RefinementRequest | None = ..., + run_backend: Global___BackendRequest | None = ..., + get_proto_version: _builtins.int = ..., ) -> None: ... - def HasField( - self, - field_name: typing_extensions.Literal[ - "elaborate_generator", - b"elaborate_generator", - "get_library_element", - b"get_library_element", - "get_proto_version", - b"get_proto_version", - "index_module", - b"index_module", - "request", - b"request", - "run_backend", - b"run_backend", - "run_refinement", - b"run_refinement", - ], - ) -> builtins.bool: ... - def ClearField( - self, - field_name: typing_extensions.Literal[ - "elaborate_generator", - b"elaborate_generator", - "get_library_element", - b"get_library_element", - "get_proto_version", - b"get_proto_version", - "index_module", - b"index_module", - "request", - b"request", - "run_backend", - b"run_backend", - "run_refinement", - b"run_refinement", - ], - ) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["request", b"request"]) -> ( - typing_extensions.Literal[ - "index_module", - "get_library_element", - "elaborate_generator", - "run_refinement", - "run_backend", - "get_proto_version", - ] - | None - ): ... - -global___HdlRequest = HdlRequest - -@typing_extensions.final -class HdlResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - INDEX_MODULE_FIELD_NUMBER: builtins.int - GET_LIBRARY_ELEMENT_FIELD_NUMBER: builtins.int - ELABORATE_GENERATOR_FIELD_NUMBER: builtins.int - RUN_REFINEMENT_FIELD_NUMBER: builtins.int - RUN_BACKEND_FIELD_NUMBER: builtins.int - GET_PROTO_VERSION_FIELD_NUMBER: builtins.int - ERROR_FIELD_NUMBER: builtins.int - - @property - def index_module(self) -> global___IndexResponse: + _HasFieldArgType: _TypeAlias = _typing.Literal[ + "elaborate_generator", + b"elaborate_generator", + "get_library_element", + b"get_library_element", + "get_proto_version", + b"get_proto_version", + "index_module", + b"index_module", + "request", + b"request", + "run_backend", + b"run_backend", + "run_refinement", + b"run_refinement", + ] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "elaborate_generator", + b"elaborate_generator", + "get_library_element", + b"get_library_element", + "get_proto_version", + b"get_proto_version", + "index_module", + b"index_module", + "request", + b"request", + "run_backend", + b"run_backend", + "run_refinement", + b"run_refinement", + ] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_request: _TypeAlias = _typing.Literal[ + "index_module", + "get_library_element", + "elaborate_generator", + "run_refinement", + "run_backend", + "get_proto_version", + ] + _WhichOneofArgType_request: _TypeAlias = _typing.Literal["request", b"request"] + + def WhichOneof(self, oneof_group: _WhichOneofArgType_request) -> _WhichOneofReturnType_request | None: ... + +Global___HdlRequest: _TypeAlias = HdlRequest + +@_typing.final +class HdlResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + INDEX_MODULE_FIELD_NUMBER: _builtins.int + GET_LIBRARY_ELEMENT_FIELD_NUMBER: _builtins.int + ELABORATE_GENERATOR_FIELD_NUMBER: _builtins.int + RUN_REFINEMENT_FIELD_NUMBER: _builtins.int + RUN_BACKEND_FIELD_NUMBER: _builtins.int + GET_PROTO_VERSION_FIELD_NUMBER: _builtins.int + ERROR_FIELD_NUMBER: _builtins.int + get_proto_version: _builtins.int + + @_builtins.property + def index_module(self) -> Global___IndexResponse: """list of contained library elements""" - @property - def get_library_element(self) -> global___LibraryResponse: ... - @property - def elaborate_generator(self) -> global___GeneratorResponse: ... - @property - def run_refinement(self) -> global___RefinementResponse: ... - @property - def run_backend(self) -> global___BackendResponse: ... - get_proto_version: builtins.int - - @property - def error(self) -> global___ErrorResponse: ... + @_builtins.property + def get_library_element(self) -> Global___LibraryResponse: ... + @_builtins.property + def elaborate_generator(self) -> Global___GeneratorResponse: ... + @_builtins.property + def run_refinement(self) -> Global___RefinementResponse: ... + @_builtins.property + def run_backend(self) -> Global___BackendResponse: ... + @_builtins.property + def error(self) -> Global___ErrorResponse: ... def __init__( self, *, - index_module: global___IndexResponse | None = ..., - get_library_element: global___LibraryResponse | None = ..., - elaborate_generator: global___GeneratorResponse | None = ..., - run_refinement: global___RefinementResponse | None = ..., - run_backend: global___BackendResponse | None = ..., - get_proto_version: builtins.int = ..., - error: global___ErrorResponse | None = ..., + index_module: Global___IndexResponse | None = ..., + get_library_element: Global___LibraryResponse | None = ..., + elaborate_generator: Global___GeneratorResponse | None = ..., + run_refinement: Global___RefinementResponse | None = ..., + run_backend: Global___BackendResponse | None = ..., + get_proto_version: _builtins.int = ..., + error: Global___ErrorResponse | None = ..., ) -> None: ... - def HasField( - self, - field_name: typing_extensions.Literal[ - "elaborate_generator", - b"elaborate_generator", - "error", - b"error", - "get_library_element", - b"get_library_element", - "get_proto_version", - b"get_proto_version", - "index_module", - b"index_module", - "response", - b"response", - "run_backend", - b"run_backend", - "run_refinement", - b"run_refinement", - ], - ) -> builtins.bool: ... - def ClearField( - self, - field_name: typing_extensions.Literal[ - "elaborate_generator", - b"elaborate_generator", - "error", - b"error", - "get_library_element", - b"get_library_element", - "get_proto_version", - b"get_proto_version", - "index_module", - b"index_module", - "response", - b"response", - "run_backend", - b"run_backend", - "run_refinement", - b"run_refinement", - ], - ) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["response", b"response"]) -> ( - typing_extensions.Literal[ - "index_module", - "get_library_element", - "elaborate_generator", - "run_refinement", - "run_backend", - "get_proto_version", - "error", - ] - | None - ): ... - -global___HdlResponse = HdlResponse + _HasFieldArgType: _TypeAlias = _typing.Literal[ + "elaborate_generator", + b"elaborate_generator", + "error", + b"error", + "get_library_element", + b"get_library_element", + "get_proto_version", + b"get_proto_version", + "index_module", + b"index_module", + "response", + b"response", + "run_backend", + b"run_backend", + "run_refinement", + b"run_refinement", + ] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal[ + "elaborate_generator", + b"elaborate_generator", + "error", + b"error", + "get_library_element", + b"get_library_element", + "get_proto_version", + b"get_proto_version", + "index_module", + b"index_module", + "response", + b"response", + "run_backend", + b"run_backend", + "run_refinement", + b"run_refinement", + ] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_response: _TypeAlias = _typing.Literal[ + "index_module", + "get_library_element", + "elaborate_generator", + "run_refinement", + "run_backend", + "get_proto_version", + "error", + ] + _WhichOneofArgType_response: _TypeAlias = _typing.Literal["response", b"response"] + + def WhichOneof(self, oneof_group: _WhichOneofArgType_response) -> _WhichOneofReturnType_response | None: ... + +Global___HdlResponse: _TypeAlias = HdlResponse diff --git a/edg/electronics_model/CanPort.py b/edg/electronics_model/CanPort.py index 5f53ec456..59ef90a96 100644 --- a/edg/electronics_model/CanPort.py +++ b/edg/electronics_model/CanPort.py @@ -31,7 +31,7 @@ def contents(self) -> None: ) -class CanControllerPort(Bundle[CanLogicLink]): +class CanControllerPort(Port[CanLogicLink]): link_type = CanLogicLink def __init__(self, model: Optional[DigitalBidir] = None) -> None: @@ -42,7 +42,7 @@ def __init__(self, model: Optional[DigitalBidir] = None) -> None: self.rxd = self.Port(DigitalSink.from_bidir(model)) -class CanTransceiverPort(Bundle[CanLogicLink]): +class CanTransceiverPort(Port[CanLogicLink]): link_type = CanLogicLink def __init__(self, model: Optional[DigitalBidir] = None) -> None: @@ -53,7 +53,7 @@ def __init__(self, model: Optional[DigitalBidir] = None) -> None: self.rxd = self.Port(DigitalSource.from_bidir(model)) -class CanPassivePort(Bundle[CanLogicLink]): +class CanPassivePort(Port[CanLogicLink]): link_type = CanLogicLink def __init__(self, model: Optional[DigitalBidir] = None) -> None: @@ -102,7 +102,7 @@ def contents(self) -> None: self.connect(self.canl_bridge.inner_link, self.inner_link.canl) -class CanDiffPort(Bundle[CanDiffLink]): +class CanDiffPort(Port[CanDiffLink]): link_type = CanDiffLink bridge_type = CanDiffBridge diff --git a/edg/electronics_model/CrystalPort.py b/edg/electronics_model/CrystalPort.py index e289539d9..998fc875a 100644 --- a/edg/electronics_model/CrystalPort.py +++ b/edg/electronics_model/CrystalPort.py @@ -22,7 +22,7 @@ def contents(self) -> None: self.xo = self.connect(self.driver.xtal_out, self.crystal.xtal_out) -class CrystalPort(Bundle[CrystalLink]): +class CrystalPort(Port[CrystalLink]): link_type = CrystalLink def __init__(self, frequency: RangeLike = RangeExpr.ZERO) -> None: @@ -33,7 +33,7 @@ def __init__(self, frequency: RangeLike = RangeExpr.ZERO) -> None: self.frequency = self.Parameter(RangeExpr(frequency)) -class CrystalDriver(Bundle[CrystalLink]): +class CrystalDriver(Port[CrystalLink]): link_type = CrystalLink def __init__(self, frequency_limits: RangeLike = RangeExpr.ALL, voltage_out: RangeLike = RangeExpr.ZERO) -> None: diff --git a/edg/electronics_model/DebugPorts.py b/edg/electronics_model/DebugPorts.py index 3e70b9a56..5324b031b 100644 --- a/edg/electronics_model/DebugPorts.py +++ b/edg/electronics_model/DebugPorts.py @@ -26,7 +26,7 @@ def contents(self) -> None: ) -class SwdHostPort(Bundle[SwdLink]): +class SwdHostPort(Port[SwdLink]): link_type = SwdLink def __init__(self, model: Optional[DigitalBidir] = None) -> None: @@ -37,7 +37,7 @@ def __init__(self, model: Optional[DigitalBidir] = None) -> None: self.swclk = self.Port(DigitalSource.from_bidir(model)) -class SwdTargetPort(Bundle[SwdLink]): +class SwdTargetPort(Port[SwdLink]): link_type = SwdLink def __init__(self, model: Optional[DigitalBidir] = None) -> None: @@ -48,7 +48,7 @@ def __init__(self, model: Optional[DigitalBidir] = None) -> None: self.swclk = self.Port(DigitalSink.from_bidir(model)) -class SwdPullPort(Bundle[SwdLink]): +class SwdPullPort(Port[SwdLink]): link_type = SwdLink def __init__(self, model: Optional[DigitalSource] = None) -> None: diff --git a/edg/electronics_model/DvpPort.py b/edg/electronics_model/DvpPort.py index 15c6819f1..72ca15ed9 100644 --- a/edg/electronics_model/DvpPort.py +++ b/edg/electronics_model/DvpPort.py @@ -34,7 +34,7 @@ def contents(self) -> None: self.y7 = self.connect(self.host.y7, self.cam.y7) -class Dvp8Host(Bundle[Dvp8Link]): +class Dvp8Host(Port[Dvp8Link]): link_type = Dvp8Link def __init__(self, model: Optional[DigitalBidir] = None) -> None: @@ -59,7 +59,7 @@ def __init__(self, model: Optional[DigitalBidir] = None) -> None: self.y7 = self.Port(sink_model) -class Dvp8Camera(Bundle[Dvp8Link]): +class Dvp8Camera(Port[Dvp8Link]): link_type = Dvp8Link def __init__(self, model: Optional[DigitalBidir] = None) -> None: diff --git a/edg/electronics_model/I2cPort.py b/edg/electronics_model/I2cPort.py index 0474297b9..db189f4a5 100644 --- a/edg/electronics_model/I2cPort.py +++ b/edg/electronics_model/I2cPort.py @@ -46,7 +46,7 @@ def contents(self) -> None: ) -class I2cPullupPort(Bundle[I2cLink]): +class I2cPullupPort(Port[I2cLink]): link_type = I2cLink def __init__(self) -> None: @@ -55,7 +55,7 @@ def __init__(self) -> None: self.sda = self.Port(DigitalSource(low_driver=False, high_driver=False, pullup_capable=True)) -class I2cController(Bundle[I2cLink]): +class I2cController(Port[I2cLink]): link_type = I2cLink def __init__(self, model: Optional[DigitalBidir] = None, has_pullup: BoolLike = False) -> None: @@ -92,7 +92,7 @@ def contents(self) -> None: self.connect(self.sda_bridge.inner_link, self.inner_link.sda) -class I2cTarget(Bundle[I2cLink]): +class I2cTarget(Port[I2cLink]): link_type = I2cLink bridge_type = I2cTargetBridge diff --git a/edg/electronics_model/I2sPort.py b/edg/electronics_model/I2sPort.py index d3f88aa06..f694e47d2 100644 --- a/edg/electronics_model/I2sPort.py +++ b/edg/electronics_model/I2sPort.py @@ -21,7 +21,7 @@ def contents(self) -> None: self.sd = self.connect(self.controller.sd, self.target_receiver.sd) -class I2sController(Bundle[I2sLink]): +class I2sController(Port[I2sLink]): """Controller is both controller (drives SCK and WS lines) and transmitter (SD is output)""" link_type = I2sLink @@ -35,7 +35,7 @@ def __init__(self, model: Optional[DigitalBidir] = None) -> None: self.sd = self.Port(model) # bidirectional -class I2sTargetReceiver(Bundle[I2sLink]): +class I2sTargetReceiver(Port[I2sLink]): """Target means SCK and WS are inputs, receiver means SD is input""" link_type = I2sLink diff --git a/edg/electronics_model/KiCadSchematicBlock.py b/edg/electronics_model/KiCadSchematicBlock.py index b1037e8ed..f60dbfc57 100644 --- a/edg/electronics_model/KiCadSchematicBlock.py +++ b/edg/electronics_model/KiCadSchematicBlock.py @@ -176,7 +176,7 @@ def inner(root: Any, components: List[str]) -> Optional[BasePort]: return root else: return None # invalid type - elif hasattr(root, components[0]) and isinstance(root, (Bundle, Block)): + elif hasattr(root, components[0]) and isinstance(root, (Port, Block)): return inner(getattr(root, components[0]), components[1:]) else: return None diff --git a/edg/electronics_model/NetlistGenerator.py b/edg/electronics_model/NetlistGenerator.py index d03843359..33f1a34d6 100644 --- a/edg/electronics_model/NetlistGenerator.py +++ b/edg/electronics_model/NetlistGenerator.py @@ -223,21 +223,20 @@ def connect_ports( elt1: Tuple[TransformUtil.Path, edgir.EltTypes], elt2: Tuple[TransformUtil.Path, edgir.EltTypes], ) -> None: - """Recursively connect ports as applicable""" + """Recursively connect ports, including containers and leaf ports. Net-ness is ignored here.""" if isinstance(elt1[1], edgir.Port) and isinstance(elt2[1], edgir.Port): scope.edges.setdefault(elt1[0], []).append(elt2[0]) scope.edges.setdefault(elt2[0], []).append(elt1[0]) - elif isinstance(elt1[1], edgir.Bundle) and isinstance(elt2[1], edgir.Bundle): + elt1_names = list(map(lambda pair: pair.name, elt1[1].ports)) elt2_names = list(map(lambda pair: pair.name, elt2[1].ports)) - assert elt1_names == elt2_names, f"mismatched bundle types {elt1}, {elt2}" + assert elt1_names == elt2_names, f"mismatched port sub-ports in types {elt1}, {elt2}" for key in elt2_names: self.connect_ports( scope, (elt1[0].append_port(key), edgir.resolve_portlike(edgir.pair_get(elt1[1].ports, key))), (elt2[0].append_port(key), edgir.resolve_portlike(edgir.pair_get(elt2[1].ports, key))), ) - # don't need to create the bundle connect, since Bundles can't be CircuitPorts else: raise ValueError(f"can't connect types {elt1}, {elt2}") diff --git a/edg/electronics_model/PinAssignmentUtil.py b/edg/electronics_model/PinAssignmentUtil.py index dd58bcbfa..6d2be276e 100644 --- a/edg/electronics_model/PinAssignmentUtil.py +++ b/edg/electronics_model/PinAssignmentUtil.py @@ -11,10 +11,9 @@ def leaf_circuit_ports(prefix: str, port: Port) -> Iterable[Tuple[str, CircuitPort]]: if isinstance(port, CircuitPort): return [(prefix, port)] - elif isinstance(port, Bundle): - return chain(*[leaf_circuit_ports(f"{prefix}.{name}", port) for (name, port) in port._ports.items()]) else: - raise ValueError(f"unable to flatten {port}") + assert port._ports, "must be CircuitPort or Port bundle with sub-Ports" + return chain(*[leaf_circuit_ports(f"{prefix}.{name}", port) for (name, port) in port._ports.items()]) class SpecialPin: diff --git a/edg/electronics_model/SpeakerPort.py b/edg/electronics_model/SpeakerPort.py index b60b96160..bb7e1f8bd 100644 --- a/edg/electronics_model/SpeakerPort.py +++ b/edg/electronics_model/SpeakerPort.py @@ -20,7 +20,7 @@ def contents(self) -> None: self.b = self.connect(self.source.b, self.sink.b) -class SpeakerDriverPort(Bundle[SpeakerLink]): +class SpeakerDriverPort(Port[SpeakerLink]): link_type = SpeakerLink def __init__(self, model: Optional[AnalogSource] = None) -> None: @@ -32,7 +32,7 @@ def __init__(self, model: Optional[AnalogSource] = None) -> None: self.b = self.Port(model) -class SpeakerPort(Bundle[SpeakerLink]): +class SpeakerPort(Port[SpeakerLink]): link_type = SpeakerLink def __init__(self, model: Optional[AnalogSink] = None) -> None: diff --git a/edg/electronics_model/SpiPort.py b/edg/electronics_model/SpiPort.py index 1e8669bd4..9cd6e9ad4 100644 --- a/edg/electronics_model/SpiPort.py +++ b/edg/electronics_model/SpiPort.py @@ -35,7 +35,7 @@ def contents(self) -> None: ) -class SpiController(Bundle[SpiLink]): +class SpiController(Port[SpiLink]): link_type = SpiLink def __init__(self, model: Optional[DigitalBidir] = None, frequency: RangeLike = RangeExpr.ZERO) -> None: @@ -50,7 +50,7 @@ def __init__(self, model: Optional[DigitalBidir] = None, frequency: RangeLike = self.mode = self.Parameter(RangeExpr()) # modes supported, in [0, 3] TODO: what about sparse modes? -class SpiPeripheral(Bundle[SpiLink]): +class SpiPeripheral(Port[SpiLink]): link_type = SpiLink def __init__(self, model: Optional[DigitalBidir] = None, frequency_limit: RangeLike = RangeExpr.ALL) -> None: diff --git a/edg/electronics_model/UartPort.py b/edg/electronics_model/UartPort.py index 87f87c364..ff633828b 100644 --- a/edg/electronics_model/UartPort.py +++ b/edg/electronics_model/UartPort.py @@ -20,7 +20,7 @@ def contents(self) -> None: self.b_tx = self.connect(self.b.tx, self.a.rx) -class UartPort(Bundle[UartLink]): +class UartPort(Port[UartLink]): link_type = UartLink def __init__(self, model: Optional[DigitalBidir] = None) -> None: diff --git a/edg/electronics_model/UsbPort.py b/edg/electronics_model/UsbPort.py index ba6bf15ec..7edf62b05 100644 --- a/edg/electronics_model/UsbPort.py +++ b/edg/electronics_model/UsbPort.py @@ -26,7 +26,7 @@ def contents(self) -> None: ) -class UsbHostPort(Bundle[UsbLink]): +class UsbHostPort(Port[UsbLink]): link_type = UsbLink def __init__(self) -> None: @@ -56,7 +56,7 @@ def contents(self) -> None: self.connect(self.dp_bridge.inner_link, self.inner_link.dp) -class UsbDevicePort(Bundle[UsbLink]): +class UsbDevicePort(Port[UsbLink]): link_type = UsbLink bridge_type = UsbDeviceBridge @@ -68,7 +68,7 @@ def __init__(self, model: Optional[DigitalBidir] = None) -> None: self.dm = self.Port(model) -class UsbPassivePort(Bundle[UsbLink]): +class UsbPassivePort(Port[UsbLink]): link_type = UsbLink def __init__(self) -> None: @@ -95,7 +95,7 @@ def contents(self) -> None: self.cc2 = self.connect(self.a.cc2, self.b.cc2) -class UsbCcPort(Bundle[UsbCcLink]): +class UsbCcPort(Port[UsbCcLink]): link_type = UsbCcLink def __init__(self, pullup_capable: BoolLike = False) -> None: diff --git a/edg/hdl_server/__main__.py b/edg/hdl_server/__main__.py index 638f5619f..ea6d3aa5d 100644 --- a/edg/hdl_server/__main__.py +++ b/edg/hdl_server/__main__.py @@ -9,7 +9,7 @@ from ..core import * from ..core.Core import NonLibraryProperty -EDG_PROTO_VERSION = 7 +EDG_PROTO_VERSION = 8 class LibraryElementIndexer: @@ -73,10 +73,8 @@ def elaborate_class(elt_cls: Type[LibraryElementType]) -> Tuple[LibraryElementTy link_proto = builder.elaborate_toplevel(obj) assert isinstance(link_proto, edgir.Link) # TODO this needs to be cleaned up return obj, edgir.Library.NS.Val(link=link_proto) - elif isinstance(obj, Bundle): # TODO: note Bundle extends Port, so this must come first - return obj, edgir.Library.NS.Val(bundle=obj._def_to_proto()) elif isinstance(obj, Port): - return obj, edgir.Library.NS.Val(port=cast(edgir.Port, obj._def_to_proto())) + return obj, edgir.Library.NS.Val(port=obj._def_to_proto()) else: raise RuntimeError(f"didn't match type of library element {elt_cls}") diff --git a/edg/parts/Jacdac.py b/edg/parts/Jacdac.py index 471c2ad53..62f9e7152 100644 --- a/edg/parts/Jacdac.py +++ b/edg/parts/Jacdac.py @@ -25,7 +25,7 @@ def contents(self) -> None: self.require(self.nodes.length() > 1, "jd_data connection required") -class JacdacDataPort(Bundle[JacdacDataLink]): +class JacdacDataPort(Port[JacdacDataLink]): link_type = JacdacDataLink def __init__(self, model: Optional[DigitalBidir] = None) -> None: @@ -35,7 +35,7 @@ def __init__(self, model: Optional[DigitalBidir] = None) -> None: self.jd_data = self.Port(model) -class JacdacPassivePort(Bundle[JacdacDataLink]): +class JacdacPassivePort(Port[JacdacDataLink]): link_type = JacdacDataLink def __init__(self) -> None: diff --git a/proto/README.md b/proto/README.md index aea69471e..8b60f20ef 100644 --- a/proto/README.md +++ b/proto/README.md @@ -2,6 +2,7 @@ IR definition in protocol buffer format. You will need [mypy-protobuf](https://github.com/dropbox/mypy-protobuf) (to generate type stubs) and protoletariat (post-processing to use relative imports) ```commandline +pip install grpcio-tools pip install mypy-protobuf pip install protoletariat ``` diff --git a/proto/edgir/elem.proto b/proto/edgir/elem.proto index de66e9d51..60d95e638 100644 --- a/proto/edgir/elem.proto +++ b/proto/edgir/elem.proto @@ -51,6 +51,7 @@ message NamedLinkLike { message Port { repeated NamedValInit params = 40; repeated NamedValueExpr constraints = 41; + repeated NamedPortLike ports = 42; edgir.ref.LibraryPath self_class = 20; repeated edgir.ref.LibraryPath superclasses = 21; // superclasses, may be empty @@ -60,18 +61,6 @@ message Port { edgir.common.Metadata meta = 127; } -message Bundle { - repeated NamedValInit params = 40; - repeated NamedPortLike ports = 41; - repeated NamedValueExpr constraints = 42; - - edgir.ref.LibraryPath self_class = 20; - repeated edgir.ref.LibraryPath superclasses = 21; // superclasses, may be empty - repeated edgir.ref.LibraryPath super_superclasses = 24; // all (recursive) superclasses above superclasses - - edgir.common.Metadata meta = 127; -} - message PortArray { message Ports { repeated NamedPortLike ports = 40; @@ -98,8 +87,6 @@ message PortLike { /** 'port' disallowed w/in the library */ Port port = 3; PortArray array = 4; - /** 'bundle' disallowed w/in the library */ - Bundle bundle = 6; } } diff --git a/proto/edgir/schema.proto b/proto/edgir/schema.proto index 2ad9be6c8..335aea670 100644 --- a/proto/edgir/schema.proto +++ b/proto/edgir/schema.proto @@ -28,7 +28,6 @@ message Library { message Val { oneof type { edgir.elem.Port port = 10; - edgir.elem.Bundle bundle = 11; edgir.elem.HierarchyBlock hierarchy_block = 13; edgir.elem.Link link = 14; NS namespace = 20;