diff --git a/.github/workflows/uml.yml b/.github/workflows/uml.yml new file mode 100644 index 00000000..2080f434 --- /dev/null +++ b/.github/workflows/uml.yml @@ -0,0 +1,58 @@ +name: UML Diagram + +on: + push: + branches: + - master + - main + - copybara_push + paths: + - "smart_control/**/*.py" + - "Makefile" + - "pyproject.toml" + - "poetry.lock" + - ".github/workflows/uml.yml" + + pull_request: + branches: + - master + - main + - copybara_push + paths: + - "smart_control/**/*.py" + - "Makefile" + - "pyproject.toml" + - "poetry.lock" + - ".github/workflows/uml.yml" + +permissions: + contents: read + +jobs: + uml: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.11" + + - name: Install Poetry + run: pip install poetry==2.1.2 + + - name: Install dependencies + run: poetry install --with dev,docs + + - name: Generate UML diagram + run: poetry run make uml + + - name: Check generated diagram + run: | + if ! git diff --exit-code docs/images/class_diagram.svg; then + echo "::error::The UML diagram is outdated. Please run 'poetry run make uml' and commit the updated SVG." + exit 1 + fi diff --git a/Makefile b/Makefile index 6eee78e0..e57c5a1b 100644 --- a/Makefile +++ b/Makefile @@ -53,3 +53,14 @@ docs-quiet: docs-build: poetry run mkdocs build + +# +# UML Diagram +# + +uml: + @echo "--- Generating UML class diagram ---" + pyreverse -o mmd -k -p smart_control smart_control/ + sed -i '/^classDiagram/a\ direction LR' classes_smart_control.mmd + mermaidx -i classes_smart_control.mmd -o docs/images/class_diagram.svg + # rm -f classes_smart_control.mmd packages_smart_control.mmd diff --git a/classes_smart_control.mmd b/classes_smart_control.mmd new file mode 100644 index 00000000..94c1b53c --- /dev/null +++ b/classes_smart_control.mmd @@ -0,0 +1,471 @@ +classDiagram + direction LR + class ActionConfig { + } + class ActionNormalizerTest { + } + class AgentUtilsTest { + } + class AirHandler { + } + class AirHandlerTest { + } + class AttributeInfo { + } + class BadObservationBuilding { + } + class BadSetpointSchedule { + } + class BaseActionNormalizer { + } + class BaseBuilding { + } + class BaseConvectionSimulator { + } + class BaseEnergyCost { + } + class BaseLearningAlgorithm { + } + class BaseObservationNormalizer { + } + class BaseOccupancy { + } + class BaseReader { + } + class BaseReducedSequence { + } + class BaseReducer { + } + class BaseRewardFunction { + } + class BaseRunCommandPredictor { + } + class BaseSetpointEnergyCarbonRewardFunction { + } + class BaseSetpointEnergyCarbonRewardTest { + } + class BaseSimulatorBuilding { + } + class BaseWeatherController { + } + class BaseWriter { + } + class BaseWriterFactory { + } + class Boiler { + } + class BoilerTest { + } + class BoundedActionNormalizer { + } + class Building { + } + class BuildingDataset { + } + class BuildingDatasetPartition { + } + class BuildingImageGenerator { + } + class BuildingInfo { + } + class BuildingInfoTest { + } + class BuildingRadiationScriptFTest { + } + class BuildingRadiationUtilsTest { + } + class BuildingRenderer { + } + class BuildingTest { + } + class BuildingUtilsTest { + } + class CVBoundaryType { + } + class CVCornerOrientationType { + } + class CVEdgeOrientationType { + } + class CVPositionType { + } + class CVType { + } + class CompositeObserver { + } + class ControllerReadWriteTest { + } + class ConversionUtilsTest { + } + class DefaultExteriorWallMaterialProperties { + } + class DefaultExteriorWallRadiationProperties { + } + class DefaultInsideAirMaterialProperties { + } + class DefaultInsideAirRadiationProperties { + } + class DefaultInsideWallMaterialProperties { + } + class DefaultInsideWallRadiationProperties { + } + class DeviceType { + } + class ElectricityEnergyCost { + } + class ElectricityEnergyCostTest { + } + class EnergyUtilsTest { + } + class EnhancedOccupancy { + } + class EnhancedOccupancyTest { + } + class Environment { + } + class EnvironmentTest { + } + class ExteriorRadiationData { + } + class FlexibleFloorplanSimulatorTest { + } + class FloorPlanBasedBuilding { + } + class FloorPlanBasedHvac { + } + class FloorPlanBasedHvacTest { + } + class GetObservationValueTest { + } + class GetReplayCloudCoverTest { + } + class GetReplayIrradianceTest { + } + class GetReplaySkyTemperatureTest { + } + class GetReplayTemperaturesTest { + } + class Heater { + } + class HistogramReducedSequence { + } + class HistogramReducer { + } + class HistogramReducerTest { + } + class Hvac { + } + class HvacTest { + } + class IdentityReducedSequence { + } + class IdentityReducer { + } + class IrradianceComponents { + } + class IrradianceComponentsTest { + } + class IrradianceDecompositionPvlibValidationTest { + } + class IrradianceTestBase { + } + class LIGHTSWITCHOccupancy { + } + class LIGHTSWITCHOccupancyTest { + } + class MaterialProperties { + } + class MinuteLevelZoneOccupant { + } + class Mode { + } + class MoffettReplayWeatherControllerTest { + } + class NaturalGasEnergyCost { + } + class NaturalGasEnergyCostTest { + } + class ObservationNormalizerTest { + } + class Observer { + } + class OccupancyStateEnum { + } + class OccupancyStateEnum { + } + class OccupancyStateEnum { + } + class PrintStatusObserver { + } + class ProtoReader { + } + class ProtoWriter { + } + class ProtoWriterFactory { + } + class RadiationProperties { + } + class RadiationPropertiesTest { + } + class RandomForestLearningAlgorithm { + } + class RandomizedArrivalDepartureOccupancy { + } + class RandomizedArrivalDepartureOccupancyTest { + } + class Readers { + } + class RealBuildingTemperatureArrayGenerator { + } + class ReducerTest { + } + class RegressionBuildingUtilsTest { + } + class RejectionBuilding { + } + class RejectionSimulatorBuilding { + } + class RejectionSimulatorBuildingTest { + } + class RenderingObserver { + } + class ReplayBufferManager { + } + class ReplaySolarRadiationTest { + } + class ReplayWeatherController { + } + class ReplayWeatherControllerTest { + } + class ReverbInstallationTest { + } + class RunCommandPredictor { + } + class RunCommandPredictorTest { + } + class ScheduleEvent { + } + class SchedulePolicy { + } + class SetpointEnergyCarbonRegretFunction { + } + class SetpointEnergyCarbonRegretTest { + } + class SetpointEnergyCarbonRewardFunction { + } + class SetpointEnergyCarbonRewardTest { + } + class SetpointSchedule { + } + class SetpointScheduleTest { + } + class SimpleBuilding { + } + class SimpleRewardFunction { + } + class Simulator { + } + class SimulatorBuilding { + } + class SimulatorBuildingTest { + } + class SimulatorBuildingTestBase { + } + class SimulatorFlexibleGeometries { + } + class SimulatorTest { + } + class SmartDevice { + } + class SmartDeviceTest { + } + class SolarRadiation { + } + class SolarRadiationPvlibValidationTest { + } + class SolarRadiationTest { + } + class StandardScoreObservationNormalizer { + } + class StatsReducedSequence { + } + class StatsReducer { + } + class StatusRejectionBuilding { + } + class StepFunctionOccupancy { + } + class StepFunctionOccupancyModelTest { + } + class StochasticConvectionSimulator { + } + class TFSimulator { + } + class TFSimulatorTest { + } + class TerminatingEnv { + } + class TestAllBuildingDatasetPartitions { + } + class TestBuildingDataset { + } + class TestBuildingDatasetPartition { + } + class TestConfigPaths { + } + class TestDataDirectory { + } + class TestEnergyCost { + } + class TestEnergyCost { + } + class TestEnergyCost { + } + class TestOccupancy { + } + class TestReader { + } + class TestReader { + } + class TestReader { + } + class TestTempConversions { + } + class ThermalDiffuserUtilsTest { + } + class Thermostat { + } + class ThermostatTest { + } + class TimeIntervalEnum { + } + class Vav { + } + class VavTest { + } + class VisualLogger { + } + class WeatherController { + } + class WeatherControllerTest { + } + class WorkerType { + } + class ZoneOccupant { + } + class ZoneOccupant { + } + class _TanhNormalProjectionNetworkWrapper { + } + RejectionBuilding --|> SimpleBuilding + StatusRejectionBuilding --|> SimpleBuilding + BadObservationBuilding --|> SimpleBuilding + TerminatingEnv --|> Environment + SimpleBuilding --|> BaseBuilding + SimpleRewardFunction --|> BaseRewardFunction + CompositeObserver --|> Observer + PrintStatusObserver --|> Observer + RenderingObserver --|> Observer + BaseSetpointEnergyCarbonRewardFunction --|> BaseRewardFunction + TestEnergyCost --|> BaseEnergyCost + ElectricityEnergyCost --|> BaseEnergyCost + NaturalGasEnergyCost --|> BaseEnergyCost + SetpointEnergyCarbonRegretFunction --|> BaseSetpointEnergyCarbonRewardFunction + TestEnergyCost --|> BaseEnergyCost + SetpointEnergyCarbonRewardFunction --|> BaseSetpointEnergyCarbonRewardFunction + TestEnergyCost --|> BaseEnergyCost + AirHandler --|> SmartDevice + Boiler --|> SmartDevice + Building --|> BaseSimulatorBuilding + DefaultExteriorWallMaterialProperties --|> MaterialProperties + DefaultExteriorWallRadiationProperties --|> RadiationProperties + DefaultInsideAirMaterialProperties --|> MaterialProperties + DefaultInsideAirRadiationProperties --|> RadiationProperties + DefaultInsideWallMaterialProperties --|> MaterialProperties + DefaultInsideWallRadiationProperties --|> RadiationProperties + FloorPlanBasedBuilding --|> BaseSimulatorBuilding + EnhancedOccupancy --|> BaseOccupancy + RandomizedArrivalDepartureOccupancy --|> BaseOccupancy + RejectionSimulatorBuilding --|> BaseBuilding + RejectionSimulatorBuildingTest --|> SimulatorBuildingTestBase + SimulatorBuilding --|> BaseBuilding + SimulatorBuildingTest --|> SimulatorBuildingTestBase + SimulatorFlexibleGeometries --|> Simulator + Heater --|> SmartDevice + ReplaySolarRadiationTest --|> SolarRadiationTest + SolarRadiationPvlibValidationTest --|> IrradianceTestBase + SolarRadiationTest --|> IrradianceTestBase + StepFunctionOccupancy --|> BaseOccupancy + StochasticConvectionSimulator --|> BaseConvectionSimulator + LIGHTSWITCHOccupancy --|> BaseOccupancy + TFSimulator --|> SimulatorFlexibleGeometries + Vav --|> SmartDevice + ReplayWeatherController --|> BaseWeatherController + WeatherController --|> BaseWeatherController + BoundedActionNormalizer --|> BaseActionNormalizer + ProtoReader --|> BaseReader + ProtoWriter --|> BaseWriter + ProtoWriterFactory --|> BaseWriterFactory + HistogramReducer --|> BaseReducer + HistogramReducedSequence --|> BaseReducedSequence + TestReader --|> BaseReader + StandardScoreObservationNormalizer --|> BaseObservationNormalizer + IdentityReducer --|> BaseReducer + IdentityReducedSequence --|> BaseReducedSequence + StatsReducer --|> BaseReducer + StatsReducedSequence --|> BaseReducedSequence + TestOccupancy --|> BaseOccupancy + BadSetpointSchedule --|> SetpointSchedule + RandomForestLearningAlgorithm --|> BaseLearningAlgorithm + RunCommandPredictor --|> BaseRunCommandPredictor + TestReader --|> BaseReader + TestReader --|> BaseReader + DeviceType --* ScheduleEvent : device + AirHandler --* FloorPlanBasedHvacTest : _global_handler + Boiler --* FloorPlanBasedHvacTest : _global_boiler + FloorPlanBasedBuilding --* BuildingRadiationScriptFTest : building + FloorPlanBasedBuilding --* BuildingRadiationScriptFTest : building_with_interior_mass + FloorPlanBasedHvac --* FloorPlanBasedHvacTest : _hvac + SetpointSchedule --* FloorPlanBasedHvacTest : _global_setpoint_schedule + BuildingInfo --* SolarRadiation : building_info + BuildingInfo --* ReplaySolarRadiationTest : building_info + BuildingInfo --* SolarRadiationTest : building_info + IrradianceComponents --* ExteriorRadiationData : irradiance + SolarRadiation --* ReplaySolarRadiationTest : solar_radiation + SolarRadiation --* SolarRadiationTest : solar_radiation + StepFunctionOccupancy --* SimulatorBuildingTestBase : occupancy + StochasticConvectionSimulator --* FloorPlanBasedBuilding : _convection_simulator + StochasticConvectionSimulator --* FloorPlanBasedBuilding : _convection_simulator + ReplayWeatherController --* ReplaySolarRadiationTest : weather_controller + ReplayWeatherController --* MoffettReplayWeatherControllerTest : controller + ReplayWeatherController --* ReplayWeatherControllerTest : controller + WeatherController --* SolarRadiationTest : weather_controller + VisualLogger --* SimulatorFlexibleGeometries : _log_and_plotter + BuildingDataset --o BuildingDatasetPartition : ds + BaseBuilding --o Environment : building + BaseBuilding --o RejectionSimulatorBuilding : _base_building + BaseEnergyCost --o SetpointEnergyCarbonRegretFunction : _electricity_energy_cost + BaseEnergyCost --o SetpointEnergyCarbonRegretFunction : _natural_gas_energy_cost + BaseEnergyCost --o SetpointEnergyCarbonRewardFunction : _electricity_energy_cost + BaseEnergyCost --o SetpointEnergyCarbonRewardFunction : _natural_gas_energy_cost + BaseObservationNormalizer --o Environment : _observation_normalizer + BaseOccupancy --o SimulatorBuilding : _occupancy + BaseRewardFunction --o Environment : reward_function + AirHandler --o Hvac : _air_handler + AirHandler --o FloorPlanBasedHvac : _air_handler + Boiler --o Hvac : _boiler + Boiler --o FloorPlanBasedHvac : _boiler + Boiler --o Vav : _boiler + Building --o Simulator : building + FloorPlanBasedBuilding --o SimulatorFlexibleGeometries : building + WorkerType --o MinuteLevelZoneOccupant : worker_type + Hvac --o Simulator : _hvac + FloorPlanBasedHvac --o SimulatorFlexibleGeometries : _hvac + SetpointSchedule --o Hvac : _schedule + SetpointSchedule --o FloorPlanBasedHvac : _schedule + SetpointSchedule --o Thermostat : _setpoint_schedule + Heater --o SmartDeviceTest : heater_class + CVPositionType --o CVType : position + Thermostat --o Vav : _init_thermostat + WeatherController --o Simulator : _weather_controller + BuildingRenderer --o VisualLogger : _renderer + BaseLearningAlgorithm --o RunCommandPredictor : _learning_algo diff --git a/docs/images/class_diagram.svg b/docs/images/class_diagram.svg new file mode 100644 index 00000000..88ef1a3b --- /dev/null +++ b/docs/images/class_diagram.svg @@ -0,0 +1 @@ +device_global_handler_global_boilerbuildingbuilding_with_interior_mass_hvac_global_setpoint_schedulebuilding_infobuilding_infobuilding_infoirradiancesolar_radiationsolar_radiationoccupancy_convection_simulator_convection_simulatorweather_controllercontrollercontrollerweather_controller_log_and_plotterdsbuilding_base_building_electricity_energy_cost_natural_gas_energy_cost_electricity_energy_cost_natural_gas_energy_cost_observation_normalizer_occupancyreward_function_air_handler_air_handler_boiler_boiler_boilerbuildingbuildingworker_type_hvac_hvac_schedule_schedule_setpoint_scheduleheater_classposition_init_thermostat_weather_controller_renderer_learning_algoActionConfigActionNormalizerTestAgentUtilsTestAirHandlerAirHandlerTestAttributeInfoBadObservationBuildingBadSetpointScheduleBaseActionNormalizerBaseBuildingBaseConvectionSimulatorBaseEnergyCostBaseLearningAlgorithmBaseObservationNormalizerBaseOccupancyBaseReaderBaseReducedSequenceBaseReducerBaseRewardFunctionBaseRunCommandPredictorBaseSetpointEnergyCarbonRewardFunctionBaseSetpointEnergyCarbonRewardTestBaseSimulatorBuildingBaseWeatherControllerBaseWriterBaseWriterFactoryBoilerBoilerTestBoundedActionNormalizerBuildingBuildingDatasetBuildingDatasetPartitionBuildingImageGeneratorBuildingInfoBuildingInfoTestBuildingRadiationScriptFTestBuildingRadiationUtilsTestBuildingRendererBuildingTestBuildingUtilsTestCVBoundaryTypeCVCornerOrientationTypeCVEdgeOrientationTypeCVPositionTypeCVTypeCompositeObserverControllerReadWriteTestConversionUtilsTestDefaultExteriorWallMaterialPropertiesDefaultExteriorWallRadiationPropertiesDefaultInsideAirMaterialPropertiesDefaultInsideAirRadiationPropertiesDefaultInsideWallMaterialPropertiesDefaultInsideWallRadiationPropertiesDeviceTypeElectricityEnergyCostElectricityEnergyCostTestEnergyUtilsTestEnhancedOccupancyEnhancedOccupancyTestEnvironmentEnvironmentTestExteriorRadiationDataFlexibleFloorplanSimulatorTestFloorPlanBasedBuildingFloorPlanBasedHvacFloorPlanBasedHvacTestGetObservationValueTestGetReplayCloudCoverTestGetReplayIrradianceTestGetReplaySkyTemperatureTestGetReplayTemperaturesTestHeaterHistogramReducedSequenceHistogramReducerHistogramReducerTestHvacHvacTestIdentityReducedSequenceIdentityReducerIrradianceComponentsIrradianceComponentsTestIrradianceDecompositionPvlibValidationTestIrradianceTestBaseLIGHTSWITCHOccupancyLIGHTSWITCHOccupancyTestMaterialPropertiesMinuteLevelZoneOccupantModeMoffettReplayWeatherControllerTestNaturalGasEnergyCostNaturalGasEnergyCostTestObservationNormalizerTestObserverOccupancyStateEnumPrintStatusObserverProtoReaderProtoWriterProtoWriterFactoryRadiationPropertiesRadiationPropertiesTestRandomForestLearningAlgorithmRandomizedArrivalDepartureOccupancyRandomizedArrivalDepartureOccupancyTestReadersRealBuildingTemperatureArrayGeneratorReducerTestRegressionBuildingUtilsTestRejectionBuildingRejectionSimulatorBuildingRejectionSimulatorBuildingTestRenderingObserverReplayBufferManagerReplaySolarRadiationTestReplayWeatherControllerReplayWeatherControllerTestReverbInstallationTestRunCommandPredictorRunCommandPredictorTestScheduleEventSchedulePolicySetpointEnergyCarbonRegretFunctionSetpointEnergyCarbonRegretTestSetpointEnergyCarbonRewardFunctionSetpointEnergyCarbonRewardTestSetpointScheduleSetpointScheduleTestSimpleBuildingSimpleRewardFunctionSimulatorSimulatorBuildingSimulatorBuildingTestSimulatorBuildingTestBaseSimulatorFlexibleGeometriesSimulatorTestSmartDeviceSmartDeviceTestSolarRadiationSolarRadiationPvlibValidationTestSolarRadiationTestStandardScoreObservationNormalizerStatsReducedSequenceStatsReducerStatusRejectionBuildingStepFunctionOccupancyStepFunctionOccupancyModelTestStochasticConvectionSimulatorTFSimulatorTFSimulatorTestTerminatingEnvTestAllBuildingDatasetPartitionsTestBuildingDatasetTestBuildingDatasetPartitionTestConfigPathsTestDataDirectoryTestEnergyCostTestOccupancyTestReaderTestTempConversionsThermalDiffuserUtilsTestThermostatThermostatTestTimeIntervalEnumVavVavTestVisualLoggerWeatherControllerWeatherControllerTestWorkerTypeZoneOccupant_TanhNormalProjectionNetworkWrapper \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index f949fbc2..791fb1e4 100644 --- a/docs/index.md +++ b/docs/index.md @@ -8,3 +8,15 @@ efficiency, operational costs, and occupant comfort. This project is an open source collaboration between Google and partner organizations in academia and industry. + +## Code Architecture + +The following UML class diagram provides an overview of the relationships +between the classes in the codebase. It is automatically generated from the +source code. + +[![UML class diagram](images/class_diagram.svg)](images/class_diagram.svg) + +```mermaid +--8<-- "classes_smart_control.mmd" +``` diff --git a/mkdocs.yml b/mkdocs.yml index 41c5d780..ef27c2a6 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -119,8 +119,11 @@ markdown_extensions: #line_spans: __span pygments_lang_class: true #- pymdownx.inlinehilite # For inline code highlighting - #- pymdownx.snippets - - pymdownx.superfences + - pymdownx.snippets + - pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid # MATHJAX EQUATIONS CONFIG, PART 1 OF 2 # https://mrkeo.github.io/reference/mathjax/ diff --git a/packages_smart_control.mmd b/packages_smart_control.mmd new file mode 100644 index 00000000..19da31cf --- /dev/null +++ b/packages_smart_control.mmd @@ -0,0 +1,832 @@ +classDiagram + class smart_control { + } + class dataset { + } + class conftest { + } + class dataset { + } + class dataset_test { + } + class partition { + } + class partition_test { + } + class environment { + } + class environment { + } + class environment_test { + } + class environment_test_utils { + } + class models { + } + class base_building { + } + class base_energy_cost { + } + class base_normalizer { + } + class base_occupancy { + } + class base_reward_function { + } + class proto { + } + class smart_control_building_pb2 { + } + class smart_control_normalization_pb2 { + } + class smart_control_reward_pb2 { + } + class reinforcement_learning { + } + class agents { + } + class networks { + } + class sac_networks { + } + class sac_agent { + } + class observers { + } + class base_observer { + } + class composite_observer { + } + class print_status_observer { + } + class rendering_observer { + } + class policies { + } + class schedule_policy { + } + class replay_buffer { + } + class replay_buffer { + } + class replay_buffer_test { + } + class scripts { + } + class populate_starter_buffer { + } + class train { + } + class utils { + } + class config { + } + class config_test { + } + class constants { + } + class data_processing { + } + class data_processing_test { + } + class environment { + } + class metrics { + } + class time_utils { + } + class reward { + } + class base_setpoint_energy_carbon_reward { + } + class base_setpoint_energy_carbon_reward_test { + } + class electricity_energy_cost { + } + class electricity_energy_cost_test { + } + class natural_gas_energy_cost { + } + class natural_gas_energy_cost_test { + } + class setpoint_energy_carbon_regret { + } + class setpoint_energy_carbon_regret_test { + } + class setpoint_energy_carbon_reward { + } + class setpoint_energy_carbon_reward_test { + } + class simulator { + } + class air_handler { + } + class air_handler_test { + } + class base_convection_simulator { + } + class boiler { + } + class boiler_test { + } + class building { + } + class building_radiation_properties_test { + } + class building_radiation_test { + } + class building_radiation_utils { + } + class building_radiation_utils_test { + } + class building_test { + } + class building_utils { + } + class building_utils_test { + } + class conftest { + } + class constants { + } + class enhanced_occupancy { + } + class enhanced_occupancy_test { + } + class hvac { + } + class hvac_floorplan_based { + } + class hvac_floorplan_based_test { + } + class hvac_test { + } + class randomized_arrival_departure_occupancy { + } + class randomized_arrival_departure_occupancy_test { + } + class rejection_simulator_building { + } + class rejection_simulator_building_test { + } + class setpoint_schedule { + } + class setpoint_schedule_test { + } + class simulator { + } + class simulator_building { + } + class simulator_building_test { + } + class simulator_building_test_lib { + } + class simulator_flexible_floor_plan { + } + class simulator_flexible_floor_plan_test { + } + class simulator_test { + } + class smart_device { + } + class smart_device_test { + } + class solar_radiation { + } + class solar_radiation_test { + } + class step_function_occupancy { + } + class step_function_occupancy_test { + } + class stochastic_convection_simulator { + } + class stochastic_occupancy { + } + class stochastic_occupancy_test { + } + class tf_simulator { + } + class tf_simulator_test { + } + class thermal_diffuser_utils { + } + class thermal_diffuser_utils_test { + } + class thermostat { + } + class thermostat_test { + } + class vav { + } + class vav_test { + } + class weather_controller { + } + class weather_controller_test { + } + class utils { + } + class agent_utils { + } + class agent_utils_test { + } + class bounded_action_normalizer { + } + class bounded_action_normalizer_test { + } + class building_image_generator { + } + class building_renderer { + } + class constants { + } + class controller_read_write_test { + } + class controller_reader { + } + class controller_writer { + } + class conversion_utils { + } + class conversion_utils_test { + } + class energy_utils { + } + class energy_utils_test { + } + class environment_utils { + } + class histogram_reducer { + } + class histogram_reducer_test { + } + class observation_normalizer { + } + class observation_normalizer_test { + } + class plot_utils { + } + class reader_lib { + } + class real_building_temperature_array_generator { + } + class reducer { + } + class reducer_test { + } + class regression_building_utils { + } + class regression_building_utils_test { + } + class run_command_predictor { + } + class run_command_predictor_test { + } + class test_utils { + } + class visual_logger { + } + class writer_lib { + } + conftest --> dataset + conftest --> partition + dataset --> constants + dataset_test --> conftest + dataset_test --> dataset + partition --> dataset + partition_test --> conftest + partition_test --> partition + environment --> models + environment --> base_building + environment --> base_normalizer + environment --> base_reward_function + environment --> proto + environment --> smart_control_building_pb2 + environment --> smart_control_reward_pb2 + environment --> utils + environment --> building_image_generator + environment --> constants + environment --> conversion_utils + environment --> histogram_reducer + environment --> plot_utils + environment --> regression_building_utils + environment --> run_command_predictor + environment --> writer_lib + environment_test --> environment + environment_test --> environment + environment_test --> environment_test_utils + environment_test --> models + environment_test --> base_building + environment_test --> base_reward_function + environment_test --> proto + environment_test --> smart_control_building_pb2 + environment_test --> smart_control_normalization_pb2 + environment_test --> utils + environment_test --> bounded_action_normalizer + environment_test --> conversion_utils + environment_test --> histogram_reducer + environment_test --> observation_normalizer + environment_test --> test_utils + environment_test_utils --> models + environment_test_utils --> base_building + environment_test_utils --> base_reward_function + environment_test_utils --> proto + environment_test_utils --> smart_control_building_pb2 + environment_test_utils --> smart_control_reward_pb2 + environment_test_utils --> utils + environment_test_utils --> conversion_utils + base_building --> proto + base_building --> smart_control_building_pb2 + base_building --> smart_control_reward_pb2 + base_normalizer --> proto + base_normalizer --> smart_control_building_pb2 + base_reward_function --> proto + base_reward_function --> smart_control_reward_pb2 + sac_agent --> sac_networks + composite_observer --> base_observer + print_status_observer --> base_observer + print_status_observer --> constants + rendering_observer --> environment + rendering_observer --> environment + rendering_observer --> base_observer + rendering_observer --> config + rendering_observer --> constants + rendering_observer --> data_processing + rendering_observer --> utils + rendering_observer --> building_renderer + schedule_policy --> constants + schedule_policy --> time_utils + populate_starter_buffer --> composite_observer + populate_starter_buffer --> print_status_observer + populate_starter_buffer --> schedule_policy + populate_starter_buffer --> replay_buffer + populate_starter_buffer --> config + populate_starter_buffer --> environment + train --> sac_agent + train --> composite_observer + train --> print_status_observer + train --> replay_buffer + train --> config + train --> environment + config --> electricity_energy_cost + config --> natural_gas_energy_cost + config --> setpoint_energy_carbon_regret + config --> air_handler + config --> boiler + config --> building + config --> hvac_floorplan_based + config --> randomized_arrival_departure_occupancy + config --> simulator_building + config --> stochastic_convection_simulator + config --> tf_simulator + config --> weather_controller + config --> utils + config --> constants + config --> controller_reader + config --> controller_writer + config --> environment_utils + config --> histogram_reducer + config --> observation_normalizer + config_test --> constants + data_processing --> constants + data_processing --> utils + data_processing --> controller_reader + data_processing --> conversion_utils + data_processing_test --> data_processing + environment --> environment + environment --> constants + metrics --> constants + base_setpoint_energy_carbon_reward --> base_reward_function + base_setpoint_energy_carbon_reward --> proto + base_setpoint_energy_carbon_reward --> smart_control_reward_pb2 + base_setpoint_energy_carbon_reward --> utils + base_setpoint_energy_carbon_reward --> conversion_utils + base_setpoint_energy_carbon_reward_test --> base_energy_cost + base_setpoint_energy_carbon_reward_test --> proto + base_setpoint_energy_carbon_reward_test --> smart_control_reward_pb2 + base_setpoint_energy_carbon_reward_test --> reward + base_setpoint_energy_carbon_reward_test --> base_setpoint_energy_carbon_reward + base_setpoint_energy_carbon_reward_test --> utils + base_setpoint_energy_carbon_reward_test --> conversion_utils + electricity_energy_cost --> base_energy_cost + electricity_energy_cost --> utils + electricity_energy_cost --> conversion_utils + electricity_energy_cost_test --> reward + electricity_energy_cost_test --> electricity_energy_cost + natural_gas_energy_cost --> base_energy_cost + natural_gas_energy_cost --> utils + natural_gas_energy_cost --> constants + natural_gas_energy_cost_test --> reward + natural_gas_energy_cost_test --> natural_gas_energy_cost + natural_gas_energy_cost_test --> utils + natural_gas_energy_cost_test --> constants + setpoint_energy_carbon_regret --> base_energy_cost + setpoint_energy_carbon_regret --> proto + setpoint_energy_carbon_regret --> smart_control_reward_pb2 + setpoint_energy_carbon_regret --> base_setpoint_energy_carbon_reward + setpoint_energy_carbon_regret --> utils + setpoint_energy_carbon_regret --> conversion_utils + setpoint_energy_carbon_regret_test --> base_energy_cost + setpoint_energy_carbon_regret_test --> proto + setpoint_energy_carbon_regret_test --> smart_control_reward_pb2 + setpoint_energy_carbon_regret_test --> reward + setpoint_energy_carbon_regret_test --> setpoint_energy_carbon_regret + setpoint_energy_carbon_regret_test --> utils + setpoint_energy_carbon_regret_test --> conversion_utils + setpoint_energy_carbon_reward --> base_energy_cost + setpoint_energy_carbon_reward --> proto + setpoint_energy_carbon_reward --> smart_control_reward_pb2 + setpoint_energy_carbon_reward --> base_setpoint_energy_carbon_reward + setpoint_energy_carbon_reward --> utils + setpoint_energy_carbon_reward --> conversion_utils + setpoint_energy_carbon_reward_test --> base_energy_cost + setpoint_energy_carbon_reward_test --> proto + setpoint_energy_carbon_reward_test --> smart_control_reward_pb2 + setpoint_energy_carbon_reward_test --> reward + setpoint_energy_carbon_reward_test --> setpoint_energy_carbon_reward + setpoint_energy_carbon_reward_test --> utils + setpoint_energy_carbon_reward_test --> conversion_utils + air_handler --> proto + air_handler --> smart_control_building_pb2 + air_handler --> simulator + air_handler --> smart_device + air_handler --> weather_controller + air_handler --> utils + air_handler --> constants + air_handler_test --> simulator + air_handler_test --> air_handler + air_handler_test --> weather_controller + air_handler_test --> utils + air_handler_test --> constants + boiler --> proto + boiler --> smart_control_building_pb2 + boiler --> simulator + boiler --> smart_device + boiler --> utils + boiler --> constants + boiler_test --> proto + boiler_test --> smart_control_building_pb2 + boiler_test --> simulator + boiler_test --> boiler + boiler_test --> utils + boiler_test --> constants + building --> simulator + building --> base_convection_simulator + building --> building_radiation_utils + building --> building_utils + building --> constants + building --> thermal_diffuser_utils + building_radiation_properties_test --> simulator + building_radiation_properties_test --> building + building_radiation_test --> simulator + building_radiation_test --> conftest + building_radiation_utils --> simulator + building_radiation_utils --> constants + building_radiation_utils --> solar_radiation + building_radiation_utils_test --> simulator + building_radiation_utils_test --> building_radiation_utils + building_radiation_utils_test --> constants + building_radiation_utils_test --> solar_radiation + building_test --> simulator + building_test --> building + building_test --> building_utils + building_test --> constants + building_test --> stochastic_convection_simulator + building_utils --> simulator + building_utils --> constants + building_utils_test --> simulator + building_utils_test --> building_utils + conftest --> simulator + conftest --> building + constants --> constants + enhanced_occupancy --> base_occupancy + enhanced_occupancy --> utils + enhanced_occupancy --> conversion_utils + enhanced_occupancy_test --> enhanced_occupancy + hvac --> proto + hvac --> smart_control_building_pb2 + hvac --> simulator + hvac --> air_handler + hvac --> boiler + hvac --> setpoint_schedule + hvac --> thermostat + hvac --> vav + hvac --> utils + hvac --> conversion_utils + hvac_floorplan_based --> proto + hvac_floorplan_based --> smart_control_building_pb2 + hvac_floorplan_based --> simulator + hvac_floorplan_based --> air_handler + hvac_floorplan_based --> boiler + hvac_floorplan_based --> constants + hvac_floorplan_based --> setpoint_schedule + hvac_floorplan_based --> thermostat + hvac_floorplan_based --> vav + hvac_floorplan_based --> utils + hvac_floorplan_based --> conversion_utils + hvac_floorplan_based_test --> simulator + hvac_floorplan_based_test --> air_handler + hvac_floorplan_based_test --> boiler + hvac_floorplan_based_test --> hvac_floorplan_based + hvac_floorplan_based_test --> setpoint_schedule + hvac_floorplan_based_test --> utils + hvac_floorplan_based_test --> conversion_utils + hvac_test --> simulator + hvac_test --> air_handler + hvac_test --> boiler + hvac_test --> hvac + hvac_test --> setpoint_schedule + hvac_test --> utils + hvac_test --> conversion_utils + randomized_arrival_departure_occupancy --> base_occupancy + randomized_arrival_departure_occupancy --> utils + randomized_arrival_departure_occupancy --> conversion_utils + randomized_arrival_departure_occupancy_test --> simulator + randomized_arrival_departure_occupancy_test --> randomized_arrival_departure_occupancy + rejection_simulator_building --> base_building + rejection_simulator_building --> proto + rejection_simulator_building --> smart_control_building_pb2 + rejection_simulator_building --> smart_control_reward_pb2 + rejection_simulator_building_test --> proto + rejection_simulator_building_test --> smart_control_building_pb2 + rejection_simulator_building_test --> simulator + rejection_simulator_building_test --> rejection_simulator_building + rejection_simulator_building_test --> simulator_building + rejection_simulator_building_test --> simulator_building_test_lib + setpoint_schedule_test --> simulator + setpoint_schedule_test --> setpoint_schedule + simulator --> base_occupancy + simulator --> proto + simulator --> smart_control_reward_pb2 + simulator --> simulator + simulator --> building + simulator --> hvac + simulator --> weather_controller + simulator --> utils + simulator --> conversion_utils + simulator_building --> base_building + simulator_building --> base_occupancy + simulator_building --> proto + simulator_building --> smart_control_building_pb2 + simulator_building --> smart_control_reward_pb2 + simulator_building --> simulator + simulator_building --> simulator + simulator_building --> simulator_flexible_floor_plan + simulator_building --> smart_device + simulator_building --> tf_simulator + simulator_building --> utils + simulator_building --> conversion_utils + simulator_building_test --> simulator + simulator_building_test --> simulator_building + simulator_building_test --> simulator_building_test_lib + simulator_building_test_lib --> proto + simulator_building_test_lib --> smart_control_building_pb2 + simulator_building_test_lib --> simulator + simulator_building_test_lib --> air_handler + simulator_building_test_lib --> boiler + simulator_building_test_lib --> building + simulator_building_test_lib --> hvac + simulator_building_test_lib --> setpoint_schedule + simulator_building_test_lib --> simulator + simulator_building_test_lib --> simulator_building + simulator_building_test_lib --> step_function_occupancy + simulator_building_test_lib --> weather_controller + simulator_flexible_floor_plan --> base_occupancy + simulator_flexible_floor_plan --> proto + simulator_flexible_floor_plan --> smart_control_reward_pb2 + simulator_flexible_floor_plan --> simulator + simulator_flexible_floor_plan --> building + simulator_flexible_floor_plan --> constants + simulator_flexible_floor_plan --> hvac_floorplan_based + simulator_flexible_floor_plan --> simulator + simulator_flexible_floor_plan --> weather_controller + simulator_flexible_floor_plan --> utils + simulator_flexible_floor_plan --> building_renderer + simulator_flexible_floor_plan --> conversion_utils + simulator_flexible_floor_plan --> visual_logger + simulator_flexible_floor_plan_test --> proto + simulator_flexible_floor_plan_test --> smart_control_reward_pb2 + simulator_flexible_floor_plan_test --> simulator + simulator_flexible_floor_plan_test --> air_handler + simulator_flexible_floor_plan_test --> boiler + simulator_flexible_floor_plan_test --> building + simulator_flexible_floor_plan_test --> constants + simulator_flexible_floor_plan_test --> hvac_floorplan_based + simulator_flexible_floor_plan_test --> setpoint_schedule + simulator_flexible_floor_plan_test --> simulator_flexible_floor_plan + simulator_flexible_floor_plan_test --> step_function_occupancy + simulator_flexible_floor_plan_test --> weather_controller + simulator_flexible_floor_plan_test --> utils + simulator_flexible_floor_plan_test --> conversion_utils + simulator_test --> proto + simulator_test --> smart_control_reward_pb2 + simulator_test --> simulator + simulator_test --> air_handler + simulator_test --> boiler + simulator_test --> building + simulator_test --> hvac + simulator_test --> setpoint_schedule + simulator_test --> simulator + simulator_test --> step_function_occupancy + simulator_test --> weather_controller + simulator_test --> utils + simulator_test --> conversion_utils + smart_device --> proto + smart_device --> smart_control_building_pb2 + smart_device_test --> proto + smart_device_test --> smart_control_building_pb2 + smart_device_test --> simulator + smart_device_test --> smart_device + solar_radiation --> simulator + solar_radiation --> weather_controller + solar_radiation --> utils + solar_radiation --> conversion_utils + solar_radiation_test --> proto + solar_radiation_test --> smart_control_building_pb2 + solar_radiation_test --> simulator + solar_radiation_test --> constants + solar_radiation_test --> solar_radiation + solar_radiation_test --> weather_controller + solar_radiation_test --> utils + solar_radiation_test --> conversion_utils + step_function_occupancy --> base_occupancy + step_function_occupancy --> utils + step_function_occupancy --> conversion_utils + step_function_occupancy_test --> simulator + step_function_occupancy_test --> step_function_occupancy + stochastic_convection_simulator --> simulator + stochastic_convection_simulator --> base_convection_simulator + stochastic_occupancy --> base_occupancy + stochastic_occupancy --> utils + stochastic_occupancy --> conversion_utils + stochastic_occupancy_test --> stochastic_occupancy + tf_simulator --> simulator + tf_simulator --> building + tf_simulator --> hvac_floorplan_based + tf_simulator --> simulator_flexible_floor_plan + tf_simulator --> weather_controller + tf_simulator_test --> simulator + tf_simulator_test --> air_handler + tf_simulator_test --> boiler + tf_simulator_test --> building + tf_simulator_test --> hvac_floorplan_based + tf_simulator_test --> setpoint_schedule + tf_simulator_test --> simulator_flexible_floor_plan + tf_simulator_test --> simulator_flexible_floor_plan_test + tf_simulator_test --> tf_simulator + tf_simulator_test --> weather_controller + thermal_diffuser_utils --> simulator + thermal_diffuser_utils --> building_utils + thermal_diffuser_utils_test --> simulator + thermal_diffuser_utils_test --> thermal_diffuser_utils + thermostat --> simulator + thermostat --> setpoint_schedule + thermostat_test --> simulator + thermostat_test --> setpoint_schedule + thermostat_test --> thermostat + vav --> proto + vav --> smart_control_building_pb2 + vav --> simulator + vav --> boiler + vav --> smart_device + vav --> thermostat + vav --> utils + vav --> constants + vav_test --> simulator + vav_test --> boiler + vav_test --> setpoint_schedule + vav_test --> thermostat + vav_test --> vav + vav_test --> utils + vav_test --> constants + weather_controller --> proto + weather_controller --> smart_control_building_pb2 + weather_controller --> utils + weather_controller --> conversion_utils + weather_controller_test --> simulator + weather_controller_test --> weather_controller + agent_utils_test --> utils + agent_utils_test --> agent_utils + bounded_action_normalizer --> models + bounded_action_normalizer --> base_normalizer + bounded_action_normalizer_test --> utils + bounded_action_normalizer_test --> bounded_action_normalizer + building_image_generator --> proto + building_image_generator --> smart_control_building_pb2 + building_image_generator --> utils + building_image_generator --> building_renderer + building_image_generator --> real_building_temperature_array_generator + building_renderer --> simulator + building_renderer --> building_utils + building_renderer --> constants + controller_read_write_test --> proto + controller_read_write_test --> smart_control_building_pb2 + controller_read_write_test --> smart_control_normalization_pb2 + controller_read_write_test --> smart_control_reward_pb2 + controller_read_write_test --> utils + controller_read_write_test --> controller_reader + controller_read_write_test --> controller_writer + controller_read_write_test --> conversion_utils + controller_reader --> proto + controller_reader --> smart_control_building_pb2 + controller_reader --> smart_control_normalization_pb2 + controller_reader --> smart_control_reward_pb2 + controller_reader --> utils + controller_reader --> constants + controller_reader --> reader_lib + controller_writer --> proto + controller_writer --> smart_control_building_pb2 + controller_writer --> smart_control_normalization_pb2 + controller_writer --> smart_control_reward_pb2 + controller_writer --> utils + controller_writer --> constants + controller_writer --> writer_lib + conversion_utils --> proto + conversion_utils --> smart_control_reward_pb2 + conversion_utils_test --> proto + conversion_utils_test --> smart_control_reward_pb2 + conversion_utils_test --> utils + conversion_utils_test --> conversion_utils + energy_utils --> utils + energy_utils --> constants + energy_utils_test --> utils + energy_utils_test --> energy_utils + environment_utils --> proto + environment_utils --> smart_control_normalization_pb2 + environment_utils --> utils + environment_utils --> bounded_action_normalizer + histogram_reducer --> proto + histogram_reducer --> smart_control_building_pb2 + histogram_reducer --> utils + histogram_reducer --> reader_lib + histogram_reducer --> reducer + histogram_reducer_test --> proto + histogram_reducer_test --> smart_control_building_pb2 + histogram_reducer_test --> smart_control_reward_pb2 + histogram_reducer_test --> utils + histogram_reducer_test --> histogram_reducer + histogram_reducer_test --> reader_lib + observation_normalizer --> models + observation_normalizer --> base_normalizer + observation_normalizer --> proto + observation_normalizer --> smart_control_building_pb2 + observation_normalizer --> smart_control_normalization_pb2 + observation_normalizer_test --> proto + observation_normalizer_test --> smart_control_building_pb2 + observation_normalizer_test --> smart_control_normalization_pb2 + observation_normalizer_test --> utils + observation_normalizer_test --> observation_normalizer + reader_lib --> proto + reader_lib --> smart_control_building_pb2 + reader_lib --> smart_control_normalization_pb2 + reader_lib --> smart_control_reward_pb2 + real_building_temperature_array_generator --> proto + real_building_temperature_array_generator --> smart_control_building_pb2 + real_building_temperature_array_generator --> utils + real_building_temperature_array_generator --> conversion_utils + reducer_test --> utils + reducer_test --> reducer + regression_building_utils --> base_occupancy + regression_building_utils --> proto + regression_building_utils --> smart_control_building_pb2 + regression_building_utils --> smart_control_reward_pb2 + regression_building_utils --> setpoint_schedule + regression_building_utils --> utils + regression_building_utils --> conversion_utils + regression_building_utils_test --> base_occupancy + regression_building_utils_test --> proto + regression_building_utils_test --> smart_control_building_pb2 + regression_building_utils_test --> smart_control_reward_pb2 + regression_building_utils_test --> setpoint_schedule + regression_building_utils_test --> utils + regression_building_utils_test --> conversion_utils + regression_building_utils_test --> regression_building_utils + run_command_predictor --> proto + run_command_predictor --> smart_control_building_pb2 + run_command_predictor --> utils + run_command_predictor --> conversion_utils + run_command_predictor --> reader_lib + run_command_predictor_test --> proto + run_command_predictor_test --> smart_control_building_pb2 + run_command_predictor_test --> smart_control_reward_pb2 + run_command_predictor_test --> utils + run_command_predictor_test --> conversion_utils + run_command_predictor_test --> reader_lib + run_command_predictor_test --> run_command_predictor + test_utils --> environment + test_utils --> proto + test_utils --> smart_control_building_pb2 + test_utils --> smart_control_reward_pb2 + test_utils --> simulator + test_utils --> setpoint_schedule + test_utils --> utils + test_utils --> bounded_action_normalizer + test_utils --> conversion_utils + test_utils --> reader_lib + visual_logger --> utils + visual_logger --> building_renderer + writer_lib --> proto + writer_lib --> smart_control_building_pb2 + writer_lib --> smart_control_normalization_pb2 + writer_lib --> smart_control_reward_pb2 diff --git a/poetry.lock b/poetry.lock index efa00d42..90925a60 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.1.2 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.4.1 and should not be changed by hand. [[package]] name = "absl-py" @@ -1706,7 +1706,7 @@ fqdn = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} idna = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} isoduration = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} jsonpointer = {version = ">1.13", optional = true, markers = "extra == \"format-nongpl\""} -jsonschema-specifications = ">=2023.03.6" +jsonschema-specifications = ">=2023.3.6" referencing = ">=0.28.4" rfc3339-validator = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} rfc3986-validator = {version = ">0.1.0", optional = true, markers = "extra == \"format-nongpl\""} @@ -2447,6 +2447,29 @@ files = [ {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, ] +[[package]] +name = "mermaidx" +version = "0.9.5" +description = "Python-native Mermaid diagram converter – no browser, Node.js, or npm required. Renders diagrams to SVG/PNG/PDF using an embedded QuickJS engine and resvg, perfect for documentation automation and CI/CD pipelines." +optional = false +python-versions = ">=3.9" +groups = ["docs"] +files = [ + {file = "mermaidx-0.9.5-py3-none-any.whl", hash = "sha256:46dfbdc7c101bd5395f05bca2f0917c467b9c5d5c3cbec1fbe238c546b673039"}, +] + +[package.dependencies] +quickjs-ng = ">=0.15.1" +resvg-py = ">=0.3.2" +termaid = ">=0.7.1" + +[package.extras] +all = ["fonttools", "mini-racer", "mmdr", "numpy"] +embed = ["fonttools"] +rust = ["mmdr"] +test = ["psutil", "pytest-cov"] +v8engine = ["mini-racer"] + [[package]] name = "mistune" version = "3.1.3" @@ -2902,8 +2925,8 @@ files = [ [package.dependencies] numpy = [ - {version = ">=1.21.4", markers = "python_version >= \"3.10\" and platform_system == \"Darwin\""}, {version = ">=1.21.2", markers = "platform_system != \"Darwin\" and python_version >= \"3.10\""}, + {version = ">=1.21.4", markers = "python_version >= \"3.10\" and platform_system == \"Darwin\""}, {version = ">=1.23.5", markers = "python_version >= \"3.11\""}, ] @@ -3979,6 +4002,36 @@ files = [ [package.dependencies] cffi = {version = "*", markers = "implementation_name == \"pypy\""} +[[package]] +name = "quickjs-ng" +version = "0.16.2.1" +description = "Thin Python wrapper of quickjs-ng" +optional = false +python-versions = "<4.0,>=3.10" +groups = ["docs"] +files = [ + {file = "quickjs_ng-0.16.2.1-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:5edf6aeb394d270ca7193279251a8b3e7e68577aed9f2ede7406a676056d6ffc"}, + {file = "quickjs_ng-0.16.2.1-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7446efb6134226d4d10236363c0b308a877613214ff2d798e4e270a8f22e579d"}, + {file = "quickjs_ng-0.16.2.1-cp310-abi3-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:d65cda8ee4afb8ba0709e6881c0f90f483deb2239845a9a04491024aafc6184d"}, + {file = "quickjs_ng-0.16.2.1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:780bc24ba5f26b9dc6f9c737de9db8f9787c6a0ab72f91e0f778623fefce2d4d"}, + {file = "quickjs_ng-0.16.2.1-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:50721415002975b3c64bf7836e64fd07a9d519396036257e8ef5ef419752c637"}, + {file = "quickjs_ng-0.16.2.1-cp310-abi3-musllinux_1_2_i686.whl", hash = "sha256:2b7a0f0412ea8e5874c659086a5f8b7d171d6ca2990b9c20e047bd11a25fb470"}, + {file = "quickjs_ng-0.16.2.1-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:c131d2fb5c9741ad2da9475807453dc98a31fde1df5f096e4037b1a7ae576025"}, + {file = "quickjs_ng-0.16.2.1-cp310-abi3-win32.whl", hash = "sha256:020eebb22ed98e3bd3ab44dc9225aff0186ee72df8a152d894b7ac55b079e295"}, + {file = "quickjs_ng-0.16.2.1-cp310-abi3-win_amd64.whl", hash = "sha256:7dd5f9fd78917c4c444c52eb2029f51610487bc219f5ca1b2766bcbd98b8afc3"}, + {file = "quickjs_ng-0.16.2.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:7dacabcd25165e07397a19a5dc8877dc537792a6a00d47e4574922ee6ef74778"}, + {file = "quickjs_ng-0.16.2.1-pp310-pypy310_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:64e781335f02005a5df4f30276805c94a7d212d6769cd0118adce716e1012224"}, + {file = "quickjs_ng-0.16.2.1-pp310-pypy310_pp73-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:a089906381c0479a73f14dd46ee31c2ad26874b715e92c130bd08f51637b3b8d"}, + {file = "quickjs_ng-0.16.2.1-pp310-pypy310_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d23daaec0e776f1e7c6fe0c55f396f06ff955635c4cc424e6e586158dca1436f"}, + {file = "quickjs_ng-0.16.2.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:4b2818745645dec00a7659b81788654b2409a102e0e33a452353f6089b6ca807"}, + {file = "quickjs_ng-0.16.2.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:f1c4b9741fca4cd29e0212b293a5d3a9ecda85a87d66df7bcfbcf44bef282fa2"}, + {file = "quickjs_ng-0.16.2.1-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:688942b54540df1bbca2c2c4f67a167df604df17bc76b95857b72507e195a31d"}, + {file = "quickjs_ng-0.16.2.1-pp311-pypy311_pp73-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:27771a34e74aa91fc739a60c6c8c5aa4eb1d38d8ca8a1fe03485bd91d1f27a86"}, + {file = "quickjs_ng-0.16.2.1-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:16e4b3272fd0ed98118570fdf5ac1880ad94a4563221e0c2508c0771c04ef033"}, + {file = "quickjs_ng-0.16.2.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:f275bfd4af674ed4c1becdf0c03c145d834fd9fb775c1c7eb9d162199710cd67"}, + {file = "quickjs_ng-0.16.2.1.tar.gz", hash = "sha256:cc0db5caeee8f93bcbbaf8ee59eefce58d33edc2c6ca340834e98c9520741ba1"}, +] + [[package]] name = "referencing" version = "0.36.2" @@ -4037,6 +4090,74 @@ requests = ">=2.0.0" [package.extras] rsa = ["oauthlib[signedtoken] (>=3.0.0)"] +[[package]] +name = "resvg-py" +version = "0.5.0" +description = "" +optional = false +python-versions = ">=3.10" +groups = ["docs"] +files = [ + {file = "resvg_py-0.5.0-cp310-abi3-android_24_arm64_v8a.whl", hash = "sha256:2715f2b88ce2cf91f57ff37bb34c5909c8007de431d488e9c3ebf6cf2d69c91b"}, + {file = "resvg_py-0.5.0-cp310-abi3-android_24_x86_64.whl", hash = "sha256:9901e2f9ce53e7535d2676123c8d4894bff040f52821e54192605b5dd4fb5af9"}, + {file = "resvg_py-0.5.0-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:9d3f5c2544d6b5f74847513e07e6ab6a70f9e7f0d8a141bc16bd4b0c555f4234"}, + {file = "resvg_py-0.5.0-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:7b43f942157f5d16126e108dab8ab37e4bc2b198099e5f6274b753a3b1ac7b6e"}, + {file = "resvg_py-0.5.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e66216f78c84a27d34ce75f4535d8e26565771be4f1848ddc71e8a7ce78973a"}, + {file = "resvg_py-0.5.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:977921f22b0a3283e6cd121339a2aff51d0df3b542ce7a5f96fa3a87f8d65106"}, + {file = "resvg_py-0.5.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9da8e52d7d5d16b288aa47fa830fd66301a6b6f135f9f37fa9f4854b7a722e6d"}, + {file = "resvg_py-0.5.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:200baa4a01b6779d7b6f3fa31e5eabfc5ab594a1317d75853ee73c5229686599"}, + {file = "resvg_py-0.5.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84f2378ecc7a8e38b03429efaefc816daec1b1970114909a6f973393b297c91b"}, + {file = "resvg_py-0.5.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9ebcc40941811b49001ad4e721aa87f489b74c0132ff3fcbceed97305c944749"}, + {file = "resvg_py-0.5.0-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:7c3e8c2324fc2bcf03c1010b7987adf5ff4ce43e8fc1a7c9b8271cbbcca6ba37"}, + {file = "resvg_py-0.5.0-cp310-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:4a5db1a607059a48f5d4c20c7363e4888e001b11a04465d36e3ca77a511651eb"}, + {file = "resvg_py-0.5.0-cp310-abi3-musllinux_1_2_i686.whl", hash = "sha256:d54a8c85e7d6f4ba55f39c2330c7830d8c98a7dc205ca3c2ca069f9b11cb01c4"}, + {file = "resvg_py-0.5.0-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:feee1ee6c2c0b64018c046a7604240c233c6cf14496e475238370c7d9a9db455"}, + {file = "resvg_py-0.5.0-cp310-abi3-win32.whl", hash = "sha256:45b2e66f76e7649155dc768c3cd1f5a94907d0086c2bde22da14c9ecbf9eda9a"}, + {file = "resvg_py-0.5.0-cp310-abi3-win_amd64.whl", hash = "sha256:1f6b8956c4143dbfe107bcd35799d0dfd778a40a8cd537893c0bf489898a6c3c"}, + {file = "resvg_py-0.5.0-cp310-abi3-win_arm64.whl", hash = "sha256:8016e2006c09953570af466e7674c398c1f255cb00022152b15e18f9e8ca3af8"}, + {file = "resvg_py-0.5.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:5547fc79ee600ee0e40ad01cdeb36140a74e85cfad2722973dae654db3667fcd"}, + {file = "resvg_py-0.5.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:4bd8da85e5332aded549894d7fe4aec6f19a681ecda3385acbfdf1a1c67bc8da"}, + {file = "resvg_py-0.5.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1447c10535c4fa122bb20f702da5d23ad5053cdff831aa2d6f6b482ebab12485"}, + {file = "resvg_py-0.5.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c1ed526890579f8bf1afcf6c17f29c22659196c57b2c760e485f15dfc93dca64"}, + {file = "resvg_py-0.5.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cfe18bc3d36cc885190f450d5f0d26473c5cecb86b28bcb714f7a025e1cfd5c2"}, + {file = "resvg_py-0.5.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b8481cdbaf7fea5dbf2bfe57e86201c6a40193c462e365729185c66849b5966a"}, + {file = "resvg_py-0.5.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:12cdd0349ebd8efaade78f74fc3fc08fcdd3f21f7152fb199a561176a64581bf"}, + {file = "resvg_py-0.5.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c184cad5c3593dbe655ef9f304068fa941646947d94767dbd1afcbf094c8dae5"}, + {file = "resvg_py-0.5.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:75e6822b492c66d85f03a6f2510ac69902ff0509a2a86cd50ef30ebb73c714ea"}, + {file = "resvg_py-0.5.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:1abaadac95daa2907e3fa0f668c90a099d4bfffe0a6fa7cf36d30c607bfd5797"}, + {file = "resvg_py-0.5.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:92cdc56331224980b85c1604c7da9bef37737657cf123d88e920ca10a07c6a11"}, + {file = "resvg_py-0.5.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:403fed36186bbe4ef4eb3ec1d5fabe003a1c90ad71f145ca0e9b9f7f80e70696"}, + {file = "resvg_py-0.5.0-cp314-cp314t-win32.whl", hash = "sha256:c7fad8f8c28e770da8783dc429bfa0d71f2abe740be2f8d726308a669a392919"}, + {file = "resvg_py-0.5.0-cp314-cp314t-win_amd64.whl", hash = "sha256:b0284c50c7e3b009e97e5c64a2d31e02b8bb36cd066d947fda9e43f480ca19f7"}, + {file = "resvg_py-0.5.0-cp314-cp314t-win_arm64.whl", hash = "sha256:5c026b67b79604f32865e132ef68ff25633b8668e35b29ad412fcef906c0c39a"}, + {file = "resvg_py-0.5.0-cp315-abi3.abi3t-macosx_10_12_x86_64.whl", hash = "sha256:51fa0564ad1a3e82307c1aed7222b66edeb3b8c595251709f929b0a819109da1"}, + {file = "resvg_py-0.5.0-cp315-abi3.abi3t-macosx_11_0_arm64.whl", hash = "sha256:1f91870d5315168093d546777fccece4406ad2053c1908f5ceab3c39f2c49e7c"}, + {file = "resvg_py-0.5.0-cp315-abi3.abi3t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d597eef189a8e728c8026417ea51b61720c83d2ed262b508362c4309cd57bc8a"}, + {file = "resvg_py-0.5.0-cp315-abi3.abi3t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5befa08450f4248b9670e054f446065d0fc33c1a4ff302baaacc205ddee97b3c"}, + {file = "resvg_py-0.5.0-cp315-abi3.abi3t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:17640c3bb2f4498a6aa61d256ec21257b32e68fd2564b509c4919f5171561b99"}, + {file = "resvg_py-0.5.0-cp315-abi3.abi3t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fca2d6b28938e7fa7553a7f9c5f330b908c7fd8c50f4fe3d175ddcc5e958879"}, + {file = "resvg_py-0.5.0-cp315-abi3.abi3t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c4cc14543c29b753db751eace1dadcf0d58d77aa58be5370393bcfbcc1cbc2f"}, + {file = "resvg_py-0.5.0-cp315-abi3.abi3t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:869e4ab0b8f4a403d6fac93d2c4e3df79488b9f6fd053ba0f4fa4ed45d456fe5"}, + {file = "resvg_py-0.5.0-cp315-abi3.abi3t-musllinux_1_2_aarch64.whl", hash = "sha256:f322d7bf0ddab60156d6cf1883718b726c1c210bd7623e253756986798c5c83e"}, + {file = "resvg_py-0.5.0-cp315-abi3.abi3t-musllinux_1_2_armv7l.whl", hash = "sha256:55d65708e2dee0de77cccc0d03d21cd148a491c2bc6ef25542081db8eee74923"}, + {file = "resvg_py-0.5.0-cp315-abi3.abi3t-musllinux_1_2_i686.whl", hash = "sha256:04b32b1e2d7a848124d9b96bc7446ceae71ea144d950007e93c4a382f7ee134c"}, + {file = "resvg_py-0.5.0-cp315-abi3.abi3t-musllinux_1_2_x86_64.whl", hash = "sha256:7fc91829a4d12d80071e9f4f191a9f459adf310919cbdf1377711b30dfa996b5"}, + {file = "resvg_py-0.5.0-cp315-abi3.abi3t-win32.whl", hash = "sha256:f0c834262db96eac4d5767e1025c21efefa0ed0359bded8dfd4b79fc7549694f"}, + {file = "resvg_py-0.5.0-cp315-abi3.abi3t-win_amd64.whl", hash = "sha256:011111a4c3f46d409e989fe88ec783a3ffae1f3877092ab0351aaf2167fe399d"}, + {file = "resvg_py-0.5.0-cp315-abi3.abi3t-win_arm64.whl", hash = "sha256:66e5a7699f2b00024ed7e95ec53df05bb3da277ee5bc86f867d487e310e4d392"}, + {file = "resvg_py-0.5.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7cf22e9feaa41ac4eb781ec266b685d001bd02dccd9c28b74ca9ed2cc755891c"}, + {file = "resvg_py-0.5.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3651dfe44c05bf3c594d2f074af06ba49a1adb0c11ed2e62f0a0ae5647d4e689"}, + {file = "resvg_py-0.5.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e3ae9f72f7a265953c3cec67dbb849d76fe9391658820a2fd05769d858869fdd"}, + {file = "resvg_py-0.5.0-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:efa682ad33f8d2fa22cc1034e606fed5eee09b516c09a889b01ef07ce80a07fe"}, + {file = "resvg_py-0.5.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:326358d1a83fba3c2c373576f15ad2b4f5bc6e90aad167682e39e3e15ea72c31"}, + {file = "resvg_py-0.5.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4beec3f2a6c59b8c3f2fa45dd167392c8074a326debad9277cb305a514546be8"}, + {file = "resvg_py-0.5.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:a9f5583cf9f3d806ee802b948bf0632acd680661ca4f6e8007eac75ac3f09e1e"}, + {file = "resvg_py-0.5.0-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl", hash = "sha256:c113a655f558cd1d62616a459ad7ad61072cafdb3c997c9d8f83077a0d186af9"}, + {file = "resvg_py-0.5.0-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:e9bbb65e6a969fc792b6bcff7d7f203ab58775475cf30db4577a05f62be72904"}, + {file = "resvg_py-0.5.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:c2a493b6ada049cdee60b5ebe81f1eec8d36766c38962dadfd8d0ec8e5201cae"}, + {file = "resvg_py-0.5.0.tar.gz", hash = "sha256:6d3bf8e866b4e129524d9432a809138b2d100931d8d635bc81294002abcdfd46"}, +] + [[package]] name = "rfc3339-validator" version = "0.1.4" @@ -4513,7 +4634,7 @@ ml-dtypes = ">=0.3.1,<0.4.0" numpy = ">=1.23.5,<2.0.0" opt-einsum = ">=2.3.2" packaging = "*" -protobuf = ">=3.20.3,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0dev" +protobuf = ">=3.20.3,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0.dev0" setuptools = "*" six = ">=1.12.0" tensorboard = ">=2.15,<2.16" @@ -4556,7 +4677,7 @@ ml-dtypes = ">=0.3.1,<0.4.0" numpy = ">=1.23.5,<2.0.0" opt-einsum = ">=2.3.2" packaging = "*" -protobuf = ">=3.20.3,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0dev" +protobuf = ">=3.20.3,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0.dev0" setuptools = "*" six = ">=1.12.0" tensorboard = ">=2.15,<2.16" @@ -4608,7 +4729,7 @@ ml-dtypes = ">=0.3.1,<0.4.0" numpy = ">=1.23.5,<2.0.0" opt-einsum = ">=2.3.2" packaging = "*" -protobuf = ">=3.20.3,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0dev" +protobuf = ">=3.20.3,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0.dev0" setuptools = "*" six = ">=1.12.0" tensorboard = ">=2.15,<2.16" @@ -4678,6 +4799,24 @@ six = ">=1.10.0" jax = ["jax", "jaxlib"] tfds = ["tensorflow-datasets (>=2.2.0)"] +[[package]] +name = "termaid" +version = "0.8.0" +description = "Render Mermaid diagrams in your terminal or Python app" +optional = false +python-versions = ">=3.9" +groups = ["docs"] +files = [ + {file = "termaid-0.8.0-py3-none-any.whl", hash = "sha256:3b572ed705bbca77eeffcbc1906a73f1c8119613a0552bb2ff7463a2672b1cb3"}, + {file = "termaid-0.8.0.tar.gz", hash = "sha256:58c4b8960bd4382b1b13c79f1beb9a53ebcbc58531fc8ecea8c64a307112f377"}, +] + +[package.extras] +dev = ["pytest (>=7.0)", "pytest-snapshot"] +rich = ["rich (>=13.0)"] +textual = ["textual (>=0.40)"] +tui = ["textual (>=0.40)"] + [[package]] name = "termcolor" version = "3.1.0" @@ -5187,4 +5326,4 @@ files = [ [metadata] lock-version = "2.1" python-versions = ">=3.10,<3.12" -content-hash = "6f4ccbc80647b55d4eaa35df3f9e40be8342b9e7c4556a55530af455170c358a" +content-hash = "12aba4be6481454c69c324ea6fbf09f82f0aa2fcc91250389209dcf7907d195b" diff --git a/pyproject.toml b/pyproject.toml index f8a05d22..da96a9a8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -55,6 +55,7 @@ mkdocstrings = "^0.29.1" mkdocstrings-python = "^1.16.10" mkdocs-material = "^9.6.14" mkdocs-autorefs = "^1.4.2" +mermaidx = "^0.9.5" [tool.poetry.group.notebooks.dependencies] jupyter = "^1.1.1"