Skip to content

Instantly share code, notes, and snippets.

View bfroehle's full-sized avatar

Bradley M. Froehle bfroehle

View GitHub Profile
@bfroehle
bfroehle / file_wrapper.cpp
Created October 5, 2011 22:09
Boost.Python from Python to FILE* wrapper
#include <boost/python.hpp>
#include <iostream>
namespace {
void *convert_to_FILEptr(PyObject* obj) {
return PyFile_Check(obj) ? PyFile_AsFile(obj) : 0;
}
}
void test_argument(FILE* f) {
@bfroehle
bfroehle / printf.c
Created October 13, 2011 17:39
How does Cython compile print?
/* Generated by Cython 0.13 on Thu Oct 13 10:39:36 2011 */
#define PY_SSIZE_T_CLEAN
#include "Python.h"
#ifndef Py_PYTHON_H
#error Python headers needed to compile C extensions, please install development version of Python.
#else
#include <stddef.h> /* For offsetof */
#ifndef offsetof
@bfroehle
bfroehle / reporting.cpp
Created October 13, 2011 17:51
printf alternative in Python
#include <boost/python.hpp>
void report(std::string msg) {
PyObject *f = PySys_GetObject((char *)"stdout");
PyFile_WriteString(msg.c_str(), f);
PyFile_WriteString("\n", f);
}
BOOST_PYTHON_MODULE(reporting) {
boost::python::def("report", &report);
@bfroehle
bfroehle / bad.py
Created January 27, 2012 02:51
Using MethodType to convert builtin function to instancemethod.
from demo import incx
class Point(object):
"""A 1-diml Point"""
def __init__(self, x):
self.x = x
incx = incx
p = Point(0)
p.incx()
@bfroehle
bfroehle / setup.py
Created February 7, 2012 01:04
A simple example to trigger cython/cython PR-85
from distutils.core import setup
from Cython.Build import cythonize
setup(name = 'tst',
ext_modules = cythonize(['tst.pyx'])
)
@bfroehle
bfroehle / knee.py
Created February 29, 2012 22:05
knee.py for Python 2.6, 2.7, and 3.2
"""
An Python re-implementation of hierarchical module import.
Function names and arguments have been chosen to mimic the C code in
`Python/import.c` whenever possible.
This code is intended to be read, not executed. However, it does work
-- all you need to do to enable it is "import knee".
(The name is a pun on the klunkier predecessor of this module, "ni".)
import sys
import nose.tools as nt
from IPython.core import oinspect
def test_oinspect_f2py():
from numpy import f2py
# This is FORTRAN, so the indentation is important:
source = \
@bfroehle
bfroehle / 00README.rst
Created June 13, 2012 16:01 — forked from GaelVaroquaux/00README.rst
Copy-less bindings of C-generated arrays with Cython

Cython example of exposing C-computed arrays in Python without data copies

The goal of this example is to show how an existing C codebase for numerical computing (here c_code.c) can be wrapped in Cython to be exposed in Python.

The meat of the example is that the data is allocated in C, but exposed in Python without a copy using the PyArray_SimpleNewFromData numpy

@bfroehle
bfroehle / gist:3153959
Created July 21, 2012 00:11
IPython #2179 Failure
..............................................
----------------------------------------------------------------------
Ran 46 tests in 0.066s
OK
..................................................................................................................................................................................................................S....................................................................................................................................K.........
----------------------------------------------------------------------
Ran 353 tests in 23.375s
OK (KNOWNFAIL=1, SKIP=1)
@bfroehle
bfroehle / results.log
Created July 31, 2012 19:00
IPython test log
..............................................
----------------------------------------------------------------------
Ran 46 tests in 0.060s
OK
....................................................E.....................................................................................................................................................................................................................................................................................................................................................................................................................................K.........
======================================================================
ERROR: test format constraint, and validity of jpeg and png
----------------------------------------------------------------------
Traceback (most recent call last):