# This file is part of the faebryk project
# SPDX-License-Identifier: MIT

"""
This file is autogenerated by tools/library/gen_F.py
This is the __init__.py file of the library
All modules are in ./<module>.py with name class <module>
Export all <module> classes here
Do it programmatically instead of specializing each manually
This way we can add new modules without changing this file
"""

# Disable ruff warning for whole block
# flake8: noqa: F401
# flake8: noqa: I001
# flake8: noqa: E501

import faebryk.library.Collections as Collections
from faebryk.library.NumberDomain import NumberDomain
from faebryk.library.has_part_removed import has_part_removed
from faebryk.library.is_sink import is_sink
from faebryk.library.is_source import is_source
from faebryk.library.Logic import Logic
from faebryk.library.Mechanical import Mechanical
from faebryk.library.Signal import Signal
from faebryk.library.is_app_root import is_app_root
import faebryk.library.bus_parameter_utils as bus_parameter_utils
import faebryk.library.Literals as Literals
from faebryk.library.can_bridge import can_bridge
from faebryk.library.has_source_chunk import has_source_chunk
import faebryk.library.Parameters as Parameters
from faebryk.library.has_name_override import has_name_override
from faebryk.library.can_bridge_by_name import can_bridge_by_name
import faebryk.library.Expressions as Expressions
import faebryk.library.Footprints as Footprints
import faebryk.library.Pickable as Pickable
from faebryk.library.SerializableMetadata import SerializableMetadata
from faebryk.library.has_datasheet import has_datasheet
from faebryk.library.has_designator_prefix import has_designator_prefix
from faebryk.library.has_doc_string import has_doc_string
from faebryk.library.has_net_name import has_net_name
from faebryk.library.has_package_requirements import has_package_requirements
from faebryk.library.has_solver import has_solver
from faebryk.library.has_usage_example import has_usage_example
from faebryk.library.is_auto_generated import is_auto_generated
import faebryk.library.Units as Units
import faebryk.library.KiCadFootprints as KiCadFootprints
from faebryk.library.implements_design_check import implements_design_check
from faebryk.library.Electrical import Electrical
from faebryk.library.has_net_name_suggestion import has_net_name_suggestion
from faebryk.library.has_simple_value_representation import has_simple_value_representation
from faebryk.library.is_atomic_part import is_atomic_part
from faebryk.library.PCB import PCB
from faebryk.library.has_default_constraint import has_default_constraint
from faebryk.library.is_alias_bus_parameter import is_alias_bus_parameter
from faebryk.library.is_sum_bus_parameter import is_sum_bus_parameter
from faebryk.library.Filter import Filter
import faebryk.library.Lead as Lead
from faebryk.library.has_net_name_affix import has_net_name_affix
from faebryk.library.requires_external_usage import requires_external_usage
from faebryk.library.XtalIF import XtalIF
from faebryk.library.ElectricPower import ElectricPower
from faebryk.library.BJT import BJT
from faebryk.library.Crystal import Crystal
from faebryk.library.Diode import Diode
from faebryk.library.Fuse import Fuse
from faebryk.library.Inductor import Inductor
from faebryk.library.MOSFET import MOSFET
from faebryk.library.MountingHole import MountingHole
from faebryk.library.Net import Net
from faebryk.library.Resistor import Resistor
from faebryk.library.TestPoint import TestPoint
from faebryk.library.Capacitor import Capacitor
from faebryk.library.CapacitorPolarized import CapacitorPolarized
from faebryk.library.Comparator import Comparator
from faebryk.library.ElectricLogic import ElectricLogic
from faebryk.library.ElectricSignal import ElectricSignal
from faebryk.library.NetTie import NetTie
from faebryk.library.Regulator import Regulator
from faebryk.library.LED import LED
from faebryk.library.ResistorArray import ResistorArray
from faebryk.library.ResistorVoltageDivider import ResistorVoltageDivider
from faebryk.library.has_pulls import has_pulls
from faebryk.library.Crystal_Oscillator import Crystal_Oscillator
from faebryk.library.MultiCapacitor import MultiCapacitor
from faebryk.library.has_designator import has_designator
from faebryk.library.FilterElectricalLC import FilterElectricalLC
from faebryk.library.has_single_electric_reference import has_single_electric_reference
from faebryk.library.AdjustableRegulator import AdjustableRegulator
from faebryk.library.can_be_pulled import can_be_pulled
from faebryk.library.Battery import Battery
from faebryk.library.CAN_TTL import CAN_TTL
from faebryk.library.DifferentialPair import DifferentialPair
from faebryk.library.FilterElectricalRC import FilterElectricalRC
from faebryk.library.I2S import I2S
from faebryk.library.JTAG import JTAG
from faebryk.library.MultiSPI import MultiSPI
from faebryk.library.PDM import PDM
from faebryk.library.RS232 import RS232
from faebryk.library.SPI import SPI
from faebryk.library.SWD import SWD
from faebryk.library.SinglePinAddressor import SinglePinAddressor
from faebryk.library.UART_Base import UART_Base
from faebryk.library.requires_pulls import requires_pulls
from faebryk.library.CAN import CAN
from faebryk.library.Ethernet import Ethernet
from faebryk.library.OpAmp import OpAmp
from faebryk.library.RS485HalfDuplex import RS485HalfDuplex
from faebryk.library.USB2_0_IF import USB2_0_IF
from faebryk.library.SPIFlash import SPIFlash
from faebryk.library.UART import UART
from faebryk.library.I2C import I2C
from faebryk.library.USB2_0 import USB2_0
from faebryk.library.USB3_IF import USB3_IF
from faebryk.library.Addressor import Addressor
from faebryk.library.HDMI import HDMI
from faebryk.library.USB3 import USB3
from faebryk.library.USB_C import USB_C

