David Mertz <[email protected]> added the comment:
I've made the few additional changes to those in this PR. When I work out the
issues, I'll make a new PR. I took out an attempt with `path_t`. However,
here is why I think argument clinic (or something else?!) is actually
intercepting the attempted call:
With my temporary debugging, I have this function in `Modules/_gdbmmodule.c`:
```c
[clinic start generated code]*/
static PyObject *
dbmopen_impl(PyObject *module, PyObject *filename, const char *flags,
int mode)
/*[clinic end generated code: output=9527750f5df90764 input=812b7d74399ceb0e]*/
{
PyObject_Print(filename, stdout, 0);
printf(" from _gdbmmodule.c (XXX)\n");
/* ... rest of function ...*/
```
And I have a very simplified test script:
```python
import _gdbm
import sys
from pathlib import Path
print(sys.version)
path = '/tmp/tmp.db'
db = _gdbm.open(path, 'c')
print("Opened with string path")
db.close()
db = _gdbm.open(Path(path), 'c')
print("Opened with path-like")
db.close()
```
The output of running this is:
```
3.11.0a0
(heads/[bpo-45133](https://bugs.python.org/issue45133)-dirty:0376feb030, Sep 8
2021, 00:39:39) [GCC 10.3.0]
'/tmp/tmp.db' from _gdbmmodule.c (XXX)
Opened with string path
Traceback (most recent call last):
File "/home/dmertz/tmp/pathlike-dbm.py", line 12, in <module>
db = _gdbm.open(Path(path), 'c')
^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: open() argument 1 must be str, not PosixPath
```
So before I get to the first line of the _gdbm.open() function, the TypeError
is already occurring when passed a PosixPath.
----------
nosy: +DavidMertz
type: -> enhancement
versions: +Python 3.11 -Python 3.9
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue40563>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com