old_contents: import unittest
  import pickle
  import sys
  import tempfile
  from pathlib import Path
  
  
  class TestUnpickleDeletedModule(unittest.TestCase):
      def test_loading_pickle_with_no_module(self):
          """Create a module that uses Numba, import a function from it.
          Then delete the module and pickle the function. The function
          should load from the pickle without a problem.
  
          Note - This is a simplified version of how Numba might be used
          on a distributed system using e.g. dask distributed. With the
          pickle being sent to the worker but not the original module.
          """
  
          # Source code for temporary module we will make
          source = "\n".join(
              [
                  "from numba import vectorize",
                  "@vectorize(['float64(float64)'])",
                  "def inc1(x):",
                  "    return x + 1",
              ]
          )
  
          # Create a temporary directory and add it to path.
          modname = "tmp_module"
          with tempfile.TemporaryDirectory() as tmp_dir:
              sys.path.append(tmp_dir)
  
              # Create tmp_module.py in there with our source code above.
              filename = Path(f"{tmp_dir}/{modname}.py")
              f = open(filename, "a")
              f.write(source)
              f.close()
  
              # Import the temporary module before file is deleted
              from tmp_module import inc1
  
          # Remove from imported libraries
          del sys.modules[modname]
  
          # Pickle function and assert that it loads correctly
          pkl = pickle.dumps(inc1)
          f = pickle.loads(pkl)
          assert f(2) == 3
  
new_contents: import unittest
  import pickle
  import sys
  import tempfile
  from pathlib import Path
  
  
  class TestUnpickleDeletedModule(unittest.TestCase):
      def test_loading_pickle_with_no_module(self):
          """Create a module that uses Numba, import a function from it.
          Then delete the module and pickle the function. The function
          should load from the pickle without a problem.
  
          Note - This is a simplified version of how Numba might be used
          on a distributed system using e.g. dask distributed. With the
          pickle being sent to the worker but not the original module.
          """
  
          # Source code for temporary module we will make
          source = "\n".join(
              [
                  "from numba import vectorize",
                  "@vectorize(['float64(float64)'])",
                  "def inc1(x):",
                  "    return x + 1",
              ]
          )
  
          # Create a temporary directory and add it to path.
          modname = "tmp_module"
          with tempfile.TemporaryDirectory() as tmp_dir:
              sys.path.append(tmp_dir)
  
              # Create tmp_module.py in there with our source code above.
              filename = Path(f"{tmp_dir}/{modname}.py")
              f = open(filename, "a")
              f.write(source)
              f.close()
  
              # Import the temporary module before file is deleted
              from tmp_module import inc1
  
          # Remove from imported libraries
          del sys.modules[modname]
  
          # Pickle function and assert that it loads correctly
          pkl = pickle.dumps(inc1)
          f = pickle.loads(pkl)
          self.assertEqual(f(2), 3)
  
subject: Update numba/tests/test_unpickle_without_module.py