__all__ = [
    "Collections",
    "NumberDomain",
    "has_part_removed",
    "is_sink",
    "is_source",
    "Logic",
    "Mechanical",
    "Signal",
    "is_app_root",
    "bus_parameter_utils",
    "Literals",
    "can_bridge",
    "has_source_chunk",
    "Parameters",
    "has_name_override",
    "can_bridge_by_name",
    "Expressions",
    "Footprints",
    "Pickable",
    "SerializableMetadata",
    "has_datasheet",
    "has_designator_prefix",
    "has_doc_string",
    "has_net_name",
    "has_package_requirements",
    "has_solver",
    "has_usage_example",
    "is_auto_generated",
    "Units",
    "KiCadFootprints",
    "implements_design_check",
    "Electrical",
    "has_net_name_suggestion",
    "has_simple_value_representation",
    "is_atomic_part",
    "PCB",
    "has_default_constraint",
    "is_alias_bus_parameter",
    "is_sum_bus_parameter",
    "Filter",
    "Lead",
    "has_net_name_affix",
    "requires_external_usage",
    "XtalIF",
    "ElectricPower",
    "BJT",
    "Crystal",
    "Diode",
    "Fuse",
    "Inductor",
    "MOSFET",
    "MountingHole",
    "Net",
    "Resistor",
    "TestPoint",
    "Capacitor",
    "CapacitorPolarized",
    "Comparator",
    "ElectricLogic",
    "ElectricSignal",
    "NetTie",
    "Regulator",
    "LED",
    "ResistorArray",
    "ResistorVoltageDivider",
    "has_pulls",
    "Crystal_Oscillator",
    "MultiCapacitor",
    "has_designator",
    "FilterElectricalLC",
    "has_single_electric_reference",
    "AdjustableRegulator",
    "can_be_pulled",
    "Battery",
    "CAN_TTL",
    "DifferentialPair",
    "FilterElectricalRC",
    "I2S",
    "JTAG",
    "MultiSPI",
    "PDM",
    "RS232",
    "SPI",
    "SWD",
    "SinglePinAddressor",
    "UART_Base",
    "requires_pulls",
    "CAN",
    "Ethernet",
    "OpAmp",
    "RS485HalfDuplex",
    "USB2_0_IF",
    "SPIFlash",
    "UART",
    "I2C",
    "USB2_0",
    "USB3_IF",
    "Addressor",
    "HDMI",
    "USB3",
    "USB_C",
]
