.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples/cache/plot_memory_cache.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_examples_cache_plot_memory_cache.py: Memory full cache ================= This example shows how to manipulate a :class:`.MemoryFullCache` object. .. GENERATED FROM PYTHON SOURCE LINES 26-34 .. code-block:: default from __future__ import annotations from gemseo import configure_logger from gemseo.caches.memory_full_cache import MemoryFullCache from numpy import array configure_logger() .. rst-class:: sphx-glr-script-out .. code-block:: none .. GENERATED FROM PYTHON SOURCE LINES 35-39 Import ------ First, we import the `array` and the :class:`MemoryError` classes. .. GENERATED FROM PYTHON SOURCE LINES 42-53 Create ------ We can create an instance of the :class:`.MemoryFullCache` class. We can then print it, and we can see it is empty. .. warning:: The :class:`.MemoryFullCache` relies on some multiprocessing features. When working on Windows, the execution of scripts containing instances of :class:`.MemoryFullCache` must be protected by an ``if __name__ == '__main__':`` statement. .. GENERATED FROM PYTHON SOURCE LINES 53-57 .. code-block:: default cache = MemoryFullCache() print(cache) .. rst-class:: sphx-glr-script-out .. code-block:: none Name: MemoryFullCache Type: MemoryFullCache Tolerance: 0.0 Input names: [] Output names: [] Length: 0 .. GENERATED FROM PYTHON SOURCE LINES 58-64 Cache ----- We can manually add data into the cache. However, it has to be noted that most of the time a cache is attached to an :class:`.MDODiscipline`. Then, the cache feeding has not to be performed explicitly by the user. .. GENERATED FROM PYTHON SOURCE LINES 64-69 .. code-block:: default cache[{"x": array([1.0])}] = ({"y": array([2.0])}, None) cache[{"x": array([2.0])}] = ({"y": array([3.0])}, None) print(cache) .. rst-class:: sphx-glr-script-out .. code-block:: none Name: MemoryFullCache Type: MemoryFullCache Tolerance: 0.0 Input names: ['x'] Output names: ['y'] Length: 2 .. GENERATED FROM PYTHON SOURCE LINES 70-75 Get all data ------------ Once the cache has been filled, the user can get the length of the cache. The user can also print all the data contained inside the cache. .. GENERATED FROM PYTHON SOURCE LINES 75-79 .. code-block:: default print(len(cache)) for data in cache: print(data) .. rst-class:: sphx-glr-script-out .. code-block:: none 2 CacheEntry(inputs={'x': array([1.])}, outputs={'y': array([2.])}, jacobian=None) CacheEntry(inputs={'x': array([2.])}, outputs={'y': array([3.])}, jacobian=None) .. GENERATED FROM PYTHON SOURCE LINES 80-85 Get last cached data -------------------- The user can access the last entry (inputs or outputs) which have been entered in the cache. .. GENERATED FROM PYTHON SOURCE LINES 85-90 .. code-block:: default last_entry = cache.last_entry print(last_entry.inputs) print(last_entry.outputs) .. rst-class:: sphx-glr-script-out .. code-block:: none {'x': array([2.])} {'y': array([3.])} .. GENERATED FROM PYTHON SOURCE LINES 91-95 Clear ----- The user can clear an cache of all its entries by using the :meth:`.MemoryFullCache.clear` method: .. GENERATED FROM PYTHON SOURCE LINES 95-97 .. code-block:: default cache.clear() print(cache) .. rst-class:: sphx-glr-script-out .. code-block:: none Name: MemoryFullCache Type: MemoryFullCache Tolerance: 0.0 Input names: [] Output names: [] Length: 0 .. rst-class:: sphx-glr-timing **Total running time of the script:** ( 0 minutes 0.013 seconds) .. _sphx_glr_download_examples_cache_plot_memory_cache.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_memory_cache.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_memory_cache.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_