Python | Función de extensión operando en Arrays

Escribamos una función de extensión de C que pueda operar en conjuntos de datos contiguos, como podría ser creado por el módulo de array o bibliotecas como NumPy y esta función debe ser de propósito general y no específica para ninguna biblioteca de array. El código debe usar Buffer Protocol para recibir y procesar arrays … Continue reading «Python | Función de extensión operando en Arrays»

Problemas con el uso de código C en Python | conjunto 2

Requisito previo: problemas con el uso de código C en Python | Serie 1 La clase DoubleArrayType puede manejar la situación de Python que tiene diferentes formas como array, array numpy, lista, tupla. from_param()En esta clase, se define un único método . Este método toma un solo parámetro y lo reduce a un objeto ctypes … Continue reading «Problemas con el uso de código C en Python | conjunto 2»

Deslizar para envolver el código C

Requisito previo: Usar códigos C en Python , Envolver C/C++ para Python usando SWIG Supongamos que hemos proporcionado un código C y es necesario acceder a él como un módulo de extensión C. Entonces, para la tarea dada, se usa Swig Wrapper Generator. Swig funciona analizando los archivos de encabezado C y creando automáticamente el … Continue reading «Deslizar para envolver el código C»

Python | Prueba de salida a stdout

Las pruebas son una parte fundamental del desarrollo, ya que no hay un compilador que analice el código antes de que Python lo ejecute. Dado un programa que tiene un método cuya salida va a Salida estándar (sys.stdout) . Esto casi siempre significa que emite texto a la pantalla. A uno le gusta escribir una … Continue reading «Python | Prueba de salida a stdout»

Conversión de strings C a Python

Para las strings C representadas como un par char *, int, es decidir si la string se presenta como una string de bytes sin formato o como una string Unicode. Los objetos de byte se pueden construir usando Py_BuildValue()como // Pointer to C string data char *s;     // Length of data  int len;     … Continue reading «Conversión de strings C a Python»

Python | Parcheo de objetos de prueba unitaria | Conjunto-2

Las instancias de MagicMock que normalmente se usan como valores de reemplazo están destinadas a imitar las llamadas y las instancias. Registran información sobre el uso y permiten hacer afirmaciones como se muestra en el código que figura a continuación: Código #6:         from unittest.mock   import MagicMock  m = MagicMock(return_value = 10)  print(m(1, 2, … Continue reading «Python | Parcheo de objetos de prueba unitaria | Conjunto-2»

Python | Pasar nombres de archivo a la extensión en C

El nombre de archivo debe codificarse de acuerdo con la codificación de nombre de archivo esperada del sistema antes de pasar los nombres de archivo a las funciones de la biblioteca C. Código #1: Para escribir una función de extensión que recibe un nombre de archivo static PyObject* py_get_filename(PyObject* self, PyObject* args) {     PyObject* bytes; … Continue reading «Python | Pasar nombres de archivo a la extensión en C»

C API del módulo de extensión en Python | conjunto 2

Requisito previo: API de C del módulo de extensión en Python | Serie 1 Veamos un ejemplo de un nuevo módulo de extensión que carga y usa estas funciones API que desarrollamos en el artículo anterior. Código #1: #include «pythonsample.h» /* An extension function that uses the exported API */ static PyObject *print_point(PyObject *self, PyObject … Continue reading «C API del módulo de extensión en Python | conjunto 2»