Project
Function
Sample CLI
gway awg find-conduit
References
['sql', 'sql.open_connection']
Full Code
def find_conduit(awg, cables, *, conduit="emt"):
"""Calculate the kind of conduit required for a set of cables."""
with gw.sql.open_connection() as cursor:
assert conduit in ("emt", "imc", "rmc", "fmc"), "Allowed: emt, imc, rmc, fmc."
assert 1 <= cables <= 30, "Valid for 1-30 cables per conduit."
awg = AWG(awg)
sql = f"""
SELECT trade_size
FROM awg_conduit_fill
WHERE lower(conduit) = lower(:conduit)
AND awg_{str(awg)} >= :cables
ORDER BY trade_size DESC LIMIT 1
"""
cursor.execute(sql, {"conduit": conduit, "cables": cables})
row = cursor.fetchone()
if not row:
return {"trade_size": "n/a"}
return {
"size_in": row[0]
}