summaryrefslogtreecommitdiff
path: root/numpy/f2py/src/fortranobject.c
Commit message (Collapse)AuthorAgeFilesLines
* Removing extra comment.MelissaWM2020-09-261-1/+1
|
* Adding PR review comment.MelissaWM2020-09-241-0/+1
|
* BUG: Fixes module data docstrings.MelissaWM2020-09-241-2/+4
| | | | Fixes gh-15325
* BUG: numpy/f2py: put callback globals to thread-local storagePauli Virtanen2020-06-071-0/+62
|
* MAINT: Use `.identifier = val` to fill type structsSebastian Berg2020-02-011-15/+7
| | | | | | | | | | This was not used previously due to it requiring C99. Python itself acknowledges that it can be used (they do almost not use it as of now), except inside header files due to C++ compatibility. See also (Found by Eric Wieser in PR): https://mail.python.org/pipermail/python-dev/2017-January/147154.html and PEP 7: https://www.python.org/dev/peps/pep-0007/#c-dialect
* BUG: Use PyDict_GetItemWithError() instead of PyDict_GetItem()Eric Wieser2020-01-141-2/+5
| | | | | | | | This means we no longer interpret `MemoryError` or `KeyboardInterrupt` as `keyword arg not provided`, for instance. This function is python 3 only, hence this was difficult to do in older versions of numpy. Inspired by https://bugs.python.org/issue35459
* MAINT: C code simplificationSeth Troisi2020-01-081-7/+5
|
* MAINT: Cleaning up more PY_VERSION_HEXSeth Troisi2020-01-061-25/+0
|
* MAINT: Improve const-correctness of shapes and stridesEric Wieser2020-01-061-1/+1
| | | | | | Marking these arguments as const makes it easier to reason about these functions, and prevent accidental mutation. The C99 standard (6.2.5/26 "Types") guarantees that ABI compatibility is preserved here.
* Cleaning up PY_MAJOR_VERSION/PY_VERSION_HEXSeth Troisi2020-01-031-36/+0
|
* ENH: Show the incorrect type in the fortran error messageEric Wieser2019-12-011-3/+4
| | | | | | I just got this error while hacking some scipy internals, and had nowhere near enough information to debug it. This is a little closer to useful.
* BUG: General fixes to f2py reference counts (dereferencing)Sebastian Berg2019-08-191-10/+27
|
* BUG: Fix leak in the f2py-generated module init and `PyMem_Del` usageSergei Lebedev2019-08-191-2/+5
| | | | | | Using `PyMem_Del` is incorrect, it should be `PyObject_Del` here, while this worked most of the time, it would lead to crashes at least on python 2.5 (after the reference counts were fixed)
* MAINT: f2py: Add a cast to avoid a compiler warning.Warren Weckesser2019-04-051-1/+1
| | | | | | | | | | | | | The warning [...]/fortranobject.c:138:18: warning: comparison of integers of different signs: 'Py_ssize_t' (aka 'long') and 'unsigned long' [-Wsign-compare] if (size < sizeof(notalloc)) { ~~~~ ^ ~~~~~~~~~~~~~~~~ occurs 17 times when scipy is built. The change in this pull request casts `size` to `size_t` before comparing it to `sizeof(...)`. A previous check has already eliminated the possibility that `size` is negative, so this cast is safe.
* MAINT: Misc. typos (#11005)luzpaz2018-04-301-1/+1
| | | | | | | | | User- and non-user-facing typos. Some source typos fixes as well. Found via `codespell`.
* MAINT: Hard tab and whitespace cleanup.Charles Harris2018-03-081-42/+43
|
* DOC: fix minor typosUnknown2017-12-121-3/+3
|
* f2py: rename internal functionNico Schlömer2017-08-281-3/+3
|
* f2py: allow Fortran arrays of dimension 0Nico Schlömer2017-08-281-1/+1
| | | | | | | | | | | | Up until now, f2py throw an error when arrays were declared which had dimension of length 0. This, however, is a perfectly legal case, and in fact occurs frequently in the context of linear algrebra. This bug was discovered, for example, in an interface that does matrix tridiagonalization. If the matrix is 1x1, the super- and subdiagonal are of length 0. Note that negative dimensions continue to produce errors although Fortran also allows this (it always allocates to size max(0, n)).
* BUG: f2py: Convert some error messages printed to stderr to exceptions.Warren Weckesser2017-08-261-38/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In f2py/src/fortranobject.c, the function `check_and_fix_dimensions` does pretty much what it says on the tin: /* This function fills in blanks (that are -1\'s) in dims list using the dimensions from arr. It also checks that non-blank dims will match with the corresponding values in arr dimensions. */ There are several error conditions detected by the function. In the code before this change, when the function detected such an error, it would print a message to stderr and return 1. In this change, when an error is detected in `check_and_fix_dimensions`, an exception is set. This new feature of `check_and_fix_dimensions` is used in three places in the function `array_from_pyobj()`. In each case, there was an old comment of the form: /* XXX: set exception */ In this change, the exception is now set in `check_and_fix_dimensions()`, so those comments have been removed. For some error conditions, the new code changes the exception that is raised. For example, here's a scipy test before this change: ``` In [5]: from scipy.linalg import _fblas as fblas In [6]: a = np.array([[1., 0.], [0., -2.], [2., 3.]]) In [7]: b = np.array([[0., 1.], [1., 0.], [0, 1.]]) In [8]: fblas.dsyr2k(a=a, b=b, alpha=1.0, c=np.zeros((15, 8))) 0-th dimension must be fixed to 3 but got 15 --------------------------------------------------------------------------- error Traceback (most recent call last) <ipython-input-8-bc4d51f8d016> in <module>() ----> 1 f(a=a, b=b, alpha=1.0, c=np.zeros((15, 8))) error: failed in converting 2nd keyword `c' of _fblas.dsyr2k to C/Fortran array ``` After this change, we get: ``` In [2]: from scipy.linalg import _fblas as fblas In [3]: a = np.array([[1., 0.], [0., -2.], [2., 3.]]) In [4]: b = np.array([[0., 1.], [1., 0.], [0, 1.]]) In [5]: fblas.dsyr2k(a=a, b=b, alpha=1.0, c=np.zeros((15, 8))) --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-6-bc4d51f8d016> in <module>() ----> 1 f(a=a, b=b, alpha=1.0, c=np.zeros((15, 8))) ValueError: 0-th dimension must be fixed to 3 but got 15 ``` The spurious print has been changed to the exception message, but some potentially useful information in the old exception message has been lost.
* BUG: ')' is printed at the end pointer of the buffer in numpy.f2py.Bob Eldering2017-07-051-2/+1
| | | | | | | When building the __doc__ string for Fortran objects, the ')' character, closing the dimensions list, is written 1 position beyond the allowed buffer size, instead of the current pointer in the buffer.
* ENH: Spelling fixesVille Skyttä2017-05-091-1/+1
|
* MAINT: remove usage of NPY_CHAR from f2pyJulian Taylor2017-05-021-4/+24
|
* MANT: Use Py_RETURN_NONE whenever Py_None is returnedJaime Fernandez2015-04-241-2/+1
|
* Merge pull request #5309 from rgommers/remove-f2py-deprecationCharles Harris2015-01-061-3/+0
|\ | | | | MAINT: remove NPY_NO_DEPRECATED_API define from f2py.
| * MAINT: remove NPY_NO_DEPRECATED_API define from f2py.Ralf Gommers2014-11-231-3/+0
| | | | | | | | | | See gh-5281 for discussion. With the defines in, compiling scipy 0.14.0 and below isn't possible.
* | Merge pull request #5287 from chatcannon/reconcile-c-api-with-docsJulian Taylor2014-12-101-7/+10
|\ \ | |/ |/| | | Reconcile C API with docs
| * MAINT: cast PyArray_ITEMSIZE result to avoid warningsJulian Taylor2014-12-101-3/+3
| | | | | | | | return type depends on API version used
| * MAINT: Update printf statements in fortranobject.cChris Kerr2014-12-101-5/+8
| | | | | | | | Using NPY_INTP_FMT to format PyArray_ITEMSIZE
* | MAINT: change place where NPY_NO_DEPRECATED_API is defined in f2py.Ralf Gommers2014-11-161-0/+3
|/ | | | | This makes sure to undef at the end, and by putting the define in the C code it ensures that the error message is understandable.
* DEP: Corrected some type errors that appear when enabling NPY_NO_DEPRECATED_APIChris Kerr2014-11-101-7/+7
|
* DEP: Replaced NPY_[F,C]ARRAY with NPY_ARRAY_[F,C]ARRAYChris Kerr2014-11-101-4/+4
|
* DEP: Using the internal PyArrayObject_fields API for the swap_arrays and ↵Chris Kerr2014-11-101-2/+5
| | | | dump_attrs functions
* DEP: Replaced arr->descr, arr->flags and arr->base with the PyArray_* functionsChris Kerr2014-11-101-1/+1
|
* DEP: replaced arr->dimensions with PyArray_DIMS(arr) or PyArray_DIM(arr,i)Chris Kerr2014-11-101-11/+11
|
* DEP: replaced arr->data with PyArray_DATAChris Kerr2014-11-101-1/+1
|
* DEP: Replaced arr->nd with PyArray_NDIM in fortranobject.cChris Kerr2014-11-101-18/+18
|
* MAINT: f2py: rewrite fortran_docLars Buitinck2014-09-281-68/+124
| | | | | | | | | Should not use sprintf, and certainly not with incorrect error checking (gh-5044). Entirely rewritten for readability. Also replaced a few sprintf calls that were just copying strings without interpretation by the simpler and possibly faster strcpy/strcat. (These need to be replaced by something more sensible.)
* Changed the `goto fail` to a `return PyErr_NoMemory()`Chris Kerr2014-09-041-1/+4
|
* Add NULL check after malloc() in fortranobject.cChris Kerr2014-09-041-0/+1
|
* BUG: #2408, Fix f2py Python 3 error message string bug.Charles Harris2014-02-171-8/+6
| | | | | | | | | | | | | | The original was generating an exception message and, after aliasing, calling PyBytes_AsString on a unicode string -> error. It was also leaking references, although that probably didn't matter in context. The fix here is on the cheap side, just use a C string for the message without including the extra information about the erroneous type that led to the exception. No test, I don't know how to evoke this error. Closes #2408.
* MAINT: fix some f2py related build warnings.Ralf Gommers2014-01-221-1/+1
|
* ENH: f2py: generate docstrings in Numpy docstring formatPauli Virtanen2012-11-171-1/+1
|
* STY: f2py - replace macros in old_defines.h with new.Charles Harris2012-02-041-2/+2
|
* BUG: core: use PyCapsule objects only on Python >= 3.0, stay with PyCObjects ↵Pauli Virtanen2010-07-171-2/+2
| | | | on Python 2.x
* ENH, BUG: PyCObject will be deprecated in python 2.7. So use the NpyCapsuleCharles Harris2010-05-031-4/+4
| | | | | | | compatibility functions in npy_3kcompat.h to replace the current calls. This gets rid of a number of version checks and is easier to maintain. Fix bug that was present in the ufunc _loop1d_list_free destructor in the python3k case.
* 3K: f2py: port much of f2py C code to Py3Pauli Virtanen2010-03-061-3/+60
|
* BUG: f2py: ensure that ARRAY_ISCOMPATIBLE macro handles also booleansPauli Virtanen2010-03-061-0/+1
|
* ENH: Add support for PyCapsule.Charles Harris2010-02-251-0/+55
|
* Introduced intent(align4|align8|align16) attributes. Fixes scipy ticket 794 ↵Pearu Peterson2009-10-251-1/+10
| | | | after using intent(align8) in the corresponding scipy pyf files.