Mercurial > cpython-lru_cache-weakref
annotate Include/fileutils.h @ 87690:66c1c9f32567 default tip
Add use_weakref option to functools.lru_cache
The use_weakref option makes lru_cache create weak references to the function
arguments when creating the cache key, which prevents them from staying in the
memory forever even after all other references to them are gone.
This is a proof of concept for http://bugs.python.org/issue19859
| author | Radomir Dopieralski <devel@sheep.art.pl> |
|---|---|
| date | Tue, 03 Dec 2013 16:02:48 +0100 |
| parents | ef889c3d5dc6 |
| children |
| rev | line source |
|---|---|
|
65162
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
1 #ifndef Py_FILEUTILS_H |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
2 #define Py_FILEUTILS_H |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
3 |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
4 #ifdef __cplusplus |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
5 extern "C" { |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
6 #endif |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
7 |
|
75353
c80d9a0bd5a0
Issue #14153 Create _Py_device_encoding() to prevent _io from having to import
Brett Cannon <brett@python.org>
parents:
66092
diff
changeset
|
8 PyAPI_FUNC(PyObject *) _Py_device_encoding(int); |
|
c80d9a0bd5a0
Issue #14153 Create _Py_device_encoding() to prevent _io from having to import
Brett Cannon <brett@python.org>
parents:
66092
diff
changeset
|
9 |
|
65162
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
10 PyAPI_FUNC(wchar_t *) _Py_char2wchar( |
|
65412
3794c9b50824
Add an optional size argument to _Py_char2wchar()
Victor Stinner <victor.stinner@haypocalc.com>
parents:
65346
diff
changeset
|
11 const char *arg, |
|
3794c9b50824
Add an optional size argument to _Py_char2wchar()
Victor Stinner <victor.stinner@haypocalc.com>
parents:
65346
diff
changeset
|
12 size_t *size); |
|
65162
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
13 |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
14 PyAPI_FUNC(char*) _Py_wchar2char( |
|
66092
1b5f47e2e0f0
PyUnicode_EncodeFS() raises an exception if _Py_wchar2char() fails
Victor Stinner <victor.stinner@haypocalc.com>
parents:
65412
diff
changeset
|
15 const wchar_t *text, |
|
1b5f47e2e0f0
PyUnicode_EncodeFS() raises an exception if _Py_wchar2char() fails
Victor Stinner <victor.stinner@haypocalc.com>
parents:
65412
diff
changeset
|
16 size_t *error_pos); |
|
65162
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
17 |
|
65164
1f3919af8a53
Fix fileutils for Windows
Victor Stinner <victor.stinner@haypocalc.com>
parents:
65162
diff
changeset
|
18 #if defined(HAVE_STAT) && !defined(MS_WINDOWS) |
|
65162
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
19 PyAPI_FUNC(int) _Py_wstat( |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
20 const wchar_t* path, |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
21 struct stat *buf); |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
22 #endif |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
23 |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
24 #ifdef HAVE_STAT |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
25 PyAPI_FUNC(int) _Py_stat( |
|
65165
2147cc152227
_Py_stat() and _Py_fopen(): avoid PyUnicode_AsWideCharString() on Windows
Victor Stinner <victor.stinner@haypocalc.com>
parents:
65164
diff
changeset
|
26 PyObject *path, |
|
65162
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
27 struct stat *statbuf); |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
28 #endif |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
29 |
|
85420
ef889c3d5dc6
Issue #18571: Implementation of the PEP 446: file descriptors and file handles
Victor Stinner <victor.stinner@gmail.com>
parents:
75353
diff
changeset
|
30 PyAPI_FUNC(int) _Py_open( |
|
ef889c3d5dc6
Issue #18571: Implementation of the PEP 446: file descriptors and file handles
Victor Stinner <victor.stinner@gmail.com>
parents:
75353
diff
changeset
|
31 const char *pathname, |
|
ef889c3d5dc6
Issue #18571: Implementation of the PEP 446: file descriptors and file handles
Victor Stinner <victor.stinner@gmail.com>
parents:
75353
diff
changeset
|
32 int flags); |
|
ef889c3d5dc6
Issue #18571: Implementation of the PEP 446: file descriptors and file handles
Victor Stinner <victor.stinner@gmail.com>
parents:
75353
diff
changeset
|
33 |
|
65162
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
34 PyAPI_FUNC(FILE *) _Py_wfopen( |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
35 const wchar_t *path, |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
36 const wchar_t *mode); |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
37 |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
38 PyAPI_FUNC(FILE*) _Py_fopen( |
|
85420
ef889c3d5dc6
Issue #18571: Implementation of the PEP 446: file descriptors and file handles
Victor Stinner <victor.stinner@gmail.com>
parents:
75353
diff
changeset
|
39 const char *pathname, |
|
ef889c3d5dc6
Issue #18571: Implementation of the PEP 446: file descriptors and file handles
Victor Stinner <victor.stinner@gmail.com>
parents:
75353
diff
changeset
|
40 const char *mode); |
|
ef889c3d5dc6
Issue #18571: Implementation of the PEP 446: file descriptors and file handles
Victor Stinner <victor.stinner@gmail.com>
parents:
75353
diff
changeset
|
41 |
|
ef889c3d5dc6
Issue #18571: Implementation of the PEP 446: file descriptors and file handles
Victor Stinner <victor.stinner@gmail.com>
parents:
75353
diff
changeset
|
42 PyAPI_FUNC(FILE*) _Py_fopen_obj( |
|
65165
2147cc152227
_Py_stat() and _Py_fopen(): avoid PyUnicode_AsWideCharString() on Windows
Victor Stinner <victor.stinner@haypocalc.com>
parents:
65164
diff
changeset
|
43 PyObject *path, |
|
65162
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
44 const char *mode); |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
45 |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
46 #ifdef HAVE_READLINK |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
47 PyAPI_FUNC(int) _Py_wreadlink( |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
48 const wchar_t *path, |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
49 wchar_t *buf, |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
50 size_t bufsiz); |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
51 #endif |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
52 |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
53 #ifdef HAVE_REALPATH |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
54 PyAPI_FUNC(wchar_t*) _Py_wrealpath( |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
55 const wchar_t *path, |
|
65166
8fd5d06462e6
_Py_wrealpath() requires the size of the output buffer
Victor Stinner <victor.stinner@haypocalc.com>
parents:
65165
diff
changeset
|
56 wchar_t *resolved_path, |
|
8fd5d06462e6
_Py_wrealpath() requires the size of the output buffer
Victor Stinner <victor.stinner@haypocalc.com>
parents:
65165
diff
changeset
|
57 size_t resolved_path_size); |
|
65162
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
58 #endif |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
59 |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
60 PyAPI_FUNC(wchar_t*) _Py_wgetcwd( |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
61 wchar_t *buf, |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
62 size_t size); |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
63 |
|
85420
ef889c3d5dc6
Issue #18571: Implementation of the PEP 446: file descriptors and file handles
Victor Stinner <victor.stinner@gmail.com>
parents:
75353
diff
changeset
|
64 PyAPI_FUNC(int) _Py_get_inheritable(int fd); |
|
ef889c3d5dc6
Issue #18571: Implementation of the PEP 446: file descriptors and file handles
Victor Stinner <victor.stinner@gmail.com>
parents:
75353
diff
changeset
|
65 |
|
ef889c3d5dc6
Issue #18571: Implementation of the PEP 446: file descriptors and file handles
Victor Stinner <victor.stinner@gmail.com>
parents:
75353
diff
changeset
|
66 PyAPI_FUNC(int) _Py_set_inheritable(int fd, int inheritable, |
|
ef889c3d5dc6
Issue #18571: Implementation of the PEP 446: file descriptors and file handles
Victor Stinner <victor.stinner@gmail.com>
parents:
75353
diff
changeset
|
67 int *atomic_flag_works); |
|
ef889c3d5dc6
Issue #18571: Implementation of the PEP 446: file descriptors and file handles
Victor Stinner <victor.stinner@gmail.com>
parents:
75353
diff
changeset
|
68 |
|
ef889c3d5dc6
Issue #18571: Implementation of the PEP 446: file descriptors and file handles
Victor Stinner <victor.stinner@gmail.com>
parents:
75353
diff
changeset
|
69 PyAPI_FUNC(int) _Py_dup(int fd); |
|
ef889c3d5dc6
Issue #18571: Implementation of the PEP 446: file descriptors and file handles
Victor Stinner <victor.stinner@gmail.com>
parents:
75353
diff
changeset
|
70 |
|
65162
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
71 #ifdef __cplusplus |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
72 } |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
73 #endif |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
74 |
|
39014f0abc32
Create fileutils.c/.h
Victor Stinner <victor.stinner@haypocalc.com>
parents:
diff
changeset
|
75 #endif /* !Py_FILEUTILS_H */ |
