ansys-fluent-core 0.14.dev0__py3-none-any.whl → 0.14.dev2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ansys-fluent-core might be problematic. Click here for more details.
- ansys/fluent/core/__init__.py +12 -12
- ansys/fluent/core/_version.py +1 -1
- ansys/fluent/core/docs/README.rst +26 -26
- ansys/fluent/core/examples/downloads.py +28 -16
- ansys/fluent/core/filereader/case_file.py +20 -11
- ansys/fluent/core/fluent_connection.py +21 -1
- ansys/fluent/core/launcher/fluent_container.py +1 -1
- ansys/fluent/core/launcher/fluent_launcher_options.json +10 -0
- ansys/fluent/core/launcher/launcher.py +29 -15
- ansys/fluent/core/meshing/tui_231.py +7642 -7642
- ansys/fluent/core/services/datamodel_se.py +142 -110
- ansys/fluent/core/services/field_data.py +278 -29
- ansys/fluent/core/services/meshing_queries.py +1795 -0
- ansys/fluent/core/services/settings.py +1 -1
- ansys/fluent/core/services/svar.py +606 -0
- ansys/fluent/core/session_pure_meshing.py +4 -5
- ansys/fluent/core/solver/flobject.py +59 -2
- ansys/fluent/core/solver/settings_222/change_type.py +1 -1
- ansys/fluent/core/solver/settings_222/clear_generated_data.py +1 -1
- ansys/fluent/core/solver/settings_222/compute_2.py +1 -1
- ansys/fluent/core/solver/settings_222/delete_design_points.py +1 -1
- ansys/fluent/core/solver/settings_222/position_1.py +1 -1
- ansys/fluent/core/solver/settings_222/setup_unsteady_statistics.py +1 -1
- ansys/fluent/core/solver/settings_222/target.py +1 -1
- ansys/fluent/core/solver/settings_222/up_vector.py +1 -1
- ansys/fluent/core/solver/settings_222/update_selected.py +1 -1
- ansys/fluent/core/solver/settings_222/write_1.py +1 -1
- ansys/fluent/core/solver/settings_222/write_views.py +1 -1
- ansys/fluent/core/solver/settings_231/abaqus.py +2 -2
- ansys/fluent/core/solver/settings_231/activate_cell_zone.py +1 -1
- ansys/fluent/core/solver/settings_231/calculate_patch.py +2 -2
- ansys/fluent/core/solver/settings_231/change_type.py +1 -1
- ansys/fluent/core/solver/settings_231/clear_generated_data.py +1 -1
- ansys/fluent/core/solver/settings_231/compute_1.py +1 -1
- ansys/fluent/core/solver/settings_231/convert_skewed_cells_1.py +1 -1
- ansys/fluent/core/solver/settings_231/custom_heat_flux.py +1 -1
- ansys/fluent/core/solver/settings_231/customize_fmg_initialization.py +2 -2
- ansys/fluent/core/solver/settings_231/delete_design_points.py +1 -1
- ansys/fluent/core/solver/settings_231/export_1.py +1 -1
- ansys/fluent/core/solver/settings_231/export_modifications.py +1 -1
- ansys/fluent/core/solver/settings_231/film_heat_transfer.py +1 -1
- ansys/fluent/core/solver/settings_231/film_mass_flow.py +1 -1
- ansys/fluent/core/solver/settings_231/forces.py +4 -4
- ansys/fluent/core/solver/settings_231/heat_transfer_1.py +1 -1
- ansys/fluent/core/solver/settings_231/heat_transfer_sensible.py +1 -1
- ansys/fluent/core/solver/settings_231/mass_flow_1.py +1 -1
- ansys/fluent/core/solver/settings_231/mechanical_apdl.py +1 -1
- ansys/fluent/core/solver/settings_231/mechanical_apdl_input.py +2 -2
- ansys/fluent/core/solver/settings_231/modified_setting.py +1 -1
- ansys/fluent/core/solver/settings_231/moments.py +2 -2
- ansys/fluent/core/solver/settings_231/number_density.py +2 -2
- ansys/fluent/core/solver/settings_231/particle_summary.py +1 -1
- ansys/fluent/core/solver/settings_231/position_1.py +1 -1
- ansys/fluent/core/solver/settings_231/pressure_work_1.py +1 -1
- ansys/fluent/core/solver/settings_231/print_histogram.py +1 -1
- ansys/fluent/core/solver/settings_231/projected_surface_area.py +2 -2
- ansys/fluent/core/solver/settings_231/rad_heat_trans.py +1 -1
- ansys/fluent/core/solver/settings_231/read_journal.py +1 -1
- ansys/fluent/core/solver/settings_231/rotate.py +2 -2
- ansys/fluent/core/solver/settings_231/sample_1.py +4 -4
- ansys/fluent/core/solver/settings_231/set_ambient_color.py +1 -1
- ansys/fluent/core/solver/settings_231/set_light.py +2 -2
- ansys/fluent/core/solver/settings_231/setup_unsteady_statistics.py +1 -1
- ansys/fluent/core/solver/settings_231/surface_integrals.py +1 -1
- ansys/fluent/core/solver/settings_231/taitherm.py +1 -1
- ansys/fluent/core/solver/settings_231/target.py +1 -1
- ansys/fluent/core/solver/settings_231/translate.py +1 -1
- ansys/fluent/core/solver/settings_231/up_vector.py +1 -1
- ansys/fluent/core/solver/settings_231/update_selected.py +1 -1
- ansys/fluent/core/solver/settings_231/viscous_work.py +1 -1
- ansys/fluent/core/solver/settings_231/volume_integrals.py +1 -1
- ansys/fluent/core/solver/settings_231/write_1.py +1 -1
- ansys/fluent/core/solver/settings_231/write_histogram.py +1 -1
- ansys/fluent/core/solver/settings_231/write_views.py +1 -1
- ansys/fluent/core/solver/tui_231.py +36423 -36423
- {ansys_fluent_core-0.14.dev0.dist-info → ansys_fluent_core-0.14.dev2.dist-info}/METADATA +30 -30
- {ansys_fluent_core-0.14.dev0.dist-info → ansys_fluent_core-0.14.dev2.dist-info}/RECORD +80 -78
- {ansys_fluent_core-0.14.dev0.dist-info → ansys_fluent_core-0.14.dev2.dist-info}/LICENSE +0 -0
- {ansys_fluent_core-0.14.dev0.dist-info → ansys_fluent_core-0.14.dev2.dist-info}/WHEEL +0 -0
- {ansys_fluent_core-0.14.dev0.dist-info → ansys_fluent_core-0.14.dev2.dist-info}/top_level.txt +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"""Wrappers over StateEngine based datamodel gRPC service of Fluent."""
|
|
2
2
|
from enum import Enum
|
|
3
|
+
import functools
|
|
3
4
|
import itertools
|
|
4
5
|
import logging
|
|
5
6
|
from typing import Any, Callable, Dict, Iterator, List, Tuple, Type
|
|
@@ -10,6 +11,7 @@ import grpc
|
|
|
10
11
|
from ansys.api.fluent.v0 import datamodel_se_pb2 as DataModelProtoModule
|
|
11
12
|
from ansys.api.fluent.v0 import datamodel_se_pb2_grpc as DataModelGrpcModule
|
|
12
13
|
from ansys.api.fluent.v0.variant_pb2 import Variant
|
|
14
|
+
import ansys.fluent.core as pyfluent
|
|
13
15
|
from ansys.fluent.core.data_model_cache import DataModelCache
|
|
14
16
|
from ansys.fluent.core.services.error_handler import catch_grpc_error
|
|
15
17
|
from ansys.fluent.core.services.interceptors import BatchInterceptor, TracingInterceptor
|
|
@@ -273,6 +275,42 @@ class PyCallableStateObject:
|
|
|
273
275
|
return self.get_state()
|
|
274
276
|
|
|
275
277
|
|
|
278
|
+
class EventSubscription:
|
|
279
|
+
"""EventSubscription class for any datamodel event."""
|
|
280
|
+
|
|
281
|
+
def __init__(
|
|
282
|
+
self,
|
|
283
|
+
service: DatamodelService,
|
|
284
|
+
request: DataModelProtoModule.SubscribeEventsRequest,
|
|
285
|
+
):
|
|
286
|
+
"""Subscribe to a datamodel event."""
|
|
287
|
+
self._service = service
|
|
288
|
+
response = service.subscribe_events(request)
|
|
289
|
+
response = response.response[0]
|
|
290
|
+
if response.status != DataModelProtoModule.STATUS_SUBSCRIBED:
|
|
291
|
+
raise RuntimeError(f"Failed to subscribe event: {request}!")
|
|
292
|
+
self.status = response.status
|
|
293
|
+
self.tag = response.tag
|
|
294
|
+
self._service.events[self.tag] = self
|
|
295
|
+
|
|
296
|
+
def unsubscribe(self):
|
|
297
|
+
"""Unsubscribe the datamodel event."""
|
|
298
|
+
if self.status == DataModelProtoModule.STATUS_SUBSCRIBED:
|
|
299
|
+
self._service.event_streaming.unregister_callback(self.tag)
|
|
300
|
+
request = DataModelProtoModule.UnsubscribeEventsRequest()
|
|
301
|
+
request.tag.append(self.tag)
|
|
302
|
+
response = self._service.unsubscribe_events(request)
|
|
303
|
+
response = response.response[0]
|
|
304
|
+
if response.status != DataModelProtoModule.STATUS_UNSUBSCRIBED:
|
|
305
|
+
raise RuntimeError(f"Failed to unsubscribe event: {request}!")
|
|
306
|
+
self.status = response.status
|
|
307
|
+
self._service.events.pop(self.tag, None)
|
|
308
|
+
|
|
309
|
+
def __del__(self):
|
|
310
|
+
"""Unsubscribe the datamodel event."""
|
|
311
|
+
self.unsubscribe()
|
|
312
|
+
|
|
313
|
+
|
|
276
314
|
class PyStateContainer(PyCallableStateObject):
|
|
277
315
|
"""Object class using StateEngine based DatamodelService as backend. Use
|
|
278
316
|
this class instead of directly calling DatamodelService's method.
|
|
@@ -306,6 +344,7 @@ class PyStateContainer(PyCallableStateObject):
|
|
|
306
344
|
self.path = []
|
|
307
345
|
else:
|
|
308
346
|
self.path = path
|
|
347
|
+
self.cached_attrs = {}
|
|
309
348
|
|
|
310
349
|
docstring = None
|
|
311
350
|
|
|
@@ -337,6 +376,28 @@ class PyStateContainer(PyCallableStateObject):
|
|
|
337
376
|
|
|
338
377
|
setState = set_state
|
|
339
378
|
|
|
379
|
+
def _get_remote_attr(self, attrib: str) -> Any:
|
|
380
|
+
request = DataModelProtoModule.GetAttributeValueRequest()
|
|
381
|
+
request.rules = self.rules
|
|
382
|
+
request.path = convert_path_to_se_path(self.path)
|
|
383
|
+
request.attribute = attrib
|
|
384
|
+
response = self.service.get_attribute_value(request)
|
|
385
|
+
return _convert_variant_to_value(response.result)
|
|
386
|
+
|
|
387
|
+
def _get_cached_attr(self, attrib: str) -> Any:
|
|
388
|
+
cached_val = self.cached_attrs.get(attrib)
|
|
389
|
+
if cached_val is None:
|
|
390
|
+
cached_val = self._get_remote_attr(attrib)
|
|
391
|
+
try: # will fail for Fluent 23.1 or before
|
|
392
|
+
self.add_on_attribute_changed(
|
|
393
|
+
attrib,
|
|
394
|
+
functools.partial(dict.__setitem__, self.cached_attrs, attrib),
|
|
395
|
+
)
|
|
396
|
+
self.cached_attrs[attrib] = cached_val
|
|
397
|
+
except Exception:
|
|
398
|
+
pass
|
|
399
|
+
return cached_val
|
|
400
|
+
|
|
340
401
|
def get_attr(self, attrib: str) -> Any:
|
|
341
402
|
"""Get attribute value of the current object.
|
|
342
403
|
|
|
@@ -350,12 +411,9 @@ class PyStateContainer(PyCallableStateObject):
|
|
|
350
411
|
Any
|
|
351
412
|
Value of the attribute.
|
|
352
413
|
"""
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
request.attribute = attrib
|
|
357
|
-
response = self.service.get_attribute_value(request)
|
|
358
|
-
return _convert_variant_to_value(response.result)
|
|
414
|
+
if pyfluent.DATAMODEL_USE_ATTR_CACHE:
|
|
415
|
+
return self._get_cached_attr(attrib)
|
|
416
|
+
return self._get_remote_attr(attrib)
|
|
359
417
|
|
|
360
418
|
getAttribValue = get_attr
|
|
361
419
|
|
|
@@ -388,41 +446,58 @@ class PyStateContainer(PyCallableStateObject):
|
|
|
388
446
|
|
|
389
447
|
docstring = None
|
|
390
448
|
|
|
449
|
+
def add_on_attribute_changed(
|
|
450
|
+
self, attribute: str, cb: Callable
|
|
451
|
+
) -> EventSubscription:
|
|
452
|
+
"""Register a callback for when an attribute is changed
|
|
391
453
|
|
|
392
|
-
|
|
393
|
-
|
|
454
|
+
Parameters
|
|
455
|
+
----------
|
|
456
|
+
attribute : str
|
|
457
|
+
attribute name
|
|
458
|
+
cb : Callable
|
|
459
|
+
Callback function
|
|
394
460
|
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
self.tag = response.tag
|
|
408
|
-
self._service.events[self.tag] = self
|
|
461
|
+
Returns
|
|
462
|
+
-------
|
|
463
|
+
EventSubscription
|
|
464
|
+
EventSubscription instance which can be used to unregister the callback
|
|
465
|
+
"""
|
|
466
|
+
request = DataModelProtoModule.SubscribeEventsRequest()
|
|
467
|
+
e = request.eventrequest.add(rules=self.rules)
|
|
468
|
+
e.attributeChangedEventRequest.path = convert_path_to_se_path(self.path)
|
|
469
|
+
e.attributeChangedEventRequest.attribute = attribute
|
|
470
|
+
subscription = EventSubscription(self.service, request)
|
|
471
|
+
self.service.event_streaming.register_callback(subscription.tag, self, cb)
|
|
472
|
+
return subscription
|
|
409
473
|
|
|
410
|
-
def
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
request = DataModelProtoModule.UnsubscribeEventsRequest()
|
|
415
|
-
request.tag.append(self.tag)
|
|
416
|
-
response = self._service.unsubscribe_events(request)
|
|
417
|
-
response = response.response[0]
|
|
418
|
-
if response.status != DataModelProtoModule.STATUS_UNSUBSCRIBED:
|
|
419
|
-
raise RuntimeError(f"Failed to unsubscribe event: {request}!")
|
|
420
|
-
self.status = response.status
|
|
421
|
-
self._service.events.pop(self.tag, None)
|
|
474
|
+
def add_on_command_attribute_changed(
|
|
475
|
+
self, command: str, attribute: str, cb: Callable
|
|
476
|
+
) -> EventSubscription:
|
|
477
|
+
"""Register a callback for when an attribute is changed
|
|
422
478
|
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
479
|
+
Parameters
|
|
480
|
+
----------
|
|
481
|
+
command : str
|
|
482
|
+
command name
|
|
483
|
+
attribute : str
|
|
484
|
+
attribute name
|
|
485
|
+
cb : Callable
|
|
486
|
+
Callback function
|
|
487
|
+
|
|
488
|
+
Returns
|
|
489
|
+
-------
|
|
490
|
+
EventSubscription
|
|
491
|
+
EventSubscription instance which can be used to unregister the callback
|
|
492
|
+
"""
|
|
493
|
+
request = DataModelProtoModule.SubscribeEventsRequest()
|
|
494
|
+
e = request.eventrequest.add(rules=self.rules)
|
|
495
|
+
e.commandAttributeChangedEventRequest.path = convert_path_to_se_path(self.path)
|
|
496
|
+
e.commandAttributeChangedEventRequest.command = command
|
|
497
|
+
e.commandAttributeChangedEventRequest.attribute = attribute
|
|
498
|
+
subscription = EventSubscription(self.service, request)
|
|
499
|
+
self.service.event_streaming.register_callback(subscription.tag, self, cb)
|
|
500
|
+
return subscription
|
|
426
501
|
|
|
427
502
|
|
|
428
503
|
class PyMenu(PyStateContainer):
|
|
@@ -539,8 +614,8 @@ class PyMenu(PyStateContainer):
|
|
|
539
614
|
self.service.event_streaming.register_callback(subscription.tag, self, cb)
|
|
540
615
|
return subscription
|
|
541
616
|
|
|
542
|
-
def
|
|
543
|
-
"""Register a callback for when the object is
|
|
617
|
+
def add_on_deleted(self, cb: Callable) -> EventSubscription:
|
|
618
|
+
"""Register a callback for when the object is deleted.
|
|
544
619
|
|
|
545
620
|
Parameters
|
|
546
621
|
----------
|
|
@@ -554,13 +629,13 @@ class PyMenu(PyStateContainer):
|
|
|
554
629
|
"""
|
|
555
630
|
request = DataModelProtoModule.SubscribeEventsRequest()
|
|
556
631
|
e = request.eventrequest.add(rules=self.rules)
|
|
557
|
-
e.
|
|
632
|
+
e.deletedEventRequest.path = convert_path_to_se_path(self.path)
|
|
558
633
|
subscription = EventSubscription(self.service, request)
|
|
559
634
|
self.service.event_streaming.register_callback(subscription.tag, self, cb)
|
|
560
635
|
return subscription
|
|
561
636
|
|
|
562
|
-
def
|
|
563
|
-
"""Register a callback for when the object is
|
|
637
|
+
def add_on_changed(self, cb: Callable) -> EventSubscription:
|
|
638
|
+
"""Register a callback for when the object is modified.
|
|
564
639
|
|
|
565
640
|
Parameters
|
|
566
641
|
----------
|
|
@@ -574,20 +649,16 @@ class PyMenu(PyStateContainer):
|
|
|
574
649
|
"""
|
|
575
650
|
request = DataModelProtoModule.SubscribeEventsRequest()
|
|
576
651
|
e = request.eventrequest.add(rules=self.rules)
|
|
577
|
-
e.
|
|
652
|
+
e.modifiedEventRequest.path = convert_path_to_se_path(self.path)
|
|
578
653
|
subscription = EventSubscription(self.service, request)
|
|
579
654
|
self.service.event_streaming.register_callback(subscription.tag, self, cb)
|
|
580
655
|
return subscription
|
|
581
656
|
|
|
582
|
-
def
|
|
583
|
-
|
|
584
|
-
) -> EventSubscription:
|
|
585
|
-
"""Register a callback for when the object is affected at child type
|
|
657
|
+
def add_on_affected(self, cb: Callable) -> EventSubscription:
|
|
658
|
+
"""Register a callback for when the object is affected.
|
|
586
659
|
|
|
587
660
|
Parameters
|
|
588
661
|
----------
|
|
589
|
-
child_type : str
|
|
590
|
-
child type
|
|
591
662
|
cb : Callable
|
|
592
663
|
Callback function
|
|
593
664
|
|
|
@@ -599,47 +670,19 @@ class PyMenu(PyStateContainer):
|
|
|
599
670
|
request = DataModelProtoModule.SubscribeEventsRequest()
|
|
600
671
|
e = request.eventrequest.add(rules=self.rules)
|
|
601
672
|
e.affectedEventRequest.path = convert_path_to_se_path(self.path)
|
|
602
|
-
e.affectedEventRequest.subtype = child_type
|
|
603
|
-
subscription = EventSubscription(self.service, request)
|
|
604
|
-
self.service.event_streaming.register_callback(subscription.tag, self, cb)
|
|
605
|
-
return subscription
|
|
606
|
-
|
|
607
|
-
def add_on_attribute_changed(
|
|
608
|
-
self, attribute: str, cb: Callable
|
|
609
|
-
) -> EventSubscription:
|
|
610
|
-
"""Register a callback for when an attribute is changed
|
|
611
|
-
|
|
612
|
-
Parameters
|
|
613
|
-
----------
|
|
614
|
-
attribute : str
|
|
615
|
-
attribute name
|
|
616
|
-
cb : Callable
|
|
617
|
-
Callback function
|
|
618
|
-
|
|
619
|
-
Returns
|
|
620
|
-
-------
|
|
621
|
-
EventSubscription
|
|
622
|
-
EventSubscription instance which can be used to unregister the callback
|
|
623
|
-
"""
|
|
624
|
-
request = DataModelProtoModule.SubscribeEventsRequest()
|
|
625
|
-
e = request.eventrequest.add(rules=self.rules)
|
|
626
|
-
e.attributeChangedEventRequest.path = convert_path_to_se_path(self.path)
|
|
627
|
-
e.attributeChangedEventRequest.attribute = attribute
|
|
628
673
|
subscription = EventSubscription(self.service, request)
|
|
629
674
|
self.service.event_streaming.register_callback(subscription.tag, self, cb)
|
|
630
675
|
return subscription
|
|
631
676
|
|
|
632
|
-
def
|
|
633
|
-
self,
|
|
677
|
+
def add_on_affected_at_type_path(
|
|
678
|
+
self, child_type: str, cb: Callable
|
|
634
679
|
) -> EventSubscription:
|
|
635
|
-
"""Register a callback for when
|
|
680
|
+
"""Register a callback for when the object is affected at child type
|
|
636
681
|
|
|
637
682
|
Parameters
|
|
638
683
|
----------
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
attribute : str
|
|
642
|
-
attribute name
|
|
684
|
+
child_type : str
|
|
685
|
+
child type
|
|
643
686
|
cb : Callable
|
|
644
687
|
Callback function
|
|
645
688
|
|
|
@@ -650,9 +693,8 @@ class PyMenu(PyStateContainer):
|
|
|
650
693
|
"""
|
|
651
694
|
request = DataModelProtoModule.SubscribeEventsRequest()
|
|
652
695
|
e = request.eventrequest.add(rules=self.rules)
|
|
653
|
-
e.
|
|
654
|
-
e.
|
|
655
|
-
e.commandAttributeChangedEventRequest.attribute = attribute
|
|
696
|
+
e.affectedEventRequest.path = convert_path_to_se_path(self.path)
|
|
697
|
+
e.affectedEventRequest.subtype = child_type
|
|
656
698
|
subscription = EventSubscription(self.service, request)
|
|
657
699
|
self.service.event_streaming.register_callback(subscription.tag, self, cb)
|
|
658
700
|
return subscription
|
|
@@ -712,31 +754,6 @@ class PyParameter(PyStateContainer):
|
|
|
712
754
|
self.service.event_streaming.register_callback(subscription.tag, self, cb)
|
|
713
755
|
return subscription
|
|
714
756
|
|
|
715
|
-
def add_on_attribute_changed(
|
|
716
|
-
self, attribute: str, cb: Callable
|
|
717
|
-
) -> EventSubscription:
|
|
718
|
-
"""Register a callback for when an attribute is changed
|
|
719
|
-
|
|
720
|
-
Parameters
|
|
721
|
-
----------
|
|
722
|
-
attribute : str
|
|
723
|
-
attribute name
|
|
724
|
-
cb : Callable
|
|
725
|
-
Callback function
|
|
726
|
-
|
|
727
|
-
Returns
|
|
728
|
-
-------
|
|
729
|
-
EventSubscription
|
|
730
|
-
EventSubscription instance which can be used to unregister the callback
|
|
731
|
-
"""
|
|
732
|
-
request = DataModelProtoModule.SubscribeEventsRequest()
|
|
733
|
-
e = request.eventrequest.add(rules=self.rules)
|
|
734
|
-
e.attributeChangedEventRequest.path = convert_path_to_se_path(self.path)
|
|
735
|
-
e.attributeChangedEventRequest.attribute = attribute
|
|
736
|
-
subscription = EventSubscription(self.service, request)
|
|
737
|
-
self.service.event_streaming.register_callback(subscription.tag, self, cb)
|
|
738
|
-
return subscription
|
|
739
|
-
|
|
740
757
|
|
|
741
758
|
def _bool_value_if_none(val, default):
|
|
742
759
|
if isinstance(val, bool) or val is None:
|
|
@@ -1145,6 +1162,21 @@ class PyCommandArguments(PyStateContainer):
|
|
|
1145
1162
|
py_class = mode.value[1]
|
|
1146
1163
|
return py_class(self, attr, self.service, self.rules, self.path, arg)
|
|
1147
1164
|
|
|
1165
|
+
def get_attr(self, attrib: str) -> Any:
|
|
1166
|
+
"""Get attribute value of the current object.
|
|
1167
|
+
|
|
1168
|
+
Parameters
|
|
1169
|
+
----------
|
|
1170
|
+
attrib : str
|
|
1171
|
+
Name of the attribute.
|
|
1172
|
+
|
|
1173
|
+
Returns
|
|
1174
|
+
-------
|
|
1175
|
+
Any
|
|
1176
|
+
Value of the attribute.
|
|
1177
|
+
"""
|
|
1178
|
+
return self._get_remote_attr(attrib)
|
|
1179
|
+
|
|
1148
1180
|
|
|
1149
1181
|
class PyTextualCommandArgumentsSubItem(PyCommandArgumentsSubItem, PyTextual):
|
|
1150
1182
|
"""Class representing textual command argument in datamodel."""
|