docs: private PyObject getPythonObject(String oid) {
  		// Try the cache first
  		PyObject rulesObject = deCachePythonObject(oid);
  		if (rulesObject != null) {
  			return rulesObject;
  		}
  		// We need to evaluate then
  		InputStream inStream;
  		if (oid.equals(ANOTAR_RULES_OID)) {
  			// Anotar rules
  			inStream = getClass().getResourceAsStream("/anotar.py");
  			log.debug("First time parsing rules script: 'ANOTAR'");
  			rulesObject = evalScript(inStream, "anotar.py");
  			cachePythonObject(oid, rulesObject);
  			return rulesObject;
  
  		} else {
  			// A standard rules file
  			DigitalObject object;
  			Payload payload;
  			try {
  				object = storage.getObject(oid);
  				String scriptName = object.getSourceId();
  				payload = object.getPayload(scriptName);
  				inStream = payload.open();
  				log.debug("First time parsing rules script: '{}'", oid);
  				rulesObject = evalScript(inStream, scriptName);
  				payload.close();
  				cachePythonObject(oid, rulesObject);
  				return rulesObject;
  			} catch (StorageException ex) {
  				log.error("Rules file could not be retrieved! '{}'", oid, ex);
  				return null;
  			}
  		}
  	}