Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use diskcache for caching ProtocolDAGResults in the Alchemiscale client #271

Open
wants to merge 10 commits into
base: main
Choose a base branch
from

Commits on Apr 25, 2024

  1. Configuration menu
    Copy the full SHA
    8c2ccd9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    651a3fa View commit details
    Browse the repository at this point in the history

Commits on Apr 29, 2024

  1. Store raw bytes rather than pickled objects

    * The default Disk used by diskcache uses pickle when storing python
      objects. Instead, we are now storing byte arrays. Depending on the
      size of the byte array, this is either stored in the SQLite3 DB or
      or as a separate file if it's too large (>32 kb by default).
    * A test has been added that checks the hits and misses when pulling
      PDRs using the get_transformation_results method. The in-memory
      LRU cache is cleared manually for accurate stats.
    ianmkenney committed Apr 29, 2024
    Configuration menu
    Copy the full SHA
    3761de5 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c9a0d78 View commit details
    Browse the repository at this point in the history
  3. Enable caching for other objects

    New objects supported:
    * Transformations
    * AlchemicalNetworks
    * ChemicalSystems
    * Generally anything that can be a KeyedChain
    ianmkenney committed Apr 29, 2024
    Configuration menu
    Copy the full SHA
    471faf9 View commit details
    Browse the repository at this point in the history
  4. Test cache data corruption and change test params

    * With known cached results, corrupt the values and make sure the user
      is warned that there was a problem with deserialization and that a
      new result will be downloaded.
    * Lowered the cache size limit for tests to avoid running out of space
    ianmkenney committed Apr 29, 2024
    Configuration menu
    Copy the full SHA
    18c6248 View commit details
    Browse the repository at this point in the history

Commits on Apr 30, 2024

  1. Configuration menu
    Copy the full SHA
    383e473 View commit details
    Browse the repository at this point in the history
  2. Clean up of interface/client/conftest.py

    * Removed unsused imports
    ianmkenney committed Apr 30, 2024
    Configuration menu
    Copy the full SHA
    42366c8 View commit details
    Browse the repository at this point in the history
  3. Updated cache parameter handling in AlchemiscaleBaseClient

    The AlchemiscaleBaseClient now determines the cache directory
    when one is not specified directly (i.e. a None is provided to the
    AlchemiscaleBaseClient constructor). When a path to this directory is
    provided, it must be a string or pathlib.Path object. The logic for
    this operation lies in the `AlchemiscaleBaseClient._determine_cache_dir`
    method, which can raise a TypeError on invalid input.
    
    The `cache_size_limit` is now verified within the constructor to be
    >= 0. If it is not, then a ValueError is raised.
    
    New tests have been added for the above changes:
    
    * Negative cache_size_limit: checks for constructor-raised ValueError
      with a meaningful message.
    
    * cache_directory is None: checks output of the underlying
      _determine_cache_dir method with and without the XDG_CACHE_HOME
      environment variable. If we test it with the client constructor, the
      directory is made automatically, which we don't want in the tests as
      it may touch real data.
    
    * cache_directory is not None, str, or Path: Check that the constructor
      raises a TypeError with a meaningful message.
    ianmkenney committed Apr 30, 2024
    Configuration menu
    Copy the full SHA
    3975cd4 View commit details
    Browse the repository at this point in the history

Commits on Aug 20, 2024

  1. Configuration menu
    Copy the full SHA
    4049373 View commit details
    Browse the repository at this point in the history