Coccinelle release 1.0.0-rc14
[bpt/coccinelle.git] / bundles / pycaml / chemoelectric-pycaml-8614105 / examples / log.ml
diff --git a/bundles/pycaml/chemoelectric-pycaml-8614105/examples/log.ml b/bundles/pycaml/chemoelectric-pycaml-8614105/examples/log.ml
deleted file mode 100644 (file)
index 6916208..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-#use "topfind";;
-#require "pycaml";;
-#require "snippets";;
-
-open Pycaml;;
-
-(* See http://docs.python.org/lib/module-logging.html for Level values *)
-type logging_levels = Notset | Debug | Info | Warn | Error | Critical | Level of int;;
-
-(* Set default logger *)
-let default_logger = (fun l m -> Printf.printf "ocaml-default log: %d %s%!\n%!" l m);;
-
-let loggers = Hashtbl.create 10;;
-Hashtbl.add loggers "default-ocaml" default_logger;;
-
-(* Translate level names into numerical values as used by Python 
-   See http://docs.python.org/lib/module-logging.html for Level values *)
-let int_of_level name =
-  match name with
-    | Notset   -> 0
-    | Debug    -> 10
-    | Info     -> 20 
-    | Warn     -> 30
-    | Error    -> 40
-    | Critical -> 50
-    | Level (n)-> n
-;;
-
-let find_logger name =
-  try
-    Hashtbl.find loggers name
-  with
-    | Not_found -> 
-       try 
-         Hashtbl.find loggers "default-ocaml"
-       with 
-         | Not_found -> failwith "Default logger missing -- internal problem";;
-
-
-(* Provide interface functions as in Python's logging module *)
-let debug name msg =
-  let log = find_logger name in
-    log (int_of_level Debug) msg;;
-
-let info name msg =
-  let log = find_logger name in
-    log (int_of_level Info) msg;;
-
-let warn name msg =
-  let log = find_logger name in
-    log (int_of_level Warn) msg;;
-
-let warning = warn;;
-
-let error name msg =
-  let log = find_logger name in
-    log (int_of_level Error) msg;;
-
-let critical name msg =
-  let log = find_logger name  in
-    log (int_of_level Critical) msg;;
-
-(* Function that takes a name, level integer (this is 'raw') and the message *)
-let lograw name level msg =
-  let logf = find_logger name in
-    logf level msg;;
-
-(* Function that takes a name, level and the message.
-   Presumably, this is what will be used most often. *)
-let log name level msg =
-  let lograw = find_logger name in
-    lograw (int_of_level level) msg;;
-
-
-(* Allowing to register loggers from Python *)
-
-let add_logger_if_new name logger = 
-  let loggername = 
-    try
-      let _ = Str.search_forward (Str.regexp "ocaml") name 0 in
-       name
-    with 
-      | Not_found -> Printf.sprintf "%s-ocaml" name
-  in
-  try
-    let _ = Hashtbl.find loggers loggername
-    in failwith (Printf.sprintf "Trying to register logger '%s' again. Why?" loggername)
-  with
-    | Not_found -> Printf.printf "Adding logger %s to hashtable\n%!" loggername;
-       Hashtbl.add loggers loggername logger;;
-
-let _py_register_logger =
-  python_pre_interfaced_function
-    ~doc:"Register a python-logger. \nArguments: Logger name (str) and callback function cb(). \nThe signature of cb() is cb( level: int, message:str). "
-    [|StringType;CallableType|]
-    (fun py_args ->
-       let name = pystring_asstring py_args.(0) in
-       let ocamllogger = (fun level msg -> 
-                           let callback_args =
-                             pytuple_fromarray
-                               [|pyint_fromint level;
-                                 pystring_fromstring msg|]
-                           in
-                           let _ = pyeval_callobject(py_args.(1),callback_args) in ()
-                        )
-       in let () = add_logger_if_new name ocamllogger 
-     in pynone() );;
-
-
-
-
-
-(* Debugging tools: *)
-
-(* getinfo returns an array of strings that contain the names of registered loggers. *)
-let getinfo loggers =
-    let loggerarray = Array.make (Hashtbl.length loggers) "empty" in
-    let () = Snippets.hashtbl_iteri (fun i key value -> (loggerarray.(i) <- key)) loggers in
-    loggerarray;;
-
-let print_loggers loggers = 
-  Array.iter (fun a -> Printf.printf "registered loggername=%s\n%!" a)  (getinfo loggers);;
-      
-let _py_ocaml_log  =
-  python_pre_interfaced_function
-    ~doc: "Function that calls the ocaml logger from Python (just for debugging useful) "
-    [|StringType;IntType;StringType|] ( fun py_args -> 
-                                         let name = pystring_asstring py_args.(0) in
-                                         let level = pyint_asint py_args.(1) in
-                                         let msg = pystring_asstring py_args.(2) in
-                                         let () =  lograw name level msg in
-                                           pynone() );;
-
-(* Register function for Python *)
-
-let () = register_pre_functions_for_python
-  [|  ("log", _py_ocaml_log);
-      ("register_logger", _py_register_logger) |]
-;;
-
-
-
-(* This needs to go into the documentation *)
-
-Printf.printf "About to start tests (Ocaml)\n";;
-
-let () = add_logger_if_new "Ocaml" (fun l m -> Printf.printf "Ocamllog, Lev=%d: %s\n" l m);  
-
-python_load "log.py";; 
-
-log "default" (Level 30) "Purely called from Ocaml";;
-
-info "ocaml" "This is information";;
-
-print_loggers loggers;;
-
-python_eval "logger.warn('Warning from Python')";; 
-
-let nmeshlog = log 
-(* ipython();; *)
-