+USING: math help.markup help.syntax ;
IN: python.errors
-USING: python.errors help.markup help.syntax ;
HELP: check-zero
+{ $values { "code" integer } }
{ $description
"Verifies that the return code is 0 and throws an error otherwise."
} ;
HELP: (check-ref)
+{ $values { "ref" "a python object" } }
{ $description
"Verifies that the reference is not f and throws an error if it is."
} ;
HELP: check-new-ref
+{ $values { "ref" "a python object" } }
{ $description
"Adds reference counting to the returned python object which is assumed to be a new reference. An error is thrown if the object is f. This word is used to wrap Python functions that return new references."
} ;
HELP: check-borrowed-ref
+{ $values { "ref" "a python object" } }
{ $description
"Adds reference counting to the returned python object which is assumed to be a borrowed reference. An error is thrown if the object is f. This word is used to wrap Python functions that return borrowed references."
} ;
HELP: unsteal-ref
+{ $values { "ref" "a python object" } }
{ $description
"Increases the objects reference count. Used by wrappers that call Python functions that steal references."
} ;
PRIVATE>
-: (check-ref) ( ref -- ref' )
+: (check-ref) ( ref -- ref )
[ get-error throw-error f ] unless* ;
-: check-new-ref ( ref -- ref' )
+: check-new-ref ( ref -- ref )
&Py_DecRef (check-ref) ;
-: check-borrowed-ref ( ref -- ref' )
+: check-borrowed-ref ( ref -- ref )
dup Py_IncRef &Py_DecRef (check-ref) ;
: check-zero ( code -- )
0 = [ get-error throw-error ] unless ;
-: unsteal-ref ( ref -- ref' )
+: unsteal-ref ( ref -- ref )
dup Py_IncRef ;
{ $description "Converts a factor objects to its most fitting python representation." }
{ $examples
{ $example
- "USING: python ;"
+ "USING: arrays prettyprint python sequences ;"
"10 iota >array >py py> ."
"{ 0 1 2 3 4 5 6 7 8 9 }"
}